【SSL】HTTPS 和 SSL证书原理
目录
HTTPS 认证过程:https://www.bilibili.com/video/BV1j7411H7vV?from=search&seid=9264061459142089866
阐述HTTPS和SSL证书的原理
解答
HTTPS (Hyper Text Transfer Protocol Secure) 对比HTTP而言,数据传输更安全,通常用来传输私密性的数据,如在线交易/订单处理/银行数据等,不过随着安全意识的普及,非传统安全领域的网站也在转向HTTPS。如苹果要求App Store内的应用都要支持HTTPS。
HTTPS 通过安全协议如SSL/TLS 来保证数据传输, SSL和TLS都是基于非对称加密算法,而RSA算法是非对称加密算法中的佼佼者。
RSA的公钥和私钥是互相对应的。RSA会生成两个密钥,持有者可以把任何一个用于公钥,另一个就是私钥。顾名思义,私钥会被严密保管,除了拥有者以外禁止其他角色接触,如在一个网站/远程服务商内,私钥妥善存储在服务器端。任何被公钥加密的东西只能被私钥解密,反过来任何被私钥加密的东西也只能被公钥解密。
私钥和密钥叠加使用,从而达到双方之间秘密通信,最终实现身份验证和秘密通信。
- 私钥加密公钥解密,能证明“私钥拥有者” 的唯一身份,这就是签名。
- 公钥加密私钥解密,确保发送的信息,只能被“私钥拥有者” 接收,从而实现安全传输
假设用私钥加密,来传递数据,因为可能有多个公钥持有者,从而失去对信息保护的目的,这是不允许的。
另外通过签名还可以校验数据完整性,发送者把传输信息的原文做一次哈希,然后用私钥加密哈希作为签名,并一起发布出去。当公钥持有者接收数据后,可以利用持有的公钥解密签名,如果解密成功,并且解密出来的哈希值确实和数据原文一致,那么就证明了数据内容的完整性。
SSL 证书
在实现HTTPS过程中,SSL证书的作用是不可或缺的。
具体的看看SSL证书工作的过程:
- 当浏览器或服务器尝试连接支持支持SSL的网络服务器时,浏览器或服务器会要求网络服务器表明自己的身份。
- 网络服务器发送一份自身持有的SSL证书给浏览器或服务器,浏览器或服务器根据一定的规则(和本地存储的CA根证书列表对比) 判断是否信任远程服务,如果信任,则发送一份消息给远程服务器, 否则中断继续连接。
- 网络服务器接收到消息后,发送一份包含数字签名的确认信息,开始建立SSL加密的会话。
- 会话建立后,加密的数据顺畅地在客户端和网络服务器之间传递。
当用户在使用HTTPS的网页时,网站会在开始时发送SSL证书到浏览器,证书内包含建立安全连接的公钥,浏览器和网站以此为基础开始"SSL 握手", 握手的过程中产生共用的密钥,这样安全连接在用户和网站之间就建立起来了。
当建立HTTPS使用可信任的证书时,浏览器会在地址栏显示挂锁标志, 地址栏会变为绿色如果网站安装了Extended Validation Certificate, 用户看到这个颜色会感到"绿坝"在保护着他。
SSL证书通常由权威的证书组织签发,浏览器,操作系统和移动设备里会维护一组受信任的CA根证书, 如果被访问网站返回的证书不被信任,浏览器将会显示不予信任的警告信息,而带来用户流失,因为用户缺少安全感。
作者:豆志昂扬
链接:https://www.jianshu.com/p/3a78951fc3bc
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
漫画:什么是 HTTPS 协议?
摘自:https://blog.csdn.net/bjweimengshu/article/details/87706654
这时候,我们有必要引入第三方,一个权威的证书颁发机构(CA)来解决。
到底什么是证书呢?证书包含如下信息:
为了便于说明,我们这里做了简化,只列出了一些关键信息。至于这些证书信息的用处,我们看看具体的通信流程就能够弄明白了。
流程如下:
建议看这个漫画:https://blog.csdn.net/bjweimengshu/article/details/87706654
1.作为服务端的小红,首先把自己的公钥发给证书颁发机构,向证书颁发机构申请证书。
2.证书颁发机构自己也有一对公钥私钥。机构利用自己的私钥来加密Key1,并且通过服务端网址等信息生成一个证书签名,证书签名同样经过机构的私钥加密。证书制作完成后,机构把证书发送给了服务端小红。
3.当小灰向小红请求通信的时候,小红不再直接返回自己的公钥,而是把自己申请的证书返回给小灰。
4.小灰收到证书以后,要做的第一件事情是验证证书的真伪。需要说明的是,各大浏览器和操作系统已经维护了所有权威证书机构的名称和公钥。所以小灰只需要知道是哪个机构颁布的证书,就可以从本地找到对应的机构公钥,解密出证书签名。
接下来,小灰按照同样的签名规则,自己也生成一个证书签名,如果两个签名一致,说明证书是有效的。
验证成功后,小灰就可以放心地再次利用机构公钥,解密出服务端小红的公钥Key1。
5.像之前一样,小灰生成自己的对称加密密钥Key2,并且用服务端公钥Key1加密Key2,发送给小红。
6.最后,小红用自己的私钥解开加密,得到对称加密密钥Key2。于是两人开始用Key2进行对称加密的通信。
在这样的流程下,我们不妨想一想,中间人是否还具有使坏的空间呢?
注:最新推出的TLS协议,是SSL 3.0协议的升级版,和SSL协议的大体原理是相同的。
—————END—————