首页 > HTTPS/SSL访问过程中是由谁来完成加密的?

HTTPS/SSL访问过程中是由谁来完成加密的?

HTTPS/SSL访问过程中是由谁来完成加密的?

是由浏览器加密完成后再发送给服务器,还是由操作系统完成的,比如浏览器走网络的时候,由操作系统检测到SSL请求然后再加密?

HTTPS能否有效防止抓包?

如果是在Android/IOS等移动端接口走HTTPS能否有效防止抓包?


SSL 对操作系统内核来说是应用层协议,当然是由应用程序来完成的。实际上浏览器是调用相关 SSL 库来完成加密、解密等工作的。部分浏览器(如火狐)会自己管理证书,另外部分(如 IE)会依赖操作系统提供的其它组件来管理证书。

SSL 不是被检测到的,而是浏览器本身就知道的(https:// 开头的是 SSL 加密的,http:// 开始的不是)。如果服务器实际上不是那个样子部署的,你就会得到错误或者异常情况。(试试 https://baidu.com:80/ 或者 http://google.com:443/ )

HTTPS 不防止抓包。它防止两件事情:信息泄漏信息被篡改。也就是说,除非系统或者应用程序本身不安全,或者使用的 SSL/TLS 协议中发现漏洞,没有抓包者可以得知传输的内容,也不可能修改它。

不安全的情况包括:本地导入了不可信的根证书、程序不检查证书的有效性、程序不检查证书是否已被吊销、本地信任的证书管理机构被入侵或者自身违规操作等。


SSL位于HTTP层之下,所以当浏览器发送请求时,首先把数据按照HTTP协议转换成字节流,然后采用SSL握手阶段协商好的对称密钥对数据进行加密,接着发送给服务器(服务器返回数据过程与此类似),所以针对你的问题:

  1. 浏览器或者服务器内置了ssl功能模块,来完成上述工作;
  2. 由于数据发送时已经被加密,所以即使在网络中被劫了包,他没有密钥也是没用的(至于这个对称密钥,如何被安全的传递、不被伪造,又是另外问题了);
【热门文章】
【热门文章】