HTTPS协议研究原理:HTTPS协议位于TCP/IP协议与应用层各协议之间,是基于HTTP协议的一种对传输数据加密的协议。可以将其简要分解为:HTTP+SSL.它建立在可靠的传输协议之上(如TCP协议等。)当数据经过TCP协议封装之后,SSL会对数据包进行进一步的加密和封装,然后让加密之后的数据包经过HTTP协议的进一步封装之后走在公共信道之上,加密之后的数据包能保证即使数据包被第三方截取之后也不能看到数据包里面的明文。SSL协议可以提供以下三方面的安全功能服务(也可由下图1.1.1给出):(1)信息加密:在信息传输之前对需要传输的信息进行加密,主要的机密技术有对称加密技术(如DES、IDEA),也有非对称加密技术(如RSA),本文采用的是RSA技术,在后文将进一步讲述。(2)身份认证:SSL协议要求在握手交换数据之前进行身份验证,其中包括对服务器的验证和对客户的验证,主要的身份认证技术有RSA(数字签名技术)、DSA(数字签名算法)、和ECDSA(椭圆曲线数字签名算法),本文采用的是RSA。(3)信息完整性校验:在客户和服务器接收到数据后,双方需要验证数据在传送或者存储过程中未被篡改、删除或者插入等。即通信的发送方通过散列函数产生消息验证码(MAC),接收方通过验证MAC来保证信息的完整性,此文运用MD5算法来进行信息完整性的校验。图1.1.1(来自百度)解说上面的SSL会话过程:(注:SSL会话建立的前提是服务器端在本地通过非对称加密算法(RSA)生成一对密钥(包含密钥和公钥),并将公钥信息发送给CA证书颁发机构,CA给服务器端颁发数字证书,并将证书发送至服务器端。在本次实验中,服务器端也是证书颁发机构。)SSL会话建立过程:第一步:客户端向服务器端建立连接请求(TCP/IP)第二步:当TCP/IP建立完成后,客户端和服务器之间协商使用哪种加密算法,本文加密算法为RSA。第三步:协商完成后,服务器将公钥发送给客户端,客户端接收公钥信息。第四步:客户端到CA证书颁发机构下载CA公钥信息,并对服务器端发送的证书做验证。第五步:随后,客户端在本地通过对称加密算法生成密钥,然后用服务器端发送的公钥进行对这段密钥进行加密,发送至服务器端,其保证了数据的机密性。第六步:服务器用自己的私钥对这段数据进行解密,得到密钥,然后将客户端的请求数据进行加密发送给客户端。第七步:客户端接到响应,并用密钥进行解密,得到数据。第八步:通信结束后,断开会话通道(TCP/IP)实现:环境:在windowsserver2003下建立站点,用windowsserver2003以及windows7去访问加密的站点安装软件以及服务:Ethereal抓包工具iis服务证书服务思想:(1)安装虚拟机windowsserver2003虚拟机连接的方式设为NAT连接,通过虚拟网卡来连接网络。(2)在windowsserver2003上安装iis组件主要步骤:1.在windowsserver2003中利用信息服务(iis)创建站点2.然后安装证书服务3.在Web服务器上设置ssl,生成证书申请4.在IE浏览器中提交证书申请5.在证书颁发机构颁发证书6.在IE浏览器中下载证书并在Web服务器中安装证书7.完成证书的申请和下载后,可以访问站点。具体实现步骤以及截图:1,安装iis,创建站点2.安装iis后,打开iis,可以看到默认网站打开网站时会显示没有默认页面的错误配置Web,在默认网站的默认路径(C:\Inetpub\)添加静态页面文件即可得到如下结果:2.安装证书服务通过自定义生成密钥,密钥的长度为2048,散列算法为MD5。查看证书颁发机构:在iis中多出了CA证书的列表:3.在Web服务器上设置ssl,生成证书申请打开iis中Web服务打开站点属性:点击服务器证书:此处的密钥长度即为CA证书的公钥长度,为1024位。填写证书的相关信息:4.提交证书申请,用IE浏览器打开选择申请一个证书:选择高级证书证书申请:打开之前保存的certreq.txt并将它复制到文本框中并提交:5.在证书颁发机构颁发证书可以在挂起的证书中看到证书:颁发后可以在颁发的证书中看到颁发的证书:6,在IE浏览器中下载证书,并在Web服务器中安装证书:在Web中安装证书:查看证书:可以看到证书的签名算法为RSA,消息验证算法为MD5启用安全通道ssl设置好后通过http://来访问网页,提示需要用https://来访问(在windowsserver2003中)用来访问网页,结果如下所示:在访问网站的时候用Ethereal抓包,用ssl过滤,得到以下的结果:选中其中的一条数据,会出现下面的结果,可以看到,数据包是经过加密了的,出现的数据都是密文的格式。在windows7中访问网页的结果为:会显示访问的网站证书存在风险,这是由于颁发证书的机构不是油专门的机构颁发,这也提示在上网时如果遇到类似的情况要小心自己的数据会不会被第三方截取。