网络安全之密码学
网络安全之密码学
目录
密码学
定义
密码学是网络安全、信息安全、区块链等产品的基础,常见的非对称加密、对称加密、散列函数等,都属于密码学范畴。密码学有数千年的历史,从最开始的 替换法 到如今的非对称加密算法,经历了古典密码学,近代密码学和现代密码学三个阶段。密码学不仅仅是数学家们的智慧,更是如今网络空间安全的重要基础。
替换法 — 就是用固定的信息将原文替换成无法直接阅读的密文信息。例如将
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(公开密钥体系,
Public Key Infrastructure
)是一种遵循标准的利用
非对称加密技术
为电子商务的开展提供一套安全基础平台的技术和规范。
简单说就是利用公钥技术建立的提供安全服务的基础设施。通过第三方的可信机构,
CA认证中心
把用户的公钥与用户的其他标识信息捆绑在一起放在用户证书中,在互联网上验证用户身份。
PKI体系
PKI — 是创建、颁发、管理、注销证书所涉及到的所有软件、硬件的集合体。其
核心元素
时
数字认证书
,
核心执行者
是
CA认证机构
CA中心
CA中心 — 即证书授权中心(Certificate Authority ),或称证书授权机构,作为
电子商务交易
中受信任的第三方。
数字证书
包括 — 用户身份信息;用户公钥信息;身份验证机构的信息及签名数据
分类
签名证书 —- 身份验证, 不可抵赖性
加密证书 —- 加密, 完整性 与 机密性
密码学完整应用
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
创建。会话定义了一组可供
多个
连接共享的
密码安全参数
。会话用以
避免
为每个连接
提供新的安全参数
所需的昂贵的
协商代价
。