在计算机的发展之初,互联网发展是非常缓慢,普及面非常小,能实现两台机之间通讯已经是非常了不起的了。所以在TCP/IP协议开发的时候并没有过多的考虑安全性,都是明文传输的。随着互联网的发展,同时也验证了“林子大了之啥鸟都有”的理论,在互联网存在了各种网络攻击,使得两机之间通讯的安全问题日益突出。
假设A与B之间需要相互通信。在此之前A与B是没有通信过的,两者之间需要建立通讯的时候会面临什么风险呢?
假设A与B之在谈恋爱,他们之间通讯是通过明信片联系的,那么在明信片投递的过程中,每个环节的处理人都可以看到明信片上的任何内容。TCP/IP协议本身就不提供安全机制(说白了就是在网络上裸奔,任何抓包软件在网络上一抓就看到你们之间传输的内容,这就是明文传输,明文传输的协议还有http、ftp、telnet、smtp等)。那么A与B之间通信的机密性无法得到保证。
又假设A与B之间谈恋爱内容是公开的,那么A发送的明信片投递给B的时候,怎么保证明信片内的内容没有被第三者C篡改过,C的目的是使得A与B之间产生裂痕而分手。(有同学就会好奇怎么截取?例如我们安装的VMware虚拟机就是将网卡改成混杂模式,接收所有经过它的数据流,而不论其目的地址是否是他。是相对于通常模式而言的,这被网络管理员使用来诊断网络问题,但是也被无认证的想偷听网络通信的人利用)那么不管数据在网络的传输途中是因网络问题还是被篡改了,要能验证数据的完整性,只要不完整就丢弃这段信息。
A与B之前没有任何通讯,A发起要与B通讯,这个时候跳出来C伪装成B,宣称我就是B,你来找我吧。假设你访问某银行网站进行转账,可是你登录了一个假冒的银行网站,在输入账号和密码之后,服务器提示由于内部网络错误,请稍后再试。这个时候,你的真实账号已经被非法者给盗取了里面的钱财。这个时候需要一种机制去证明我们去访问的那个站点他就是那个宣称的那个人。这就是身份验证。
机密性 | 完整性 | 身份验证 |
整个互联网安全中,众多机制都是围绕以上三个特性去解决问题。欲知加密的类型与其相关算法的概述,请听下回分解^_^
原文地址:http://blog.51cto.com/lythjq/2086829