美文网首页
https是如何保证安全的呢?

https是如何保证安全的呢?

作者: Da_xiong | 来源:发表于2018-06-03 16:02 被阅读0次

    一、http和https的区别

    • http:数据不通过加密就进行传输,在传输过程中数据处于裸奔状态,在路由、小区网关等中间通信环境可以被拦截或纂改数据等。比如常见的返回一个官网页面,运营商往返回的页面插入广告;连接公共区域的wifi能被获得明文的账号和密码。
    • https:数据先经过加密再进行传输。解密方式只有特定的目标方才知道,即使中间做了拦截也无法破解和利用数据内容。

    二、加密方式

    既然https是先将传输数据进行加密再发送,那常用的加密方式又有哪些呢?我们继续往下瞧,如下罗列了三种加密方式:

    • 对称加密:数据的加密和解密采用相同的密钥。这种方法的优点是加密速度快,常见的有AES。缺点是所有知道密钥的人全都可以解密。
    • 非对称加密:数据的加密采用不同的密钥,即公钥和私钥。用公钥加密的数据只能用私钥解密,用私钥加密的数据只能用公钥解密。一般是私钥给自己,公钥给别人。这种方法优点是相比对称加密更安全,缺点时加密速度慢,CPU开销大。
    • Hash加密:将任意长度的字符串加密成固定长度的字符串,且任何拿到加密后数据的人无法破解成原数据。Hash常用来验证数据的完整性,常见的有MD5、SHA1、SHA256。密码的传输一般采用的就是这种方式而非明文,这样即使密码数据库泄露也无法获取原密码。

    *或许有人会有疑惑,采用非对称加密的方式,把公钥公布出去,私钥给自己,虽然返回的数据是只有自己知道,但发出去的数据不还是所有有公钥的都可见了么?
    其实,既然返回的数据只有自己可见,那服务端可以在返回的数据里跟客户端商量一种新的通信加密方式,而这种通信方式藏在返回数据里只有客户端才能解密,所以就只有两端知道。当客户端需要发送数据时,可以先用新的加密方式加密,再用私钥加密之后发送,这样其他拥有公钥的非目标端用公钥解密了的还是用新加密方式加密的数据。

    三、数字证书

    在上面我们知道了https可以采用加密的方式来确保传输数据的安全,而加密方式中非对称加密是比较安全的一种。但是,直接通过非对称加密的方式是否就一定确保数据通信完全安全呢?其实不然,因为公钥是公布出去的,服务端有可能收到假的公钥,这样别人就可以伪造客户端用假的公钥回复假的数据,而服务端还傻傻的认为是安全可靠的。如何避免这种情况的发生呢?要避免这种情况,首先就要确保公钥是真的公钥?那这个又如何确保呢?这就要靠数字证书了。

    • 数字证书:数字证书即一些CA机构发布的证书,网站需要使用https时可以申请证书,将自己的相关信息和公钥之类的写于其上,而只要有这些证书证明的公钥就被认为可信的。

    一般浏览器都会内置一些根CA或顶级CA的证书,当需要验证时,会通过CA链逐级验证(即网站的证书通过A证书证明有效,A证书由上级B证书确保有效,最后到根证书验证以确保整个验证可靠)。

    四、总结

    好了,到此https的基本原理讲解完了。简单总结下就是:

    1. 为了确保传输数据不裸奔需要对数据进行加密。
    2. 为了确保加密公布出去的密钥真实可靠,需要数字证书做公证人。

    相关文章

      网友评论

          本文标题:https是如何保证安全的呢?

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