前言:SSL协议便是Internet上应用最为广泛的网络数据安全传输协议。 SSL协议隶属于会话层,处于有连接的会话层之上,它一经产生就在Internet领域发挥了它的巨大作用。 目前,国外著名的商用浏览器和Web服务器都支持SSL协议,SSL已成为最流行的WWW安全协议。 目前已经有若干国外厂商推出了基于SSL的安全产品,但是协议在核心密码算法上都有出口限制,大多采用一些低安全强度的算法,而且协议代码不公开。 根本无法满足我国实际应用中的安全需求。 针对电子政务、电子商务和军队信息化建设的安全需要,本文作者在研究SSL协议的基础上,参考当前较为成功的SSL实现的技术方案,开发了能够充分保证Web通信安全的高强度SSL安全代理。
- SSL的原理
SSL(Secure Sockets Layer)及其继任者TLS(Transport Layer Security)是现代网络通信中应用程序中用于在应用程序之间提供安全通信的协议。他们通过一系列的安全措施来保护数据的机密性、完整性和身份认证。以下是SSL的基本原理:
1.1握手阶段
SSL的握手阶段是为了在安全通信的双方(客户端和服务器)之间建立加密参数。并认证对方的身份,这个过程大概如下:
- 客户端发送“Helo”消息:客户端向服务器发送一个包含支持的加密登件列表和其他信息的“Hello”消息。
- 服务器响应“Hello”消息:服务器选择一个双方都支持的加密套件,并向客户端发送包含其公钥和加密套件选择的“Hello”响应。此外,服还会发送一个包含其数字证书的消息,用于身份验证。
- 客户端验证服务器证书:客户端验证服务器发送的证书是否由受信任的证书须发机构 (CA) 签发,并检查证书是否过期、是否已被吊销以及证书上的域名是否与连接的服务器域名工配。
- 生成并交换预主密钥:如果客户端验证了服务器的证书,它会生成一价你预主密钥 (Pre-Master Secret),并使用服务器的公钥加密这个密钥后发送给服务器。服务器使用自己的私钥解密预主密钥。
- 生成会话密钥:双方使用预主密钥和随机生成的数据(来自客户端和服务器的“Hello”消息) 来计算出一个会话密钥 (Master Secret).这个会话密钥将用于后续的加密和解密。
1.2加密和解密阶段
在握手阶段完成后,双方就可以使用会话密钥来加密和解密通信中的数据了。这通常通过一种称为“记录协议” (Record Protocol) 的机制来完成,它将待传输的数据分割成多个记录,并使用会话密钥对每个记录进行加密。
1.3完整性验证
为了确保数据的完整性(即数据在传输过程中没有被算改),SS/TS使用了消息认证码(MAC)。每个加密的记录都包含一个MAC,它使用会话密钥和一个序列号(用于防止重放攻击)来计算得出。接收方会使用相同的会活密钥和宁列号来计算MAC,并与接收到的记录中的MAC进行比较,以验证数据的完整性,
1.4密钥更新
在长时间的通信过程中,为了增强安全性,SSL/TLS允许双方定期重新协商会话密钥。这通常通过重新执行握手阶段的一部分来完成。
1.5身份验证
除了通过数字证书进行服务器身份验证外,SSL/TLS还支持双向身份验证,即客户端和服务器都可以相互验证对方的身份。这通常通过交换数字证书并验证这些证书来实现。
1.6安全性
SSL/TILS使用了一系列的安全措施来确保通信的安全性,包括公钥加密、对称加密、哈希函数和数字签名等。这些借施使得SSL/ITLS能够抵御各种网络攻击,如中间人攻击、重放攻击和算改攻击等。
- SSL的初级应用
当前,主流的Web服务器解决方案有三种,分别为IIS 服务器+ASP 技术,Apache 服务器系列+PHP 技术及 Tomcat 服务器系列+JSP。由于 IIS (Internet Infor-mation Server) 集成了 WWW 服务器、FTP 服务器和Copher 服务器,使用 ASP 开发数据库,整体应用较简单,在企事业单位中使用较多。因此,在这里详细说明在 Windows Server 2003 环境下,SSL的配置方法。
为了更好的进行试验本文采取虚拟机的方式进行安装。在真实的服务器(IP地址为 211.80.203.25)中,建立虚拟机作为实验用服务器。设置虚拟机CA(IP地址为 211.80.203.81)作为颁发数字证书的CA 中心。另外在虚拟机 Win2003 (IP地址为 211.80.203.8) 上安装Web 服务器和 DNS 服务器,并新建一个站点,设置站点域名为 www.mynet.com, 端口号为80。
2.1配置独立根CA
CA中心的配置利用了Windows server 2003自带的IIS进行配置。
2.1.1安装独立根CA
在 Windows Server 2003 系统下→安装IIS,同时必须选择安装ASP.NET 和 Front-Pages Server Extension→开始一控制面板一添加/删除程序→添加/删除Windows 组件→【证书服务】
出现提示信息界面“安装证书服务后,计算机名称和域成员身份将不可再改变”,选择“是”。因为CA 中心要在Internet 上使用因此不安装域及活动目录,使用独立 CA→择安装【证书服务CA】和【证书服务 Web 注册支持】, 以便客户机通过 Web 页面提交数字证书申请
在四种 CA 中心中,选择【独立根 CA】进入公钥/私钥对界面,可以进行的设置包括有加密服务提供程序(CSP), 散列算法,允许此CSP 与桌面交互,密钥长度,使用现有密钥的选项→CA 识别界面,要求输入此CA的公用名称。公用名称是申请者查找 CA 中心的最有效途径,如福建省数字安全证书管理有限公司下的福建省CA中心,负责了福建省电子商务活动证书的颁发。在试验中使用了公用名称“chen"进人证书数据库设置界面,可选用默认设置
一提示暂停 IS 服务,选择“是”→完成独立根 CA 的安装。
安装完成的CA后,可以通过控制面板一管理工具/服务,进入服务界面来查看是否正常启动CA。数字证书服务对应的后台服务名为“Certificate Services”,如果它在【状态]栏中出现“已启动”、则表示数字证书服务已经正常启动了。确认 CA 服务启动后,开始一程序→管理工具→证书颁发机构管理目标导航树下就会出现名为“chen"的独立根 CA→下面就出现了4类管理目标:吊销的证书,颁发的证书,挂起的申请,失败的申请。右击“chen”的独立跟CA属性,就可以对CA进行各项参数设置。
2.2Web站点申请数字证书
服务器申请证书,需要先在服务器端产生申谓文件,再提请CA 中心审核。
打开 IIS→右击 www.属性选择【目录安全性】选项卡,在【安全通信下选择【服务器证书】,进入【欢迎使用Web 服务器证书向导】在【服务器证书]界面中选择[新建证书】,在【名称和安全性设置】中,选择密钥长度,输入站点名称,这里必须要注意,证书上的名称必须和该站点的城名相一致,即如果站点的URL为 http://www.mynet.com, 则输入的名称必须为 www.mynet.com。站点的公用名称只能是站点域名。
在【单位信息】中填写单位和部门信息→输入站点的地城信息一选择申请信息的名称和存储路径,默认名为certreq.txt→确认信息后,完成打开生成的certreq.txt文件,复制包括“—"在内的全部内容一进人CA 中心的证书申请页面:http://211.80.203.81/certsrv
→选择【申请一个证书】一选择[高级证书申请】
→(使用 base64 编码的 CMC 或 PKCS#10 文件提交一个证书申请,或使用 base64 编码的 PKCS#7 文件续订一个证书申诸】
在【保存的申请】中,粘贴上刚才复制的申请信
息,点击确认提交。这样申请就被挂起。当申请被批准后,只能使用申请证书的计算机和浏览器在10天内下载,如果超过时间,就不能下载申请到的证书了、系统会提示“您没有挂起的申请”。
2.3CA中心颁发数字证书
进入CA虚拟机,进入证书颁发机构一在“chen"的独立根 CA下,选择【挂起的申请】一在右边的对话框中,可以看到刚才挂起的申请一右击申请一所有任务一一颁发。证书即颁发成功。
2.4在Web服务器上配置SSL
当CA 中心颁发证书后,需在申请证书的电脑上用同一个浏览器来下载证书。
进人 bttp://211.80.203.81/certsrv→下载一个CA证书或证书链或 CRL
一[下载CA 证书】下载自己申请的证书即可,默认证书文件名为certnew.cer.
安装证书服务器证书先进入IS,右击网站→属性→选择【目录安全性】选项卡,在【安全通信】下选择【服务器证书】,进人【欢迎使用 Web 服务器证书向导】
一处理挂起的证书请求并安装证书一在路径和文件名框内输入证书的存储位置一输入使用的SSL 端口,默认为443→核对证书信息,无误后选择下一步,完成安装。
2.5浏览器证书的申请与安装
浏览器证书主要标识了用户个人的身份。申请浏览器证书的方法如下:
在浏览器上输人 http://211.80.203.81/certsrv,即CA 中心的申请页面一申请一个证书→Web 湖览器证书一根据实际情况填写信息,中国的国际代码为 CN,如果此时选择下面的【更多选项】,是对浏览器证书的安全性做一个设置→可以选择一个加密服务程序,默认的CSP 为Microsoft Enhanced Cryptographic Provider v1.0, 建议启用强私钥保护。选择该项后,可以配置证书的安全级别→在【潜在的脚本冲突]中,选择“是”进人【正在创建新的RSA 交换密钥]页面,选择【设置安全级别]一如果将默认的安全级别为“中”,改为“高”就会弹出【口令设置窗口】,输入密码,这样要使用这个证书就必须有密码,否则证书无法提交,这样可以保证自己的证书不会被他人盗用一确定,完成申请。
进入CA 中心,按照刚才的方法,颁发浏览器证书。
CA 颁发证书后,进人 http://211.80.203.81/certsrv,
选择【查看挂起的证书申请状态】一→(下载相应的 Web 浏览器证书】→【安装此证书】一在【潜在的脚本冲突】中,选择“是”,信任这个CA 机构一完成。
右击浏览器一工具→Internet 选项一内容一证书一个人,可以看到刚才安装的证书,并且可以导出。
- SSL的应用场景
SSL的应用场景包括但不限于:
1.网络通信加密:SSL可以保护网站和应用程序之间的通信安全,防止敏感信息被窃取或篡改,例如网上银行、电子商务等。
2.邮件加密:SSL可以保护电子邮件的传输安全,防止邮件内容被窃取或篡改,例如企业内部邮件、个人邮箱等。
3.虚拟私人网络(VPN):SSL可以用于建立VPN连接,保护远程访问的安全性,例如企业内部VPN、远程办公等。
4.移动应用程序安全:SSL可以保护移动应用程序的通信安全,防止敏感信息被窃取或篡改,例如移动支付、社交应用等。
总之,SSL的应用场景广泛,可以用于保护任何需要保密、完整性和认证的数据传输。
- 总结
SSL通过第三方认证来确认通信双方的身份,会话过程中使用会话密钥加密,使得整个通信过程较为安全。同时又兼具良好的适应性,使得这项技术得到了广泛应用。SSL作为一种应用广泛的安全协议,未来的发展前景广阔。
参考文献:丁家明,王家庆,基于灰关联度的信息技术与课程基合的教学过程评价的研究].安徽职业技术学院学报。