aoaossl-aoao证书-aoao加密

🌸SSL数字证书基本介绍

相关基本概念

公钥密码体制

公钥密码体制分为三个部分,公钥、私钥、加密解密算法,它的加密解密过程如下:
加密:通过加密算法和公钥对内容(或者说明文)进行加密,得到密文。加密过程需要用到公钥。
解密:通过解密算法和私钥对密文进行解密,得到明文。解密过程需要用到解密算法和私钥。

  公钥密码体制的公钥和算法都是公开的(这是为什么叫公钥密码体制的原因),私钥是保密的。大家都以使用公钥进行加密,但是只有私钥的持有者才能解密。 

加密算法

对称加密算法

image-20230816101819326

特点:
1、加密使用的密钥和解密使用的密钥是相同的
2、不区分公钥和私钥
3、密钥要做好保密,不能对外公开
4、加解密效率高,而安全性就稍微弱一些,常见的算法例如AES,DES,AES,RC4,SM1,SM4

非对称加密算法

image-20230816101942137

特点:
1、有两个密钥,加密使用的密钥和解密使用的密钥是不相同的。
2、公钥加密、私钥解密,私钥加密、公钥解密
3、安全性较高,但是效率低一些,常见的算法例如RSA,DSA,ECDSA,Rabin,DH,ECC,ECDH,SM2,SM9。

密钥,一般就是一个字符串或数字,在加密或者解密时传递给加密/解密算法。前面在公钥密码体制中说到的公钥、私钥就是密钥,公钥是加密使用的密钥,私钥是解密使用的密钥。

信息摘要

image-20230816102203609

特点
1、唯一性,不可逆
2、常见的算法例如MD5,SHA1,SHA2,SM3

密码破解

$1$ sha256 $5$ sha512
24个base64字符,最后两个==enc2(md5)
28个base64字符,最后一个=enc6(SHA1)、enc8(SMD5)
32个base64字符,且没有=enc8(SMD5)
40个base64字符,最后两个==enc7(SSHA)
SMD5是一种改进的MD5信息摘要算法。

MD5全名Message-Digest Algorithm 5,是一种128比特的信息摘要算法,用于生成信息的数字签名。但MD5已被证明存在弱点,容易遭到碰撞攻击。

SMD5在MD5的基础上做了以下改进:

增加了安全密钥
在原始数据的摘要计算中引入了用户自定义的密钥,增强了算法的安全性。

迭代次数增加
SMD5的迭代次数从MD5的64轮增加到1024轮,扩大了破解的难度。

摘要长度扩展
SMD5的摘要长度从128比特扩展到256比特,增加了碰撞的难度。

引入随机盐值
在计算摘要时加入随机盐值,即使相同的数据也会生成不同的摘要,提高了安全性。

支持自定义输出
支持自定义摘要值的字节输出长度,增加了应用灵活性。

CA即证书颁发机构

  1. Symantec - 开创SSL证书的先河,Verisign就是其子公司
  2. Comodo - 龙术网络,提供网站安全和证书服务
  3. DigiCert - 全球SSL证书市场占有率第一
  4. GlobalSign - 跨云服务供应商的数字证书首选
  5. GoDaddy - 全球最大的域名注册商兼证书商
  6. Network Solutions - 提供SSL证书和网站安全服务
  7. Trustwave - 专注于信息安全和合规性管理
  8. RapidSSL - 一家总部在美国的证书供应商
  9. SwissSign - 瑞士信任服务公司,瑞士国家级根证书
  10. CFCA- 国家互联网信息办公室授权的中国的权威根CA
  11. CNNIC - 中国互联网络信息中心,中国网管局下属机构
  12. GDCA - 广东 CA,国内较大的商业证书服务机构

根证书

受信任的根证书是属于证书颁发机构(CA)

中间证书

证书颁发机构(CA)不会直接从根目录颁发服务器证书(即SSL证书),因为这种行为是十分危险的,因为一旦发生错误颁发或者需要撤销root,则使用root签名的每个证书都会被撤销信任。
因此,为了避免这种风险发生,CA机构一般会引用中间根。CA机构使用其私钥对中间根进行签名,使浏览器信任中间根。然后CA机构使用中间根证书的私钥来签署用户申请的SSL证书。这种中间根的形式可以重复多次,即使用中间根签署另一个中间件,然后CA机构通过中间件签署SSL证书。

证书链

CA为了减轻自己的工作同时也是保护私钥的机密,打算招两级代理 A与B(也可以多招几级),A是一级代理,B是二级代理。这个时候C需要生成合法的证书,直接找B即可。

举例说明:

DigiCert 是根证书
DigiCert SHA2 Secure Server CA 是一级代理
*.zhihu.com 是知乎的ssl证书

image-20230815163240483

SSL/TLS/HTTPS

SSL/TLS是网络通信中的一种安全协议,主要用于在客户端和服务器之间建立安全的加密连接。

SSL/TLS的全称是Secure Sockets Layer/Transport Layer Security,意思是安全套接字层/传输层安全协议。它通过使用证书来验证服务器的身份,并协商一个加密算法来加密客户端和服务器之间的通信内容,从而防止数据在网络上被窃听。

HTTPS是在HTTP协议的基础上加入SSL/TLS协议,通过CA证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。

SSl/TLS原理

OSI七层模型 TCP/IP四层概念模型 对应的网络协议或应用
应用层(Application) 应用层(Application) HTTP, TFTP, FTP, NFS, WAIS, SMTP
表示层(Presentation) Telnet, SNMP
会话层(Session) SSL, TLS, LDAP
传输层(Transport) 传输层(Transport) TCP, UDP
网络层(Network) 互联网层(Internet) IP, ICMP, ARP
数据链路层(Data Link) 网络接口层(Network Interface) FDDI, Ethernet, Arpanet, PDN, SLIP, PPP
物理层(Physical) IEEE 802.1A, IEEE 802.2, Ethernet v.2

加密握手过程

image-20230816112852320

  1. 客户端向服务器发出连接请求,要求建立SSL/TLS连接。
  2. 服务器向客户端发送其数字证书,证书中包含服务器的公钥。
  3. 客户端验证服务器证书是否来自可信的证书颁发机构,如果证书有效,就提取公钥。
  4. 客户端生成一个随机的预主密钥,使用服务器的公钥对其进行加密,然后发送给服务器。
  5. 服务器使用自己的私钥解密出预主密钥。
  6. 客户端和服务器协商生成主密钥和会话密钥,用于后续的加密通信。
  7. 客户端和服务器利用密钥开始加密通信。
  8. 通信结束后, session结束,密钥被抛弃。

image-20230817093233295

SSL证书等级和类型

证书等级

DV域名验证
OV企业验证
EV增强验证
公网IP证书

证书版本

单域名版
多域名版
通配符版
多域名通配

证书格式

标准 标准说明 证书格式
X509 基本的证书格式,只包含公钥 .DER .PEM .CER .CRT
PKCS#7 PKCS#7一般把证书分成两个文件,一个公钥、一个私钥;一般主要用来做数字信封 .P7B .P7C .SPC .P7R
PKCS#10 证书请求语法 .p10
PKCS#12 一种文件打包格式,为存储和发布用户和服务器私钥、公钥和证书指定了一个可移植的格式,是一种二进制格式 .pfx *.p12

Openssl生成自签名证书

自签证书链操作
自签证书包括两大步骤,第一步制作根证书,第二部制作应用证书。其中根证书用来签发应用证书。
1.制作根证书
openssl req -newkey rsa:2048 -keyout root.key -x509 -days 36500 -out root.pem
通过openssl命令生成root.key(私钥文件)和root.pem(根证书文件)。
2.生成应用证书私钥
openssl genrsa -aes256 -out app.key 2048
3.生成应用证书请求文件
openssl req -new -key app.key -out app.csr
4.用根证书签发应用证书
openssl x509 -req -sha256 -days 3650 -in app.csr -CA root.pem -CAkey root.key -CAcreateserial -out app.pem
这样,一共生成了根证书root.key,root.pem,应用证书 app.key, app.csr, app.pem
如果在windows平台下可以使用以下命令将pem格式的证书转换成windows可识别的证书:
openssl x509 -inform pem -in app.pem -out app.cer


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 xieaoao@qq.com QQ:1296454177

×

喜欢就点赞,疼爱就打赏