一、传输层安全
高防服务器人们最初设计互联网时,很少考虑到安全。这样的成果是,核心通信协议本质上是不安全的,只能依附所有参与方的诚信行动。互联网在早期由少数节点(大部分是大学)构成,那时这也许行得通;但现在所有人都可以连接到互联网,这种方法便土崩崩溃。
SSL和TLS都是加密协议,旨在基于不安全的基础设施供给安全通信。这意味着,如果正确安排这些协议,你就可以对互联网上的任意一个服务打开通信信道,并且可以确信你会与正确的服务器通信安全地交换信息(你的数据不会被他人截取,而且在吸收时会保持原样)。这些协议掩护着通信链路即传输层,这也是TLS名称的由来。
安全不是TLS的唯一目标。TLS实际上有以下四个重要目标(按优先次序排列)。
加密安全
这是重要问题:为任意愿意交换信息的双方启用安全通信。
互操作性
独立的编程人员应当能够应用通用的加密参数开发程序和库,使它们可以相互通信。
可扩大性
你很快就会看到,TLS是一种能高效开发和安排加密协议的框架。其重要目标是独立于实际应用的加密基元(例如密码和散列函数),从而不需要创立新的协议,就容许从一个基元迁移到另一个。
效率
最终的目标是在实现上述所有目标的基础上保持性能成本在可吸收的领域内。这需要尽量减少昂贵的加密操作的履行次数,并供给个会话缓存方案,以避免这些加密操作在随后的连接中被履行。
二、网络层
互联网的核心是建立在IP( internet protocol)和TCP( transmission control protocol)协议之上的,这些协议用于将数据分割成小数据包进行传输。这些数据包在全世界领域内历经数干里的传输,在此期间需要跨越许多国家的许多盘算机系统(称为跃点,hop)。由于核心协议本身不供给任何安全保障,任何有权访问通信链路的人都可以获得所有数据,并且可以在不被察觉的情况下转变这些数据。
IP和TCP不是唯一易受攻击的协议,还有一系列其他路由协议用于协助创造网络上的其他盘算机。DNS和BGP就是这样的两个协议。它们同样是不安全的,可以被他人通过各种方法劫持。如果涌现这种情况,发往一台盘算机的连接可能由攻击者响应。
如果安排了加密,攻击者也许有能力得到加密数据的访问权限,但是不能解密数据或者修正数据。为了避免假装攻击,SSL和TS依附另外一项被称为公钥基础设施( public keyinfrastructure,PK)的重要技巧,确保将流量发送到正确的吸收端。
为了懂得SSL和TLS的运作,我们需要从描写网络通信的理论模型入手,即开放系统互联( open systems interconnection,OSl)模型,参见表1-1。简略来说,所有功效都被映射到七个层上。 最底层是最接近物理通信链路的层,后面的层依次建立在其他层之上,供给更高级别的抽象。最顶层就是利用层,携带着利用数据。
注意
现实中的协议并非总能与0Sl模型完整对应。比如SPDY和HTP/2因为要对连接进行管理,所以被归入会话层协议,但它们却在数据加密以后生效。第五层及更高层的划分经常是含混的。
以这种方法安排通信可以清楚地划分概念:高层的协议不必担心在底层实现的功效。进一步说,不同层次的协议可以参加通信或者从通信中删除,一种底层协议可以服务于多种上层协议。
SSL和TLS是这一原则如何在实践中运用的一个重要示例。它用于TCP协议之上,上层协议(如HTP)之下。当不需要加密时,可以将TLS从模型中去掉,这并不会对上层协议产生影响(它们将直接与TCPか同工作)。当需要加密时,就可以利用TLS加密HTIP,以及其他TCPか议(比如SMTP、IMAP等)。