美文网首页
HTTPS 是如何保护网络安全的?

HTTPS 是如何保护网络安全的?

作者: 耗子吴 | 来源:发表于2016-07-03 14:30 被阅读284次

    当我们浏览网页时,网页内容通过 HTTP 协议�进行�传输,HTTP 协议是明文的,很容易被窃听和篡改。如果黑客截取了浏览器和网站服务器之间的信息,就可以直接读取利用,因此 HTTP 协议不适合传输诸如信用卡、密码之类的敏感信息。

    如果你访问的网站网址是 HTTPS 开头,则意味着浏览器和服务器之间的通信进行了加密,敏感信息无法被监听和篡改。具体是如何做的呢?

    1. 背景知识:什么是非对称加密?

    密钥是指在明文转换为密文或将密文转换为明文的算法中输入的参数,暂且可以简单理解为密码。在对称加密中,同一个密钥可以同时用作信息的加密和解密。

    在非对称加密中,分成公开密钥和私有密钥,公开密钥是公开的,可以发布在网络上,私有密钥只有持有人自己拥有。如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。

    小明需要给小红发送一封机密邮件,可以用小红的公钥对邮件进行加密,即使邮件被黑客窃取,黑客也无法解密,小红收到邮件时后使用自己的私钥解密,即可查看到邮件内容。

    小红给小明回信,使用自己的私钥进行加密,小明收到信件后,使用小红的公钥进行解密,如果可以�解开邮件,则可以确信这封邮件是小红发出的,而不是其他人发出的,因为只有小红拥有的私钥可以对其进行加密。不过这个过程中如果邮件被黑客窃取,黑客也可以用小红的公钥进行解密,从而读取到邮件内容。

    从以上的例子可以看出,公钥加密传输可以防止信息窃取,私钥加密可以用作身份认证。

    2. 背景知识:什么是数字签名?

    私钥加密用作身份认证时,并不是直接将信息进行加密,这样做计算效率太低,而是对信息本身使用Hash 函数生成摘要(比如直接 md5),然后使用私钥对这段摘要进行加密,加密后的值我们称之为数字签名(signature),再将它附加在文件末尾。

    生成数字摘要

    收到文件时,接收者计算该文件的摘要,同时使用发送者的公钥对数字签名进行解密,如果解密后的值和文件摘要能够匹配上,则表明该文件确实为作者发送,没有被篡改过。

    但是更复杂的情况出现了:小刚偷偷使用小明的电脑,将小明电脑中小红的公钥替换成自己的公钥,然后小刚就可以假冒成小红给小刚发邮件了。由于班上有 50 个同学,不同成员的公钥的管理也成了问题。

    大家想了个办法,找老师专门成立一个"证书中心"(certificate authority,简称CA),为公钥做认证。证书中心用自己的私钥,对每个人的公钥和一些实名信息一起加密,生成"数字证书",发送信息时,只需要附上数字签名和数字证书就可以了,收到邮件后,使用 CA 的公钥解开数字证书,得到发送者的公钥,然后用�发送者的公钥验证数字签名,这样,全班每个人电脑里,只需存储 CA 的一个公钥即可。

    3. HTTPS 的加密解密过程

    HTTPS 协议,就用到了上面提到的非对称加密,需要具体流程如下:

    1. 客户端向服务器发出 HTTPS 请求,比如用户访问 https://www.baidu.com/

    2. 服务器用自己的私钥加密网页以后,连同本身的数字证书,一起发送给客户端

    3. 浏览器的“证书管理器”中有一个“受信任的证书机构”列表。浏览器会根据这张列表,查看解开数字证书的公钥是否在列表之内。

      Firefox 的证书机构列表
    4. 如果数字证书是可靠的,浏览器就可以解密后得到证书中的服务器公钥,对信息进行加密,然后与服务器交换加密信息。用户的银行卡号、敏感信息即使在传输过程中被窃取,黑客也无法解密,如果这张数字证书不是由受信任的机构颁发的,浏览器会发出警告,

      浏览器警告

    �使用 HTTPS 加密,除了能保障信息安全传输以外,还可以防止运营商的恶意注入,我们常看到一些本来没有广告的位置上突然有了广告,或者,你正愉快地刷着微博,突然弹出运营商的通知:

    运营商劫持

    这是运营商劫持了你访问的页面后进行篡改的结果,如果网站使用了 HTTPS,运营商就不会得逞。

    如果你访问网银、支付宝、理财等涉及到财产安全的网站时,一定要留意浏览器上的网址是否是 HTTPS 开头,如果不是,则一定要小心,极有可能是钓鱼网站。

    相关文章

      网友评论

          本文标题:HTTPS 是如何保护网络安全的?

          本文链接:https://www.haomeiwen.com/subject/gtbsrttx.html