【SSL】
1.problem analysis
建立一个 SSL会话,如图1。结合服务器到客户端的认证,但是没有客户端到服务器的认证。设客户端(Alice)准备使用信用卡从服务器(Bob公司)购买一些东西。图1协议被用来派生密钥K1和K2,这两个密钥将被用来加密和认证Alice 的信用卡号以保证SSL会话的安全(当卡号被发送给Bob公司时)。 简明地讨论下面几点关于SSL的问题: (a)为什么需要Alice 的 web浏览器认证 Bob 的公钥? (b)在这个版本的协议中,Bob没有办法建立阶段认证Alice,这对Bob来说有问题吗?为什么? (c)密钥k1和 k2从一个由Alice提供的随机数MS派生出来,为什么随机数是由Alice生成而不是Bob 公司?这种方法产生密钥K1和K2有潜在安全威胁吗?
通过阅读题干可知,此题有关于SSL协议及其相关知识。 首先了解一下SSL原理: (1)发送方的工作过程为: 从上层接受要发送的数据(包括各种消息和数据); 对信息进行分段,分成若干记录; 使用指定的压缩算法进行数据压缩(可选); 使用指定的MAC算法生成MAC; 使用指定的加密算法进行数据加密; 添加SSL记录协议的头,发送数据。 (2)接收方的工作过程为: 接收数据,从SSL记录协议的头中获取相关信息; 使用指定的解密算法解密数据; 使用指定的MAC算法校验MAC; 使用压缩算法对数据解压缩(在需要进行); 将记录进行数据重组; 将数据发送给高层。 SSL记录协议处理的最后一个步骤是附加一个SSL记录协议的头,以便构成一个SSL记录。SSL记录协议头中包含了SSL记录协议的若干控制信息。
问题解答: (1)客户端检查服务器证书,如果检查失败,提示不能建立SSL连接。如果成功,则进行下一步。Aclice的Web浏览器认证Bob的公钥来验证正在访问的服务器网站是否真实,此外,客户端需要使用这个公钥加密后续过程(密码协商过程),直到协商出本次使用的密码,可见Bob的公钥的作用重大,因此需要认证来确保Bob的身份并且保证后续通信的安全。 (2)没有问题,一般Web应用都是采用SSL单向认证的,原因很简单,用户数目广泛,且无需在通讯层对用户身份进行验证,一般都在应用逻辑层来保证用户的合法登入即可。 (3)因为Alice要通过随机数,生成对话密钥(Session Key),作为往后传输数据时使用对称加密的密钥。 这种方法产生密钥有潜在的安全威胁,因为均由客户端产生,则数的随机性不是特别好,因为 SSL 的协议默认不信任每个主机都能产生完全随机的数,如果只使用两个由客户端生成的伪随机数来生成秘钥,较容易被破解。而客户端和服务器都应该生成随机数,以此来保证每次生成的秘钥都不相同。通过使用三个随机数的方式,增加了自由度,一个伪随机可能被破解,但是三个伪随机就很接近于随机了,因此可以使用这种方法来保持生成秘钥的随机性和安全性。
补充资料: SSL会话:是指客户和服务器之间的一个关联关系。会话通过握手协议来创建。它定义了一组安全参数。 一次会话过程通常会发起多个SSL连接来完成任务,例如一次网站的访问可能需要多个HTTP/SSL/TCP连接来下载其中的多个页面,这些连接共享会话定义的安全参数。这种共享方式可以避免为每个SSL连接单独进行安全参数的协商,而只需在会话建立时进行一次协商,提高了效率。 每一个会话(或连接)都存在一组与之相对应的状态,会话(或连接)的状态表现为一组与其相关的参数集合,最主要的内容是与会话(或连接)相关的安全参数的集合,用会话(或连接)中的加密解密、认证等安全功能的实现。在SSL通信过程中,通信算法的状态通过SSL握手协议实现同步。 根据SSL协议的约定,会话状态由以下参数来定义: (1)会话标识符:是由服务器选择的任意字节序列,用于标识活动的会话或可恢复的会话状态。 (2)对方的证书:会话对方的X.509v3证书。该参数可为空。 (3)压缩算法:在加密之前用来压缩数据的算法。 (4)加密规约(Cipher Spec):用于说明对大块数据进行加密采用的算法,以及计算MAC所采用的散列算法。 (5)主密值:一个48字节长的秘密值,由客户和服务器共享。 (6)可重新开始的标识:用于指示会话是否可以用于初始化新的连接。 连接状态由以下参数来定义: (1)服务器和客户器的随机数:是服务器和客户为每个连接选择的用于标识连接的字节序列。 (2)服务器写MAC密值:服务器发送数据时,生成MAC使用的密钥,长度为128 bit。 (3)客户写MAC密值,服务器发送数据时,用于数据加密的密钥,长度为128 bit 。 (4)客户写密钥:客户发送数据时,用于数据加密的密钥,长度为128 bit。 (5)初始化向量:当使用CBC模式的分组密文算法是=时,需要为每个密钥维护初始化向量。 (6)序列号:通信的每一端都为每个连接中的发送和接收报文维持着一个序列号。
初学信息安全,可能存在错误之处,还请各位指正。