SRP鉴别和秘钥交换系统

【SRP鉴别和秘钥交换系统】本备忘录的状态
本文档讲述了一种Internet社区的Internet标准跟踪协议,它需要进一步进行讨论和建议以得到改进 。请参考最新版的“Internet正式协议标准” (STD1)来获得本协议的标准化程度和状态 。本备忘录的发布不受任何限制 。
版权声明
Copyright (C) The Internet Society (2001).
摘要
本文档描述了一个用密码来加强的网络鉴别机制,即我们所知的安全远程口令(SRP)的协议,这种机制适合于如下情况,即需要用户提供口令来协商安全的连接,同时须消除在传统中因重新使用口令而带来的安全问题 。这个系统同时能在鉴别过程中提供一个安全的秘钥交换,并可在会话时使用安全的访问层(秘密性和/或者完整性保护) 。它不需要可信的秘钥服务器和证书基础结构,同时客户也不需要储存和治理任何长的秘钥 。SRP同时提供了在安全和部署等方面,比现有的查问/应答技术要好的优势 。另外,它还是一个,在需要安全口令鉴别的地方可被使用的理想的替代方案 。
1.简介
缺乏一个安全的并且易于使用的鉴别机制,对于正在使用的绝大多数的Internet协议来说,是一个长期的固有的问题 。问题就在于这两点缺陷:用户喜欢使用他们轻易记住的口令,但是大多数基于口令的鉴别系统只提供很少的保护,甚至对于被动攻击者,尤其是假如一个弱的和易于猜测的口令被使用的话 。对于使用明显的方式来传输口令的协议,要在一个TCP/IP网络上实施窃听,非常轻易和有效 。甚至对所谓的“查问/应答”技术,如在[RFC2095]和[RFC1760]中描述的被设计用来防范简单的窃听攻击,也可以被闻名的“字典攻击”所攻破 。这种攻击就是,攻击者在协议合法运行时,捕捉交互的消息,并利用这些信息验证从一个预编译好的口令字典中提取的一系列的口令 。这之所以有效,就是因为用户经常选择简单的、易于记忆的口令,导致其总是被轻易的猜中 。
现存的多数机制都需要主机中的口令数据库保持秘密状态,因为口令P或者某些秘密的散列值h(P)被保存在其中,假如被泄漏的话就会危及安全 。这种方法经常退化为“模糊的安全” 。这种方法反对在UNIX传统中保存一个“公共”口令文件,这个文件的内容会在不破坏系统安全的情况下被泄漏 。
对于一个不能泄漏的鉴别协议来说,SRP满足了严格的,并在[RFC1704]中被定义的需求 。它提供了全面的保护,来防范被动和主动的攻击者,并使用了一个类似于Diffie-Hellman样式的单轮计算来有效的实现,使它对于大多数的Internet协议,都可以在交互或者非交互的鉴别中使用 。既然它能在带有低熵的口令的情况下使用的同时,保持其安全性,它就可以被无缝集成在现有的用户应用中 。
2.约定和术语
这个文档中所描述的协议,由于一些历史原因,某些时候是指“SRP-3” 。这个特定的协议在[SRP]中描述,被认为有非常好的合理性和加密性,能同时反抗窃听和主动的攻击 。
这个文档不会试图在特定的Internet协议的上下文中描述SRP 。相反,它只是描述一个抽象的协议,其可以轻易的适应于特定的应用 。比如,特定的消息格式(包括填充)不会具体说明 。这些问题留给协议实现者去决定 。
这里,一个需要值得具体说明的有关实现的问题,是关于字符串和整数之间的映射 。Internet协议是面向字节的,但是SRP在它的消息中要执行代数操作 。因此,要合乎逻辑的话,至少要定义一种方法,它能把整数转换成一个字节串,或者相反 。
一个n字节的字符串S可以用如下方法转换成一个整数 。

推荐阅读