CN101651538A - 一种基于可信密码模块的数据安全传输方法 - Google Patents
一种基于可信密码模块的数据安全传输方法 Download PDFInfo
- Publication number
- CN101651538A CN101651538A CN200910063823A CN200910063823A CN101651538A CN 101651538 A CN101651538 A CN 101651538A CN 200910063823 A CN200910063823 A CN 200910063823A CN 200910063823 A CN200910063823 A CN 200910063823A CN 101651538 A CN101651538 A CN 101651538A
- Authority
- CN
- China
- Prior art keywords
- password module
- data
- credible password
- external entity
- message authentication
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
本发明涉及一种基于可信密码模块的数据安全传输方法,属于计算机信息安全技术领域,特别适合于可信计算平台使用。它包括下述步骤:A.创建共享秘密生成会话密钥;B.数据加密并生成信息验证码,并送给可信密码模块验证;C.数据解密并重构传输数据的信息验证码;D.信息验证码进行验证。本发明的优点在于:提高了传输数据的秘密性,增强数据传输保护的安全强度。
Description
技术领域
本发明涉及一种基于可信密码模块的数据安全传输方法,属于计算机信息安全技术领域,特别适合于可信计算平台使用。
背景技术
可信计算平台在普通计算平台上嵌入了一个单独的安全模块,能向该平台的访问者提供平台身份证明和完整性数据。该单独的安全模块称之为可信密码模块,原普通计算平台称之为可信计算平台主机。相对于可信密码模块而言,可信计算平台主机上的驱动程序、操作系统或应用程序等称之为外部实体。
在可信计算平台里,外部实体调用可信密码模块的相关功能时,外部实体和可信密码模块之间要进行数据传输。这些数据可能是敏感数据,这些敏感数据要在外部实体和可信密码模块之间的线上传输,可能被窃听或截获,造成数据泄露,带来安全损失,需要对这些敏感数据进行传输保护,包括秘密性和完整性保护。
为了保证外部实体和可信密码模块之间的数据传输安全,可信计算组织(TCG)采用如下安全措施:
1.需要传输保护的数据TranData长度小于等于160比特时,外部实体和可信密码模块利用一个共享秘密SharedSecret和一个随机数与需要传输保护的数据进行异或运算,以保证线上传输数据的秘密性,EncTranData=XOR(TranData,SHA1(SharedSecret,Random))
2.需要传输保护的数据TranData长度大于160比特时,外部实体和可信密码模块利用MGF1函数对一个共享秘密SharedSecret和一个随机数根据需要保护的数据长度生成一个密钥序列,然后用这个密钥序列与需要传输保护的数据进行异或运算,以保证线上数据传输的秘密性,EncTranData=XOR(TranData,MGF1(SharedSecret,Random))
无论需要传输保护的数据的长度大还是小,都是通过异或运算来保护其秘密性,与其进行异或运算的密钥是通过SHA1和MGF1运算产生的,加密强度不高,显得秘密性较为脆弱。攻击者或截听者截获线上传输的数据后,比较容易还原原始数据。
发明内容
本发明的目的在于,克服现有技术的缺点,为保护传输数据的秘密性,大大增强数据传输保护的安全强度,提供一种基于可信密码模块的数据安全传输方法。
本发明的技术方案是:
一种基于可信密码模块的数据安全传输方法,它包括下述步骤:
A、用户通过外部实体与可信密码模块创建共享秘密shareSecret生成会话密钥sessionKey;
B、外部实体用会话密钥sessionKey对要传输的数据进行加密并生成信息验证码,tranDataMAC并送给可信密码模块验证;
C、可信密码模块对加密后的传输数据解密并重构传输数据的信息验证码tranDataMAC;
D、用户接受与重构的信息验证码进行验证;
所述的外部实体包括CPU、BIOS ROM、南桥、北桥、硬盘、键盘、显示器、内存。
所述的创建共享秘密是外部实体存储有共享秘密shareSecre并生成的随机数callerNonce和可信密码模块存储有共享秘密shareSecret并生成随机数TCMNonce共同创建共享秘密。
所述的生成会话密钥是由外部实体向可信密码模块传输敏感数据时首先生成会话密钥,外部实体指定加密后共享秘密信息发送给可信密码模块进行解密和比较,并与可信密码模块生成随机数用HMAC方法生成会话密钥。
所述的外部实体使用会话密钥对需要传输的数据进行加密并使用对称方法对数据进行加密生成信息验证码,再将加密后的传输数据和信息验证码送给可信密码模块。
所述的可信密码模块对加密后的传输数据和信息验证码解密并重构,并使用会话密钥和对称密码方法再重构传输数据的验证码。
所述的可信密码模块对外部实体接受的信息验证码和重构的信息验证码的比较,是相同的则通过,错误的被报告。
本发明的原理是:利用外部实体和可信密码模块的共享秘密生成会话密钥,会话密钥由HMAC算法计算外部实体生成的随机数及可信密码模块生成的随机数得到,HMAC的密钥为外部实体和可信密码模块的共享秘密。利用会话密钥和对称密码算法对敏感数据加密及和生成信息认证码,信息认证码由HMAC算法计算敏感数据得到,HMAC的密钥为会话密钥。在链路上传输加密后的敏感数据及信息认证码。
本发明的优点在于:提高了传输数据的秘密性,增强了数据传输保护的安全强度。
附图说明
图1为本发明方法的示意方框图。
图2为可信计算平台结构示意方框图。
图3为可信计算平台中进行数据传输保护的外部实体和可信密码模块的结构示意方框图。
具体实施方式
结合附图和实施例对本发明作进一步说明如下:
如图1所示:为外部实体和可信密码模块之间数据传输保护的一个实施例。它体现了一种基于可信密码模块的数据安全传输方法,其步骤如下:
将可信密码模块载入密码模块密钥EK的私钥PRIEK,并对可信密码模块初始化;然后:
A、用户通过外部实体与可信密码模块创建共享秘密shareSecret生成会话密钥sessionKey;
B、外部实体用会话密钥sessionKey对要传输的数据进行加密并生成信息验证码,tranDataMAC并送给可信密码模块验证;
C、可信密码模块对加密后的传输数据解密并重构传输数据的信息验证码tranDataMAC;
D、用户接受与重构的信息验证码进行验证;
所述的外部实体包括CPU、BIOS ROM、南桥、北桥、硬盘、键盘、显示器、内存。所述的创建共享秘密是外部实体存储有共享秘密shareSecre并生成的随机数callerNonce和可信密码模块存储有共享秘密shareSecret并生成随机数TCMNonce共同创建共享秘密。所述的生成会话密钥是由外部实体向可信密码模块传输敏感数据时首先生成会话密钥,外部实体指定加密后共享秘密信息发送给可信密码模块进行解密和比较,并与可信密码模块生成随机数用HMAC方法生成会话密钥。所述的外部实体使用会话密钥对需要传输的数据进行加密并使用对称方法对数据进行加密生成信息验证码,再将加密后的传输数据和信息验证码送给可信密码模块。所述的可信密码模块对加密后的传输数据和信息验证码解密并重构,并使用会话密钥和对称密码方法再重构传输数据的验证码。所述的可信密码模块对外部实体接受的信息验证码和重构的信息验证码的比较,是相同的则通过,错误的被报告。
按照图1更具体地说:
开始,可信密码模块被载入密码模块密钥EK的私钥PRIEK(方块200),该过程可以由可信密码模块的制造商在生产阶段完成。可信密码模块将PRIEK保存在受保护存储区域内,应保证PRIEK不会泄露到可信密码模块之外,而PRIEK对应的公钥PUBEK则予以公开。
用户使用可信计算平台的第一步是可信密码模块初始化(方块205)。可信密码模块接受到用户的模块初始化请求后,生成一个存储主密钥SMK。SMK是一个对称密钥,其长度由可信密码模块所支持的对称密码算法决定。可信密码模块将SMK保存在受保护存储区域内,应保证SMK不会泄露到可信密码模块之外。
用户请求可信密码模块创建共享秘密shareSecret(方块210)。用户输入一个秘密字符串secretString,例如“123qse.#”,应保证secretString在输入时没有被泄露。然后用公开的密码模块密钥公钥PUBEK对secretString进行加密encSecretString=USymEnc(secretString,PUBEK),并用HASH算法计算secretString的摘要值secretStrDigest=HASH(secretString)。将encSecretString和secretStrDigest发送给可信密码模块。可信密码模块用PRIEK对encSecretString进行解密,secretString’=USymDec(encSecretString,PRIEK),再对解密之后的secretString’进行HASH计算,重构摘要值secretStrDigest’=HASH(secretString’)。可信密码模块比较secretStrDigest’和secretStrDigest的异同,如果不同则创建共享秘密失败,返回错误码。如果相同则secretString就是新创建的共享秘密shareSecret,并生成一个单独的标识符即共享秘密标识shareSecretID,然后用SMK对shareSecretInfo=(shareSecret,shareSecretID)进行加密encShareSecretInfo=SymEnc(shareSecretInfo,SMK),将加密后的encShareSecretInfo及shareSecretID返回给用户,用户存储encShareSecretInfo和shareSecretID及两者之间的对应关系,共享秘密创建完成。可信密码模块可以创建多个共享秘密。
当外部实体需要向可信密码模块传输敏感数据时,首先生成会话密钥(方块215)。外部实体指定共享秘密标识shareSecretID,生成随机数callerNonce,将shareSecretID、加密之后的共享秘密信息encShareSecretInfo和callerNonce发送给可信密码模块。可信密码模块用SMK对encShareSecretInfo进行解密shareSecretInfo=(shareSecret,shareSecretID’)=SymDec(encShareSecretInfo,SMK)。可信密码模块比较shareSecretID和shareSecretID’的异同,如果不同则生成会话密钥失败,返回错误码。如果相同,可信密码模块生成随机数TCMNonce,把shareSecret作为密钥,将callerNonce和TCMNonce连接成一个字符串,用HMAC算法计算这个字符串生成会话密钥sessionKey=HMAC(callerNonce||TCMNonce,shareSecret)。可信密码模块将随机数TCMNonce发送给外部实体,外部实体把创建共享秘密时输入的字符串作为密钥,将callerNonce和TCMNonce连接成一个字符串,用HMAC算法计算这个字符串生成会话密钥sessionKey=HMAC(callerNonce||TCMNonce,shareSecret)。会话密钥创建完成。
外部实体使用会话密钥对需要传输的敏感数据进行加密并生成敏感数据的信息验证码(方块220)。外部实体使用对称算法对传输数据tranData加密encTranData=SymEnc(TranData,sessionKey)。把会话密钥作为HMAC算法的密钥,计算tranData的信息验证码tranDataMAC=HMAC(tranData,sessionKey)。
外部实体将加密后的传输数据encTranData和信息验证码tranDataMAC传送给可信密码模块(方块225)。
可信密码模块对加密后的传输数据解密并重构传输数据的信息验证码(方块230)。可信密码模块使用会话密钥和对称密码算法对加密后的传输数据解密得到tranData=USymEnc(encTranData,sessionKey)。把会话密钥作为HMAC算法的密钥,重构tranData的信息验证码tranDataMAC’=HMAC(tranData,sessionKey)。
可信密码模块比较外部实体传送过来的信息验证码tranDataMAC和重构的信息验证码tranDataMAC’的异同(235),如果两者相同则成功,否则错误被报告。
图2是可信计算平台的结构示意方框图。该平台包括依次连接的CPU(方块000)、图形与存储集中控制器(简称北桥)(方块010)及周边设备集成集中控制器(简称南桥)(方块025),显示器(方块005)与内存(方块015)分别与北桥连接,键盘(方块020)、硬盘(方块040)、BIOS ROM(方块030)及可信密码模块(方块035)分别与南桥连接;其中除可信密码模块外的部分都可以看作是外部实体。
图3是可信计算平台中进行数据传输保护的外部实体和可信密码模块的结构示意方框图。可信计算平台(方块100)包括可信密码模块(方块105)和外部实体(方块115)。其中可信密码模块存储有共享秘密shareSecret并生成随机数TCMNonce(方块110);外部实体存储有共享秘密shareSecret并生成随机数callerNonce(方块120)。可信密码模块与外部实体间通过安全信道(方块125)进行通信,其中安全通信是通过信息加密和数字签名来实现的。
Claims (7)
1.一种基于可信密码模块的数据安全传输方法,其特征在于,它包括下述步骤:
A、用户通过外部实体与可信密码模块创建共享秘密shareSecret生成会话密钥sessionKey;
B、外部实体用会话密钥sessionKey对要传输的数据进行加密并生成信息验证码,tranDataMAC并送给可信密码模块验证;
C、可信密码模块对加密后的传输数据解密并重构传输数据的信息验证码tranDataMAC;
D、用户接受与重构的信息验证码进行验证;
2.根据权利要求1所述的可信密码模块的数据安全传输方法,其特征在于,所述的外部实体包括CPU、BIOS ROM、南桥、北桥、硬盘、键盘、显示器、内存。
3.根据权利要求1所述的可信密码模块的数据安全传输方法,其特征在于,所述的创建共享秘密是外部实体存储有共享秘密shareSecre并生成的随机数callerNonce和可信密码模块存储有共享秘密shareSecret并生成随机数TCMNonce共同创建共享秘密。
4.根据权利要求1所述的可信密码模块的数据安全传输方法,其特征在于,所述的生成会话密钥是由外部实体向可信密码模块传输敏感数据时首先生成会话密钥,外部实体指定加密后共享秘密信息发送给可信密码模块进行解密和比较,并与可信密码模块生成随机数用HMAC方法生成会话密钥。
5.根据权利要求1所述的可信密码模块的数据安全传输方法,其特征在于,所述的外部实体使用会话密钥对需要传输的数据进行加密并使用对称方法对数据进行加密生成信息验证码,再将加密后的传输数据和信息验证码送给可信密码模块。
6.根据权利要求1所述的可信密码模块的数据安全传输方法,其特征在于,所述的可信密码模块对加密后的传输数据和信息验证码解密并重构,并使用会话密钥和对称密码方法再重构传输数据的验证码。
7.根据权利要求1所述的可信密码模块的数据安全传输方法,其特征在于,所述的可信密码模块对外部实体接受的信息验证码和重构的信息验证码的比较,是相同的则通过,错误的被报告。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910063823A CN101651538A (zh) | 2009-09-04 | 2009-09-04 | 一种基于可信密码模块的数据安全传输方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910063823A CN101651538A (zh) | 2009-09-04 | 2009-09-04 | 一种基于可信密码模块的数据安全传输方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101651538A true CN101651538A (zh) | 2010-02-17 |
Family
ID=41673669
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910063823A Pending CN101651538A (zh) | 2009-09-04 | 2009-09-04 | 一种基于可信密码模块的数据安全传输方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101651538A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102646077A (zh) * | 2012-03-28 | 2012-08-22 | 山东超越数控电子有限公司 | 一种基于可信密码模块的全盘加密的方法 |
CN103413101A (zh) * | 2013-08-30 | 2013-11-27 | 梁效宁 | 电子数据防篡改系统和方法 |
CN107506668A (zh) * | 2017-08-31 | 2017-12-22 | 北京计算机技术及应用研究所 | 一种基于通信消息实时认证的u盘访问方法 |
CN108292340A (zh) * | 2016-02-19 | 2018-07-17 | 惠普发展公司,有限责任合伙企业 | 在运行时间期间向安全数据存储设备安全地写入数据 |
CN110378097A (zh) * | 2014-09-26 | 2019-10-25 | 英特尔公司 | 保障传感器数据安全 |
CN112419539A (zh) * | 2019-08-23 | 2021-02-26 | 北京车和家信息技术有限公司 | 一种车辆数据采集方法、装置、云端服务器及车辆 |
CN113630386A (zh) * | 2021-07-15 | 2021-11-09 | 金杉 | 一种加解密方法、装置及其通信系统 |
-
2009
- 2009-09-04 CN CN200910063823A patent/CN101651538A/zh active Pending
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102646077A (zh) * | 2012-03-28 | 2012-08-22 | 山东超越数控电子有限公司 | 一种基于可信密码模块的全盘加密的方法 |
CN103413101A (zh) * | 2013-08-30 | 2013-11-27 | 梁效宁 | 电子数据防篡改系统和方法 |
CN103413101B (zh) * | 2013-08-30 | 2017-04-05 | 梁效宁 | 电子数据防篡改系统和方法 |
CN110378097A (zh) * | 2014-09-26 | 2019-10-25 | 英特尔公司 | 保障传感器数据安全 |
CN108292340A (zh) * | 2016-02-19 | 2018-07-17 | 惠普发展公司,有限责任合伙企业 | 在运行时间期间向安全数据存储设备安全地写入数据 |
US11537757B2 (en) | 2016-02-19 | 2022-12-27 | Hewlett-Packard Development Company, L.P. | Securely writing data to a secure data storage device during runtime |
CN107506668A (zh) * | 2017-08-31 | 2017-12-22 | 北京计算机技术及应用研究所 | 一种基于通信消息实时认证的u盘访问方法 |
CN112419539A (zh) * | 2019-08-23 | 2021-02-26 | 北京车和家信息技术有限公司 | 一种车辆数据采集方法、装置、云端服务器及车辆 |
CN113630386A (zh) * | 2021-07-15 | 2021-11-09 | 金杉 | 一种加解密方法、装置及其通信系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101651543B (zh) | 一种可信计算平台密钥迁移系统及其密钥迁移方法 | |
US9191198B2 (en) | Method and device using one-time pad data | |
CN101640590B (zh) | 一种获取标识密码算法私钥的方法和密码中心 | |
CN102986161B (zh) | 用于对应用进行密码保护的方法和系统 | |
CN110958219B (zh) | 一种面向医疗云共享数据的sm2代理重加密方法与装置 | |
CN102025503B (zh) | 一种集群环境下数据安全实现方法和一种高安全性的集群 | |
WO2006023151A2 (en) | Method of delivering direct proof private keys to devices using an on-line service | |
CN101651538A (zh) | 一种基于可信密码模块的数据安全传输方法 | |
CN101369889A (zh) | 一种对文档进行电子签名的系统和方法 | |
CN107135070A (zh) | Rsa密钥对和证书的注入方法、架构及系统 | |
CN103780391B (zh) | 一种基于签名内容的手写电子签名数据保护方法 | |
CN111327419B (zh) | 基于秘密共享的抗量子计算区块链的方法及系统 | |
CN109951276B (zh) | 基于tpm的嵌入式设备远程身份认证方法 | |
CN111614621A (zh) | 物联网通信方法和系统 | |
CN104268447A (zh) | 一种嵌入式软件的加密方法 | |
TWI476629B (zh) | Data security and security systems and methods | |
CN102811124B (zh) | 基于两卡三码技术的系统验证方法 | |
CN104881595B (zh) | 基于pin码管理的自助远程解锁方法 | |
CN104125239A (zh) | 一种基于数据链路加密传输的网络认证方法和系统 | |
US20230388121A1 (en) | Method for encrypting and decrypting data across domains based on privacy computing | |
CN109412799B (zh) | 一种生成本地密钥的系统及其方法 | |
CN100561913C (zh) | 一种访问密码设备的方法 | |
CN100566239C (zh) | 多级智能密钥装置的密钥传递方法和系统 | |
CN110138544A (zh) | 一种物联网设备的加密解密系统及方法 | |
CN201479144U (zh) | 一种可信计算平台密钥迁移系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20100217 |