CN114944925B - 信令的安全传输方法、装置、服务器和se芯片 - Google Patents

信令的安全传输方法、装置、服务器和se芯片 Download PDF

Info

Publication number
CN114944925B
CN114944925B CN202110179112.8A CN202110179112A CN114944925B CN 114944925 B CN114944925 B CN 114944925B CN 202110179112 A CN202110179112 A CN 202110179112A CN 114944925 B CN114944925 B CN 114944925B
Authority
CN
China
Prior art keywords
chip
instruction
data
server
encrypted data
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
Application number
CN202110179112.8A
Other languages
English (en)
Other versions
CN114944925A (zh
Inventor
王雪平
杨世昭
崔竞松
涂航
李莉
余纯武
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Goodix Technology Co Ltd
Original Assignee
Shenzhen Goodix Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Goodix Technology Co Ltd filed Critical Shenzhen Goodix Technology Co Ltd
Priority to CN202110179112.8A priority Critical patent/CN114944925B/zh
Priority to CN202310365729.8A priority patent/CN116366347A/zh
Priority to PCT/CN2021/139731 priority patent/WO2022170857A1/zh
Publication of CN114944925A publication Critical patent/CN114944925A/zh
Application granted granted Critical
Publication of CN114944925B publication Critical patent/CN114944925B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0853Network architectures or network communication protocols for network security for authentication of entities using an additional device, e.g. smartcard, SIM or a different communication terminal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3247Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/04Key management, e.g. using generic bootstrapping architecture [GBA]

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)
  • Mobile Radio Communication Systems (AREA)

Abstract

本申请实施例提供一种信令的安全传输方法、装置、服务器和SE芯片,上述信令的安全传输方法中,服务器获取待发送的明文数据之后,根据SE芯片支持的安全级别对明文数据进行加密,获得第一加密数据,进而获取安全通道的版本号,然后根据第一加密数据生成安全通道指令,以及根据安全级别和版本号,生成初始化指令,最后将数据包发送给终端设备,以便终端设备将数据包中的指令发送给SE芯片,使SE芯片获得明文数据。也就是说,服务器在生成指令之后,无须与SE芯片进行交互,可以直接将初始化指令和安全通道信令打包发送给SE芯片,由SE芯片对接收到的指令进行身份验证和解密,既可以保证指令的真实性和机密性,又节约了服务器的计算资源。

Description

信令的安全传输方法、装置、服务器和SE芯片
技术领域
本申请实施例涉及智能终端技术领域,特别涉及一种信令的安全传输方法、装置、服务器和SE芯片。
背景技术
现在,智能手机或平板电脑等智能终端设备已成为人们生活中的必不可少的工具,智能手机的信息安全性也成为人们关注的焦点。目前公认的安全性最高的可用方案,是在智能手机中嵌入安全元件(security element,SE)芯片。但是,现有相关技术中,在智能手机中嵌入了SE芯片之后,存在远程的管理系统与智能手机中的SE无法直接通信的问题,必须通过智能手机进行消息中转,但由于智能手机的应用环境变化非常大,智能手机本身是不可信的执行环境,因此现有的安全通道协议都无法较为安全的在智能手机中应用。
目前在全球平台组织(global platform)已提出的规范中,有安全通道协议(security channel protocol,SCP)02、SCP03或SCP11等协议可以实现安全通道的建立,建立安全通道是指在通信双方之间秘密的协商出一个用于保护通信数据的密钥,所有使用这个密钥进行加密的数据,被认为是在安全通道中进行通信。
由于在现有的应用场景中,智能手机作为可信的服务端与可信的SE之间的消息中转站,是不具备可信执行环境的,因此传统的安全通道协议中,所有需要通信双方进行多次交互,且只能点对点进行通信的方式,会带来一些问题,不适于在智能手机中使用。一方面,因为如果需要多次交互,则服务端每次想与SE建立连接时都需要实时在线且保证网络线路通畅,这对智能手机的网络通信模块要求较高,占用的网络资源也较多;另一方面,由于手机用户的数量非常大,若每次交互都需要服务端的参与,会对服务端造成非常大的压力,可能导致某些情况下的通信失败或者响应不及时,导致采用这种方式的智能手机用户使用体验较差。
而现有的安全通道协议中,SCP02和SCP03不支持非对称算法,因此使用的灵活性较差,必须由服务端与SE进行多次交互后,才能实现认证,建立安全通道。SCP11协议中,变体a和变体b也存在这个问题,变体c中虽然能够支持单向认证,不需要双方交互数据,但由于采用了基于证书体制的椭圆曲线加密(elliptic curve cryptography,ECC)算法,其传输过程中消耗的带宽也较高。
发明内容
本申请实施例提供了一种信令的安全传输方法、装置、服务器和SE芯片,本申请实施例还提供一种计算机可读存储介质,以实现服务器在生成指令之后,无须与SE芯片进行交互,直接将指令打包发送给SE芯片,由SE芯片对接收到的指令进行身份验证和解密,既可以保证指令的真实性和机密性,又节约了服务器端的计算资源。
第一方面,本申请实施例提供了一种信令的安全传输方法,用于服务器,包括:获取待发送的明文数据;根据安全元件SE芯片支持的安全级别对所述明文数据进行加密,获得第一加密数据;所述SE芯片安装在终端设备中;获取所述服务器与所述SE芯片在当前会话中建立的安全通道的版本号;根据所述第一加密数据生成安全通道指令,以及根据所述安全级别和所述版本号,生成初始化指令;对所述初始化指令和所述安全通道指令进行打包,获得数据包;将所述数据包发送给所述终端设备,以便所述终端设备将所述数据包中的所述初始化指令和所述安全通道指令发送给所述SE芯片,使所述SE芯片根据所述初始化指令,对所述安全通道指令进行解析,获得所述明文数据。
上述信令的安全传输方法中,服务器200获取待发送的明文数据之后,根据SE芯片111支持的安全级别对上述明文数据进行加密,获得第一加密数据,进而获取服务器200与SE芯片111在当前会话中建立的安全通道的版本号,然后根据第一加密数据生成安全通道指令,以及根据上述安全级别和上述版本号,生成初始化指令,对上述初始化指令和上述安全通道指令进行打包,获得数据包,最后将打包获得的数据包发送给终端设备100,以便终端设备100将上述数据包中的初始化指令和安全通道指令发送给SE芯片111,使SE芯片111根据上述初始化指令,对安全通道指令进行解析,获得明文数据将上述明文数据转换为密文数据,然后对上述密文数据进行封装,获得初始化指令和安全通道指令,进而对上述初始化指令和上述安全通道指令进行打包,获得数据包,最后将打包获得的数据包发送给终端设备100,以便终端设备100将上述数据包中的指令发送给SE芯片111,使SE芯片111根据上述初始化指令中包括的上述安全通道的版本号和安全参数,对上述初始化指令和上述安全通道指令进行解析,获得明文数据。也就是说,服务器200在生成指令之后,无须与SE芯片111进行交互,可以直接将初始化指令和安全通道信令打包发送给SE芯片111,由SE芯片111对接收到的初始化指令和安全通道信令指令进行身份验证和解密,既可以保证指令的真实性和机密性,又节约了服务器200的计算资源。
其中一种可能的实现方式中,所述根据所述第一加密数据生成安全通道指令包括:将所述第一加密数据承载在安全通道指令格式的数据域中,以获得安全通道指令;所述根据所述安全级别和所述版本号,生成初始化指令包括:根据所述安全级别设置初始化指令格式中安全参数域的值,根据所述版本号设置所述初始化指令格式中协议版本域的值,以获得初始化指令;其中,所述安全参数域的值用于指示将所述明文数据转换为第一加密数据所采用的加密方式。
其中一种可能的实现方式中,所述获得第一加密数据之后,还包括:根据所述SE芯片支持的认证级别对所述第一加密数据进行认证处理,获得第二加密数据。
其中一种可能的实现方式中,所述根据所述SE芯片支持的认证级别对所述第一加密数据进行认证处理,获得第二加密数据包括:对所述服务器保存的计数器的值、加密所述明文数据时使用的密钥和初始向量,以及所述第一加密数据中的完整性校验值进行加密,获得所述第二加密数据;使用与所述SE芯片支持的认证级别对应的签名函数,对所述第二加密数据进行签名,获得所述第二加密数据对应的签名值。
其中一种可能的实现方式中,所述根据所述安全级别和所述版本号,生成初始化指令包括:根据所述安全级别和所述认证级别设置初始化指令格式中安全参数域的值,根据所述版本号设置所述初始化指令格式中协议版本域的值;以及,根据所述安全参数域的值,将所述第二加密数据和所述第二加密数据对应的签名值承载在所述初始化指令格式的数据域中,以获得所述初始化指令;其中,所述安全参数域的值用于指示将所述明文数据转换为第一加密数据所采用的加密方式,以及指示对所述第一加密数据进行认证所采用的认证方式。
其中一种可能的实现方式中,所述根据安全元件SE芯片支持的安全级别对所述明文数据进行加密,获得第一加密数据包括:获取所述明文数据中待处理的第i条明文数据,将预定的数据段与所述第i条明文数据进行拼接;使用与所述SE芯片支持的安全级别对应的函数,对拼接获得的数据进行加密。
其中一种可能的实现方式中,所述使用与所述SE芯片支持的安全级别对应的函数,对拼接获得的数据进行加密包括:当所述SE芯片支持的安全级别为机密性与完整性保护时,使用加密函数对所述拼接获得的数据进行加密;当所述SE芯片支持的安全级别为完整性保护时,使用完整性保护函数对所述拼接获得的数据进行加密。
第二方面,本申请实施例提供一种信令的安全传输方法,用于安全元件SE芯片,包括:接收终端设备发送的由服务器提供的指令,所述指令包括初始化指令和安全通道指令;根据所述SE芯片支持的认证级别,对所述初始化指令进行身份验证;在所述初始化指令通过身份验证之后,对所述初始化指令进行解密,获得所述SE芯片与所述服务器在当前会话中建立的安全通道的密钥、初始向量、以及所述服务器加密明文数据之后获得的完整性校验值;利用所述密钥、所述初始向量和所述完整性校验值,对所述安全通道指令中包括的第一加密数据进行解密,获得所述明文数据;其中,所述第一加密数据是所述服务器加密明文数据之后获得的,所述第一加密数据承载在所述安全通道指令中。
上述信令的安全传输方法中,SE芯片111接收终端设备100发送的由服务器200提供的指令之后,根据用户选择SE芯片111支持的认证级别,对上述初始化指令进行身份验证,在上述初始化指令通过身份验证之后,对上述初始化指令进行解密,获得SE芯片111与服务器200在当前会话中建立的安全通道的密钥、初始向量,以及服务器200加密上述明文数据之后获得的完整性校验值,利用上述密钥、上述初始向量和服务器200加密上述明文数据之后获得的上述完整性校验值,对上述安全通道指令中包括的第一加密数据进行解密,获得明文数据。本实施例中,服务器200在生成指令之后,无须与SE芯片111进行交互,直接将指令打包发送给SE芯片111,由SE芯片111对接收到的指令进行身份验证和解密,既可以保证指令的真实性和机密性,又节约了服务器200的计算资源。
其中一种可能的实现方式中,所述根据所述SE芯片支持的认证级别,对所述初始化指令进行身份验证包括:使用所述初始化指令中指定的密钥,对所述初始化指令的数据域中包括的签名值进行验证。
其中一种可能的实现方式中,所述对所述初始化指令进行解密,获得所述SE芯片与所述服务器在当前会话中建立的安全通道的密钥、初始向量,以及所述服务器加密明文数据之后获得的完整性校验值包括:使用所述初始化指令中指定的密钥,对所述初始化指令的数据域中承载的第二加密数据进行解密,获得所述服务器保存的计数器的值、所述服务器加密所述明文数据的过程中使用的密钥和初始向量,以及所述服务器加密所述明文数据之后获得的完整性校验值;将所述服务器保存的计数器的值与所述SE芯片中保存的计数器的值进行对比;如果所述服务器保存的计数器的值大于或等于所述SE芯片中保存的计数器的值,则保存解密获得的所述密钥和所述初始向量,以及所述完整性校验值。
其中一种可能的实现方式中,所述接收终端设备发送的由服务器提供的指令之前,还包括:接收终端设备发送的获取信息指令;将所述SE芯片当前支持的安全通道协议的版本和所述SE芯片中密钥的版本发送给所述终端设备;所述终端设备发送的指令包括:与所述SE芯片当前支持的安全通道协议的版本和所述SE芯片中密钥的版本相匹配的指令。
第三方面,本申请实施例提供一种信令的安全传输装置,设置在服务器中,所述信令的安全传输装置包括:获取模块,用于获取待发送的明文数据;加密模块,用于根据安全元件SE芯片支持的安全级别对所述明文数据进行加密,获得第一加密数据;所述SE芯片安装在终端设备中;所述获取模块,还用于获取所述服务器与所述SE芯片在当前会话中建立的安全通道的版本号;生成模块,用于根据所述第一加密数据生成安全通道指令,以及根据所述安全级别和所述版本号,生成初始化指令;打包模块,用于对所述初始化指令和所述安全通道指令进行打包,获得数据包;发送模块,用于将所述打包模块打包获得的数据包发送给所述终端设备,以便所述终端设备将所述数据包中的所述初始化指令和所述安全通道指令发送给所述SE芯片,使所述SE芯片根据所述初始化指令,对所述安全通道指令进行解析,获得所述明文数据。
其中一种可能的实现方式中,所述生成模块,具体用于将所述第一加密数据承载在安全通道指令格式的数据域中,以获得安全通道指令;所述生成模块,具体用于根据所述安全级别设置初始化指令格式中安全参数域的值,根据所述版本号设置所述初始化指令格式中协议版本域的值,以获得初始化指令;其中,所述安全参数域的值用于指示将所述明文数据转换为第一加密数据所采用的加密方式。
其中一种可能的实现方式中,所述装置还包括:认证模块;所述认证模块,用于在所述加密模块获得第一加密数据之后,根据所述SE芯片支持的认证级别对所述第一加密数据进行认证处理,获得第二加密数据。
其中一种可能的实现方式中,所述认证模块包括:数据数据加密子模块,用于对所述服务器保存的计数器的值、加密所述明文数据时使用的密钥和初始向量,以及所述第一加密数据中的完整性校验值进行加密,获得第二加密数据;签名子模块,用于使用与所述SE芯片支持的认证级别对应的签名函数,对所述第二加密数据进行签名,获得所述第二加密数据对应的签名值。
其中一种可能的实现方式中,所述生成模块,具体用于根据所述安全级别和所述认证级别设置初始化指令格式中安全参数域的值,根据所述版本号设置所述初始化指令格式中协议版本域的值;以及,根据所述安全参数域的值,将所述第二加密数据和所述第二加密数据对应的签名值承载在所述初始化指令格式的数据域中,以获得所述初始化指令;其中,所述安全参数域的值用于指示将所述明文数据转换为第一加密数据所采用的加密方式,以及指示对所述第一加密数据进行认证所采用的认证方式。
其中一种可能的实现方式中,所述加密模块,具体用于获取所述明文数据中待处理的第i条明文数据,将预定的数据段与所述第i条明文数据进行拼接;使用与所述SE芯片支持的安全级别对应的函数,对拼接获得的数据进行加密。
其中一种可能的实现方式中,所述加密模块,具体用于当所述SE芯片支持的安全级别为机密性与完整性保护时,使用加密函数对拼接获得的数据进行加密;当所述SE芯片支持的安全级别为完整性保护时,使用完整性保护函数对拼接获得的数据进行加密。
第四方面,本申请实施例提供一种信令的安全传输装置,设置在安全元件SE芯片中,所述装置包括:接收模块,用于接收终端设备发送的由服务器提供的指令,所述指令包括初始化指令和安全通道指令;验证模块,用于根据所述SE芯片支持的认证级别,对所述初始化指令进行身份验证;解密模块,用于在所述初始化指令通过身份验证之后,对所述初始化指令进行解密,获得所述SE芯片与所述服务器在当前会话中建立的安全通道的密钥、初始向量、以及所述服务器加密明文数据之后获得的完整性校验值;以及利用所述密钥、所述初始向量和所述完整性校验值,对所述安全通道指令中包括的第一加密数据进行解密,获得所述明文数据;其中,所述第一加密数据是所述服务器加密明文数据之后获得的,所述第一加密数据承载在所述安全通道指令中。
其中一种可能的实现方式中,所述验证模块,具体用于使用所述初始化指令中指定的密钥,对所述初始化指令的数据域中包括的签名值进行验证。
其中一种可能的实现方式中,所述解密模块包括:数据解密子模块,用于使用所述初始化指令中指定的密钥,对所述初始化指令的数据域中承载的第二加密数据进行解密,获得所述服务器保存的计数器的值、所述服务器加密所述明文数据的过程中使用的密钥和初始向量,以及所述服务器加密所述明文数据之后获得的完整性校验值;对比子模块,用于将所述服务器保存的计数器的值与所述SE芯片中保存的计数器的值进行对比;保存子模块,用于当所述服务器保存的计数器的值大于或等于所述SE芯片中保存的计数器的值时,保存所述数据解密子模块解密获得的所述密钥和所述初始向量,以及所述完整性校验值。
其中一种实现方式中,所述装置还包括:发送模块;所述接收模块,还用于在接收终端设备发送的指令之前,接收终端设备发送的获取信息指令;所述发送模块,用于将所述SE芯片当前支持的安全通道协议的版本和所述SE芯片中密钥的版本发送给所述终端设备;所述终端设备发送的指令包括:与所述SE芯片当前支持的安全通道协议的版本和所述SE芯片中密钥的版本相匹配的指令。
第五方面,本申请实施例提供一种服务器,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现第一方面提供的方法。
第六方面,本申请实施例提供一种非临时性计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面提供的方法。
第七方面,本申请实施例提供一种安全元件SE芯片,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现第二方面提供的方法。
第八方面,本申请实施例提供一种非临时性计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第二方面提供的方法。
应当理解的是,本申请实施例的第三、第五和第六方面与本申请实施例的第一方面的技术方案一致,各方面及对应的可行实施方式所取得的有益效果相似,不再赘述。
本申请实施例的第四、第七和第八方面与本申请实施例的第二方面的技术方案一致,各方面及对应的可行实施方式所取得的有益效果相似,不再赘述。
第九方面,本申请实施例提供一种计算机程序,当上述计算机程序被计算机执行时,用于执行第一方面提供的方法。
第十方面,本申请实施例提供一种计算机程序,当上述计算机程序被计算机执行时,用于执行第二方面提供的方法。
在一种可能的设计中,第九方面和第十方面中的程序可以全部或者部分存储在与处理器封装在一起的存储介质上,也可以部分或者全部存储在不与处理器封装在一起的存储器上。
附图说明
图1为本申请一个实施例提供的终端设备的结构示意图;
图2为本申请一个实施例提供的服务器的结构示意图;
图3为本申请一个实施例中初始化指令的结构示意图;
图4为本申请另一个实施例提供的初始化指令的结构示意图;
图5为本申请一个实施例提供的密钥之间的关系的示意图;
图6为本申请一个实施例提供的信令的安全传输方法的流程图;
图7为本申请一个实施例提供的服务器200的加密流程的示意图;
图8为本申请一个实施例提供的服务器200的认证流程的示意图;
图9为本申请另一个实施例提供的信令的安全传输方法的流程图;
图10为本申请一个实施例提供的SE芯片111的验证流程的示意图;
图11为本申请另一个实施例提供的SE芯片111的验证流程的示意图;
图12为本申请再一个实施例提供的SE芯片111的验证流程的示意图;
图13为本申请一个实施例提供的SE芯片111的解密流程的示意图;
图14为本申请一个实施例提供的信令的安全传输装置的结构示意图;
图15为本申请另一个实施例提供的信令的安全传输装置的结构示意图;
图16为本申请再一个实施例提供的信令的安全传输装置的结构示意图;
图17为本申请再一个实施例提供的信令的安全传输装置的结构示意图。
具体实施方式
本申请的实施方式部分使用的术语仅用于对本申请的具体实施例进行解释,而非旨在限定本申请。
现有的安全通道协议中,必须由服务器和SE芯片进行多次交互后,才能实现认证,建立安全通道。并且现有的安全通道协议都采用的是国际算法,现有相关技术中,没有使用了国密算法的安全通道协议。
为了解决传统的安全通道协议必须要通信双方进行多次交互才能建立安全通道的问题,同时也为了将国密算法应用到安全通道协议中,本申请实施例提供了一种信令的安全传输方法,上述信令的安全传输方法采用SCP90安全通道协议进行信令的安全传输。
本申请实施例提供的信令的安全传输方法可以应用于终端设备,其中,上述终端设备可以为智能手机、平板电脑、可穿戴设备、车载设备、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本或个人数字助理(personal digitalassistant,PDA)等设备;本申请实施例对终端设备的具体类型不作任何限制。
示例性的,图1为本申请一个实施例提供的终端设备的结构示意图,图1以终端设备为智能手机为例示出了终端设备的结构,如图1所示,终端设备100可以包括处理器110,SE芯片111,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。
可以理解的是,本申请实施例示意的结构并不构成对终端设备100的具体限定。在本申请另一些实施例中,终端设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
SE芯片111,可以包括存储器、处理器及存储在上述存储器上并可在处理器上运行的计算机程序,上述处理器执行所述计算机程序时,可以实现本申请实施例提供的信令的安全传输方法。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过USB接口130接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块140可以通过终端设备100的无线充电线圈接收无线充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为终端设备100供电。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,显示屏194,摄像头193,和无线通信模块160等供电。电源管理模块141还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
终端设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。终端设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在终端设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170A,受话器170B等)输出声音信号,或通过显示屏194显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。
无线通信模块160可以提供应用在终端设备100上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,终端设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得终端设备100可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(codedivision multiple access,CDMA),宽带码分多址(wideband code division multipleaccess,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。所述GNSS可以包括全球卫星定位系统(global positioning system,GPS),全球导航卫星系统(global navigation satellite system,GLONASS),北斗卫星导航系统(beidounavigation satellite system,BDS),准天顶卫星系统(quasi-zenith satellitesystem,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。
终端设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode的,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一些实施例中,终端设备100可以包括1个或N个显示屏194,N为大于1的正整数。
终端设备100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
ISP用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度,肤色进行算法优化。ISP还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,ISP可以设置在摄像头193中。
摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,终端设备100可以包括1个或N个摄像头193,N为大于1的正整数。
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当终端设备100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
视频编解码器用于对数字视频压缩或解压缩。终端设备100可以支持一种或多种视频编解码器。这样,终端设备100可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,MPEG)1,MPEG2,MPEG3,MPEG4等。
NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现终端设备100的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展终端设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储终端设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。处理器110通过运行存储在内部存储器121的指令,和/或存储在设置于处理器中的存储器的指令,执行终端设备100的各种功能应用以及数据处理。
终端设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。
扬声器170A,也称“喇叭”,用于将音频电信号转换为声音信号。终端设备100可以通过扬声器170A收听音乐,或收听免提通话。
受话器170B,也称“听筒”,用于将音频电信号转换成声音信号。当终端设备100接听电话或语音信息时,可以通过将受话器170B靠近人耳接听语音。
麦克风170C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。当拨打电话或发送语音信息时,用户可以通过人嘴靠近麦克风170C发声,将声音信号输入到麦克风170C。终端设备100可以设置至少一个麦克风170C。在另一些实施例中,终端设备100可以设置两个麦克风170C,除了采集声音信号,还可以实现降噪功能。在另一些实施例中,终端设备100还可以设置三个,四个或更多麦克风170C,实现采集声音信号,降噪,还可以识别声音来源,实现定向录音功能等。
耳机接口170D用于连接有线耳机。耳机接口170D可以是USB接口130,也可以是3.5mm的开放移动电子设备平台(open mobile terminal platform,OMTP)标准接口,美国蜂窝电信工业协会(cellular telecommunications industry association of the USA,CTIA)标准接口。
按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。终端设备100可以接收按键输入,产生与终端设备100的用户设置以及功能控制有关的键信号输入。
马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。例如,作用于不同应用(例如拍照,音频播放等)的触摸操作,可以对应不同的振动反馈效果。作用于显示屏194不同区域的触摸操作,马达191也可对应不同的振动反馈效果。不同的应用场景(例如:时间提醒,接收信息,闹钟,游戏等)也可以对应不同的振动反馈效果。触摸振动反馈效果还可以支持自定义。
指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
SIM卡接口195用于连接SIM卡。SIM卡可以通过插入SIM卡接口195,或从SIM卡接口195拔出,实现和终端设备100的接触和分离。终端设备100可以支持1个或N个SIM卡接口,N为大于1的正整数。SIM卡接口195可以支持Nano SIM卡,Micro SIM卡,SIM卡等。同一个SIM卡接口195可以同时插入多张卡。所述多张卡的类型可以相同,也可以不同。SIM卡接口195也可以兼容不同类型的SIM卡。SIM卡接口195也可以兼容外部存储卡。终端设备100通过SIM卡和网络交互,实现通话以及数据通信等功能。在一些实施例中,终端设备100采用eSIM,即:嵌入式SIM卡。eSIM卡可以嵌在终端设备100中,不能和终端设备100分离。在一个例子中,SE芯片111也可以与SIM卡集成到一起。
另外,本申请实施例提供的信令的安全传输方法的实现不仅涉及终端设备侧,还涉及服务器侧。
示例性的,图2为本申请一个实施例提供的服务器的结构示意图,如图2所示,服务器200可以包括至少一个处理器210;以及与上述处理器通信连接的至少一个存储器230,其中:存储器230存储有可被处理器执行的程序指令,上述处理器210调用上述程序指令能够执行本申请实施例提供的信令的安全传输方法。
图2中,服务器200以通用计算设备的形式表现。服务器200的组件可以包括但不限于:一个或者多个处理器210,通信接口220,存储器230,以及连接不同组件(包括存储器230、通信接口220和处理单元210)的通信总线240。
通信总线240表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,或者使用多种总线结构中的任意总线结构的局域总线。举例来说,通信总线240可以包括但不限于工业标准体系结构(industry standardarchitecture,ISA)总线,微通道体系结构(micro channel architecture,MAC)总线,增强型ISA总线、视频电子标准协会(video electronics standards association,VESA)局域总线以及外围组件互连(peripheral component interconnection,PCI)总线。
服务器200典型地包括多种计算机系统可读介质。这些介质可以是任何能够被电子设备访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
存储器230可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(random access memory,RAM)和/或高速缓存存储器。存储器230可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本申请方法实施例的功能。
具有一组(至少一个)程序模块的程序/实用工具,可以存储在存储器230中,这样的程序模块包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块通常执行本申请实施例中的功能和/或方法。
处理器210通过运行存储在存储器230中的程序,从而执行各种功能应用以及数据处理,例如实现本申请实施例提供的信令的安全传输方法。
应理解,图2所示的服务器200中的处理器210可以是片上系统SOC,该处理器210中可以包括中央处理器(central processing unit,CPU),还可以进一步包括其他类型的处理器,例如:图像处理器(graphics processing unit,GPU)等。
为了便于理解,本申请以下实施例将以具有图1所示结构的终端设备100,具有图2所示结构的服务器200为例,结合附图,对本申请实施例提供的信令的安全传输方法进行具体阐述。
本申请实施例定义了3个指令:初始化指令、安全通道指令和获取信息指令,使用多种密钥与算法结合的方式,为远程向SE芯片发送指令提供了机密性保护、完整性保护和身份认证功能。
本申请实施例中提到的指令使用基于智能卡ISO7816规范的指令格式表示,但本申请实施例并不仅限于此,也可以使用其他规范的指令格式来表示上述指令,只要能够正确的携带所需的参数信息就可以。
下面对初始化指令、安全通道指令和获取信息指令进行详细介绍。
1、初始化指令用于初始化安全通道,同时对下发指令的服务器200进行认证。初始化指令的格式可以如表1所示。
表1
编码(Code) 值(Value) 描述(Description)
编码1(CLA) xx
编码2(INS) xx 认证指令
P1 xx 协议版本
P2 xx 安全通道配置
编码3(LC) 可变(Variable) 数据长度
编码4(DATA) Xxxx 数据
编码5(LE) -
表1中,不同编码表示不同含义,值“xx”代表对应的编码赋值为xx的时候的具体含义,比如,编码P1表示当前使用的安全通道版本号,若当前使用的版本为1,则P1的值为0x10,其中高4bit表示主版本号,低4bit表示次版本号;主版本号影响安全通道协议的处理流程和逻辑,次版本号影响安全通道协议使用的传输通道。
表2为P1的取值与对应的描述。
表2
b7 b6 b5 b4 b3 b2 b1 b0 描述(description)
0 0 0 1 0 0 0 1 使用7816T0通道的版本1协议
0 0 0 1 0 0 1 0 使用7816T1通道的版本1协议
0 0 0 1 0 0 1 1 使用SPI通道的版本1协议
0 0 0 1 0 1 0 0 使用NCI通道的版本1协议
P2又被称为安全参数,用来表示安全通道的一些配置项。其中高4bit表示认证配置,低4bit表示加密配置,例如:可以通过对b7~b0这8bit分别赋值来设置不同的安全参数,其中,对b3~b0赋不同值可以分别表示“不加密”、“使用AES计算完整性”、“使用AES加密”、“使用SM4加密”、“使用SM4计算完整性”;对b7-b4赋不同值可以分别表示“不认证”、“使用AES认证”、“使用SM2认证”、“使用SM4认证”、“使用SM9认证”。除此之外,还可以包括一些预留的赋值。
表3为P2的认证配置位与加密配置位的分布。
表3
Figure BDA0002940937980000211
数据域中承载的数据是为实现身份认证而传输的数据,其中包含了数条信息,如IVR(16字节),CT0(64字节),PK.SERVER.AUT.SM2(64字节),SIGN.PK.SERVER(64字节)和S(可变字节,签名的缩写)等。
如果认证配置设置为使用基于椭圆曲线的非对称密码(Public KeyCryptographic Algorithm SM2 Based on Elliptic Curves,SM2)算法,即P2的高4bit设置为“0010”,则上述初始化指令的结构如图3所示,图3为本申请一个实施例中初始化指令的结构示意图。
如果认证配置设置为使用高级加密标准(Advanced Encryption Standard,AES)算法/对称密码算法(SM4 Block Cipher Algorithm,SM4)或基于标识的非对称密码算法(Identity-based cryptographic algorithms SM9,SM9),则PK.SERVER.AUT.SM2和SIGN.PK.SERVER都不再存在,初始化指令的结构如图4所示,图4为本申请另一个实施例提供的初始化指令的结构示意图。
如上所述,P2的取值不同,初始化指令格式的数据域中承载的数据也会随之变化。举例来说,在P2的取值表示不认证时,初始化指令格式的数据域中不存在标注为认证选项的数据;在P2的取值表示无加密时,初始化指令格式的数据域中不存在标注为加密选项的数据。
在P2的不同取值下,初始化指令格式的数据域中承载的数据请参见表4。
表4
Figure BDA0002940937980000221
在SE芯片111对初始化指令进行处理之后,会产生相应的响应码,上述初始化指令的响应码可以如表5所示。
表5
Figure BDA0002940937980000222
本申请实施例中,SE芯片111生成初始化指令的响应码之后,SE芯片111可以将上述初始化指令的响应码发送给终端设备100。然后,终端设备100可以根据上述初始化指令的响应码,确定是自行处理上述响应码,还是将上述响应码发送给服务器200,由服务器200进行处理。
2、安全通道指令用于向SE芯片111下发被保护的指令。安全通道指令只能严格地在初始化指令之后执行,若第一条安全通道指令的前一条指令不是初始化指令,则SE芯片111会返回一个6A81的错误码。
安全通道指令在一次会话中可以被多次执行,直到所有的远程指令都被处理完为止。具体地,安全通道指令的格式如表6所示。
表6
编码(Code) 值(Value) 描述(Description)
编码1(CLA) xx
编码2(INS) xx 安全通道指令
编码3(P3) xx 参数1
编码4(P4) xx 参数2,表示是否为最后一条安全通道指令
编码5(LC) Variable 数据长度
编码6(DATA) xxxx 数据
编码7(LE) -
表6中,不同编码表示不同含义,值“xx”代表对应的编码赋值为xx的时候的具体含义,比如,编码P4用于表示当前的安全通道指令是否为最后一条安全通道指令,若P4为“00”,则表示当前指令后续还有安全通道指令需要发送,若P4为“01”,则表示当前指令为最后一条安全通道指令。
安全通道指令格式的数据域中承载的数据只有密文数据,该密文数据需要被完整的解密才能使用。
同样,在SE芯片111对安全通道指令进行处理之后,会产生相应的响应码,上述安全通道指令的响应码可以如表7所示。
表7
Figure BDA0002940937980000241
本申请实施例中,SE芯片111生成安全通道指令的响应码之后,SE芯片111可以将上述安全通道指令的响应码发送给终端设备100。然后,终端设备100可以根据上述安全通道指令的响应码,确定是自行处理上述响应码,还是将上述响应码发送给服务器200,由服务器200进行处理。
3、获取信息指令用于终端设备100向SE芯片111获取与当前安全通道协议相关的信息,包括SE芯片111当前支持的安全通道协议版本和/或SE芯片中密钥的版本号等。具体地,获取信息指令的格式如表8所示。
表8
Figure BDA0002940937980000242
编码P5和P6共同作用,指定SE芯片111中的某个密钥。
获取信息指令格式的编码7(LE)的值分为两个部分,分别是SE芯片111当前支持的安全通道协议的版本和SE芯片111中密钥的版本。
在SE芯片111对获取信息指令进行处理之后,会产生相应的响应码,上述获取信息指令的响应码可以如表9所示。
表9
SW1 SW2 描述Description
90 00 成功(Success)
6A 90 进程失败(proceed failed)
本申请实施例中,SE芯片111生成获取信息指令的响应码之后,SE芯片111将上述获取信息指令的响应码发送给终端设备100。接收到上述获取信息指令的响应码之后,终端设备100可以根据上述获取信息指令的响应码,确定上述获取信息指令的执行情况。
下面对本申请实施例中使用的密钥进行介绍。
本申请实施例中使用的密钥仅规定其密钥的类型,并不规定密钥的产生方式和下发方式,以服务器200和SE芯片111中都拥有所需的密钥为前提。本申请实施例中涉及到的各个实体需要拥有的密钥可以如表10所示。
表10
Figure BDA0002940937980000251
Figure BDA0002940937980000261
表10中各个密钥之间的关系,可以如图5所示,图5为本申请一个实施例提供的密钥之间的关系的示意图。
图6为本申请一个实施例提供的信令的安全传输方法的流程图,如图6所示,上述信令的安全传输方法可以包括:
步骤601,服务器200获取待发送的明文数据。
具体地,当服务器200决定向SE芯片111发送数据时,首先会准备好待发送的明文数据。
步骤602,服务器200根据SE芯片111支持的安全级别对上述明文数据进行加密,获得第一加密数据。
步骤603,服务器200获取服务器200与SE芯片111在当前会话中建立的安全通道的版本号。
步骤604,服务器200根据第一加密数据生成安全通道指令,以及根据上述安全级别和上述版本号,生成初始化指令。
具体地,服务器200根据第一加密数据生成安全通道指令可以为:服务器200将第一加密数据承载在安全通道指令格式的数据域中,以获得安全通道指令。
服务器200根据上述安全级别和上述版本号,生成初始化指令可以为:根据上述安全级别设置初始化指令格式中安全参数域的值,根据上述版本号设置上述初始化指令格式中协议版本域的值,以获得初始化指令;其中,上述安全参数域的值用于指示将明文数据转换为第一加密数据所采用的加密方式。
步骤605,服务器200对上述初始化指令和上述安全通道指令进行打包,获得数据包。
具体实现时,服务器200可以将上述初始化指令和上述安全通道指令打包成一个数据包,从而可以将初始化指令和安全通道指令一次性发送给终端设备100,减少了服务器200与终端设备100之间的交互。
步骤606,服务器200将上述数据包发送给终端设备100,以便终端设备100将上述数据包中的初始化指令和安全通道指令发送给SE芯片111,使SE芯片111根据上述初始化指令,对安全通道指令进行解析,获得上述明文数据。
进一步地,如果用户还选择了对第一加密数据进行认证,那么在步骤602获得第一加密数据之后,服务器200还可以根据SE芯片111支持的认证级别对第一加密数据进行认证处理,获得第二加密数据。
具体地,根据SE芯片111支持的认证级别对第一加密数据进行认证处理,获得第二加密数据可以为:服务器200对服务器200保存的计数器的值、加密上述明文数据时使用的密钥和初始向量,以及第一加密数据中的完整性校验值进行加密,获得第二加密数据;服务器200使用与SE芯片111支持的认证级别对应的签名函数,对第二加密数据进行签名,获得第二加密数据对应的签名值。
这样,根据上述安全级别和上述版本号,生成初始化指令可以为:服务器200根据上述安全级别和上述认证级别设置初始化指令格式中安全参数域的值,根据上述版本号设置上述初始化指令格式中协议版本域的值;以及,根据上述安全参数域的值,将第二加密数据和第二加密数据对应的签名值承载在初始化指令格式的数据域中,以获得上述初始化指令;其中,上述安全参数域的值用于指示将上述明文数据转换为第一加密数据所采用的加密方式,以及指示对第一加密数据进行认证所采用的认证方式。
上述信令的安全传输方法中,服务器200获取待发送的明文数据之后,根据SE芯片111支持的安全级别对上述明文数据进行加密,获得第一加密数据,进而获取服务器200与SE芯片111在当前会话中建立的安全通道的版本号,然后根据第一加密数据生成安全通道指令,以及根据上述安全级别和上述版本号,生成初始化指令,对上述初始化指令和上述安全通道指令进行打包,获得数据包,最后将打包获得的数据包发送给终端设备100,以便终端设备100将上述数据包中的初始化指令和安全通道指令发送给SE芯片111,使SE芯片111根据上述初始化指令,对安全通道指令进行解析,获得明文数据。也就是说,服务器200在生成指令之后,无须与SE芯片111进行交互,可以直接将初始化指令和安全通道信令打包发送给SE芯片111,由SE芯片111对接收到的初始化指令和安全通道信令进行身份验证和解密,既可以保证指令的真实性和机密性,又节约了服务器200的计算资源。
本申请图6所示实施例,步骤602中,服务器200根据SE芯片111支持的安全级别对上述明文数据进行加密,获得第一加密数据可以为:获取上述明文数据中待处理的第i条明文数据,将预定的数据段与第i条明文数据进行拼接;使用与SE芯片111支持的安全级别对应的函数,对拼接获得的数据进行加密。其中,使用与SE芯片111支持的安全级别对应的函数,对拼接获得的数据进行加密可以为:当SE芯片111支持的安全级别为机密性与完整性保护时,使用加密函数对拼接获得的数据进行加密;当SE芯片111支持的安全级别为完整性保护时,使用完整性保护函数对拼接获得的数据进行加密。
具体地,服务器200的加密流程是根据用户选择的不同密码算法和安全级别进行变化的,用户可选的安全级别包括:机密性与完整性保护、仅完整性保护和无安全。每种安全级别又有多种算法可以实现。
加密流程的输入数据包括:PT1,PT2,…,PTN,MACN+1,K,IVN
其中,PT1,PT2,…,PTN为待发送的明文数据,MACN+1为预定的数据段,是一段固定的数据,值为16个字节的’0x00’;K是用来加密PT的密钥,这个密钥在每次开始加密流程时随机生成;IVN是初始向量,用来在加密函数中使用,IVN的值为12个字节的随机数加上4个字节的’0xFF’。
加密流程的输出数据为:CT1,CT2,…,CTN,MAC1
其中CT1,CT2,…,CTN为明文数据PT1,PT2,…,PTN加密后对应的密文;MAC1为对明文数据PT1加密后输出的完整性校验值。
若用户选择的安全级别为只有完整性保护,则CT与对应的PT相同。若用户选择的安全级别为无安全,则输出的CT与PT相同,且没有MAC1
服务器200的加密流程可以如图7所示,图7为本申请一个实施例提供的服务器200的加密流程的示意图。
参见图7,服务器200的加密流程可以包括:
步骤1,若用户选择的安全级别为无安全,则令CTi=PTi,跳转到步骤5。
步骤2,对第i条明文数据(1≤i≤N)进行处理时,首先将MACi+1与明文PTi拼接在一起,然后根据用户选择的安全级别,使用伽罗瓦计数模式(Galois/Counter Mode,GCM)加密函数或CBC_MAC函数进行计算,其中,CBC_MAC为密码块链接(cipher block chaining)模式计算得到的消息认证码(message authentication code)。若用户选择了机密性与完整性保护,则使用GCM加密函数,若用户选择了仅完整性保护,则使用CBC_MAC函数。两种函数使用的输入参数都是三个,分别是:PTi||MACi+1作为待处理的数据,K作为密钥,IVi作为初始向量,经过密码函数处理后,输出了CTi和MACi,若使用CBC_MAC函数,则CTi=PTi
步骤3,将计数器i-1,计算IVi-1
步骤4,返回执行步骤2,直到i=1的数据被执行完成。
步骤5,将PT1,PT2,…,PTN和MAC1作为输出,结束加密流程。
在服务器200的加密流程中,处理每个PTi时使用的IV都不相同,其中IVi的计算方式可以为:IVi=IVi+1–256。
上述加密流程中使用到的密码函数GCM和CBC_MAC的描述如下,其定义请参考对应的对称密码规范。
GCM加密函数表示如下:
{CTi,MACi}=Symmetric_GCM_Enc({PTi||MACi+1},IVi,K)
CBC_MAC函数表示如下:
{MACi}=Symmetric_CBC_MAC({PTi||MACi+1},IVi,K)
服务器200的认证流程是根据用户选择的不同密码算法和认证级别进行变化的,用户可选的认证级别包括:对称算法消息认证码(message authentication code,MAC)校验、SM2签名、SM9签名和无安全。每种安全级别分别对应了一种算法。
且认证流程中的处理过程分为两个部分,分别是对加密流程的输出数据进行加密处理,以及对本次会话进行认证。
认证流程的输入数据可以包括:KEY_AUT,KEY_ENC,MAC1,K,IV1,IVR,Ver,KEY.SE.ENC.AES/SM4,SK.SERVER.AUT
KEY_AUT和KEY_MAC是用来指定接收方的SE芯片111使用哪个具体的密钥进行计算;MAC1是加密流程得到的输出;K,IV1都是加密流程中用到的数据;IVR是服务器200临时生成的16字节随机数,Ver是服务器200保存的一个4字节计数器,始终自增;KEY.SE.ENC.AES/SM4和SK.SERVER.AUT是服务器200保存的芯片批次对称密钥和服务器200自己的认证私钥。SK.SERVER.AUT根据选择的算法不同会有所区别,如果选择了对称算法MAC校验,SK.SERVER.AUT使用KEY.SE.AUT.AES/SM4;如果选择了SM2签名,则SK.SERVER.AUT为SM2算法的私钥;如果选择了SM9签名,则SK.SERVER.AUT为SM9算法的私钥;如果选择了无安全,则不使用SK.SERVER.AUT。
认证流程的输出包括:CTR,S;其中,CTR为对输入数据进行加密得到的密文,S为对密文CTR和其他所有数据进行签名得到的签名值。
服务器200的认证流程可以如图8所示,图8为本申请一个实施例提供的服务器200的认证流程的示意图。
参见图8,服务器200的认证流程可以包括:
图8中,{K||Ver||IV1||MAC1}使用密码分组链接(cipher-block chaining,CBC)模式进行加密,加密时使用的密钥为预置在SE芯片111中的KEY.SE.ENC.AES/SM4,加密后得到密文CT0。IVR是由服务器200临时生成的随机数,仅在认证流程中使用,用完后即销毁。计算得到了密文CT0后,对{KEYID_AUT||KEYID_ENC||IVR||CT0}计算一个签名值S,其中,KEYID_AUT和KEYID_ENC是两个ID,KEYID_AUT用于指示进行认证时使用的密钥,KEYID_ENC用于指示进行加密时使用的密钥。这里根据选择的认证级别不同,计算S的方式也不相同。若选择SM2或SM9,则这里使用非对称算法的签名函数计算S;若选择对称算法的MAC校验,则这里使用对称算法的CBC_MAC函数计算MAC作为S;若选择无认证,则这里只做加密处理,不需计算S。
下面将使用到的各个算法函数的描述如下:
CT0=Symmetric_CBC_Enc({K||Ver||IV1||MAC1},IVR,KEY.SE.ENC/SM4)
S=Signature({IVR||CT0},SK.SERVER.AUT)
S=Symmetric_CBC_MAC({IVR||CT0},KEY.SE.AUT.AES/SM4)
图9为本申请另一个实施例提供的信令的安全传输方法的流程图,如图9所示,上述信令的安全传输方法可以包括:
步骤901,SE芯片111接收终端设备100发送的由服务器200提供的指令,上述指令包括初始化指令和安全通道指令。
具体地,假设SE芯片111共收到了N+1条指令,分别标记为从0到N。则第0条指令即为初始化指令,第1到第N条指令为安全通道指令。
进一步地,SE芯片111接收终端设备100发送的由服务器200提供的指令之前,SE芯片111还可以接收终端设备100发送的获取信息指令;将SE芯片111当前支持的安全通道协议的版本和SE芯片111中密钥的版本发送给终端设备100;则,终端设备100发送的指令可以为:与SE芯片111当前支持的安全通道协议的版本和SE芯片111中密钥的版本相匹配的指令。
具体实现时,一种实现方式中,终端设备100获取SE芯片111当前支持的安全通道协议的版本和SE芯片111中密钥的版本之后,可以将SE芯片111当前支持的安全通道协议的版本和SE芯片111中密钥的版本发送给服务器200,从而可以使服务器200向终端设备100发送与SE芯片111当前支持的安全通道协议的版本和SE芯片111中密钥的版本相匹配的指令。
另一种实现方式中,服务器200可以向终端设备100发送多个版本的指令,终端设备100获取SE芯片111当前支持的安全通道协议的版本和SE芯片111中密钥的版本之后,可以从上述多个版本的指令中获取与SE芯片111当前支持的安全通道协议的版本和SE芯片111中密钥的版本相匹配的指令。
步骤902,SE芯片111根据SE芯片111支持的认证级别,对上述初始化指令进行身份验证。
具体地,根据SE芯片111支持的认证级别,对上述初始化指令进行身份验证可以为:使用上述初始化指令中指定的密钥,对上述初始化指令的数据域中包括的签名值进行验证。
步骤903,SE芯片111在上述初始化指令通过身份验证之后,对上述初始化指令进行解密,获得SE芯片111与服务器200在当前会话中建立的安全通道的密钥、初始向量,以及服务器200加密明文数据之后获得的完整性校验值。
具体地,在上述初始化指令通过身份验证之后,SE芯片111可以使用上述初始化指令中指定的密钥,对上述初始化指令的数据域中承载的第二加密数据进行解密,获得服务器200保存的计数器的值、服务器200加密明文数据的过程中使用的密钥和初始向量,以及服务器200加密上述明文数据之后获得的完整性校验值。然后,将服务器200保存的计数器的值与SE芯片111中保存的计数器的值进行对比;如果服务器200保存的计数器的值大于或等于SE芯片111中保存的计数器的值,则保存解密获得的服务器200加密上述明文数据的过程中使用的密钥和初始向量,以及服务器200加密上述明文数据之后获得的完整性校验值。
步骤904,SE芯片111利用上述密钥、上述初始向量和上述完整性校验值,对上述安全通道指令中包括的第一加密数据进行解密,获得明文数据。
其中,上述第一加密数据是服务器加密明文数据之后获得的,上述第一加密数据承载在上述安全通道指令中。
需要说明的是,本实施例中,安全通道指令必须严格紧接着初始化指令执行,若安全通道指令执行的前一条指令不是安全通道指令或初始化指令,则需要返回错误码。
上述信令的安全传输方法中,SE芯片111接收终端设备100发送的由服务器200提供的指令之后,根据SE芯片111支持的认证级别,对上述初始化指令进行身份验证,在上述初始化指令通过身份验证之后,对上述初始化指令进行解密,获得SE芯片111与服务器200在当前会话中建立的安全通道的密钥、初始向量,以及服务器200加密明文数据之后获得的完整性校验值,利用上述密钥、上述初始向量和上述完整性校验值,对上述安全通道指令中包括的第一加密数据进行解密,获得明文数据。本实施例中,服务器200在生成指令之后,无须与SE芯片111进行交互,直接将指令打包发送给SE芯片111,由SE芯片111对接收到的指令进行身份验证和解密,既可以保证指令的真实性和机密性,又节约了服务器200的计算资源。
本申请图9所示实施例,步骤902和步骤903所示的验证流程中,SE芯片111首先需要根据SE芯片111支持的安全级别,对初始化指令的数据域中承载的签名值进行验证,验证通过后,再对初始化指令的数据域中承载的第二加密数据进行解密。若SE芯片111支持的认证级别为无认证,则不需要进行初始化指令的身份验证操作;若SE芯片111支持的安全级别为无安全,则不需要进行初始化指令的解密操作。
SE芯片111的验证流程的输入数据可以包括:
Package_0,KEY.SE.ENC,PK.SERVER.AUT/KEY.SE.AUT
验证流程的输出数据可以包括:
K,IV1,MAC1,Ver
概括来说,SE芯片111的验证流程可以为:
首先,使用初始化指令中指定的密钥,对初始化指令的数据域中承载的签名值S进行验证,这里根据不同的认证级别,会使用不同的密钥和算法。
若验证失败,则返回响应的错误码,否则继续下一步。
使用初始化指令中指定的密钥,对初始化指令中的密文进行解密。这里根据不同的认证级别,会使用不同的密钥和算法,且如果用户选择的安全级别为无安全,则不需要进行解密。
最后,若解密成功,对比解密得到的Ver,若比SE芯片111中存储的Ver小,则拒绝该初始化指令,返回相应的错误码。否则将解密得到的K,IV1和MAC1保存,用于后续安全通道指令的解密。
具体来说,SE芯片111的验证流程根据SE芯片111支持的认证级别不同,会执行不同的流程,以下分别针对不同的认证级别,对SE芯片111的验证流程进行介绍。
图10为本申请一个实施例提供的SE芯片111的验证流程的示意图,如图10所示,若用户选择使用SM9算法进行签名,使用对称算法进行加密保护,则SE芯片111的验证流程可以包括:
首先,使用ID.SERVER,对初始化指令的数据域中承载的签名值S进行验证,这里使用SM9算法,将{KEYID_AUT||KEYID_ENC||IVR||CT0}作为待验证数据,S作为签名值,ID.SERVER作为公钥进行验证。
若验证失败,则返回响应的错误码,否则继续下一步。
使用初始化指令中指定的密钥(KEY.SE.ENC.AES或KEY.SE.ENC.SM4),对初始化指令的数据域中承载的第二加密数据进行解密。如果用户选择的安全级别为无安全,则不需要对第二加密数据进行解密。
若解密成功,对比解密得到的Ver与SE芯片111中存储的Ver,若解密得到的Ver比SE芯片111中存储的Ver小,则拒绝该初始化指令,返回相应的错误码。否则将解密得到的K,IV1和MAC1保存,用于后续安全通道指令的解密。
图11为本申请另一个实施例提供的SE芯片111的验证流程的示意图,如图11所示,若用户选择使用SM2算法进行签名,使用对称算法进行加密流程保护,则SE芯片111的验证流程可以包括:
首先,使用PK.KGC.ROOT.SM2验证初始化指令中的{PK.SERVER.AUT.SM2||SIGN.PK.SERVER},若验证通过,则使用PK.SERVER.AUT.SM2对初始化指令中的签名值S进行验证。这里使用SM2算法,将{KEYID_AUT||KEYID_ENC||IVR||CT0}作为待验证数据,S作为签名值,PK.SERVER.AUT.SM2作为公钥进行验证。
若验证失败,则返回响应的错误码,否则继续下一步。
使用初始化指令中指定的密钥(KEY.SE.ENC.AES或KEY.SE.ENC.SM4),对初始化指令的数据域中承载的第二加密数据进行解密。如果用户选择的安全级别为无安全,则不需要对第二加密数据进行解密。
若解密成功,对比解密得到的Ver与SE芯片111中存储的Ver,若解密得到的Ver比SE芯片111中存储的Ver小,则拒绝该初始化指令,返回相应的错误码。否则将解密得到的K,IV1和MAC1保存,用于后续安全通道指令的解密。
图12为本申请再一个实施例提供的SE芯片111的验证流程的示意图,如图12所示,若用户选择使用对称算法进行签名,使用对称算法进行加密流程保护,则SE芯片111的验证流程可以包括:
首先,使用初始化指令中指定的密钥(KEY.SE.AUT.AES或KEY.SE.AUT.SM4)对上述初始化指令的数据域中承载的签名值MACR进行验证。这里使用SM4MAC的函数,将{KEYID_AUT||KEYID_ENC||IVR||CT0}作为待验证数据,KEY.SE.AUT.AES或KEY.SE.AUT.SM4作为密钥,计算得到MACR’,若计算出的MACR’与初始化指令中的MACR相同,则验证通过。
若验证失败,则返回响应的错误码,否则继续下一步。
使用初始化指令中指定的密钥(KEY.SE.ENC.AES或KEY.SE.ENC.SM4),对上述初始化指令的数据域中承载的第二加密数据进行解密。如果用户选择的安全级别为无安全,则不需要对第二加密数据进行解密。
若解密成功,对比解密得到的Ver与SE芯片111中存储的Ver,若解密得到的Ver比SE芯片111中存储的Ver小,则拒绝该初始化指令,返回相应的错误码。否则将解密得到的K,IV1和MAC1保存,用于后续安全通道指令的解密。
本申请图9所示实施例中,步骤904所述的解密流程用于解密得到服务器200下发的明文数据,即将密文CTi转换为明文PTi
解密流程的输入数据可以包括:K,IV1,MAC1,CT1,CT2,…,CTN;其中,K,IV1,MAC1都是从验证流程中得到的数据,CT1到CTN分别是后续的安全通道指令的数据域中承载的第一加密数据。
解密流程的输出数据可以包括:PT1,PT2,…,PTN
这里根据用户选择的安全级别不同,会有不同的处理流程,主要分为两种,分别是机密性和完整性保护,以及仅完整性保护。若用户选择的安全级别为机密性和完整性保护,则使用GCM解密函数进行解密与完整性验证;若用户选择的安全级别为仅完整性保护,则使用对称算法的CBC_MAC函数验证完整性。
图13为本申请一个实施例提供的SE芯片111的解密流程的示意图,如图13所示,SE芯片111的解密流程可以包括:
步骤1,对密文CTi进行解密时,使用的密钥为会话密钥K,使用的初始向量为IVi,输入的完整性校验数据为MACi。输出为明文PTi||MACi+1
步骤2,从步骤1得到的数据中取出MACi+1,根据步骤1中的IVi计算得到IVi+1
步骤3,将计数器i加1,回到步骤1,循环执行直到i>N。
上述流程中使用到的GCM解密函数可以表示如下:
{PTi}=Symmetric_GCM_Dec(CTi,K,IVi,AAD,MACi);
若用户选择的安全级别为仅完整性保护,则使用的CBC_MAC函数可以如下所示:MACi=Symmetric_CBC_MAC(CTi,K,IVi);
计算IVi的函数可以如下所示:IVi=IVi-1+256。
最后一包数据处理得到的MACN+1是固定的16字节‘0x00’。
本申请实施例提供的信令的安全传输方法支持SM9标识密码算法,可以实现无证书的认证,同时为了兼容多种密码算法和认证方式。本申请实施例提供的信令的安全传输方法同时支持基于ECC密码的SM2算法和对称密码算法SM4/AES,且在框架层面保留了以后增加新的算法支持的可能性,可以很方便的兼容大部分现有的密码算法。
使用了本申请实施例中提出的安全通道协议后,若使用者希望从服务器200向SE芯片111中下发一些指令,可以使用本申请实施例提出的SCP90协议,对数据进行加密并认证,服务器200处理并生成的密文指令可以一次发给多个终端设备100中的不同SE芯片111,这样服务器200可以一次为一批SE芯片111生成对应的处理指令,且生成后即可以不用与SE芯片111进行交互,直接将该数据发送给SE芯片111,SE芯片111可以对接收到的数据进行身份验证和解密。这种方案既可以保护传输的数据的真实性和机密性,又节约服务器200的计算资源,仅计算一次,可以对多个SE芯片111生效。
在传统的使用SCP03协议的应用场景中,在手机中安装一个交通卡应用需要以分钟计的时间,而使用了本申请实施例中提出的安全通道协议后,可将时间压缩到秒级,可以极大地提升用户的使用体验,减少应用过程中消耗的带宽和交互次数。
本申请实施例中提供的初始化信令、安全通道信令和获取信息信令的格式,是一种表明使用的协议版本和选用的算法的封装格式,当然,本申请实施例并不仅限于此,还可以使用其他的格式来封装这些信息,只要可以传输这些信息即可。
另外,除了本申请实施例提供的使用GCM模式来加密明文并生成完整性验证数据的方法,也可以使用其他的对称算法运算模式来完成密文的计算与完整性数据的计算,例如:使用电码本(electronic codebook,ECB)模式或CBC模式来计算密文,使用CBC_MAC来计算得到MAC值。
本申请实施例结合国密算法,实现了卡外实体与SE芯片的单向认证和交互,其中实现机密性保护和身份认证的算法可以有多种选择,并不仅限于本申请实施例中提到的几种特定的组合。因此将本申请实施例中提到的算法改用其他算法,也可以实现与本申请实施例相似的功能。
可以理解的是,上述实施例中的部分或全部步骤或操作仅是示例,本申请实施例还可以执行其它操作或者各种操作的变形。此外,各个步骤可以按照上述实施例呈现的不同的顺序来执行,并且有可能并非要执行上述实施例中的全部操作。
可以理解的是,服务器200为了实现上述功能,其包含了执行各个功能相应的硬件和/或软件模块。结合本申请所公开的实施例描述的各示例的算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以结合实施例对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本实施例可以根据上述方法实施例对服务器200进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个模块中。上述集成的模块可以采用硬件的形式实现。需要说明的是,本实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
图14为本申请一个实施例提供的信令的安全传输装置的结构示意图,如图14所示,上述信令的安全传输装置可以包括:获取模块1401、加密模块1402、生成模块1403、打包模块1404和发送模块1405;
其中,获取模块1401,用于获取待发送的明文数据;
加密模块1402,用于根据SE芯片111支持的安全级别对上述明文数据进行加密,获得第一加密数据;其中,SE芯片111安装在终端设备100中;
获取模块1401,还用于获取服务器200与SE芯片111在当前会话中建立的安全通道的版本号;
生成模块1403,用于根据第一加密数据生成安全通道指令,以及根据上述安全级别和上述版本号,生成初始化指令;
打包模块1404,用于对上述初始化指令和上述安全通道指令进行打包,获得数据包;
发送模块1405,用于将打包模块1404打包获得的数据包发送给终端设备100,以便终端设备100将上述数据包中的初始化指令和安全通道指令发送给SE芯片111,使SE芯片111根据上述初始化指令,对上述安全通道指令进行解析,获得明文数据。
图14所示实施例提供的信令的安全传输装置可以作为服务器200,或服务器200的一部分实现本申请图6所示方法实施例的技术方案,其实现原理和技术效果可以进一步参考方法实施例中的相关描述。
图15为本申请另一个实施例提供的信令的安全传输装置的结构示意图,与图14所示的信令的安全传输装置相比,不同之处在于,图15所示的信令的安全传输装置中,生成模块1403,具体用于将第一加密数据承载在安全通道指令格式的数据域中,以获得安全通道指令;
生成模块1403,具体用于根据上述安全级别设置初始化指令格式中安全参数域的值,根据上述版本号设置上述初始化指令格式中协议版本域的值,以获得初始化指令;其中,上述安全参数域的值用于指示将上述明文数据转换为第一加密数据所采用的加密方式。
进一步地,上述信令的安全传输装置还可以包括:认证模块1406;
认证模块1406,用于在加密模块1402获得第一加密数据之后,根据SE芯片111支持的认证级别对第一加密数据进行认证处理,获得第二加密数据。
本实施例中,认证模块1406可以包括:数据加密子模块14061和签名子模块14062;
数据加密子模块14061,用于对服务器200保存的计数器的值、加密上述明文数据时使用的密钥和初始向量,以及第一加密数据中的完整性校验值进行加密,获得第二加密数据;
签名子模块14062,用于使用与SE芯片111支持的认证级别对应的签名函数,对第二加密数据进行签名,获得上述第二加密数据对应的签名值。
本实施例中,生成模块1403,具体用于根据上述安全级别和上述认证级别设置初始化指令格式中安全参数域的值,根据上述版本号设置上述初始化指令格式中协议版本域的值;以及,根据上述安全参数域的值,将第二加密数据和第二加密数据对应的签名值承载在上述初始化指令格式的数据域中,以获得初始化指令;其中,上述安全参数域的值用于指示将上述明文数据转换为第一加密数据所采用的加密方式,以及指示对第一加密数据进行认证所采用的认证方式。
本实施例中,加密模块1402,具体用于获取上述明文数据中待处理的第i条明文数据,将预定的数据段与第i条明文数据进行拼接;使用与SE芯片111支持的安全级别对应的函数,对拼接获得的数据进行加密。
具体实现时,加密模块1402,具体用于当SE芯片111支持的安全级别为机密性与完整性保护时,使用加密函数对拼接获得的数据进行加密;当SE芯片111支持的安全级别为完整性保护时,使用完整性保护函数对拼接获得的数据进行加密。
图15所示实施例提供的信令的安全传输装置可以作为服务器200,或服务器200的一部分实现本申请图6所示方法实施例的技术方案,其实现原理和技术效果可以进一步参考方法实施例中的相关描述。
同样,可以理解的是,SE芯片111为了实现上述功能,其包含了执行各个功能相应的硬件和/或软件模块。结合本申请所公开的实施例描述的各示例的算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以结合实施例对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本实施例可以根据上述方法实施例对SE芯片111进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个模块中。上述集成的模块可以采用硬件的形式实现。需要说明的是,本实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
图16为本申请再一个实施例提供的信令的安全传输装置的结构示意图,如图16所示,信令的安全传输装置可以包括:接收模块1601、验证模块1602和解密模块1603;
接收模块1601,用于接收终端设备100发送的由服务器200提供的指令,上述指令包括初始化指令和安全通道指令;
验证模块1602,用于根据SE芯片111支持的认证级别,对上述初始化指令进行身份验证;
解密模块1603,用于在上述初始化指令通过身份验证之后,对初始化指令进行解密,获得SE芯片111与服务器200在当前会话中建立的安全通道的密钥、初始向量、以及服务器200加密明文数据之后获得的完整性校验值;以及利用上述密钥、上述初始向量和上述完整性校验值,对上述安全通道指令中包括的第一加密数据进行解密,获得明文数据;其中,第一加密数据是服务器200加密明文数据之后获得的,第一加密数据承载在上述安全通道指令中。
图16所示实施例提供的信令的安全传输装置可以作为SE芯片111,或SE芯片111的一部分实现本申请图9所示方法实施例的技术方案,其实现原理和技术效果可以进一步参考方法实施例中的相关描述。
图17为本申请再一个实施例提供的信令的安全传输装置的结构示意图,与图16所示的信令的安全传输装置相比,不同之处在于,图17所示的信令的安全传输装置中,验证模块1602,具体用于使用上述初始化指令中指定的密钥,对上述初始化指令的数据域中包括的签名值进行验证。
本实施例中,解密模块1603可以包括:数据解密子模块16031、对比子模块16032和保存子模块16033;
数据解密子模块16031,用于使用上述初始化指令中指定的密钥,对上述初始化指令的数据域中承载的第二加密数据进行解密,获得服务器200保存的计数器的值、服务器200加密上述明文数据的过程中使用的密钥和初始向量,以及服务器200加密上述明文数据之后获得的完整性校验值;
对比子模块16032,用于将服务器200保存的计数器的值与SE芯片111中保存的计数器的值进行对比;
保存子模块16033,用于当服务器200保存的计数器的值大于或等于SE芯片中保存的计数器的值时,保存数据解密子模块16031解密获得的服务器200加密上述明文数据的过程中使用的密钥和初始向量,以及上述完整性校验值。
进一步地,上述信令的安全传输装置还可以包括:发送模块1604;
接收模块1601,还用于在接收终端设备100发送的指令之前,接收终端设备100发送的获取信息指令;
发送模块1604,用于将上述SE芯片当前支持的安全通道协议的版本和上述SE芯片中密钥的版本发送给终端设备100;
则,终端设备100发送的指令可以包括:与SE芯片111当前支持的安全通道协议的版本和SE芯片111中密钥的版本相匹配的指令。
图17所示实施例提供的信令的安全传输装置可以作为SE芯片111,或SE芯片111的一部分实现本申请图9所示方法实施例的技术方案,其实现原理和技术效果可以进一步参考方法实施例中的相关描述。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行本申请图6所示实施例提供的信令的安全传输方法。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行本申请图9所示实施例提供的信令的安全传输方法。
本申请实施例还提供一种计算机程序产品,该计算机程序产品包括计算机程序,当其在计算机上运行时,使得计算机执行本申请图6所示实施例提供的信令的安全传输方法。
本申请实施例还提供一种计算机程序产品,该计算机程序产品包括计算机程序,当其在计算机上运行时,使得计算机执行本申请图9所示实施例提供的信令的安全传输方法。
本申请实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示单独存在A、同时存在A和B、单独存在B的情况。其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项”及其类似表达,是指的这些项中的任意组合,包括单项或复数项的任意组合。例如,a,b和c中的至少一项可以表示:a,b,c,a和b,a和c,b和c或a和b和c,其中a,b,c可以是单个,也可以是多个。
本领域普通技术人员可以意识到,本文中公开的实施例中描述的各单元及算法步骤,能够以电子硬件、计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,任一功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。本申请的保护范围应以所述权利要求的保护范围为准。

Claims (17)

1.一种信令的安全传输方法,用于服务器,其特征在于,包括:
获取待发送的明文数据;
根据安全元件SE芯片支持的安全级别对所述明文数据进行加密,获得第一加密数据;所述SE芯片安装在终端设备中;
获取所述服务器与所述SE芯片在当前会话中建立的安全通道的版本号;
根据所述第一加密数据生成安全通道指令,以及根据所述安全级别和所述版本号,生成初始化指令;
对所述初始化指令和所述安全通道指令进行打包,获得数据包;
将所述数据包发送给所述终端设备,以便所述终端设备将所述数据包中的所述初始化指令和所述安全通道指令发送给所述SE芯片,使得所述SE芯片根据所述SE芯片支持的认证级别,对所述初始化指令进行身份验证;在所述初始化指令通过身份验证之后,对所述初始化指令进行解密,获得对所述安全通道指令中包括的第一加密数据进行解密的相关解密参数,利用所述解密参数对所述第一加密数据进行解密,获得所述明文数据。
2.根据权利要求1所述的方法,其特征在于,所述获得对所述安全通道指令中包括的第一加密数据进行解密的相关解密参数包括:
获得所述SE芯片与所述服务器在当前会话中建立的安全通道的密钥、初始向量、以及所述服务器加密明文数据之后获得的完整性校验值。
3.根据权利要求1所述的方法,其特征在于,所述根据所述第一加密数据生成安全通道指令包括:
将所述第一加密数据承载在安全通道指令格式的数据域中,以获得安全通道指令;
所述根据所述安全级别和所述版本号,生成初始化指令包括:
根据所述安全级别设置初始化指令格式中安全参数域的值,根据所述版本号设置所述初始化指令格式中协议版本域的值,以获得初始化指令;其中,所述安全参数域的值用于指示将所述明文数据转换为第一加密数据所采用的加密方式。
4.根据权利要求1所述的方法,其特征在于,所述获得第一加密数据之后,还包括:
根据所述SE芯片支持的认证级别对所述第一加密数据进行认证处理,获得第二加密数据。
5.根据权利要求4所述的方法,其特征在于,所述根据所述SE芯片支持的认证级别对所述第一加密数据进行认证处理,获得第二加密数据包括:
对所述服务器保存的计数器的值、加密所述明文数据时使用的密钥和初始向量,以及所述第一加密数据中的完整性校验值进行加密,获得所述第二加密数据;
使用与所述SE芯片支持的认证级别对应的签名函数,对所述第二加密数据进行签名,获得所述第二加密数据对应的签名值。
6.根据权利要求5所述的方法,其特征在于,所述根据所述安全级别和所述版本号,生成初始化指令包括:
根据所述安全级别和所述认证级别设置初始化指令格式中安全参数域的值,根据所述版本号设置所述初始化指令格式中协议版本域的值;以及,根据所述安全参数域的值,将所述第二加密数据和所述第二加密数据对应的签名值承载在所述初始化指令格式的数据域中,以获得所述初始化指令;其中,所述安全参数域的值用于指示将所述明文数据转换为第一加密数据所采用的加密方式,以及指示对所述第一加密数据进行认证所采用的认证方式。
7.根据权利要求1所述的方法,其特征在于,所述根据安全元件SE芯片支持的安全级别对所述明文数据进行加密,获得第一加密数据包括:
获取所述明文数据中待处理的第i条明文数据,将预定的数据段与所述第i条明文数据进行拼接;
使用与所述SE芯片支持的安全级别对应的函数,对拼接获得的数据进行加密。
8.根据权利要求7所述的方法,其特征在于,所述使用与所述SE芯片支持的安全级别对应的函数,对拼接获得的数据进行加密包括:
当所述SE芯片支持的安全级别为机密性与完整性保护时,使用加密函数对所述拼接获得的数据进行加密;
当所述SE芯片支持的安全级别为完整性保护时,使用完整性保护函数对所述拼接获得的数据进行加密。
9.一种信令的安全传输方法,用于安全元件SE芯片,其特征在于,包括:
接收终端设备发送的由服务器提供的指令,所述指令包括初始化指令和安全通道指令;
根据所述SE芯片支持的认证级别,对所述初始化指令进行身份验证;
在所述初始化指令通过身份验证之后,对所述初始化指令进行解密,获得所述SE芯片与所述服务器在当前会话中建立的安全通道的密钥、初始向量、以及所述服务器加密明文数据之后获得的完整性校验值;
利用所述密钥、所述初始向量和所述完整性校验值,对所述安全通道指令中包括的第一加密数据进行解密,获得所述明文数据;其中,所述第一加密数据是所述服务器加密明文数据之后获得的,所述第一加密数据承载在所述安全通道指令中。
10.根据权利要求9所述的方法,其特征在于,所述根据所述SE芯片支持的认证级别,对所述初始化指令进行身份验证包括:
使用所述初始化指令中指定的密钥,对所述初始化指令的数据域中包括的签名值进行验证。
11.根据权利要求10所述的方法,其特征在于,所述对所述初始化指令进行解密,获得所述SE芯片与所述服务器在当前会话中建立的安全通道的密钥、初始向量,以及所述服务器加密明文数据之后获得的完整性校验值包括:
使用所述初始化指令中指定的密钥,对所述初始化指令的数据域中承载的第二加密数据进行解密,获得所述服务器保存的计数器的值、所述服务器加密所述明文数据的过程中使用的密钥和初始向量,以及所述服务器加密所述明文数据之后获得的完整性校验值;
将所述服务器保存的计数器的值与所述SE芯片中保存的计数器的值进行对比;
如果所述服务器保存的计数器的值大于或等于所述SE芯片中保存的计数器的值,则保存解密获得的所述密钥和所述初始向量,以及所述完整性校验值。
12.根据权利要求9所述的方法,其特征在于,所述接收终端设备发送的由服务器提供的指令之前,还包括:
接收终端设备发送的获取信息指令;
将所述SE芯片当前支持的安全通道协议的版本和所述SE芯片中密钥的版本发送给所述终端设备;
所述终端设备发送的指令包括:与所述SE芯片当前支持的安全通道协议的版本和所述SE芯片中密钥的版本相匹配的指令。
13.一种信令的安全传输装置,设置在服务器中,其特征在于,所述信令的安全传输装置包括:
获取模块,用于获取待发送的明文数据;
加密模块,用于根据安全元件SE芯片支持的安全级别对所述明文数据进行加密,获得第一加密数据;所述SE芯片安装在终端设备中;
所述获取模块,还用于获取所述服务器与所述SE芯片在当前会话中建立的安全通道的版本号;
生成模块,用于根据所述第一加密数据生成安全通道指令,以及根据所述安全级别和所述版本号,生成初始化指令;
打包模块,用于对所述初始化指令和所述安全通道指令进行打包,获得数据包;
发送模块,用于将所述打包模块打包获得的数据包发送给所述终端设备,以便所述终端设备将所述数据包中的所述初始化指令和所述安全通道指令发送给所述SE芯片,使得所述SE芯片根据所述SE芯片支持的认证级别,对所述初始化指令进行身份验证;在所述初始化指令通过身份验证之后,对所述初始化指令进行解密,获得对所述安全通道指令中包括的第一加密数据进行解密的相关解密参数,利用所述解密参数对所述第一加密数据进行解密,获得所述明文数据。
14.根据权利要求13所述的装置,其特征在于,所述获得对所述安全通道指令中包括的第一加密数据进行解密的相关解密参数包括:
获得所述SE芯片与所述服务器在当前会话中建立的安全通道的密钥、初始向量、以及所述服务器加密明文数据之后获得的完整性校验值。
15.一种信令的安全传输装置,设置在安全元件SE芯片中,其特征在于,所述装置包括:
接收模块,用于接收终端设备发送的由服务器提供的指令,所述指令包括初始化指令和安全通道指令;
验证模块,用于根据所述SE芯片支持的认证级别,对所述初始化指令进行身份验证;
解密模块,用于在所述初始化指令通过身份验证之后,对所述初始化指令进行解密,获得所述SE芯片与所述服务器在当前会话中建立的安全通道的密钥、初始向量、以及所述服务器加密明文数据之后获得的完整性校验值;以及利用所述密钥、所述初始向量和所述完整性校验值,对所述安全通道指令中包括的第一加密数据进行解密,获得所述明文数据;其中,所述第一加密数据是所述服务器加密明文数据之后获得的,所述第一加密数据承载在所述安全通道指令中。
16.一种服务器,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如权利要求1-8中任一所述的方法。
17.一种安全元件SE芯片,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如权利要求9-12中任一所述的方法。
CN202110179112.8A 2021-02-09 2021-02-09 信令的安全传输方法、装置、服务器和se芯片 Active CN114944925B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202110179112.8A CN114944925B (zh) 2021-02-09 2021-02-09 信令的安全传输方法、装置、服务器和se芯片
CN202310365729.8A CN116366347A (zh) 2021-02-09 2021-02-09 信令的安全传输方法、装置和se芯片
PCT/CN2021/139731 WO2022170857A1 (zh) 2021-02-09 2021-12-20 信令的安全传输方法、装置、服务器和se芯片

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110179112.8A CN114944925B (zh) 2021-02-09 2021-02-09 信令的安全传输方法、装置、服务器和se芯片

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202310365729.8A Division CN116366347A (zh) 2021-02-09 2021-02-09 信令的安全传输方法、装置和se芯片

Publications (2)

Publication Number Publication Date
CN114944925A CN114944925A (zh) 2022-08-26
CN114944925B true CN114944925B (zh) 2023-04-07

Family

ID=82837489

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202310365729.8A Pending CN116366347A (zh) 2021-02-09 2021-02-09 信令的安全传输方法、装置和se芯片
CN202110179112.8A Active CN114944925B (zh) 2021-02-09 2021-02-09 信令的安全传输方法、装置、服务器和se芯片

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202310365729.8A Pending CN116366347A (zh) 2021-02-09 2021-02-09 信令的安全传输方法、装置和se芯片

Country Status (2)

Country Link
CN (2) CN116366347A (zh)
WO (1) WO2022170857A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115208554B (zh) * 2022-09-13 2022-12-13 三未信安科技股份有限公司 一种密钥自校验、自纠错、自恢复的管理方法及系统
CN115604715B (zh) * 2022-12-01 2023-04-18 北京紫光青藤微系统有限公司 基于安全通道的nfc功能控制方法及移动终端设备
CN116455572B (zh) * 2023-06-16 2023-08-29 北京华安天成智能技术有限公司 数据加密方法、装置及设备
CN117118636B (zh) * 2023-10-23 2023-12-29 湖南密码工程研究中心有限公司 IPv6国密安全网卡
CN117579679B (zh) * 2024-01-15 2024-04-19 海马云(天津)信息技术有限公司 信令交互方法和装置、电子设备及存储介质

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090129594A1 (en) * 2007-11-21 2009-05-21 Clark Weissman System and method for providing a trusted network facilitating inter-process communications via an e-box
EP2584755A1 (en) * 2011-10-19 2013-04-24 Gemalto SA Method of sending a command to a secure element
KR102453705B1 (ko) * 2015-09-25 2022-10-11 삼성전자주식회사 호스트의 정당성 여부에 따라 선택적으로 결제 기능을 온(on)하는 결제 장치의 동작 방법
CN105790938B (zh) * 2016-05-23 2019-02-19 中国银联股份有限公司 基于可信执行环境的安全单元密钥生成系统及方法
CN106102054A (zh) * 2016-05-27 2016-11-09 深圳市雪球科技有限公司 一种对安全单元进行安全管理的方法以及通信系统
CN111556029A (zh) * 2017-08-31 2020-08-18 阿里巴巴集团控股有限公司 一种基于安全元件se的身份认证方法和装置
CN107995608B (zh) * 2017-12-05 2021-01-15 飞天诚信科技股份有限公司 一种通过蓝牙车载单元进行认证的方法及装置
CN108109242B (zh) * 2017-12-21 2020-08-14 广东汇泰龙科技股份有限公司 一种基于指纹开锁的硬件加密方法、系统、智能云锁
CN108200078B (zh) * 2018-01-18 2021-01-05 中国建设银行股份有限公司 签名认证工具的下载安装方法及终端设备
CN110166453A (zh) * 2019-05-21 2019-08-23 广东联合电子服务股份有限公司 一种基于se芯片的接口认证方法、系统及存储介质
CN111600854B (zh) * 2020-04-29 2022-03-08 北京智芯微电子科技有限公司 智能终端与服务端建立安全通道的方法

Also Published As

Publication number Publication date
CN116366347A (zh) 2023-06-30
CN114944925A (zh) 2022-08-26
WO2022170857A1 (zh) 2022-08-18

Similar Documents

Publication Publication Date Title
CN114944925B (zh) 信令的安全传输方法、装置、服务器和se芯片
CN113207122B (zh) 一种消息传输方法及设备
CN112995990B (zh) 一种密钥信息的同步方法、系统及设备
WO2022188033A1 (zh) 数据上传方法、数据下载方法及相关设备
CN115696237A (zh) 一种北斗通信系统中加密方法、系统及相关装置
WO2023011376A1 (zh) 一种北斗通信系统中密钥更新方法、系统及相关装置
CN111083804B (zh) 一种数据传输方法及设备
CN111935166B (zh) 通信认证方法、系统、电子设备、服务器及存储介质
CN112182624A (zh) 加密方法、加密装置、存储介质与电子设备
US9949122B2 (en) Challenge-response-test image to phone for secure pairing
CN113892103A (zh) 用于执行加解密处理的装置及方法
CN105681256A (zh) 音频通信方法以及音频通信应用设备
CN113821787B (zh) 一种安全认证方法及电子设备
CN113950048A (zh) 连接建立方法、电子设备及存储介质
CN107690667A (zh) 使用用户终端的用于用户不可否认性的支付系统及其方法
CN113596811B (zh) 一种数据传输方法及终端设备
CN113676440B (zh) 通信过程中的权限协商方法、装置和电子设备
CN112242977A (zh) 一种数据传输方法及数据传输系统
CN112667992A (zh) 认证方法、认证装置、存储介质与电子设备
CN115701016B (zh) 一种卫星通信系统中鉴权校验方法、系统及相关装置
WO2024113865A1 (zh) 视频流的安全传输方法和装置
CN117332398A (zh) 签发设备证书的方法、设备和系统
CN112615891B (zh) 配对方法及设备
CN114845297B (zh) 应用程序访问方法、电子设备及存储介质
CN118118739A (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