CN107786550B - 一种自助设备的安全通信方法、安全通信***及自助设备 - Google Patents
一种自助设备的安全通信方法、安全通信***及自助设备 Download PDFInfo
- Publication number
- CN107786550B CN107786550B CN201710962833.XA CN201710962833A CN107786550B CN 107786550 B CN107786550 B CN 107786550B CN 201710962833 A CN201710962833 A CN 201710962833A CN 107786550 B CN107786550 B CN 107786550B
- Authority
- CN
- China
- Prior art keywords
- key
- security module
- mac
- credible end
- encryption
- 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.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0866—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07F—COIN-FREED OR LIKE APPARATUS
- G07F19/00—Complete banking systems; Coded card-freed arrangements adapted for dispensing or receiving monies or the like and posting such transactions to existing accounts, e.g. automatic teller machines
- G07F19/20—Automatic teller machines [ATMs]
- G07F19/211—Software architecture within ATMs or in relation to the ATM network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0823—Network architectures or network communication protocols for network security for authentication of entities using certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0876—Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3263—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
- H04L9/3268—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Power Engineering (AREA)
- Software Systems (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种自助设备的安全通信方法、安全通信***及自助设备,其中,方法包括:步骤1:安全模块和可信端通过下发证书和验证签名进行交互式身份认证,身份认证通过后安全模块从可信端获取到加密密钥和MAC密钥;步骤2:安全模块接收到业务指令时,识别业务指令是否是预设的关键业务指令,若是,则提取业务指令中的敏感数据,并利用加密密钥和MAC密钥对敏感数据进行加密处理和安全验证;步骤3:若步骤2的安全验证通过,安全模块将业务指令发送给相匹配的关键业务模块。本发明通过上述方法实现了在自助设备上为关键业务模块提供安全服务,提高了自助设备的安全级别。
Description
技术领域
本发明属于安全通信技术领域,具体涉及一种自助设备的安全通信方法、安全通信***及自助设备。
背景技术
随着信息化的发展和金融市场化改革的推进,银行服务方向、营销渠道、客户金融需求等正发生着深刻变化,自助设备也发生了天翻地覆的变化。银行自助设备不仅实现了跨行、跨地区的现金交易业务,还实现了发银行卡、发UKey、打印回单等各种自助业务,银行自助设备的种类从早期的ATM机增加到现在的多功能发卡机、发Key、自助回单机、票款机等多种类型。
然而,针对银行自助设备的犯罪事例屡见不鲜、针对自助设备上盗取用户信息、盗取现金、非法控制取卡、取UKey等的案例也逐渐增加,安全问题成为多方关注的焦点,因此如何解决自助设备的安全问题受到金融界和社会的高度重视。由此可见,自助设备的安全问题不容忽视,需要不断强化安全保护。由于银行自助设备上的关键业务模块本身缺乏基础安全功能,现有的自助设备上的主控模块与关键业务模块之间通信缺乏认证机制和安全保护机制,导致攻击者可以截获并重放通信报文,以此操控关键业务模块,达到吐钞、吐银行卡、吐Ukey、非法盖章等目的。虽然有方案提出针对ATM设备,在机芯(出钞模块、存款模块)中内置安全芯片解决安全问题,但这种方案只能针对新生产的ATM设备,没办法实现已投入使用ATM设备的改造升级,且内置在机芯中的安全芯片定制化方案无法给其他类型的自助设备提供安全服务,无法在不同类型的其他自助设备上推广使用。因此,有必要设计一种可以普遍应用于各类自助设备的安全控制方法和***,可以为自助设备的关键业务模块提供安全通信服务。
发明内容
本发明的目的是提供一种自助设备的安全通信方法、安全通信***及自助设备,实现为自助设备的关键业务模块提供安全通信服务。
第一方面,本发明提供一种自助设备的安全通信方法,包括步骤:
步骤1:安全模块和可信端通过下发证书和验证签名进行交互式身份认证,身份认证通过后所述安全模块从所述可信端获取到加密密钥和MAC密钥;
步骤2:所述安全模块接收到业务指令时,识别所述业务指令是否是预设的关键业务指令,若是,则提取所述业务指令中的敏感数据,并利用所述加密密钥和所述MAC密钥对所述敏感数据进行加密处理和安全验证;
其中,所述可信端和所述安全模块利用所述MAC密钥分别计算出敏感数据对应的MAC值,并验证所述可信端和所述安全模块生成的MAC值是否相同;
所述可信端利用所述加密密钥对所述敏感数据进行加密生成加密数据,所述安全模块利用所述加密密钥对所述加密数据进行解密得到敏感数据,并验证解密后得到的敏感数据相较于所述业务指令中的敏感数据是否变化了;
其中,所述可信端和所述安全模块生成的MAC值相同且所述安全模块解密得到敏感数据未变化时,表示安全验证通过;步骤3:若步骤2的安全验证通过,所述安全模块将所述业务指令发送给相匹配的关键业务模块。
本实施例中优选安全模块从主控模块接收到业务指令,其中,安全模块对业务的处理和审核精确到指令级,支持配置不同的指令体系,其中,不同关键业务模块对应不同的指令体系,优选采用1个字节表示不同的指令体系,例如0x01表示自助取款机ATM,0x02表示自助存取款一体机CRS,0x03表示发卡机,0x04表示回单机。如果有新的自助设备需要提供安全托管服务,则继续增加不同的指令体系;其中,每一套指令体系中又分别设置了关键业务指令,例如自助取款机ATM的出钞指令、自助存取款一体机CRS的出钞指令和存款指令、发卡机的发卡指令、回单机的盖章指令等,因此,安全模块通过主控模块接收到业务指令后,可以快速地识别出是否是关键业务指令。而若接收到业务指令不是关键业务,安全模块则直接转发业务指令给对应关键业务模块来处理,并不影响关键业务模块的正常处理流程,降低对原有业务的性能影响。
首先,安全模块与可信端之间设有逻辑安全通道进而获取到协商的加密密钥和MAC密钥,提高通信安全;其次,主控模块接收到业务指令后,由安全模块基于加密密钥和MAC密钥对业务指令中的敏感数据进行加密处理和完整性验证,进一步提高通信安全,为关键业务模块提供安全功能,保护主控模块与关键业务模块之间的通信安全。
优选地,步骤2中利用所述加密密钥和所述MAC密钥对所述敏感数据进行加密处理和安全验证的过程如下:
步骤21:所述安全模块生成第二随机数RND2,并将所述第二随机数RND2、所述敏感数据和MAC请求发送给所述可信端;
步骤22:所述可信端利用加密密钥、第二随机数RND2、敏感数据计算得到加密数据EncData以及使用MAC密钥、第二随机数RND2、敏感数据计算MAC值,并将所述加密数据EncData和所述可信端计算的MAC值发送给所述安全模块;
其中,用MacDataSER表示可信端计算的MAC值;
步骤23:所述安全模块依据所述业务指令中的敏感数据和第二随机数RND2并使用MAC密钥计算出MAC值,并比较所述安全模块计算的MAC值MacDataTER与从所述可信端接收的MAC值MacDataSER是否一致,若不一致,则发送拒绝本次业务交易的回复给所述可信端;
其中,用MacDataTER表示安全模块计算的MAC值;
步骤24:若所述安全模块计算的MAC值MacDataTER与从所述可信端接收的MAC值MacDataSER一致,所述安全模块利用所述加密密钥解密所述加密数据EncData得到敏感数据,并判断解密后的敏感数据与所述业务指令中的敏感数据是否一致,若一致,步骤2中的安全验证通过,若不一致,则发送拒绝本次业务交易的回复给所述可信端。
其中,安全模块发送给可信端的MAC请求的目的在于让可信端计算出MAC值,拒绝本次业务交易的回复也采用上述相同的方式加密和计算MAC值。采用上述方式实现了对关键业务指令进行加密和完整性保护,并且可以防重放攻击,保障关键业务的安全。
优选地,所述安全模块生成第二随机数RND2或者所述安全模块上电之前,还执行对随机数自检步骤;
所述随机数自检过程如下:
首先,发送取1k字节的随机数的指令,若取随机数失败,则返回错误码;若取随机数成功,则依次执行单比特频数检测、游程总数检测、自相关检测;
若所述单比特频数检测、游程总数检测、自相关检测全部通过,随机数自检成功,否则,自检失败,随机数生成功能不可使用。
其中,优选单比特频数检测、游程总数检测、自相关检测中的显著性水平ɑ均取值为0.01。通过随机数自检中有效性和随机数质量的检测来保证安全模块生成随机数的随机性,杜绝黑客的重复攻击。
优选地:步骤1中所述安全模块从所述可信端获取到加密密钥和MAC密钥的过程如下:
步骤11:所述可信端生成加密密钥和MAC密钥并对所述加密密钥和MAC密钥进行加密和签名得到密钥密文和密钥签名,并将所述密钥密文和密钥签名发送给所述安全模块;
步骤12:所述安全模块对所述密钥签名进行验签,若所述密钥签名验签通过,则对所述密钥密文进行解密得到加密密钥和MAC密钥;
其中,步骤11的过程如下:
步骤111,所述可信端生成加密密钥和MAC密钥;
步骤112,所述可信端使用安全模块的公钥PKTER加密所述加密密钥和MAC密钥得到密钥密文Enc(KEYENC|KEYMAC)PKTER;
其中,KEYENC表示加密密钥,KEYMAC表示MAC密钥;
步骤113,所述可信端在所述密钥密文前面连接第一随机数RND1得到数据ENC_DATA1=RND1|Enc(KEYENC|KEYMAC)PKTER;
步骤114,所述可信端利用自身私钥SKSER对数据ENC_DATA1进行签名得到密钥签名;
其中得到的密钥签名的签名值SIG_DATA=Sig(ENC_DATA1)SKSER;
步骤115,所述可信端将所述密钥密文Enc(KEYENC|KEYMAC)PKTER和所述密钥签名发送所述安全模块;
其中,步骤12的过程如下:
步骤121,所述安全模块读取自身保存的第一随机数RND1,并在所述密钥密文前面连接第一随机数RND1,得到数据ENC_DATA2=RND1|Enc(KEYENC|KEYMAC)PKTER;
步骤122,所述安全模块利用可信端公钥、ENC_DATA2对所述密钥签名进行验签;
其中,对密钥签名的签名值SIG_DATA进行验签;
步骤123,若步骤122的验签通过,所述安全模块使用自身私钥解密所述密钥密文得到加密密钥和MAC密钥,并发送逻辑安全通道建立成功的消息至可信端,若验签失败,则发送加密密钥和MAC密钥下发失败的信息至可信端。
并发送逻辑安全通道建立成功的消息至可信端,若验签失败,则发送加密密钥和MAC密钥下发失败的信息至可信端。
其中,数据ENC_DATA1是待签名的原数据,数据ENC_DATA2是用于验签的原数据,正常情况下,数据ENC_DATA1与数据ENC_DATA2相同。
可信端与安全模块完成身份认证后,再由可信端发送加密密钥和MAC密钥给安全模块,且对加密密钥和MAC密钥进行了加密处理以及验证处理,以防止下发的加密密钥和MAC密钥被攻击或者篡改。此外,当可信端和安全模块相互身份认证通过且安全模块从可信端获取到加密密钥和MAC密钥,则表示可信端和安全模块之间的逻辑安全通道建立成功,其中逻辑安全通道区别于物理通道,在物理链路上安全模块和可信端并没有直接相连,但通过身份认证和密钥交换后,它们之间的通信链路就加密和受保护了,其他通信节点不能对数据进行任何改动,相当于是透明节点,所以从逻辑上看,就是安全模块和可信端的直接通信链路,故视为逻辑安全通道。
优选地,步骤1中安全模块和可信端通过下发证书和验证签名进行交互式身份认证的过程如下:
步骤101,所述安全模块向所述可信端请求第一随机数RND1;
步骤102,所述安全模块使用自身私钥对第一随机数RND1进行签名得到安全模块签名,将安全模块签名和预存的安全模块证书发送给可信端;
步骤103,所述可信端调用加密机用CA证书验证安全模块证书的有效性以及对安全模块签名进行验签;
步骤104,若步骤103中安全模块证书有效且验签通过,所述可信端利用自身私钥对第一随机数RND1进行签名得到可信端签名,并将可信端签名和预存的可信端证书发送给所述安全模块;
步骤105,所述安全模块利用CA证书验证可信端证书的有效性并对可信端签名进行验签,若可信端证书有效且可信端签名的验签通过,则表示身份认证完成。
利用证书和签名验证来实现安全模块和可信端之间的身份认证。应当理解,安全模块和可信端之间完成身份认证,且安全模块从可信端获取到加密密钥和MAC密钥后表示安全模块和可信端之间建立了特定的逻辑安全通道。
优选地,所述安全模块的公私钥对为非对称SM2密钥对,其中所述安全模块的公钥发送给CA中心生成所述安全模块证书;
所述可信端的公私钥对为非对称SM2密钥对,其中所述可信端的公钥发送给CA中心生成所述可信端证书;
所述加密密钥和MAC密钥为对称SM4密钥。
本通信方法尤其涉及到CA根公私钥对、安全模块的公私钥对、可信端的公私钥对以及加密密钥和MAC密钥,其中CA根公钥由合法的第三方CA中心产生,用于签发CA证书,CA证书用于签发用户证书,用户证书包括了安全模块证书和可信端证书,用户证书和用户的私钥是用户合法身份的唯一标识。其中,CA根公私钥对为非对称SM2密钥对,CA根公钥以CA根公钥证书的形式进行分发至用户,CA根公钥证书由CA根私钥进行数字签名,用以验证CA颁发的其他证书的合法性,由于用户证书采用CA根私钥签名,因此可以使用CA证书验证用户证书的合法性。
可信端公私钥对由可信端自己生成,可信端私钥由可信端存储并保密,可信端的公钥生成后发送给CA中心生成可信端证书,并由可信端保存,用以代表可信端的身份。可信端证书可以由CA证书进行验证;
安全模块公私钥对由安全模块生成,安全模块私钥保存在安全模块内置的安全芯片中,不能够通过任何手段导出,只能在安全芯片内部进行数字签名的操作,用来生成代表安全模块身份的数字签名。安全模块公钥生成后发送给CA中心生成安全模块证书,安全模块证书由CA根私钥签名,代表安全模块的身份;
加密密钥和MAC密钥由可信端生成,使用安全模块的公钥加密下发,并使用可信端的使用签名保护。
第二方面,本发明提供一种自助设备的安全通信***,包括自助设备和可信端,所述自身设备与可信端通讯连接,所述自助设备包括主控模块、安全模块和关键业务模块;
其中,所述主控模块与所述关键业务模块分别与所述安全模块通信;
所述安全模块与所述可信端之间设有特定的逻辑安全通道,所述安全模块和所述可信端利用逻辑安全通道的过程进行交互式身份认证并使所述安全模块从所述可信端获取到加密密钥和MAC密钥;
所述安全模块,用于接收到业务指令并识别所述业务指令是否为预设的关键业务指令,若是,则提取所述业务指令中的敏感数据,并利用所述加密密钥和所述MAC密钥对所述敏感数据进行加密处理和安全验证;
其中,所述可信端和所述安全模块均利用所述MAC密钥分别计算出敏感数据对应的MAC值,所述安全模块用于验证所述可信端和所述安全模块生成的MAC值是否相同;
所述可信端用于利用所述加密密钥对所述敏感数据进行加密生成加密数据,所述安全模块用于利用所述加密密钥对所述加密数据进行解密得到敏感数据,并验证解密后得到的敏感数据相较于所述业务指令中的敏感数据是否变化了;
其中,所述可信端和所述安全模块生成的MAC值相同且所述安全模块解密得到敏感数据未变化时,表示安全验证通过;
所述安全模块用于安全验证通过时,将所述业务指令发送给相匹配的关键业务模块。
优选安全模块和关键业务模块均放置于自主识别的特定保险箱结构中,保险箱设有现有的攻击检测机制,当检测到物理攻击时,安全模块接收到保险箱的报警信息,并将安全模块内存储的密钥、敏感数据自毁。此外,安全模块为单片机设备,具有看门狗功能,若程序异常,安全模块自动重新上电,安全模块缓存的密钥、证书、敏感数据自动清空。
优选地,所述安全模块包括主控单元、安全单元和通讯单元;
其中,所述安全单元以及所述通讯单元均与所述主控单元连接;
所述通讯单元,用于与所述关键业务模块、所述主控模块通讯;
所述安全单元用于生成第二随机数RND2;
所述通讯单元用于将所述第二随机数RND2、所述敏感数据和MAC请求通过所述主控模块发送给所述可信端;
所述可信端用于利用加密密钥、第二随机数RND2、敏感数据计算得到加密数据EncData以及使用MAC密钥、第二随机数RND2、敏感数据计算MAC值,并将所述加密数据EncData和所述可信端计算的MAC值通过所述主控模块发送给所述通讯单元;
其中,用MacDataSER表示可信端计算的MAC值;
所述安全单元用于依据所述业务指令中的敏感数据和第二随机数RND2并使用MAC密钥计算出MAC值,并比较所述安全模块计算的MAC值MacDataTER与所述从可信端接收的MAC值MacDataSER是否一致,若不一致,所述通讯单元发送拒绝本次业务交易的回复所述主控模块,所述主控模块转发回复给所述可信端;
其中,用MacDataTER表示安全单元计算的MAC值;
所述安全单元用于若所述安全模块计算的MAC值MacDataTER与所述从可信端接收的MAC值MacDataSER一致时,利用所述加密密钥解密所述加密数据EncData得到敏感数据,并判断解密后的敏感数据与所述业务指令中的敏感数据是否一致,若一致,安全验证通过,若不一致,所述通讯单元发送拒绝本次业务交易的回复所述主控模块,所述主控模块再转发回复给所述可信端。
主控单元为主控芯片,用于负责各个单元的协调工作,通信指令解析、安全控制的功能;
安全单元采用安全芯片,并以安全芯片为核心设计辅助功能,其包括加解密、完整性校验、身份不可抵赖、交易数据不可重复、敏感数据的安全存储等功能。安全芯片内置存储器保护单元、程序和数据共享FLASH存储器、加密模块、硬件加密协处理器CCP、真随机数发生器RNG等来实现各类辅助功能。
通讯单元采用UART通讯,两路输入,一路输出。通讯单元还可以根据实际需求,扩展其他接口,实现自主切换通信模式。
安全模块还包括交互单元和电源单元,其中电源单元外接电源,并转换为3.3v直流电压给安全模块供电;交互单元用于提供人机交互功能,例如指示灯、按键和蜂鸣器。
优选地,所述安全模块和所述可信端完成身份认证后,所述可信端用于生成加密密钥和MAC密钥并对所述加密密钥和MAC密钥进行加密和签名得到密钥密文和密钥签名,并将所述密钥密文和密钥签名发送给所述通讯单元;
所述安全单元对所述密钥签名进行验签,若所述密钥签名验签通过,则对所述密钥密文进行解密得到加密密钥和MAC密钥;
其中,所述可信端用于生成加密密钥和MAC密钥;
所述可信端用于依据安全模块的公钥PKTER加密所述加密密钥和MAC密钥得到密钥密文Enc(KEYENC|KEYMAC)PKTER;
其中,KEYENC表示加密密钥,KEYMAC表示MAC密钥;
所述可信端用于在所述密钥密文前面连接第一随机数RND1,得到ENC_DATA1=RND1|Enc(KEYENC|KEYMAC)PKTER;
所述可信端用于利用自身私钥对ENC_DATA1进行签名,得到密钥签名;
其中,密钥签名的签名值SIG_DATA=Sig(ENC_DATA1)SKSER;
所述可信端用于通过所述主控模块将所述密钥密文Enc(KEYENC|KEYMAC)PKTER和所述密钥签名发送所述通讯单元;
其中,所述安全单元用于读取自身保存的第一随机数RND1,并在密钥密文前面连接第一随机数RND1,得到ENC_DATA2=RND1|Enc(KEYENC|KEYMAC)PKTER;
所述安全单元用于依据可信端公钥、ENC_DATA2对所述密钥签名进行验签;
其中,对密钥签名的签名值SIG_DATA进行验签;
若所述密钥签名的验签通过,所述安全单元用于使用自身私钥解密密钥密文得到加密密钥和MAC密钥。
第三方面,本发明还提供一种自助设备,包括主控模块、安全模块和关键业务模块;
其中,所述主控模块与所述关键业务模块分别与所述安全模块通信;
所述安全模块与可信端之间设有特定的逻辑安全通道,
所述安全模块和所述可信端利用逻辑安全通道的过程进行交互式身份认证并使所述安全模块从所述可信端获取到加密密钥和MAC密钥;
所述安全模块,用于接收到业务指令并识别所述业务指令是否为预设的关键业务指令,若是,则提取所述业务指令中的敏感数据,并利用所述加密密钥和所述MAC密钥对所述敏感数据进行加密处理和安全验证;
其中,所述可信端和所述安全模块均利用所述MAC密钥分别计算出敏感数据对应的MAC值,所述安全模块用于验证所述可信端和所述安全模块生成的MAC值是否相同;
所述可信端用于利用所述加密密钥对所述敏感数据进行加密生成加密数据;
所述安全模块用于利用所述加密密钥对可信端生成的加密数据进行解密得到敏感数据,并验证解密后得到的敏感数据与所述业务指令中的敏感数据相比较是否变化了;
其中,所述可信端和所述安全模块生成的MAC值相同且所述安全模块解密得到敏感数据未变化时,表示安全验证通过;
所述安全模块用于安全验证通过时,将所述业务指令发送给相匹配的关键业务模块。
有益效果
本发明提供了一种自助设备的安全通信方法、安全通信***及自助设备,通过在关键业务模块和主控模块之间设置安全模块,具体通过安全模块与可信端之间的完成交互身份认证后使安全模块获取到加密密钥和MAC密钥后,再对识别出的关键业务指令依据加密密钥和MAC密钥来实现加密和安全、完整性校验,待校验通过后才将关键业务指令转发给关键业务模块来执行,进而实现主控模块、关键业务模块以及可信端之间的安全通信,尤其是为不具备安全功能的关键业务模块提供安全服务,提高银行自助设备的安全性能。上述安全通信方法对不同类别的关键业务指令的处理模式相同,因此安全模块通过上述通信方法能够为各类关键业务模块提供安全服务功能,且不需要对关键业务模块进行改变或者升级。
其中,安全模块针对业务处理精确到指令级,支持配置不同的指令体系,进而适用于各类自助设备以及多种关键业务模块的自助设备,可以建立多套指令体系来支撑多种关键业务,通过参数配置灵活地切换不同的指令体系,可复用性高;其中对于关键业务指令进行安全性处理,对于非关键业务指令执行直接转发功能,降低对原有业务的性能影响,使其应用性能更加,尤其针对不具备安全功能的自助设备进行安全改造时,不需要对关键业务模块进行改造,仅仅需要增加安全模块,降低了安全性能改造成本。
此外,安全模块和关键业务模块均置于自助设备的保险装置中,防止他人恶意损坏安全模块,同时兼具自毁功能,遇到攻击时安全模块销毁所存储的密钥和敏感数据,防止他人盗取机密信息。
附图说明
图1是本发明实施例提供的一种自助设备的安全通信***的架构图;
图2是本发明实施例提供的一种安全通信***中可信端、主控模块和安全模块的关系示意图;
图3是本发明实施例提供的一种自助设备的安全通信方法的流程图;
图4是本发明实施例提供的关键业务指令体系;
图5是本发明实施例提供的密钥层级关系示意图;
图6是本发明实施例提供的证书初始化流程图。
图7是本发明实施例提供的安全模块的框架图。
具体实施方式
下面将结合实施例对本发明做进一步的说明。本实施例中,可信端为银行服务器。如图1所示,本发明提供的一种自助设备的安全通信***包括自助设备以及与自助设备通信的银行后台,其中,银行后台包括银行服务器和加密机。自助设备与银行服务器通讯连接,自助设备包括主控模块、安全模块、关键业务模块、密码键盘和其他模块,其中,安全模块、密码键盘和其他模块均与主控模块通信,关键业务模块通过安全模块与主控模块通信。如图2所示,安全模块与可信端之间设有特定的逻辑安全通道,安全模块与主控模块、主控模块与可信端之间设有物理通道,安全模块通过所述主控模块与所述可信端通信。本发明提供一种自助设备的安全通信方法运行于上述***,具体的,如图3所示,安全通信方法包括如下步骤:
步骤1:安全模块和可信端通过下发证书和验证签名进行交互式身份认证,身份认证通过后安全模块从可信端获取到加密密钥和MAC密钥;
步骤2:安全模块接收到业务指令时,识别业务指令是否是预设的关键业务指令,若是,则提取业务指令中的敏感数据,并利用加密密钥和MAC密钥对敏感数据进行加密处理和安全验证;
步骤3:若步骤2的安全验证通过,安全模块将业务指令发送给相匹配的关键业务模块。
其中,步骤1具体包括如下步骤:
步骤10:安全模块和可信端通过下发证书和验证签名进行交互式身份认证,若身份认证通过,执行下一步骤;
步骤11:可信端生成加密密钥和MAC密钥并对加密密钥和MAC密钥进行加密和签名得到密钥密文和密钥签名,并将密钥密文和密钥签名发送给安全模块;
步骤12:安全模块对密钥签名进行验签,若密钥签名验签通过,则对密钥密文进行解密得到加密密钥和MAC密钥。
其中步骤11和步骤12可以概括为步骤1中的安全模块从可信端获取到加密密钥和MAC密钥。
其中,步骤10中安全模块和可信端通过下发证书和验证签名进行交互式身份认证的过程如下所示:
步骤101,安全模块向可信端请求第一随机数RND1;
其中,请求随机数用于保护此次业务交易不被重放攻击,所请求的随机数RND为8字节的随机数,本实施例中,可信端调用加密机产生8字节的随机数RND。
步骤102,安全模块使用自身私钥对第一随机数RND1进行签名得到安全模块签名,将安全模块签名和预存的安全模块证书发送给可信端;
其中,安全模块证书CertTER用于唯一标识安全模块的身份,安全模块签名用于防抵赖,其中安全模块签名包括安全模块的签名值和签名ID字符。
本实施例中优选步骤102的过程如下:
(1)安全模块使用自身私钥对第一随机数RND1计算SM2算法签名,其中签名ID字符值取值为“Security managed hardware module”,对一个的ASCII码值为“5365637572697479206D616E61676564206861726477617265206D6F64756C65”,从而计算得到的签名值为SM2SigSKTER(RND1),
(2)将安全模块证书CertTER、签名ID字符值、签名值SM2SigSKTER(RND1)给主控模块;
(3)主控模块将安全模块证书CertTER、签名ID字符值、签名值SM2SigSKTER(RND1)转发给可信端。
步骤103,可信端调用加密机用CA证书验证安全模块证书的有效性以及对安全模块签名进行验签;
步骤104,若步骤103中安全模块证书有效且验签通过,可信端利用自身私钥对第一随机数RND1进行签名得到可信端签名,并将可信端签名和预存的可信端证书发送给安全模块;
其中,上述步骤103-104的具体过程如下:
(1)可信端调用加密机用CA证书验证安全模块证书CertTER的有效性,安全模块证书CertTER的有效性验证通过则进入下一步,否则回复安全模块证书CertTER验证失败;其中,证书的有效性包括证书是否由合法CA签发、证书身份是否是安全模块、证书是否已经过期等。
(2)安全模块证书CertTER的有效性验证成功后,可信端调用加密机存储的安全模块的公钥、加密机内存储的第一随机数RND1作为原数据,接收的签名ID字符值为ID值,对安全模块签名值SM2SigSKTER(RND1)进行验签,安全模块签名的验签通过则进入下一步,否则回复安全模块签名的验签失败。
(3)当检测到安全模块证书CertTER有效且安全模块签名的验签通过时,则表示安全模块的身份合法,即安全模块的身份认证通过。然后,可信端从加密机读取第一随机数RND1,使用加密机内存储的可信端的私钥计算SM2算法签名,签名ID字符值取值为“Bankserver”,对应的ASCII码值为“42616E6B20736572766572”,并调用加密机对第一随机数RND1签名,得到可信端的签名值SM2SigSKSER(RND1);
(4)将可信端证书CertSER、可信端的签名值SM2SigSKSER(RND1)和签名ID字符值发送给主控模块,再由主控模块转发给安全模块。其中,可信端签名包括可信端的签名值SM2SigSKSER(RND1)和签名ID字符值。
步骤105,安全模块利用CA证书验证可信端证书CertSER的有效性并对可信端签名进行验签,若可信端证书CertSER有效且可信端签名的验签通过,则表示身份认证完成。
其中,上述步骤105的过程如下:
(1)安全模块利用CA证书验证可信端证书CertSER的有效性,若可信端证书CertSER的有效性验证通过进入下一步,否则回复可信端证书CertSER验证失败;
(2)可信端证书CertSER的有效性验证成功后,安全模块依据可信端公钥、安全模块内存储的第一随机数RND1、接收的签名ID字符值以及可信端的签名值SM2SigSKSER(RND1)进行验签,若可信端的签名的验签通过,则表示可信端身份合法,否则回复可信端签名的验签失败。
其中,步骤11的过程如下:
步骤111,可信端生成加密密钥和MAC密钥;
其中,可信端调用加密机生成加密密钥KEYENC和MAC密钥KEYMAC;
步骤112,可信端使用安全模块的公钥PKTER加密该加密密钥和MAC密钥得到密钥密文Enc(KEYENC|KEYMAC)PKTER;
步骤113,可信端在密钥密文前面连接第一随机数RND1,得到数据ENC_DATA1=RND1|Enc(KEYENC|KEYMAC)PKTER;
步骤114,可信端利用自身私钥SKSER对ENC_DATA1进行签名,得到密钥签名;
其中,签名ID字符值为“Encryption key”,对应的ASCII码为“456E6372797074696F6E206B6579”,得到签名值SIG_DATA如下:
SIG_DATA=SM2Sig(ENC_DATA1)SKSER
步骤115,可信端将密钥密文和密钥签名发送安全模块;
其中,密钥签名包括签名值SIG_DATA和签名ID字符值。
其中,步骤12的过程如下:
步骤121,安全模块读取自身保存的第一随机数RND1,并在密钥密文前面连接第一随机数RND1,得到数据ENC_DATA2=RND1|Enc(KEYENC|KEYMAC)PKTER;
步骤122,安全模块利用可信端公钥、ENC_DATA2对密钥签名进行验签;
步骤123,若步骤122的验签通过,安全模块使用自身私钥解密密钥密文得到加密密钥和MAC密钥,并发送逻辑安全通道建立成功的消息至可信端,若验签失败,则发送加密密钥和MAC密钥下发失败的信息至可信端。
通过上述建立了安全模块与可信端之间的逻辑安全通道,其具体完成了安全模块和可信端身份认证以及促使安全模块从可信端获取到加密密钥和MAC密钥。
其中,基于步骤1建立的逻辑安全通道,步骤2中利用加密密钥和MAC密钥对敏感数据进行加密处理和安全验证的过程如下:
步骤21:安全模块生成第二随机数RND2,并将第二随机数RND2、敏感数据和MAC请求通过主控模块发送给可信端;
步骤22:可信端利用加密密钥、第二随机数RND2、敏感数据计算得到加密数据EncData以及使用MAC密钥、第二随机数RND2、敏感数据计算MAC值MacDataSER,并将加密数据EncData和可信端计算的MAC值MacDataSER发送给安全模块;
其中,本实施例中优选加密密钥和MAC密钥为对称SM4密钥,故EncData和MacDataSER表示为如下所示:
EncData=SM4Enc(RND2|Data),MacDataSER=SM4Enc(RND2|Data)。
其中,RND2表示第二随机数。
步骤23:安全模块依据业务指令中的敏感数据和第二随机数RND2并使用MAC密钥计算出MAC值MacDataTER,并比较安全模块计算的MAC值MacDataTER与所述从可信端接收的MAC值MacDataSER是否一致,若不一致,则发送拒绝本次业务交易的回复给可信端;
其中,安全模块调取业务指令中的敏感数据以及本次生成的第二随机数RND2,使用安全通道协商的MAC密钥KEYMAC计算MAC值MacDataTER,其中MacDataTER表示为如下所示:
MacDataTER=SM4Enc(RND2|Data)。
步骤24:若安全模块计算的MAC值MacDataTER与从可信端接收的MAC值MacDataSER一致,安全模块利用加密密钥解密加密数据EncData得到敏感数据,并判断解密后的敏感数据与业务指令中的敏感数据是否一致,若一致,步骤2中的安全验证通过,若不一致,则通过主控模块发送拒绝本次业务交易的回复给可信端。
需要说明的是,安全模块对业务的处理和审核精确到指令级,支持配置不同的指令体系,其中,不同关键业务模块对应不同的指令体系,每一套指令体系中又分别设置了关键业务指令。如图4所示,不同关键业务模块设置了关键业务指令,针对关键业务指令需要经过安全性验证后再转发至关键业务模块,而非关键业务指令,则有安全模块直接送至关键模块。此外,安全模块还可以检测业务指令是否是符合特定格式要求,若不满足,则视为非合法指令。
本通信方法主要涉及CA根公私钥对、安全模块的公私钥对、可信端的公私钥对以及加密密钥和MAC密钥,安全通道工作密钥,其中安全通道工作密钥是加密密钥和MAC密钥的统称,其层级关系如图5所示,密钥的层级关系表示密钥的信任链关系。优选CA根公私钥对为非对称SM2密钥对,可信端的公私钥对为非对称SM2密钥对,安全模块的公私钥对为非对称SM2密钥对,加密密钥和MAC密钥为对称SM4密钥。
本通信方法中的数据分为两种数据包:安全通道指令和关键业务模块业务指令,安全通道指令实现可信端与安全模块之间的安全验证、密钥交互等。由于安全控制指令与关键业务模块的业务指令均在一个通道内传输,因此需要对指令进行重新封装,同时对回送的数据也要按照协议封装后回送。此外,关键业务模块业务指令和回送的数据在通信协议中均以Data数据单元来传输。其中通信协议如下表1所示:
表1:
为了进一步提高安全模块的安全性能,本实施例中优选安全模块生成第二随机数RND2或者安全模块上电之前,还执行对随机数自检步骤;
其中,随机数自检过程如下:
首先,发送取1k字节的随机数的指令,若取随机数失败,则返回错误码;若取随机数成功,则依次执行单比特频数检测、游程总数检测、自相关检测;
若单比特频数检测、游程总数检测、自相关检测全部通过,随机数自检成功,否则,自检失败,随机数生成功能不可使用。
单比特频数检测的过程:取显著性水平ɑ=0.01,如果满足,则认为待检序列通过单比特频数检测;
游程总数检测的过程:取显著性水平ɑ=0.01,如果满足,则认为待检序列通过游程总数检测;
自相关检测的过程:取显著性水平ɑ=0.01,如果满足,则认为待检序列通过自相关检测。
本实施例中还优选对密码算法进行有效性自检,其中分为:SM2算法有效性自检、SM3算法有效性自检、SM4算法有效性自检。
其中,SM2算法有效性自检的过程为:在安全模块内部预先存储一组正确的签名数据,包括SM2公私钥对、签名数据、签名结果和签名ID,安全模块开机上电或需要使用SM2算法时,调用自检程序,使用预存的正确数据进行验签运算,如果验签通过则继续进行运算,如果验签失败则返回自检失败错误码。
SM3算法有效性自检的过程为:在安全模块内部预先存储一组正确的杂凑数据,包括消息数据和杂凑值,安全模块开机上电或需要使用SM3算法时,调用自检程序,使用预存的正确数据进行杂凑运算,对比计算的杂凑值与预存的杂凑值是否相同,如果相同则继续进行运算,如果不同则返回自检失败错误码。
SM4算法有效性自检的过程为:在安全模块内部预先存储一组正确的SM4加密数据,包括明文、密文和密钥,安全模块开机上电或需要使用SM4算法时,调用自检程序,使用密钥对密文进行解密,对比解密的明文与预存的明文是否相同,如果相同则继续进行运算,如果不同则返回自检失败错误码。
此外,安全模块采用基于PKI体系的身份认证技术,使用数字证书进行安全托管硬件模块与可信端的双向身份认证。并且对写入模块的相关设备信息、数字证书进行初始化功能,如图6所示为数字证书初始化流程。
基于本发明提供的一种自助设备的安全通信***,从硬件设置上来看,如图7所示,安全模块包括主控单元、安全单元、通讯单元和电源单元以及交互单元。其中,安全单元、通讯单元和电源单元以及交互单元均与主控单元连接,主控单元用于主控芯片CPU,用于负责各个单元的协调工作,通信指令解析、安全控制的功能;通讯单元用于与关键业务模块、主控模块通讯;安全单元采用安全芯片提供基础功能,并以安全芯片为核心设计辅助功能,基础安全功能包括通信数据的加解密处理、完整性检验、身份不可抵赖、交易数据不可重复、敏感数据的安全存储等。安全芯片具有存储器保护单元(MPU),对存储器的访问权限进行保护;程序和数据共享FLASH存储器。安全芯片内部实现了国家商用密码产品所需的SSF33、SM1、SM4等算法专用加密模块;安全芯片提供32位硬件加密协处理器CCP,可用于实现多种公钥算法(如RSA、ECC或SM2)及摘要算法(如SM3、SHA-1等)。除此之外,安全芯片内嵌32位真随机数发生器RNG,为安全模块提供真随机数。
基于上述各个单元的硬件设置,各个单元在通信过程中的功能如下所示:
安全模块,用于接收到业务指令并识别业务指令是否为预设的关键业务指令,若是,则提取业务指令中的敏感数据,并利用加密密钥和MAC密钥对敏感数据进行加密处理和安全验证;
安全模块用于安全验证通过时,将业务指令发送给相匹配的关键业务模块。
具体的,安全模块对业务指令中的敏感数据进行加密处理与安全验证的过程中各个单元的功能如下所示:
安全单元用于生成第二随机数RND2;
通讯单元用于将第二随机数RND2、敏感数据和MAC请求通过主控模块发送给可信端;
可信端用于利用加密密钥、第二随机数RND2、敏感数据计算得到加密数据EncData以及使用MAC密钥、第二随机数RND2、敏感数据计算MAC值MacDataSER,并将加密数据EncData和MacDataSER通过主控模块发送给通讯单元;
安全单元用于依据业务指令中的敏感数据和第二随机数RND2并使用MAC密钥计算出MAC值MacDataTER,并比较安全模块计算的MacDataTER与从可信端接收的MAC值MacDataSER是否一致,若不一致,通讯单元发送拒绝本次业务交易的回复主控模块,主控模块转发回复给可信端;
安全单元用于若安全模块计算的MacDataTER与从可信端接收的MAC值MacDataSER一致时,利用加密密钥解密加密数据EncData得到敏感数据,并判断解密后的敏感数据与业务指令中的敏感数据是否一致,若一致,安全验证通过,若不一致,通讯单元发送拒绝本次业务交易的回复主控模块,主控模块再转发回复给可信端。
此外,建立逻辑安全通道的过程,安全模块和可信端用于对彼此的身份进行认证;其中,安全模块和可信端通过主控模块相互发送证书和签名,并对证书的有效性和签名进行验证从而完成对身份的认证;具体的,建立逻辑安全通道的过程,可信端和安全模块中各个单元的功能如下所示:
身份认证通过后,可信端用于生成加密密钥和MAC密钥并对加密密钥和MAC密钥进行加密和签名得到密钥密文和密钥签名,将密钥密文和密钥签名发送给通讯单元;
安全单元对密钥签名进行验签,若验签通过,则对密钥密文进行解密得到加密密钥和MAC密钥;
其中,可信端用于生成加密密钥和MAC密钥;
可信端用于使用安全模块的公钥PKTER加密该加密密钥和MAC密钥得到密钥密文Enc(KEYENC|KEYMAC)PKTER;
其中,KEYENC表示加密密钥,KEYMAC表示MAC密钥;
可信端用于在密钥密文前面连接第一随机数RND1,得到数据ENC_DATA1=RND1|Enc(KEYENC|KEYMAC)PKTER;
可信端用于利用自身私钥对ENC_DATA1进行签名,得到密钥签名;
其中,密钥签名的签名值SIG_DATA=Sig(ENC_DATA1)SKSER;
可信端用于通过主控模块将密钥密文Enc(KEYENC|KEYMAC)PKTER和密钥签名发送通讯单元;
其中,安全单元用于在密钥密文前面连接第一随机数RND1,得到数ENC_DATA2=RND1|Enc(KEYENC|KEYMAC)PKTER;
安全单元用于利用可信端公钥、ENC_DATA2、密钥签名SIG_DATA进行验签;
若验签通过,安全单元用于使用自身私钥解密密钥密文得到加密密钥和MAC密钥。
需要说明的是,安全模块防止机密信息泄露,采用看门狗和自毁两种方式进行防护。
其中,由于安全模块属于单片机设备,因此具有看门狗功能,看门狗启动后,如果程序发生异常,安全模块设备会自动重新上电。这时安全模块缓存的会话密钥、数字证书、用户敏感信息等都会自动清空,以此保证模块设备正常运行。
安全模块与关键业务模块均放置于特殊的保险箱中,保险箱具有攻击检测机制,当发现有物理攻击时,安全模块接收到保险箱的警报信息,可配合完成敏感信息(如密钥、用户敏感数据等)的自毁,即擦除敏感信息存储区域。且优选安全模块与关键业务模块为可拆卸的物理连接。
下述以自助设备上的一个关键业务模块(发卡模块)为例,针对该关键业务模块提供安全托管服务。实现过程如下:
发卡机的关键业务模块为发卡模块,关键的业务指令为发卡指令,XX表示16进制数据,范围为00-FF,下面是要执行发卡指令操作的步骤:
A:安全模块接收到需要操作发卡模块的发卡指令,则向发送方请求随机数;
安全模块发送:FF 01 00 00 00
B:主控模块收到取随机数请求,转发请求至可信端,可信端向安全模块发送第一随机数,安全模块回送安全模块证书和用安全模块证书对应的私钥对第一随机数签名的数据,传送指令如下;
可信端回复:FF 02 00 00 08 XX XX XX XX XX XX XX XX
安全模块发送:FF 03 00 00 XX XX……XX XX……XX(证书+签名)
C:可信端发送自身证书与数字签名,安全模块验证可信端证书是否合法,并对签名值进行验签,验证通过后请求数据加密和完整性保护的密钥,传送指令如下;
可信端回复:FF 04 00 00 XX XX……XX XX……XX(证书+签名)
安全模块发送:FF 05 00 00 00
D:可信端收到请求后,生成对称加密密钥KEYENC和MAC密钥KEYMAC,将两个密钥拼接在一起,并对密钥使用安全模块公钥加密,使用可信端私钥签名,回复指令如下;
可信端回复:FF 06 00 00 XX XX……XX XX……XX(密钥密文+签名)
E:安全模块收到后,先使用可信端的公钥对签名数据进行验签,确认密钥密文由可信端发送,然后使用自身私钥对密钥密文进行解密,得到的密钥前16字节为加密密钥KEYENC,后16字节为MAC密钥KEYMAC,保存密钥在安全存储区域,并发送安全通道完成消息;
安全模块发送:FF 07 00 00 00
至此,身份认证和密钥交换过程结束,下面为关键业务指令通信:
F:可信端使用协商的加密密钥对发卡指令进行加密,并使用MAC密钥对密文计算MAC值,用于完整性校验,MAC值为固定的16字节,指令通信如下:
可信端回复业务指令密文和MAC:FF 08 00 00 XX XX……XX XX……XX(MAC+业务指令密文)
安全模块回复:FF 09 00 00 XX XX……XX。
应当理解,原有模式下,主控模块直接给关键业务模块发送业务指令,关键业务模块未经任何校验措施执行该业务指令。由于业务指令都是明文传输,攻击者可以轻易获取指令明文,并可以重复发送该业务指令给关键业务模块,关键业务模块并不具备识别发送指令方的身份是否合法,也不具备防重放攻击,就直接执行该业务指令,从而导致银行造成直接或间接的经济损失。而采用本发明提供的安全通信方法,可以为关键业务模块提供安全服务。
综上所述,安全模块的功能分为交易通讯处理、业务流程处理、密钥管理、设备管理以及设备驱动。其中,与关键业务模块、可信端通讯,保障了敏感数据安全,尤其是可以检测指令的合法性,非法指令直接拒绝,而针对关键业务指令则进行安全操作,针对非关键业务指令,则直接转发;此外,安全模块在密钥管理方面,提供了安全算法,密钥安全存储等功能,对敏感数据进行加密管理,确保不被破解和篡改,更好地为关键业务模块提供安全保障。
需要强调的是,本发明所述的实例是说明性的,而不是限定性的,因此本发明不限于具体实施方式中所述的实例,凡是由本领域技术人员根据本发明的技术方案得出的其他实施方式,不脱离本发明宗旨和范围的,不论是修改还是替换,同样属于本发明的保护范围。
Claims (8)
1.一种自助设备的安全通信方法,其特征在于:包括以下步骤:
步骤1:安全模块和可信端通过下发证书和验证签名进行交互式身份认证,身份认证通过后所述安全模块从所述可信端获取到加密密钥和MAC密钥;
步骤2:所述安全模块接收到业务指令时,识别所述业务指令是否是预设的关键业务指令,若是,则提取所述业务指令中的敏感数据,并利用所述加密密钥和所述MAC密钥对所述敏感数据进行加密处理和安全验证;
其中,所述可信端和所述安全模块利用所述MAC密钥分别计算出敏感数据对应的MAC值,并验证所述可信端和所述安全模块生成的MAC值是否相同;
所述可信端利用所述加密密钥对所述敏感数据进行加密生成加密数据,所述安全模块利用所述加密密钥对所述加密数据进行解密得到敏感数据,并验证解密后得到的敏感数据相较于所述业务指令中的敏感数据是否变化了;
其中,所述可信端和所述安全模块生成的MAC值相同且所述安全模块解密得到敏感数据未变化时,表示安全验证通过;
步骤3:若步骤2的安全验证通过,所述安全模块将所述业务指令发送给相匹配的关键业务模块;
其中,步骤1中所述安全模块从所述可信端获取到加密密钥和MAC密钥的过程如下:
步骤11:所述可信端生成加密密钥和MAC密钥并对所述加密密钥和MAC密钥进行加密和签名得到密钥密文和密钥签名,并将所述密钥密文和密钥签名发送给所述安全模块;
步骤12:所述安全模块对所述密钥签名进行验签,若所述密钥签名验签通过,则对所述密钥密文进行解密得到加密密钥和MAC密钥;
其中,步骤11的过程如下:
步骤111,所述可信端生成加密密钥和MAC密钥;
步骤112,所述可信端使用安全模块的公钥加密所述加密密钥和MAC密钥得到密钥密文;
步骤113,所述可信端在所述密钥密文前面连接第一随机数RND1得到数据ENC_DATA1;
步骤114,所述可信端利用自身私钥对数据ENC_DATA1进行签名得到密钥签名;
步骤115,所述可信端将所述密钥密文和所述密钥签名发送所述安全模块;
其中,步骤12的过程如下:
步骤121,所述安全模块读取自身保存的第一随机数RND1,并在所述密钥密文前面连接第一随机数RND1,得到数据ENC_DATA2;
步骤122,所述安全模块利用可信端公钥、数据ENC_DATA2对所述密钥签名进行验签;
步骤123,若步骤122的验签通过,所述安全模块使用自身私钥解密所述密钥密文得到加密密钥和MAC密钥。
2.根据权利要求1所述的方法,其特征在于,步骤2中利用所述加密密钥和所述MAC密钥对所述敏感数据进行加密处理和安全验证的过程如下:
步骤21:所述安全模块生成第二随机数RND2,并将所述第二随机数RND2、所述敏感数据和MAC请求发送给所述可信端;
步骤22:所述可信端利用加密密钥、第二随机数RND2、敏感数据计算得到加密数据以及使用MAC密钥、第二随机数RND2、敏感数据计算MAC值并将所述加密数据和所述可信端计算的MAC值发送给所述安全模块;
步骤23:所述安全模块依据所述业务指令中的敏感数据和第二随机数RND2并使用MAC密钥计算出MAC值,并比较所述安全模块计算的MAC值与从所述可信端接收到的MAC值是否一致,若不一致,则发送拒绝本次业务交易的回复给所述可信端;
步骤24:若所述安全模块计算的MAC值与从所述可信端接收到的MAC值一致,所述安全模块利用所述加密密钥解密所述加密数据得到敏感数据,并判断解密后的敏感数据与所述业务指令中的敏感数据是否一致,若一致,步骤2中的安全验证通过,若不一致,则发送拒绝本次业务交易的回复给所述可信端。
3.根据权利要求2所述的方法,其特征在于,所述安全模块生成第二随机数RND2或者所述安全模块上电之前,还执行对随机数自检步骤;
所述随机数自检过程如下:
首先,发送取1k字节的随机数的指令,若取随机数失败,则返回错误码;若取随机数成功,则依次执行单比特频数检测、游程总数检测、自相关检测;
若所述单比特频数检测、游程总数检测、自相关检测全部通过,随机数自检成功,否则,自检失败,随机数生成功能不可使用。
4.根据权利要求1所述的方法,其特征在于:步骤1中安全模块和可信端通过下发证书和验证签名进行交互式身份认证的过程如下:
步骤101,所述安全模块向所述可信端请求第一随机数RND1;
步骤102,所述安全模块使用自身私钥对第一随机数RND1进行签名得到安全模块签名,将安全模块签名和预存的安全模块证书发送给可信端;
步骤103,所述可信端调用加密机用CA证书验证安全模块证书的有效性以及对安全模块签名进行验签;
步骤104,若步骤103中安全模块证书有效且验签通过,所述可信端利用自身私钥对第一随机数RND1进行签名得到可信端签名,并将可信端签名和预存的可信端证书发送给所述安全模块;
步骤105,所述安全模块利用CA证书验证可信端证书的有效性并对可信端签名进行验签,若可信端证书有效且可信端签名的验签通过,则表示身份认证完成。
5.根据权利要求4所述的方法,其特征在于:所述安全模块的公私钥对为非对称SM2密钥对,其中所述安全模块的公钥发送给CA中心生成所述安全模块证书;
所述可信端的公私钥对为非对称SM2密钥对,其中所述可信端的公钥发送给CA中心生成所述可信端证书;
所述加密密钥和MAC密钥为对称SM4密钥。
6.一种自助设备的安全通信***,包括自助设备和可信端,所述自助设备与可信端通讯连接,其特征在于:所述自助设备包括主控模块、安全模块和关键业务模块;
其中,所述主控模块与所述关键业务模块分别与所述安全模块通信;
所述安全模块与所述可信端之间设有特定的逻辑安全通道,所述安全模块和所述可信端利用逻辑安全通道完成交互式身份认证并使所述安全模块从所述可信端获取到加密密钥和MAC密钥;
所述安全模块,用于接收到业务指令并识别所述业务指令是否为预设的关键业务指令,若是,则提取所述业务指令中的敏感数据,并利用所述加密密钥和所述MAC密钥对所述敏感数据进行加密处理和安全验证;
其中,所述可信端和所述安全模块均利用所述MAC密钥分别计算出敏感数据对应的MAC值,所述安全模块用于验证所述可信端和所述安全模块生成的MAC值是否相同;
所述可信端用于利用所述加密密钥对所述敏感数据进行加密生成加密数据,所述安全模块用于利用所述加密密钥对所述加密数据进行解密得到敏感数据,并验证解密后得到的敏感数据相较于所述业务指令中的敏感数据是否变化了;
其中,所述可信端和所述安全模块生成的MAC值相同且所述安全模块解密得到敏感数据未变化时,表示安全验证通过;
所述安全模块用于安全验证通过时,将所述业务指令发送给相匹配的关键业务模块;
其中,所述安全模块包括主控单元、安全单元和通讯单元,所述安全单元以及所述通讯单元均与所述主控单元连接,所述通讯单元,用于与所述关键业务模块、所述主控模块通讯;
所述可信端用于生成加密密钥和MAC密钥;
所述可信端用于依据安全模块的公钥加密所述加密密钥和MAC密钥得到密钥密文;
所述可信端用于在所述密钥密文前面连接第一随机数RND1,得到数据ENC_DATA1;
所述可信端用于利用自身私钥对ENC_DATA1进行签名,得到密钥签名;
所述可信端用于通过所述主控模块将所述密钥密文和所述密钥签名发送所述通讯单元;
其中,所述安全单元用于读取自身保存的第一随机数RND1,并在密钥密文前面连接第一随机数RND1,得到数据ENC_DATA2;
所述安全单元用于依据可信端公钥、ENC_DATA2对所述密钥签名进行验签;
若所述密钥签名的验签通过,所述安全单元用于使用自身私钥解密密钥密文得到加密密钥和MAC密钥。
7.根据权利要求6所述的***,其特征在于:所述安全单元用于生成第二随机数RND2;
所述通讯单元用于将所述第二随机数RND2、所述敏感数据和MAC请求通过所述主控模块发送给所述可信端;
所述可信端用于利用加密密钥、第二随机数RND2、敏感数据计算得到加密数据以及使用MAC密钥、第二随机数RND2、敏感数据计算MAC值,并将所述加密数据和所述可信端计算的MAC值通过所述主控模块发送给所述通讯单元;
所述安全单元用于依据所述业务指令中的敏感数据和第二随机数RND2并使用MAC密钥计算出MAC值,并比较所述安全模块计算的MAC值与从所述可信端接收的MAC值是否一致,若不一致,所述通讯单元发送拒绝本次业务交易的回复所述主控模块,所述主控模块转发回复给所述可信端;
所述安全单元用于若所述安全模块计算的MAC值与从所述可信端接收的MAC值一致时,利用所述加密密钥解密所述加密数据得到敏感数据,并判断解密后的敏感数据与所述业务指令中的敏感数据是否一致,若一致,安全验证通过,若不一致,所述通讯单元发送拒绝本次业务交易的回复所述主控模块,所述主控模块再转发回复给所述可信端。
8.一种自助设备,其特征在于:包括主控模块、安全模块和关键业务模块;
其中,所述主控模块与所述关键业务模块分别与所述安全模块通信;
所述安全模块与可信端之间设有特定的逻辑安全通道,
所述安全模块和所述可信端利用逻辑安全通道进行交互式身份认证并使所述安全模块从所述可信端获取到加密密钥和MAC密钥;
所述安全模块,用于接收到业务指令并识别所述业务指令是否为预设的关键业务指令,若是,则提取所述业务指令中的敏感数据,并利用所述加密密钥和所述MAC密钥对所述敏感数据进行加密处理和安全验证;
其中,所述可信端和所述安全模块均利用所述MAC密钥分别计算出敏感数据对应的MAC值,所述安全模块用于验证所述可信端和所述安全模块生成的MAC值是否相同;
所述可信端用于利用所述加密密钥对所述敏感数据进行加密生成加密数据;
所述安全模块用于利用所述加密密钥对可信端生成的加密数据进行解密得到敏感数据,并验证解密后得到的敏感数据与所述业务指令中的敏感数据相比较是否变化了;
其中,所述可信端和所述安全模块生成的MAC值相同且所述安全模块解密得到敏感数据未变化时,表示安全验证通过;
所述安全模块用于安全验证通过时,将所述业务指令发送给相匹配的关键业务模块;
其中,所述可信端用于生成加密密钥和MAC密钥;
所述可信端用于依据安全模块的公钥加密所述加密密钥和MAC密钥得到密钥密文;
所述可信端用于在所述密钥密文前面连接第一随机数RND1,得到数据ENC_DATA1;
所述可信端用于利用自身私钥对ENC_DATA1进行签名,得到密钥签名;
所述可信端用于通过所述主控模块将所述密钥密文和所述密钥签名发送所述安全模块;
其中,所述安全模块用于读取自身保存的第一随机数RND1,并在密钥密文前面连接第一随机数RND1,得到数据ENC_DATA2;
所述安全模块用于依据可信端公钥、ENC_DATA2对所述密钥签名进行验签;
若所述密钥签名的验签通过,所述安全模块用于使用自身私钥解密密钥密文得到加密密钥和MAC密钥。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710962833.XA CN107786550B (zh) | 2017-10-17 | 2017-10-17 | 一种自助设备的安全通信方法、安全通信***及自助设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710962833.XA CN107786550B (zh) | 2017-10-17 | 2017-10-17 | 一种自助设备的安全通信方法、安全通信***及自助设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107786550A CN107786550A (zh) | 2018-03-09 |
CN107786550B true CN107786550B (zh) | 2019-11-05 |
Family
ID=61434562
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710962833.XA Active CN107786550B (zh) | 2017-10-17 | 2017-10-17 | 一种自助设备的安全通信方法、安全通信***及自助设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107786550B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113784342A (zh) * | 2021-09-22 | 2021-12-10 | 四川中电启明星信息技术有限公司 | 一种基于物联网终端的加密通讯方法及*** |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108768924B (zh) * | 2018-04-02 | 2021-06-08 | 广州广电运通金融电子股份有限公司 | 现金处理终端安全认证方法、装置及现金处理终端 |
CN108872664A (zh) * | 2018-08-01 | 2018-11-23 | 南方电网科学研究院有限责任公司 | 一种智能电表 |
CN108965342B (zh) * | 2018-09-28 | 2021-05-28 | 真相网络科技(北京)有限公司 | 数据请求方访问数据源的鉴权方法及*** |
CN111385283B (zh) * | 2018-12-29 | 2022-07-05 | 中电长城(长沙)信息技术有限公司 | 一种自助设备的双录视频合成方法及其双录*** |
CN109600217A (zh) * | 2019-01-18 | 2019-04-09 | 江苏实达迪美数据处理有限公司 | 在并行操作模式中优化sm4加密和解密的方法及处理器 |
CN111563980B (zh) * | 2019-01-26 | 2022-04-29 | 合肥智辉空间科技有限责任公司 | 一种蓝牙锁钥匙生成与认证方法 |
CN112198805B (zh) * | 2019-07-08 | 2024-06-14 | 阿里巴巴集团控股有限公司 | 设备控制方法、装置、***以及计算设备和存储介质 |
DE102020111019A1 (de) * | 2020-04-22 | 2021-10-28 | Endress+Hauser Conducta Gmbh+Co. Kg | Verfahren zur Überprüfung der Authentizität von elektronischen Moduleneines modular aufgebauten Feldgeräts der Automatisierungstechnik |
CN111614684B (zh) * | 2020-05-25 | 2022-10-21 | 中京天裕科技(北京)有限公司 | 工业设备安全终端认证***和认证方法 |
CN111815814B (zh) * | 2020-06-22 | 2022-06-10 | 合肥智辉空间科技有限责任公司 | 一种电子锁安全***及其绑定认证方法 |
CN114765544A (zh) * | 2021-01-11 | 2022-07-19 | ***通信有限公司研究院 | 可信执行环境数据离线迁移方法及装置 |
CN114039728A (zh) * | 2021-12-24 | 2022-02-11 | 中电长城(长沙)信息技术有限公司 | 一种报文加解密方法及其*** |
CN114553498B (zh) * | 2022-01-28 | 2023-06-23 | 郑州信大捷安信息技术股份有限公司 | 一种适用于芯片的线路保护方法和*** |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN201181501Y (zh) * | 2008-04-15 | 2009-01-14 | 北京东方兴华科技发展有限责任公司 | 一种多功能自助服务一体机及应用其的银行自助服务*** |
CN104408834A (zh) * | 2014-12-05 | 2015-03-11 | 湖南长城信息金融设备有限责任公司 | 一种基于安全机芯的存取款安全控制方法及*** |
CN105513222A (zh) * | 2016-01-22 | 2016-04-20 | 广州御银科技股份有限公司 | 一种基于国密算法的出钞***及方法 |
WO2017034312A1 (en) * | 2015-08-24 | 2017-03-02 | Samsung Electronics Co., Ltd. | Apparatus and method for trusted execution environment based secure payment transactions |
CN106790210A (zh) * | 2017-01-05 | 2017-05-31 | 深圳市证通电子股份有限公司 | 数据安全交互方法、终端侧安全装置和服务端侧安全装置 |
-
2017
- 2017-10-17 CN CN201710962833.XA patent/CN107786550B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN201181501Y (zh) * | 2008-04-15 | 2009-01-14 | 北京东方兴华科技发展有限责任公司 | 一种多功能自助服务一体机及应用其的银行自助服务*** |
CN104408834A (zh) * | 2014-12-05 | 2015-03-11 | 湖南长城信息金融设备有限责任公司 | 一种基于安全机芯的存取款安全控制方法及*** |
WO2017034312A1 (en) * | 2015-08-24 | 2017-03-02 | Samsung Electronics Co., Ltd. | Apparatus and method for trusted execution environment based secure payment transactions |
CN105513222A (zh) * | 2016-01-22 | 2016-04-20 | 广州御银科技股份有限公司 | 一种基于国密算法的出钞***及方法 |
CN106790210A (zh) * | 2017-01-05 | 2017-05-31 | 深圳市证通电子股份有限公司 | 数据安全交互方法、终端侧安全装置和服务端侧安全装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113784342A (zh) * | 2021-09-22 | 2021-12-10 | 四川中电启明星信息技术有限公司 | 一种基于物联网终端的加密通讯方法及*** |
CN113784342B (zh) * | 2021-09-22 | 2023-05-26 | 四川中电启明星信息技术有限公司 | 一种基于物联网终端的加密通讯方法及*** |
Also Published As
Publication number | Publication date |
---|---|
CN107786550A (zh) | 2018-03-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107786550B (zh) | 一种自助设备的安全通信方法、安全通信***及自助设备 | |
US11405218B1 (en) | Quantum-resistant double signature system | |
CN103714639B (zh) | 一种实现对pos终端安全操作的方法及*** | |
CN101651675B (zh) | 通过认证码对客户端进行验证的方法和*** | |
CN103067401B (zh) | 密钥保护方法和*** | |
US8078879B2 (en) | Data certification method and apparatus | |
US8850208B1 (en) | Certificate crosschecking by multiple certificate authorities | |
CN107896147B (zh) | 一种基于国密算法协商临时会话密钥的方法及其*** | |
US20160028548A1 (en) | Key downloading method, management method, downloading management method, device and system | |
CN103036681B (zh) | 一种密码安全键盘装置及*** | |
CN107135070A (zh) | Rsa密钥对和证书的注入方法、架构及*** | |
WO2018133674A1 (zh) | 一种银行支付许可认证信息的反馈验证方法 | |
CN110519046A (zh) | 基于一次性非对称密钥对和qkd的量子通信服务站密钥协商方法和*** | |
WO2007121631A1 (fr) | Système et procédé de certification bancaire électronique sécurisée | |
CN111654510B (zh) | 一种带有国密加密功能的签批终端及签批数据传输方法 | |
CN110505055A (zh) | 基于非对称密钥池对和密钥卡的外网接入身份认证方法和*** | |
CN106790045A (zh) | 一种基于云环境分布式虚拟机代理架构及数据完整性保障方法 | |
CN105281910A (zh) | 带ca数字证书作为入网身份识别的物联网锁及其入网身份识别方法 | |
CN107104795A (zh) | Rsa密钥对和证书的注入方法、架构及*** | |
CN111435390A (zh) | 一种配电终端运维工具安全防护方法 | |
US20120284787A1 (en) | Personal Secured Access Devices | |
CN112865965B (zh) | 一种基于量子密钥的列车业务数据处理方法及*** | |
CN112398649A (zh) | 一种利用USBKey和CA进行服务器加密的方法及*** | |
CN108809925B (zh) | Pos设备数据加密传输方法、终端设备及存储介质 | |
CN103716328B (zh) | 一种操作请求处理方法和*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |