nodid 2010-06-10
作为安全,我们在网络之中,尤其是商业领域中是非常关注的。那么在很多安全协议中我们如何进行区分和比较呢?现在还是让我们来认识一下今天的主角——SSL安全协议.一个应用程序的安全需求在很大程度上依赖于将如何使用该应用程序和该应用程序将要保护什么。不过,用现有技术实现强大的、 一般用途的安全通常是可能的。认证就是一个很好的示例。
当顾客想从 Web 站点购买某个产品时,顾客和 Web 站点都要进行认证。顾客通常是以提供名字和密码的方式来认证他自己。 另一方面,Web 站点通过交换一块签名数据和一个有效的 X.509 证书(作为 SSL 握手的一部分)来认证它自己。 顾客的浏览器验证该证书并用所附的公用密钥验证签名数据。一旦双方都认证了,则交易就可以开始了。
SSL 能用相同的机制处理服务器认证(就如在上面的示例中)和客户机认证。 Web 站点典型地对客户机认证不依赖 SSL安全协议 — 要求用户提供密码是较容易的。而 SSL 客户机和服务器认证对于透明认证是完美的, 对等机 — 如 p2p 应用程序中的对等机之间一定会发生透明认证。
安全套接字层(Secure Sockets Layer(SSL)) ,SSL 是一种安全协议,它为网络(例如因特网)的通信提供私密性。SSL 使应用程序在通信时不用担心被窃听和篡改。 SSL 实际上是共同工作的两个协议:“SSL 记录协议"(SSL Record Protocol)和“SSL 握手协议" (SSL Handshake Protocol)。“SSL 记录协议"是两个协议中较低级别的协议,它为较高级别的协议, 例如 SSL 握手协议对数据的变长的记录进行加密和解密。SSL 握手协议处理应用程序凭证的交换和验证。
当一个应用程序(客户机)想和另一个应用程序(服务器)通信时,客户机打开一个与服务器相连接的套接字连接。然后, 客户机和服务器对安全连接进行协商。作为协商的一部分,服务器向客户机作自我认证。客户机可以选择向服务器作或不作自我认证。 一旦完成了认证并且建立了安全连接,则两个应用程序就可以安全地进行通信。按照惯例,我将把发起该通信的对等机看作客户机, 另一个对等机则看作服务器,不管连接之后它们充当什么角色。
名为 A 和 B 的两台对等机想安全地进行通信。在我们简单的 p2p 应用程序的环境中,对等机 A 想查询对等机 B 上的一个资源。 每个对等机都有包含其专用密钥的一个数据库(名为 keystore)和包含其公用密钥的证书。密码保护数据库的内容。 该数据库还包含一个或多个来自被信任的对等机的自签名证书。 对等机 A 发起这项事务,每台对等机相互认证,两台对等机协商采用的密码及其长度并建立一个安全通道。完成这些操作之后, 每个对等机都知道它正在跟谁交谈并且知道通道是安全的。 SSL安全协议(Secure socket Layer)安全套接层协议主要是使用公开密钥体制和X.509数字证书技术保护信息传输的机密性和完整性, 它不能保证信息的不可抵赖性,主要适用于点对点之间的信息传输,常用Web Server方式。