学习链接: 知乎:https://www.zhihu.com/question/19577317 法号桑菜
http://blog.csdn.net/jasonjwl/article/details/50985271
https比http安全,是超文本传输协议安全,比http多了一个由TLS(SSL)提供的secure。
https保护了什么?
网络安全关心的问题:
confidentiality:机密性(你浏览网页的数据在别人看来就是一团乱码,无法获取密码银行卡等信息);
intergrity: 完整性(发送获取的数据中途不会被黑客串改);
availability: 可利用性;
authentication: 认证(https提供的,你连接的是你连接的网站,而不是什么人在中途伪造了一个网站给你,
专业上叫Man In The Middle Attack);
保护了你从连接到这个网站开始,到你关闭这个页面为止,你和这个网站之间收发的所有信息,就连url的一部分都被保护了。同时DNS querying这一步也被保护了,不会发生你输入www.google.com,实际上跑到了另一个网站去了。
https怎么做到安全?
1.确定是否是好网站,好网站都会有证书,每次链接,网站都先去找CA(certificate authority证书权威颁布)拿一份证书,然后把这个证书一起发给客户,来证明自己的清白。
证书加密由RSA的公钥,私钥加密。
2.怎么保证数据不会被修改?
hash算法可以把一个长长的数据变短,一般情况下,不同的长数据变成的短数据,是不一样的。哪怕长数据里面只变化了一点点,短数据也会差别很大(专业术语叫avalanche effect-雪崩效应)。传输数据的时候,把这个短数据一并传了,对方就可以知道整个数据包是否被修改。当然这需要双方都提前知道一些并没有被传输的秘密。常用的hash有md5和SHA256等,md5相对来说不安全,length extenstion attack(长度扩展攻击)和collision(碰撞)都很容易。总之,这样一来,你可以知道中途数据没有被修改。这就是integrity。
heartbleed
来自OpenSSL的紧急安全警告:OpenSSL出现“Heartbleed”安全漏洞。腾讯电脑管家分析,这一漏洞让任何人都能读取系统的运行内存。