认识SSL
SSL(Security Sockets Layer 安全套接层)是Netscape公司提出的安全协议,利用数据加密、身份验证和消息完整性验证机制,为网络上数据的传输提供安全性保证。SSL及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密。
SSL的能做什么:
数据加密
身份验证
消息完整性验证
解决的问题:
1)认证用户和服务器,确保数据发送到正确的客户机和服务器;
2)加密数据以防止数据中途被窃取;
3)维护数据的完整性,确保数据在传输过程中不被改变。
CA、根证书与数字证书
网络安全无疑是现阶段互联网发展最大的问题,数字证书是解决这个问题的一个绕不开的办法,不管是ActiveX插件还是https都需要用到数字证书。
基本概念
- CA(Certificate Authority)被称为证书授权中心,是数字证书发放和管理的机构。
- 根证书是CA认证中心给自己颁发的证书,是信任链的起始点。用户安装根证书意味着对这个CA认证中心的信任。
- 数字证书颁发过程一般为:用户首先产生自己的密钥对,并将公共密钥及部分个人身份信息(CSR)传送给认证中心。认证中心在核实身份后,将执行一些必要的步骤,以确信请求确实由用户发送而来,然后,认证中心将发给用户一个数字证书,该证书内包含用户的个人信息和他的公钥信息,同时还附有认证中心的签名信息。
CSR
CSR是Certificate Signing Request的英文缩写,即证书签名请求文件,是证书申请者在申请数字证书时由CSP(加密服务提供者)在生成私钥的同时也生成证书请求文件,证书申请者只要把CSR文件提交给证书颁发机构后,证书颁发机构使用其根证书私钥签名就生成了证书公钥文件,也就是颁发给用户的证书。
CSR是以-----BEGIN CERTIFICATE REQUEST-----开头,-----END CERTIFICATE REQUEST-----为结尾的base64格式的编码。将其保存为文本文件,就是所谓的CSR文件。
认证流程
https认证流程:
1、服务器生成一对密钥,私钥自己留着,公钥交给数字证书认证机构(CA)
2、CA进行审核,并用CA自己的私钥对服务器提供的公钥进行签名生成数字证书
3、在https建立连接时,客户端(浏览器)从服务器获取数字证书,用CA的公钥(根证书)对数字证书进行验证,比对一致,说明该数字证书确实是CA颁发的(得此结论有一个前提就是:客户端的CA公钥确实是CA的公钥,即该CA的公钥与CA对服务器提供的公钥进行签名的私钥确实是一对。),而CA又作为权威机构保证该公钥的确是服务器端提供的,从而可以确认该证书中的公钥确实是合法服务器端提供的。
注:为保证第3步中提到的前提条件,CA的公钥必须要安全地转交给客户端(CA根证书必须先安装在客户端),因此,CA的公钥一般来说由浏览器开发商内置在浏览器的内部。于是,该前提条件在各种信任机制上,基本保证成立。
制作自己的根证书及数字证书
通过CA生成数字证书比较很麻烦,而且要收费贵,在公司设备与公司的服务器通信时可以采用自己生成的数字证书,但是需要将数字证书导入到设备中。
制作数字证书工具 makecert : makecert 制作数字证书
数字签名工具SignTool下载【 链接: https://pan.baidu.com/s/1nROzB5qcmrY25E-PlW3mFw 密码: x5jj】
《PKI/CA 与数字证书技术大全》
证书规范与格式:
编码格式总结:
- X.509 DER(Distinguished Encoding Rules)编码,后缀为:.der .cer .crt
- X.509 BASE64编码(PEM格式),后缀为:.pem .cer .crt
密码算法
PKI
数字信封
参考资料: