CN112187771A - 一种认证方法、装置和用于认证的装置 - Google Patents

一种认证方法、装置和用于认证的装置 Download PDF

Info

Publication number
CN112187771A
CN112187771A CN202011011092.5A CN202011011092A CN112187771A CN 112187771 A CN112187771 A CN 112187771A CN 202011011092 A CN202011011092 A CN 202011011092A CN 112187771 A CN112187771 A CN 112187771A
Authority
CN
China
Prior art keywords
certificate
sgx
challenger
request
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.)
Granted
Application number
CN202011011092.5A
Other languages
English (en)
Other versions
CN112187771B (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.)
Huakong Tsingjiao Information Technology Beijing Co Ltd
Original Assignee
Huakong Tsingjiao Information Technology Beijing 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 Huakong Tsingjiao Information Technology Beijing Co Ltd filed Critical Huakong Tsingjiao Information Technology Beijing Co Ltd
Priority to CN202011011092.5A priority Critical patent/CN112187771B/zh
Publication of CN112187771A publication Critical patent/CN112187771A/zh
Application granted granted Critical
Publication of CN112187771B publication Critical patent/CN112187771B/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/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • 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
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • 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
    • H04L9/0861Generation of secret information including derivation or calculation 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
    • H04L9/3263Cryptographic 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/3268Cryptographic 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)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Storage Device Security (AREA)

Abstract

本发明实施例提供一种认证方法、装置和用于认证的装置,应用于第一服务器。其中的方法包括:接收证明方的第一证书请求,以及接收挑战方的第二证书请求;响应所述第一证书请求,向所述证明方发送第一证书,以及响应所述第二证书请求,向所述挑战方发送第二证书;其中,所述第一证书包括SGX环境的证明方对应的第一扩展证书,或者非SGX环境的证明方对应的第一普通证书,所述第二证书包括SGX环境的挑战方对应的第二扩展证书,或者非SGX环境的挑战方对应的第二普通证书;接收所述挑战方发送的携带所述第一证书的验证请求;响应所述验证请求,对所述第一证书进行验证。本发明实施例扩展了认证的应用范围,提高了认证的可执行性。

Description

一种认证方法、装置和用于认证的装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种认证方法、装置和用于认证的装置。
背景技术
SGX(Intel Software Guard Extensions,指令集扩展)是英特尔指令集架构的一个扩展,通过在计算平台上提供一个Enclave(安全区),即内存中一个加密的可信执行区域,可以保障关键代码和数据的机密性和完整性。
SGX认证是一个在SGX平台上运行的SGX应用程序(证明方)向远程Enclave(挑战方)证明其身份、以及证明其确实是在真实的SGX环境中正确的隔离执行的过程。也即,SGX认证是指Enclave中的程序向其他Enclave证明其完整性和真实性的过程。
目前,SGX认证过程中,需要通过Intel IAS(Intel Attestation Server,英特尔认证服务器)验证SGX环境的可信性。因此,需要证明方和挑战方均具有SGX环境。然而,在实际应用中,大多数挑战方并不具备SGX环境,对于不具备SGX环境的挑战方则无法向SGX应用程序发起SGX认证的挑战,导致当前SGX认证的应用范围受限,可执行性较低。
发明内容
本发明实施例提供一种认证方法、装置和用于认证的装置,在挑战方不具备SGX环境的情况下,也可以实现对证明方的认证,扩展了认证的应用范围,提高了认证的可执行性。
为了解决上述问题,本发明实施例公开了一种认证方法,应用于第一服务器,所述方法包括:
接收证明方的第一证书请求,以及接收挑战方的第二证书请求;
响应所述第一证书请求,向所述证明方发送第一证书,以及响应所述第二证书请求,向所述挑战方发送第二证书;其中,所述第一证书包括SGX环境的证明方对应的第一扩展证书,或者非SGX环境的证明方对应的第一普通证书,所述第二证书包括SGX环境的挑战方对应的第二扩展证书,或者非SGX环境的挑战方对应的第二普通证书;
接收所述挑战方发送的携带所述第一证书的验证请求;
响应所述验证请求,对所述第一证书进行验证。
可选地,所述响应所述验证请求,对所述第一证书进行验证,包括:
响应所述验证请求,确定所述验证请求携带的第一证书是否包含第一SGX认证报告,所述第一SGX认证报告为SGX环境的证明方基于其SGX本地认证的结果生成的;
若确定所述验证请求携带的第一证书包含所述第一SGX认证报告,则确定所述第一证书为第一扩展证书;
将所述第一扩展证书发送至第二服务器进行验证。
可选地,所述确定所述验证请求携带的第一证书是否包含第一SGX认证报告之后,所述方法还包括:
若确定所述验证请求携带的第一证书不包含所述第一SGX认证报告,则确定所述第一证书为第一普通证书;
对所述第一普通证书进行验证。
可选地,所述接收证明方的第一证书请求,包括:
接收SGX环境的证明方发送的携带第一SGX认证报告的第一证书请求,或者,接收非SGX环境的证明方发送的不携带第一SGX认证报告的第一证书请求;
所述响应所述第一证书请求,向所述证明方发送第一证书,包括:
在接收到SGX环境的证明方发送的携带第一SGX认证报告的第一证书请求时,向所述SGX环境的证明方发送包含所述第一SGX认证报告的第一扩展证书,或者,在接收到非SGX环境的证明方发送的不携带第一SGX认证报告的第一证书请求时,向所述非SGX环境的证明方发送不包含第一SGX认证报告的第一普通证书。
可选地,所述接收挑战方的第二证书请求,包括:
接收SGX环境的挑战方发送的携带第二SGX认证报告的第二证书请求,或者,接收非SGX环境的挑战方发送的不携带第二SGX认证报告的第二证书请求;其中,所述第二SGX认证报告为SGX环境的挑战方基于其SGX本地认证的结果生成的;
所述响应所述第二证书请求,向所述挑战方发送第二证书,包括:
在接收到SGX环境的挑战方发送的携带第二SGX认证报告的第二证书请求时,向所述SGX环境的挑战方发送包含所述第二SGX认证报告的第二扩展证书,或者,在接收到非SGX环境的挑战方发送的不携带第二SGX认证报告的第二证书请求时,向所述非SGX环境的挑战方发送不包含第二SGX认证报告的第二普通证书。
可选地,所述响应所述验证请求,对所述第一证书进行验证之后,所述方法还包括:
在所述第一证书为第一扩展证书的情况下,从第二服务器获取所述第一扩展证书的验证结果,以及将所述第一扩展证书的验证结果发送给所述挑战方;或者
在所述第一证书为第一普通证书的情况下,向所述挑战方发送所述第一服务器对所述第一普通证书的验证结果。
另一方面,本发明实施例公开了一种认证方法,应用于证明方,所述证明方为SGX环境的证明方或者非SGX环境的证明方,所述方法包括:
向第一服务器发送第一证书请求;
接收所述第一服务器对所述第一证书请求返回的第一证书,所述第一证书包括SGX环境的证明方对应的第一扩展证书,或者非SGX环境的证明方对应的第一普通证书;
向挑战方发送所述第一证书,所述挑战方包括SGX环境的挑战方或者非SGX环境的挑战方。
可选地,所述证明方为SGX环境的证明方,所述向第一服务器发送第一证书请求,包括:
所述SGX环境的证明方进行SGX本地认证,生成第一SGX认证报告;
向所述第一服务器发送携带所述第一SGX认证报告的第一证书请求;
所述接收所述第一服务器对所述第一证书请求返回的第一证书,包括:
接收所述第一服务器对所述第一证书请求返回的包含所述第一SGX认证报告的第一扩展证书,所述第一扩展证书为所述第一服务器在确定所述第一SGX认证报告通过第二服务器的验证后生成的。
可选地,所述证明方为非SGX环境的证明方,所述向第一服务器发送第一证书请求,包括:
向第一服务器发送不携带第一SGX认证报告的第一证书请求;
所述接收所述第一服务器对所述第一证书请求返回的第一证书,包括:
接收所述第一服务器对所述第一证书请求返回的不包含第一SGX认证报告的第一普通证书。
可选地,所述接收所述第一服务器对所述第一证书请求返回的第一证书之后,所述方法还包括:
接收所述挑战方发送的第二证书,所述第二证书包括SGX环境的挑战方对应的第二扩展证书,或者非SGX环境的挑战方对应的第二普通证书;
对所述第二证书进行验证。
可选地,所述接收所述挑战方发送的第二证书之后,所述方法还包括:
接收所述挑战方发送的共享秘钥请求;
响应所述共享秘钥请求,生成共享秘钥;
利用所述挑战方的第二证书对所述共享秘钥进行加密;
向所述挑战方发送加密的共享秘钥,以使所述挑战方利用所述共享秘钥与所述证明方建立加密信道。
可选地,所述证明方为SGX环境的证明方,所述响应所述共享秘钥请求,生成共享秘钥,包括:
响应所述共享秘钥请求,在可信空间中生成共享秘钥。
可选地,所述证明方为隐私数据的发送方,所述挑战方为隐私数据的接收方,所述以使所述挑战方利用所述共享秘钥与所述证明方建立加密信道之后,所述方法还包括:
通过所述加密信道,向所述挑战方发送隐私数据。
另一方面,本发明实施例公开了一种认证方法,应用于挑战方,所述挑战方为SGX环境的挑战方或者非SGX环境的挑战方,所述方法包括:
向第一服务器发送第二证书请求;
接收所述第一服务器对所述第二证书请求返回的第二证书,所述第二证书包括SGX环境的挑战方对应的第二扩展证书,或者非SGX环境的挑战方对应的第二普通证书;
接收证明方发送的第一证书,所述第一证书包括SGX环境的证明方对应的第一扩展证书,或者非SGX环境的证明方对应的第一普通证书;
向所述第一服务器发送携带所述第一证书的验证请求,以通过所述第一服务器对所述证明方的第一证书进行验证。
可选地,所述挑战方为SGX环境的挑战方,所述向第一服务器发送第二证书请求,包括:
所述SGX环境的挑战方进行SGX本地认证,生成第二SGX认证报告;
向所述第一服务器发送携带所述第二SGX认证报告的第二证书请求;
所述接收所述第一服务器对所述第二证书请求返回的第二证书,包括:
接收所述第一服务器对所述第二证书请求返回的包含所述第二SGX认证报告的第二扩展证书,所述第二扩展证书为所述第一服务器在确定所述第二SGX认证报告通过第二服务器的验证后生成的。
可选地,所述挑战方为非SGX环境的挑战方,所述向第一服务器发送第二证书请求,包括:
向第一服务器发送不携带第二SGX认证报告的第二证书请求;
所述接收所述第一服务器对所述第二证书请求返回的第二证书,包括:
接收所述第一服务器对所述第二证书请求返回的不包含第二SGX认证报告的第二普通证书。
可选地,所述接收所述第一服务器对所述第二证书请求返回的第二证书之后,所述方法还包括:
向所述证明方发送所述第二证书,以使所述证明方对所述第二证书进行验证。
可选地,所述向所述第一服务器发送携带所述第一证书的验证请求之后,所述方法还包括:
接收所述第一服务器返回的所述第一证书的验证结果;
在确定所述验证结果通过的情况下,向所述证明方发送共享秘钥请求;
接收所述证明方对所述共享秘钥请求返回的加密的共享秘钥,所述共享秘钥为所述证明方根据所述挑战方的第二证书生成的;
对所述加密的共享秘钥进行解密得到所述共享秘钥;
基于所述共享秘钥与所述证明方建立加密信道。
可选地,所述证明方为隐私数据的发送方,所述挑战方为隐私数据的接收方,所述基于所述共享秘钥与所述证明方建立加密信道之后,所述方法还包括:
通过所述加密信道,接收所述证明方发送的隐私数据。
另一方面,本发明实施例公开了一种认证系统,所述认证系统包括第一服务器、证明方、以及挑战方;其中,所述证明方为SGX环境的证明方或者非SGX环境的证明方,所述挑战方为SGX环境的挑战方或者非SGX环境的挑战方;
所述证明方,用于向所述第一服务器发送第一证书请求;
所述挑战方,用于向所述第一服务器发送第二证书请求;
所述第一服务器,用于接收证明方的第一证书请求,以及接收挑战方的第二证书请求,并且响应所述第一证书请求,向所述证明方发送第一证书,以及响应所述第二证书请求,向所述挑战方发送第二证书;其中,所述第一证书包括SGX环境的证明方对应的第一扩展证书,或者非SGX环境的证明方对应的第一普通证书,所述第二证书包括SGX环境的挑战方对应的第二扩展证书,或者非SGX环境的挑战方对应的第二普通证书;
所述证明方,还用于接收所述第一服务器对所述第一证书请求返回的第一证书,并且向所述挑战方发送所述第一证书;
所述挑战方,还用于接收所述证明方发送的所述第一证书,并且向所述第一服务器发送携带所述第一证书的验证请求;
所述第一服务器,还用于响应所述验证请求,对所述第一证书进行验证。
另一方面,本发明实施例公开了一种认证装置,应用于第一服务器,所述装置包括:
第一接收模块,用于接收证明方的第一证书请求,以及接收挑战方的第二证书请求;
第一响应模块,用于响应所述第一证书请求,向所述证明方发送第一证书,以及响应所述第二证书请求,向所述挑战方发送第二证书;其中,所述第一证书包括SGX环境的证明方对应的第一扩展证书,或者非SGX环境的证明方对应的第一普通证书,所述第二证书包括SGX环境的挑战方对应的第二扩展证书,或者非SGX环境的挑战方对应的第二普通证书;
第二接收模块,用于接收所述挑战方发送的携带所述第一证书的验证请求;
第一证书验证模块,用于响应所述验证请求,对所述第一证书进行验证。
可选地,所述第一证书验证模块,包括:
第一确定子模块,用于响应所述验证请求,确定所述验证请求携带的第一证书是否包含第一SGX认证报告,所述第一SGX认证报告为SGX环境的证明方基于其SGX本地认证的结果生成的;
第二确定子模块,用于若确定所述验证请求携带的第一证书包含所述第一SGX认证报告,则确定所述第一证书为第一扩展证书;
远程验证子模块,用于将所述第一扩展证书发送至第二服务器进行验证。
可选地,所述装置还包括:
证书类别确定模块,用于若确定所述验证请求携带的第一证书不包含所述第一SGX认证报告,则确定所述第一证书为第一普通证书;
所述第一证书验证模块,具体用于对所述第一普通证书进行验证。
可选地,所述第一接收模块,具体用于接收SGX环境的证明方发送的携带第一SGX认证报告的第一证书请求,或者,接收非SGX环境的证明方发送的不携带第一SGX认证报告的第一证书请求;
所述第一响应模块,具体用于在接收到SGX环境的证明方发送的携带第一SGX认证报告的第一证书请求时,向所述SGX环境的证明方发送包含所述第一SGX认证报告的第一扩展证书,或者,在接收到非SGX环境的证明方发送的不携带第一SGX认证报告的第一证书请求时,向所述非SGX环境的证明方发送不包含第一SGX认证报告的第一普通证书。
可选地,所述第一接收模块,具体用于接收SGX环境的挑战方发送的携带第二SGX认证报告的第二证书请求,或者,接收非SGX环境的挑战方发送的不携带第二SGX认证报告的第二证书请求;其中,所述第二SGX认证报告为SGX环境的挑战方基于其SGX本地认证的结果生成的;
所述第一响应模块,具体用于在接收到SGX环境的挑战方发送的携带第二SGX认证报告的第二证书请求时,向所述SGX环境的挑战方发送包含所述第二SGX认证报告的第二扩展证书,或者,在接收到非SGX环境的挑战方发送的不携带第二SGX认证报告的第二证书请求时,向所述非SGX环境的挑战方发送不包含第二SGX认证报告的第二普通证书。
可选地,所述装置还包括:
第一结果获取模块,用于在所述第一证书为第一扩展证书的情况下,从第二服务器获取所述第一扩展证书的验证结果,以及将所述第一扩展证书的验证结果发送给所述挑战方;或者
第二结果获取模块,用于在所述第一证书为第一普通证书的情况下,向所述挑战方发送所述第一服务器对所述第一普通证书的验证结果。
另一方面,本发明实施例公开了一种认证装置,应用于证明方,所述证明方为SGX环境的证明方或者非SGX环境的证明方,所述装置包括:
第一发送模块,用于向第一服务器发送第一证书请求;
第三接收模块,用于接收所述第一服务器对所述第一证书请求返回的第一证书,所述第一证书包括SGX环境的证明方对应的第一扩展证书,或者非SGX环境的证明方对应的第一普通证书;
第二发送模块,用于向挑战方发送所述第一证书,所述挑战方包括SGX环境的挑战方或者非SGX环境的挑战方。
可选地,所述证明方为SGX环境的证明方,所述第一发送模块,包括:
第一报告生成子模块,用于通过所述SGX环境的证明方进行SGX本地认证,生成第一SGX认证报告;
第一请求发送子模块,用于向所述第一服务器发送携带所述第一SGX认证报告的第一证书请求;
所述第三接收模块,具体用于接收所述第一服务器对所述第一证书请求返回的包含所述第一SGX认证报告的第一扩展证书,所述第一扩展证书为所述第一服务器在确定所述第一SGX认证报告通过第二服务器的验证后生成的。
可选地,所述证明方为非SGX环境的证明方,所述第一发送模块,包括:
第二请求发送子模块,用于向第一服务器发送不携带第一SGX认证报告的第一证书请求;
所述第三接收模块,具体用于接收所述第一服务器对所述第一证书请求返回的不包含第一SGX认证报告的第一普通证书。
可选地,所述装置还包括:
第四接收模块,用于接收所述挑战方发送的第二证书,所述第二证书包括SGX环境的挑战方对应的第二扩展证书,或者非SGX环境的挑战方对应的第二普通证书;
第二证书验证模块,用于对所述第二证书进行验证。
可选地,所述装置还包括:
秘钥请求模块,用于接收所述挑战方发送的共享秘钥请求;
密钥生成模块,用于响应所述共享秘钥请求,生成共享秘钥;
密钥加密模块,用于利用所述挑战方的第二证书对所述共享秘钥进行加密;
第一建立模块,用于向所述挑战方发送加密的共享秘钥,以使所述挑战方利用所述共享秘钥与所述证明方建立加密信道。
可选地,所述证明方为SGX环境的证明方,所述密钥生成模块,具体用于响应所述共享秘钥请求,在可信空间中生成共享秘钥。
可选地,所述证明方为隐私数据的发送方,所述挑战方为隐私数据的接收方,所述装置还包括:
第一传输模块,用于通过所述加密信道,向所述挑战方发送隐私数据。
另一方面,本发明实施例公开了一种认证装置,应用于挑战方,所述挑战方为SGX环境的挑战方或者非SGX环境的挑战方,所述装置包括:
证书请求发送模块,用于向第一服务器发送第二证书请求;
第五接收模块,用于接收所述第一服务器对所述第二证书请求返回的第二证书,所述第二证书包括SGX环境的挑战方对应的第二扩展证书,或者非SGX环境的挑战方对应的第二普通证书;
第六接收模块,用于接收证明方发送的第一证书,所述第一证书包括SGX环境的证明方对应的第一扩展证书,或者非SGX环境的证明方对应的第一普通证书;
验证请求发送模块,用于向所述第一服务器发送携带所述第一证书的验证请求,以通过所述第一服务器对所述证明方的第一证书进行验证。
可选地,所述挑战方为SGX环境的挑战方,所述证书请求发送模块,包括:
第二报告生成子模块,用于通过所述SGX环境的挑战方进行SGX本地认证,生成第二SGX认证报告;
第三请求发送子模块,用于向所述第一服务器发送携带所述第二SGX认证报告的第二证书请求;
所述第五接收模块,具体用于接收所述第一服务器对所述第二证书请求返回的包含所述第二SGX认证报告的第二扩展证书,所述第二扩展证书为所述第一服务器在确定所述第二SGX认证报告通过第二服务器的验证后生成的。
可选地,所述挑战方为非SGX环境的挑战方,所述证书请求发送模块,具体用于向第一服务器发送不携带第二SGX认证报告的第二证书请求;
所述第五接收模块,具体用于接收所述第一服务器对所述第二证书请求返回的不包含第二SGX认证报告的第二普通证书。
可选地,所述装置还包括:
第二证书发送模块,用于向所述证明方发送所述第二证书,以使所述证明方对所述第二证书进行验证。
可选地,所述装置还包括:
第一结果接收模块,用于接收所述第一服务器返回的所述第一证书的验证结果;
密钥请求发送模块,用于在确定所述验证结果通过的情况下,向所述证明方发送共享秘钥请求;
加密密钥接收模块,用于接收所述证明方对所述共享秘钥请求返回的加密的共享秘钥,所述共享秘钥为所述证明方根据所述挑战方的第二证书生成的;
密钥解密模块,用于对所述加密的共享秘钥进行解密得到所述共享秘钥;
第二建立模块,用于基于所述共享秘钥与所述证明方建立加密信道。
可选地,所述证明方为隐私数据的发送方,所述挑战方为隐私数据的接收方,所述装置还包括:
第二传输模块,用于通过所述加密信道,接收所述证明方发送的隐私数据。
另一方面,本发明实施例公开了一种用于认证的装置,应用于第一服务器,所述装置包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
接收证明方的第一证书请求,以及接收挑战方的第二证书请求;
响应所述第一证书请求,向所述证明方发送第一证书,以及响应所述第二证书请求,向所述挑战方发送第二证书;其中,所述第一证书包括SGX环境的证明方对应的第一扩展证书,或者非SGX环境的证明方对应的第一普通证书,所述第二证书包括SGX环境的挑战方对应的第二扩展证书,或者非SGX环境的挑战方对应的第二普通证书;
接收所述挑战方发送的携带所述第一证书的验证请求;
响应所述验证请求,对所述第一证书进行验证。
可选地,所述响应所述验证请求,对所述第一证书进行验证,包括:
响应所述验证请求,确定所述验证请求携带的第一证书是否包含第一SGX认证报告,所述第一SGX认证报告为SGX环境的证明方基于其SGX本地认证的结果生成的;
若确定所述验证请求携带的第一证书包含所述第一SGX认证报告,则确定所述第一证书为第一扩展证书;
将所述第一扩展证书发送至第二服务器进行验证。
可选地,所述装置还经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
若确定所述验证请求携带的第一证书不包含所述第一SGX认证报告,则确定所述第一证书为第一普通证书;
对所述第一普通证书进行验证。
可选地,所述接收证明方的第一证书请求,包括:
接收SGX环境的证明方发送的携带第一SGX认证报告的第一证书请求,或者,接收非SGX环境的证明方发送的不携带第一SGX认证报告的第一证书请求;
所述响应所述第一证书请求,向所述证明方发送第一证书,包括:
在接收到SGX环境的证明方发送的携带第一SGX认证报告的第一证书请求时,向所述SGX环境的证明方发送包含所述第一SGX认证报告的第一扩展证书,或者,在接收到非SGX环境的证明方发送的不携带第一SGX认证报告的第一证书请求时,向所述非SGX环境的证明方发送不包含第一SGX认证报告的第一普通证书。
可选地,所述接收挑战方的第二证书请求,包括:
接收SGX环境的挑战方发送的携带第二SGX认证报告的第二证书请求,或者,接收非SGX环境的挑战方发送的不携带第二SGX认证报告的第二证书请求;其中,所述第二SGX认证报告为SGX环境的挑战方基于其SGX本地认证的结果生成的;
所述响应所述第二证书请求,向所述挑战方发送第二证书,包括:
在接收到SGX环境的挑战方发送的携带第二SGX认证报告的第二证书请求时,向所述SGX环境的挑战方发送包含所述第二SGX认证报告的第二扩展证书,或者,在接收到非SGX环境的挑战方发送的不携带第二SGX认证报告的第二证书请求时,向所述非SGX环境的挑战方发送不包含第二SGX认证报告的第二普通证书。
可选地,所述装置还经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
在所述第一证书为第一扩展证书的情况下,从第二服务器获取所述第一扩展证书的验证结果,以及将所述第一扩展证书的验证结果发送给所述挑战方;或者
在所述第一证书为第一普通证书的情况下,向所述挑战方发送所述第一服务器对所述第一普通证书的验证结果。
另一方面,本发明实施例公开了一种用于认证的装置,应用于证明方,所述证明方为SGX环境的证明方或者非SGX环境的证明方,所述装置包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
向第一服务器发送第一证书请求;
接收所述第一服务器对所述第一证书请求返回的第一证书,所述第一证书包括SGX环境的证明方对应的第一扩展证书,或者非SGX环境的证明方对应的第一普通证书;
向挑战方发送所述第一证书,所述挑战方包括SGX环境的挑战方或者非SGX环境的挑战方。
可选地,所述证明方为SGX环境的证明方,所述向第一服务器发送第一证书请求,包括:
所述SGX环境的证明方进行SGX本地认证,生成第一SGX认证报告;
向所述第一服务器发送携带所述第一SGX认证报告的第一证书请求;
所述接收所述第一服务器对所述第一证书请求返回的第一证书,包括:
接收所述第一服务器对所述第一证书请求返回的包含所述第一SGX认证报告的第一扩展证书,所述第一扩展证书为所述第一服务器在确定所述第一SGX认证报告通过第二服务器的验证后生成的。
可选地,所述证明方为非SGX环境的证明方,所述向第一服务器发送第一证书请求,包括:
向第一服务器发送不携带第一SGX认证报告的第一证书请求;
所述接收所述第一服务器对所述第一证书请求返回的第一证书,包括:
接收所述第一服务器对所述第一证书请求返回的不包含第一SGX认证报告的第一普通证书。
可选地,所述装置还经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
接收所述挑战方发送的第二证书,所述第二证书包括SGX环境的挑战方对应的第二扩展证书,或者非SGX环境的挑战方对应的第二普通证书;
对所述第二证书进行验证。
可选地,所述装置还经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
接收所述挑战方发送的共享秘钥请求;
响应所述共享秘钥请求,生成共享秘钥;
利用所述挑战方的第二证书对所述共享秘钥进行加密;
向所述挑战方发送加密的共享秘钥,以使所述挑战方利用所述共享秘钥与所述证明方建立加密信道。
可选地,所述证明方为SGX环境的证明方,所述响应所述共享秘钥请求,生成共享秘钥,包括:
响应所述共享秘钥请求,在可信空间中生成共享秘钥。
可选地,所述证明方为隐私数据的发送方,所述挑战方为隐私数据的接收方,所述装置还经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
通过所述加密信道,向所述挑战方发送隐私数据。
另一方面,本发明实施例公开了一种用于认证的装置,应用于挑战方,所述挑战方为SGX环境的挑战方或者非SGX环境的挑战方,所述装置包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
向第一服务器发送第二证书请求;
接收所述第一服务器对所述第二证书请求返回的第二证书,所述第二证书包括SGX环境的挑战方对应的第二扩展证书,或者非SGX环境的挑战方对应的第二普通证书;
接收证明方发送的第一证书,所述第一证书包括SGX环境的证明方对应的第一扩展证书,或者非SGX环境的证明方对应的第一普通证书;
向所述第一服务器发送携带所述第一证书的验证请求,以通过所述第一服务器对所述证明方的第一证书进行验证。
可选地,所述挑战方为SGX环境的挑战方,所述向第一服务器发送第二证书请求,包括:
所述SGX环境的挑战方进行SGX本地认证,生成第二SGX认证报告;
向所述第一服务器发送携带所述第二SGX认证报告的第二证书请求;
所述接收所述第一服务器对所述第二证书请求返回的第二证书,包括:
接收所述第一服务器对所述第二证书请求返回的包含所述第二SGX认证报告的第二扩展证书,所述第二扩展证书为所述第一服务器在确定所述第二SGX认证报告通过第二服务器的验证后生成的。
可选地,所述挑战方为非SGX环境的挑战方,所述向第一服务器发送第二证书请求,包括:
向第一服务器发送不携带第二SGX认证报告的第二证书请求;
所述接收所述第一服务器对所述第二证书请求返回的第二证书,包括:
接收所述第一服务器对所述第二证书请求返回的不包含第二SGX认证报告的第二普通证书。
可选地,所述装置还经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
向所述证明方发送所述第二证书,以使所述证明方对所述第二证书进行验证。
可选地,所述装置还经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
接收所述第一服务器返回的所述第一证书的验证结果;
在确定所述验证结果通过的情况下,向所述证明方发送共享秘钥请求;
接收所述证明方对所述共享秘钥请求返回的加密的共享秘钥,所述共享秘钥为所述证明方根据所述挑战方的第二证书生成的;
对所述加密的共享秘钥进行解密得到所述共享秘钥;
基于所述共享秘钥与所述证明方建立加密信道。
可选地,所述证明方为隐私数据的发送方,所述挑战方为隐私数据的接收方,所述装置还经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
通过所述加密信道,接收所述证明方发送的隐私数据。
又一方面,本发明实施例公开了一种机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得装置执行如前述一个或多个所述的认证方法。
本发明实施例包括以下优点:
本发明实施例通过第一服务器可以对SGX环境以及非SGX环境的证明方进行认证。在认证过程中,对挑战方的环境不做限制,挑战方可以具有SGX环境,也可以不具有SGX环境。由此,对于非SGX环境的挑战方,也可以对SGX环境的证明方进行SGX认证。此外,对于SGX环境的证明方,本发明实施例可以对其进行SGX认证。对于非SGX环境的证明方,本发明实施例可以对其进行普通认证。也即,本发明实施例对证明方是否具有SGX环境也不做限制,本发明实施例可以对SGX环境的证明方和非SGX环境的证明方进行认证,以验证其身份以及其运行环境的可行性和安全性。本发明实施例扩展了认证的应用范围,提高了认证的可执行性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明的一种认证方法实施例的步骤流程图;
图2是本发明的另一种认证方法实施例的步骤流程图;
图3是本发明的又一种认证方法实施例的步骤流程图;
图4是本发明的一种认证系统实施例的结构框图;
图5是本发明的一种应用所述认证系统的认证流程示意图;
图6是本发明的一种认证装置实施例的结构框图;
图7是本发明的另一种认证装置实施例的结构框图;
图8是本发明的又一种认证装置实施例的结构框图;
图9是本发明的一种用于认证的装置800的框图;
图10是本发明的一些实施例中服务器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
方法实施例
参照图1,示出了本发明的一种认证方法实施例的步骤流程图,所述方法应用于第一服务器,所述方法具体可以包括如下步骤:
步骤101、接收证明方的第一证书请求,以及接收挑战方的第二证书请求;
步骤102、响应所述第一证书请求,向所述证明方发送第一证书,以及响应所述第二证书请求,向所述挑战方发送第二证书;其中,所述第一证书包括SGX环境的证明方对应的第一扩展证书,或者非SGX环境的证明方对应的第一普通证书,所述第二证书包括SGX环境的挑战方对应的第二扩展证书,或者非SGX环境的挑战方对应的第二普通证书;
步骤103、接收所述挑战方发送的携带所述第一证书的验证请求;
步骤104、响应所述验证请求,对所述第一证书进行验证。
所述认证方法可应用于第一服务器,所述第一服务器作为可信服务器,可与证明方通信连接,用于对证明方的身份以及运行环境进行认证。本发明实施例对所述第一服务器的类型不做限制。可选地,所述第一服务器可以为OCSP(Online Certificate StatusProtocol,在线证书状态协议)服务器。例如,在TLS(Transport Layer Security,传输层安全性协议)领域中,所述第一服务器可以为CA(Certification Authority,证书授权中心)服务器,可用于对SGX环境以及非SGX环境的证明方进行认证。
所述挑战方为向对方发起验证请求的一方。所述证明方为响应挑战方的验证请求,向挑战方证明自己的身份以及运行环境的一方。证明方可以为客户端,挑战方可以为服务端,服务端仅向通过认证的可信的客户端提供服务。当然,证明方也可以服务端,挑战方也可以为客户端。
一个示例中,所述挑战方可以为隐私数据持有方的客户端,该隐私数据持有方的客户端中安装有用户应用。所述证明方可以为云计算服务端。例如,隐私数据持有方在通过客户端向云计算服务端发送隐私数据以执行云计算之前,可以向云计算服务端发起验证请求,以验证云计算环境的可行性和安全性,避免在云计算过程中泄露其隐私数据。当然,上述示例中的挑战方和证明方还可以互换角色。例如,挑战方可以为云计算服务端,而证明方为隐私数据持有方的客户端。在云计算服务端向隐私数据持有方的客户端发送数据之前,可以向隐私数据持有方的客户端发起验证请求,以验证客户端中应用程序的身份以及其运行环境的可行性和安全性。
可以理解,本发明实施例对证明方和挑战方的具体类型以及应用场景不做限制。例如,对于数据交易场景,数据存证过程中的数据接收方为挑战方,数据发送方为证明方。版权保护场景中的影视库为挑战方,影视播放器为证明方等。
本发明实施例的认证方法可适用于如下四种应用场景:1、证明方和挑战方都具有SGX环境;2、证明方和挑战方都不具有SGX环境;3、证明方具有SGX环境而挑战方不具有SGX环境;4、证明方不具有SGX环境而挑战方具有SGX环境。本发明实施例将不具有SGX环境称为非SGX环境。
对于SGX环境的证明方,可以对其进行SGX认证。对于非SGX环境的证明方,可以对其进行普通认证。本发明实施例可以对SGX环境的证明方和非SGX环境的证明方进行认证,以验证其身份以及其运行环境的可行性和安全性,并且在认证过程中,对挑战方的环境不做限制,挑战方可以具有SGX环境,也可以不具有SGX环境。由此,对于非SGX环境的挑战方,也可以对SGX环境的证明方进行SGX认证。本发明实施例扩展了认证的应用范围,提高了认证的可执行性。
本发明实施例的认证方法可以包括如下两个阶段:预申请证书阶段和认证阶段。在预申请证书阶段,证明方和挑战方分别向第一服务器申请各自的证书。由此,可以在不知道对方身份信息的情况下完成认证,以进行安全通信。在认证阶段,当挑战方向证明方发起验证请求时,双方首先向对方出具自己的证书,进行双向认证,以向对方证明自己身份的可信性。然后,挑战方再将证明方的证书发送至第一服务器进行远程认证。如果证明方的证书通过第一服务器的认证,则可以确定证明方的身份及其运行环境具有可行性且可以被信任。
对于预申请证书阶段,首先,第一服务器接收证明方的第一证书请求,以及接收挑战方的第二证书请求,并且响应所述第一证书请求,向所述证明方发送第一证书,以及响应所述第二证书请求,向所述挑战方发送第二证书。其中,所述第一证书包括SGX环境的证明方对应的第一扩展证书,或者非SGX环境的证明方对应的第一普通证书,所述第二证书包括SGX环境的挑战方对应的第二扩展证书,或者非SGX环境的挑战方对应的第二普通证书。
在本发明的一种可选实施例中,所述接收证明方的第一证书请求,可以包括:接收SGX环境的证明方发送的携带第一SGX认证报告的第一证书请求,或者,接收非SGX环境的证明方发送的不携带第一SGX认证报告的第一证书请求;
所述响应所述第一证书请求,向所述证明方发送第一证书,可以包括:在接收到SGX环境的证明方发送的携带第一SGX认证报告的第一证书请求时,向所述SGX环境的证明方发送包含所述第一SGX认证报告的第一扩展证书,或者,在接收到非SGX环境的证明方发送的不携带第一SGX认证报告的第一证书请求时,向所述非SGX环境的证明方发送不包含第一SGX认证报告的第一普通证书。
为了进一步保证认证的可信性,本发明实施例采用本地认证和远程认证相结合的方式。首先对证明方进行本地认证,在通过本地认证之后,再利用第一服务器对证明方进行远程认证。以SGX环境的证明方为例,首先对证明方的SGX应用及其运行环境(SGX Enclave)进行SGX本地认证,在该SGX应用及其运行环境通过SGX本地认证之后,再利用第一服务器对该SGX应用及其运行环境进行SGX远程认证,由此可以减小证明方的SGX应用伪造的可能性。
SGX环境的证明方在进行SGX本地认证之后,会生成第一SGX认证报告(称为Quote),SGX环境的证明方向所述第一服务器发送携带所述第一SGX认证报告的第一证书请求,以向第一服务器申请证书。第一服务器响应所述第一证书请求,对所述第一SGX认证报告进行验证,在确定所述第一SGX认证报告通过验证的情况下,向所述SGX环境的证明方返回包含所述第一SGX认证报告的第一扩展证书。
可选地,所述第一服务器可以向第二服务器发送所述第一SGX认证报告,以通过所述第二服务器对所述第一SGX认证报告进行验证。所述第二服务器作为可信服务器,可用于对SGX认证报告(Quote)进行验证。本发明实施例对所述第二服务器的类型不做限制。例如,所述第二服务器可以为RA(Registration Authority,数字证书注册中心)服务器。第二服务器可以保证通过其验证的SGX认证报告(Quote)是合法的SGX环境产生的。
对于非SGX环境的证明方,可以向第一服务器发送不携带第一SGX认证报告的第一证书请求,以向第一服务器申请证书。所述第一服务器响应所述第一证书请求,向所述非SGX环境的证明方返回不包含第一SGX认证报告的第一普通证书。
在本发明的一种可选实施例中,所述接收挑战方的第二证书请求,可以包括:
接收SGX环境的挑战方发送的携带第二SGX认证报告的第二证书请求,或者,接收非SGX环境的挑战方发送的不携带第二SGX认证报告的第二证书请求;其中,所述第二SGX认证报告为SGX环境的挑战方基于其SGX本地认证的结果生成的;
所述响应所述第二证书请求,向所述挑战方发送第二证书,包括:
在接收到SGX环境的挑战方发送的携带第二SGX认证报告的第二证书请求时,向所述SGX环境的挑战方发送包含所述第二SGX认证报告的第二扩展证书,或者,在接收到非SGX环境的挑战方发送的不携带第二SGX认证报告的第二证书请求时,向所述非SGX环境的挑战方发送不包含第二SGX认证报告的第二普通证书。
对于挑战方,可以包括SGX环境的挑战方或者非SGX环境的挑战方。在预申请证书阶段,挑战方向第一服务器请求证书的过程与证明方类似,此处不再进行赘述,相互参照即可。
在证明方和挑战方各自向第一服务器申请证书之后,如果挑战方接收到证明方的通信请求,则可以向证明方发起验证请求,证明方和挑战方互相交换各自预先向第一服务器申请的证书,以进行双向认证。在双向认证之后,挑战方向第一服务器发送携带证明方的第一证书的验证请求,以对证明方进行远程认证。所述第一服务器响应所述验证请求,对所述第一证书进行验证。
在本发明的一种可选实施例中,所述响应所述验证请求,对所述第一证书进行验证,可以包括:
步骤S11、响应所述验证请求,确定所述验证请求携带的第一证书是否包含第一SGX认证报告,所述第一SGX认证报告为SGX环境的证明方基于其SGX本地认证的结果生成的;
步骤S12、若确定所述验证请求携带的第一证书包含所述第一SGX认证报告,则确定所述第一证书为第一扩展证书;
步骤S13、将所述第一扩展证书发送至第二服务器进行验证。
第一服务器在接收到挑战方发送的携带所述第一证书的验证请求之后,响应所述验证请求,确定所述验证请求携带的第一证书是否包含第一SGX认证报告。如果所述验证请求携带的第一证书包含第一SGX认证报告,则确定所述第一证书为第一扩展证书,也即确定证明方为SGX环境的证明方。此时,第一服务器将所述第一扩展证书发送至第二服务器(如RA服务器)进行远程验证,并且接收第二服务器返回的对所述第一扩展证书的验证结果。
在本发明的一种可选实施例中,所述确定所述验证请求携带的第一证书是否包含第一SGX认证报告之后,所述方法还可以包括:
步骤S21、若确定所述验证请求携带的第一证书不包含所述第一SGX认证报告,则确定所述第一证书为第一普通证书;
步骤S22、对所述第一普通证书进行验证。
如果所述验证请求携带的第一证书不包含第一SGX认证报告,则确定所述第一证书为第一普通证书,也即确定证明方为非SGX环境的证明方。此时,第一服务器可以在本地对所述第一普通证书进行验证,得到验证结果。
对于SGX环境的证明方的第一扩展证书,第一服务器可以转发至第二服务器进行验证,对于非SGX环境的证明方的第一普通证书,第一服务器可以在本地进行验证。该过程对于挑战方和证明方是透明的。
在本发明的一种可选实施例中,所述响应所述验证请求,对所述第一证书进行验证之后,所述方法还可以包括:
在所述第一证书为第一扩展证书的情况下,从第二服务器获取所述第一扩展证书的验证结果,以及将所述第一扩展证书的验证结果发送给所述挑战方;或者
在所述第一证书为第一普通证书的情况下,向所述挑战方发送所述第一服务器对所述第一普通证书的验证结果。
对于SGX环境的证明方,其向第一服务器申请的第一证书为包含第一SGX认证报告的第一扩展证书。证明方与挑战方交换证书之后,挑战方向第一服务器发送携带该第一扩展证书的验证请求。第一服务器响应该验证请求,将该第一扩展证书转发至第二服务器进行验证,并且从第二服务器获取该第一扩展证书的验证结果,以及将该第一扩展证书的验证结果发送给挑战方。
对于非SGX环境的证明方,其向第一服务器申请的第一证书为不包含第一SGX认证报告的第一普通证书。证明方与挑战方交换证书之后,挑战方向第一服务器发送携带该第一普通证书的验证请求。第一服务器响应该验证请求,在第一服务器本地对第一普通证书进行验证,得到该第一普通证书的验证结果,以及将该第一普通证书的验证结果发送给挑战方。
本发明实施例通过第一服务器可以对SGX环境以及非SGX环境的证明方进行认证。在认证过程中,对挑战方的环境不做限制,挑战方可以具有SGX环境,也可以不具有SGX环境。由此,对于非SGX环境的挑战方,也可以对SGX环境的证明方进行SGX认证。此外,对于SGX环境的证明方,本发明实施例可以对其进行SGX认证。对于非SGX环境的证明方,本发明实施例可以对其进行普通认证。也即,本发明实施例对证明方是否具有SGX环境也不做限制,本发明实施例可以对SGX环境的证明方和非SGX环境的证明方进行认证,以验证其身份以及其运行环境的可行性和安全性。本发明实施例扩展了认证的应用范围,提高了认证的可执行性。
参照图2,示出了本发明的另一种认证方法实施例的步骤流程图,所述方法应用于证明方,所述证明方为SGX环境的证明方或者非SGX环境的证明方,所述方法具体可以包括如下步骤:
步骤201、向第一服务器发送第一证书请求;
步骤202、接收所述第一服务器对所述第一证书请求返回的第一证书,所述第一证书包括SGX环境的证明方对应的第一扩展证书,或者非SGX环境的证明方对应的第一普通证书;
步骤203、向挑战方发送所述第一证书,所述挑战方包括SGX环境的挑战方或者非SGX环境的挑战方。
在预申请证书阶段,证明方向第一服务器发送第一证书请求,以向第一服务器申请证书。对于SGX环境的证明方,第一服务器向其返回第一扩展证书。对于非SGX环境的证明方,第一服务器向其返回第一普通证书。
在认证阶段,证明方向挑战方发送所述第一证书,以向挑战方证明自己的身份以及运行环境的可信性。所述挑战方可以包括SGX环境的挑战方或者非SGX环境的挑战方。
在本发明的一种可选实施例中,所述证明方为SGX环境的证明方,所述向第一服务器发送第一证书请求,可以包括:
步骤S31、所述SGX环境的证明方进行SGX本地认证,生成第一SGX认证报告;
步骤S32、向所述第一服务器发送携带所述第一SGX认证报告的第一证书请求;
所述接收所述第一服务器对所述第一证书请求返回的第一证书,可以包括:接收所述第一服务器对所述第一证书请求返回的包含所述第一SGX认证报告的第一扩展证书,所述第一扩展证书为所述第一服务器在确定所述第一SGX认证报告通过第二服务器的验证后生成的。
为了进一步保证认证的可信性,本发明实施例采用本地认证和远程认证相结合的方式。首先对证明方进行本地认证,在证明方通过本地认证之后,再利用第一服务器对证明方进行远程认证。以SGX环境的证明方为例,首先对证明方的SGX应用及其运行环境(SGXEnclave)进行SGX本地认证,在该SGX应用及其运行环境通过SGX本地认证之后,再利用第一服务器对该SGX应用及其运行环境进行SGX远程认证,由此可以减小证明方的SGX应用伪造的可能性。
具体地,可以在证明方的平台上创建一个特殊的Enclave,称为Quoting Enclave(引证Enclave),用于对SGX环境的证明方进行SGX本地认证。由于引证Enclave与证明方所执行的Enclave处于同一平台,因此利用上文描述的实现,可以完成引证Enclave与证明方Enclave之间的SGX本地认证。引证Enclave和证明方先执行EREPORT指令,生成REPORT结构,REPORT结构包含Enclave的身份、与Enclave相关的属性、硬件TCB(Trusted computingbase,可信计算基)的可信度以及一个MAC(Message Authentication Code,消息验证码)标签。在SGX本地认证执行结束后,引证Enclave将REPORT结构中的MAC标签用一个签名来替换,这个签名可以使用特定于设备的非对称密钥来完成,引证Enclave保留用于签名的私有密钥。其中,替换MAC后的REPORT称为一个Quote(本发明实施例中称为SGX认证报告)。
SGX环境的证明方在进行SGX本地认证之后,生成第一SGX认证报告,SGX环境的证明方向所述第一服务器发送携带所述第一SGX认证报告的第一证书请求,以向第一服务器申请证书。第一服务器响应所述第一证书请求,对所述第一SGX认证报告进行验证,在确定所述第一SGX认证报告通过验证的情况下,向所述SGX环境的证明方返回包含所述第一SGX认证报告的第一扩展证书。
可选地,所述第一服务器可以向第二服务器发送所述第一SGX认证报告,以通过所述第二服务器对所述第一SGX认证报告进行验证。所述第二服务器作为可信服务器,可用于对SGX认证报告(Quote)进行验证。本发明实施例对所述第二服务器的类型不做限制。例如,所述第二服务器可以为RA服务器。第二服务器可以保证通过验证的SGX认证报告(Quote)是合法的SGX环境产生的。
在本发明的一种可选实施例中,所述证明方为非SGX环境的证明方,所述向第一服务器发送第一证书请求,可以包括:向第一服务器发送不携带第一SGX认证报告的第一证书请求;
所述接收所述第一服务器对所述第一证书请求返回的第一证书,可以包括:接收所述第一服务器对所述第一证书请求返回的不包含第一SGX认证报告的第一普通证书。
对于非SGX环境的证明方,可以向第一服务器发送不携带第一SGX认证报告的第一证书请求。所述第一服务器对所述第一证书请求返回不包含第一SGX认证报告的第一普通证书。
在本发明的一种可选实施例中,所述接收所述第一服务器对所述第一证书请求返回的第一证书之后,所述方法还可以包括:
步骤S41、接收所述挑战方发送的第二证书,所述第二证书包括SGX环境的挑战方对应的第二扩展证书,或者非SGX环境的挑战方对应的第二普通证书;
步骤S42、对所述第二证书进行验证。
由于证明方和挑战方后续需要进行通信,因此,为了保证通信的安全性和可靠性,在对证明方进行远程认证之前,证明方和挑战方可以交换证书,以进行双向认证。
具体地,证明方可以向挑战方发送证明方的第一证书,挑战方也可以向证明方发送挑战方的第二证书,证明方和挑战方对接收到的对方的证书进行验证,以验证对方身份是否合法。其中,SGX环境的证明方可以向挑战方发送第一扩展证书,非SGX环境的证明方可以向挑战方发送第一普通证书,证明方可以接收SGX环境的挑战方对应的第二扩展证书,或者证明方可以接收非SGX环境的挑战方对应的第二普通证书。
进一步地,为了防止重放攻击(Replay Attacks),证明方和挑战方在进行双向认证的过程中,交换的证书中可以附带签名的Nonce字段。其中,Nonce是一个只被使用一次的任意或非重复的随机数值。例如,第一扩展证书中附带有SGX环境的证明方签名的Nonce字段,第一普通证书中附带有非SGX环境的证明方签名的Nonce字段,第二扩展证书中附带有SGX环境的挑战方签名的Nonce字段,以及第二普通证书中附带有非SGX环境的挑战方签名的Nonce字段。
在本发明的一种可选实施例中,所述接收所述挑战方发送的第二证书之后,所述方法还可以包括:
步骤S51、接收所述挑战方发送的共享秘钥请求;
步骤S52、响应所述共享秘钥请求,生成共享秘钥;
步骤S53、利用所述挑战方的第二证书对所述共享秘钥进行加密;
步骤S54、向所述挑战方发送加密的共享秘钥,以使所述挑战方利用所述共享秘钥与所述证明方建立加密信道。
需要进行数据传输的证明方和挑战方在经过双向认证以及对证明方的远程认证之后,挑战方可以认为证明方的身份以及证明方的运行环境可信任。此时,证明方和挑战方可以建立加密信道,以进行数据传输。
为保证加密信道的安全性,本发明实施例基于证明方生成的共享密钥建立加密信道。具体地,在挑战方确定证明方已通过第一服务器的认证之后,首先向证明方发送共享秘钥请求,证明方响应所述共享秘钥请求,生成共享秘钥,并且利用挑战方的第二证书对所述共享秘钥进行加密;然后,证明方向挑战方发送加密的共享秘钥,挑战方利用第二证书对接收到的加密后的共享密钥进行解密,得到共享密钥;最后,挑战方基于所述共享秘钥与所述证明方建立加密信道。
在本发明的一种可选实施例中,所述证明方可以为隐私数据的发送方,所述挑战方可以为隐私数据的接收方,所述以使所述挑战方利用所述共享秘钥与所述证明方建立加密信道之后,所述方法还可以包括:通过所述加密信道,向所述挑战方发送隐私数据。
在本发明实施例中,每个加密信道可以唯一对应一对证明方和挑战方,该证明方和挑战方可以通过该加密信道传输隐私数据。
需要说明的是,证明方可以为隐私数据的发送方,挑战方可以为隐私数据的接收方,证明方可以通过所述加密信道,向挑战方发送隐私数据。或者,证明方可以为隐私数据的接收方,挑战方可以为隐私数据的发送方,证明方可以通过所述加密信道,接收挑战方发送的隐私数据。例如,在云计算场景中,证明方(云计算服务端)为隐私数据的接收方,挑战方(用户应用客户端)为隐私数据的发送方。
在本发明的一种可选实施例中,所述证明方为SGX环境的证明方,所述响应所述共享秘钥请求,生成共享秘钥,可以包括:响应所述共享秘钥请求,在可信空间中生成共享秘钥。
对于SGX环境的证明方,在接收到挑战方发送的共享秘钥请求之后,可以在可信空间中生成用于建立加密信道的共享秘钥。进一步地,所述可信空间可以为证明方的SGXEnclave。
在经过证明方和挑战方的双向认证以及证明方的远程认证之后,挑战方证实了证明方及其所在平台的安全性,挑战方可以和证明方通过独立的加密信道传输隐私数据,可以保证数据传输的安全性和可靠性。
本发明实施例通过第一服务器可以对SGX环境以及非SGX环境的证明方进行认证。在认证过程中,对挑战方的环境不做限制,挑战方可以具有SGX环境,也可以不具有SGX环境。由此,对于非SGX环境的挑战方,也可以对SGX环境的证明方进行SGX认证。此外,对于SGX环境的证明方,本发明实施例可以对其进行SGX认证。对于非SGX环境的证明方,本发明实施例可以对其进行普通认证。也即,本发明实施例对证明方是否具有SGX环境也不做限制,本发明实施例可以对SGX环境的证明方和非SGX环境的证明方进行认证,以验证其身份以及其运行环境的可行性和安全性。本发明实施例扩展了认证的应用范围,提高了认证的可执行性。
参照图3,示出了本发明的又一种认证方法实施例的步骤流程图,所述方法应用于挑战方,所述挑战方为SGX环境的挑战方或者非SGX环境的挑战方,所述方法具体可以包括如下步骤:
步骤301、向第一服务器发送第二证书请求;
步骤302、接收所述第一服务器对所述第二证书请求返回的第二证书,所述第二证书包括SGX环境的挑战方对应的第二扩展证书,或者非SGX环境的挑战方对应的第二普通证书;
步骤303、接收证明方发送的第一证书,所述第一证书包括SGX环境的证明方对应的第一扩展证书,或者非SGX环境的证明方对应的第一普通证书;
步骤304、向所述第一服务器发送携带所述第一证书的验证请求,以通过所述第一服务器对所述证明方的第一证书进行验证。
在预申请证书阶段,挑战方向第一服务器发送第二证书请求,以向第一服务器申请证书。对于SGX环境的挑战方,第一服务器向其返回第二扩展证书。对于非SGX环境的挑战方,第一服务器向其返回第二普通证书。
在认证阶段,挑战方接收证明方发送的第一证书,并且挑战方向证明方发送所述第二证书,以进行双向认证。对于SGX环境的证明方,所述第一证书为第一扩展证书,对于非SGX环境的证明方,所述第一证书为第一普通证书;对于SGX环境的挑战方,所述第二证书为第二扩展证书,对于非SGX环境的挑战方,所述第二证书为第二普通证书。在双向认证之后,挑战方向所述第一服务器发送携带所述第一证书的验证请求,以通过所述第一服务器对所述证明方的第一证书进行验证。
在本发明的一种可选实施例中,所述挑战方为SGX环境的挑战方,所述向第一服务器发送第二证书请求,可以包括:
步骤S61、所述SGX环境的挑战方进行SGX本地认证,生成第二SGX认证报告;
步骤S62、向所述第一服务器发送携带所述第二SGX认证报告的第二证书请求;
所述接收所述第一服务器对所述第二证书请求返回的第二证书,可以包括:接收所述第一服务器对所述第二证书请求返回的包含所述第二SGX认证报告的第二扩展证书,所述第二扩展证书为所述第一服务器在确定所述第二SGX认证报告通过第二服务器的验证后生成的。
为了进一步保证认证的可信性,本发明实施例采用本地认证和远程认证相结合的方式。首先对挑战方进行本地认证,在通过本地认证之后,再利用第一服务器对挑战方进行远程认证。以SGX环境的挑战方为例,首先对挑战方的SGX应用及其运行环境(SGX Enclave)进行SGX本地认证,在该SGX应用及其运行环境通过SGX本地认证之后,再利用第一服务器对该SGX应用及其运行环境进行SGX远程认证,由此可以减小挑战方的SGX应用伪造的可能性。
具体地,可以在挑战方的平台上创建一个特殊的Enclave,称为Quoting Enclave(引证Enclave),用于对SGX环境的挑战方进行SGX本地认证。由于引证Enclave与挑战方所执行的Enclave处于同一平台,因此利用上文描述的实现,可以完成引证Enclave与挑战方Enclave之间的SGX本地认证。引证Enclave和挑战方先执行EREPORT指令,生成REPORT结构,REPORT结构包含Enclave的身份、与Enclave相关的属性、硬件TCB(Trusted computingbase,可信计算基)的可信度以及一个MAC(Message Authentication Code,消息验证码)标签。在SGX本地认证执行结束后,引证Enclave将REPORT结构中的MAC标签用一个签名来替换,这个签名可以使用特定于设备的非对称密钥来完成,引证Enclave保留用于签名的私有密钥。其中,替换MAC后的REPORT称为一个Quote(本发明实施例中称为SGX认证报告)。
SGX环境的挑战方在进行SGX本地认证之后,生成第二SGX认证报告,SGX环境的挑战方向所述第一服务器发送携带所述第二SGX认证报告的第二证书请求,以向第一服务器申请证书。第一服务器响应所述第二证书请求,对所述第二SGX认证报告进行验证,在确定所述第二SGX认证报告通过验证的情况下,向所述SGX环境的挑战方返回包含所述第二SGX认证报告的第二扩展证书。
可选地,所述第一服务器可以向第二服务器发送所述第二SGX认证报告,以通过所述第二服务器对所述第二SGX认证报告进行验证。所述第二服务器作为可信服务器,可用于对SGX认证报告(Quote)进行验证。本发明实施例对所述第二服务器的类型不做限制。例如,所述第二服务器可以为RA服务器。第二服务器可以保证通过验证的SGX认证报告(Quote)是合法的SGX环境产生的。
在本发明的一种可选实施例中,所述挑战方为非SGX环境的挑战方,所述向第一服务器发送第二证书请求,可以包括:向第一服务器发送不携带第二SGX认证报告的第二证书请求;
所述接收所述第一服务器对所述第二证书请求返回的第二证书,可以包括:接收所述第一服务器对所述第二证书请求返回的不包含第二SGX认证报告的第二普通证书。
对于非SGX环境的挑战方,向第一服务器发送不携带第二SGX认证报告的第二证书请求。所述第一服务器对所述第二证书请求返回不包含第二SGX认证报告的第二普通证书。
在本发明的一种可选实施例中,所述接收所述第一服务器对所述第二证书请求返回的第二证书之后,所述方法还可以包括:向所述证明方发送所述第二证书,以使所述证明方对所述第二证书进行验证。
由于证明方和挑战方后续需要进行通信,因此,为了保证通信的安全性和可靠性,在对证明方进行远程认证之前,证明方和挑战方可以交换证书,以进行双向认证。
具体地,证明方可以向挑战方发送证明方的第一证书,挑战方也可以向证明方发送挑战方的第二证书。其中,SGX环境的证明方可以向挑战方发送第一扩展证书,非SGX环境的证明方可以向挑战方发送第一普通证书,证明方可以接收SGX环境的挑战方对应的第二扩展证书,或者证明方可以接收非SGX环境的挑战方对应的第二普通证书。
进一步地,为了防止重放攻击,证明方和挑战方在进行双向认证的过程中,交换的证书中可以附带签名的Nonce字段。
在本发明的一种可选实施例中,所述向所述第一服务器发送携带所述第一证书的验证请求之后,所述方法还可以包括:
步骤S71、接收所述第一服务器返回的所述第一证书的验证结果;
步骤S72、在确定所述验证结果通过的情况下,向所述证明方发送共享秘钥请求;
步骤S73、接收所述证明方对所述共享秘钥请求返回的加密的共享秘钥,所述共享秘钥为所述证明方根据所述挑战方的第二证书生成的;
步骤S74、对所述加密的共享秘钥进行解密得到所述共享秘钥;
步骤S75、基于所述共享秘钥与所述证明方建立加密信道。
挑战方在接收到所述第一服务器返回的所述第一证书的验证结果之后,如果确定所述验证结果通过,则挑战方可以认为证明方的身份以及证明方的运行环境可信任。此时,证明方和挑战方可以建立加密信道,以进行数据传输。
为保证加密信道的安全性,本发明实施例基于证明方生成的共享密钥建立加密信道。具体地,在挑战方确定证明方已通过第一服务器的认证之后,首先向证明方发送共享秘钥请求,证明方响应所述共享秘钥请求,生成共享秘钥,并且利用挑战方的第二证书对所述共享秘钥进行加密;然后,证明方向挑战方发送加密的共享秘钥,挑战方利用第二证书对接收到的加密后的共享密钥进行解密,得到共享密钥;最后,挑战方基于所述共享秘钥与所述证明方建立加密信道。
在本发明的一种可选实施例中,所述证明方可以为隐私数据的发送方,所述挑战方可以为隐私数据的接收方,所述基于所述共享秘钥与所述证明方建立加密信道之后,所述方法还可以包括:通过所述加密信道,接收所述证明方发送的隐私数据。
在本发明实施例中,每个加密信道可以唯一对应一对证明方和挑战方,该证明方和挑战方可以通过该加密信道传输隐私数据。
需要说明的是,证明方可以为隐私数据的发送方,挑战方可以为隐私数据的接收方,证明方可以通过所述加密信道,向挑战方发送隐私数据。或者,证明方可以为隐私数据的接收方,挑战方可以为隐私数据的发送方,证明方可以通过所述加密信道,接收挑战方发送的隐私数据。例如,在云计算场景中,证明方(云计算服务端)为隐私数据的接收方,挑战方(用户应用客户端)为隐私数据的发送方。
本发明实施例通过第一服务器可以对SGX环境以及非SGX环境的证明方进行认证。在认证过程中,对挑战方的环境不做限制,挑战方可以具有SGX环境,也可以不具有SGX环境。由此,对于非SGX环境的挑战方,也可以对SGX环境的证明方进行SGX认证。此外,对于SGX环境的证明方,本发明实施例可以对其进行SGX认证。对于非SGX环境的证明方,本发明实施例可以对其进行普通认证。也即,本发明实施例对证明方是否具有SGX环境也不做限制,本发明实施例可以对SGX环境的证明方和非SGX环境的证明方进行认证,以验证其身份以及其运行环境的可行性和安全性。本发明实施例扩展了认证的应用范围,提高了认证的可执行性。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
装置实施例
参照图4,示出了本发明的一种认证系统实施例的结构框图,所述认证系统包括第一服务器401、证明方402、以及挑战方403;其中,所述证明方为SGX环境的证明方或者非SGX环境的证明方,所述挑战方为SGX环境的挑战方或者非SGX环境的挑战方;
所述证明方,用于向所述第一服务器发送第一证书请求;
所述挑战方,用于向所述第一服务器发送第二证书请求;
所述第一服务器,用于接收证明方的第一证书请求,以及接收挑战方的第二证书请求,并且响应所述第一证书请求,向所述证明方发送第一证书,以及响应所述第二证书请求,向所述挑战方发送第二证书;其中,所述第一证书包括SGX环境的证明方对应的第一扩展证书,或者非SGX环境的证明方对应的第一普通证书,所述第二证书包括SGX环境的挑战方对应的第二扩展证书,或者非SGX环境的挑战方对应的第二普通证书;
所述证明方,还用于接收所述第一服务器对所述第一证书请求返回的第一证书,并且向所述挑战方发送所述第一证书;
所述挑战方,还用于接收所述证明方发送的所述第一证书,并且向所述第一服务器发送携带所述第一证书的验证请求;
所述第一服务器,还用于响应所述验证请求,对所述第一证书进行验证。
进一步地,所述认证系统中还可以包括第二服务器,参照图5,示出了应用所述认证系统的认证流程示意图。
参照图6,示出了本发明的一种认证装置实施例的结构框图,应用于第一服务器,所述装置具体可以包括:
第一接收模块501,用于接收证明方的第一证书请求,以及接收挑战方的第二证书请求;
第一响应模块502,用于响应所述第一证书请求,向所述证明方发送第一证书,以及响应所述第二证书请求,向所述挑战方发送第二证书;其中,所述第一证书包括SGX环境的证明方对应的第一扩展证书,或者非SGX环境的证明方对应的第一普通证书,所述第二证书包括SGX环境的挑战方对应的第二扩展证书,或者非SGX环境的挑战方对应的第二普通证书;
第二接收模块503,用于接收所述挑战方发送的携带所述第一证书的验证请求;
第一证书验证模块504,用于响应所述验证请求,对所述第一证书进行验证。
可选地,所述第一证书验证模块,包括:
第一确定子模块,用于响应所述验证请求,确定所述验证请求携带的第一证书是否包含第一SGX认证报告,所述第一SGX认证报告为SGX环境的证明方基于其SGX本地认证的结果生成的;
第二确定子模块,用于若确定所述验证请求携带的第一证书包含所述第一SGX认证报告,则确定所述第一证书为第一扩展证书;
远程验证子模块,用于将所述第一扩展证书发送至第二服务器进行验证。
可选地,所述装置还包括:
证书类别确定模块,用于若确定所述验证请求携带的第一证书不包含所述第一SGX认证报告,则确定所述第一证书为第一普通证书;
所述第一证书验证模块,具体用于对所述第一普通证书进行验证。
可选地,所述第一接收模块,具体用于接收SGX环境的证明方发送的携带第一SGX认证报告的第一证书请求,或者,接收非SGX环境的证明方发送的不携带第一SGX认证报告的第一证书请求;
所述第一响应模块,具体用于在接收到SGX环境的证明方发送的携带第一SGX认证报告的第一证书请求时,向所述SGX环境的证明方发送包含所述第一SGX认证报告的第一扩展证书,或者,在接收到非SGX环境的证明方发送的不携带第一SGX认证报告的第一证书请求时,向所述非SGX环境的证明方发送不包含第一SGX认证报告的第一普通证书。
可选地,所述第一接收模块,具体用于接收SGX环境的挑战方发送的携带第二SGX认证报告的第二证书请求,或者,接收非SGX环境的挑战方发送的不携带第二SGX认证报告的第二证书请求;其中,所述第二SGX认证报告为SGX环境的挑战方基于其SGX本地认证的结果生成的;
所述第一响应模块,具体用于在接收到SGX环境的挑战方发送的携带第二SGX认证报告的第二证书请求时,向所述SGX环境的挑战方发送包含所述第二SGX认证报告的第二扩展证书,或者,在接收到非SGX环境的挑战方发送的不携带第二SGX认证报告的第二证书请求时,向所述非SGX环境的挑战方发送不包含第二SGX认证报告的第二普通证书。
可选地,所述装置还包括:
第一结果获取模块,用于在所述第一证书为第一扩展证书的情况下,从第二服务器获取所述第一扩展证书的验证结果,以及将所述第一扩展证书的验证结果发送给所述挑战方;或者
第二结果获取模块,用于在所述第一证书为第一普通证书的情况下,向所述挑战方发送所述第一服务器对所述第一普通证书的验证结果。
参照图7,示出了本发明的另一种认证装置实施例的结构框图,应用于证明方,所述证明方为SGX环境的证明方或者非SGX环境的证明方,所述装置具体可以包括:
第一发送模块601,用于向第一服务器发送第一证书请求;
第三接收模块602,用于接收所述第一服务器对所述第一证书请求返回的第一证书,所述第一证书包括SGX环境的证明方对应的第一扩展证书,或者非SGX环境的证明方对应的第一普通证书;
第二发送模块603,用于向挑战方发送所述第一证书,所述挑战方包括SGX环境的挑战方或者非SGX环境的挑战方。
可选地,所述证明方为SGX环境的证明方,所述第一发送模块,包括:
第一报告生成子模块,用于通过所述SGX环境的证明方进行SGX本地认证,生成第一SGX认证报告;
第一请求发送子模块,用于向所述第一服务器发送携带所述第一SGX认证报告的第一证书请求;
所述第三接收模块,具体用于接收所述第一服务器对所述第一证书请求返回的包含所述第一SGX认证报告的第一扩展证书,所述第一扩展证书为所述第一服务器在确定所述第一SGX认证报告通过第二服务器的验证后生成的。
可选地,所述证明方为非SGX环境的证明方,所述第一发送模块,包括:
第二请求发送子模块,用于向第一服务器发送不携带第一SGX认证报告的第一证书请求;
所述第三接收模块,具体用于接收所述第一服务器对所述第一证书请求返回的不包含第一SGX认证报告的第一普通证书。
可选地,所述装置还包括:
第四接收模块,用于接收所述挑战方发送的第二证书,所述第二证书包括SGX环境的挑战方对应的第二扩展证书,或者非SGX环境的挑战方对应的第二普通证书;
第二证书验证模块,用于对所述第二证书进行验证。
可选地,所述装置还包括:
秘钥请求模块,用于接收所述挑战方发送的共享秘钥请求;
密钥生成模块,用于响应所述共享秘钥请求,生成共享秘钥;
密钥加密模块,用于利用所述挑战方的第二证书对所述共享秘钥进行加密;
第一建立模块,用于向所述挑战方发送加密的共享秘钥,以使所述挑战方利用所述共享秘钥与所述证明方建立加密信道。
可选地,所述证明方为SGX环境的证明方,所述密钥生成模块,具体用于响应所述共享秘钥请求,在可信空间中生成共享秘钥。
可选地,所述证明方为隐私数据的发送方,所述挑战方为隐私数据的接收方,所述装置还包括:
第一传输模块,用于通过所述加密信道,向所述挑战方发送隐私数据。
参照图8,示出了本发明的又一种认证装置实施例的结构框图,应用于挑战方,所述挑战方为SGX环境的挑战方或者非SGX环境的挑战方,所述装置具体可以包括:
证书请求发送模块701,用于向第一服务器发送第二证书请求;
第五接收模块702,用于接收所述第一服务器对所述第二证书请求返回的第二证书,所述第二证书包括SGX环境的挑战方对应的第二扩展证书,或者非SGX环境的挑战方对应的第二普通证书;
第六接收模块703,用于接收证明方发送的第一证书,所述第一证书包括SGX环境的证明方对应的第一扩展证书,或者非SGX环境的证明方对应的第一普通证书;
验证请求发送模块704,用于向所述第一服务器发送携带所述第一证书的验证请求,以通过所述第一服务器对所述证明方的第一证书进行验证。
可选地,所述挑战方为SGX环境的挑战方,所述证书请求发送模块,包括:
第二报告生成子模块,用于通过所述SGX环境的挑战方进行SGX本地认证,生成第二SGX认证报告;
第三请求发送子模块,用于向所述第一服务器发送携带所述第二SGX认证报告的第二证书请求;
所述第五接收模块,具体用于接收所述第一服务器对所述第二证书请求返回的包含所述第二SGX认证报告的第二扩展证书,所述第二扩展证书为所述第一服务器在确定所述第二SGX认证报告通过第二服务器的验证后生成的。
可选地,所述挑战方为非SGX环境的挑战方,所述证书请求发送模块,具体用于向第一服务器发送不携带第二SGX认证报告的第二证书请求;
所述第五接收模块,具体用于接收所述第一服务器对所述第二证书请求返回的不包含第二SGX认证报告的第二普通证书。
可选地,所述装置还包括:
第二证书发送模块,用于向所述证明方发送所述第二证书,以使所述证明方对所述第二证书进行验证。
可选地,所述装置还包括:
第一结果接收模块,用于接收所述第一服务器返回的所述第一证书的验证结果;
密钥请求发送模块,用于在确定所述验证结果通过的情况下,向所述证明方发送共享秘钥请求;
加密密钥接收模块,用于接收所述证明方对所述共享秘钥请求返回的加密的共享秘钥,所述共享秘钥为所述证明方根据所述挑战方的第二证书生成的;
密钥解密模块,用于对所述加密的共享秘钥进行解密得到所述共享秘钥;
第二建立模块,用于基于所述共享秘钥与所述证明方建立加密信道。
可选地,所述证明方为隐私数据的发送方,所述挑战方为隐私数据的接收方,所述装置还包括:
第二传输模块,用于通过所述加密信道,接收所述证明方发送的隐私数据。
本发明实施例通过第一服务器可以对SGX环境以及非SGX环境的证明方进行认证。在认证过程中,对挑战方的环境不做限制,挑战方可以具有SGX环境,也可以不具有SGX环境。由此,对于非SGX环境的挑战方,也可以对SGX环境的证明方进行SGX认证。此外,对于SGX环境的证明方,本发明实施例可以对其进行SGX认证。对于非SGX环境的证明方,本发明实施例可以对其进行普通认证。也即,本发明实施例对证明方是否具有SGX环境也不做限制,本发明实施例可以对SGX环境的证明方和非SGX环境的证明方进行认证,以验证其身份以及其运行环境的可行性和安全性。本发明实施例扩展了认证的应用范围,提高了认证的可执行性。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本发明实施例提供了一种用于认证的装置,应用于第一服务器,所述装置包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:接收证明方的第一证书请求,以及接收挑战方的第二证书请求;响应所述第一证书请求,向所述证明方发送第一证书,以及响应所述第二证书请求,向所述挑战方发送第二证书;其中,所述第一证书包括SGX环境的证明方对应的第一扩展证书,或者非SGX环境的证明方对应的第一普通证书,所述第二证书包括SGX环境的挑战方对应的第二扩展证书,或者非SGX环境的挑战方对应的第二普通证书;接收所述挑战方发送的携带所述第一证书的验证请求;响应所述验证请求,对所述第一证书进行验证。
图9是根据一示例性实施例示出的一种用于认证的装置800的框图。例如,装置800可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图9,装置800可以包括以下一个或多个组件:处理组件802,存储器804,电源组件806,多媒体组件808,音频组件810,输入/输出(I/O)的接口812,传感器组件814,以及通信组件816。
处理组件802通常控制装置800的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理元件802可以包括一个或多个处理器820来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件802可以包括一个或多个模块,便于处理组件802和其他组件之间的交互。例如,处理组件802可以包括多媒体模块,以方便多媒体组件808和处理组件802之间的交互。
存储器804被配置为存储各种类型的数据以支持在设备800的操作。这些数据的示例包括用于在装置800上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器804可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件806为装置800的各种组件提供电力。电源组件806可以包括电源管理系统,一个或多个电源,及其他与为装置800生成、管理和分配电力相关联的组件。
多媒体组件808包括在所述装置800和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件808包括一个前置摄像头和/或后置摄像头。当设备800处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件810被配置为输出和/或输入音频信号。例如,音频组件810包括一个麦克风(MIC),当装置800处于操作模式,如呼叫模式、记录模式和语音信息处理模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器804或经由通信组件816发送。在一些实施例中,音频组件810还包括一个扬声器,用于输出音频信号。
I/O接口812为处理组件802和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件814包括一个或多个传感器,用于为装置800提供各个方面的状态评估。例如,传感器组件814可以检测到设备800的打开/关闭状态,组件的相对定位,例如所述组件为装置800的显示器和小键盘,传感器组件814还可以检测装置800或装置800一个组件的位置改变,用户与装置800接触的存在或不存在,装置800方位或加速/减速和装置800的温度变化。传感器组件814可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件814还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件814还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件816被配置为便于装置800和其他设备之间有线或无线方式的通信。装置800可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件816经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件816还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频信息处理(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,装置800可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器804,上述指令可由装置800的处理器820执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
图10是本发明的一些实施例中服务器的结构示意图。该服务器1900可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processingunits,CPU)1922(例如,一个或一个以上处理器)和存储器1932,一个或一个以上存储应用程序1942或数据1944的存储介质1930(例如一个或一个以上海量存储设备)。其中,存储器1932和存储介质1930可以是短暂存储或持久存储。存储在存储介质1930的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1922可以设置为与存储介质1930通信,在服务器1900上执行存储介质1930中的一系列指令操作。
服务器1900还可以包括一个或一个以上电源1926,一个或一个以上有线或无线网络接口1950,一个或一个以上输入输出接口1958,一个或一个以上键盘1956,和/或,一个或一个以上操作系统1941,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
一种非临时性计算机可读存储介质,当所述存储介质中的指令由装置(服务器或者终端)的处理器执行时,使得装置能够执行图1所示的认证方法。
一种非临时性计算机可读存储介质,当所述存储介质中的指令由装置(服务器或者终端)的处理器执行时,使得装置能够执行一种认证方法,所述方法包括:接收证明方的第一证书请求,以及接收挑战方的第二证书请求;响应所述第一证书请求,向所述证明方发送第一证书,以及响应所述第二证书请求,向所述挑战方发送第二证书;其中,所述第一证书包括SGX环境的证明方对应的第一扩展证书,或者非SGX环境的证明方对应的第一普通证书,所述第二证书包括SGX环境的挑战方对应的第二扩展证书,或者非SGX环境的挑战方对应的第二普通证书;接收所述挑战方发送的携带所述第一证书的验证请求;响应所述验证请求,对所述第一证书进行验证。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
以上对本发明所提供的一种认证方法、一种认证装置和一种用于认证的装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种认证方法,其特征在于,应用于第一服务器,所述方法包括:
接收证明方的第一证书请求,以及接收挑战方的第二证书请求;
响应所述第一证书请求,向所述证明方发送第一证书,以及响应所述第二证书请求,向所述挑战方发送第二证书;其中,所述第一证书包括SGX环境的证明方对应的第一扩展证书,或者非SGX环境的证明方对应的第一普通证书,所述第二证书包括SGX环境的挑战方对应的第二扩展证书,或者非SGX环境的挑战方对应的第二普通证书;
接收所述挑战方发送的携带所述第一证书的验证请求;
响应所述验证请求,对所述第一证书进行验证。
2.一种认证方法,其特征在于,应用于证明方,所述证明方为SGX环境的证明方或者非SGX环境的证明方,所述方法包括:
向第一服务器发送第一证书请求;
接收所述第一服务器对所述第一证书请求返回的第一证书,所述第一证书包括SGX环境的证明方对应的第一扩展证书,或者非SGX环境的证明方对应的第一普通证书;
向挑战方发送所述第一证书,所述挑战方包括SGX环境的挑战方或者非SGX环境的挑战方。
3.一种认证方法,其特征在于,应用于挑战方,所述挑战方为SGX环境的挑战方或者非SGX环境的挑战方,所述方法包括:
向第一服务器发送第二证书请求;
接收所述第一服务器对所述第二证书请求返回的第二证书,所述第二证书包括SGX环境的挑战方对应的第二扩展证书,或者非SGX环境的挑战方对应的第二普通证书;
接收证明方发送的第一证书,所述第一证书包括SGX环境的证明方对应的第一扩展证书,或者非SGX环境的证明方对应的第一普通证书;
向所述第一服务器发送携带所述第一证书的验证请求,以通过所述第一服务器对所述证明方的第一证书进行验证。
4.一种认证装置,其特征在于,应用于第一服务器,所述装置包括:
第一接收模块,用于接收证明方的第一证书请求,以及接收挑战方的第二证书请求;
第一响应模块,用于响应所述第一证书请求,向所述证明方发送第一证书,以及响应所述第二证书请求,向所述挑战方发送第二证书;其中,所述第一证书包括SGX环境的证明方对应的第一扩展证书,或者非SGX环境的证明方对应的第一普通证书,所述第二证书包括SGX环境的挑战方对应的第二扩展证书,或者非SGX环境的挑战方对应的第二普通证书;
第二接收模块,用于接收所述挑战方发送的携带所述第一证书的验证请求;
第一证书验证模块,用于响应所述验证请求,对所述第一证书进行验证。
5.一种认证装置,其特征在于,应用于证明方,所述证明方为SGX环境的证明方或者非SGX环境的证明方,所述装置包括:
第一发送模块,用于向第一服务器发送第一证书请求;
第三接收模块,用于接收所述第一服务器对所述第一证书请求返回的第一证书,所述第一证书包括SGX环境的证明方对应的第一扩展证书,或者非SGX环境的证明方对应的第一普通证书;
第二发送模块,用于向挑战方发送所述第一证书,所述挑战方包括SGX环境的挑战方或者非SGX环境的挑战方。
6.一种认证装置,其特征在于,应用于挑战方,所述挑战方为SGX环境的挑战方或者非SGX环境的挑战方,所述装置包括:
证书请求发送模块,用于向第一服务器发送第二证书请求;
第五接收模块,用于接收所述第一服务器对所述第二证书请求返回的第二证书,所述第二证书包括SGX环境的挑战方对应的第二扩展证书,或者非SGX环境的挑战方对应的第二普通证书;
第六接收模块,用于接收证明方发送的第一证书,所述第一证书包括SGX环境的证明方对应的第一扩展证书,或者非SGX环境的证明方对应的第一普通证书;
验证请求发送模块,用于向所述第一服务器发送携带所述第一证书的验证请求,以通过所述第一服务器对所述证明方的第一证书进行验证。
7.一种用于认证的装置,其特征在于,应用于第一服务器,所述装置包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
接收证明方的第一证书请求,以及接收挑战方的第二证书请求;
响应所述第一证书请求,向所述证明方发送第一证书,以及响应所述第二证书请求,向所述挑战方发送第二证书;其中,所述第一证书包括SGX环境的证明方对应的第一扩展证书,或者非SGX环境的证明方对应的第一普通证书,所述第二证书包括SGX环境的挑战方对应的第二扩展证书,或者非SGX环境的挑战方对应的第二普通证书;
接收所述挑战方发送的携带所述第一证书的验证请求;
响应所述验证请求,对所述第一证书进行验证。
8.一种用于认证的装置,其特征在于,应用于证明方,所述证明方为SGX环境的证明方或者非SGX环境的证明方,所述装置包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
向第一服务器发送第一证书请求;
接收所述第一服务器对所述第一证书请求返回的第一证书,所述第一证书包括SGX环境的证明方对应的第一扩展证书,或者非SGX环境的证明方对应的第一普通证书;
向挑战方发送所述第一证书,所述挑战方包括SGX环境的挑战方或者非SGX环境的挑战方。
9.一种用于认证的装置,其特征在于,应用于挑战方,所述挑战方为SGX环境的挑战方或者非SGX环境的挑战方,所述装置包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
向第一服务器发送第二证书请求;
接收所述第一服务器对所述第二证书请求返回的第二证书,所述第二证书包括SGX环境的挑战方对应的第二扩展证书,或者非SGX环境的挑战方对应的第二普通证书;
接收证明方发送的第一证书,所述第一证书包括SGX环境的证明方对应的第一扩展证书,或者非SGX环境的证明方对应的第一普通证书;
向所述第一服务器发送携带所述第一证书的验证请求,以通过所述第一服务器对所述证明方的第一证书进行验证。
10.一种机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得装置执行如权利要求1至3任一所述的认证方法。
CN202011011092.5A 2020-09-23 2020-09-23 一种认证方法、装置和用于认证的装置 Active CN112187771B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011011092.5A CN112187771B (zh) 2020-09-23 2020-09-23 一种认证方法、装置和用于认证的装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011011092.5A CN112187771B (zh) 2020-09-23 2020-09-23 一种认证方法、装置和用于认证的装置

Publications (2)

Publication Number Publication Date
CN112187771A true CN112187771A (zh) 2021-01-05
CN112187771B CN112187771B (zh) 2023-04-07

Family

ID=73956004

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011011092.5A Active CN112187771B (zh) 2020-09-23 2020-09-23 一种认证方法、装置和用于认证的装置

Country Status (1)

Country Link
CN (1) CN112187771B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102594558A (zh) * 2012-01-19 2012-07-18 东北大学 一种可信计算环境的匿名数字证书系统及验证方法
CN103856478A (zh) * 2012-12-06 2014-06-11 阿里巴巴集团控股有限公司 一种可信网络的证书签发、认证方法及相应的设备
CN107493291A (zh) * 2017-08-31 2017-12-19 阿里巴巴集团控股有限公司 一种基于安全元件se的身份认证方法和装置
US20190065406A1 (en) * 2017-11-17 2019-02-28 Intel Corporation Technology For Establishing Trust During A Transport Layer Security Handshake

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102594558A (zh) * 2012-01-19 2012-07-18 东北大学 一种可信计算环境的匿名数字证书系统及验证方法
CN103856478A (zh) * 2012-12-06 2014-06-11 阿里巴巴集团控股有限公司 一种可信网络的证书签发、认证方法及相应的设备
CN107493291A (zh) * 2017-08-31 2017-12-19 阿里巴巴集团控股有限公司 一种基于安全元件se的身份认证方法和装置
US20190065406A1 (en) * 2017-11-17 2019-02-28 Intel Corporation Technology For Establishing Trust During A Transport Layer Security Handshake

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
王鹃等: "SGX技术的分析和研究", 《软件学报》 *
黄秀文: "基于可信计算的远程证明的研究", 《武汉纺织大学学报》 *

Also Published As

Publication number Publication date
CN112187771B (zh) 2023-04-07

Similar Documents

Publication Publication Date Title
US9819652B2 (en) Information interaction methods and devices
CN109547471B (zh) 网络通信方法和装置
CN110299996B (zh) 认证方法、设备及系统
US10038676B2 (en) Call encryption systems and methods
US20120128154A1 (en) Establishing a secure proximity pairing between electronic devices
CN113242224B (zh) 授权方法及装置、电子设备和存储介质
CN112202770B (zh) 设备联网方法及装置、设备、存储介质
CN109246110B (zh) 数据共享方法、装置及计算机可读存储介质
CN113343212A (zh) 设备注册方法及装置、电子设备和存储介质
CN112182647A (zh) 数据读取方法及装置、数据授权方法及装置、存储介质
CN113254956A (zh) 一种数据处理方法、装置和用于数据处理的装置
CN114301609B (zh) 一种不经意传输方法、多方安全计算平台和用于不经意传输的装置
CN112182646A (zh) 数据读取方法及装置、数据授权方法及装置、存储介质
CN114221764A (zh) 基于区块链的公钥更新方法、装置和设备
CN114218510A (zh) 业务页面显示方法、装置和设备
CN112671530B (zh) 一种数据处理方法、装置和用于数据处理的装置
CN112187771B (zh) 一种认证方法、装置和用于认证的装置
CN107302519B (zh) 一种终端设备的身份认证方法、装置和终端设备、服务器
CN108924136B (zh) 授权认证方法、装置及存储介质
CN114247150B (zh) 一种虚拟队伍组建方法、装置、电子设备及存储介质
WO2024031722A1 (zh) 北向应用程序接口api调用方法及装置
JP2023121134A (ja) 距離測定方法、装置、電子機器及び記憶媒体
CN116318652A (zh) 密钥分发方法、装置、电子设备和存储介质
CN107318148B (zh) 无线局域网接入信息存储方法及装置
CN115017521A (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