身份保护方法、装置和相应的计算机程序产品的制作方法

文档序号:7677225阅读:175来源:国知局
专利名称:身份保护方法、装置和相应的计算机程序产品的制作方法
技术领域
本发明涉及在网络内的身份识别领域。
更具体地说,本发明涉及一种用于保护网络用户的身份的方法。 本发明尤其涉及安全模块,例如允许安全使用这种方法的芯片 卡,其可以被用在用户终端和/或用在认证网络用户的服务器上。
本发明还涉及一种用于由认证服务器管理多个安全模块的方法。 在本发明的范围内,应该对术语"网络"做可能的最广义的理解。
它被用于表示基于ADSL调制解调器和Wi - Fi接入点的家庭自动化 网络、配备有基站(UMTS、 HSDPA等等)或热点(Wi - Fi、 WiMax 等等)的公共网络,使用LAN、 PLAN、 WLAN或MAN类型网络的 公司或公共服务网络。
同样,对相同的网络必须做可能的最广义的理解。例如它可以是 指由操作系统管理的计算机。此外,这种计算机可以被配备一个或者 多个由许多如IEEE 802.3 (以太网标准)、IEEE802.il ( Wi - Fi标 准)、IEEE802.16 (WiMax标准)、IEEE802.16e ( WiMobile标准) 的标准所描述的通信接口 。还可以是指如移动电话或者个人助理的移 动通信终端。
对术语"认证服务器"也必须做可能的最广义的理解。它是指由包 括至少 一个通信接口并且能够提供认证服务的操作系统管理的计算 机。
背景技术
使用、管理或者配置通信服务的个人用户、个人或者公共组织的 主要关心的问题在于保证所交换的信息的安全性。这种安全性的保证 在可能远程侦听所交换的信息(这种方法有时被称作停车场攻击)的无线通信的情况下尤其需要。
因特网工程任务强制在AAA缩写下(认证授权记帐)指定了执 行可以可选地在基于IP协议的通信基础结构中开帐单的安全服务所 需的装置。
用于认证用户的过程通常是用户把一张身份出示给认证机构,然 后由同一用户生成对此身份的真实所有权的证明和相关的权限。认证
有操作。、 、 ". 、, ',
有多种认证协议。它们控制对通过OSI (开i文式系统互连)通信 模型的不同层所提供的服务的访问
-控制对本地网络的MAC层(OSI第二层)的访问。该操作模 式特别地由PPP (点到点协议)标准和移动通信标准使用
-控制对OSI第三层和第四层即IP层和UDP/TCP传输(使 用数据报协议和传输控制协议)层的访问。该操作模式通常被用于经 由例如IKEv2认证协议打开有效的VPN (虚拟个人网络)连接。
由于由通信网络、尤其在无线环境中的普遍使用导致安全问题的 增加,IETF已经批准了被称为EAP (可扩充认证协议)的标准。该 标准允许多个认证脚本的传输,其中某些由EAP-TLS (RFC 2246)、 EAP画SIM ( RFC 4168 )和EAP-AKA ( RFC 4178 )规范定义。
由RFC 2246引进的EAP-TLS协议是由文件RFC精确地详述的 TLS (传输层安全)协议的透明封装。
EAP协议可以:帔应用于控制对MAC(与FRC 2284相等的PPP, 与IEEE 802.x相等的以太网和WiFi,与IEEE802.16和IEEE 802.16e 相等的WiMax)的访问,以及VPN层服务(由RFC 4306描述的 IKEv2、由RFC 2637描述的PPTP点到点隧道协议、由RFC 2341 描述的L2FCisco第二层转发协议)。
TLS是由Netscape所获得的SSL (安全套接字层)协议(US 5,657,390)的改进的和非私有版本,其在1994年末发布了版本2和 1996年十一月发布了版本3。关于图1,描述了 TLS协议的标准操作。
在正常使用中,网络服务器(301)把它的身份(插入到证书消 息103中)以X509证书的形式出示给远程客户端(通常是网络浏览 器201)。客户端分析来自服务器的证书,并且它特别地使用它信任 的认证机构的公共密钥(KpubCA)检验签名。如果该检验成功,客户 端提取出包含在证书(103, KpubS)中的公共密钥并且选择48个八位 字节的随机号码,被称作PreMasterSecret (107 ),其通过密钥KpubS 被发送到服务器(在ClientKeyExchange消息中)。
所有的可用于TSL协议的加密材料被从PreMasterSecret参数中 移除。可以观察到在这种情况下,经由因特网,客户端不揭示它的身 份并且服务器的身份也被循环解密,也就是说不经过编码。
当TLS协议被用在如EAP-TLS的认证脚本中时,客户端的认证 是必须的;这种相互认证过程通常被称作客户端认证握手。客户端把 它的身份以解密的形式(在证书消息106中)发送到服务器,也就是 说经由它的X509证书。它通过创建在两个实体(客户端和服务器) 之间通过它的私有密钥KpHvC预先交换的握手类型签名证明它的身 份。这种信息经由被称作CertificateVerify ( 108)的消息被传送。月良 务器通过两个操作认证服务器的身份
1. 由客户端出示的X509证书的分析,它从中特别地提取它的 公共密钥KpubC。
2. 包含在通过Kpubc密钥的方式检验的CertificateVerify消息中 的签名的正确值。
TLS协议的使用导致客户端在识别阶段展现它的身份。 现有技术的缺点
该现有技术的 一个缺点是EAP-TLS协议不保证客户端的身份的 保密性。
实际上,即使EAP-TLS协议被广泛地用于对WLAN ( WiFi, WiMax)或者VPN (IKEv2等等)服务的访问控制,缺乏对客户端 身份的保护使得例如在公司或者管理墙的外面能够获得当前个人的
7列表。
身份的解密显示还授权可观看无线网络客户端的移动,因此这干 扰了客户端的隐私。
在网络上使用EAP-TLS协议的客户端的身份的了解通过被动或 者主动的攻击获得。普通被动攻击由侦听认证交换和注意在网络上的 客户端的列表组成。
关于图2,描述了使用EAP-TLS协议的主动攻击。在该脚本中, 客户终端被配备WiFi接口并且使用EAP-TLS协议。这样它相当于其 可以在100米远的距离被读取并且其允许确定特定用户的存在的 RFID (射频身份识别)电子标签。
入侵接入点(AP, 301)周期地广播由客户站点解释为已授权 AP标识符的SSID (服务集标识符)标识符。按照IEEE 802.1x协议, 认证会话开始。客户端发送EAP-Start数据包(102) , AP发送 EAP-Identity请求消息(104)、客户端用EAP隱Identity.response消 息(104)来回应。AP发送EAP-TLS start消息(105)。
然后客户发送EAP-TLS响应,其包含ClientHello TLS消息 (106)。欺诈AP发送包含证书的ServerHello消息(107),也就 是说以客户端信任的认证服务器身份。
该身份可以通过预先侦听并且分析EAP-TLS消息或者利用对本 身不保密的服务器证书的了解被获取。按照TLS协议,ServerHello 消息(107)不具有任何安全属性,并且如果有效的服务器身份被插 入,则可能被简单地伪造。该消息在EAP-TLS.request消息(107) 中被发送到客户端。客户端认证服务器的证书并且在承载证书类型 TLS消息(108)的EAP-TLS.response中发送它的身份。攻击者到达 它的目标,远程地获得客户端身份(109)。
这种经典攻击的描述强调了由EAP-TLS协议使用的该认证技术 的主要缺点,其迫使客户端揭示它的身份
发明内容
本发明建议的方案通过由认证服务器认证客户终端的方法能够 克服现有技术的这些缺点,其中所述客户终端具有认证证书。
根据本发明,这种方法包括以下阶段 —由所述客户终端获得至少一个加密参数; 一所述^人证证书由提供加密的i人证证书的所述客户终端从所述 至少一个加密参数加密;
一把所述加密认的证证书发送到所述服务器; 一由所述服务器提取所述至少一个加密参数; 一从所述至少 一个加密参数对所述加密的认证证书进行解码; 一认证并且如果认证结果是肯定的则提供认证的声明。 因此本发明基于在网络内的客户端认证的完全新颖和有创造性 的方法。实际上,与现有技术的普通常规方法的不同之处在于本发明 建议客户端的认证证书在后者被传送到服务器之前被加密。然后服务 器使用对于服务器和客户端都已知的加密参数负责解密该证书并且 证实客户端il证的有效性。
根据本发明的一个特定的方面,所述对通过所述客户终端所述认 证证书的阶段包括以下步骤
一由所述客户终端根据至少一个加密参数计算证书加密密钥;
一使用所述证书加密密钥加密所述i人证证书。
因此,客户终端能够根据一个计算函数由加密参数计算加密密 钥。然后它可以使用该密钥加密它的证书,该密钥已经被它计算以获 得加密证书。因此证书的加密在客户终端被执行。
根据本发明的一个特定特征,用于由所述服务器提取所述至少一 个加密参数的所述阶段包括以下步骤
一由所述客户终端根据由所述服务器发送到所述终端的至少一 个公共密钥加密所述至少一个加密参数;
一由所述客户终端把所述至少一个所加密的加密参数发送到所 述服务器;
一由所述服务器根据与所述至少一个公共加密密钥不对称的至少一个私有加密密钥对所述至少一个所加密的加密参数进行解码。
终端使用服务器的公共密钥加密已经被用于计算证书的加密密 钥的加密参数。之后,终端把这些所加密的参数发送到服务器。服务 器使用它的私有密钥对这些参数进行解码。因此服务器是能够对这些
参数(已经使用它的公共密钥加密)进行解码的唯--方。因此,对
于第三方来说不可能截取这些解码后的参数。因此这通过双重机制提
供了用于保护加密数据的有力机制所加密的认证证书的发送和用于
加密该证书的参数的发送均被加密。
根据本发明的 一个基本的方面,所述至少 一个加密参数所属的组
包括以下信息中的至少一项
一代表由所述认证服务器获得的一个随机数的信息项; 一代表由所述客户终端获得的一个随机数的信息项;
一代表一个用所述认证服务器的所述公共密钥加密的数字的信息项。
用于加密的参数可以具有多个来源例如来自服务器的随机数、 来自客户端的随机数、使用认证服务器的公共密钥的数。以这种方式,
确保了参数被用于加密不是恒定的或者不能简单地可再现的证书,并 且它们不可能被第三方发现。因此这增强了客户端身份的保护。
根据本发明的一个特定方面,所述方法在SSL和/或TLS协议中实现。
根据本发明的一个基本方面,所述方法在EAP协议中实现。
通过这种方式,身份保护方法可以通过添加新的功能被插入到已 知的^人证方法中。
本发明还涉及在所述终端由认证服务器认证期间,具有认证证书 的客户终端的身份加密的方法。
根据本发明,这种方法包括以下步骤
_由所述客户终端提取至少一个加密参数;
—由所述客户终端从所述至少 一个加密参数加密所述所加密的 认证证书;
10—把所述所加密的认证证书发送到所述服务器。
在该实施例中,使用本发明的客户终端能够在它的身份被发送到 认证服务器之前加密它的身份。这种方法确保了终端的身份将不由通 信网络解密发送。
本发明还涉及在所述终端由认证服务器认证期间,具有认证证书 的客户终端的身份加密设备。
根据本发明,这种设备包括以下步骤 一提取至少一个加密参数;
一从所述至少一个加密参数加密所述所加密的i人证证书;
一把所述所加密的认证证书发送到所述服务器。
在该另 一个实施例中, 一种设备可以在客户端的身份被发送到服
务器之前加密客户终端的身份。
在本发明的一个特定方面中,所述身份加密设备被用在使用虚拟
机的芯片卡中。
因此,该身份加密设备可以装配在使用例如虚拟机的操作系统的 芯片卡中。根据本发明的一个特定方面,该虚拟机可以是Java类型 的并且芯片卡可以是Java卡。
本发明还涉及一种用于在由所述认证服务器对所述终端的认证 中通过认证服务器对具有认证证书的客户终端的身份进行解码的方 法。
根据本发明,这种方法包括以下步骤
一从所述客户终端接收所加密的认证证书;
_由所述服务器提取至少一个加密参数;
一从所述至少一个加密参数对所述所加密的i人证证书进行解
码;
一认证并且如果认证结果是肯定的话则提供认证的声明。 根据本发明的一个特定实施例,该方法允许其身份受到保护的客 户终端的身份被解码。
本发明还涉及一种用于在由认证服务器对所述终端进行认证中对具有认证证书的客户终端的身份进行解码的设备。
根据本发明,这种设备包括 一从所述客户终端接收所加密的认证证书的装置; _由所述服务器提取所述至少一个加密参数的装置; 一从所述至少一个加密参数对所述所加密的认证证书进行解码 的装置;
一认证并且如果认证结果是肯定的的话则提供认证的声明的装置。
在该另 一个实施中,该设备能够对已经被发送到服务器的客户终 端的身份进行解码。
根据本发明的一个特定方面,所述解码设备被用在使用虛拟机的 芯片卡中。
因此,该身份解码设备可以装配在使用例如虛拟机的操作系统的 芯片卡中。根据一个特定的方面,该虚拟机可以是Java类型的并且 芯片卡可以是Java卡。
在另 一个实施例中,本发明涉及一种可以从通信网络下载和/或 存储在计算机可读支持栽体上和/或可由微处理器执行的计算机软件 程序。
根据本发明,在至少一个实施例中,这种计算机软件程序包括如 之前描述的由认证服务器执行客户终端的认证过程的程序代码指令。
在另一个实施例中,本发明还涉及一种可以从通信网络下载和/ 或存储在计算机可读支持栽体上和/或可由微处理器执行的计算机软 件程序。
根据本发明,在至少一个实施例中,这种计算机软件程序包括如 之前描述的对于客户终端执行身份加密方法的程序代码指令。
在另 一个实施例中,本发明还涉及一种以从通信网络下栽和/或 存储在计算机可读支持栽体上和/或可由微处理器执行的计算机软件程序。
根据本发明,在至少一个实施例中,这种计算机软件程序包括如之前描述的对于客户终端执行身份解码方法的程序代码指令。


如果简单地通过例子并且以非限制的方式通过阅读优选实施例 的以下描述和所附的附图,本发明的特征和优点将变得更加清楚,其

一图1,已经描述过了,代表表明在TLS会话期间所交换的消 息的时序一图2,也已经描述过了,代表目的在于收集客户端的身份的 攻击的连续步骤的时序—图3根据本发明的代表使用身份保护方法的程序表; 一图4详细描述了安全模块的结构;
—图5示出了在Java芯片卡环境中EAP-TLS应用程序的实际 实施例;
一图6是根据本发明的代表在客户端的认证中的客户安全模块 的使用的时序一图7是根据本发明的代表在客户端的认证中的服务器安全模 块的使用的时序一图8代表其中配备有多个安全模块的RADIUS服务器管理同 样也配备有安全模块的多个客户端的安全网络体系结构;
—图9详细描述在NAS和配备有EAP-TLS安全模块的 RADIUS i人证服务器之间交换的消息;
一图10示出了使用访问请求数据包的某些属性构造的会话标 识符(session_ID )的积无念和它的由特定安全才莫块处理EAP消息的佳_ 用。
具体实施方式
对本发明原理的回顾
因此本发明建议在认证过程期间保护客户端的身份。该保护甚至更为重要,因为用户的身份对于操作者和接入提供商以及甚至对于不 希望他们的个人生活被监视的客户自身来说已经变成真实的挑战。
本发明的主要原理是基于通过安全模块对身份的加密。关于图
3,描述了本发明的一个应用于EAP-TLS协议的实施例。然而,根据
任何认证方法中。
在EAP-TLS认证过程中,消息按照TLS协议被交换。在客户认 证握手会话期间,客户端(201)通过ClientHello消息发起该会话。 服务器通过 一 组ServerHello ( 102 ) 、 Certificate ( 103 )、 CertificateRequest ( 104 )和ServerHelloDone ( 105 )消息l故出响应。 然后客户端发送Certificate (106) 、 CertificateVerify (107)、 ClientKeyExchange ( 108 ) 、 ChangeCipherSpec ( 109 )和Finished (110)消息。
证书(Certification) ( 106 )消息是客户端证书的加密形式。更 准确地说,按照TLS协议,该消息的内容是其中的第一个证书被分配 给该客户端而后续的证书(可选地)与一个或多个证书机构相关联的 一系列证书。
通过示例,接下来将描述计算用于加密客户端证书(106)的密 钥(KeyClientCertificate)的实际方法。然而,基于4吏攻击更加困难 的秘密公式的其它方法也可以被用于该操作。
在TLS协议中,加密密钥可以使用Pseudo Random函数(PRF) 被生成。
共享的 MasterSecret从 PreMasterSecret 参数和在消息 ClientHello ( 101)和ServerHello ( 102 )之间交换的两个其它随机数 (ClientRadom和ServerRandom )被计算。因此MasterSecret密钥 可以,皮定义为
MasterSecret = PRF ( PreMasterSecret , "mastersecret,,, Clientrandom | ServerRandom )。
在这种情况下的符号l表示并置操作。之后,在认证阶段,其它
14加密密钥使用MasterSecret参数和标志(一串ASCII字符)被获得。 这些其它密钥还^f吏用PRF函数
密 钥 = PRF ( MasterSecret , Label , ServerRandom | ClientRandom )。
才艮据本发明,KeyClientCertificate加密密钥由类型(106)的关 系获得
KeyClientCertificate = F ( PreMasterSecret, ServerRandom, ClientRandom, Otherparameters )
在这种情况下,F是4吏用PreMasterSecret、 ServerRandom、 ClientRandom和其它计算参数(Otherparameters)的函数。例3口, 可以^使用以下函数
KeyClientCertificate = PRF ( MasterSecret, "clientcertificate,', ClientRandom | ServerRandom )
因此客户端通过例如当运行时使用加密算法加密它的X509证书 以及使用与该例如RC4或者相反模式的AES的加密算法相关联的 KeyClientCertificate密钥以保护它的身份。按照TLS协议的规定, 因此考虑加密的客户证书(106)的内容来计算在如ClientVerify( 108) 和Finished( 110、 112 )的消息中使用的打印值(MD5和SHA1函数)。 实际上,该证书在Certificate消息中以加密的形式(106)出现。
服务器接收六Certificate ( 106 )和CertificateVerify ( 107 ) ClientKeyExchange ( 108 ) 、 ChangeCipherSpec ( 109 )和Finished (110 )消息。它使用它的私有密钥Pprivs对包含在ClientKeyExchange 消息(108 )中的PreMasterSecret的值进行解码。它通过使用解码后 的 PreMasterSecret值应用一种与客户端所应用以获得 KeyClientCertificate的值的函数相同的加密函数移除保护客户证书 (106)的密钥。在一个适用于TLSPRF函数的特定的实施例中,使 用以下/>式
KeyClientCertificate = PRF ( MasterSecret, clientcertificate, ClientRandom | ServerRandom )然后服务器可以对客户证书进行解码。
然后服务器通过产生两个消息ChangeCipherSpec (111)和 Finished (112)来完成TLS会话的开始阶段。
但是实际上,PreMasterSecret可能仅由服务器解码,因为仅后 者具有可以对它进行解码的私有密钥。例如,在EAP-TLS的情况中, PreMasterSecret由客户端使用当证书(103 )被发送时由服务器发送
到客户端的Kpubs服务器的公共服务器密钥来加密。但是仅有私有密 钥Kprivs的持有者能够对使用该公共密钥Kpubs加密的消息进行解码。
以这种方式,客户端的身份被保密并且仅有服务器能够对该身份 进行解码。
因此这描述了 一种用于使用加密客户端的身份的方法的实施例, 作为使用EAP-TLS方法相互认证过程的一部分。因此客户端不再在 网络上分享它的"解码后的"身份。该身份被加密并且只有具有足够解 码信息的服务器能够识别将被认证的客户端。实际上,为了找到 KeyClientCertificate的解码密钥,服务器必须具有与客户端相同的信 息。总的来说,该信息被用于使用"F,,函数找到加密密钥。在适用于 EAP-TLS的特定的实施例中,服务器必须具有与那些由客户端使用 的相同的PRF函数的自变量MasterSecret , client certificate , ClientRadom和ServerRandom。
下面给出了实现用于保护客户端身份的方法的安全模块情况以 及这种模块的在RADIUS类型的认证服务器中的集成。然而应该清楚 本发明不局限于该特定应用,并且还可以被用于其它类型的认证服务 器并且可以更广泛地被用在试图进行身份保护的机制的所有情况。
安全模块的描述
在该实施例中,关于图4,示出了实现本发明的身份保护方法的 安全模块。
术语"安全模块"被用于表示集成硅电路(101),通常被称作防 篡改装置,如例如来自ST Microelectronics (注册商标)的ST22部 件并且能够以不同的格式提供,如集成到USB棒或MMC(多媒体卡)存储器中的PVC卡(芯片卡、SIM卡等等)。
这种安全模块包含了所有安全数据存储装置并且也允许软件在 安全和受到保护的环境中运行。
更准确地说,这种安全模块特征是CPU ( 201)、存储操作系统 代码的ROM (202) 、 RAM ( 203)和用作与硬盘相似的存储装置的 非易失性存储器(NVR, 204),并且其中包括例如集成的TLS或者 EAP-TLS软件。系统总线(200)连接安全模块的各个部分。与外部 世界(301)的接口是经由符合诸如IS07816、 USB、 ISO 7816-12、 MMC、 IEEE802.3、 IEEE802.il等标准的1/0输入/输出端口 ( 205 )。
Java卡可以形成特定种类的安全模块。在现有技术的情况下, 在客户端和服务器模式下可以在这些部件中载入并且运行符合TLS
协议规范的程序。通过示例,这种软件通过OpenEapSmartCard的名 称已知。科技文献已经描述了在Java卡中的客户端创造和EAP-TLS 服务器。鉴于以上的描述,已经描述了的身份保护方法可以简单地由 本领域的技术人员通过在Java卡中运行的客户端(或者服务器) EAP-TLS软件来实施。
关于图5,描述了在Java卡环境中的EAP-TLS应用的实际的实施例。
这种部件(100)通常具有符合ISO 7816标准(201)的通信接 口,集成的Java机(202)和一组由特别允许使用加密函数库(204) 的Java卡论坛所定义的Java类。然后EAP-TLS应用程序(300 )被 定义为 一组Java模块的集合。
EAPEngineClass (301)提供了四种基本的服务
——^持有者的信用证的管理(402),也就是说如私有RSA密 钥或者X509证书的存储在非易失性存储器(401)中的敏感数据;
一安全模块的个性化(404),也就是说要求把卡持有者的数据 写入该部件的存储器的所有操作;
一芯片卡的安全管理(403),其使用受到保护,例如由在三次 错误显示之后与封锁机构相关联的PIN代码来保护。一与网络的接口 (405),它分析接收到的EAP数据包并且把 它们发送到EAP-TLS方法。
EAP-TLS认证方法由Method.class才莫块(303 )执行。它通过与 特定环境(认证机构、证书、CA、客户端证书、私有RSA密钥等等) 相关联的数据使用其自变量是Credential.class Java对象(302 )的初 始步骤(501)发起。
由网络接口 ( 405 )分析的EAP消息(600 )由Method.class模 块(303 )的ProcessEap步骤(502 )处理。Auth.class Java接口 ( 304 ) 提供EapEngine.class ( 301)和Method.class ( 303 )模块之间的逻辑 链接。
客户端安全模块
关于图6,描述了包括客户端EAP-TLS软件(101)的安全模块 (201)。该程序运行TLS协议,它经由输入/输出通信端口 (图4, 205)接收EAP-TLS消息并且创建适当的响应。此外,模块存储至少 一个CA认证机构(102)的证书和它的公共RSA密钥(103)。模块 的身份,也就是说客户端证书(104)也被安全地存储。然而,该证 书并不以解码后的形式提供给外部世界。公共(107)和私有(108) RSA密钥也由安全模块管理。在EAP-TLS协议的结尾,对于使用模 块的实体、通常是操作系统可得到MSK密钥(108)。
从客户安全模块(201)的观点使用本发明的身份保护协议, EAP-TLS认证对话将更加精确地进行描述。
接入点(401)通过发送EAP-Identity.response消息提示客户新 的认证会话的出现。安全模块把它的标识符(EAP-ID)插入到 EAP-Identity.response消息(302)中。这是推荐的选项,但不是把 它作为限制性的,因为该标识符提供的是关于认证服务器而不是关于 客户的信息。认证服务器发送发起EAP-TLS会话的EAP-TLS.start 数据包(303)。响应该事件,客户端发出承载ClientHello类型TLS 数据包(304)的EAP-TLS消息。
符合之前描述的TLS协议,服务器发送一 系列消息(ServerHello,
18Certificate, CertificateRequest, ServerHelloDone ),其特别地定义了 服务器证书、它的公共密钥、CA (Certification Authority)证书和由 服务器识别的客户端证书的类型。
当EAP-TLS消息(305)被接收时,客户端分析服务器证书的 有效性,提取相关的公共密钥,选择随机的PerMasterSecret值并且 在ClientKeyExchange消息中加密该值(使用服务器的公共密钥)。 根据身份保护方法客户端证书使用之前描述的KeyClientCertificate 密钥被力口密。TLS消息(307) 、 Certificate, ClientkeyExchange、 CertmcateVerify 、 Finish的系列被插入到EAP-TLS数据包中并且被 发送到服务器。
通过封装在EAP-TLS数据包中的ChangeCipherSpec和 Finished消息(308 )服务器验证这个消息列表并且通知该操作的正 确完成。客户端通过EAP-TLS acceptance (309)确认接收(308)
月良务器通过EAP.success 消息(310 )发送EAP-TLS会话。在接 收该指示后,客户端计算主秘密密钥(MSK) (108)。通过特定的 安全模块(311),使后者对于客户端的操作系统是可用的。
使用根据本发明配备有身份保护机制的安全模块(201 )运行TLS 或者EAP-TLS客户端软件(101)提供了以下优点
一服务器(305)的证书在安全的计算机环境中被验证;
一客户软件(101)仅把它的经过加密(106)的身份(104)传 送到它信任的服务器实体,并且该服务器实体是唯——个能够对该信 息进行解码的。
一它通过签名的方式,基于包含在Certificate Verify消息(307) 中的它的私有RSA密钥Kprive (106)执行它的非拒绝性的决定。
由于它们的构成,在服务器和客户端之间交换的TLS消息可以 被网络的任何观察者读取并且分析。在与身份保护的对话的情况下, 如本发明所建议的,观察者所获得的唯一信息将是服务器的身份。在 认证过程的情况中这不是关键信息。
服务器安全模块关于图7,示出了安全模块(401),其包含服务器EAP-TLS软 件(IOI)。该程序运行TLS协议,它经由输入/输出通信端口 (图4, 205)接收EAP-TLS数据包并且创建适当的消息。此外,模块存储至 少一个认证机构(102)的证书和它的公共RSA密钥(103)。服务 器(107)的证书和它的乂^共(109)和私有(108) RSA密钥也由安 全模块管理。在EAP-TLS协议的结尾,对于使用如例如RADIUS认 证服务器的模块的实体可得到MSK密钥(108)。
以下是从服务器安全模块(101)的观点来看EAP-TLS认证对 话的描述。该模块被物理地或者逻辑地连接到认证服务器,例如 RADIUS类型(201 )或者使用EAP服务器实体的任何其它装置。EAP 月艮务器接收其标记EAP会话的初始化的EAP-Identity.request消息 (301 )。它发送表明EAP-TLS会话开始的EAP-TLS.start消息(303 )。
远程客户端发送传送ClientHello ( 304)消息的EAP-TLS数据 包(305)。然后服务器发送一系列消息(ServerHello, Certificate, CertificateRequest, ServerHelloDone)。当消息(305 )被接收,客 户端分析服务器证书的有效性,提取相关的公共密钥,选择随机的 PreMasterSecret值并且在ClientKeyExchange消息中力口密该值H吏 用服务器的公共密钥)。客户端证书(307 )使用之前描述的 KeyClientCertificate密钥^皮力。密。这个TLS消息(306 ) 、 Certificate, ClientkeyExchange 、 CertificateVerify 、 Finished的系列4皮插入到 EAP-TLS数据包中并且被发送到服务器。
服务器认证该消息的列表,并且特别地它使用它的KpriM密钥找
到PreMasterSecret值。然后它计算KeyClientCertificate并且从客户 端获得解码后的证书。它通过封装在EAP-TLS数据包中的 ChangeCipherSpec和Finished消息(308)通知该操作的正确完成。 客户端通过EAP-TLS ( 309 )退出确认ChangeCipherSpec和 Finished消息(308 )的接收。安全模块通过EAP-Success消息(310 ) 完成EAP-TLS会话并且计算主秘密密钥MSK (108)。使后者通过 安全模块的特定命令(311)的方式对于服务器(201)的操作系统可用。
使用根据本发明配备有身份保护机制的安全模块(201 )运行TLS 或者EAP-TLS客户软件(101)提供了以下优点
一服务器安全模块,其是唯一一个知道并且能够使用私有密钥 Kprivs(108)的,是唯一的知道客户端身份的实体;
一客户端的身份还由Certificateverify消息(306 )进一步证明;
—该身份的有效性通过由服务器发出的最后的消息Finished (309)中的加密方法来表明。
当例如RADIUS类型的认证服务器使用服务器安全模块时,后 者使MSK密钥(109)可用,例如用作确保接入点和无线网络客户对 之间的通信的安全性。
因此本发明通过允许管理客户端的连接并且然后使该客户端的 MSK密钥对于安全基础结构可用从而不使它的身份公开,提供了一 种技术上的创新方案。
在认证基础结构中安全模块的实现
本发明的一个实施例在RADIUS类型的认证基础结构中给出。 因此网络基础结构被认为支持大量配备有根据本发明的EAP-TLS安 全模块的客户端。这些客户端根据网络约束条件由一个或多个
RADIUS服务器来管理。
当认证会话由客户和服务器EAP安全模块对运行时,本发明允 许达到最佳水平的保密性。在该基础结构中,每个服务器能够同时管 理多个EAP-TLS会话。
在该基础机构中,安全模块的操作系统通常监督被设计用来保护 以避免通过物理和逻辑入侵的攻击的对策。这些对策大大降低了这些 部件的计算性能。
现在我们将描述一种通过RADIUS认证服务器实现多安全模块 的方法。该方法能够实现几个同时会话的管理并且使在支持大量用户 的网络中的服务器安全模块的使用变得可能,而性能不下降。
基础结构的描述关于图8,示出了 RADIUS基础结构,用于利用根据本发明的身 份保护方法。可选地配备安全模块(101、 102、 103)的一组客户端 (201、 202、 203 )由例如位于该网络的接入点的网络管理服务器 (NAS) (301、 302、 303)来控制。其中的每一个借助因特网(401) 通过由配备有操作系统的计算机系统运行的软件(502 )与单个的 RADIUS认证服务器(501)相关联。该RADIUS服务器还能够通过 物理的和/或逻辑的接口 503与多个服务器安全模块(601、 602、 603) 交换信息。
目前,许多如OPENRADIUS或者FREERADIUS的免费的软件 程序提供RADIUS认证服务。安全模块能够通过如USB或PC/SC(个 人计算机智能卡)的由许多操作系统支持的物理的(503 )和/或软件 接口被集成到这些软件程序中。
交换的消息
关于图9,以在通过接入点(101)的形式出现的NAS、 RADIUS 认证服务器(201)和EAP-TLS安全模块(301)之间的消息的形式 详细地显示了所交换的信息。按照之前的描述,后者包括私有RSA 密钥和来自认证机构的X509证书。
术语"RADIUS会话(401),,被用于指定在NAS和RADIUS认 证服务器之间交换的一系列数据包。这些数据包承栽了在EAP客户 端和EAP服务器之间交换的信息。
关于RADIUS服务器,当接收到EAP-Identity.response消息 (601)时会话开始,包括访问请求数据包(501),并且以通知的生 成结束,通常是在访问接收数据包(510)中的EAP-success (610)。
EAP-Identity.response消息由RADIUS访问请求数据包(501) 传送。称为EAP-TLS.start( 602 )的EAP-TLS request消息在RADIUS access challenge数据包(502 )中被发送到接入点。封装TLS ClientHello协议单元(603 )的EAP-TLS消息由RADIUS访问请求 数据包(502)传送。
包含十ServerHello 、Certificate 、CertificateRequest 和
22erHelloDone消息系列的TLS数据包通常根据EAP-TLS协议的 被分解成两段(604、 606)。每段在RADIUSaccess challenge数
(505、 506)中被传送。第一段通过由RADIUS数据包(505) 的EAP-TLS消息(605)完成。在第二也就是最后一段(606) 收后,客户端(其希望被识别并且认证)分析重新组合的消息。
在第二段(606)的接收期间,客户端分析服务器证书的有效性、 .相关的公共密钥、选择随机的PreMasterSecret值并且在 itKeyExchange消息中加密该值(使用服务器的公共密钥)。客 证书使用先前描述的KeyClientCertificate密钥来加密。TLS消 f系歹'J Certificate 、 ClientKeyExchange 、 Certificate Verify 和 ;hed被插入到EAP-TLS数据包(607 )中,然后被插入到RADIUS 请求数据包(507)中并且被发送到服务器。
服务器验证该消息的列表,并且特别地,找到PreMasterSecret 计算KeyClientCertificate并且获取解码后的客户端证书。如果 作成功,ChangeCipherSpec和Finished消息;故封装到EAP-TLS 包中,然后封装在RADIUS access—challenge消息(508 )中、
EAP-TLS完成消息(609)在RADIUS访问请求消息(509)中 送。
然后安全模块通过EAP-success消息表明认证的成功。RADIUS -器通过特定的命令(611)读取MSK密钥并且创建最后的 ,IUS access—accept消息(510 ),其特别地包括MSK密钥的两个 ,即MS-MPPE画sendkey和MS画MPPE画recvkey。
鉴于上述描述,可以观察到服务器安全模块通知认证的成功并且 给RADIUS服务器MSK密钥而不揭示客户的身份(没有加密的
)
关于图10,示出了访问请求类型的RADIUS数据包的内容。这 息由多个NAS (网络访问服务器)发送给RADIUS认证服务器 8, 501)。访问请求数据包除了其它信息之处还传送EAP响应。 该数据包的RADIUS服务器接着创建通常封装在EAP请求或者通知中的 Access - Challenge、 Access - Accept或者Access - Reject
类型消息。
现在将详细给出由具有两部分、即包头(102 )和属性列表(103 ) 的IP和UDP(用户数据报协议)通信堆传送的访问请求数据包(101) 的内容。
包头的特征在于消息代码(210)或者在我们的例子中的访问请 求、标记(202),使得响应的值与请求的值相等、数据包的长度(203) 和随机的16个八位字节数(204)相等。
RADIUS消息传送在图10中通过由RFC 2865和FRC 3559标准 所分配的名称^皮识别的数目可变的属性(205、 206、 207、 209、 210、 211、 212、 213、 214、 215)。
从RADIUS服务器的观点来看,会话由涉及远程客户端(205、 208)的信息的列表和涉及由客户端(206、 207、 209、 210、 213)使 用的NAS的信息的列表识别。每个会话被关联到由包含在访问请求 消息中的属性的并置获得的唯一的标识符(session-ID)相关联。通 过举例,我们可以通过两个以下的属性的并置创建session-ID值 (301):
Session - ID = NAS画Identifier |主叫站点-ID
NAS标识符(209) ( RADIUS属性号码32)是由网络管理员或 者设备制造商提供的NAS的唯一的标识符。
"主叫站点-Id" ( 208 ) ( RADIUS属性号码(31)是客户端的 唯一标识符,例如所使用的网络主板的唯一 MAC地址)。
关于根据本发明的身份保护协议,认证服务器把安全模块分配给
由session-ID值唯一地识别的每个会话。当没有可用的安全模块时, 访问请求数据包被RADIUS软件忽略,因此远程NAS不接收该事件 的任何通知。
EAP消息根据它的尺寸通过其有效长度是243个八位字节的一 个或多个属性被封装。
RADIUS服务器的软件验证属性(215)的正确值,由秘密密钥(被称为RADIUS秘密)保护的HMAC-MD5。如果验证成功,则 EAP消息被重新组合,然后被发送到与由(301)识别的RADIUS会 话相关的安全模块(501)。因此,使用根据本发明的身份保护方法, 服务器安全模块能够把客户终端的身份提供给RADIUS服务器,以获 得来自后者的认证的声明。之后,当每个认证模块管理最多一个会话 时,同时由RADIUS服务器软件程序管理的认证会话的最大数目与安 全模块的数目相同。
然而,技术进步,特别是性能的进步,允许同时管理由同一安全 模块负责的多个认证会话。在这种情况下,RADIUS软件可以把多个 会话分配给每个安全模块。
权利要求
1.用于由认证服务器认证客户终端的方法,其中所述客户终端具有认证证书,其特征在于包括以下阶段-由所述客户终端提取至少一个加密参数;-由所述客户终端从所述至少一个加密参数加密所述加密的认证证书,提供加密的认证证书;-把所述加密的认证证书发送到所述服务器;-由所述服务器获取所述至少一个加密参数;-从所述至少一个加密参数对所述加密的认证证书进行解码;-认证,并且如果认证结果是肯定的话,则提供认证的声明。
2. 如权利要求1中所述的认证方法,其特征在于所述由所述客 户终端对所述认证证书进行加密的阶段包括以下步骤一由所述客户终端根据至少一个加密参数计算证书加密密钥; 一 4吏用所述证书加密密钥加密所述i人证证书。
3. 如权利要求1或2中任一项所述的认证方法,其特征在于所 述对由所述服务器提取所述至少一个加密参数的阶段包括以下步骤一由所述客户终端根据由所述服务器发送到所述终端的至少一 个公共密钥加密所述至少一个加密参数;一由所述客户终端把至少 一个加密的加密参数发送到所述服务器;一由所述服务器根据与所述至少一个公共加密密钥不对称的至 少 一 个私有加密密钥对所述至少 一 个加密的加密参数进行解码。
4. 如4又利要求1到3中任一项所述的认证方法,其特征在于所 述至少 一个加密参数所属的组包括以下信息中的 一项一代表一个由所述认证服务器获取的随机数的信息项;—代表一个由所述客户终端获得的随机数的信息项;一代表一个用所述认证服务器的所述公共密钥加密的数字的信息项。
5. 如权利要求1到4中任一项所述的认证方法,其特征在于它 被用在SSL和/或TLS协议中。
6. 如权利要求5中所述的认证方法,其特征在于它被用在EAP 协议中。
7. 在由认证服务器对客户终端进行认证期间,用于对具有认证 证书的所述客户终端的身份进行加密的方法,其特征在于包括以下步 骤一由所述客户终端提取至少一个加密参数; 一由所述客户终端从所述至少一个加密参数对所述加密的认证 证书进行加密;一把所述加密的认证证书发送到所述服务器。
8. 在由认证服务器对客户终端进行认证期间,用于对具有认证 证书的所述客户终端的身份进行加密的设备,其特征在于包括一提取至少一个加密参数的装置;—从所述至少一个加密参数加密所述认证证书的装置;一把所述加密的认证证书发送到所述服务器的装置。
9. 如权利要求8中所述的身份加密设备,其特征在于它被用在 使用虚拟机的芯片卡中。
10. 在由认证服务器对客户终端进行认证中,用于由所述认证 服务器对具有认证证书的所述客户终端的身份进行解码的方法,其特 征在于包括以下步骤—从所述客户终端接收加密的认证证书;_由所述服务器提取至少一个加密参数;—从所述至少 一个加密参数对所述加密的i人证证书进行解码;—认证,并且如果认证结果是肯定的话,则提供认证的声明。
11. 在由认证服务器对客户终端进行认证中,用于由认证服务 器对具有认证证书的所述客户终端的身份进行解码的设备,其特征在 于包括—从所述客户终端接收加密的认证证书的装置;由所述服务器提取至少一个加密参数的装置; 一从所述至少 一个加密参数对所述加密的认证证书进行解码的装置;一认证并且如果认证结果是肯定的话则提供认证的声明的装置。
12. 如权利要求11中所述的用于对客户终端的身份进行解码 的设备,其特征在于它被用在使用虚拟机的芯片卡中。
13. 计算机软件程序,其可以从通信网络下载和/或存储在计算机可读支持载体上和/或可由微处理器执行,其特征在于它包括当在计算机上运行时由认证服务器执行如权利要求1到6中所述的对客户 终端进行认证的方法的程序代码指令。
14. 计算机软件程序,其可以从通信网络下载和/或存储在计 算机可读支持载体上和/或可由微处理器执行,其特征在于它包括当在 计算机上运行时执行如权利要求7中所述的对客户终端的身份进行加 密的方法的程序代码指令。
15. 计算机软件程序,其可以从通信网络下栽和/或存储在计 算机可读支持载体上和/或可由微处理器执行,其特征在于它包括当在 计算机上运行时执行如权利要求10中所述的对客户终端的身份进行 解码的方法的程序代码指令。
全文摘要
本发明涉及一种用于使用认证服务器认证客户终端的方法,所述客户终端保持认证证书。根据本发明,这种方法包括以下步骤由所述客户终端获取至少一个加密参数;由所述客户终端基于所述至少一个加密参数加密所述认证证书,得到加密的认证证书;发送所述加密的认证证书到所述服务器,由所述服务器获取所述一个加密参数,基于所述一个加密参数解密所述加密的认证证书,认证,并且如果认证结果是肯定的话,则发送认证声明。
文档编号H04L9/32GK101657992SQ200780019624
公开日2010年2月24日 申请日期2007年4月3日 优先权日2006年4月7日
发明者M·巴德拉, 帕斯卡尔·尤利恩 申请人:电信学院集团-国立高等电信学院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1