信安通用基础知识

news2024/12/24 0:52:37

文章目录

  • 密码学经典误区
  • PGP优良保密协议
  • 信安经典
  • 其它安全手段
  • XSS与CSRF cross site request forgery
    • CSRF的利用逻辑
    • CSRF示例
    • CSRF防范
      • 检查Referer字段
      • 添加校验token
    • XSS cross site scripting
  • common weakness enumeration
  • 常见密码api误用(摘自毕设参考文献)
    • 对称加密
    • hash
    • 非对称加密
      • Improper Certificate Validation
    • 密钥管理
  • 安全建议

密码学经典误区

口令和密码不应误用。口令不涉及加解密,也不是密文。整个过程只涉及hash。
密钥而不是密码算法决定安全性。
古典加密的特征是,加密字符而非比特。

PGP优良保密协议

在这里插入图片描述

信安经典

可靠性,天灾人祸时还能不能用。
可用性,四个九。
保密性,只有该看的人能看见。
完整性,传输错误、人为篡改。
不可抵赖,你发过、你收过、你说过。
可控性,信息不会到不该去的地方。

其它安全手段

除了上图的对称/非对称加密、摘要、签名等密码学手段,
主要的安全手段还有正确配置(比如不允许root远程登录,关闭不必要端口等),正确使用加密api(认证函数要自己实现不要留一段注释然后return true,使用合适的密码学算法,正确生成参数等),安全审计(日志),版本更新(如漏洞修补,放弃兼容有安全问题的旧版本等),用户管理(如临时权限,定期更换密码等)。

XSS与CSRF cross site request forgery

(CSRF有关内容均来自CSRF百度百科https://baike.baidu.com/item/%E8%B7%A8%E7%AB%99%E8%AF%B7%E6%B1%82%E4%BC%AA%E9%80%A0/13777878)
XSS 利用的是用户对指定网站的信任,CSRF 利用的是网站对用户网页浏览器的信任。

CSRF的利用逻辑

简单的身份验证只能保证请求发自某个用户的浏览器,却不能保证请求本身是用户自愿发出的。

CSRF示例

假如一家银行用以运行转账操作的URL地址如下:http://www.examplebank.com/withdraw?account=AccoutName&amount=1000&for=PayeeName
那么,一个恶意攻击者可以在另一个网站上放置如下代码: <img src=“http://www.examplebank.com/withdraw?account=Alice&amount=1000&for=Badman”>
如果有账户名为Alice的用户访问了恶意站点,而她之前刚访问过银行不久,登录信息尚未过期,那么她就会损失1000资金。
这种恶意的网址可以有很多种形式,藏身于网页中的许多地方。此外,攻击者也不需要控制放置恶意网址的网站。例如他可以将这种地址藏在论坛,博客等任何用户生成内容的网站中。这意味着如果服务端没有合适的防御措施的话,用户即使访问熟悉的可信网站也有受攻击的危险。
透过例子能够看出,攻击者并不能通过CSRF攻击来直接获取用户的账户控制权,也不能直接窃取用户的任何信息。他们能做到的,是欺骗用户浏览器,让其以用户的名义运行操作。

CSRF防范

检查Referer字段

HTTP头中有一个Referer字段,这个字段用以标明请求来源于哪个地址。在处理敏感数据请求时,通常来说,Referer字段应和请求的地址位于同一域名下。以上文银行操作为例,Referer字段地址通常应该是转账按钮所在的网页地址,应该也位于www.examplebank.com之下。而如果是CSRF攻击传来的请求,Referer字段会是包含恶意网址的地址,不会位于www.examplebank.com之下,这时候服务器就能识别出恶意的访问。
这种办法简单易行,工作量低,仅需要在关键访问处增加一步校验。但这种办法也有其局限性,因其完全依赖浏览器发送正确的Referer字段。虽然http协议对此字段的内容有明确的规定,但并无法保证来访的浏览器的具体实现,亦无法保证浏览器没有安全漏洞影响到此字段。并且也存在攻击者攻击某些浏览器,篡改其Referer字段的可能。

添加校验token

由于CSRF的本质在于攻击者欺骗用户去访问自己设置的地址,所以如果要求在访问敏感数据请求时,要求用户浏览器提供不保存在cookie中,并且攻击者无法伪造的数据作为校验,那么攻击者就无法再运行CSRF攻击。这种数据通常是窗体中的一个数据项。服务器将其生成并附加在窗体中,其内容是一个伪随机数。当客户端通过窗体提交请求时,这个伪随机数也一并提交上去以供校验。正常的访问时,客户端浏览器能够正确得到并传回这个伪随机数,而通过CSRF传来的欺骗性攻击中,攻击者无从事先得知这个伪随机数的值,服务端就会因为校验token的值为空或者错误,拒绝这个可疑请求。

XSS cross site scripting

https://www.jianshu.com/p/4fcb4b411a66
(我的描述非常不严谨,纯粹是为了好记。原理、 示例、防范可参考上面的链接)
反射型XSS,比如,在搜索框里输入了js代码,如果网站没有防范,会执行这个代码。
存储型XSS,如果用户的输入会被存储到文件/数据库中,且用户输入是js代码,那么其它用户访问网站时,由于也会加载文件/数据库,每次访问都会执行这个代码。

common weakness enumeration

https://cwe.mitre.org/

常见密码api误用(摘自毕设参考文献)

对称加密

Use a Non-Random IV for CBC Encryption (字典攻击)
Use ECB-Mode for Encryption (选择明文攻击。在java/android中,cipher.getinstance如果不指定模式和IV,会默认使用ECB模式
Insufficient Key Length (128位以下的密钥面临暴力破解)
Use a Risk or Broken Algorithm for Symmetric Encryption (如DES)
Use the Same Cryptographic Key Multiple Times or Hard-Coded Crptographic Keys for Encryption

hash

Use a Risk or Broken Algorithm (如MD4,MD5)

非对称加密

Inadequate Key Length (比如RSA,现在推荐2048位)
RSA Algorithm without OAEP (Optimal Asymmetric Encryption Padding,若不支持会削弱安全性)

Improper Certificate Validation

Missing Validation of Certificate
Improper Check for Certificate Revocation(撤销)
Improper Validation of Certificate Expiration
Improper Validation of Certificate with Host Mismatch
Improper Following of a Certificate’s Chain of Trust

密钥管理

Reusing a Nonce, Key Pair in Encryption (重放攻击)
Use of a Key Past its Expiration Date (扩大了攻击窗口)

安全建议

如选用基于口令的算法或在用户输入密码时,请避免使用String来引用,使用char[],用完立刻置空char[],避免内存攻击,如heap dump分析等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/891542.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java面试题目汇总

一、面向对象的三个基本特征 2、方法重载和方法重写的概念和区别 3、接口和内部类、抽象类的特性 4、文件读写的基本类 **5、串行化的注意事项以及如何实现串行化 6、线程的基本概念、线程的基本状态以及状态之间的关系 7、线程的同步、如何实现线程的同步 8、几种常用的数据结…

如何仿写简易tomcat 实现思路+代码详细讲解

仿写之前&#xff0c;我们要搞清楚都要用到哪些技术 自定义注解&#xff0c;比如Tomcat使用的是Servlet&#xff0c;我们可以定义一个自己的MyServlet构造请求体和返回体&#xff0c;比如tomcat使用HttpRequest&#xff0c;我们可以自己定义myHttpRequestjava去遍历一个指定目…

华为网络篇 单区域OSPF-32

难度1复杂度1 目录 一、相关原理 二、实验拓扑 三、实验步骤 四、实验过程 总结 一、相关原理 OSPF&#xff08;Open Shortest Path First&#xff09;是一种链路状态路由协议&#xff0c;它是由IETF的OSPF工作组开发的公有协议&#xff0c;所有的厂商都可以使用它。相比静…

算法01 跟左神刷题01

题目一 给定一个有序数组arr&#xff0c;代表坐落在X轴上的点&#xff0c;给定一个正数K&#xff0c;代表绳子的长度 返回绳子最多压中几个点?即使绳子边缘处盖住点也算盖住。 题的理解 贪心也行&#xff0c; 然后比如绳子的最右端到了973 绳子长度为100 而这是个有序数组…

Docker是什么, 为什么这么火

Docker本质 Docker 本质其实是 LXC 之类的增强版&#xff0c;它本身不是容器&#xff0c;而是容器的易用工具。容器是 linux 内核中的技术&#xff0c;Docker 只是把这种技术在使用上简易普及了。Docker 在早期的版本其核心就是 LXC 的二次封装发行版。 Docker 作为容器技术的一…

LLM 回答更加准确的秘密:为检索增强生成(RAG)添加引用源

如何让你的大模型变得更强&#xff1f;如何确定其获取信息来源的准确性&#xff1f; 想要回答这两个问题&#xff0c;就不得不提到今天文章的主角——RAG。RAG&#xff0c;也就是检索增强生成&#xff08;Retrieval-augmented generation) &#xff0c;可以弥补现有 LLM 应用能…

WPF CommunityToolkit.Mvvm

文章目录 前言ToolkitNuget安装简单使用SetProperty&#xff0c;通知更新RealyCommandCanExecute 新功能&#xff0c;代码生成器ObservablePropertyNotifyCanExecuteChangedForRelayCommand其他功能对应关系 NotifyPropertyChangedFor 前言 CommunityToolkit.Mvvm&#xff08;…

“去哪儿旅行”Java工程师内推资格——直入笔试,圆你大厂梦,放心啦,来源可靠,给你的梦想提提速!

岗位信息 Java开发工程师&#xff08;2024&#xff09; 所在地&#xff1a;北京市海淀区 工作职责: 按照需求,负责技术平台或业务支持系统的设计、维护,以及代码开发工作; 根据开发规范编写各种开发文档及项目文档; 协助需求方进行技术调研; 不断提高产品的代码质量,参与…

详解C#-static void Main(string[] args)

目录 简介: 举例: 输出结果:​编辑 总结&#xff1a; 简介: 在C#中static void Main(string[] args)这个句话有什么作用&#xff0c;分别代表什么意思&#xff01;&#xff01; 这句话是入口函数的声明&#xff0c;指定了C#程序的入口点&#xff0c;并定义了一个名为”Mai…

虹科分享 | 温度边缘效应对冻干成品含水量的影响(上)——原理和现象

01 冻干流程简介 生物制药成品的冻干过程通常包括以下三个步骤&#xff1a; 预冻&#xff08;Freezing&#xff09; 在冻干过程中&#xff0c;首先需要将生物制药成品冷冻至非常低的温度&#xff0c;通常在-40℃至-80℃之间。这有助于将水分转变为冰晶&#xff0c;减少冻干过…

低成本高收益,五金店小程序的秘密武器

如今&#xff0c;随着移动互联网的快速发展&#xff0c;小程序成为了许多企业进行线上业务拓展的重要方式之一。对于那些不懂代码的人来说&#xff0c;制作一个小程序可能会让人觉得困难重重。但是&#xff0c;现在&#xff0c;借助乔拓云平台&#xff0c;不懂代码的人也能轻松…

BUUCTF [安洵杯 2019]easy_serialize_php 1 详细讲解

题目来自buuctf&#xff0c;这是一题关于php序列化逃逸的题 1. 题目 题目给出的代码 <?php$function $_GET[f];function filter($img){$filter_arr array(php,flag,php5,php4,fl1g);$filter /.implode(|,$filter_arr)./i;return preg_replace($filter,,$img); }if($_S…

JVM——类文件结构

文章目录 一 概述二 Class 文件结构总结2.1 魔数2.2 Class 文件版本2.3 常量池2.4 访问标志2.5 当前类索引,父类索引与接口索引集合2.6 字段表集合2.7 方法表集合2.8 属性表集合 一 概述 在 Java 中&#xff0c;JVM 可以理解的代码就叫做字节码&#xff08;即扩展名为 .class …

File 类的用法, InputStream和Reader, OutputStream和Writer 的用法

前言 普通的文件长这样&#xff1a; 其实目录也是一种特殊文件&#xff1a; 一、文件前缀知识 &#xff08;一&#xff09;绝对路径和相对路径 以盘符开头的的路径&#xff0c;叫做绝对路径&#xff0c;如&#xff1a;D:\360Downloads\cat.jpg 以.或..开头的路径&#xff0c…

iOS UIAlertController控件

ios 9 以后 UIAlertController取代UIAlertView和UIActionSheet UIAlertControllerStyleAlert和UIAlertControllerStyleActionSheet。 在UIAlertController中添加按钮和关联输入框 UIAlertAction共有三种类型&#xff0c;默认&#xff08;UIAlertActionStyleDefault&#xff0…

网络通信原理计算IP地址都网络号 主机范围 可用个数(第四十四课)

计算192.168.1.1的网络号ID IP 地址中计算=⇒网络ID计算:默认网络位不变 注解位全0 一 IP地址的网络ID 方法一 192.168.1.1 为例 IP地址的网络号ID 11000000.10101000.00000001.00000001 1111111.11111111.11111111.00000000 逻辑与运算 (二进制) = 192.168.1.0 (十进制) …

Crimson:高性能,高扩展的新一代 Ceph OSD

背景 随着物理硬件的不断发展&#xff0c;存储软件所使用的硬件的情况也一直在不断变化。 一方面&#xff0c;内存和 IO 技术一直在快速发展&#xff0c;硬件的性能在极速增加。在最初设计 Ceph 的时候&#xff0c;通常情况下&#xff0c;Ceph 都是被部署到机械硬盘上&#x…

React 全栈体系(二)

第二章 React面向组件编程 一、基本理解和使用 1. 使用React开发者工具调试 2. 效果 2.1 函数式组件 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>1_函数式组件</title> </head> &l…

mac垃圾清理软件有哪些

随着使用时间的增加&#xff0c;mac系统会产生一些垃圾文件&#xff0c;影响系统的性能和稳定性。为了保持mac系统的高效&#xff0c;用户需要定期使用mac垃圾清理软件来清理系统缓存、日志、语言包等无用文件。CleanMyMac是一款功能强大的mac垃圾清理软件&#xff0c;它可以帮…

Allegro单位显示设置【mil/mm】

Allegro单位显示设置【mil/mm】 SetupUser PreferencesDisplayElementshowmeasure_altunits选择millimeters即可。 测量命令下就同时显示两个单位了