数字签名和数字证书
一、数字签名
1、概念
签名就是私钥加密,公钥解密。
证书就是公钥加密,私钥解密。
2、作用
1)完整性校验
如何证明客户端发给服务器的内容完整,没有被篡改过?
- 客户端使用hash算法(如SHA)对要发送的信息加密计算,形成摘要,该加密过程不可逆,且信息与摘要一一对应。
- 客户端使用私钥对摘要加密,并将信息与加密后的摘要都发送给服务端。
- 服务端用公钥对摘要解密,同时用hash算法对收到的信息计算得到摘要。两摘要内容一致说明信息完整且未被篡改。
sequenceDiagram
participant Client
participant Server
Note left of Client:1、hash计算信息形成摘要
Note left of Client:2、使用Client私钥加密摘要
Client->>Server:信息和加密后的摘要
Note right of Server:1、使用Client公钥解密摘要
Note right of Server:2、使用hash计算信息形成摘要
Note right of Server:3、比较两摘要是否一致
2)身份认证
CA中心颁发设备证书即利用该机制,见二、>>2、>>1)>>(1)
二、数字证书
1、数字证书的构成
- CA证书:存放CA中心的公钥。CA的私钥只在CA机构存放,不可见
- 设备证书:设备的公钥、设备的身份信息经CA中心私钥加密后形成设备证书
- CRL:证书吊销列表,记录已被吊销证书的序列号,若收到该序列号的设备证书,认为该证书无效
2、数字证书的作用
1)CA证书
(1)证明公钥拥有者的身份
服务端发送公钥给客户端,怎样才能证明这就是服务端的公钥,以及这就是服务端发送的呢?
- CA是权威的证书签发机构,CA的公钥被公布到公众平台,但私钥不可见。
- 服务端先将自己的公钥和身份信息交给CA中心,CA用自己的私钥加密服务端的公钥和身份信息,形成设备证书并颁发给服务端。
- 服务端将设备证书发送给客户端,客户端用CA公钥解密后同时得到服务端的公钥和身份信息,若解密失败说明该设备证书是伪造的。
sequenceDiagram
participant Client
participant Server
participant CA
Server->>CA:Server公钥、Server身份信息
Note left of CA:CA私钥加密收到的信息,形成设备证书
CA->>Server:设备证书
Server->>Client:设备证书
Note right of Client:使用CA公钥解密信息
Note right of Client:解密失败说明设备证书是伪造的
2)设备证书
询问设备证书的作用,其实就是在问服务端发给客户端(或相反)的公钥的作用:
(1)对内容进行加密
sequenceDiagram
participant Client
participant Server
Note right of Server:Sever私钥保存在本地
Server->>Client:Server公钥
Note left of Client:使用Server的公钥加密信息
Client->>Server:密文
Note right of Server:使用Server的私钥解密密文
FAQ
设备证书并不直接对明文加密,而是加密会话密钥,或者加密可以计算出会话密钥的参数(如TLS),然后用会话密钥加密明文。会话密钥是对称密钥,其加解密明文比非对称密钥更快。

浙公网安备 33010602011771号