基于身份密码系统的tls握手协议的利记博彩app

文档序号:10691114阅读:794来源:国知局
基于身份密码系统的tls握手协议的利记博彩app
【专利摘要】本发明公开了一种基于身份密码系统的TLS握手协议,具体涉及可信安全网络的基础通信领域,通过定义新的密码套件,来解决传统PKI系统下,TLS握手过程中因证书查找、传递、验证等造成的延迟高、计算量大等问题,在保证安全性的同时,提高握手协议性能。该握手协议包括以下步骤:1、基于身份密码系统的建立和密钥分发;2、握手协商安全参数;本发明的优点在于:(1)不需发送和验证证书,节省网络流量和内存;(2)认证和密钥协商同时完成,减少消息数量,在保证高安全性的同时降低了网络延迟;(3)通过新增可选密码套件,新增扩展选项,与TLS完美兼容。
【专利说明】
基于身份密码系统的TLS握手协议
技术领域
[0001] 本发明设及可信安全网络的基础通信领域,特别是一种基于身份密码系统的化S 握手协议。
【背景技术】
[0002] 传输层安全(Transpod Layer Se州rity,化S)协议处于传输层和应用层之间,在 安全套接层(Secure Socket Layer,SSL)协议的基础上发展而来,为信息传输提供认证、机 密性和完整性等安全服务;
[0003] 握手协议是化S的核屯、部分,它完成客户端和服务端之间的密码算法协商、认证和 会话密钥生成等功能,是通信双方进行数据安全传输的前提;传统的化S握手协议基于公钥 基础设施(Public Ifey Infrastructure,ΡΚΙ)颁发的证书实现认证和密钥交换,一方面,证 书查询和证书路径构造导致较大的计算开销和时间延迟,另一方面,证书交换带来较大的 通信开销,运些问题在一定程度上限制了化S的部署范围;
[0004] 1984年,Shamir提出了基于身份密码系统(Identity Based C;ryptosystem,IBC), 该系统不使用任何证书,直接将用户的身份作为公钥,私钥由可信的私钥生成中屯、 (Private K巧Generator,PKG)生成并分发给用户;IBC在解决了PKI中需要证书生成、签 发、备份、撤销等问题的同时,明显降低了系统建立及维护的成本和复杂度,大大节省了存 储空间和网络带宽;IBC的应用变得越来越广泛;
[0005] 赵安军等在《一种快速化S握手协议分析与实现》中提出在客户端长期缓存服务端 端配置及初始会话时建立的各种协商参数的方法,从一定程度上减少了二次握手时的通信 流量,但无疑给客户端增加额外负担;
[0006] 彭长艳等在《基于IBC的化S握手协议设计与分析》中提出基于IBC的握手协议,完 成了握手过程中的无证书认证,提高了协议性能,但对过程的阐述不够详细,没有考虑到与 已有TLS兼容的问题;
[0007] 针对W上问题,本发明提出一种基于身份密码系统的化S握手协议及部署方法;主 要设及到的技术原理有:
[000引双线性映射性质:
[0009] 设q是一大素数,Gi是q阶加法群,&是q阶乘法群,映射e :Gi XGi^G2为双线性映射, 则对任意 0,1?£61,日,13£2,有6(日9,61〇 = 6(9,1〇36。
[0010] 基于身份的认证密钥协商协议(Identity Based Authenticated Key Agreement,IBAKA)。
[0011] 在基于身份密码系统中,保证协商得到的会话密钥只有通信双方知道,即在密钥 协商的过程中完成双方认证的协议,本发明只是采用IBAKA的一种。

【发明内容】

[0012] 针对上述情况,为克服现有技术缺陷,本发明之目的就是提供一种基于身份密码 系统的化S握手协议及部署方法,可有效解决现有的传统ΡΚΙ系统下,TLS握手过程中因证书 查找、传递、验证等造成的延迟高、计算量大等问题,在保证安全性的同时,提高握手协议性 能。
[0013] 本发明的具体技术方案是:
[0014] 一种基于身份密码系统的化S握手协议,该基于身份密码系统的化S握手协议包括 W下步骤:
[0015] 1)基于身份密码系统的建立和密钥分发;
[0016] 2)握手协商安全参数。
[0017] 作为本发明的进一步细化,所述步骤1)的具体实施步骤如下:PKG选择某条特定的 楠圆曲线,并由其上的点构成q阶加法循环群Gi,其中q为一大素数,生成元为P;随机选择 化马,作为PKG的主密钥,计算Ppub = sP;再根据群Gi选择双线性映射e,使得e: Gi X Gi一G2,G2 为q阶乘法群;最后选择相关哈希函数一 Gi,出:G2XG1XG2 一 {0,1}η,η为密钥长度; 完成初始化后,公布系统的公共参数列表<q,Gi,G2,e,η,Ρ,Ppub,Hi,此> ;PKG生成给定身份 ID的公私密钥对,设客户端身份为A,则其公钥和私钥分别为Qa=化(A)和Sa=sQa;服务端身 份为B,则其公钥和私钥分别为化=化(B)和Sb = s化,将私钥通过安全信道传送给用户。
[0018] 作为本发明的进一步细化,所述步骤2)具体实施步骤如下::
[0019] (1)客户端发送Clien地ello消息,发起会话连接;
[0020] ClientHello消息,结构定义如下:
[0021]
[0022] } ClientHello;
[0023] 其中;
[0024] client_version为客户端的协议版本;
[0025] random存放客户端产生的随机信息,其内容包括产生的时钟和随机数;
[00%] session_id为会话标识,其值由服务端产生;如果没有可重用的会话标识或希望 协商安全参数,该字段应为空,否则表示客户端希望重用该会话;会话标识生成后应一直保 持到被超时删除或与运个会话相关的连接遇到致命错误被关闭;
[0027] cipher_suites为客户端所支持的密码套件列表,按优先级顺序排列,供服务端选 择;每个密码套件包括一个密钥交换算法、一个加密算法和密钥长度、W及一个校验算法; 例如TLS_RSA_WnH_AES_128_CBC_SHA256表示密钥交换和认证算法为RSA,对称加密算法为 128位AES,加密模式为CBC,完整性校验算法为256位SHA;
[0028] 使用基于身份密码系统的化S握手协议提出的握手协议时,需新增密码套件,例如 TLS_IBAKA_WnH_AES_CBC_SHA(也可使用其他加密算法和校验算法),即表示采用IBAKA进 行密钥交换和认证,同时采用该基于身份密码系统的化S握手;
[0029] 协议提出的握手协议;
[0030] compression_methods为客户端所支持的压缩算法列表,按优先级顺序排列,供服 务端选择;
[003。 extensions存放扩展选项,各个扩展W扩展块的形式并列出现;新增IBC_ identity扩展用于存储用户自身的身份信息,新增的密码套件和新增的扩展同时使用;
[0032] (2)服务端发送Severifello消息,完成安全参数的协商;
[0033] Seve吐lello消息,结构定义如下:
[0034]
[0035] 其中;
[0036] serveLversion为服务端的协议版本;
[0037] random存放服务端产生的随机信息;
[0038] session_id为服务端使用的会话标识,如果Clien地ello消息中的会话标识不为 空,且服务端存在匹配的会话标识,则服务端重用与该会话标识对应的会话建立新连接,并 在回应的SeverHello消息中带上与客户端一致的会话标识,否则服务端产生一个新的会话 标识,用来建立一个新的会话;
[0039] ciphe;r_suite为服务端从Clien地ello消息中选取的一个密码套件,基于身份
[0040] 密码系统的化S握手协议提出的握手过程中为选择的化S_IBAKA_WITH_AES_CBC_ SHA套件;会话重用时,本字段存放重用会话使用的密码套件;
[0041 ] compress ion_method为服务端从ClientHello消息中选取的一个压缩算法,会话 重用时,本字段存放重用会话使用的压缩算法;
[0042] extensions包含IBC_identity选项并存放服务端身份信息;
[0043] (3)服务端发送SeverKeyExchange消息,包含服务端产生的密钥交换信息; KeyExchange消息的最后一位为标志位,前面存放密钥交换信息的横坐标值,当纵坐标为正 时,标志位为1,当纵坐标为负时,标志位为0;对方在收到消息后凭借横坐标和标志位确定 纵坐标从而得到完整的密钥交换信息;当选用不同的密钥生成算法,不需要服务端产生密 钥交换信息时,该SeverKeyExchange消息被省略;
[0044] (4)服务端发送SeverifelloDone消息,表明握手过程的hello消息阶段完成;
[0045] (5)客户端发送ClientKeyExchange消息,包含客户端产生的密钥交换信息;发送 完ClientKeyExchange消息后,客户端计算会话密钥并保存;
[0046] (6)客户端发送化angeCi地erSpec消息通知密码规格的改变,接下来的数据将使 用新协商的安全参数来保护;
[0047] (7)客户端使用新协商的算法和密钥,加密并发送Finished消息,用于验证密钥交 换过程是否成功,并校验握手过程的完整性;
[004引 (8)服务端收到ClientKeyExchange消息并且收到ChangeCi地erSpec消息后,计算 会话密钥,其中,双方计算得到的密钥相等且具有认证性;收到Finished消息后,对其进行 解密并验证校验数据,验证通过后发送化angeCi曲erSpec消息通知客户端接下来的数据将 使用新协商的安全参数来保护;
[0049] (9)服务端使用新协商的算法和密钥,加密并发送Finished消息;客户端收到 Finished消息后,对其进行解密并验证校验数据,验证通过后,二者正式建立连接;
[0050] W上内容除提到的变动外,其余均与化S1.2规定的内容相同;握手过程应按照流 程顺序进行,否则将会导致致命的错误。
[0051] 与现有技术相比,本发明的有益效果在于:
[0052] (1)不需发送和验证证书,节省网络流量和内存;
[0053] (2)认证和密钥协商同时完成,减少消息数量,在保证高安全性的同时降低了网络 延迟;
[0054] (3)通过新增可选密码套件,新增扩展选项,与化S完美兼容。
【附图说明】
[0055] 图1为本发明实施例总框图;
[0056] 图2为本发明实施例握手消息流程。
【具体实施方式】
[0057] W下结合附图对本发明的【具体实施方式】作详细说明;
[0058] 本发明的目的在于提出一种基于身份的化S握手协议,摆脱证书传递和验证的困 扰,简化握手流程,同时完成双方的认证,建立安全会话。W下将结合同域内用户Alice(简 称A)向用户Bob(简称B)发起安全连接的具体实施例对本发明进行说明。本实施例中,由域 内一个可信的自信任机构(Self-化ust Authority,STA)来完成PKG的任务。
[0059] 如图1-2所示,本发明的总流程包括W下步骤:
[0060] 1)基于身份密码系统的建立和私钥分发;
[0061] PKG选择某条特定的楠圆曲线,例如选定楠圆曲线为y2 = x3-3x,并由其上的点构成 q(q为一大素数)阶加法循环群Gi,其中生成元为P。随机选择,作为PKG的主密钥,计算 Ppub = sP。再根据群Gi利用楠圆曲线上的wei 1对或者化te对,构造双线性映射e,使得e: Gi X Gi一G2,G2为q阶乘法群。最后选择相关哈希函数Hi: {0,1} *一Gi,出:G2 X Gi X G2一 {0,1} η,η密 钥长度。完成初始化后,公布系统的公共参数列表<q,Gi,G2,e,η,Ρ,Ppub,出,此>。PKG生成 给定身份ID的公私密钥对,Alice的身份IDa为AliceOcompany. com,则其对应的公钥Qa为出 (IDa),PKG为其生成的私钥Sa为sQAeBob的身份IDb为Bob@company.com,则其对应的公钥化为 Hi( IDb),PKG为其生成的私钥Sb为S化,PKG通过安全通道将私钥分发给用户。
[0062] 2)TLS握手完成互认证和安全参数协商;
[0063] 如图2所示,握手过程如下:
[0064] (1)客户端Alice发送ClientHello消息,发起会话连接。client_version设置为 TLS 1.3;产生随机数并放入 random; session_id 为空;ciphe;r_suites 优先排列 TLS_IBAKA_ mH_AES_CBC_SHA密码套件并设置合理的压缩算法列表;在扩展选项的IBC_identity中放 入AliceOcompany.com。
[0(?日]Seve吐lello消息,结构定义如下:
[0066]
[0067]
[006引 其中;
[0069] serveLversion为服务端的协议版本;
[0070] random存放服务端产生的随机信息;
[0071] session_id为服务端使用的会话标识,如果Client化11〇消息中的会话标识不为 空,且服务端存在匹配的会话标识,则服务端重用与该标识对应的会话建立新连接,并在回 应的Seve巧ello消息中带上与客户端一致的会话标识,否则服务端产生一个新的会话标 识,用来建立一个新的会话;
[0072] 〇191161'_311;[16为服务端从(:116]1地611〇消息中选取的一个密码套件,基于身份
[0073] 密码系统的化S握手协议提出的握手过程中为选择的化S_IBAKA_WITH_AES_CBC_ SHA套件;会话重用时,本字段存放重用会话使用的密码套件;
[0074] compression_method为服务端从ClientHello消息中选取的一个压缩算法,会话 重用时,本字段存放重用会话使用的压缩算法;
[00"7日]extensions包含IBC_identity选项并存放服务端身份信息。
[0076] (2化〇13发送56¥6巧611〇消息,完成安全参数协商。(3116]11:_¥6'3;[0]1选择为化8 1.3;产生随机数并放入random;设置合适的session_id; ciphe;r_suites选择TLS_IBAKA_ WITH_AES_CBC_SHA密码套件并选择合适的压缩算法;在扩展选项的IBC_identity中放入 BobOcomp曰ny.com〇
[0077] (3)服务端Bob发送Se ve;rKeyExchange消息。Bob随机选择y e Z*,计算Υ = yP,将Υ的 横坐标放入SeverKeyExchange并设置标记位。
[0078] Severifello消息,结构定义如下:
[0079]
[0080] 其中;
[0081 ] serveLversion为服务端的协议版本;
[0082] random存放服务端产生的随机信息;
[0083] session_id为服务端使用的会话标识,如果Client化11〇消息中的会话标识不为 空,且服务端存在匹配的会话标识,则服务端重用与该标识对应的会话建立新连接,并在回 应的S e V e巧e 110消息中带上与客户端一致的会话标识,否则服务端产生一个新的会话标 识,用来建立一个新的会话;
[0084] ciphe;r_suite为服务端从Clien地ello消息中选取的一个密码套件,基于身份
[0085] 密码系统的化S握手协议提出的握手过程中为选择的化S_IBAKA_WITH_AES_CBC_ SHA套件;会话重用时,本字段存放重用会话使用的密码套件;
[00化]compression_method为服务端从Clien地ello消息中选取的一个压缩算法,会话 重用时,本字段存放重用会话使用的压缩算法;
[0087] extensions包含IBC_identity选项并存放服务端身份信息。
[0088] (4)Bob发送SeverifelloDone消息,表明握手过程的hello消息阶段完成。
[0089] (5)Alice 收到 Seve 吐lelloDone 消息后,发送 ClientKeyExchange 消息。Alice 随机 选择X e Z*,计算X = xP,将X的横坐标放入C1 ientKeyExchange并设置标记位。发送完 C1 ientKeyExchange消息后,A1 ice通过此(e (Qb,xPpub),χΥ,e( Sa,Y))计算预主密钥,通过预 主密钥和化11〇消息中的随机数计算主密钥,通过主密钥和化11〇消息中的随机数计算得到 会话密钥Ka。
[0090] (6)Alice发送化angeCi地erSpec消息通知对方使用刚协商好的安全参数来保护 接下来的数据,并按照标准化S流程变更密码规格。
[0091] (7)Alice计算校验数据构造 Finished消息,并使用Ka,通过AES算法,在CBC模式下 加密,发送给Bob,表明握手阶段结束。
[OOW] (8)Bob收到化angeCi地erSpec消息后通过出(e (Sb,X),yX,e(Qa,yPpub))计算预主 密钥,通过预主密钥和化llo消息中的随机数计算主密钥,通过主密钥和化llo消息中的随 机数计算得到会话密钥Kb。收到finished消息后,用Kb进行解密并对其校验数据进行验证, 验证通过后发送化angeCi地erSpec消息通知对方使用刚协商好的安全参数来保护接下来 的数据,并按照标准TLS流程变更密码规格。
[0093] (9 )Bob计算校验数据构造 Finished消息,并使用Kb进行加密。Alice收到finished 消息后,用Ka进行解密并对其校验数据进行验证,验证通过后,二者正式建立连接。
[0094] 显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对 本发明的实施方式的限定;对于所属领域的普通技术人员来说,在上述说明的基础上还可 W做出其它不同形式的变化或变动;运里无需也无法对所有的实施方式予W穷举;凡在本 发明的精神和原则的内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求 的保护范围内。
【主权项】
1. 一种基于身份密码系统的TLS握手协议,其特征在于,该基于身份密码系统的TLS握 手协议包括以下步骤: 1) 基于身份密码系统的建立和密钥分发; 2) 握手协商安全参数。2. 根据权利要求1所述的一种基于身份密码系统的TLS握手协议,其特征在于,所述步 骤1)的具体实施步骤如下:PKG选择某条特定的椭圆曲线,并由其上的点构成q阶加法循环 群Gi,其中q为一大素数,生成元为P;随机选择s e Zf,作为PKG的主密钥,计算Ppub = sP;再根 据群61选择双线性映射e,使得^61\61462,6 2为(1阶乘法群;最后选择相关哈希函数 1? :{?,1 Γ 4 q,H2:G2 XGi XG2- {0,1 }n,n为密钥长度;完成初始化后,公布系统的公共参 数列表<9,61,6 2,〇,11少,?_,!11,!12>;?1?生成给定身份10的公私密钥对,设客户端身份为 A,则其公钥和私钥分别为Qa=Hi(A)和Sa=sQa;服务端身份为B,则其公钥和私钥分别为Qb = HKB)和Sb = sQb,将私钥通过安全信道传送给用户。3. 根据权利要求2所述的一种基于身份密码系统的TLS握手协议,其特征在于,所述步 骤2)具体实施步骤如下:: (1)客户端发送Cl ientHel 1〇消息,发起会话连接; ClientHello消息,结构定义如下:其中: client_version为客户端的协议版本; random存放客户端产生的随机信息,其内容包括产生的时钟和随机数; sessionjd为会话标识,其值由服务端产生;如果没有可重用的会话标识或希望协商 安全参数,该字段应为空,否则表示客户端希望重用该会话;会话标识生成后应一直保持到 被超时删除或与这个会话相关的连接遇到致命错误被关闭; cipher_suites为客户端所支持的密码套件列表,按优先级顺序排列,供服务端选择; 每个密码套件包括一个密钥交换算法、一个加密算法和密钥长度、以及一个校验算法; 使用该基于身份密码系统的TLS握手协议提出的握手协议时,需新增密码套件; compression_methods为客户端所支持的压缩算法列表,按优先级顺序排列,供服务端 选择; extensions存放扩展选项,各个扩展以扩展块的形式并列出现;新增IBC_identity扩 展用于存储用户自身的身份信息,新增的密码套件和新增的扩展同时使用; (2)服务端发送SeverHello消息,完成安全参数的协商; SeverHello消息,结构定义如下:其中: server_version为服务端的协议版本; random存放服务端产生的随机信息; session_id为服务端使用的会话标识,如果ClientHello消息中的会话标识不为空,且 服务端存在匹配的会话标识,则服务端重用与该会话标识对应的会话建立新连接,并在回 应的S e v e r H e 11 〇消息中带上与客户端一致的会话标识,否则服务端产生一个新的会话标 识,用来建立一个新的会话; cipher_suite为服务端从ClientHello消息中选取的一个密码套件,握手过程中为选 择的TLS_IBAKA_WITH_AES_CBC_SHA套件;会话重用时,本字段存放重用会话使用的密码套 件; compress ion_method为服务端从ClientHello消息中选取的一个压缩算法,会话重用 时,本字段存放重用会话使用的压缩算法; extensions包含IBC_identity选项并存放服务端身份信息; (3 )服务端发送S e v e r K e y E X c h a n g e消息,包含服务端产生的密钥交换信息; KeyExchange消息的最后一位为标志位,前面存放密钥交换信息的横坐标值,当纵坐标为正 时,标志位为1,当纵坐标为负时,标志位为0;对方在收到消息后凭借横坐标和标志位确定 纵坐标从而得到完整的密钥交换信息;当选用不同的密钥生成算法,不需要服务端产生密 钥交换信息时,该SeverKeyExchange消息被省略; (4) 服务端发送SeverifelloDone消息,表明握手过程的hello消息阶段完成; (5) 客户端发送ClientKeyExchange消息,包含客户端产生的密钥交换信息;发送完 ClientKeyExchange消息后,客户端计算会话密钥并保存; (6) 客户端发送ChangeCipherSpec消息通知密码规格的改变,接下来的数据将使用新 协商的安全参数来保护; (7) 客户端使用新协商的算法和密钥,加密并发送Finished消息,用于验证密钥交换过 程是否成功,并校验握手过程的完整性; (8) 服务端收到ClientKeyExchange消息并且收到ChangeCipherSpec消息后,计算会话 密钥,其中,双方计算得到的密钥相等且具有认证性;收到Finished消息后,对其进行解密 并验证校验数据,验证通过后发送ChangeCipherSpec消息通知客户端接下来的数据将使用 新协商的安全参数来保护; (9) 服务端使用新协商的算法和密钥,加密并发送Finished消息;客户端收到Finished 消息后,对其进行解密并验证校验数据,验证通过后,二者正式建立连接; 以上内容除提到的变动外,其余均与TLS1.2规定的内容相同;握手过程应按照流程顺 序进行,否则将会导致致命的错误。
【文档编号】H04L29/06GK106060070SQ201610512342
【公开日】2016年10月26日
【申请日】2016年7月1日
【发明人】王小峰, 薛天, 谢岢洋, 李龙平, 邢倩倩, 钟求喜, 王飞, 张博锋, 刘宇靖
【申请人】中国人民解放军国防科学技术大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1