问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

信息安全之通信加密

创作时间:
作者:
@小白创作中心

信息安全之通信加密

引用
CSDN
1.
https://blog.csdn.net/qq_30878817/article/details/145637550

本文是一篇关于信息安全和通信加密技术的详细教程,涵盖了加密与解密的基本概念、数字签名、对称加密(如AES、3DES)、非对称加密(如RSA、ECC)、PKI体系(包括CA、RA、CRL)、数字证书以及HTTPS协议的工作原理等。文章结构清晰,从基础概念到具体实现,层层递进,适合对信息安全领域感兴趣的读者阅读。

目录
前言

  1. 加密与解密
  2. 数字签名DA
  3. 对称加密
    3.1 AES(Advanced Encryption Standard)
    3.2 3DES(Triple Data Encryption Standard)
  4. 非对称加密
  5. PKI&&RA&&CA&&CRL
    5.1 PKI
    5.2 RA
    5.3 CA
    5.4 CRL
  6. 数字证书
    6.1 证书区别
    6.2 数字证书签发
    6.3 证书链
  7. HTTP vs HTTPS
    7.1 SSL/TLS
    7.2 HTTPS与Web服务器通信步骤
    7.3 HTTPS - 对称加密和非对称加密
    7.4 HTTPS – 数字签名和数字证书
    7.5 数字签名

前言

本文旨在概念性地介绍关于信息安全中的加密和解密,后续会详细阐述每种加密方式的基本原理。

1.加密与解密

在使用公私钥进行加密通信时

  1. 发送方:使用接收方的公钥对数据进行加密,然后发送给接收方。
  2. 接收方:密方式确保了数据在传输过程中的安全性,即使数据被第三方截获,也无法解密获取原始内容。

2.数字签名DA

用于验证信息发送者身份和确保信息完整性。

  • 发送者:使用自己的私钥对信息进行签名,然后将签名和原始信息一起发送给接收者。
  • 接收者:使用发送者的公钥对签名进行验签,如果验证成功,则说明信息确实是由发送者发送的,且信息在传输过程中没有被篡改。

3.对称加密

对称加密使用相同的密钥进行数据的加密和解密。它具有速度快、效率高的特点,因此适合用于大量数据的传输。在HTTPS中,对称加密用于实际的数据传输。常见的对称加密算法包括AES、DES和3DES。

3.1 AESAdvanced Encryption Standard

加密过程:使用一个对称密钥对明文进行加密,生成密文。
解密过程:使用相同的对称密钥对密文进行解密,还原出明文。
密钥长度:AES支持128位、192位和256位密钥长度,密钥长度越长,安全性越高。

3.2 3DESTriple Data Encryption Standard

加密过程:对数据进行三次DES加密,每次使用不同的密钥。
解密过程:对数据进行三次DES解密,还原出明文。
密钥长度:3DES使用三个56位的密钥,总共168位。

4.非对称加密

非对称加密使用一对密钥:公钥和私钥。公钥用于加密数据,私钥用于解密数据。非对称加密的安全性高,但加密和解密速度较慢,通常用于加密对称密钥而非实际数据传输。

私钥Private Key
私钥是保密的,只能由拥有者自己使用。它用于解密数据或生成数字签名。

公钥Public Key
公钥是公开的,可以分发给任何人。它用于加密数据或验证数字签名。

RSARivest-Shamir-Adleman
公钥加密:客户端生成会话密钥后,使用服务器的公钥对会话密钥进行加密,并发送给服务器。
私钥解密:服务器使用其私钥解密会话密钥,确保只有服务器能够读取会话密钥。
密钥长度:RSA的密钥长度通常为2048位或以上,长度越长,安全性越高。

ECC(Elliptic Curve Cryptography)
公钥加密:使用椭圆曲线数学算法生成公钥和私钥,进行加密和解密。
私钥解密:相比于RSA,ECC提供更高的安全性和效率,适合资源受限的设备。

会话密钥:用于对称加密的临时密钥,仅在当前会话中有效。会话密钥通过非对称加密进行安全传输,一旦会话结束,密钥就会失效。这样既保证了数据传输的安全性,又提高了加密解密的效率。

5.PKI&&RA&&CA&&CRL

PKI、RA、CA、CRL是与信息加密和数字证书管理相关的关键概念。

5.1 PKI

目的:解决公私钥信任问题
Public Key Infrastructure公钥基础设施,通过这套基础设施对公钥进行统一的管理,通过PKI体系可以对公钥进行发布、吊销等管理操作。PKI公钥基础设施包括:

  1. 认证机构(CA)
  2. 注册机构(RA)
  3. 证书撤销列表(CRL)

5.2 RA

  1. RA是PKI体系中的一个重要组成部分,全称为Registration Authority,即注册中心。
  2. RA是CA的证书发放、管理的延伸,它提供用户和CA之间的一个接口。
    1. 负责证书申请者的信息录入、审核以及证书的发放等。
    1. 对发放的证书完成相应的管理功能。
  3. RA一般都是由一个独立的注册机构来承担,它接受用户的注册申请,审查用户的申请资格,并决定是否同意CA给其签发数字证书。
  4. 但注意:RA不给用户签发证书,而是对用户进行资格审查。

5.3 CA

CA是PKI的信任基础,全称为Certificate Authority,即证书颁发机构。在PKI体系中,认证中心CA是整个PKI体系中各方都承认的一个值得信赖的、公正的第三方机构.

  1. CA负责产生、分配并管理PKI结构下的所有用户的数字证书,把用户的公钥和用户的其他信息捆绑在一起,在网上验证用户的身份。
  2. CA负责证书废止列表CRL的登记和发布。
    数字证书是一种权威性的电子文档,它用于证明某一主体(如个人、企业或机构)的身份以及其公钥的合法性。

5.4 CRL

CRL是Certificate Revocation List的缩写,即证书废止列表,也被称为证书黑名单。当一个证书因为某些原因(如私钥泄露、证书过期、证书持有者身份变更等)需要被废止时,CA会将这个证书添加到CRL中,并发布给所有需要验证证书有效性的实体。这样,当某个实体需要验证某个证书的有效性时,它就可以查询CRL,以确定该证书是否已经被废止。

总结

  • PKI 是整体框架。
  • RA 负责验证用户身份。
  • CA 签发和管理证书。
  • CRL 列出已吊销的证书。

6. 数字证书

是由可信的证书颁发机构(CA,Certificate Authority)签发,用于验证服务器身份的电子文件。遵循它遵循x.509 v3格式。
数字证书包含公钥信息以及公钥拥有者信息:
-服务器的公钥:用于加密数据和验证服务器的身份。
-服务器信息:包括服务器的域名和公司名称等信息。
-证书颁发机构信息:包括CA的名称和数字签名。
-有效期:证书的生效日期和过期日期。
常见数字证书格式和后缀: <区别在于是否可以包含私钥>
-PKCS#12<可以包含私钥>
-.p12/.pfx
-DER <不能包含私钥>
-.der/.cer/.crt
-PEM <可以包含私钥>
-.pem/.cer/.crt

数字证书工作流程:
1.生成密钥对:服务器生成一对密钥,即公钥和私钥。
2.申请证书:服务器将公钥和相关信息提交给CA,申请数字证书。
3.颁发证书:CA验证服务器的身份后,使用CA的私钥对服务器的公钥和相关信息进行签名,生成数字证书。
4.安装证书:服务器安装CA签发的数字证书,并将其发送给客户端。
5.验证证书:客户端收到证书后,使用CA的公钥验证证书的有效性和完整性。
数字证书确保了客户端与服务器之间的通信是安全的,并且服务器的身份是可信的。

6.1 证书区别

-自签名证书:用自己的私钥签名的证书,证书中的颁发者和主体名相同。
-根证书:CA认证中心给自己颁发的证书,是信任链的起始点。它是一份特殊的证书,其签发者是它本身,也是自签名。
未被签名的公钥证书或自签名的证书(这里的“自签名”指的是CA给自己颁发的证书,与上述自签名证书在应用场景上有所不同)。
包含CA的公钥,用于验证由该CA签发的其他证书的有效性。
安装根证书意味着对这个CA认证中心的信任。
-CA证书:CA自己的证书,如果CA没有多个层级,根证书就是CA证书。
-本地证书:通过CA颁发给申请者的证书。

6.2 数字证书签发

-CA数字证书签发过程如下图左:
1.CA会把持有者的公钥、⽤途、颁发者、有效时间等信息打成⼀个包,然后对这些信息进⾏Hash计算, 得到⼀个Hash值;
2.CA会使⽤⾃⼰私钥将该Hash值加密,⽣成Certificate Signature,也就是CA对证书做了签名;
3.将Certificate Signature添加在⽂件证书上,形成数字证书;
客户端校验服务端数字证书入上图右:

  1. 客户端会使⽤同样的Hash算法获取该证书的Hash值H1;
  2. 通常浏览器和操作系统中集成了CA公钥信息,浏览器收到证书后可以使⽤CA公钥解密Certificate Signature内容,得到Hash值H2;
  3. ⽐较H1和H2,如果值相同,则为可信赖的证书,否则则认为证书不可信。

6.3 证书链

-假设CA签发了一个证书A,在这个过程中CA称为Issuer,A称为Subject,假设A是一个受信任的中间证书,已经预装在我们的操作系统中了。现在由A利用它自己的私钥给某一个网站签发了一个证书B。
-现在当我们的电脑需要访问该网站的时候,该网站就会给我们发来一个证书B,由于我们的浏览器并不知道B证书是否合法,但是我们的电脑上已经预装了A证书,我们可以从A证书中提取出A的公钥,然后利用A的公钥对B证书的签名进行验证(因为B证书的签名是A的私钥签的),如果验证通过了,就说明B是合法的。
-相同的道理,B也可以继续签发C证书,C继续签发D证书,这样就形成了一个信任链。
-如果服务端的签名是D证书,那么一般来说,服务器返回给浏览器的就会包含B、C、D三个证书(因为A证书已经在我们的电脑上了),即使只返回D证书,浏览器也可以根据D书中的信息,自动下载到B、C两个证书然后进行验证。
-客户端收到baidu.com的证书后,发现签发者不是根证书,就不能使用本地的根证书公钥(浏览器及系统客户端默认会注入信任的CA根证书)验证baidu.com证书是否可信。于是,客户端根据baidu.com证书中的签发者,找到该证书的颁发机构 “GlobalSignRSA OV SSL CA”,然后向CA查询中间证书。
-请求到证书后发现该证书是由 “GlobalSignRoot CA”签发的,由于 “GlobalSignRoot CA”没有上级签发机构,说明它是根证书。那客户端就会检查此证书是否在本地已经安装的证书列表中,如果有,则可以利⽤根证书中的公钥去验证 “GlobalSignRSA OV SSL CA”证书,如果发现验证通过,就认为该中间证书是可信的。
-“GlobalSignRSA OV SSL CA”被信任后,可以使⽤此证书中的公钥去验证baidu.com证书的可信性,如果验证通过,就可以信任baidu.com证书。

7. HTTP vs HTTPS

HTTP(HyperTextTransfer Protocol)和HTTPS(HyperTextTransfer Protocol Secure)都是用于在客户端(如浏览器)和服务器之间传输数据的协议。它们的主要区别在于HTTPS在HTTP的基础上增加了SSL/TLS协议,从而提供了数据加密和身份验证功能。
-HTTP:HTTP是一种无状态的、明文的通信协议,这意味着数据在传输过程中不进行加密。尽管HTTP可以有效地传输网页内容,但由于数据以明文形式传输,容易被截取和篡改。Port: 80.
-HTTPS:HTTPS通过引入SSL/TLS协议,为数据传输提供加密和身份验证功能。Port: 443.

7.1 SSL/TLS

SSL(Secure Sockets Layer)和TLS(Transport Layer Security)是为互联网通信提供安全保障的加密协议。TLS是SSL的升级版本,具有更高的安全性和性能。主要功能:
加密:使用对称加密算法和非对称加密算法对数据进行加密,确保数据在传输过程中保持机密性。
身份验证:通过数字证书验证服务器和客户端的身份,防止中间人攻击。
数据完整性:使用消息验证码(MAC)和散列函数确保数据在传输过程中没有被篡改。

7.2 HTTPSWeb服务器通信步骤

n客户端向服务端发起HTTPS请求,连接到服务器的443端口;
n服务器将网站的证书信息(证书中包含公钥,数字签名等)发送给客户端;
n客户端接收到服务器的证书后,会对证书进行检查,验证其合法性。如果发现证书有问题,那么HTTPS传输就无法完成。
n如果验证证书合法,那么客户端会生成一个随机值,这个随机值就是用于进行对称加密的密钥,该密钥称之为client key,客户端密钥。
n然后利用服务端返回的公钥(非对称加密),对客户端对称密钥进行非对称加密,这样客户端密钥就成密文。(HTTPS中的第一次HTTP请求结束);
n客户端发起HTTPS中的第二个HTTP请求,加密之后的客户端密钥发送给服务器;
n服务器接收客户端的密文:
n会用自己的私钥(非对称加密),对其进行非对称解密,得到客户端对称密钥。
n用客户端对称密钥对数据进行对称加密,数据变成密文;
n服务器将密文发送给客户端
n•客户端收到服务器发送来的密文,用客户端对称密钥对其进行对称解密,得到服务器发送数据。

7.3 HTTPS -对称加密和非对称加密

nHTTPS数据交互过程使用的对称加密,也就是客户端与服务端持有相同的密钥,对发送数据加密,服务端对接收的数据解密。
n服务端和客户端安全交换对称密钥使用非对称加密。

7.4 HTTPS –数字签名和数字证书

通信双方为确保自己拿到的对方的公钥是没有被中间人修改的,引入数字证书与数字签名。

7.5 数字签名

基于公钥密码体制,用于验证信息发送者身份和确保信息完整性。
本质:<用私钥加密用HASH算法对消息生成的摘要>
简而言之,就是我对自己发出去的包裹,写个清单,然后再签个名,接收方查看清单,检查我的字迹,检查包裹内容,就知道东西在运输过程中有没有被替换。

发送者
使用自己的私钥对信息进行签名,然后将签名和原始信息一起发送给接收者。

接收者
使用发送者的公钥对签名进行验签,如果验证成功,则说明信息确实是由发送者发送的,且信息在传输过程中没有被篡改。

基本特征:
报文鉴别:接收者能够核实发送者对报文的签名;
报文完整性:接收者不能伪造对报文的签名或更改报文内容;
不可否认性:发送者事后不能抵赖对报文的签名。

基本步骤:
计算摘要:发送方用哈希算法生成报文的摘要,如果内容在传输过程中变更,接收方重新计算摘要的时候,就会和发送方的摘要不一致;
摘要加密:发送方用自己私钥对摘要进行加密,得到数字签名;
发送消息和签名:将原数据和加密后的数字签名打包一起发送;
摘要验证:接收方用发送方公钥对数字签名进行解密,得到摘要,并用同样的哈希算法重新生成摘要进行比对,以验证报文的完整性和真实性。

文章来源:

  • 信息安全之通信加密
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号