Http协议(6)—安全HTTP

来源:互联网 发布:求免费的数据恢复软件 编辑:程序博客网 时间:2024/06/05 15:59
一、保护HTTP的安全
        1.功能:
                .服务器认证:
                        客户端知道它是在与真正的服务器进行通信
                .客户端认证:
                        服务器知道它是在与真正的客户端进行通信
                .完整性:
                        服务器与客户端的数据不会被修改
                .加密:
                        客户端与服务器的对话是私密的,不会被窃听
                .效率:
                        运行足够快的算法
                .普适性:
                        所有客户端和服务器都支持这些协议
                .管理的可扩展性
                        在任何地方的任何人都可以进行安全通信
                .适应性
                        能够支持当前最知名的安全方法
    
        2.HTTPS
                HTTPS在HTTP下面提供了一个传输级的安全密码层                 
                用SSL的输入/输出取代TCP的调用
    
二、数字加密
        
        1.密码
            加密之前的原始报文称为明文
            使用密码之后的编码报文成为密文    

        2.使用密钥的密码
            通过使用密钥来产生不同的加密密文

        3.数字密码
            C= E(p,e)
            P = D(c, d)
            C:经过编码的密文
            E:编码函数
            P:明文报文
            e:编码密钥
            D:解码函数
            d:解码密钥

三、对称密钥加密技术
        编码使用的密钥值和解码使用的密钥值相同(e = d),统称为k

        1.密钥长度与枚举攻击
            枚举攻击:
                    用暴力法去尝试所有的密钥值
            
        2.建立共享密钥
            发送者和接收者在互相对话之前要有一个共享的保密密钥,如果有N个节点,每个
            节点都要与其他N-1个节

        3.公开密钥加密技术
            不为每个节点对话使用单独的密钥,而是使用非对称密钥:一个用来对主机报文进行
            编码,一个用来对主机报文进行解码;编码密钥是公开的,但只有主机知道解码密钥
    
        
四、数字签名
        说明是谁编写的报文并且该报文并没有篡改过

        1.签名是加了密的校验和
            数字签名是附加在报文上的特殊加密检验码
    
            a.节点A将变长报文提取为定长的摘要
            b.节点A对摘要应用了一个签名函数,该函数将用户的私有密钥作为参数
            c.节点A将签名附加到报文的末尾发给节点B
            d.节点B需要确定报文确实是节点A写的,对前面进行检测

五、数字证书
        1.内容
            .对象的名称
            .过期时间
            .证书发布者
            .来自证书发布者的数字签名

        2.用证书对服务器进行验证
            通过HTTPS安全连接上服务器后,浏览器会自动获取所连服务器的数字证书
            服务器证书:
                .Web站点的名称和主机名
                .Web站点的公开密钥
                .签名颁发机构名称
                .签名颁发机构的签名

六、HTTPS
            1.概述
                将HTTP报文发送给TCP之前发送给了一个安全层.,对其进行加密
            
            2.方案
                HTTPS
            
            3.建立安全传输
                a.对于http,客户端发送一条到Web服务器端口80的tcp连接,接受服务器响应,然后关闭连接
                
                b.对于https,客户端打开到web服务器端口443的tcp连接,然后初始化SSL,对加密
                    参数进行沟通,交换密钥等,然后将请求报文加密并发送给ssl层
                    

            4.SSL握手
                .交换协议版本号
                .选择一个两端都了解的密码
                .对两端密码的身份进行认证
                .生成临时的会话密钥,以便加密信道         
            SSL支持双向认证,将服务器证书承载回客户端,客户端证书承载会服务端
            
        5.站点证书有效性
            验证步骤:
                    a.日期检测
                                检测是否过期
                    b.签名颁发者可信度检测
                    c.签名检测
                                对签名使用颁发机构的公开密钥,并将其与检验码进行比较
                    d.站点身份检测
                                浏览器会验证证书中的域名是否和将要访问服务器的域名是否一致

七、通过代理以隧道形式传输安全流量
        客户端使用服务器的公开密钥对发往服务器的数据进行加密时,代理不能读取http首部,
        故无法知道将请求转发到何处
        解决办法:
                a.https ssl 隧道协议:客户端在开始加密之前以明文方式告知代理连接的host和port,
                    通过CONNECT扩展方法
0 0
原创粉丝点击