概念
HTTPS可以简单的理解为HTTP + TLS(SSL),在传输层之上多了一层加密层。
HTTPS加密请求过程
HTTPS协议请求时序图
- CA:Digital Certificate,数字证书
- random key:对称加密的秘钥
- 由于非对阵加密效率低下,不适合用于加密操作频繁且数据量较大的请求内容
- 生成的random key需要用证书提供的公钥加密,再传送给Server端,Server端再解密random key用于加密content
数字证书
作用
当发送一份秘密文件时,发送方使用接收方的公钥对该文件加密,而接收方则使用自己的私钥解密。因为接收方的私钥仅为本人所有,其他人无法解密该文件,所以能保证文件安全到达目的地。
用户也可以用自己的私钥对信息进行处理,由于私钥仅为本人所有,所以能生成别人无法仿造的文件,也就形成了数字签名。同时,由于数字签名与信息的内容相关,因此,一份经过签名的文件如有改动,就会导致数字签名的验证过程失败,这样就保证了文件的完整性。
以数字证书为核心的加密传输、数字签名、数字信封等安全技术,使得在Internet上可以实现数据的真实性、完整性、保密性及交易的不可抵赖性。
内容
◆Issuer (证书的发布机构)
指出是什么机构发布的这个证书,也就是指明这个证书是哪个公司创建的(只是创建证书,不是指证书的使用者)。对于上面的这个证书来说,就是指"SecureTrust CA"这个机构。
◆Valid from , Valid to (证书的有效期)
也就是证书的有效时间,或者说证书的使用期限。 过了有效期限,证书就会作废,不能使用了。
◆Public key (公钥)
这个我们在前面介绍公钥密码体制时介绍过,公钥是用来对消息进行加密的,第2章的例子中经常用到的。这个数字证书的公钥是2048位的,它的值可以在图的中间的那个对话框中看得到,是很长的一串数字。
◆Subject (主题)
这个证书是发布给谁的,或者说证书的所有者,一般是某个人或者某个公司名称、机构的名称、公司网站的网址等。 对于这里的证书来说,证书的所有者是Trustwave这个公司。
◆Signature algorithm (签名所使用的算法)
就是指的这个数字证书的数字签名所使用的加密算法,这样就可以使用证书发布机构的证书里面的公钥,根据这个算法对指纹进行解密。指纹的加密结果就是数字签名(第1.5节中解释过数字签名)。
◆Thumbprint, Thumbprint algorithm (指纹以及指纹算法)
这个是用来保证证书的完整性的,也就是说确保证书没有被修改过,这东西的作用和2.7中说到的第3个问题类似。 其原理就是在发布证书时,发布者根据指纹算法(一个hash算法)计算整个证书的hash值(指纹)并和证书放在一起,使用者在打开证书时,自己也根据指纹算法计算一下证书的hash值(指纹),如果和刚开始的值对得上,就说明证书没有被修改过,因为证书的内容被修改后,根据证书的内容计算的出的hash值(指纹)是会变化的。 注意,这个指纹会使用"SecureTrust CA"这个证书机构的私钥用签名算法(Signature algorithm)加密后和证书放在一起。