一、前言
本系列文章旨在温习计算机网络中心常识,进一步夯实根底,为今后 参与物联网、音视频、直播、即时通讯等范畴的项目做必定的常识储藏。
文章列表:
- 01-计算机网络中心常识|计算机网络通识【计算机网络性能指标、网络协议分层的几种办法、OSI七层模型概念通识】
- 02-计算机网络中心常识|【建立调试环境、新建Java项目、计算机通讯根底、计算机衔接办法、集线器/网桥/交换机/路由器】
- 03-计算机网络中心常识|【MAC地址、IP地址的组成、IP地址的分类、CIDR、子网掩码、超网】
- 04-计算机网络中心常识|【 静态路由、动态路由、数据包的传输、ISP、服务器机房、网络分类、家用无线路由器、公网IP、
- 05-计算机网络中心常识|物理层/数据链路层【模拟信号&&数字信号、数据链路层】
- 06-计算机网络中心常识|网络层【IP数据包Packet、网络协议、Checksum、源IP地址和目标IP地址、ping】
- 07-计算机网络协议中心常识|【传输层-UDP】
- 08-计算机网络协议中心常识|【传输层-TCP之牢靠传输】
- 09-计算机网络中心常识|传输层TCP2【流量控制原理、拥塞控制:slow start、congestion avoidance、快速重传、快速恢复】
- 10-计算机网络协议中心常识|【传输层-TCP衔接】
- 11-计算机网络协议中心常识|【 应用层】
- 12-计算机网络中心常识|【Cookie、Session(概念、生命周期、有效期、浏览器的要求等)、跨域(概念、 同源策略、跨域处理方
- 13-计算机网络协议中心常识|【 署理/CDN/网络安全】
- 14-计算机网络协议中心常识|【(非)对称加密/数字签名/证书】
- 15-计算机网络协议中心常识|【HTTPS】
- 16-计算机网络中心常识|HTTPS协议【HTTP2、HTTP3】 很多开发人员经常听说加解密,但对其间原理不太了解,本文首要重视常用的加密原理。
二、对称加密
在对称加密中(也叫对称暗码),加密宽和密运用的是同一个密钥。
常见的对称加密算法:
- DES
- 3DES
- AES
2.1. DES(Data Encryption Standard)
DES是一种将64bit明文加密成64bit密文的对称加密算法,密钥长度是56bit。
标准上来说,密钥长度是64bit,但每隔7bit会设置一个用于错误检查的bit,因而密钥长度实质上是56bit。由于DES每次只能加密64bit的数据,遇到比较大的数据,需求对DES加密进行迭代(反复)。现在现已能够在短时间内被破解,所以不建议运用。
2.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。
2.3. AES(Advanced Encryption Standard)
AES是替代DES成为新标准的一种对称加密算法,又称为Rijndael加密法(算法发明人叫做Rijndael)。
AES的密钥长度有128、192、256bit三种。现在AES现已逐渐替代DES、3DES,成为首选的对称加密算法。
一般来说,我们也不应该去运用任何自制的暗码算法,而是应该运用AES。因为它经过了全世界暗码学家所进行的高品质验证作业。
2.4. 密钥配送问题
在运用对称加密时,必定会遇到密钥配送问题。
假如Alice将运用对称加密过的音讯发给了Bob,只要将密钥发送给Bob,Bob才干完结解密。在发送密钥进程中,可能会被Eve盗取密钥,最后Eve也能完结解密。
怎么处理密钥配送问题? 有以下几种处理密钥配送的办法:
- 事前同享密钥(比如暗里同享)
- 密钥分配中心(Key Distribution Center,简称KDC)
- Diffie-Hellman密钥交换
- 非对称加密
三、非对称加密
在非对称加密(Asymmetric Cryptography)中,密钥分为加密密钥、解密密钥2种,它们并不是同一个密钥。
加密密钥:一般是揭露的,因而该密钥称为公钥(public key)。因而,非对称加密也被称为公钥暗码(Public-key Cryptography)。
解密密钥:由音讯接收者自己保管的,不能揭露,因而也称为私钥(private key)。
3.1. 公钥和私钥
公钥和私钥是一一对应的,不能单独生成。一对公钥和私钥统称为密钥对(key pair)。
由公钥加密的密文,有必要运用与该公钥对应的私钥才干解密。
由私钥加密的密文,有必要运用与该私钥对应的公钥才干解密。
因为非对称加密算法愈加杂乱(安全),所以加密解密速度会比较慢(效率低)。相反而言,对称加密简单(不安全),所以加密解密速度更快(效率高)。
3.2. 处理密钥配送问题
由音讯的接收者生成一对公钥和私钥。将公钥发给音讯的发送者,音讯的发送者运用公钥加密音讯。
3.3. RSA
RSA的名字由它的3位开发者姓氏首字母组成(Rivest、Adi Shamir、Leonard Adleman),也是现在运用最广泛的非对称加密算法。
3.4. 混合暗码体系(Hybrid Cryptosystem)
对称加密的缺陷:不能很好地处理密钥配送问题(密钥会被盗取)。
非对称加密的缺陷:加密解密速度比较慢。
混合暗码体系:是将对称加密和非对称加密的优势相结合的办法。处理了非对称加密速度慢的问题,并经过非对称加密处理了对称加密的密钥配送问题。
网络上的暗码通讯所用的SSL/TLS都运用了混合暗码体系。
3.4.1. 混合暗码-加密
会话密钥(session key):
- 为本次通讯随机生成的临时密钥
- 作为对称加密的密钥,用于加密音讯,提高速度
加密进程(发送音讯):
- 首先,音讯发送者要具有音讯接收者的公钥
- 生成会话密钥,作为对称加密的密钥,加密音讯
- 用音讯接收者的公钥,加密会话密钥
- 将前2步生成的加密成果,同时发给音讯接收者
发送出去的内容包括:
- 用会话密钥加密的音讯(加密办法:对称加密)
- 用公钥加密的会话密钥(加密办法:非对称加密)
3.4.2. 混合暗码-解密
解密进程(收到音讯):
- 音讯接收者用自己的私钥解密出会话密钥
- 再用第一步解密出来的会话密钥解密音讯
3.4.2. 混合暗码-加密解密流程
场景:Alice发送音讯给Bob。
发送进程(加密进程):
- Bob先生成一对公钥和私钥
- Bob把公钥同享给Alice
- Alice随机生成一个会话密钥(临时密钥)
- Alice用会话密钥加密需求发送的音讯(运用的是对称加密)
- Alice用Bob的公钥加密会话密钥(运用的是非对称加密)
- Alice把第4、5步的加密成果同时发送给Bob
接收进程(解密进程):
- Bob运用自己的私钥解密会话密钥(运用的是非对称加密算法进行解密)
- Bob运用会话密钥解密发送过来的音讯(运用的是对称加密算法进行解密)
四、数字签名
例如,Alice发送内容给Bob(明文)。Alice发的内容有可能是被篡改的,或许有人假装成Alice发音讯,或许便是Alice发的,但她能够否认。
问题来了:Bob怎么确定这段音讯的真实性?怎么识别篡改、假装、否认?
处理方案:数字签名。
4.1. 数字签名进程
在数字签名技术中,有以下2种行为:
- 生成签名
- 由音讯的发送者完结,经过“签名密钥”生成
- 验证签名
- 由音讯的接收者完结,经过“验证密钥”验证
怎么能确保这个签名是音讯发送者自己签的?用音讯发送者的私钥进行签名。
签名进程:
由于非对称加密速度比较慢,当音讯体量比较大时效率就会下降,所以能够运用单向散列函数对其进程进行改进(对散列值进行加密解密,然后比较散列值):
音讯发送者生成密钥对是为了防止密钥被篡改。音讯接收者生成密钥对是不想音讯被其他人看到。
- 假如有人篡改了音讯内容或签名内容,会是什么成果?
- 签名验证失利,证明内容被篡改了。
- 数字签名不能确保机密性?
- 数字签名的效果不是为了确保机密性,只是是为了能够识别内容有没有被篡改。
- 数字签名的效果
- 承认音讯的完整性
- 识别音讯是否被篡改
- 防止音讯发送人否认
4.2. 非对称加密和数字签名对比
在非对称加密中,任何人都能够运用公钥进行加密。
在数字签名中,任何人都能够运用公钥验证签名。
数字签名,其实便是将非对称加密反过来运用。
非对称加密:既然是加密,那肯定是不希望别人知道我的音讯,所以只要我才干解密。公钥担任加密,私钥担任解密。
数字签名:既然是签名,肯定是不希望有人冒充我发音讯,所以只要我才干签名。 私钥担任签名,公钥担任验签。
4.3. 公钥的合法性
假如遭遇了中间人攻击,那么公钥将可能是假造的。
对称加密无法确保密钥的安全,后面有了非对称加密。但是非对称加密也有公钥被盗取的危险(混合加密和签名也是一样的,只要有传输公钥这一进程,就会有盗取危险),所以怎么才干验证公钥的合法性呢?运用证书。
五、证书
说到证书,首先联想到的是驾驶证、毕业证、英语四六级证等,这些都是由权威组织认证的。
暗码学中的证书,全程叫公钥证书(Public-key Certificate,PKC),跟驾驶证类似,里边有名字、邮箱等个人信息,以及此人的公钥。并由认证组织(Certificate Authority,CA)进行数字签名。
CA便是能够确定“公钥的确属于此人”并能够生成数字签名的个人或许安排。
CA能够是有国际性的安排、政府设立的安排、经过供给认证服务来盈利的企业,个人也能够成立认证组织。
5.1. 注册和下载
5.2. 证书的运用
第4步和第5步只要被篡改,就会认证失利。因为证书签名始终都是环绕CA认证组织验证的。
各大CA的公钥,默许现已内置在浏览器和操作体系中。
5.3. 检查证书
5.3.1. Windows
-
Windows + R
-> 输入mmc
- 文件 -> 增加/删去办理单元
- 证书 -> 增加 -> 我的用户账户 -> 完结 -> 确定
5.3.2. Mac
Mac体系的证书统一在钥匙串
中办理。