【zz】传智播客学习之https协议

http://blog.sina.com.cn/s/blog_629252880100gd14.html


应好友相求,更不能辜负张老师熬夜为我们备课,辛苦为我们讲解https协议相关内容的辛苦,今天接着前面对网络安全相关知识进行总结。

数字签名

数字签名就是通过某种密码运算生成一系列符号及代码组成电子密码进行签名,来代替书写签名或印章

l 功能:必须能够验证内容没有修改,必须能够验证内容确实是被发送方签署

l 方案:发送方的公钥可以验证发送方签名的真实性,数字摘要可以验证内容没有修改

举例说明:前提同上。如果我用私钥加密一段数据(当然只有我可以用私钥加密,因为只有我知道2是我的私钥),结果所有的人都看到我的内容了,因为他们都知道我的公钥是1,那么这种加密有什么用处呢?但是我的好朋友Bob说有人冒充我给他发信。怎么办呢?我把我要发的信,内容是c,用我的私钥2,加密,加密后的内容是d,发给x,再告诉他解密看是不是c。他用我的公钥1解密,发现果然是c。这个时候,他会想到,能够用我的公钥解密的数据,必然是用我的私钥加的密。只有我知道我得私钥,因此他就可以确认确实是我发的东西。这样我们就能确认发送方身份了。

小结:加密是将数据资料加密,使得非法用户即使取得加密过的资料,也无法获取正确的资料内容,所以数据加密可以保护数据,防止监听攻击。其重点在于数据的安全性。身份认证是用来判断某个身份的真实性,确认身份后,系统才可以依不同的身份给予不同的权限。其重点在于用户的真实性。两者的侧重点是不同的。

数字证书

数字证书是由权威机构--CA证书授权(Certificate Authority)中心发行的,能提供在Internet上进行身份验证的一种权威性电子文档,人们可以在互联网交往中用它来证明自己的身份和识别对方的身份

注1:Keystore(密钥库)存储多个私钥和其附带的数字证书,存储信任的第三方数字证书,KeyStore中的每一个私钥和信任的第三方数字证书用一个alias进行标识。

SSL

SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。SSL协议可分为两层: SSL记录协议(SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。 SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。

l SSL协议提供的服务主要有:
  1)认证用户和服务器,确保数据发送到正确的客户机和服务器;
  2)加密数据以防止数据中途被窃取;
  3)维护数据的完整性,确保数据在传输过程中不被改变。

l SSL协议的工作流程:

1) 浏览器向服务器发出请求,询问对方支持的对称加密算法和非对称加密算法;服务器回应自己支持的算法。

2) 浏览器选择双方都支持的加密算法,并请求服务器出示自己的证书;服务器回应自己的证书。

3) 浏览器随机产生一个用于本次会话的对称加密的钥匙,并使用服务器证书中附带的公钥对该钥匙进行加密后传递给服务器;服务器为本次会话保持该对称加密的钥匙。第三方不知道服务器的私钥,即使截获了数据也无法解密。非对称加密让任何浏览器都可以与服务器进行加密会话。

4) 浏览器使用对称加密的钥匙对请求消息加密后传送给服务器,服务器使用该对称加密的钥匙进行解密;服务器使用对称加密的钥匙对响应消息加密后传送给浏览器,浏览器使用该对称加密的钥匙进行解密。第三方不知道对称加密的钥匙,即使截获了数据也无法解密。对称加密提高了加密速度。

HTTPS协议
HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道, HTTPS传输的是密文、端口443,HTTPS是 HTTP下加入SSL层,HTTPS的安全基础是SSL。

l 为Tomcat配置SSL功能的实验步骤

1.使用keytool创建或导入Web服务器所需要的证书。

1)Keytool工具介绍(是JDK自带的产生证书的工具)

相关命令介绍

在DOS命令窗口下用keytool – 各种命令

exportcert:输出证书(想带一个证书出去)

genkeypair:产生一个证书(mykey的密码可以和箱子密码 )

genseckey:产生一个密钥(-alias别名)

importcert:将外面的证书放进来

importcertkeystore:将很多证书

list:列出箱子所有证书

printcert:打印证书

storepasswd:改变箱子密码(默认changeit)

注:证书都放在当前登陆用户的主目录下面

2.修改server.xml文件,为Tomat增加一个支持SSL功能的连接器。取消其中对SSL连接器的注释,并根据安装的数字证书信息对一些参数进行调整即可。

注:一个Service元素代表一种服务,譬如,卖火车票是一个服务,而卖飞机票又是另一个服务,connector相当于某种服务下的一种售票方式,可以在火车站售票,也可以在售票点售票,engine用于处理买票的内部工作,不管通过哪种方式接收进来的卖票请求,内部卖票处理工作始终一样,即都是用这个 engine。这个机制的好处在于有非常好的扩展性,如果想增加网上买票,只要再加上一个网上卖票的Connector即可,engine还是原来的。

3.编写一个用于检查访问协议是否是https的jsp程序,如果不是,则将请求重定向为https协议。

l 配置SSL网站
  1).创建请求证书文件
完成了证书服务的安装后,就可以为要使用SSL安全机制的网站创建请求证书文件。点击“控制面板→管理工具”,运行“Internet 信息服务-IIS 管理器”,在管理器窗口中展开“网站”目录,右键点击要使用SSL的网站,选择“属性”选项,在网站属性对话框中切换到“目录安全性”标签页(图1),然后点击“服务器证书”按钮。在“IIS证书向导”对话框中选择“新建证书”,点击“下一步”按钮,选择“现在准备证书请求,但稍后发送”。在“名称”输入框中为该证书取名,然后在“位长”下拉列表中选择密钥的位长。接着设置证书的单位、部门、站点公用名称和地理信息,最后指定请求证书文件的保存位置。这样就完成了请求证书文件的创建。
2).申请服务器证书
  完成上述设置后,还要把创建的请求证书文件提交给证书服务器。在服务器端的IE浏览器地址栏中输入“http://localhost/CertSrv/default.asp”。在“Microsoft 证书服务”欢迎窗口中点击“申请一个证书”链接,接下来在证书申请类型中点击“高级证书申请”链接,然后在高级证书申请窗口中点击“使用BASE64编码的 CMC或PKCS#10....”链接,再打开刚刚生成的“certreq.txt”文件,将其中的内容复制到“保存的申请”输入框后点击“提交”按钮即可。
  3).颁发服务器证书
  点击“控制面板→管理工具”,运行“证书颁发机构”。在主窗口中展开树状目录,点击“挂起的申请”项(图2),找到刚才申请的证书,然后右键点击该项,选择“所有任务→颁发”。颁发成功后,点击树状目录中的“颁发的证书”项,双击刚才颁发的证书,在弹出的“证书”对话框的“详细信息”标签页中,点击“复制到文件”按钮,弹出证书导出向导,连续点击“下一步”按钮,并在“要导出的文件”对话框中指定文件名,最后点击“完成”。
4).安装服务器证书
  重新进入IIS管理器的“目录安全性”标签页,点击“服务器证书”按钮,弹出“挂起的证书请求”对话框,选择“处理挂起的请求并安装证书”选项,点击“下一步”按钮,指定刚才导出的服务器证书文件的位置,接着设置SSL端口,使用默认的“443”即可,最后点击“完成”按钮。
  在“目录安全性”标签页,点击安全通信栏的“编辑”按钮,勾选“要求安全通道(SSL)”选项,最后点击“确定”按钮即可启用SSL。
  在完成了对SSL网站的配置后,用户只要在IE浏览器中输入“https://网站域名”就能访问该网站。

猜你喜欢

转载自zyslovely.iteye.com/blog/908813