
基于万维网的电子商务和银行等新应用极大地便利了人们的日常生活. 受人青睐.
由于这些应用程序需要网络上的交易,因此它们对网络通信的安全性提出了更高的要求. 传统的Web协议HTTP没有安全机制-纯文本形式的数据传输,无法验证通信双方的身份,并且无法防止传输的数据被篡改,等等.
Netscape提出的安全协议SSL使用数据加密,身份验证和消息完整性验证机制来为网络上的数据传输提供安全保证. SSL可以为HTTP提供安全的连接,从而大大提高了万维网的安全性.
SSL具有以下优点,例如:
l提供高度的安全保证.
SSL利用数据加密,身份验证和消息完整性验证机制. 确保在网络上传输的数据的安全性.
l支持各种应用程序层协议.
尽管SSL最初旨在解决万维网的安全性问题,但SSL位于应用程序层和传输层之间. 它可以为基于TCP等可靠连接的任何应用程序层协议提供安全保证.
l简单部署. 目前,SSL已成为一种全球标准,用于识别网络上站点和Web浏览器的身份,并加密浏览器用户与Web服务器之间的通信. SSL协议已集成到大多数浏览器中,例如IE,Netscape,Firefox等. 这意味着几乎所有带有浏览器的计算机都支持SSL连接. 无需安装其他客户端软件.
SSL协议实现的安全机制包括:
l传输数据的机密性: 使用对称密钥算法对传输数据进行加密.
l身份验证机制: 基于证书,数字签名方法用于对服务器和客户端进行身份验证,而客户端的身份验证是可选的.
l消息完整性验证: MAC算法用于在消息传输期间检查消息的完整性.
在网络上传输的数据很容易被非法用户窃取. SSL采用在双方之间建立加密通道的方法,以确保传输数据的机密性.
所谓的加密通道是指发送方在发送数据之前使用加密算法和加密密钥对数据进行加密,然后将数据发送给另一方. 接收到数据后,使用解密算法和解密密钥从密文中获得明文. 没有解密密钥的第三方无法将密文恢复为纯文本,从而确保了传输数据的机密性.
加密和解密算法有两种:
l对称密钥算法: 同一密钥用于数据加密和解密.
l非对称密钥算法: 不同的密钥用于数据加密和解密,一个是公钥,另一个是用户保密的私钥.
使用公钥(或私钥)加密的数据只能使用相应的私钥(或公钥)解密.
与非对称密钥算法相比. 对称密钥算法具有计算速度快的优点,通常用于加密大量信息(例如加密所有消息);非对称密钥算法通常用于数字签名和较少信息的加密.
对称密钥算法用于SSL加密通道上的数据加密和解密. 当前支持的主要算法是DES,3DES,AES等. 这些算法可以有效地防止交互式数据的.

对称密钥算法要求解密密钥和加密密钥相同. 因此,在传输之前,请使用对称密钥算法对数据进行加密. 在通信的两端都需要部署相同的密钥. 有关对称密钥的部署方法,请参阅“ 2.4使用非对称密钥算法确保密钥的安全性”.
在诸如电子商务和银行业务之类的应用程序中,有必要确保要登录的Web服务器是真实的,以免非法窃取重要信息. SSL使用数字签名来验证通信对等方的身份.
非对称密钥算法可用于实现数字签名. 由于只能使用相应的公共密钥来解密由私有密钥加密的数据,因此可以基于解密是否成功来推断发送者的身份. 好像发件人“签名”了数据. 如. 爱丽丝使用她自己的私钥对固定的信息进行加密,并将其发送给鲍勃. 假定解密结果与固定信息相同加密软件工作原理,Bob使用Alice的公钥进行解密. 然后可以确认信息的发送者是爱丽丝,这个过程称为数字签名.
SSLclient必须验证SSLserver的身份,无论SSLserver是否验证SSLclient的身份. 由SSLserver决定. SSLclient和SSLserver的认证过程. 请参阅“ 3.2 SSL握手过程”.
使用数字签名验证身份时. 否则,必须确保被认证者的公钥是真实的. 非法用户可能冒充验证者并与验证者通信. 如图1所示,Cindy模拟了Bob,将其公共密钥发送给Alice,并使用其私钥计算签名并将其发送给Alice. 爱丽丝使用“鲍勃”的公钥(实际上是辛迪的公钥)成功验证了签名. 我认为Bob的身份验证是成功的,但实际上,是Cindy冒充Bob与Alice进行通信. SSL使用PKI提供的机制来确保公钥的真实性. 有关详细信息,请参阅“ 2.5使用PKI来确保公钥的真实性”.

图1伪造的公钥
为了避免非法篡改网络中传输的数据,SSL使用基于MD5或SHA的MAC算法来确保消息的完整性.
MAC算法是在密钥参与下的数据摘要算法,可以将密钥和任意长度的数据转换为固定长度的数据. 使用MAC算法验证消息完整性的过程如图2所示.
在密钥的参与下,发送方使用MAC算法来计算消息的MAC值. 消息后将其添加到收件人. 接收者使用相同的密钥和MAC算法来计算消息的MAC值. 并与接收到的MAC值进行比较. 假定两者相同. 消息没有改变;否则,消息将在传输过程中更改,接收方将丢弃该消息.

图2 MAC算法
例如,MAC算法具有以下特征,因此可以用于验证消息的完整性:
l消息中的任何更改都将导致输出的定长数据发生更改. 通过比较MAC值,可以确保接收方可以发现消息的更改.
MAC算法需要密钥参与. 因此,没有密钥的非法用户无法在更改消息内容后添加正确的MAC值. 这样可以确保非法用户不能随意更改邮件的内容.
MAC算法要求通信双方具有相同的密钥,否则MAC值验证将失败. 因此,在使用MAC算法验证消息完整性之前,必须在通信的两端部署相同的密钥. 有关MAC密钥的部署方法,请参阅“ 2.4使用非对称密钥算法确保密钥的安全性”.
对称密钥算法和MAC算法要求通信双方具有相同的密钥. 否则,解密或MAC值验证将失败. 因此. 要建立加密通道或验证消息的完整性,必须首先在通信的两侧部署一致的密钥.
SSL使用非对称密钥算法对密钥进行加密以实现密钥交换,从而确保第三方无法获取密钥. 如图3所示,SSLclient(例如Web浏览器)使用SSLserver(例如Webserver)的公钥加密密钥将加密的密钥发送到SSLserver. 只有具有相应私钥的SSLserver才能从密文中获取原始密钥. SSL通常使用RSA算法对传输密钥进行加密.

图3密钥交换


l实际上,SSLclient发送给SSLserver的密钥不能直接用于加密数据或计算MAC值. 密钥用于计算对称密钥和MAC密钥信息,称为premaster secret. SSLclient和SSLserver使用premaster机密来计算相同的主机密. 然后使用主密钥为对称密钥算法,MAC算法等生成密钥.
premaster机密是计算对称密钥和MAC算法密钥的密钥.
用于实现密钥交换的算法称为密钥交换算法. 当使用非对称密钥算法RSA进行密钥交换时,它也可以称为密钥交换算法.
在使用非对称密钥算法对密钥进行加密之前,发送方需要获取接收方的公钥,并确保该公钥确实属于接收方. 除此以外. 密钥可能被非法用户窃取. 如图1所示,Cindy模拟了Bob并将其公共密钥发送给Alice. 爱丽丝使用辛迪的公钥对发送给鲍勃的数据进行加密. 鲍勃无法解密数据,因为没有对应的私钥,在辛迪拦截数据之后,他可以使用自己的私钥解密数据. SSL使用PKI提供的机制来确保公钥的真实性. 有关详细信息,请参阅“ 2.5使用PKI来确保公钥的真实性”.
PKI通过数字证书发布用户的公钥,并提供一种验证公钥真实性的机制. 数字证书(称为证书)是一个文件,其中包含用户的公共密钥及其身份信息,并证明用户与公共密钥之间的关联.
数字证书是由权威机构CA颁发的,CA保证了数字证书的真实性.
在SSLclient将密钥加密传递给SSLserver之前,SSLserver需要将从CA获得的证书发送给SSLclient,并且SSLclient通过PKI推断证书的真实性. 假设证书确实属于SSLserver,请使用证书中的公钥加密密钥发送给SSLserver.
在验证SSLserver / SSLclient的身份之前,SSLserver / SSLclient需要将从CA获得的证书发送给对等方. 对端通过PKI推断证书的真实性.
假设证书确实属于SSLserver / SSLclient,则对等方使用证书中的公钥来验证SSLserver / SSLclient的身份.

图4 SSL协议分层
如图4所示,SSL位于应用程序层和传输层之间. 它可以为基于可靠连接(例如TCP)的任何应用程序层协议提供安全保证. SSL协议本身分为两层:
l上层是SSL握手协议,SSL更改密码规范协议和SSL警报协议.
l最底层是SSL记录协议(SSL记录协议).
其中:
SSL握手协议: 这是SSL协议的重要组成部分. 用于协商在通信过程中使用的加密套件(加密算法,密钥交换算法和MAC算法等),在服务器和客户端之间安全地交换密钥,并实现服务器和客户端的身份验证.
SSL密码更改协议: 客户端和服务器端通过密码更改协议通知另一端. 随后的消息将使用新协商的密码套件和密钥来保护和传输.
SSL警告协议: 用于向通信对等方报告警告信息. 该消息包括严重性级别和警告说明.
SSL记录协议: 主要负责对上层数据进行划分,计算和添加MAC值以及加密(SSL握手协议,SSL密码更改协议,SSL警告协议和应用程序层协议消息). 并将处理后的记录块发送给对等方.
SSL通过握手过程在客户端和服务器之间协商会话参数并建立会话. 会话中包含的主要参数是会话ID,另一方的证书,加密套件(密钥交换算法,数据加密算法,MAC算法等)和主密钥(主密钥). 通过SSL会话传输的数据将使用该会话的主密钥和加密套件进行加密和计算.
在不同情况下,SSL握手过程有所不同.

下面将描述以下三种情况下的握手过程:
我只需要验证服务器的SSL握手过程
l验证服务器和客户端之间的SSL握手过程
l SSL握手过程可恢复原始会话

图5仅验证服务器的SSL握手过程
如图5所示,当您只需要验证SSLserver的身份,而无需验证SSLclient的身份时,SSL握手过程为:
(1)SSLclient通过Client Hello消息将SSL版本号,加密算法,密钥交换算法,MAC算法和它支持的其他信息发送到SSLserver.
(2)SSLserver确定用于此通信的SSL版本号和密码套件,并通过Server Hello消息通知SSLclient. 假设SSLserver同意SSLclient在将来的通信中重用此会话,则SSLserver将为该会话分配会话ID. 并通过服务器Hello消息发送到SSLclient.
(3)SSLserver通过证书消息将带有自己的公钥信息的数字证书发送给SSLclient.
(4)SSLserver发送“服务器问候已完成”消息. 通知SSLclient版本号和密码套件协商已结束. 开始密钥交换.
(5)SSLClient验证SSLserver证书合法后,它将使用证书中的公钥对SSLclient随机生成的premaster机密进行加密,然后通过“客户端密钥交换”消息将其发送到SSLserver.
(6)SSLclient发送一个Change Cipher Spec消息,通知SSLserver该数据包将使用协商的密钥和加密套件进行加密和MAC计算.
(7)SSLclient计算交换的握手消息(除Change Cipher Spec消息以外的所有交换消息)的哈希值,并使用协商的密钥和密码套件处理哈希值(计算和添加MAC值,加密等) ),然后通过“完成”消息将其发送到SSLserver. SSL服务器使用相同的方法来计算已交换的握手消息的哈希值,并将其与Finished消息的解密结果进行比较. 假设两者相同并且成功验证了MAC值,则证明密钥和密码套件协商成功.
(8)相同. SSLserver发送“更改密码规范”消息以通知SSLclient,该消息将使用协商的密钥和加密套件进行加密和MAC计算.
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-193593-1.html
美国被普京打了左边脸
而且没有任何人来管理
对于进入12海里的外国舰船也不是立马就给予击沉和撞击