对称密钥: DES,AES
非对称密钥: DH(Diffie–Hellma), RSA, DSA
散列函数: MD5,SHA-256
和其它加密过程一样,对RSA来说分配公钥的过程是非常重要的。分配公钥的过程必须能够抵挡中间人攻击。假设Eve交给Bob一个公钥,并使Bob相信这是Alice的公钥,并且她可以截下Alice和Bob之间的信息传递,那么她可以将她自己的公钥传给Bob,Bob以为这是Alice的公钥。Eve可以将所有Bob传递给Alice的消息截下来,将这个消息用她自己的密钥解密,读这个消息,然后将这个消息再用Alice的公钥加密后传给Alice。理论上Alice和Bob都不会发现Eve在偷听他们的消息。今天人们一般用可靠的第三方机构签发证书来防止这样的攻击。
HTTP over SSL, SLL特点:
用非对称密钥来加密并传递随机数
用随机数作为对称密钥来加密传递内容
SSL证书由受信任的数字证书颁发机构CA (Certificate Authority)(如VeriSign,GlobalSign,WoSign等)
用户若欲获取证书,应先向 CA 提出申请,CA 判明申请者的身份后,为之分配一个公钥,并将该公钥与其身份信息绑定,为该整体签字,签字后的整体即为证书,发还给申请者。
所谓签字,就是数字签名,CA用自己的私钥对提交证书的哈希值(digest) 做加密。(详见下)
提交CSR给CA来获得证书,所谓CSR就是由申请人制作的Certificate Secure Request证书请求文件,制作过程中,系统会产生2个密钥,一个是公钥就是这个CSR文件;另外一个是私钥,存放在local服务器上。
将CSR提交给CA,CA一般有2种认证方式:
①、域名认证:一般通过对管理员邮箱认证的方式,这种方式认证速度快,但是签发的证书中没有企业的名称。
②、企业文档认证:需要提供企业的营业执照,一般需要3-5个工作日。
*在收到CA return的证书后,可以将证书部署上local服务器,一般APACHE文件直接将KEY+CER复制到文件上,然后修改HTTPD.CONF文件;TOMCAT等,需要将CA签发的证书CER文件导入JKS文件后,复制上服务器,然后修改SERVER.XML;IIS需要处理挂起的请求,将CER文件导入。
如果一个用户想鉴别另一个证书的真伪,
浏览器从服务器拿到证书。证书上一般有 服务器的公钥,证书有效期 和 证书颁发的CA机构打上的数字签名。
拿到证书后验证其数字签名。具体就是,根据证书上写的CA签发机构,在浏览器内置的根证书里找到对应的公钥,用此公钥解开数字签名,得到摘要(digest),再对比本地计算的 内容的hash值,据此验证证书的合法性。
注:
CA被预先安装在各种浏览器中
证书的数字签名是由上级颁发者的私钥加密的
摘要(digest) - 对证书内容的hash值
数字签名 Digital Signiture:
发信人对内容进行hash 计算,得到内容摘要(digest)–> 发信人对摘要使用私钥加密,生成”数字签名”(signature) –> 内容附上数字签名,一起发送。
*用户用CA公钥解密签名,得到degist, 并对比 本地hash计算内容产生的degist,确认 内容无误。
RSA也可以用来为一个消息署名。假如Alice想给Bob传递一个署名的消息的话,那么她可以为她的消息计算一个散列值(Message digest),然后用她的私钥“加密”(如同前面“加密消息”的步骤)这个散列值并将这个“署名”加在消息的后面。这个消息只有用她的公钥才能被解密。Bob获得这个消息后可以用Alice的公钥“解密”(如同前面“解密消息”的步骤)这个散列值,然后将这个数据与他自己为这个消息计算的散列值相比较。假如两者相符的话,那么Bob就可以知道发信人持有Alice的私钥,以及这个消息在传播路径上没有被篡改过。
F5/Firewall SSL decryption / offloading
Inspect packet inside of SSL packets request SSL offloading.
降低服务器负担和reduce证书维护任务
In order to do that, install the SSL certification and Private-key on F5 Load-balancer or Firewall
Methods:
1. Generate CSR ( Private-key + unsigned certificate) which contains Domain ( *.xyz.com)
2. Submit unsigned certificate (Inc: Public-key, FQDN, Valid period, etc) to CA to obtain the Signed Certification
2.1. CA hash unsigned certificate content and encrypt it with their private key to generate Digital Signature
2.2. CA put Digital signature + unsigned certificate content together to generate CA signed Certification
4. New Certification return to applicant and to be installed on the web-server ( or LB)
5. Install Cert and Private-key on F5/FW to allow act as interception man (e.g. F5)
5.1 System --> File Management --> SSL Certificate List , select Create
5.2 Local Traffic --> Profiles --> SSL ---> Client Facing / Server Facing