您的位置:首页 > 理论基础 > 计算机网络

HTTP——安全

2014-03-06 14:24 169 查看
为保证HTTP安全,手段有很多,这篇介绍其中几种方式。首先是数字加密,有多种方式可以对报文进行编/解码,不仅防止好事者的读取,还可以用它来防止对报文的篡改。随着密码学的发展,已不再是简单的通过密码(一套编码方案,编码器)将明文变成密文了,而使用密钥的密码会更灵活、更安全。
对称密钥加密技术
在对称密钥加密技术中,发送端和接收端要共享相同的密钥key才能进行通信,因此,保证密钥的机密状态时很重要的,在很多情况下,编/解码算法是众所周知的,密钥就是唯一保密的东西了,一般攻击者会通过暴力破解,也就是枚举攻击,密钥越长被破解的概率也就相对低一些。
一般按照对称密钥技术,如果A、B、C和J对话,那么ABC都要建立自己和J的密钥,万一有N个节点,每个节点都要和其他所有N-1个节点对话,总会会产生N的二次方密钥,这从管理来说是行不通的。
公开密钥加密技术
公开密钥加密技术没有为每对主机使用单独的加密/解密密钥,而是使用两个非对称密钥:一个用来对主机报文编码,另一个用来对主机报文解码,编码密钥是众所周知的,只有解密密钥是保密的,这样只有接收端才能对发送给他的报文进行解码,也不存在管理上的问题。常用的公开密钥加密算法是RSA算法,如果能破解由他计算出来的私有密钥就可以入侵瑞士银行了。
因为公开密钥加密算法的计算会比较慢,所以比较常见的做法是在两个节点通过便捷的公开密钥加密技术建立起安全通信,然后再利用那条通道产生并发送临时随机对称密钥,通过更快的对称加密技术对其余的数据进行加密。
数字签名
数字签名是为了验证报文是否被篡改过,就像我们写信签上自己的姓名,让接受者知道信是由本人写的,而不是入侵者。数字签名是附加在报文上的特殊加密校验码,签名可以证明是作者编写了这条报文,只有作者才会有最机密的私有密钥,因此,只有作者才能计算出这些校验和;另外就是防止报文篡改。
数字签名通常是用非对称公开密钥技术产生的。因为只有作者才知道其私有密钥,所以可以将作者的私有密钥当做一种“指纹”使用。如下图:



数字证书
数字证书这个大家比较熟悉,12306经常会弹出来数字证书不可信等信息,这相当于因特网上的“ID卡”,其中包含了由某个受信任组织担保的用户或公司的相关信息,就像我们身份证,由国家机关颁发,那我们的身份证就可信了,如果你的身份证是有我颁发的,那鬼也不会信的。数字证书里面包含的所有信息都是由一个官方的“证书颁发机构”以数字方式签发的,基本的数字证书中通常包括:版本、序列号、签名算法ID、证书颁发者、有效期、对象名称、对象的公开密钥信息、发布者唯一的ID、对象唯一的ID、扩展、证书的办法机构签名。
HTTPS
HTTPS是最常见的HTTP安全版本,所有主要的商业浏览器和服务器上都提供HTTPS。HTTPS就是HTTP报文发送给TCP之前,先将其发送给了一个安全层(安全层通过SSL及其现在替代协议TLS实现),对其进行加密,SSL是一个二进制协议,与HTTP不同,其流量是承载在443端口(http是80)上的,OpenSSL是SSL和TLS最常见的开源实现,具体实例可以百度下。如下图:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: