一、前言

本系列文章旨在温习计算机网络中心常识,进一步夯实根底,为今后 参与物联网、音视频、直播、即时通讯等范畴的项目做必定的常识储藏。

文章列表:

  • 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】 很多开发人员经常听说加解密,但对其间原理不太了解,本文首要重视常用的加密原理。

14-计算机网络核心知识|网络安全【(非)对称加密算法、混合加密、数字签名、证书】

二、对称加密

在对称加密中(也叫对称暗码),加密宽和密运用的是同一个密钥。

14-计算机网络核心知识|网络安全【(非)对称加密算法、混合加密、数字签名、证书】
14-计算机网络核心知识|网络安全【(非)对称加密算法、混合加密、数字签名、证书】

常见的对称加密算法:

  • DES
  • 3DES
  • AES

2.1. DES(Data Encryption Standard

14-计算机网络核心知识|网络安全【(非)对称加密算法、混合加密、数字签名、证书】

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加密(加密 -> 加密 -> 加密),而是加密 -> 解密 -> 加密的进程。现在还被一些银行等组织运用,但处理速度不高,安全性逐渐露出出问题。

14-计算机网络核心知识|网络安全【(非)对称加密算法、混合加密、数字签名、证书】

3个密钥都是不同的,也称为DES-EDE3。EDE是Encryption Decryption Encryption的缩写。

假如所有密钥都运用同一个,则成果与一般的DES是等价的。

14-计算机网络核心知识|网络安全【(非)对称加密算法、混合加密、数字签名、证书】

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

14-计算机网络核心知识|网络安全【(非)对称加密算法、混合加密、数字签名、证书】

2.3. AES(Advanced Encryption Standard

AES是替代DES成为新标准的一种对称加密算法,又称为Rijndael加密法(算法发明人叫做Rijndael)。

AES的密钥长度有128、192、256bit三种。现在AES现已逐渐替代DES、3DES,成为首选的对称加密算法。

一般来说,我们也不应该去运用任何自制的暗码算法,而是应该运用AES。因为它经过了全世界暗码学家所进行的高品质验证作业。

2.4. 密钥配送问题

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

14-计算机网络核心知识|网络安全【(非)对称加密算法、混合加密、数字签名、证书】

假如Alice将运用对称加密过的音讯发给了Bob,只要将密钥发送给Bob,Bob才干完结解密。在发送密钥进程中,可能会被Eve盗取密钥,最后Eve也能完结解密。

怎么处理密钥配送问题? 有以下几种处理密钥配送的办法:

  • 事前同享密钥(比如暗里同享)
  • 密钥分配中心(Key Distribution Center,简称KDC)
  • Diffie-Hellman密钥交换
  • 非对称加密

三、非对称加密

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

加密密钥:一般是揭露的,因而该密钥称为公钥(public key)。因而,非对称加密也被称为公钥暗码(Public-key Cryptography)。

解密密钥:由音讯接收者自己保管的,不能揭露,因而也称为私钥(private key)。

14-计算机网络核心知识|网络安全【(非)对称加密算法、混合加密、数字签名、证书】

14-计算机网络核心知识|网络安全【(非)对称加密算法、混合加密、数字签名、证书】

3.1. 公钥和私钥

公钥和私钥是一一对应的,不能单独生成。一对公钥和私钥统称为密钥对(key pair)。

由公钥加密的密文,有必要运用与该公钥对应的私钥才干解密。

由私钥加密的密文,有必要运用与该私钥对应的公钥才干解密。

因为非对称加密算法愈加杂乱(安全),所以加密解密速度会比较慢(效率低)。相反而言,对称加密简单(不安全),所以加密解密速度更快(效率高)。

3.2. 处理密钥配送问题

由音讯的接收者生成一对公钥和私钥。将公钥发给音讯的发送者,音讯的发送者运用公钥加密音讯。

14-计算机网络核心知识|网络安全【(非)对称加密算法、混合加密、数字签名、证书】

3.3. RSA

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

3.4. 混合暗码体系(Hybrid Cryptosystem

对称加密的缺陷:不能很好地处理密钥配送问题(密钥会被盗取)。

非对称加密的缺陷:加密解密速度比较慢。

混合暗码体系:是将对称加密和非对称加密的优势相结合的办法。处理了非对称加密速度慢的问题,并经过非对称加密处理了对称加密的密钥配送问题。

网络上的暗码通讯所用的SSL/TLS都运用了混合暗码体系。

3.4.1. 混合暗码-加密

会话密钥(session key):

  • 为本次通讯随机生成的临时密钥
  • 作为对称加密的密钥,用于加密音讯,提高速度

加密进程(发送音讯):

  • 首先,音讯发送者要具有音讯接收者的公钥
  • 生成会话密钥,作为对称加密的密钥,加密音讯
  • 用音讯接收者的公钥,加密会话密钥
  • 将前2步生成的加密成果,同时发给音讯接收者

发送出去的内容包括:

  • 用会话密钥加密的音讯(加密办法:对称加密)
  • 用公钥加密的会话密钥(加密办法:非对称加密)

14-计算机网络核心知识|网络安全【(非)对称加密算法、混合加密、数字签名、证书】

3.4.2. 混合暗码-解密

解密进程(收到音讯):

  • 音讯接收者用自己的私钥解密出会话密钥
  • 再用第一步解密出来的会话密钥解密音讯

14-计算机网络核心知识|网络安全【(非)对称加密算法、混合加密、数字签名、证书】

3.4.2. 混合暗码-加密解密流程

场景:Alice发送音讯给Bob。

发送进程(加密进程):

  1. Bob先生成一对公钥和私钥
  2. Bob把公钥同享给Alice
  3. Alice随机生成一个会话密钥(临时密钥)
  4. Alice用会话密钥加密需求发送的音讯(运用的是对称加密)
  5. Alice用Bob的公钥加密会话密钥(运用的是非对称加密)
  6. Alice把第4、5步的加密成果同时发送给Bob

接收进程(解密进程):

  1. Bob运用自己的私钥解密会话密钥(运用的是非对称加密算法进行解密)
  2. Bob运用会话密钥解密发送过来的音讯(运用的是对称加密算法进行解密)

四、数字签名

例如,Alice发送内容给Bob(明文)。Alice发的内容有可能是被篡改的,或许有人假装成Alice发音讯,或许便是Alice发的,但她能够否认。

问题来了:Bob怎么确定这段音讯的真实性?怎么识别篡改、假装、否认?

处理方案:数字签名。

4.1. 数字签名进程

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

  • 生成签名
    • 由音讯的发送者完结,经过“签名密钥”生成
  • 验证签名
    • 由音讯的接收者完结,经过“验证密钥”验证

怎么能确保这个签名是音讯发送者自己签的?用音讯发送者的私钥进行签名。

签名进程:

14-计算机网络核心知识|网络安全【(非)对称加密算法、混合加密、数字签名、证书】

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

14-计算机网络核心知识|网络安全【(非)对称加密算法、混合加密、数字签名、证书】

14-计算机网络核心知识|网络安全【(非)对称加密算法、混合加密、数字签名、证书】

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

  • 假如有人篡改了音讯内容或签名内容,会是什么成果?
    • 签名验证失利,证明内容被篡改了。
  • 数字签名不能确保机密性?
    • 数字签名的效果不是为了确保机密性,只是是为了能够识别内容有没有被篡改。
  • 数字签名的效果
    • 承认音讯的完整性
    • 识别音讯是否被篡改
    • 防止音讯发送人否认

4.2. 非对称加密和数字签名对比

在非对称加密中,任何人都能够运用公钥进行加密。

14-计算机网络核心知识|网络安全【(非)对称加密算法、混合加密、数字签名、证书】

在数字签名中,任何人都能够运用公钥验证签名。

14-计算机网络核心知识|网络安全【(非)对称加密算法、混合加密、数字签名、证书】

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

14-计算机网络核心知识|网络安全【(非)对称加密算法、混合加密、数字签名、证书】

非对称加密:既然是加密,那肯定是不希望别人知道我的音讯,所以只要我才干解密。公钥担任加密,私钥担任解密。

数字签名:既然是签名,肯定是不希望有人冒充我发音讯,所以只要我才干签名。 私钥担任签名,公钥担任验签。

4.3. 公钥的合法性

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

14-计算机网络核心知识|网络安全【(非)对称加密算法、混合加密、数字签名、证书】

对称加密无法确保密钥的安全,后面有了非对称加密。但是非对称加密也有公钥被盗取的危险(混合加密和签名也是一样的,只要有传输公钥这一进程,就会有盗取危险),所以怎么才干验证公钥的合法性呢?运用证书。

五、证书

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

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

CA便是能够确定“公钥的确属于此人”并能够生成数字签名的个人或许安排。

CA能够是有国际性的安排、政府设立的安排、经过供给认证服务来盈利的企业,个人也能够成立认证组织。

5.1. 注册和下载

14-计算机网络核心知识|网络安全【(非)对称加密算法、混合加密、数字签名、证书】

5.2. 证书的运用

14-计算机网络核心知识|网络安全【(非)对称加密算法、混合加密、数字签名、证书】

第4步和第5步只要被篡改,就会认证失利。因为证书签名始终都是环绕CA认证组织验证的。

各大CA的公钥,默许现已内置在浏览器和操作体系中。

5.3. 检查证书

5.3.1. Windows

  1. Windows + R -> 输入mmc
  2. 文件 -> 增加/删去办理单元
  3. 证书 -> 增加 -> 我的用户账户 -> 完结 -> 确定

14-计算机网络核心知识|网络安全【(非)对称加密算法、混合加密、数字签名、证书】

5.3.2. Mac

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

14-计算机网络核心知识|网络安全【(非)对称加密算法、混合加密、数字签名、证书】