版权归原作者所有,如有侵权,请联系我们

[科普中国]-无线传输安全层

科学百科
原创
科学百科为用户提供权威科普内容,打造知识科普阵地
收藏

无线传输安全层是基于工业标准TLS协议(以前称为Secure Sockets Layer,SSL),并针对窄带无线通信作了优化和扩展而制定的安全协议。WTLS 工作在数据报协议之上,保留了传输服务的接口。由于安全功能是可选的,因此WTLS是运行在无线传输层和无线数据报层之间的一个可选协议。1

简介无线传输层安全(特维斯)是一个安全协议,是无线应用协议(Wap)堆栈。它位于WTP和WDPWAP通信栈.它提供的安全功能包括:数据完整性、保密性、鉴别和对拒绝服务的保护等。

WTLS来源于TLS。 WTLS使用适用于低带宽移动设备的类似语义。 主要变化是:

压缩的数据结构 - 在可能的情况下,通过使用位字段,丢弃冗余和截断某些加密元素,可以减小数据包大小。

新的证书格式 - WTLS定义了压缩证书格式。 这大致遵循X.509 v3证书结构,但使用较小的数据结构。

基于分组的设计 - TLS旨在用于数据流。 WTLS使这种设计更适合于基于分组的网络。 大量的设计基于一个要求,即可以使用诸如SMS之类的分组网络作为数据传输。

通过端到端传输层安全规范,WTLS已被WAP无线应用协议2.0标准取代

WAP已经取代了WTLS无线应用协议2.0标准的端到端传输层安全规范。2

作用WTLS的作用是保证传输层的安全,作为WAP 协议栈的一个层次向上层提供安全传输服务接口。WTLS是以安全协议TLS1.0标准为基础发展而来的,提供通信双方数据的机密性、完整性和通信双方的鉴权机制。WTLS在TLS的基础上,根据无线环境、长距离、低带宽、自身的适用范围等增加了一些新的特性,如对数据报的支持、握手协议的优化和动态密钥刷新等。

WTLS能够提供下列三种类别的安全服务:

第一类服务:能使用交换的公共密钥建立安全传输,使用对称算法加密解密数据,检查数据完整性,可以建立安全通信的通道,但没有对通信双方的身份进行鉴权。

第二类服务:除完成第一类服务的功能外还可以交换服务器证书,完成对服务器的鉴别。

第三类服务:除完成第二类服务的功能外还可以交换客户证书,在服务器鉴别的基础上又增加了客户鉴别,对恶意的用户冒充也能进行抗击。

从第一类服务到第三类服务安全级别逐级增高,可以根据应用对安全级别的要求选择性的实现某一级别的安全服务。通常应该对这三种类别的服务都能支持,在握手协商的过程中由客户端与服务端共同协商选定一个类别。

WTLS安全问题解决方法加密WTLS的保密性依靠加密通信通道来实现,所使用的加密方法和计算共享密钥所需的值在握手时进行交换。首先,客户端和服务器交换Hello消息,此后,客户端和服务器交换预主密钥(Pre master Secret),这个值用来计算主密钥(Master Secret),计算所使用的加密算法在服务器的Hello消息中进行选择。在这条消息中,服务器通知客户端已经选择了一个密码组,客户端向服务器提供一个密码组列表。如果服务器未发现合适的密码组,则握手失败,连接关闭。当前常用的大批量加密算法有:支持40、56和128位密钥的RC5,支持40和56位密钥的DES,支持40、56和128位密钥的3DES和IDEA。所有的算法都是分组加密算法,加密密钥在密钥分组的基础上进行操作,密钥分组根据协商的密钥刷新频率在一段时间后重新运算。

密钥交换为了保证安全的联系通道,加密密钥或计算密钥的初始值必须以安全方式进行交换。WTLS的密钥交换机制提供了一种匿名交换密钥的方法。在密钥交换过程中,服务器发送包含服务器公钥的服务器密钥交换消息。密钥交换算法可能是RSA、Diffie-Hellman或Elliptic Curve Diffie-Hellman。在RSA和匿名RSA中,客户端用服务器的公钥加密预主密钥,并在客户密钥交换消息中将其返回给服务器。在基于Diffie-Hellman的算法中,客户端和服务器在一个私钥和相应的公钥基础上计算预主密钥。

如果客户端列出了它所支持的用密码写的密钥交换方法,服务器可以选择是使用基于客户请求的方法,还是定义另一种方法。如果客户端并未提出任何方法,则服务器必须指明。

鉴别WTLS的身份鉴别依靠证书实现。身份鉴别可以在客户端和服务器之间进行,也可以在服务器允许的情况下,只由客户端鉴别服务器,服务器还可以要求客户端向服务器证明自己。在WTLS规范中,身份鉴别是可选的。

当前所支持的证书类型包括:X.509v3、X9.68 和 WTLS证书。在客户端和服务器之间交换Hello消息之后,鉴别过程随即开始。当使用鉴别时,服务器发送服务证书消息给客户端。根据WTLS规范,为了优化流量和客户处理,服务器一次只发送一个证书。服务器证书由CA公司独立分发的公钥进行鉴别。服务器也可以发送证书请求消息给客户端以鉴别之。此时,客户端发送客户证书消息返回给服务器,客户端证书遵循与服务证书相同的结构。

完整性数据完整性通过使用消息鉴别编码(MAC)而得到保证, MAC算法同时也被认为是加密算法。客户端发送一列所支持的MAC算法,服务器在返回的Hello 消息中标出所选的算法。WTLS支持通用的MAC算法,MAC在压缩的WTLS 数据上产生。

安全状态在安全协商后,会话通信双方将拥有同样的安全状态。当前状态通过安全参数产生,并持续更新。

WTLS协议结构WTLS工作在无线数据报协议(WDP)层和无线事务协议 (WTP)层之间,它所提供的服务对这两层协议来说是可选的。WTLS由功能协议层和记录协议层构成。其中功能协议层包含了握手协议、改变密码标准协议、 告警协议;记录协议层提供对握手协议层以及上层应用数据的封装结构,在客户端和服务端的WTLS对等层之间完成实际的数据传送任务。WTLS协议结构如图一所示。

记录协议(Record Protocol)

本协议是一个从相邻层接收原始数据的协议,它仅在连接状态下运行。当开始一个安全会话时,连接状态初始化为NULL。逻辑上存在两种状态:当前状态和未决状态,记录在当前状态下处理。它将所接收到的数据进行压缩、加/解密、鉴别和数据完整性处理,然后向上层转交或向下层发送。本协议进行的有关处理完全按照在握手协议中通信双方所协商一致的处理流程和算法进行。

握手协议(Handshake Protocol)

所有与安全相关的参数都是在握手阶段协商一致的。这些参数包括:协议版本号、使用的加密算法、鉴别的信息和由公开密钥技术生成的密钥素材。握手阶段从客户方与服务方进行Hello消息应答开始,在两个 Hello消息中,通信双方商定一致的会话方式。当客户方发送Client Hello消息以后,它等待接收Server Hello Done消息。服务方如果需要鉴别,可以发一个代表自己的服务器证书给客户方,也可以要求客户方鉴别自己。Server Key Exchange 用于向客户方提供公开密钥。

当客户方收到Server Hello Done消息后,返回Client Certificate 消息以让服务方鉴别自己。随后客户方发送一个Client Key Exchange消息,包含由服务方用公开密钥加密过的共享主密钥和其他一些信息,以使双方完成密钥交换。最后,客户方发送一个包含验证前面所有数据的Finished Message,服务方也同样发送一个Finished Message证实交换和计算的信息来回应客户方。此外,任何一方都可以发送一个Change Cipher Spec消息来决定双方使用的密码参数。

告警协议(Alert Protocol)

告警类型是WTLS记录层支持的内容类型之一,告警消息传送的内容为信息错误的严重程度及告警描述。记录协议的告警消息主要有警告、危急、致命三种。告警消息使用当前的安全状态发送,如果告警消息的类型是“致命”,则双方将结束安全链接。同时,其他使用安全会话的链接可以继续,但会话标识必须设成无效,从而使失败的链接不能被用于建立新的安全链接。当告警消息的类型为“危急”时,当前的安全链接结束,而其他使用安全会话的链接可以继续,会话标记可以用于建立新的安全链接。

WTLS中的出错处理是基于告警消息的,当发现错误时,发现的一方发送包含出现错误的告警消息,进一步的处理依赖于出现错误的级别和类型。

告警中采用4字节校验和,该值可以通过接收其他对话方的上次记录计算得出,方法如下:

(1)以0填充记录,使其长度为4的模。

(2)将结果分割为4字节的长度块。

(3)对这些块进行XOR运算。

告警接收方应该检查校验和是否与以前所发送的信息相匹配。

改变密码标准协议(Change Cipher Spec Protocol)

此协议用来在WAP会话的双方间进行加密策略改变的通知,仅使用一种改变密码标准消息。消息中包含一个字节,值为1。此消息在双方的安全参数协商一致后,在握手阶段由客户方或服务方发送给对方实体,用于通知对方:以后的数据记录将采用新协商的密码规范和密钥。当消息到达时, 发送消息的一方设定当前的写状态为待决状态(Pending State),接收消息的一方设定当前的读状态为待决状态。3

本词条内容贡献者为:

王慧维 - 副研究员 - 西南大学