在访问Internet时,有时网站会提示采用的是安全连接,同时屏幕显示相应的对话框要求用户选择是否继续进行连接。出现这种现象,说明该网站使用了SSL协议。与传统的Web 80端口不同,安全连接使用的默认端口为443。
SSL是Netscape公司发布的一种开放协议,目前多应用在HTTP中,为网络传输提供数据安全性分层的机制,为TCP/IP连接提供数据加密、服务器认证、消息完整性,以及可选的客户机认证。
SSL的主要作用是为应用程序之间的通信提供保密性和可靠性,其工作过程可以分为以下三个阶段。
(1)握手:这个阶段双方协商被用于会话的加密参数。当一个SSL客户机和服务器第1次开始通信时,它们在一个协议版本上达成一致,选择加密算法及相互认证,并使用公钥技术来生成共享密钥。
(2)记录:记录过程中,通信双方交换应用层数据。信息被分割成可管理的数据块,数据可以被压缩并增加消息认证代码MAC,然后结果被加密并传输。接收方接受数据并进行解密,校验MAC、解压缩并重新组合,然后向应用程序协议提交结果。
(3)警告协议:用于指示数据传输中发生了错误或两个主机之间的会话在什么时候终止。
建立安全连接的过程如下:首先客户机通过连接到支持SSL的服务器,启动一次SSL会话。支持SSL的Web服务器在端口443上接受SSL连接请求。当客户机连接到这个端口上时,它将启动一次建立SSL会话的握手。当握手完成之后,通信内容被加密,并且执行完整性检查,然后进行数据传输。
SSL协议可以保证网络访问的保密与安全,具有以下的特点。
(1)加密的网络连接:通过初始握手定义了密钥之后,将使用加密算法。对于数据加密使用了对称加密(例如DES和RC4)。
(2)身份验证:可以使用非对称加密或公钥加密(例如RSA和DSS)。
(3)可靠的数据完整性:数据包中含有消息认证代码MAC,包括了完整性检查,其中使用安全哈希函数(例如SHA和MD5)来进行MAC计算。