明文传输的安全隐患:不对数据加密,数据只要在网络上是广播的,就不可避免地被嗅探。
HTTPS 与 HTTP 的区别:
• https 协议需要到 ca 申请证书
•
http 是超文本传输协议,信息是明文传输,https 则是具有安全性的 ssl 加密传输协
议。
• http 和 https 使用的是完全不同的连接方式,用的端口也不一样,前者是 80,后者是
443。
• http 的连接很简单,是无状态的;HTTPS 协议是由 SSL+HTTP 协议构建的可进行加
密传输、身份认证的网络协议,比 http 协议安全
SSL 协议:
1.SSL 记录协议:建立在 TCP 之上,为高层协议提供数据封装、压缩、加密等基本功
能的支持;
2.SSL 握手协议:建立在 SSL 记录协议上,用于实际的数据传输开始前,通讯双方进
行身份验证,协商加密算法、交换加密密钥等。
SSL/TLS 协议提供的服务:
1.认证:认证服务器和用户,确保数据发送到正确的客户机和服务器;
2.保密性:加密数据防止数据传输途中被窃取;
3.完整性:维护数据完整性,确保数据在传输过程中不被改变。
证书生成的过程:生成 CA 的公私密钥对,并生成自签根证书,根证书包含 CA 机构的信息
(CA 颁发机构名、签名哈希算法、有效期、公钥等)。 具体步骤:生成 CA 私钥(.key)->
生成 CA 证书请求 (.csr)->自签名得到根证书(.crt)。
CA 签发证书以及浏览器和网站身份验证建立安全连接的具体流程:
1.CA 建立,生成 CA 机构的根证书;
2.CA 与浏览器厂商联系,如果浏览器厂商信任这个 CA,就会把这个 CA 证书加入到
自己开发的浏览器中。
3.一个想要获得 HTTPS 服务的网站,首先要将自己网站的验证信息(域名,网站信
息)和自己的公钥发送给 CA 机构,向 CA 申请自己的服务器证书,CA 在验证这个
网站的合法性后,会用自己的私钥对网站的验证信息和公钥打包进行签名,形成这
个网站的证书,并将这个签名的证书颁发给网站。 现在网站已经有自己的证书了,
于是它可以搭建自己的 https 服务。
4.用户使用浏览器链接到该网站。在加密连接建立之前,网站首先将自己的 CA 签名
的证书发给用户浏览器,浏览器结合自带的 CA 证书,对网站证书(被 CA 私钥签
名的)进行验证(用 CA 的公钥对网站证书进行解密,再核对网站域名等是否正确),
验证成功后,建立安全连接
5.SSL 握手:1.服务器向客户端发送被 CA 签名的证书和服务器的其他相关信息;
2.浏览器用 CA 的公钥对证书解签,比较证书里的信息是否和服务器传回的信
息一致;
3.客户端验证成功后,将自己所支持的加密方式以及自己的公钥发给服务器
4.服务器根据客户端发送的支持的加密方式,选择一种加密程度最高的方案,
用客户端公钥加密,发送给浏览器。
5.客户端通过自己的私钥解密后,选择一个会话密钥用服务器的公钥加密发送
给服务器
6.接下来的数据传输都使用该对称密钥进行加密。
https 的局限性:1.https 比 http 耗费更多的服务器资源;SSL 证书需要钱。。;
2. SSL 可以允许多种密钥交换算法,而有些算法,如 DH,没有证书的概念,
这样 A 便无法验证 B 的公钥和身份的真实性,从而 C 可以轻易的冒充,用自己的
密钥与双方通信,从而窃听到别人谈话的内容。
3. A 与 B 网站通信,B 有了证书以后,如果 C 用自己的证书替换掉原有的
证书之后,A 的浏览器会弹出一个警告框进行警告,但又有多少人会注意这个警告
呢?
Web 相关(HTML,CSS,JS,PHP)
html :