https协议
HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层(安全套接层),HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。
实际就是多了一层SSL
SSL/TLS是一个密码学协议,它的目标并不仅仅是网页内容的加密传输。SSL/TLS的主要目标有四个:加密安全、互操作性、可扩展性和效率。对于安全性的保障,它还会从多个方面进行,包括机密性,真实性以及完整性。机密性是指,传输的内容不被除通信的双方外的第三方获取;真实性是指,通信的对端正是期待的对端,而不是其它第三方冒充的;完整性则是指,传输的数据是完整的,数据没有被篡改或丢失。
非对称加密
非对称加密 (asymmetric encryption) 又称为公钥加密 (public key cryptography),是使用两个密钥,而不像对称加密那样使用一个密钥的加密方法;其中一个密钥是私密的,另一个是公开的。顾名思义,一个密钥用于非公开的私人的,另一个密钥将会被所有人共享。
非对称加密的两个密钥之间存在一些特殊的数学关系,使得密钥具备一些有用的特性。如果利用某人的公钥加密数据,那么只有他们对应的私钥能够解密。从另一方面讲,如果某人用私钥加密数据,任何人都可以利用对应的公钥解开消息。 后面这种操作不提供机密性,但可以用作数字签名。
讲一个故事:
韩非有两把钥匙,一把是公钥,一把是私钥。韩非把公钥给了他的朋友卫庄 张良 紫女 还有一个坏人姬无夜也拿到了韩非的公钥。
紫女写了一封不希望别人看到的情书给韩非,写完以后用韩非的公钥加密,此时只有韩非可以用私钥解密,可以看到信的内容。只要韩非的私钥不泄露,信件的内容就是安全的。
现在韩非看完了信,要回一封信给紫女,告诉紫女我已经看了你的信。韩非要回信,要证明自己的身份,表示回信确实是自己写的。韩非决定采用“数字签名”表明身份。
注释:信息 + HASH = 摘要 摘要 + 私钥 = 数字签名(给收方做对比用的,验证收发内容是否一致)
韩非写完信后,先用哈希函数生成信件“摘要digest”,然后用自己的私钥对摘要加密,生成了“数字签名signature”,前面说过这个操作不提供机密性,因为很多人有韩非的公钥,但可以用作数字签名。
然后韩非将这个签名附在了新建的下面,一起发给了紫女。
紫女收到信件后,取下数字签名,用韩非的公钥解密,得到了信件的摘要。这一步证明,信件确实是韩非写的。这是不是就完了呢?没有!之前有人问为什么要对信息经过哈希函数处理生成摘要,下面就是原因,继续故事,然后呢紫女在对信本身的内容应用哈希函数,将得到的结果与数字签名里的摘要进行对比,如果是一致的,这说明信件的内容是韩非写的,没有被篡改过。
但是这个世界虽然好人多,但是还是有坏人的,老师告诉过我们防人之心不可无,这里有一个大坏人姬无夜,他把自己的公钥和紫女手上韩非的公钥调包了,那么紫女手上拿的实际是姬无夜的公钥,这样情况下,姬无夜就可以冒充韩非做上面所有的事情而不被发现。这样的情况太危险了。那么证书出来了。
注释:公钥 + 相关信息 + CA私钥 = 数字证书(验证发送者是否正确,是可信任的公钥)
证书正是为了解决公钥的信任问题而引入。证书体系通过引入可信的第三机构(我们暂且命名为流沙),称为 证书签发机构(certificate authority,简称CA),为公钥做认证,来确保公钥的真实可靠。证书是经过了 “流沙” 私钥签名的 证书持有者的公钥、身份信息及其它相关信息 的文件,用户通过“流沙” 的公钥解密获取证书中包含的 证书持有者 的公钥。只要 “流沙” 的私钥保持机密,通过证书验证 证书持有者 的身份,及获取公钥的过程就可靠。
继续故事,那么现在韩非找到“流沙” ,流沙为韩非的公钥做了认证。流沙对韩非的公钥,身份信息和一些其他相关信息一起加密,生成了“数字证书”,韩非拿到证书以后呢就没人能冒充他了,再需要把自己的公钥给朋友时,只需要把这个证书给朋友就可以了。这时候需要回信给紫女的时候照常附上自己的数字签名即可。
紫女收到信后,用流沙的公钥解开数字证书,既可以拿到韩非的真实公钥,然后验证数字签名是否是韩非签的。这里很关键一点就是作为证书的签发机构流沙的私钥必须是十分机密的。
引用:非对称加密与证书