证书生成的设备和方法

文档序号:8499928阅读:710来源:国知局
证书生成的设备和方法
【技术领域】
[0001]本公开一般地涉及计算机网络安全,并且尤其涉及在这样的网络中的设备的认证。
【背景技术】
[0002]本节旨在向读者介绍本领域的各个方面,其可以与下面所描述和/或要求保护的本公开的各个方面相关。本讨论被认为有助于向读者提供背景信息,以便于更好地理解本公开的各个方面。因此,应当理解,要从这个角度读取这些陈述,而不是作为对现有技术的承认。
[0003]有许多两个设备需要交互以交换数据的情形。常见的情况在单个用户控制设备,例如笔记本电脑和无线接入点时发生。在这种情况下,通信通过相对容易被窃听的无线通信信道进行传递。因此,特别是要发送敏感数据时,确保这个信道是安全的是很重要的。虽然将使用无线信道作为示例,然而应当理解,这也(但通常在较小的程度上)适用于有线连接。
[0004]在这些情况下,通常没有先前信任的基础设施。这将使所谓的中间人攻击成为可能。这种攻击的缓解需要在设备注册过程中用户的某种程度的参与。现有技术的解决方案包含不同的方法,如按钮协议和使用视觉信道(例如,第一设备可以具有用户使用第二设备扫描的条形码,并且该信息被用于生成会话密钥)O这样的方法使用户与通过无线信道进行通信的设备进行交互。这是形成ad hoc网络中的设备之间的安全连接的基础。
[0005]当今大多数应用采用传输层安全(TLS)协议用于提供安全连接。可用于认证用户的常规选项包括预共享密钥、密码和公共密钥证书。然而,只有少数的应用采用客户端侧的公共密钥证书进行用户认证。事实上,证书的部署和管理已经被证明是主要问题。
[0006]存在将密码和用于认证用户的证书相结合的解决方案。这些方法一般按如下方式工作:当为用户提供证书和私用密钥时,引导他输入密码。该密码用于私有密钥的安全存储并且允许将证书丢失或被盗的风险最小化。然后,在TLS会话期间,用户被要求再次输入密码以“解锁”数字证书来使用。给出该密码作为拥有与数字证书相关联的私用密钥的证据。
[0007]中间人(“MITM”)攻击或假冒是一种对相互认证协议的攻击类型,其中攻击者与两个设备进行独立的连接,并且在它们之间转发消息。
[0008]MITM攻击中的攻击者通常是不可见的,并且假冒所述设备,使它们相信它们是通过安全连接彼此直接地通信。然而,攻击者控制整个通信。
[0009]MITM攻击可能是毁灭性的。如果用户对MITM认证了自己,则他暴露了自己的凭证并且攻击者可以滥用它们欺骗用户。
[0010]许多认证机制无法提供针对MITM或假冒攻击的足够的保护。主要有两方面的原因:
[0011]1.所使用的用户认证机制通常是薄弱的。这导致用户与MITM会话,从而暴露他的密码的情况,
[0012]2.TLS会话建立一般与用户认证分离。例如,如果共享秘密密钥泄漏,则它可被重复使用以欺骗网络中的任何设备。
[0013]因此,针对MITM攻击任何的有效的对策必须通过实现将用户认证与基于TLS证书的认证相结合的安全认证机制来解决这些问题。
[0014]RFC 2945,“The SRP Authenticat1n and Key Exchange System(SRP 认证和密钥交换系统)”,描述了一种使得能够基于密码来设置认证的安全远程密码(SRP)算法。客户端具有密码或PIN码并且服务器具有验证数据(例如,密码的加盐哈希(salted hash))。SRP提供强有力的相互认证。但是,SRP并不总是被支持或可用。作为用于保护UDP上的数据的基准的数据电文TLS(DTLS)不支持SRP认证;目前仅支持基于证书和预共享的密钥认证。
[0015]现有技术方法的第一个问题是,由于可能的薄弱安全执行机制,当密码验证是在设备本地时,它不能被信任。这对系统的基础设施可能是有害的。其原因是,在这样的情况下,攻击者可以绕过薄弱设备上的密码执行,然后可以访问关键资源。因此将看到,存在对这样一种解决方案的需求,其中远程设备(即验证器)不仅验证用户拥有私有密钥,还验证他知道正确的密码。
[0016]现有技术方法的第二个问题是,设置PKI基础设施的集中性质和复杂性。这种系统内的可扩展性(增加新的设备)需要用于新证书的传递和签名的管理服务。这具有成本并且不容易建立或使用,尤其是对于无任何安全知识的用户。在许多情况下,特别是对于adhoc网络,没有中央权威或管理服务器,设备产生自签名的证书。那么,由于任何设备可以生成证书,则难以信任这样的证书。这里,我们通过提出基于唯一密码的知识的安全和分散的PKI系统来解决问题。这使得证书的部署和管理对用户完全透明。用户只需要记住密码。
[0017]因此,将理解的是,存在对这样一种解决方案的需求,其确保证书不仅允许远程密码验证,并且该证书由用户设备在知晓密码的用户的控制下生成。本公开提供了这样的解决方案。

【发明内容】

[0018]在第一方面,本公开涉及一种用于生成证书的设备。该设备包含用户接口,被配置为从用户接收用户数据;以及处理器,被配置为获得设备的加密算法的公共密钥,通过将函数应用于基于该用户数据的值和该公共密钥的组合来获得验证符,生成包含该公共密钥和该验证符的证书,获得证书的签名,由此获得签名的证书,并输出签名的证书。
[0019]在第一实施例中,该处理器进一步配置为通过将所述函数应用于唯一标识符、基于该用户数据的值和该公共密钥的组合来获得该验证符,并且配置为将该唯一标识符包含在证书中。有利的是,所述唯一标识符对于至少一个设备或对于至少一个资源是唯一标识符。
[0020]在第二实施例中,该函数是单向函数或加密函数。
[0021]在第三实施例中,用户数据是密码。
[0022]在第四实施例中,基于用户数据的值与用户数据是相同的。
[0023]在第五实施例中,加密算法是RSA并且公共密钥包含模数。
[0024]在第六实施例中,加密算法是椭圆曲线加密算法并且公共密钥包含生成器和第一模数。
[0025]在第七实施例中,处理器被配置为通过使用对应于所述公共密钥的私有密钥给证书签名来获得该签名。
[0026]在第二方面,本公开涉及一种用于生成证书的方法。设备的处理器接收来自用户的用户数据,获得设备的加密算法的公共密钥,通过将函数应用于基于该用户数据的值和该公共密钥的组合来获得验证符,生成包含该公共密钥和该验证符的证书,获得证书的签名,由此获得签名的证书,并输出签名的证书。
[0027]在第一实施例中,基于用户数据的值与用户数据是相同的。
[0028]在第二实施例中,所述生成包含通过将函数应用于唯一标识符、基于该用户数据的值和该公共密钥的组合来获得该验证符,并且将该唯一标识符包含在证书中。
[0029]在第三实施例中,所述唯一标识符对于至少一个设备或对于至少一个资源是唯一标识符。
[0030]在第四实施例中,该函数是单向函数或加密函数。
[0031]在第五实施例中,用户数据是密码。
【附图说明】
[0032]现在将通过非限制性示例的方式,参考附图描述本公开的有利特征,附图中
[0033]图1示出了实施本公开的示例性系统;
[0034]图2示出根据本公开的有利实施例的证书生成;以及
[0035]图3示出根据本公开的第一有利实施例的相互设备认证。
【具体实施方式】
[0036]图1示出了实施本公开的示例性系统100。该系统100包含第一计算设备(“第一设备”)110和第二计算设备(“第二设备”)120。第一和第二设备110,120可以是能够执行计算的任何种类的合适的计算机或设备,诸如标准的个人计算机(PC)、工作站、智能电话和平板电脑。第一和第二设备110,120中的每个优选地包含至少一个处理器111,121,内部或外部存储器112,122,用于与用户进行交互的用户接口 113,123,以及用于通过连接130与其它设备交互的第二接口 114,124。第一和第二设备110,120每个还优选包含用于从存储指令的数字数据载体140读取软件程序的接口(未示出),该指令当由处理器执行时,执行下文中描述的任何方法。本领域技术人员将理解,示出的设备为清楚起见是非常简化的,并且真实设备还将包含诸如电源和持久存储的功能。
[0037]简要地说,本公开的一个重要想法是设备生成其信任的基础是基于用户数据(而不是,例如,外部信任认证机构)的证书的能力。用户数据例如可以是密码(其将在下文作为非限制性示例),通行短语或生物识别数据。
[0038]当用户希望将新设备登记到用户的设备集群(即,当连接时作为adhoc网络的一部分的设备)时,需要生成用于新设备的证书。登记过程是基于用户在安装第一设备之前选择的密码的知识。然后,对于每一个新设备,在该设备的登记期间,该密码被再次请求并针对在每个设备上生成和存储的密码验证符进行验证。应该理解的是,使用密码防止了未经授权的设备的登记。除了密码验证符之外,每个登记的设备生成公共密钥和相关联的私有密钥的自签名证书。公共密钥可以以任何合适的方式来获得:它可以由设备生成或从另一设备接收,并且它可以在需要时生成或接收或从存储器中获取。
[0039]然而,为了提供安全性,不应该能够生成有效的自签名的证书,除非提供正确的密码。为此目的,该证书安全地绑定所述证书的公共密钥和密码,然后将所得“绑定”插入在证书中,并用作密码验证符。然后该证书可以输出到另外的设备或者内部或外部的存储器。
[0040]优选使用优选地在密码和公共密钥的组合(有利地是串联)或者在设备或资源的至少一个唯一标识符(uid)、密码和公共密钥的串联上操作的单向函数F来作出该绑定:
[0041]密码验证符=F (密码I公共密钥)或F (uid I密码I公共密钥)
[0042]唯一标识符可以用于存储在一个或多个设备上一组文件,或用于用户可以访问的一组设备。这例如可以使得能够有两个权限级别,如“根”和“用户”,其中前者具有完全的访问权限,而用户具有(即,对于由至少一个唯一标识符限定的设备或资源)的有限访问。
[0043]函数F可以是本领域中任何合适的、优选是加密的、单向的函数,例如哈希函数,如SHA-1和SHA-3或加密函数。
[0044]在RSA的情况下,公共密钥由公共指数e和模数N来表示,并且密码验证符优选以下列方式之一计算:
[0045].密码验证符=F (密码I (N, e))或F (uid |密码| (N, e))
[0046].密码验证符=F(密码In)或F(uidI密码| (N, e))
[0047]在DSA (数字签名算法)和椭圆曲线加密的情况下,公共密钥还包含公共参数(即两个模数P,q和生成器gx),密码验证符优选以下列方式之一计算:
[0048].密码验证符=F (密码 I (gx, p, q))或 F (uid | 密码 | (gx, p, q))
[0049].密码验证符=F (密码 I (gx, p))或 F (uid | 密码 | (gx, p))。
[0050]由于密码验证符可以公开,它可以在其自签名之前被添加到证书中。
[0051]图2示出根据本公开的有利实施例的证书生成。证书包含专有名称(DN),加密的公共密钥和密码验证符PV。证书的DN字段可以被设置为唯一标识符(如序列号,MAC地址或唯一资源标识符)。
[
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1