可信身份认证系统 可信网站验证( 二 )


完整基本上上面已经解决了机密性和认证,还有一个完整性没有保证 。虽然黑客还是看不懂内容,但是黑客可以随意篡改几个比特的通信内容 。这时候Bob在解密的时候可能会看到一个很乱的内容,但是他不知道这是Alice实际发的内容还是别人偷偷改的 。
单向哈希函数可以把输入变成固定长度的输出字符串,其特点是无法从这个输出中还原出输入内容,不同的输入几乎不可能产生相同的输出 。就算要专门去找 , 也很难找到这样的输入(防撞) 。所以Alice只需要对明文内容做一个哈希运算得到一个哈希值,一起加密传给Bob 。即使黑客篡改了内容,Bob解密后发现获取的内容和对应计算的哈希值与交付的不一致 , 说明这个包的完整性被破坏了 。
安全可靠的通信 。综上所述,安全可靠的保证:
对称加密和非对称加密解决:保密性
数字签名:认证和不可否认性
单向哈希算法:完整性
来一个完整的画面:
Https握手摘要:
1.客户端发起HTTPS请求
2.服务器的配置
使用HTTPS协议的服务器必须有一套数字证书,可以是自制的 , 也可以是CA证书 。不同的是,自己颁发的证书需要客户端验证后才能继续访问,而使用CA证书时不会弹出提示页面 。这组证书实际上是一对公钥和私钥 。为别人加密公钥,为自己解密私钥 。
3.发送证书
这个证书实际上是一个公钥 , 但是它包含了很多信息,比如证书的颁发机构,过期时间等 。
4.客户端解析证书
这部分工作由客户端的TLS完成 。首先,它将验证公钥是否有效,如颁发机构、过期时间等 。如果发现任何异常 , 会弹出一个警告框,表示证书有问题 。如果证书没有问题,那么生成一个随机值,然后用证书加密随机值 。
5.传输加密信息
这部分传输的是证书加密的随机值 , 这样服务器就可以得到这个随机值,以后客户端和服务器之间的通信就可以用这个随机值进行加密和解密 。
6.服务段解密信息
用服务器的私钥解密后,得到客户端发送的随机值(私钥),然后用这个值对内容进行对称加密 。所谓对称加密,就是通过某种算法把信息和私钥混合在一起,这样除非知道私钥 , 否则无法获取内容,而客户端和服务器都知道这个私钥,所以只要加密算法足够坚韧,私钥足够复杂,数据就足够安全 。
7.传输加密信息 。
该信息由服务段的私钥加密,并且可以在客户端恢复 。
8.客户端解密信息 。
由Ad提供动力 。加
客户端用先前生成的私钥解密由服务部分发送的信息 , 从而获得解密的内容 。
PS:即使第三方监控了整个握手过程的数据 , 也是无可奈何 。
摘要
为什么HTTPS是安全的?
在HTTPS握手的第四步中,如果站点的证书不可信,将显示以下确认界面,确认站点的真实性 。另外,第六和第八步,使用客户端的私钥进行加密和解密,保证了数据传输的安全性 。
HTTPS和HTTP的区别
1.https协议需要向ca申请证书或自制证书 。
2.http信息是明文传输的 , 而https是带安全的ssl加密 。
3.http直接用TCP传输数据,而https要经过一层SSL(OSI表示层) , 使用的端口不一样 。前者是80(需国内备案),后者是443 。
4.http连接简单,无状态;HttpS是SSL+HTTP协议构建的网络协议,可以加密认证,比HTTP协议更安全 。
请注意,https加密位于传输层
Https消息在封装成tcp消息时是加密的,https的头域和体域都会加密 。
使用tcpdump或wireshark等tcp层工具抓包时,得到的是加密的内容,而如果使用应用层抓包,使用Charels(Mac)和Fildder(Windows)抓包,就清楚了 。
PS: HTTPS本身就是为了网络的传输安全 。
例如,使用wireshark捕获数据包:
Http,可以看到catch是纯文本的:
Https,可以看到抓的是密文:
附录
HTTPS常用的加密和哈希算法如下:
非对称加密算法:RSA、DSA/DSS
对称加密算法:AES,RC4 , 3DES
哈希算法:MD5、SHA1、SHA256
Http:三次握手:
现在这个社会 , 我们离不开网络 。那么互联网的工作流程是怎样的呢?从http发起到完成,网络为我们做了什么?今天主要分析http请求的过程:Http工作之前,Web浏览器通过网络与Web服务器建立链式连接,连接是通过Tcp完成的 。这个协议和Ip一起构成了互联网,著名的Tcp/Ip协议族,所以互联网也叫Tcp/Ip网络 。Http是比Tcp更高的应用层协议,一般Tcp接口的端口是80 。

推荐阅读