您现在的位置是:首页 >技术交流 >网络安全之密码学网站首页技术交流
网络安全之密码学
目录
最佳解决办法 --- 用非对称加密算法加密对称加密算法的密钥
密码学
定义
密码学是网络安全、信息安全、区块链等产品的基础,常见的非对称加密、对称加密、散列函数等,都属于密码学范畴。密码学有数千年的历史,从最开始的替换法到如今的非对称加密算法,经历了古典密码学,近代密码学和现代密码学三个阶段。密码学不仅仅是数学家们的智慧,更是如今网络空间安全的重要基础。
替换法 --- 就是用固定的信息将原文替换成无法直接阅读的密文信息。例如将
b
替换成w
,e
替换成p
,这样bee
单词就变换成了wpp
,不知道替换规则的人就无法阅读出原文的含义。
密码学之于信息传输 --- 在不安全的环境下建立安全输出通道
密码 --- 明文 -->算法+密钥 ---> 密文
举例:
明文: ok
使用凯撒密码
算法:对字母进行平移可以左也可以右,移动若干位
密钥:向右平移3个字母
密文:rn
密码的分类
对称加密
加解密用的是同一个密钥,数学角度是一个双向函数
对称加密首先要保证算法足够复杂以及密钥传输足够安全
加密信息传递又两个通道
密文传递通道
密钥传递通道
存在问题 --- 密钥如何传输
非对称加密
在互联网时代我们希望能偶在网上公开途径传输密钥
diff和hellmen开创了非对称加密算法 --- DH算法
DH算法解决了在公开场合密钥安全传递问题
对称算法与非对称算法的优缺点
- 对称加密算法解决信息的安全传输通道
- 非对称加密算法解决对称加密算法密钥的安全传输通道
- 对称加密速度快,但不安全
- 非对称加密算法速度慢,但安全
最佳解决办法 --- 用非对称加密算法加密对称加密算法的密钥
非对称加密如何解决对称加密的困境
密钥安全传输 --- 对称加密算法的缺陷
密钥传输风险
Alice与bob必须使用一个安全的信道来传输对称密钥,但是消息传输的通道是不安全的。对称加密A的密钥需要用对称加密B来传输---B的密钥不安全会导致A的不安全。
密码管理难
如果没有非对称加密,百度这个企业需要和用户做安全传输,就需要保存至少3-5亿个密钥。根据我们上图的非对称算法只需要一把公钥,而对称需要亿级别的钥匙
常见算法
对称算法
非对称算法
完整性与身份认证最佳解决方案
核心原理 --- 私钥加密、公钥解密
过程 --- 对明文a进行hash运算得到定长值h,然后对h进行非对称运算用私钥加密得到值k,然后对明文值a进行对称运算得到y,传输时同时传输给y和k,收到后用非对称公钥解开k得到h,然后用堆成算法解开y得到a,然后对a进行hash得到h``,如果h
与h``相同, 则证明完整性与身份认证。
密码学的应用
身份认证技术的应用
身份认证 --- 通过标识和鉴别用户身份,防止攻击者假冒合法用户来获取访问权限
身份认证技术 --- 在网络总确认操作者身份的过程而产生的有效解决方法
如何确认信息发送者是本人
发送者是alice,使用非对称算法,生成私钥A,公钥B。
-
alice把公钥给bob
-
alice发送信息hello,world!
-
alice把发送的信息用对称加密算法加密到加密信息C。
-
alice把发送的hello,world!先用hash算法计算得到hash值D。
-
alice把hash值D用非对称加密计算得到E。E值就是用于身份验证的。
-
alice把C,E一起发给bob。
-
bob收到C,E值,先用非对称的公钥对E进行解密,如果能正常解开则证明C值是alice的。
存在问题
上述1中如果黑客偷换了alice的公钥,那么就会出现身份认证漏洞
解决问题
解决思路:
alice把公钥给bob的环节能确保是安全的,一定是alice给的。
想办法证明alice的公钥一定是alice的。
配置公钥的“身份证”-----数字证书
CA
PKI
PKI体系
PKI --- 是创建、颁发、管理、注销证书所涉及到的所有软件、硬件的集合体。其核心元素时数字认证书,核心执行者是CA认证机构
CA中心
数字证书
包括 --- 用户身份信息;用户公钥信息;身份验证机构的信息及签名数据
分类 --- 签名证书 ---- 身份验证,不可抵赖性
加密证书 ---- 加密,完整性与机密性
密码学完整应用
SSL协议分析
定义
SSL协议(Secure Sockets Layer)安全套接层 --- 由美国网景通信(Netscape)公司自1990年开发,用于保证WWW通信安全。主要任务是提供私密性,信息完整性和身份认证。
介绍
SSL --- 一个不依赖于平台和运用程序的协议,位于TCP/IP协议与各种应用层协议之间,为数据通信提高安全支持。
无客户端认证的握手过程
注意:
可能遭受到的攻击:重放攻击
重放攻击(Replay Attacks) --- 又称重播攻击、回放攻击,是指攻击者发送一个目的主机已接收过的包,来达到欺骗系统的目的,主要用于身份认证过程,破坏认证的正确性。
PreMasterKey密钥参数 --- 合成对称密钥的前置数值
初始化向量
有客户端认证的握手过程
报文类型 | 参数 |
hello_request | 空 |
client_hello | 版本、随机数、会话ID、密文族、压缩方法 |
server_hello | 版本、随机数、会话ID、密文族、压缩方法 |
certificate | x.509V3证书链 |
server_key_exchange | 参数、签名 |
certificate_request | 类型、授权 |
server_done | 空 |
certificate_verify | 签名 |
client_key_exchange | 参数、签名 |
finished | Hash值 |
会话恢复过程(之前已经建立过会话,再次连接)
SSL协议的细节
协议位置
注意:
ssl --- 介于应用层和tcp层之间。应用层数据不再直接传递给传输层,而是传递给ssl层,ssl层对从应用层收到的数据进行加密,并增加自己的ssl头。
体系结构
SSL握手协议(SSL Handshake Protocol) --- 建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。
SSL记录协议(SSL Record Protocol) --- 建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。
注意:
SSL协议实际上是SSL握手协议、SSL修改密文协议、SSL警告协议和SSL记录协议组成的一个协议族。
SSL修改密文协议 --- 在客服端和服务器完成握手协议之后,它需要向对方发送相关消息(该消息只包含一个值为1的单字节),通知对方随后的数据将用刚刚协商的密码规范算法和关联的密钥处理,并负责协调本方模块按照协商的算法和密钥工作。
SSL报警协议 --- 是用来为对等实体传递SSL的相关警告。如果在通信过程中某一方发现任何异常,就需要给对方发送一条警示消息通告。
SSL的两个概念
连接 --- 是一个提供一种合适类型服务的传输(OSI分层的定义)。SSL是点对点的关系。连接是暂时的,每一个连接和一个会话关联。
会话 --- 是在客户与服务器之间的一个关联。会话由handshake protocol创建。会话定义了一组可供多个连接共享的密码安全参数。会话用以避免为每个连接提供新的安全参数所需的昂贵的协商代价。