LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

深入浅出 SSL 证书

admin
2025年12月13日 14:29 本文热度 35

1. 基础概念

1.1. 对称加密

对称加密是一种使用相同密钥进行数据加解密的算法。常见算法有AESDES等。使用AES算法和密钥对文本加密,伪代码如下:

text_encrypted = aes_encrypt(key, text)

使用AES算法和密钥key对加密文本解密,伪代码如下:

text = aes_decrypt(key, text_encrypted)

1.2 非对称加密

非对称加密是一种使用不同密钥进行数据加解密的算法。常见的算法有RSADSA等。非对称加密使用一对密钥进行加解密,一个称作公钥,一个称作私钥。使用私钥加密的信息,只能使用公钥解密;使用公钥加密的信息,只能使用私钥解密。使用RSA算法和私钥对文本加密,伪代码如下:

text_encrypted = rsa_encrypt(prikey, text)

使用RSA算法和公钥对加密文本解密,伪代码如下:

text = rsa_decrypt(pubkey, text_encrypted)

使用RSA算法和公钥对文本加密,伪代码如下:

text_encrypted = rsa_encrypt(pubkey, text)

使用RSA算法和私钥对加密文本解密,伪代码如下:

text = rsa_decrypt(prikey, text_encrypted)

公钥和私钥并非独立产生,它们基于复杂的数学难题生成,确保二者之间存在强大的数学关联:

  • 一个公钥只对应一个私钥

  • 公钥由私钥推导而来;从私钥可以推导出公钥,但从公钥无法推导出私钥

私钥需要妥善保存,避免泄露,而公钥需要告知通信的另一方。

1.3. 对称加密VS 非对称加密

对称加密速度快,适合实时加密、大量数据加密。非对称加密速度慢,适合少量数据加密。实际应用中,通常先利用非对称加密来协商一个临时密钥,然后使用对称加密算法和这个临时密钥来加密通信数据

1.4. 摘要

摘要算法是一种为任意大小的数据,比如一个文档、一段视频、一个密码,生成一个唯一且固定长度的数字指纹的算法。常见的摘要算法有MD5SHA-1SHA-2等。使用MD5算法计算文本数字指纹,伪代码如下:

figerprint1 = md5('Hello World 1')figerprint2 = md5('Hello World 2')

Hello World 1与Hello World 2只有一个字符之差,但二者的摘要完全不同。早期互联网下载页面会同时提供文件与该文件的md5数字指纹。用户下载文件后,计算下载文件的md5数字指纹,与下载页面上的md5数字指纹进行比较,可判断出文件是否正确下载。

1.5. 签名

签名算法是一种先计算数据数字指纹,然后对数字指纹进行非对称加密的算法。公司经理使用MD5计算命令的数字指纹,然后使用RSA算法和经理的私钥对数字指纹进行加密,伪代码如下:

command = '向供应商A汇款10000元。'figerprint = md5(command)sign = rsa_encrypt(prikey, figerprint)

经理将上述commandMD5+RSA算法、sign发送给财务。财务使用MD5计算命令的数字指纹,然后使用RSA和经理的公钥对签名进行解密,伪代码如下:

command = '向供应商A汇款10000元。'figerprint2 = md5(command)figerprint1 = rsa_decrypt(pubkey, sign)

figerprint2为财务收到的命令的数字指纹,figerprint1为经理发布的命令的数字指纹,若二者一致说明命令正确。

使用签名可以防止内容被篡改。若攻击者修改command,那么command的数字指纹将不一致,伪代码如下:

command = '向供应商A汇款1000000元。'figerprint2 = md5(command)figerprint1 = rsa_decrypt(pubkey, sign)

使用签名可以防止伪造内容。攻击者使用自己的密钥伪造了一段命令,其签名无法使用经理的公钥解密。

签名具有不可否认性。若经理发布的命令有误,想将责任推卸给财务,这是行不通的。签名可以用经理的公钥解密,说明签名由经理的私钥加密得来,而私钥只有经理自己有。

2. 证书

根证书厂商A生成一对密钥prikey_apubkey_a。然后编写如下一段信息:

颁发者:A颁发给:A有效期限:xxxx年xx月xx日之前加密算法:RSA摘要算法:MD5

使用MD5计算信息的数字指纹,然后使用RSA算法和A的私钥对数字指纹进行加密,伪代码如下:

info = '''颁发者:A颁发给:A有效期限:xxxx年xx月xx日之前加密算法:RSA摘要算法:MD5'''figerprint = md5(info)sign = rsa_encrypt(prikey_a, figerprint)

信息、签名、A的公钥组成一个文件,该文件就是A的根证书,该根证书内置于每台计算机中。

中间证书厂商B生成一对密钥prikey_bpubkey_b。然后编写如下一段信息:

颁发者:A颁发给:B有效期限:xxxx年xx月xx日之前加密算法:RSA摘要算法:MD5

B将该信息提交给AA使用MD5计算信息的数字指纹,然后使用RSA算法和A的私钥对数字指纹进行加密,伪代码如下:

info = '''颁发者:A颁发给:B有效期限:xxxx年xx月xx日之前加密算法:RSA摘要算法:MD5'''figerprint = md5(info)sign = rsa_encrypt(prikey_a, figerprint)

信息、签名、B的公钥组成一个文件,该文件就是B的中间证书。

xxx.com的站长向B申请证书时,B为其生成一对密钥prikey_xxxpubkey_xxx。然后编写如下一段信息:

颁发者:B颁发给:xxx.com有效期限:xxxx年xx月xx日之前加密算法:RSA摘要算法:MD5

B使用MD5计算信息的数字指纹,然后使用RSA算法和B的私钥对数字指纹进行加密,伪代码如下:

info = '''颁发者:B颁发给:xxx.com有效期限:xxxx年xx月xx日之前加密算法:RSA摘要算法:MD5'''figerprint = md5(info)sign = rsa_encrypt(prikey_b, figerprint)

信息、签名、xxx.com的公钥组成一个文件,该文件就是xxx.com的服务器证书。

xxx.com的服务器内置了xxx.com的私钥、B的中间证书、xxx.com的服务器证书。客户端访问xxx.com时,服务器将中间证书、服务器证书发送给客户端。客户端执行如下检测:

  1. 客户端用中间证书中的B的公钥验证服务器证书:能否从签名解密出信息的数字指纹、内容是否被篡改、证书是否颁发给xxx.com、证书是否过期

  2. 浏览器用内置的根证书中A的公钥验证B的中间证书:能否从签名解密出信息的数字指纹、内容是否被篡改、证书是否颁发给B、证书是否过期

  3. 无条件信任A

若步骤12中上述检测不通过,则客户端可拒绝与xxx.com服务器通信。若检测通过,服务器指定一个对称加密算法和密钥,通过xxx.com的私钥加密后发送给客户端,客户端使用xxx.com的服务器证书中的xxx.com的公钥解密出加密算法和密钥,后续使用该加密算法与密钥进行加密通信。


阅读原文:https://mp.weixin.qq.com/s/ZDVa3kxWtZYURgY4StEb9Q


该文章在 2025/12/13 14:29:06 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2025 ClickSun All Rights Reserved