加密代理服务器介于不安全网络环境和安全网络环境之间,并通过使用网络加密体制在不安全信道上向客户提供安全可信的数据。
为了确保数据信息不被第三方截获,加密代理服务系统器需要与客户端进行安全通信。一次安全通信分为密钥建立和保密通信两部分。
一、密钥建立
在客户端和加密代理服务器开始交互大量信息之前,两者需要建立一个安全的信道。于是,双方需要进行密钥建立以确定本次通讯所使用的公共密钥。
密钥建立分为无服务器的对称密钥建立和基于服务器的密钥建立,根据代理服务器的类型和客户端的数量自行设计。无服务器的对称密钥建立又包括点对点密钥更新(有共享长期密钥)和无预先共享密钥的街钥建立两种。无预先共享密钥的密钥建立的一个实例如下:
Diffic.Hellman密钥交换协议
客户端和加密代理服务器协商好一个大素数P和一个较大的整数g(1<g<P)。P和g都无须保密,可以共享给网络上的所有用户。当客户端和加密代理服务器要进行保密通信时,它们可以执行以下步骤:
(1)客户端选取大的随机数x,并计算x=gx(modp);
(2)加密代理服务器选取大的随机数x',并计算x'=gx'(modp);
(3)客户端将x传送给加密代理服务器,加密代理服务器将x'传送给客户端;
(4)客户端计算k=(x')x(modp),加密代理服务器计算k'=xx'(modp)。
易知k=k'=gxx'(modp)。此时,客户端和加密代理服务器已获得了相同的秘密值k。双方以作为加解密钥,用传统对称密钥算法进行保密通信。但是这种做法也有明显的缺点,就是容易受到中间人攻击。
二、SSL
SSL是以公钥基础结构为基础的网络安全解决方案。是由Netscape公司提出的一种建立在网络传输层TCP 协议之上的安全协议标准。
SSL用来在客户端和 服务器之间建立安全的TCP连接,并向基于TCP/IP协议的客户/服务器应用程序提供客户端和服务器的验证、数据完整性及信息保密性等安全措施。
SSL协议主要用于浏览器和Web服务器之间建立安全的数据传输通道,还适用于Telnet、FTP和NNTP等服务。
SSL的工作原理:
①客户端向服务器提出请求,要求建立安全通信连接;
②客户端与服务器进行协商,确定用于保证安全通信的加密算法和强度;
③服务器将其服务器证书发送给客户端。该证书包含服务器的公钥,并用CA的私钥加密;
④客户端使用CA的公钥对服务器证书进行解密,荻得服务器公钥。客户端产生用于创建会话密钥的信息,并用服务器公钥加密,然后发送剑服务器;
⑤服务器使用自己的私钥解密该消息,并生成会话密钥,然后将其川服务器公钥加密,再发送给客户端。这样服务器和客户端双方就都拥有了会话密钥;
⑥服务器和客户端使用会活密钥来加密和解密传输的数据。它们之问数据传输使用的是对称加密。
SSL解决的3个关键问题:
①客户端对服务器的身份确认;
②服务器对客户的身份确认;
③在服务器和客户之间建立安全的传输信道。
三、加密代理服务器的实现
加密代理服务器的实现方法是,根据本文中关于代理服务器的实现方法,在客户端和代理服务器之问建立安全倍道。
从开源网站http://www.openssl.org/可以获得最新版本的SSL应用工具和代码包。另外,http://www.cryptopp.corn/提供目前流行的绝大部分的加密算法的代码包。
加密代理服务技术使用了加解密技术。只有加密通信双方使用相同的协议,客户端才能连接到 密服务器的端口进行访问。如图所示。
客户端需要运行加密代理软件,来实现应用程序和加密服务器之间的信息转发和明密文转换。
小知识之代理服务器
代理服务器(Proxy Server)是一种重要的安全功能,它的工作主要在开放系统互联(OSI)模型的对话层,从而起到防火墙的作用。代理服务器大多被用来连接INTERNET(国际互联网)和INTRANET(局域网)。