【网络协议笔记】第五层:应用层(Application)HTTP

2022-05-01  本文已影响0人  李明燮

这一篇整理了对称加密,非对称加密,数字签名,证书。

图片备用地址

1.对称加密

在对称加密中(也叫对称密码),加密和解密使用的是同一个密钥

图片备用地址

图片备用地址

常见的对称加密算法:

1.1 DES(Data Encryption Standard)

图片备用地址

DES是一种将64bit明文加密成64bit密文的对称加密算法,密钥长度是56bit。

规格上来说,密钥长度是64bit,但每隔7bit会设置一个用于错误检查的bit,因此密钥长度实质上是56bit。
由于DES每次只能加密64bit的数据,遇到比较大的数据,需要对DES加密进行迭代(反复)。
目前已经可以在短时间内被破解,所以不建议使用。

1.2 3DES(Triple Data Encryption Algorithm)

3DES,是将DES重复3次所得到的的一种密码算法,也叫做3重DES。

三重DES并不是进行三次DES加密(加密 -> 加密 -> 加密),而是加密 -> 解密 -> 加密的过程。
目前还被一些银行等机构使用,但处理速度不高,安全性逐渐暴露出问题。

图片备用地址

3个密钥都是不同的,也称为DES-EDE3。EDE是Encryption Decryption Encryption的缩写。
如果所有密钥都使用同一个,则结果与普通的DES是等价的。

图片备用地址

如果密钥1、密钥3相同,密钥2不同,称为DES-EDE2。

图片备用地址

1.3 AES(Advanced Encryption Standard)

AES是取代DES成为新标准的一种对称加密算法,又称为Rijndael加密法(算法发明人叫做Rijndael)。
AES的密钥长度有128、192、256bit三种。目前AES已经逐步取代DES、3DES,成为首选的对称加密算法。
一般来说,我们也不应该去使用任何自制的密码算法,而是应该使用AES。因为它经过了全世界密码学家所进行的高品质验证工作。

1.4 密钥配送问题

在使用对称加密时,一定会遇到密钥配送问题。

图片备用地址

如果Alice将使用对称加密过的消息发给了Bob,只有将密钥发送给Bob,Bob才能完成解密。
在发送密钥过程中,可能会被Eve窃取密钥,最后Eve也能完成解密。

如何解决密钥配送问题?
有以下几种解决密钥配送的方法:

2.非对称加密

非对称加密(Asymmetric Cryptography)中,密钥分为加密密钥、解密密钥2种,它们并不是同一个密钥。

加密密钥: 一般是公开的,因此该密钥称为公钥(public key)。因此,非对称加密也被称为公钥密码(Public-key Cryptography)。
解密密钥: 由消息接收者自己保管的,不能公开,因此也称为私钥(private key)。

图片备用地址

图片备用地址

2.1 公钥和私钥

公钥和私钥是一一对应的,不能单独生成。一对公钥和私钥统称为密钥对(key pair)。
由公钥加密的密文,必须使用与该公钥对应的私钥才能解密。
由私钥加密的密文,必须使用与该私钥对应的公钥才能解密。
因为非对称加密算法更加复杂(安全),所以加密解密速度会比较慢(效率低)。相反而言,对称加密简单(不安全),所以加密解密速度更快(效率高)。

2.2 解决密钥配送问题

由消息的接收者生成一对公钥和私钥。将公钥发给消息的发送者,消息的发送者使用公钥加密消息。

图片备用地址

2.3 RSA

RSA的名字由它的3位开发者姓氏首字母组成(Rivest、Adi Shamir、Leonard Adleman),也是目前使用最广泛的非对称加密算法。

2.4 混合密码系统(Hybrid Cryptosystem)

对称加密的缺点: 不能很好地解决密钥配送问题(密钥会被窃取)。
非对称加密的缺点: 加密解密速度比较慢。
混合密码系统: 是将对称加密和非对称加密的优势相结合的方法。解决了非对称加密速度慢的问题,并通过非对称加密解决了对称加密的密钥配送问题。

网络上的密码通信所用的SSL/TLS都运用了混合密码系统。

2.4.1 混合密码-加密

会话密钥(session key):

加密步骤(发送消息):

发送出去的内容包括:

图片备用地址

2.4.2 混合密码-解密

解密步骤(收到消息):

图片备用地址

2.4.3 混合密码-加密解密流程

场景:Alice发送消息给Bob。

发送过程(加密过程):

接收过程(解密过程):

3.数字签名

例如,Alice发送内容给Bob(明文)。Alice发的内容有可能是被篡改的,或者有人伪装成Alice发消息,或者就是Alice发的,但她可以否认。

问题来了:Bob如何确定这段消息的真实性?如何识别篡改、伪装、否认?
解决方案:数字签名。

3.1 数字签名过程

在数字签名技术中,有以下2种行为:

如何能保证这个签名是消息发送者自己签的?用消息发送者的私钥进行签名。

签名过程:

图片备用地址

由于非对称加密速度比较慢,当消息体量比较大时效率就会下降,
所以可以利用单向散列函数对其过程进行改进(对散列值进行加密解密,然后比较散列值):

图片备用地址

图片备用地址

application_65.png

消息发送者生成密钥对是为了防止密钥被篡改。消息接收者生成密钥对是不想消息被其他人看到。

3.2 非对称加密和数字签名对比

在非对称加密中,任何人都可以使用公钥进行加密。

图片备用地址

在数字签名中,任何人都可以使用公钥验证签名。

图片备用地址

数字签名,其实就是将非对称加密反过来使用。

图片备用地址

非对称加密: 既然是加密,那肯定是不希望别人知道我的消息,所以只有我才能解密。公钥负责加密,私钥负责解密。
数字签名: 既然是签名,肯定是不希望有人冒充我发消息,所以只有我才能签名。 私钥负责签名,公钥负责验签。

3.3 公钥的合法性

如果遭遇了中间人攻击,那么公钥将可能是伪造的。

图片备用地址

对称加密无法保证密钥的安全,后面有了非对称加密。
但是非对称加密也有公钥被窃取的风险(混合加密和签名也是一样的,只要有传输公钥这一步骤,就会有窃取风险),
所以如何才能验证公钥的合法性呢?使用证书。

4.证书

说到证书,首先联想到的是驾驶证、毕业证、英语四六级证等,这些都是由权威机构认证的。

密码学中的证书,全程叫公钥证书(ublic-key Certificate,PKC),跟驾驶证类似,里面有姓名、邮箱等个人信息,以及此人的公钥。
并由认证机构(Certificate Authority,CA)进行数字签名。

CA就是能够认定“公钥确实属于此人”并能够生成数字签名的个人或者组织。
CA可以是有国际性的组织、政府设立的组织、通过提供认证服务来盈利的企业,个人也可以成立认证机构。

4.1 注册和下载

图片备用地址

4.2 证书的使用

图片备用地址

第4步和第5步只要被篡改,就会认证失败。因为证书签名始终都是围绕CA认证机构验证的。
各大CA的公钥,默认已经内置在浏览器和操作系统中。

4.3 查看证书

4.3.1 Windows

  1. Windows + R -> 输入mmc
  2. 文件 -> 添加/删除管理单元
  3. 证书 -> 添加 -> 我的用户账户 -> 完成 -> 确定

图片备用地址

4.3.2 Mac

Mac系统的证书统一在钥匙串中管理。

图片备用地址


欢迎大家的意见和交流

email: li_mingxie@163.com

上一篇 下一篇

猜你喜欢

热点阅读