• 什么是https?


    很久之前注意到了https这个新出来的协议,当时感觉到只是一个加密的协议,然后没有什么关注,只知道他和http的区别就在于加密,最近突然很多人问起了这个https到底是什么?于是上网查了查资料,总结之。

    Https是以安全为目标的Http通道,也就是说是http的安全版,在http之下加入了SSL层,也就是说https的安全是基于SSL的,Https协议内容基本和http一致,不过使用了不同的端口号而且在Http和TCP之间加入了加密层。

    首先https的端口号是443,而且这个协议并不是最近才出现的协议,而是早在网景还在的时候就出现了。

    https在具体的通信的时候的过程是这个样子:

    1 客户机向服务器发送一个开始信息开始新的会话链接

    2.服务器根据客户机信息生成一个秘钥,如果需要服务器相应客户的信息的时候生成主秘钥的信息。

    3.客户根据服务器信息生成主秘钥,使用服务器的公开秘钥加密信息后给服务器。

    4.服务器恢复主秘钥,返回给客户一个主秘钥认证信息,客户机认证服务器。

    TLS握手

    TLS是在TCP上建立的安全层,所以是建立咋TCP协议之后的,TLS的握手前一定会发生TCP的三次握手。

    首先,执行TCP的三次握手。

    1.客户机向接收机发送一个SYN。→_→

    2.服务器向客户机发送一个SYN和ACK,完成第二次握手,实际上第二次握手的时候链接已经建立,服务器已经开始给访问分配资源了。←

    3.但是TCP还会发送第三次握手确定客户机收到了这个消息,客户机此时在TCP中会再次发送一个ACK,当然这里是TLS的握手,所以在TLS握手为了节约链接的时间,在TLS握手中,会在TCP的第三次握手中向客户机发送一些规格说明(TLS版本,支持的加密套件,以及另外一些TLS选项)。→_→

    4.之后开始第四次过程服务器取得客户端发送的信息,并从客户端给服务器的加密套件中选择一个,同时服务器也给客户端的自己的信息及证书。←

    5.两端最后协定好了共同的加密套件,客户机把自己证书给服务器。客户端生成一个对称秘钥,用服务器的秘钥来加密,并发送给服务器→_→

    6.服务器解密出客户端发来的对称秘钥,并通过MAC验证之后发送一个加密的结束消息。←

    7.客户机用之前的对称秘钥解密过来的消息,验证MAC,如果顺利,则建立通信发送数据。→_→

    8. 。。。应用数据←

    这里可以看出,其实https降低了访问的效率,但是目前https越来越多的使用了,原因就在于各个运营商对流量的劫持,然而https是不会被劫持的,所以为了不被劫持,很多网站成了https,而且目前谷歌chrome会将大多数http的网站认为其不安全,调到不安全页面。

  • 相关阅读:
    Compact Framework访问内嵌资源文件
    RBAC权限设计图 [转]
    c# 中判断用户是否按下CTRL键
    分享开发soket经验 我的基于socket的持久层 [转]
    没事教宝宝画画
    界面开发(一)[转]
    Winform中多国语言窗体的设计以及.NET中资源文件的使用[转]
    我眼中的理想系统
    C# WinForm开发系列 Socket/WCF/Rometing/Web Services[转]
    基于RBAC的权限设计模型[转]
  • 原文地址:https://www.cnblogs.com/Summer7C/p/5444430.html
Copyright © 2020-2023  润新知