系列博文

  1. 信安小白,说明白渗透测试及信息安全
  2. 信安小白,一篇博文讲明白暴力破解和SQL注入
  3. 信安小白,一篇博文讲明白上传漏洞——获得shop靶机的Webshell
  4. 信安小白,一篇博文讲明白存储型、反射型XSS漏洞
  5. 信安小白,一篇博文讲明白CSRF攻击和防御
  6. 信安小白,科普一篇博文讲对称密码算法、非对称密码算法
  7. 信安小白,一篇博文讲明白数字签名
  8. 信安小白,一篇博文讲明白数字证书和PKI(公钥基础设施)

案例剖析——密码算法的运用

  Alice想将一份大数据量的合同文件通 Internet 发给远在国外的Bob,此合同文件对双方非常重要,不能有丝毫差错,而且此文件绝对不能被其他人得知其内容。如何才能实现这个合同的安全发送?
jm
Q1: 到底应该用什么加密技术,才能使合同传送既安全又快速呢 ?

A1: Alice使用对称加密算法对合同进行加密,每次产生一个新的随机密钥(会话密钥, 用会话密钥加密信息。

Q2: Bob怎样才能安全地得到其会话密钥呢?用电话通知,若电话被窃听,通过 Internet 发此密钥给Bob ,可能被黑客截获,怎么办 ?
A2: 使用非对称加密算法传递会话密钥。

设计:
  Alice使用对称加密算法对合同进行加密(AES加密的密钥,密钥可以128或者256位)——会话密钥。为了让会话密钥安全传递给Bob,因此用RSA算法加密会话密钥。用Bob的公钥进行RSA加密,加密后将物品交给Bob。Bob收到后先用自己的私钥解密获得会话密钥,再用会话密钥解密成合同。
jm
Q3: 这样是不是就安全了?会不会出差错?
A3: 该模型最根本的安全性是RSA的安全性,RSA的加密是用Bob的公钥加密,只能Bob解开。但如果黑客截获Alice发的信息,虽不能解密(因为没有Bob的私钥无法解开),但可以加密一份假文件冒充Alice发给Bob(可以用AES加密假合同,用Bob的公钥加密AES加密过的会话密钥),Bob并不知道这不是Alice发给他的。 因此需要Alice在合同上签名,证明是Alice发出的。

注: RSA算法的公钥E和私钥D可反过来用,用私钥D加密,用公钥E解密。因为公钥是公开的,所以用私钥D加密不是为了保密,但可以证明是谁的公钥可以解开。
   因为私钥D加密的数据只能用公钥解密。那么反过来可以这样认为,只要公钥E能解密出来的东西一定是私钥D加密的(防抵赖)。而私钥只有一个人保存,不可能泄漏给第三方。 那这种机制就可以做为数字签名来用,就如同个人在支票上手写签名一样。不可能有人仿造出来。


数字签名

  数字签名就是私钥加密的个人信息,不能用来保密。任何人都能用公钥将这个信息解密出来。但因为所有人都没有加密人的私钥,因此无法重新做成数字签名!现在数字签名具有法律效应,经常用在网上银行支付上。但数字签名中个人信息比较长,采用非对称密钥加密算法计算慢,需采用Hash算法进行文件压缩。

1.1 Hash算法——信息摘要

hx
特性:

  • 不可逆,单向性。任意长度文件都得到固定长度的结果。
  • 运算上的唯一性。
  • 对任何长度的信息进行哈希后,结果都是一个固定长度的数据摘要
  • 原始信息中一个字节的改变会导致摘要后的结果发生变化
  • 常用Hash算法:MD5、SHA、SHA-1

1.2 数字签名和Hash算法相结合

sj
  Alice将合同进行Hash算法压缩,得到一个固定长度的Hash值,再用自己的私钥进行签名(RSA加密)发送给Bob。Bob收到后,先用Alice的公钥解压缩,得到Hash值,但是此时不能反解Hash值(Hash不可逆)。因此现在只能证明,发送过来的文件确实是Alice发送的。

请添加图片描述
  合同无法反Hash解开合同,Alice还需要把合同附上。Hash算法的特点是不可逆和唯一性,因此Alice需要将合同和加密后的哈希值以及Alice的公钥一同发给Bob,Bob收到后先将合同用Hash算法加密一次,之后比较自己加密的Hash值和原本的Hash值是否相同,两个Hash值如果一摸一样,因此证明此合同是Alice确认过的,有Alice的签名。但合同也要保密还要签名…

1.3 加密和数字签名结合

  • 合同必须加密,用对称加密算法AES,密钥由发送方(Alice)产生,会话密钥。
  • 为了安全把AES密钥交给接收方,需要用非对称算法RSA算法加密,密钥是接收方(Bob)的公钥。因为只有Bob能用自己的私钥解开加密文件,不被第三方知道。
  • 合同需要双方数字签名,签名用到hash算法和RSA算法,密钥是发送方(Alice)的私钥签名。因为用发送方(Alice)的公钥解密,可证明签名的是发送方(Alice)签的名。
  • 发送给发送方的东西三部分:加密的合同、RSA加密的AES算法的密钥,Alice的签名。(看下图)

jm

1.4 PGP邮件加密(举例)

  • PGP(pretty good privacy) 是 1990 年左右由 菲利普·齐墨尔曼个人编写的密码软件,现在依然在世界上被广泛使用。
  • PGP 可以在 Windows、Mac OS X、Linux 等多平台上运行,版本包括商用版和免费版
  • 因为 PGP 中使用了 RSA 算法,侵犯了专利权,RSASecurity 公司起诉。美国出口管理法案定义,加密系统使用大于 40 位的密钥将被认为是军需品。
  • 经过三年的调查,齐默尔曼最终并未被起诉。1996年齐默尔曼创立了 PGP 公司。
  • PGP 具备现代密码软件所必须的几乎全部功能。

PGP 报文格式

jm

1.5 总结

jm


Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐