目录

网络安全之密码学

网络安全之密码学

目录


密码学

定义

密码学是网络安全、信息安全、区块链等产品的基础,常见的非对称加密、对称加密、散列函数等,都属于密码学范畴。密码学有数千年的历史,从最开始的 替换法 到如今的非对称加密算法,经历了古典密码学,近代密码学和现代密码学三个阶段。密码学不仅仅是数学家们的智慧,更是如今网络空间安全的重要基础。

替换法 — 就是用固定的信息将原文替换成无法直接阅读的密文信息。例如将 b 替换成 we 替换成 p ,这样 bee 单词就变换成了 wpp ,不知道替换规则的人就无法阅读出原文的含义。

密码学之于信息传输 — 在不安全的环境下 建立安全输出通道

密码 — 明文 –>算法+密钥 —> 密文

举例:
明文: ok
使用凯撒密码
算法:对字母进行平移可以左也可以右,移动若干位
密钥:向右平移3个字母
密文:rn

密码的分类

对称加密

https://i-blog.csdnimg.cn/blog_migrate/d02465427446ef110ccba2ca3a48d969.png

加解密用的是同一个密钥,数学角度是一个双向函数

对称加密首先要保证 算法足够复杂 以及 密钥传输 足够安全

加密信息传递又两个通道

密文传递通道

密钥传递通道

存在问题 — 密钥如何传输

非对称加密

在互联网时代我们希望能偶在网上公开途径传输密钥

https://i-blog.csdnimg.cn/blog_migrate/eceafa4e44b3ff2c42ffb0abc814278b.png

diff和hellmen开创了非对称加密算法 — DH算法

https://i-blog.csdnimg.cn/blog_migrate/76877a285e649ed46690e72a2bb75447.png

DH算法解决了在公开场合密钥安全传递问题

对称算法与非对称算法的优缺点

  • 对称加密算法解决信息的安全传输通道
  • 非对称加密算法解决对称加密算法密钥的安全传输通道
  • 对称加密速度快,但不安全
  • 非对称加密算法速度慢,但安全

最佳解决办法 — 用非对称加密算法加密对称加密算法的密钥

https://i-blog.csdnimg.cn/blog_migrate/3bae9bd6eb4548cb1316601920c4c9ae.png

非对称加密如何解决对称加密的困境

密钥安全传输 — 对称加密算法的缺陷

密钥传输风险

Alice与bob必须使用一个安全的信道来传输对称密钥,但是消息传输的通道是不安全的。对称加密A的密钥需要用对称加密B来传输—B的密钥不安全会导致A的不安全。

密码管理难

如果没有非对称加密,百度这个企业需要和用户做安全传输,就需要保存至少3-5亿个密钥。根据我们上图的非对称算法只需要一把公钥,而 对称需要亿级别 的钥匙

https://i-blog.csdnimg.cn/blog_migrate/e1da6dd69c7d264fead3134de71482bf.png

常见算法

对称算法

非对称算法

https://i-blog.csdnimg.cn/blog_migrate/f547981f4095b8737fdf252f3a605912.png

完整性与身份认证最佳解决方案

核心原理

私钥加密 、 公钥解密

过程 — 对明文a进行hash运算得到定长值h,然后对h进行非对称运算用私钥加密得到值k,然后对明文值a进行对称运算得到y,传输时同时传输给y和k,收到后用非对称公钥解开k得到h ,然后用堆成算法解开y得到a,然后对a进行hash得到h``,如果h 与h``相同, 则证明完整性与身份认证。

https://i-blog.csdnimg.cn/blog_migrate/05e0777cd7d87550d01e165e8560abcd.png

密码学的应用

身份认证技术的应用

身份认证 — 通过标识和鉴别用户身份, 防止 攻击者 假冒合法用户 来获取访问权限

身份认证技术 — 在网络总确认操作者身份的过程而产生的有效解决方法

如何确认信息发送者是本人

发送者是alice,使用非对称算法,生成私钥A,公钥B。

  1. alice把公钥给bob
  2. alice发送信息hello,world!
  3. alice把发送的信息用对称加密算法加密到加密信息C。
  4. alice把发送的hello,world!先用hash算法计算得到hash值D。
  5. alice把hash值D用非对称加密计算得到E。E值就是用于身份验证的。
  6. alice把C,E一起发给bob。
  7. bob收到C,E值,先用非对称的公钥对E进行解密,如果能正常解开则证明C值是alice的。

https://i-blog.csdnimg.cn/blog_migrate/3a7f54dc97a0e50d6e6e48996c6df945.png https://i-blog.csdnimg.cn/blog_migrate/5fbc2236e5b59491bd4a6356b11f683a.png

存在问题

上述1中如果黑客偷换了alice的公钥,那么就会出现身份 认证漏洞 https://i-blog.csdnimg.cn/blog_migrate/5016c13c009760c076be84c0cd5d3da1.png https://i-blog.csdnimg.cn/blog_migrate/ecbb2dff4b0af71a6b7cc6210835402a.png

解决问题

解决思路:

alice把公钥给bob的环节能确保是安全的,一定是alice给的。

想办法证明alice的公钥一定是alice的。

配置公钥的“身份证”—–数字证书

https://i-blog.csdnimg.cn/blog_migrate/6ec7db7bb563f743d40dcd71b15cde56.png

https://i-blog.csdnimg.cn/blog_migrate/738b23e4931e15680c1704530beeb4e7.png

CA

https://i-blog.csdnimg.cn/blog_migrate/d2792fe231276d55e28a648d151f8595.png

PKI

定义 — PKI(公开密钥体系,

Public Key Infrastructure

)是一种遵循标准的利用

非对称加密技术

为电子商务的开展提供一套安全基础平台的技术和规范。

简单说就是利用公钥技术建立的提供安全服务的基础设施。通过第三方的可信机构,

CA认证中心

把用户的公钥与用户的其他标识信息捆绑在一起放在用户证书中,在互联网上验证用户身份。

PKI体系

PKI — 是创建、颁发、管理、注销证书所涉及到的所有软件、硬件的集合体。其 核心元素 时 数字认证书 , 核心执行者 是 CA认证机构 https://i-blog.csdnimg.cn/blog_migrate/9790ea089f3c60022b4af84cbd6e31cd.png

CA中心

CA中心 — 即证书授权中心(Certificate Authority ),或称证书授权机构,作为

电子商务交易

中受信任的第三方。 https://i-blog.csdnimg.cn/blog_migrate/4e2a3fd1fca72c0b719d5f1a8ea7e58e.png

数字证书

包括 — 用户身份信息;用户公钥信息;身份验证机构的信息及签名数据

分类

签名证书 —- 身份验证, 不可抵赖性

加密证书 —- 加密, 完整性 与 机密性

密码学完整应用

SSL协议分析

定义

SSL协议(Secure Sockets Layer)安全套接层 — 由美国网景通信(Netscape)公司自1990年开发,用于保证WWW通信安全。主要任务是提供 私密性

信息完整性

身份认证

介绍

SSL — 一个 不依赖 于平台和运用程序的协议,位于TCP/IP协议与各种应用层协议之间,为数据通信 提高安全支持 。

无客户端认证的握手过程

注意:

可能遭受到的攻击: 重放攻击

重放攻击(Replay Attacks) — 又称重播攻击、回放攻击,是指攻击者发送一个目的主机 已接收过 的包,来达到 欺骗系统 的目的,主要用于身份认证过程, 破坏认证

正确性 。

PreMasterKey密钥参数 — 合成对称密钥的前置数值

https://i-blog.csdnimg.cn/blog_migrate/0d15756b4c57822116688e07576d39a3.png

初始化向量 https://i-blog.csdnimg.cn/blog_migrate/95291dd8b283f6157fec9fc60e83f86e.png

有客户端认证的握手过程

报文类型参数
hello_request
client_hello版本、随机数、会话ID、密文族、压缩方法
server_hello版本、随机数、会话ID、密文族、压缩方法
certificatex.509V3证书链
server_key_exchange参数、签名
certificate_request类型、授权
server_done
certificate_verify签名
client_key_exchange参数、签名
finishedHash值

会话恢复过程(之前已经建立过会话,再次连接)

https://i-blog.csdnimg.cn/blog_migrate/6c96c354e5c5768bedb82176aad88328.png

SSL协议的细节

协议位置

https://i-blog.csdnimg.cn/blog_migrate/d88e4687c2aa322bc37aae6c09bab630.png

注意:

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 创建。会话定义了一组可供 多个 连接共享的 密码安全参数 。会话用以 避免 为每个连接 提供新的安全参数 所需的昂贵的 协商代价 。 https://i-blog.csdnimg.cn/blog_migrate/f701aaa41964b559898ea2279edde6ea.png