Network Security Protocol
Introdution
假设我们现在有两个用户分别为 Alice 和 Bob,Alice 拥有一个较大的数据文件,Alice 想要通过网络安全地和 Bob 共享这个数据文件。我们知道计算机网络提供的最大功能就是连通性和共享,在网络存在着大量的安全威胁,诸如被动攻击与主动攻击等等,但我们传统的 TCP/IP 网络栈并不提供安全传输,那么我们要如何保证数据传输过程中的安全呢?
这里的“安全”对应着网络安全中种种的网络安全需求,包括保密性、完整性、可用性、可控性、不可否认性等等。因此我们需要设计一个网络安全协议,我们可以借鉴一下 HTTPs的设计理念,利用公钥密码进行密钥分发(公钥加密效率较低),利用对称密码进行数据加密(对称加密适合加密大量数据),完成这里的简单数据传输。显然这个协议并不能满足身份认证等功能,那么如何设计一个完善的网络安全协议呢?
通常我们将网络安全协议划分为协商过程和数据通信两个步骤,并针对两个步骤分别规定了相应的语法、语义和时序。在协议过程中,我们需要完成身份认证,算法协商,会话密钥的协商等。
在本篇文章中,我们自顶向下地分析TCP/IP 协议栈中每层的网络安全协议,包括应用层协议PGP、传输层协议TLS、网络层协议IPSec、链路层协议WPA等等。