CN106022140B - 身份证读取方法和系统 - Google Patents

身份证读取方法和系统 Download PDF

Info

Publication number
CN106022140B
CN106022140B CN201610243349.7A CN201610243349A CN106022140B CN 106022140 B CN106022140 B CN 106022140B CN 201610243349 A CN201610243349 A CN 201610243349A CN 106022140 B CN106022140 B CN 106022140B
Authority
CN
China
Prior art keywords
card
ciphertext
data
reading terminal
certification
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
CN201610243349.7A
Other languages
English (en)
Other versions
CN106022140A (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.)
Tendyron Corp
Original Assignee
李明
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 李明 filed Critical 李明
Priority to CN201610243349.7A priority Critical patent/CN106022140B/zh
Publication of CN106022140A publication Critical patent/CN106022140A/zh
Application granted granted Critical
Publication of CN106022140B publication Critical patent/CN106022140B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/34User authentication involving the use of external additional devices, e.g. dongles or smart cards
    • G06F21/35User authentication involving the use of external additional devices, e.g. dongles or smart cards communicating wirelessly

Abstract

本发明提供身份证读取方法和系统,所述方法包括:认证验证端对第一认证数据进行认证;身份证对第二认证数据进行认证;身份证在对第二认证数据进行认证通过后,向读卡终端发送身份证数据密文;读卡终端对身份证数据密文进行安全处理后传送至认证验证端,认证验证端进行安全验证后得到身份证数据密文,并对身份证数据密文进行解密得到身份证数据明文;认证验证端对身份证数据明文进行安全处理后传送至读卡终端,读卡终端进行安全验证后得到身份证数据明文。

Description

身份证读取方法和系统
技术领域
本发明涉及身份证领域,尤其涉及身份证读取方法和系统。
背景技术
现有身份证信息读取方案中,读卡器需要配合使用验证安全控制模块来实现身份证信息的读取及显示。例如,银行、车站等需要采用身份证信息读取的行业,通常需要在本地布局大量的读卡器和验证安全控制模块,读卡器与验证安全控制模块之间还需要设置相应的对应关系,方案实现较复杂,成本较高。
发明内容
本发明旨在解决上述问题/之一。
本发明的主要目的在于提供一种身份证读取方法;
本发明的另一目的在于提供另一种身份证读取方法;
本发明的另一目的在于提供一种身份证读取系统;
本发明的另一目的在于提供另一种身份证读取系统。
为达到上述目的,本发明的技术方案具体是这样实现的:
本发明一方面提供了一种身份证读取方法,包括:读卡终端接收身份证发送的身份证基本信息,对身份证基本信息进行安全处理,得到第一数据包;并向认证验证端发送第一数据包;认证验证端接收第一数据包,对第一数据包进行安全验证,在安全验证通过后得到身份证基本信息;并获取第一认证因子,对第一认证因子进行安全处理,得到第二数据包;并向读卡终端发送第二数据包;读卡终端接收第二数据包;对第二数据包进行安全验证,在安全验证通过后得到第一认证因子,并向身份证发送第一认证因子;接收身份证发送的第一认证数据,对第一认证数据进行安全处理,得到第三数据包;并向认证验证端发送第三数据包,其中,第一认证数据为身份证对第一认证因子进行处理得到;认证验证端接收第三数据包;对第三数据包进行安全验证,在安全验证通过后得到第一认证数据;并对第一认证数据进行认证,并在认证通过后生成认证因子申请请求,对认证因子申请请求进行安全处理,得到认证因子申请请求数据包,并向读卡终端发送认证因子申请请求数据包;读卡终端接收认证因子申请请求数据包,对认证因子申请请求数据包进行安全验证,在安全验证通过后得到认证因子申请请求,并将认证因子申请请求发送至身份证;接收身份证发送的第二认证因子,对第二认证因子进行安全处理,得到第四数据包;并向认证验证端发送第四数据包;认证验证端接收第四数据包;并对第四数据包进行安全验证,在安全验证通过后得到第二认证因子;并对第二认证因子进行处理生成第二认证数据;并对第二认证数据进行安全处理,得到第五数据包;并向读卡终端发送第五数据包;读卡终端接收第五数据包;对第五数据包进行安全验证,在安全验证通过后得到第二认证数据,并向身份证发送第二认证数据;接收身份证发送的身份证数据密文,对身份证数据密文进行安全处理得到第六数据包;并向认证验证端发送第六数据包,其中,身份证数据密文为身份证对第二认证数据进行认证,在认证通过后发送;认证验证端接收第六数据包,对第六数据包进行安全验证,在安全验证通过后得到身份证数据密文;并对身份证数据密文进行解密,得到身份证数据明文;并对身份证数据明文进行安全处理,得到第七数据包;并向读卡终端发送第七数据包;读卡终端接收第七数据包,对第七数据包进行安全验证,在安全验证通过后得到身份证数据明文。
此外,对身份证基本信息进行安全处理,得到第一数据包,包括:利用读卡终端的会话密钥对身份证基本信息进行加密,得到第一密文,以及利用读卡终端的第一私钥对第一密文进行签名,得到第一签名值,第一数据包包括第一密文和第一签名值;对第一数据包进行安全验证,包括:利用读卡终端的第一证书对第一签名值进行验证,并在对第一签名值进行签名验证通过后,利用认证验证端的会话密钥对第一密文进行解密;对第一认证因子进行安全处理,得到第二数据包,包括:利用认证验证端的会话密钥对第一认证因子进行加密,得到第二密文,以及利用认证验证端的私钥对第二密文进行签名,得到第二签名值,第二数据包包括第二密文和第二签名值;对第二数据包进行安全验证,包括:利用认证验证端的证书对第二签名值进行签名验证,并在对第二签名值进行签名验证通过后,利用读卡终端的会话密钥对第二密文进行解密;对第一认证数据进行安全处理包括:利用读卡终端的会话密钥对第一认证数据进行加密,得到第三密文,以及利用读卡终端的第一私钥对第三密文进行签名,得到第三签名值,第三数据包包括第三密文和第三签名值;对第三数据包进行安全验证,包括:利用读卡终端的第一证书对第三签名值进行签名验证,并在对第三签名值进行签名验证通过后,利用认证验证端的会话密钥对第三密文进行解密;对认证因子申请请求进行安全处理,得到认证因子申请请求数据包,包括:利用认证验证端的会话密钥对认证因子申请请求进行加密,生成认证因子申请请求密文,并利用认证验证端的私钥对认证因子申请请求密文进行签名,得到认证因子申请请求签名值,认证因子申请请求数据包包括认证因子申请请求密文和认证因子申请请求签名值;对认证因子申请请求数据包进行安全验证,包括:利用认证验证端的证书对认证因子申请请求签名值进行签名验证,并在对认证因子申请请求签名值进行签名验证通过后,利用读卡终端的会话密钥对认证因子申请请求密文进行解密;对第二认证因子进行安全处理,得到第四数据包,包括:利用读卡终端的会话密钥对第二认证因子进行加密,得到第四密文,以及利用读卡终端的第一私钥对第四密文进行签名,得到第四签名值,第四数据包包括第四密文和第四签名值;对第四数据包进行安全验证,包括:利用读卡终端的第一证书对第四签名值进行签名验证,并在对第四签名值进行签名验证通过后,利用认证验证端的会话密钥对第四密文进行解密;并对第二认证数据进行安全处理,得到第五数据包,包括:利用认证验证端的会话密钥对第二认证数据进行加密,得到第五密文,以及利用认证验证端的私钥对第五密文进行签名,得到第五签名值,第五数据包包括第五密文和第五签名值;对第五数据包进行安全验证,包括:利用认证验证端的证书对第五签名值进行签名验证,并在对第五签名值进行签名验证通过后,利用读卡终端的会话密钥对第五密文进行解密;对身份证数据密文进行安全处理得到第六数据包,包括:利用读卡终端的会话密钥对身份证数据密文进行加密,得到第六密文,以及利用读卡终端的第一私钥对第六密文进行签名,得到第六签名值,第六数据包包括第六密文和第六签名值;对第六数据包进行安全验证,包括:利用读卡终端的第一证书对第六签名值进行签名验证,并在对第六签名值进行签名验证通过后,利用认证验证端的会话密钥对第六密文进行解密;对身份证数据明文进行安全处理,得到第七数据包,包括:利用认证验证端的会话密钥对身份证数据明文进行加密,得到第七密文,以及利用认证验证端的私钥对第七密文进行签名,得到第七签名值,第七数据包包括第七密文和第七签名值;对第七数据包进行安全验证,包括:利用认证验证端的证书对第七签名值进行签名验证,并在对第七签名值进行签名验证通过后,利用读卡终端的会话密钥对第七密文进行解密。
此外,在读卡终端从身份证读取身份证基本信息之前,还包括:读卡终端利用认证加密密钥对寻卡请求数据进行加密,得到寻卡请求数据密文,利用读卡终端的第一私钥对寻卡请求数据密文进行签名,得到寻卡请求签名值,并向认证验证端发送寻卡请求,寻卡请求包括寻卡请求数据密文、寻卡请求签名值、读卡终端的第一证书和读卡终端的第二证书;认证验证端接收寻卡请求,并利用读卡终端的第一证书对寻卡请求签名值进行签名验证,并在对寻卡请求签名值进行签名验证通过后,利用认证解密密钥对寻卡请求数据密文进行解密,得到寻卡请求数据;认证验证端生成会话密钥,并利用会话密钥对寻卡请求响应数据进行加密,得到寻卡请求响应数据密文,并利用读卡终端的第二证书对会话密钥进行加密,得到会话密钥密文,并利用认证验证端的私钥对寻卡请求响应数据密文和会话密钥密文进行签名,得到寻卡请求响应签名值,并向读卡终端发送寻卡请求响应,寻卡请求响应包括:寻卡请求响应数据密文、会话密钥密文、寻卡请求响应签名值和认证验证端的证书,其中,认证验证端采用生成的会话密钥作为认证验证端的会话密钥;读卡终端接收寻卡请求响应,并利用认证验证端的证书对寻卡请求响应签名值进行验签,并在对寻卡请求响应签名值进行验签通过后,利用读卡终端的第二私钥对会话密钥密文进行解密,得到会话密钥,并利用会话密钥对寻卡请求响应数据密文进行解密,得到寻卡请求响应数据,其中,读卡终端采用对会话密钥密文解密得到的会话密钥作为读卡终端的会话密钥。
此外,在读卡终端利用会话密钥对身份证基本信息进行加密之前,还包括:读卡终端获取第一随机数,并利用读卡终端的第一私钥对第一随机数进行签名,得到第一随机数签名值,并向认证验证端发送第一随机数、第一随机数签名值和读卡终端第一证书;认证验证端接收第一随机数、第一随机数签名值和读卡终端的第一证书,并利用根证书对读卡终端的第一证书进行验证,并在验证通过后,利用读卡终端的第一证书对第一随机数签名值进行签名验证,并在对第一随机数签名值进行签名验证通过后,生成第二随机数,根据第一随机数和第二随机数生成认证验证端的会话密钥;并利用读卡终端的第一证书对第一随机数和第二随机数进行加密,得到第八密文,以及利用认证验证端的私钥对第八密文进行签名,得到第八签名值;并向读卡终端发送第八数据包,第八数据包包括:第八密文、第八签名值和认证验证端的证书;读卡终端接收第八数据包;利用认证验证端的证书对第八签名值进行签名验证,并在对第八签名值进行签名验证通过后,利用读卡终端的第一私钥对第八密文进行解密,得到第一随机数和第二随机数;并对第一随机数进行验证,验证通过后,根据第一随机数和第二随机数生成读卡终端的会话密钥。
本发明另一方面还提供了另一种身份证读取方法,包括:读卡终端接收身份证发送的身份证基本信息,对身份证基本信息进行安全处理,得到第一数据包;并向认证端发送第一数据包;认证端接收第一数据包,对第一数据包进行安全验证,在安全验证通过后得到身份证基本信息;并向验证端发送身份证基本信息;验证端接收身份证基本信息,并获取第一认证因子,并将第一认证因子发送至认证端;认证端接收第一认证因子,并对第一认证因子进行安全处理,得到第二数据包;并向读卡终端发送第二数据包;读卡终端接收第二数据包;对第二数据包进行安全验证,在安全验证通过后得到第一认证因子,并向身份证发送第一认证因子;接收身份证发送的第一认证数据,对第一认证数据进行安全处理,得到第三数据包;并向认证端发送第三数据包,其中,第一认证数据为身份证对第一认证因子进行处理得到;认证端接收第三数据包;对第三数据包进行安全验证,在安全验证通过后得到第一认证数据;并向验证端发送第一认证数据;验证端接收第一认证数据,并对第一认证数据进行认证,并在认证通过后生成认证因子申请请求,并向认证端发送认证因子申请请求;认证端接收认证因子申请请求,并对认证因子申请请求进行安全处理,得到认证因子申请请求数据包,并向读卡终端发送认证因子申请请求数据包;读卡终端接收认证因子申请请求数据包,对认证因子申请请求数据包进行安全验证,在安全验证通过后得到认证因子申请请求,并将认证因子申请请求发送至身份证;接收身份证发送的第二认证因子,对第二认证因子进行安全处理,得到第四数据包;并向认证端发送第四数据包;认证端接收第四数据包;并对第四数据包进行安全验证,在安全验证通过后得到第二认证因子;并向验证端发送第二认证因子;验证端接收第二认证因子,并对第二认证因子进行处理生成第二认证数据;并向认证端发送第二认证数据;认证端接收第二认证数据,并对第二认证数据进行安全处理,得到第五数据包;并向读卡终端发送第五数据包;读卡终端接收第五数据包;对第五数据包进行安全验证,在安全验证通过后得到第二认证数据,并向身份证发送第二认证数据;接收身份证发送的身份证数据密文,对身份证数据密文进行安全处理得到第六数据包;并向认证端发送第六数据包,其中,身份证数据密文为身份证对第二认证数据进行认证,在认证通过后发送;认证端接收第六数据包,对第六数据包进行安全验证,在安全验证通过后得到身份证数据密文;并向验证端发送身份证数据密文;验证端接收身份证数据密文,并对身份证数据密文进行解密,得到身份证数据明文;并向认证端发送身份证数据明文;认证端接收身份证数据明文,并对身份证数据明文进行安全处理,得到第七数据包;并向读卡终端发送第七数据包;读卡终端接收第七数据包,对第七数据包进行安全验证,在安全验证通过后得到身份证数据明文。
此外,对身份证基本信息进行安全处理,得到第一数据包,包括:利用读卡终端的会话密钥对身份证基本信息进行加密,得到第一密文,以及利用读卡终端的第一私钥对第一密文进行签名,得到第一签名值,第一数据包包括第一密文和第一签名值;对第一数据包进行安全验证,包括:利用读卡终端的第一证书对第一签名值进行签名验证,并在对第一签名值进行签名验证通过后,利用认证端的会话密钥对第一密文进行解密;对第一认证因子进行安全处理,得到第二数据包,包括:利用认证端的会话密钥对第一认证因子进行加密,得到第二密文,以及利用认证端的私钥对第二密文进行签名,得到第二签名值,第二数据包包括第二密文和第二签名值;对第二数据包进行安全验证,包括:利用认证端的证书对第二签名值进行签名验证,并在对第二签名值进行签名验证通过后,利用读卡终端的会话密钥对第二密文进行解密;对第一认证数据进行安全处理包括:利用读卡终端的会话密钥对第一认证数据进行加密,得到第三密文,以及利用读卡终端的第一私钥对第三密文进行签名,得到第三签名值,第三数据包包括第三密文和第三签名值;对第三数据包进行安全验证,包括:利用读卡终端的第一证书对第三签名值进行签名验证,并在对第三签名值进行签名验证通过后,利用认证端的会话密钥对第三密文进行解密;对认证因子申请请求进行安全处理,得到认证因子申请请求数据包,包括:利用认证端的会话密钥对认证因子申请请求进行加密,生成认证因子申请请求密文,并利用认证端的私钥对认证因子申请请求密文进行签名,得到认证因子申请请求签名值,认证因子申请请求数据包包括认证因子申请请求密文和认证因子申请请求签名值;对认证因子申请请求数据包进行安全验证,包括:利用认证端的证书对认证因子申请请求签名值进行签名验证,并在对认证因子申请请求签名值进行签名验证通过后,利用读卡终端的会话密钥对认证因子申请请求密文进行解密;对第二认证因子进行安全处理,得到第四数据包,包括:利用读卡终端的会话密钥对第二认证因子进行加密,得到第四密文,以及利用读卡终端的第一私钥对第四密文进行签名,得到第四签名值,第四数据包包括第四密文和第四签名值;对第四数据包进行安全验证,包括:利用读卡终端的第一证书对第四签名值进行签名验证,并在对第四签名值进行签名验证通过后,利用认证端的会话密钥对第四密文进行解密;并对第二认证数据进行安全处理,得到第五数据包,包括:利用认证端的会话密钥对第二认证数据进行加密,得到第五密文,以及利用认证端的私钥对第五密文进行签名,得到第五签名值,第五数据包包括第五密文和第五签名值;对第五数据包进行安全验证,包括:利用认证端的证书对第五签名值进行签名验证,并在对第五签名值进行签名验证通过后,利用读卡终端的会话密钥对第五密文进行解密;对身份证数据密文进行安全处理得到第六数据包,包括:利用读卡终端的会话密钥对身份证数据密文进行加密,得到第六密文,以及利用读卡终端的第一私钥对第六密文进行签名,得到第六签名值,第六数据包包括第六密文和第六签名值;对第六数据包进行安全验证,包括:利用读卡终端的第一证书对第六签名值进行签名验证,并在对第六签名值进行签名验证通过后,利用认证端的会话密钥对第六密文进行解密;对身份证数据明文进行安全处理,得到第七数据包,包括:利用认证端的会话密钥对身份证数据明文进行加密,得到第七密文,以及利用认证端的私钥对第七密文进行签名,得到第七签名值,第七数据包包括第七密文和第七签名值;对第七数据包进行安全验证,包括:利用认证端的证书对第七签名值进行签名验证,并在对第七签名值进行签名验证通过后,利用读卡终端的会话密钥对第七密文进行解密。
此外,在读卡终端从身份证读取身份证基本信息之前,还包括:读卡终端利用认证加密密钥对寻卡请求数据进行加密,得到寻卡请求数据密文,利用读卡终端的第一私钥对寻卡请求数据密文进行签名,得到寻卡请求签名值,并向认证端发送寻卡请求,寻卡请求包括寻卡请求数据密文、寻卡请求签名值、读卡终端的第一证书和读卡终端的第二证书;认证端接收寻卡请求,并利用读卡终端的第一证书对寻卡请求签名值进行签名验证,并在对寻卡请求签名值进行签名验证通过后,利用认证解密密钥对寻卡请求数据密文进行解密,得到寻卡请求数据;并向云认证平台的验证端发送寻卡请求数据;验证端接收寻卡请求数据,并认证端发送寻卡请求响应数据;认证端接收寻卡请求响应数据,并生成会话密钥,并利用会话密钥对寻卡请求响应数据进行加密,得到寻卡请求响应数据密文,并利用读卡终端的第二证书对会话密钥进行加密,得到会话密钥密文,并利用认证端的私钥对寻卡请求响应数据密文和会话密钥密文进行签名,得到寻卡请求响应签名值,并向读卡终端发送寻卡请求响应,寻卡请求响应包括:寻卡请求响应数据密文、会话密钥密文、寻卡请求响应签名值和认证端的证书,其中,认证端采用生成的会话密钥作为认证端的会话密钥;读卡终端接收寻卡请求响应,并利用认证端的证书对寻卡请求响应签名值进行验签,并在对寻卡请求响应签名值进行验签通过后,利用读卡终端的第二私钥对会话密钥密文进行解密,得到会话密钥,并利用会话密钥对寻卡请求响应数据密文进行解密,得到寻卡请求响应数据,其中,读卡终端采用对会话密钥密文解密得到的会话密钥作为读卡终端的会话密钥。
此外,在读卡终端利用会话密钥对身份证基本信息进行加密之前,还包括:读卡终端获取第一随机数,并利用读卡终端的第一私钥对第一随机数进行签名,得到第一随机数签名值,并向认证端发送第一随机数、第一随机数签名值和读卡终端第一证书;认证端接收第一随机数、第一随机数签名值和读卡终端的第一证书,并利用根证书对读卡终端的第一证书进行验证,并在验证通过后,利用读卡终端的第一证书对第一随机数签名值进行签名验证,并在对第一随机数签名值进行签名验证通过后,生成第二随机数,根据第一随机数和第二随机数生成认证端的会话密钥;并利用读卡终端的第一证书对第一随机数和第二随机数进行加密,得到第八密文,以及利用认证端的私钥对第八密文进行签名,得到第八签名值;并向读卡终端发送第八数据包,第八数据包包括:第八密文、第八签名值和认证端的证书;读卡终端接收第八数据包;利用认证端的证书对第八签名值进行签名验证,并在对第八签名值进行签名验证通过后,利用读卡终端的第一私钥对第八密文进行解密,得到第一随机数和第二随机数;并对第一随机数进行验证,验证通过后,根据第一随机数和第二随机数生成读卡终端的会话密钥。
本发明另一方面还提供一种身份证读取系统,包括:读卡终端和认证验证端;其中,读卡终端,用于接收身份证发送的身份证基本信息,对身份证基本信息进行安全处理,得到第一数据包;并向认证验证端发送第一数据包;认证验证端,用于接收第一数据包,对第一数据包进行安全验证,在安全验证通过后得到身份证基本信息;并获取第一认证因子,对第一认证因子进行安全处理,得到第二数据包;并向读卡终端发送第二数据包;读卡终端,还用于接收第二数据包;对第二数据包进行安全验证,在安全验证通过后得到第一认证因子,并向身份证发送第一认证因子;接收身份证发送的第一认证数据,对第一认证数据进行安全处理,得到第三数据包;并向认证验证端发送第三数据包,其中,第一认证数据为身份证对第一认证因子进行处理得到;认证验证端,还用于接收第三数据包;对第三数据包进行安全验证,在安全验证通过后得到第一认证数据;并对第一认证数据进行认证,并在认证通过后生成认证因子申请请求,对认证因子申请请求进行安全处理,得到认证因子申请请求数据包,并向读卡终端发送认证因子申请请求数据包;读卡终端,还用于接收认证因子申请请求数据包,对认证因子申请请求数据包进行安全验证,在安全验证通过后得到认证因子申请请求,并将认证因子申请请求发送至身份证;接收身份证发送的第二认证因子,对第二认证因子进行安全处理,得到第四数据包;并向认证验证端发送第四数据包;认证验证端,还用于接收第四数据包;并对第四数据包进行安全验证,在安全验证通过后得到第二认证因子;并对第二认证因子进行处理生成第二认证数据;并对第二认证数据进行安全处理,得到第五数据包;并向读卡终端发送第五数据包;读卡终端,还用于接收第五数据包;对第五数据包进行安全验证,在安全验证通过后得到第二认证数据,并向身份证发送第二认证数据;接收身份证发送的身份证数据密文,对身份证数据密文进行安全处理得到第六数据包;并向认证验证端发送第六数据包,其中,身份证数据密文为身份证对第二认证数据进行认证,在认证通过后发送;认证验证端,还用于接收第六数据包,对第六数据包进行安全验证,在安全验证通过后得到身份证数据密文;并对身份证数据密文进行解密,得到身份证数据明文;并对身份证数据明文进行安全处理,得到第七数据包;并向读卡终端发送第七数据包;读卡终端,还用于接收第七数据包,对第七数据包进行安全验证,在安全验证通过后得到身份证数据明文。
此外,对身份证基本信息进行安全处理,得到第一数据包,包括:利用读卡终端的会话密钥对身份证基本信息进行加密,得到第一密文,以及利用读卡终端的第一私钥对第一密文进行签名,得到第一签名值,第一数据包包括第一密文和第一签名值;对第一数据包进行安全验证,包括:利用读卡终端的第一证书对第一签名值进行签名验证,并在对第一签名值进行签名验证通过后,利用认证验证端的会话密钥对第一密文进行解密;对第一认证因子进行安全处理,得到第二数据包,包括:利用认证验证端的会话密钥对第一认证因子进行加密,得到第二密文,以及利用认证验证端的私钥对第二密文进行签名,得到第二签名值,第二数据包包括第二密文和第二签名值;对第二数据包进行安全验证,包括:利用认证验证端的证书对第二签名值进行签名验证,并在对第二签名值进行签名验证通过后,利用读卡终端的会话密钥对第二密文进行解密;对第一认证数据进行安全处理包括:利用读卡终端的会话密钥对第一认证数据进行加密,得到第三密文,以及利用读卡终端的第一私钥对第三密文进行签名,得到第三签名值,第三数据包包括第三密文和第三签名值;对第三数据包进行安全验证,包括:利用读卡终端的第一证书对第三签名值进行签名验证,并在对第三签名值进行签名验证通过后,利用认证验证端的会话密钥对第三密文进行解密;对认证因子申请请求进行安全处理,得到认证因子申请请求数据包,包括:利用认证验证端的会话密钥对认证因子申请请求进行加密,生成认证因子申请请求密文,并利用认证验证端的私钥对认证因子申请请求密文进行签名,得到认证因子申请请求签名值,认证因子申请请求数据包包括认证因子申请请求密文和认证因子申请请求签名值;对认证因子申请请求数据包进行安全验证,包括:利用认证验证端的证书对认证因子申请请求签名值进行签名验证,并在对认证因子申请请求签名值进行签名验证通过后,利用读卡终端的会话密钥对认证因子申请请求密文进行解密;对第二认证因子进行安全处理,得到第四数据包,包括:利用读卡终端的会话密钥对第二认证因子进行加密,得到第四密文,以及利用读卡终端的第一私钥对第四密文进行签名,得到第四签名值,第四数据包包括第四密文和第四签名值;对第四数据包进行安全验证,包括:利用读卡终端的第一证书对第四签名值进行签名验证,并在对第四签名值进行签名验证通过后,利用认证验证端的会话密钥对第四密文进行解密;并对第二认证数据进行安全处理,得到第五数据包,包括:利用认证验证端的会话密钥对第二认证数据进行加密,得到第五密文,以及利用认证验证端的私钥对第五密文进行签名,得到第五签名值,第五数据包包括第五密文和第五签名值;对第五数据包进行安全验证,包括:利用认证验证端的证书对第五签名值进行签名验证,并在对第五签名值进行签名验证通过后,利用读卡终端的会话密钥对第五密文进行解密;对身份证数据密文进行安全处理得到第六数据包,包括:利用读卡终端的会话密钥对身份证数据密文进行加密,得到第六密文,以及利用读卡终端的第一私钥对第六密文进行签名,得到第六签名值,第六数据包包括第六密文和第六签名值;对第六数据包进行安全验证,包括:利用读卡终端的第一证书对第六签名值进行签名验证,并在对第六签名值进行签名验证通过后,利用认证验证端的会话密钥对第六密文进行解密;对身份证数据明文进行安全处理,得到第七数据包,包括:利用认证验证端的会话密钥对身份证数据明文进行加密,得到第七密文,以及利用认证验证端的私钥对第七密文进行签名,得到第七签名值,第七数据包包括第七密文和第七签名值;对第七数据包进行安全验证,包括:利用认证验证端的证书对第七签名值进行签名验证,并在对第七签名值进行签名验证通过后,利用读卡终端的会话密钥对第七密文进行解密。
此外,在读卡终端从身份证读取身份证基本信息之前:读卡终端,还用于利用认证加密密钥对寻卡请求数据进行加密,得到寻卡请求数据密文,利用读卡终端的第一私钥对寻卡请求数据密文进行签名,得到寻卡请求签名值,并向认证验证端发送寻卡请求,寻卡请求包括寻卡请求数据密文、寻卡请求签名值、读卡终端的第一证书和读卡终端的第二证书;认证验证端,还用于接收寻卡请求,并利用读卡终端的第一证书对寻卡请求签名值进行签名验证,并在对寻卡请求签名值进行签名验证通过后,利用认证解密密钥对寻卡请求数据密文进行解密,得到寻卡请求数据;认证验证端,还用于生成会话密钥,并利用会话密钥对寻卡请求响应数据进行加密,得到寻卡请求响应数据密文,并利用读卡终端的第二证书对会话密钥进行加密,得到会话密钥密文,并利用认证验证端的私钥对寻卡请求响应数据密文和会话密钥密文进行签名,得到寻卡请求响应签名值,并向读卡终端发送寻卡请求响应,寻卡请求响应包括:寻卡请求响应数据密文、会话密钥密文、寻卡请求响应签名值和认证验证端的证书,其中,认证验证端采用生成的会话密钥作为认证验证端的会话密钥;读卡终端,还用于接收寻卡请求响应,并利用认证验证端的证书对寻卡请求响应签名值进行验签,并在对寻卡请求响应签名值进行验签通过后,利用读卡终端的第二私钥对会话密钥密文进行解密,得到会话密钥,并利用会话密钥对寻卡请求响应数据密文进行解密,得到寻卡请求响应数据,其中,读卡终端采用对会话密钥密文解密得到的会话密钥作为读卡终端的会话密钥。
此外,在读卡终端利用会话密钥对身份证基本信息进行加密之前:读卡终端,还用于获取第一随机数,并利用读卡终端的第一私钥对第一随机数进行签名,得到第一随机数签名值,并向认证验证端发送第一随机数、第一随机数签名值和读卡终端第一证书;认证验证端,还用于接收第一随机数、第一随机数签名值和读卡终端的第一证书,并利用根证书对读卡终端的第一证书进行验证,并在验证通过后,利用读卡终端的第一证书对第一随机数签名值进行签名验证,并在对第一随机数签名值进行签名验证通过后,生成第二随机数,根据第一随机数和第二随机数生成认证验证端的会话密钥;并利用读卡终端的第一证书对第一随机数和第二随机数进行加密,得到第八密文,以及利用认证验证端的私钥对第八密文进行签名,得到第八签名值;并向读卡终端发送第八数据包,第八数据包包括:第八密文、第八签名值和认证验证端的证书;读卡终端,还用于接收第八数据包;利用认证验证端的证书对第八签名值进行签名验证,并在对第八签名值进行签名验证通过后,利用读卡终端的第一私钥对第八密文进行解密,得到第一随机数和第二随机数;并对第一随机数进行验证,验证通过后,根据第一随机数和第二随机数生成读卡终端的会话密钥。
本发明另一方面还提供另一种身份证读取系统,,包括:读卡终端、认证端和验证端;其中,读卡终端,用于接收身份证发送的身份证基本信息,对身份证基本信息进行安全处理,得到第一数据包;并向认证端发送第一数据包;认证端,用于接收第一数据包,对第一数据包进行安全验证,在安全验证通过后得到身份证基本信息;并向验证端发送身份证基本信息;验证端,用于接收身份证基本信息,并获取第一认证因子,并将第一认证因子发送至认证端;认证端,还用于接收第一认证因子,并对第一认证因子进行安全处理,得到第二数据包;并向读卡终端发送第二数据包;读卡终端,还用于接收第二数据包;对第二数据包进行安全验证,在安全验证通过后得到第一认证因子,并向身份证发送第一认证因子;接收身份证发送的第一认证数据,对第一认证数据进行安全处理,得到第三数据包;并向认证端发送第三数据包,其中,第一认证数据为身份证对第一认证因子进行处理得到;认证端,还用于接收第三数据包;对第三数据包进行安全验证,在安全验证通过后得到第一认证数据;并向验证端发送第一认证数据;验证端,还用于接收第一认证数据,并对第一认证数据进行认证,并在认证通过后生成认证因子申请请求,并向认证端发送认证因子申请请求;认证端,还用于接收认证因子申请请求,并对认证因子申请请求进行安全处理,得到认证因子申请请求数据包,并向读卡终端发送认证因子申请请求数据包;读卡终端,还用于接收认证因子申请请求数据包,对认证因子申请请求数据包进行安全验证,在安全验证通过后得到认证因子申请请求,并将认证因子申请请求发送至身份证;接收身份证发送的第二认证因子,对第二认证因子进行安全处理,得到第四数据包;并向认证端发送第四数据包;认证端,还用于接收第四数据包;并对第四数据包进行安全验证,在安全验证通过后得到第二认证因子;并向验证端发送第二认证因子;验证端,还用于接收第二认证因子,并对第二认证因子进行处理生成第二认证数据;并向认证端发送第二认证数据;
认证端,还用于接收第二认证数据,并对第二认证数据进行安全处理,得到第五数据包;并向读卡终端发送第五数据包;读卡终端,还用于接收第五数据包;对第五数据包进行安全验证,在安全验证通过后得到第二认证数据,并向身份证发送第二认证数据;接收身份证发送的身份证数据密文,对身份证数据密文进行安全处理得到第六数据包;并向认证端发送第六数据包,其中,身份证数据密文为身份证对第二认证数据进行认证,在认证通过后发送;认证端,还用于接收第六数据包,对第六数据包进行安全验证,在安全验证通过后得到身份证数据密文;并向验证端发送身份证数据密文;验证端,还用于接收身份证数据密文,并对身份证数据密文进行解密,得到身份证数据明文;并向认证端发送身份证数据明文;认证端,还用于接收身份证数据明文,并对身份证数据明文进行安全处理,得到第七数据包;并向读卡终端发送第七数据包;
读卡终端,还用于接收第七数据包,对第七数据包进行安全验证,在安全验证通过后得到身份证数据明文。
此外,对身份证基本信息进行安全处理,得到第一数据包,包括:利用读卡终端的会话密钥对身份证基本信息进行加密,得到第一密文,以及利用读卡终端的第一私钥对第一密文进行签名,得到第一签名值,第一数据包包括第一密文和第一签名值;对第一数据包进行安全验证,包括:利用读卡终端的第一证书对第一签名值进行签名验证,并在对第一签名值进行签名验证通过后,利用认证端的会话密钥对第一密文进行解密;对第一认证因子进行安全处理,得到第二数据包,包括:利用认证端的会话密钥对第一认证因子进行加密,得到第二密文,以及利用认证端的私钥对第二密文进行签名,得到第二签名值,第二数据包包括第二密文和第二签名值;对第二数据包进行安全验证,包括:利用认证端的证书对第二签名值进行签名验证,并在对第二签名值进行签名验证通过后,利用读卡终端的会话密钥对第二密文进行解密;对第一认证数据进行安全处理包括:利用读卡终端的会话密钥对第一认证数据进行加密,得到第三密文,以及利用读卡终端的第一私钥对第三密文进行签名,得到第三签名值,第三数据包包括第三密文和第三签名值;对第三数据包进行安全验证,包括:利用读卡终端的第一证书对第三签名值进行签名验证,并在对第三签名值进行签名验证通过后,利用认证端的会话密钥对第三密文进行解密;对认证因子申请请求进行安全处理,得到认证因子申请请求数据包,包括:利用认证端的会话密钥对认证因子申请请求进行加密,生成认证因子申请请求密文,并利用认证端的私钥对认证因子申请请求密文进行签名,得到认证因子申请请求签名值,认证因子申请请求数据包包括认证因子申请请求密文和认证因子申请请求签名值;对认证因子申请请求数据包进行安全验证,包括:利用认证端的证书对认证因子申请请求签名值进行签名验证,并在对认证因子申请请求签名值进行签名验证通过后,利用读卡终端的会话密钥对认证因子申请请求密文进行解密;对第二认证因子进行安全处理,得到第四数据包,包括:利用读卡终端的会话密钥对第二认证因子进行加密,得到第四密文,以及利用读卡终端的第一私钥对第四密文进行签名,得到第四签名值,第四数据包包括第四密文和第四签名值;对第四数据包进行安全验证,包括:利用读卡终端的第一证书对第四签名值进行签名验证,并在对第四签名值进行签名验证通过后,利用认证端的会话密钥对第四密文进行解密;并对第二认证数据进行安全处理,得到第五数据包,包括:利用认证端的会话密钥对第二认证数据进行加密,得到第五密文,以及利用认证端的私钥对第五密文进行签名,得到第五签名值,第五数据包包括第五密文和第五签名值;对第五数据包进行安全验证,包括:利用认证端的证书对第五签名值进行签名验证,并在对第五签名值进行签名验证通过后,利用读卡终端的会话密钥对第五密文进行解密;对身份证数据密文进行安全处理得到第六数据包,包括:利用读卡终端的会话密钥对身份证数据密文进行加密,得到第六密文,以及利用读卡终端的第一私钥对第六密文进行签名,得到第六签名值,第六数据包包括第六密文和第六签名值;对第六数据包进行安全验证,包括:利用读卡终端的第一证书对第六签名值进行签名验证,并在对第六签名值进行签名验证通过后,利用认证端的会话密钥对第六密文进行解密;对身份证数据明文进行安全处理,得到第七数据包,包括:利用认证端的会话密钥对身份证数据明文进行加密,得到第七密文,以及利用认证端的私钥对第七密文进行签名,得到第七签名值,第七数据包包括第七密文和第七签名值;对第七数据包进行安全验证,包括:利用认证端的证书对第七签名值进行签名验证,并在对第七签名值进行签名验证通过后,利用读卡终端的会话密钥对第七密文进行解密。
此外,在读卡终端从身份证读取身份证基本信息之前:读卡终端,还用于利用认证加密密钥对寻卡请求数据进行加密,得到寻卡请求数据密文,利用读卡终端的第一私钥对寻卡请求数据密文进行签名,得到寻卡请求签名值,并向认证端发送寻卡请求,寻卡请求包括寻卡请求数据密文、寻卡请求签名值、读卡终端的第一证书和读卡终端的第二证书;认证端,还用于接收寻卡请求,并利用读卡终端的第一证书对寻卡请求签名值进行签名验证,并在对寻卡请求签名值进行签名验证通过后,利用认证解密密钥对寻卡请求数据密文进行解密,得到寻卡请求数据;并向云认证平台的验证端发送寻卡请求数据;验证端,还用于接收寻卡请求数据,并认证端发送寻卡请求响应数据;认证端,还用于接收寻卡请求响应数据,并生成会话密钥,并利用会话密钥对寻卡请求响应数据进行加密,得到寻卡请求响应数据密文,并利用读卡终端的第二证书对会话密钥进行加密,得到会话密钥密文,并利用认证端的私钥对寻卡请求响应数据密文和会话密钥密文进行签名,得到寻卡请求响应签名值,并向读卡终端发送寻卡请求响应,寻卡请求响应包括:寻卡请求响应数据密文、会话密钥密文、寻卡请求响应签名值和认证端的证书,其中,认证端采用生成的会话密钥作为认证端的会话密钥;读卡终端,还用于接收寻卡请求响应,并利用认证端的证书对寻卡请求响应签名值进行验签,并在对寻卡请求响应签名值进行验签通过后,利用读卡终端的第二私钥对会话密钥密文进行解密,得到会话密钥,并利用会话密钥对寻卡请求响应数据密文进行解密,得到寻卡请求响应数据,其中,读卡终端采用对会话密钥密文解密得到的会话密钥作为读卡终端的会话密钥。
此外,在读卡终端利用会话密钥对身份证基本信息进行加密之前:读卡终端,还用于获取第一随机数,并利用读卡终端的第一私钥对第一随机数进行签名,得到第一随机数签名值,并向认证端发送第一随机数、第一随机数签名值和读卡终端第一证书;认证端,还用于接收第一随机数、第一随机数签名值和读卡终端的第一证书,并利用根证书对读卡终端的第一证书进行验证,并在验证通过后,利用读卡终端的第一证书对第一随机数签名值进行签名验证,并在对第一随机数签名值进行签名验证通过后,生成第二随机数,根据第一随机数和第二随机数生成认证端的会话密钥;并利用读卡终端的第一证书对第一随机数和第二随机数进行加密,得到第八密文,以及利用认证端的私钥对第八密文进行签名,得到第八签名值;并向读卡终端发送第八数据包,第八数据包包括:第八密文、第八签名值和认证端的证书;读卡终端,还用于接收第八数据包;利用认证端的证书对第八签名值进行签名验证,并在对第八签名值进行签名验证通过后,利用读卡终端的第一私钥对第八密文进行解密,得到第一随机数和第二随机数;并对第一随机数进行验证,验证通过后,根据第一随机数和第二随机数生成读卡终端的会话密钥。
由上述本发明提供的技术方案可以看出,本发明提供了身份证读取方法和系统。本发明中的读卡终端并不设置有验证安全控制模块,而是在云端的云认证平台中的认证验证端,该认证验证端可以对从身份证读取的密文数据实现解密,任何用户均可通过有线或无线网络接入到云端的云认证平台中的认证验证端以实现对身份证的读取,大大降低了用户的实现成本,特别是在银行、车站、保险等需要执行身份证信息读取操作的行业,只需部署相应数量的只具有RF射频模块的读卡终端即可,无需再次大量部署验证安全控制模块,也无需大量设置验证安全控制模块与只具有RF射频模块之间的对应关系,简化了实现方案。另外,读卡终端和认证验证端之间传输的数据都进行了安全处理,保证了读卡终端和认证验证端之间数据传输的安全。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。
图1为本发明实施例1提供的身份证读取方法流程图;
图2为本发明实施例2提供的身份证读取方法流程图;
图3为本发明实施例3提供的身份证读取系统框图;
图4为本发明实施例3提供的另一种身份证读取系统框图;
图5为本发明实施例4提供的身份证读取系统框图;
图6为本发明实施例5提供的另一种身份证读取系统框图。
具体实施方式
下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。
在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或数量或位置。
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
下面将结合附图对本发明实施例作进一步地详细描述。
实施例1
本实施例提供一种身份证读取方法;
图1为本实施例中身份证读取方法的流程图。本实施例中的身份证读取方法包括以下步骤(101-109):
步骤101:读卡终端接收身份证发送的身份证基本信息,对身份证基本信息进行安全处理,得到第一数据包;并向认证验证端发送第一数据包;
在本实施例中,读卡终端可以是读卡器,也可以是具有读卡功能的其它终端(例如集成有读卡功能的手机、集成有读卡功能的USBKEY等)。
在本实施例中,身份证基本信息可以是身份证的序列号、用于指示身份证中设置的应用的相关信息的应用数据、传输协议(例如,传输协议类型、比特数率、最大帧长度)等,读卡终端可以直接识别该身份证基本信息,不需要公安部授权的安全控制模块进行解密。
在本实施例中,对身份证基本信息进行安全处理,得到第一数据包,包括:利用读卡终端的会话密钥对身份证基本信息进行加密,得到第一密文,以及利用读卡终端的第一私钥对第一密文进行签名,得到第一签名值,第一数据包包括第一密文和第一签名值。具体的,读卡终端接收到身份证发送的身份证基本信息后,利用读卡终端的会话密钥对身份证基本信息进行加密,得到第一密文,并利用读卡终端的第一私钥对第一密文进行签名,得到第一签名值,并将包括第一密文和第一签名值的第一数据包发送至认证验证端。通过对身份证基本信息进行加密,可以保证身份证基本信息在网络传输中的安全性,通过对第一密文进行签名,可以防止非法分子篡改第一密文。
在本实施例中,读卡终端的会话密钥可以为一个或一串随机数,或者可以为一个或一串随机字符,或者也可以为一串随机数和随机字符的任意组合。读卡终端的会话密钥用于对读卡终端向认证验证端发送的数据进行加密,以及用于对认证验证端向读卡终端发送的加密数据进行解密。
在本实施例中,读卡终端利用读卡终端的第一私钥对第一密文进行签名,得到第一签名值的具体实施方式为:读卡终端利用HASH算法计算第一密文得到第一密文的摘要,并利用读卡终端的第一私钥对第一密文的摘要进行加密,得到第一签名值。通过对第一密文进行签名可以防止非法分子篡改第一密文。需要说明的是,本实施例中的签名过程均可参见该实施方式,下面涉及到签名的过程将不再具体赘述。
在本实施例中,具有联网功能的读卡终端可直接通过有线网络或无线网络向认证验证端发送第一数据包,不具有联网功能的读卡终端可利用上位机(例如手机、PAD(平板电脑)或PC等)通过有线网络或无线网络向认证验证端发送第一数据包。可选的,读卡终端可通过有线方式(例如,USB接口等)或无线方式(例如,WiFi,蓝牙等)与上位机实现通信连接。以下涉及到读卡终端向认证验证端传输数据时将不再赘述具体传输方式。
步骤102:认证验证端接收第一数据包,对第一数据包进行安全验证,在安全验证通过后得到身份证基本信息;并获取第一认证因子,对第一认证因子进行安全处理,得到第二数据包;并向读卡终端发送第二数据包;
在本实施例中,对第一数据包进行安全验证,包括:利用读卡终端的第一证书对第一签名值进行签名验证,并在对第一签名值进行签名验证通过后,利用认证验证端的会话密钥对第一密文进行解密。具体的,认证验证端接收第一数据包后,利用读卡终端的第一证书对第一签名值进行签名验证,并在对第一签名值进行签名验证通过后,利用认证验证端的会话密钥对第一密文进行解密,得到身份证基本信息。通过对第一签名值进行签名验证,可以验证第一密文是否被非法分子篡改。
在本实施例中,认证验证端的会话密钥可以为一个或一串随机数,或者可以为一个或一串随机字符,或者也可以为一串随机数和随机字符的任意组合。认证验证端的会话密钥与读卡终端的会话密钥为相同的密钥,即一对对称密钥。认证验证端的会话密钥用于对认证验证端向读卡终端发送的数据进行加密,以及用于对读卡终端向认证验证端发送的加密数据进行解密。
在本实施例中,认证验证端解密得到身份证基本信息后,获取第一认证因子。认证验证端获取的第一认证因子可用来验证身份证的合法性。
在本实施例中,读卡终端的第一证书至少包括读卡终端的第一公钥,读卡终端的第一公钥与读卡终端的第一私钥是一对非对称密钥。
在本实施例中,认证验证端利用读卡终端的第一证书的第一公钥对接收到第一签名值进行解密,得到第一密文的摘要,并利用HASH算法对接收到的第一密文进行计算得到第一密文的摘要,并比对解密得到的第一密文的摘要与计算得到的第一密文的摘要是否相同,如果相同,则对第一签名值进行签名验证通过。当然,签名验证的过程并不一定由认证验证端执行,也可能由云认证平台中的其它装置(例如云认证平台中的调度装置)执行,例如,读卡终端向调度装置发送第一数据包,调度装置执行对第一签名值的签名验证,在对第一签名值的签名验证通过后,调度装置将第一密文发送给认证验证端,由认证验证端执行对第一密文的解密,又如,认证验证端将第一签名发送给云认证平台中的其他装置(例如调度装置),由该其他装置执行对第一签名值的签名验证,在对第一签名值的签名验证通过后,该其他装置将签名验证结果发送给认证验证端,由认证验证端执行对第一密文的解密,具体的本实施例不做限定。本实施例中的签名验证的过程均可参见该实施方式,下面涉及到签名验证的过程将不再具体赘述,同样,下面涉及到认证验证端执行签名验证的过程也均可由云认证平台中的调度装置执行。
在本实施例中,对第一认证因子进行安全处理,得到第二数据包,包括:利用认证验证端的会话密钥对第一认证因子进行加密,得到第二密文,以及利用认证验证端的私钥对第二密文进行签名,得到第二签名值,第二数据包包括第二密文和第二签名值。具体的,认证验证端获取第一认证因子后,利用认证验证端的会话密钥对第一认证因子进行加密,得到第二密文,以及利用认证验证端的私钥对第二密文签名,得到第二签名值,并将包括第二密文和第二签名值的第二数据包发送至读卡终端。通过会话密钥对第一认证因子进行加密,可以保证第一认证因子在网络传输中的安全,通过对第二密文进行签名,可以防止非法分子篡改第二密文。
在本实施例中,如果读卡终端具有联网功能,认证验证端可以直接通过有线网络或无线网络向读卡终端发送第二数据包;如果读卡终端不具有联网功能,认证验证端可以通过有线网络或无线网络向上位机发送第二数据包,上位机再将第二数据包传输至读卡终端。以下涉及到认证验证端向读卡终端传输数据时将不再赘述具体传输方式。
作为本实施例的一种可选实施方式,认证验证端并不是直接将第二数据包发送至读卡终端,而是先将第二数据包发送至调度装置,由调度装置将第二数据包转发至读卡终端。同样,以下涉及到认证验证端向读卡终端传输数据时,认证验证端均可先将数据发送至调度装置,再由调度装置将数据转发至读卡终端。
步骤103:读卡终端接收第二数据包;对第二数据包进行安全验证,在安全验证通过后得到第一认证因子,并向身份证发送第一认证因子;接收身份证发送的第一认证数据,对第一认证数据进行安全处理,得到第三数据包;并向认证验证端发送第三数据包,其中,第一认证数据为身份证对第一认证因子进行处理得到;
在本实施例中,对第二数据包进行安全验证,包括:利用认证验证端的证书对第二签名值进行签名验证,并在对第二签名值进行签名验证通过后,利用读卡终端的会话密钥对第二密文进行解密,得到第一认证因子。其中,认证验证端的证书至少包括认证验证端的公钥。通过对第二签名值进行签名验证,可以验证第二密文是否被非法分子篡改。
在本实施例中,身份证通过公安部预置的算法对第一认证因子进行处理得到第一认证数据,例如,身份证可以利用安全密钥对第一认证因子进行加密得到第一认证数据;或者身份证利用身份证的安全密钥对第一认证因子进行MAC(Message AuthenticationCode,消息认证码)计算得到MAC值,并将该MAC值作为第一认证数据。其中,身份证的安全密钥是预先内置在合法的身份证中的,只有合法的身份证才具有该安全密钥。
在本实施例中,读卡终端通过非接触接口向身份证发送第一认证因子,并通过非接触接口接收身份证发送的第一认证数据,其中,非接触接口可以是RF射频模块。本实施例中的读卡终端与身份证之间的数据均是通过非接触接口进行通信传输,下面涉及到读卡终端与身份证之间的数据发送将不再赘述具体实施方式。
在本实施例中,对第一认证数据进行安全处理包括:利用读卡终端的会话密钥对第一认证数据进行加密,得到第三密文,以及利用读卡终端的第一私钥对第三密文进行签名,得到第三签名值,第三数据包包括第三密文和第三签名值。具体的,读卡终端接收身份证发送的第一认证数据后,利用读卡终端的会话密钥对第一认证数据进行加密,得到第三密文,以及利用读卡终端的第一私钥对第三密文进行签名,得到第三签名值,并将包括第三密文和第三签名值的第三数据包发送至认证验证端。通过对第一认证数据进行加密,可以保证第一认证数据在网络传输中的安全性,通过对第三密文进行签名,可以防止第三密文被非法分子篡改。
步骤104:认证验证端接收第三数据包;对第三数据包进行安全验证,在安全验证通过后得到第一认证数据;并对第一认证数据进行认证,并在认证通过后生成认证因子申请请求,对认证因子申请请求进行安全处理,得到认证因子申请请求数据包,并向读卡终端发送认证因子申请请求数据包;
在本实施例中,对第三数据包进行安全验证,包括:利用读卡终端的第一证书对第三签名值进行签名验证,并在对第三签名值进行签名验证通过后,利用认证验证端的会话密钥对第三密文进行解密。具体的,认证验证端接收第三数据包后,利用读卡终端的第一证书中的第一公钥对第三数据包中的第三签名值进行签名验证,并在对第三签名值进行签名验证通过后,利用认证验证端的会话密钥对第三数据包中的第三密文进行解密,得到第一认证数据。通过对第三签名值进行签名验证,可以验证第三密文是否被非法分子篡改。
在本实施例中,身份证制作过程中内置安全密钥,在认证验证端中可以存储与身份证的安全密钥相同的认证验证端的安全密钥,当然,认证验证端也可使用相同的预设算法对预设信息进行计算得到认证验证端的安全密钥。认证验证端的安全密钥是与身份证基本信息对应的。
在本实施例中,认证验证端通过公安部预置的算法对第一认证数据进行认证,例如,认证验证端可以利用认证验证端的安全密钥对接收到的第一认证数据进行解密,得到认证因子,并比较解密得到的认证因子与自身生成的第一认证因子是否相同,如果相同,则对第一认证数据进行验证通过。当然,认证验证端也可以利用认证验证端的安全密钥对自身生成的第一认证因子进行加密得到认证数据,并比较加密得到的认证数据与接收到的第一认证数据是否相同,如果相同,则对第一认证数据进行验证通过。或者,认证验证端利用认证验证端的安全密钥对自身生成的第一认证因子进行MAC计算得到MAC值,并比较该计算得到的MAC值与第一认证数据是否相同,如果相同,则对第一认证数据进行验证通过。如果认证验证端对第一认证数据进行验证通过,则该身份证是合法的身份证,认证验证端通过对第一认证数据进行验证确认了身份证的合法性。
在本实施例中,认证验证端在对第一认证数据进行认证通过后,生成认证因子申请请求,该认证因子申请请求用于请求身份证生成第二认证因子以便身份证验证认证验证端的合法性。
在本实施例中,对认证因子申请请求进行安全处理,得到认证因子申请请求数据包,包括:利用认证验证端的会话密钥对认证因子申请请求进行加密,生成认证因子申请请求密文,并利用认证验证端的私钥对认证因子申请请求密文进行签名,得到认证因子申请请求签名值,认证因子申请请求数据包包括认证因子申请请求密文和认证因子申请请求签名值。具体的,认证验证端生成认证因子申请请求后,利用认证验证端的会话密钥对认证因子申请请求进行加密,生成认证因子申请请求密文,并利用认证验证端的私钥对认证因子申请请求密文进行签名,得到认证因子申请请求签名值,并将包括认证因子申请请求密文和认证因子申请请求签名值的认证因子申请请求数据包发送至读卡终端。通过对认证因子申请请求加密可以保证认证因子申请请求在网络传输中的安全,通过对认证因子申请请求密文进行签名可以防止非法分子篡改认证因子申请请求密文。
步骤105:读卡终端接收认证因子申请请求数据包,对认证因子申请请求数据包进行安全验证,在安全验证通过后得到认证因子申请请求,并将认证因子申请请求发送至身份证;接收身份证发送的第二认证因子,对第二认证因子进行安全处理,得到第四数据包;并向认证验证端发送第四数据包;
在本实施例中,对认证因子申请请求数据包进行安全验证,包括:利用认证验证端的证书对认证因子申请请求签名值进行签名验证,并在对认证因子申请请求签名值进行签名验证通过后,利用读卡终端的会话密钥对认证因子申请请求密文进行解密;具体的,读卡终端接收认证因子申请请求数据包后,利用认证验证端的证书中的公钥对认证因子申请请求数据包中的认证因子申请请求签名值进行签名验证,并在对认证因子申请请求签名值进行签名验证通过后,利用读卡终端的会话密钥对认证因子申请请求密文进行解密,得到认证因子申请请求。通过对认证因子申请请求签名值进行签名验证,可以验证认证因子申请请求密文是否被非法分子篡改。
在本实施例中,读卡终端得到认证因子申请请求后,将认证因子申请请求发送至身份证。身份证获取认证因子申请请求后,生成第二认证因子,并将第二认证因子发送至读卡终端。读卡终端接收身份证发送的第二认证因子,获取第二认证因子。该第二认证因子可以用来验证认证验证端的合法性。
在本实施例中,对第二认证因子进行安全处理,得到第四数据包,包括:利用读卡终端的会话密钥对第二认证因子进行加密,得到第四密文,以及利用读卡终端的第一私钥对第四密文进行签名,得到第四签名值,第四数据包包括第四密文和第四签名值。具体的,读卡终端接收身份证发送的第二认证因子,利用读卡终端的会话密钥对第二认证因子进行加密,得到第四密文,以及利用读卡终端的第一私钥对第四密文进行签名,得到第四签名值,并将包括第四密文和第四签名值的第四数据包发送至认证验证端。通过对第二认证因子进行加密,可以保证第二认证因子在网络传输中的安全性,通过对第四密文进行签名,可以防止第四密文被非法分子篡改。
步骤106:认证验证端接收第四数据包;并对第四数据包进行安全验证,在安全验证通过后得到第二认证因子;并对第二认证因子进行处理生成第二认证数据;并对第二认证数据进行安全处理,得到第五数据包;并向读卡终端发送第五数据包;
在本实施例中,对第四数据包进行安全验证,包括:利用读卡终端的第一证书对第四签名值进行签名验证,并在对第四签名值进行签名验证通过后,利用认证验证端的会话密钥对第四密文进行解密。具体的,认证验证端接收第四数据包后,利用读卡终端的第一证书中的第一公钥对第四数据包中的第四签名值进行签名验证,并在对第四签名值进行签名验证通过后,利用认证验证端的会话密钥对第四密文进行解密,得到第二认证因子。通过对第四签名值进行签名验证,可以验证第四密文是否被非法分子篡改。
在本实施例中,认证验证端通过公安部预置的算法对第二认证因子进行处理生成第二认证数据,例如,认证验证端利用安全密钥对第二认证因子进行加密后生成第二认证数据;或者认证验证端利用认证验证端的安全密钥对第二认证因子进行MAC计算得到MAC值,并将该MAC值作为第二认证数据。其中,认证验证端的安全密钥可以是预先内置在合法的认证验证端中的,只有合法的认证验证端才具有该安全密钥。当然,认证验证端的安全密钥也可以是认证验证端利用预设算法对预设信息计算得到的,只有合法的认证验证端才能计算得到该安全密钥。
在本实施例中,对第二认证数据进行安全处理,得到第五数据包,包括:利用认证验证端的会话密钥对第二认证数据进行加密,得到第五密文,以及利用认证验证端的私钥对第五密文进行签名,得到第五签名值,第五数据包包括第五密文和第五签名值。具体的,认证验证端生成第二认证数据后,利用认证验证端的会话密钥对第二认证数据进行加密,得到第五密文,以及利用认证验证端的私钥对第五密文进行签名,得到第五签名值,并将包括第五密文和第五签名值的第五数据包发送至读卡终端。通过对第二认证数据进行加密,可以保证第二认证数据在网络传输中的安全,另外,通过对第五密文进行签名,可以防止非法分子篡改第五密文。
步骤107:读卡终端接收第五数据包;对第五数据包进行安全验证,在安全验证通过后得到第二认证数据,并向身份证发送第二认证数据;接收身份证发送的身份证数据密文,对身份证数据密文进行安全处理得到第六数据包;并向认证验证端发送第六数据包,其中,身份证数据密文为身份证对第二认证数据进行认证,在认证通过后发送;
在本实施例中,对第五数据包进行安全验证,包括:利用认证验证端的证书对第五签名值进行签名验证,并在对第五签名值进行签名验证通过后,利用读卡终端的会话密钥对第五密文进行解密。具体的,读卡终端接收第五数据包后,利用认证验证端的证书中的公钥对第五签名值进行签名验证,并在对第五签名值进行签名验证通过后,利用读卡终端的会话密钥对第五密文进行解密,得到第二认证数据。通过对第五签名值进行签名验证,可以验证第五密文是否被非法分子篡改。
在本实施例中,读卡终端解密得到第二认证数据后,向身份证发送第二认证数据。身份证接收第二认证数据,并对第二认证数据进行认证,具体的,身份证通过公安部预设的算法对第二认证数据进行认证,例如,身份证可以利用身份证的安全密钥对应的解密密钥对接收到的第二认证数据进行解密,得到认证因子,并比较解密得到的认证因子与自身生成的第二认证因子是否相同,如果相同,则对第二认证数据进行验证通过。当然,身份证也可以利用身份证的安全密钥对自身生成的第二认证因子进行加密得到认证数据,并比较加密得到的认证数据与接收到的第二认证数据是否相同,如果相同,则对第二认证数据进行验证通过。或者,身份证利用身份证的安全密钥对自身生成的第二认证因子进行MAC计算得到MAC值,并比较该计算得到的MAC值与第二认证数据是否相同,如果相同,则对第二认证数据进行验证通过。身份证对第二认证数据进行验证通过,说明认证验证端是合法的,身份证通过对第二认证数据进行验证确认了认证验证端的合法性。
在本实施例中,通过第一认证因子确认了身份证的合法性,通过第二认证因子确认了认证验证端的合法性。双向认证通过后,身份证才向读卡终端发送身份证数据密文,其中,身份证数据密文一般是居民身份证号、姓名、照片、年龄、住址、卡片使用年限和/或指纹等数据的密文。
在本实施例中,对身份证数据密文进行安全处理得到第六数据包,包括:利用读卡终端的会话密钥对身份证数据密文进行加密,得到第六密文,以及利用读卡终端的第一私钥对第六密文进行签名,得到第六签名值,第六数据包包括第六密文和第六签名值。具体的,身份证对第二次认证数据进行认证通过后,向读卡终端发送身份证数据密文。读卡终端接收身份证发送的身份证数据密文,利用读卡终端的会话密钥对身份证数据密文进行加密,得到第六密文,以及利用读卡终端的第一私钥对第六密文进行签名,得到第六签名值,并将包括第六密文和第六签名值的第六数据包发送至认证验证端。通过对身份证数据密文进行加密,可以保证身份证数据密文在传输过程中的安全性,另外,对第六密文进行签名,可以防止非法分子篡改第六密文。
在本实施例中,身份证数据密文所包括的信息可以通过一个数据包一次发送给认证验证端,当然,身份证数据密文所包括的信息也可以通过多个数据包分多次发送给认证验证端。
步骤108:认证验证端接收第六数据包,对第六数据包进行安全验证,在安全验证通过后得到身份证数据密文;并对身份证数据密文进行解密,得到身份证数据明文;并对身份证数据明文进行安全处理,得到第七数据包;并向读卡终端发送第七数据包;
在本实施例中,对第六数据包进行安全验证,包括:利用读卡终端的第一证书对第六签名值进行签名验证,并在对第六签名值进行签名验证通过后,利用认证验证端的会话密钥对第六密文进行解密。具体的,认证验证端接收第六数据包后,利用读卡终端第一证书中的第一公钥对第六签名值进行签名验证,并在对第六签名值进行签名验证通过后,利用认证验证端的会话密钥对第六密文进行解密,得到身份证数据密文。通过对第六签名值进行签名验证,可以验证第六密文是否被非法分子篡改。
在本实施例中,认证验证端解密得到身份证数据密文后,利用认证验证端中设置的可以对从身份证中读取的密文数据进行解密的模块对身份证数据密文进行解密,得到身份证数据明文。
在本实施例中,对身份证数据明文进行安全处理,得到第七数据包,包括:利用认证验证端的会话密钥对身份证数据明文进行加密,得到第七密文,以及利用认证验证端的私钥对第七密文进行签名,得到第七签名值,第七数据包包括第七密文和第七签名值。具体的,认证验证端解密得到身份证数据明文后,利用认证验证端的会话密钥对身份证数据明文进行加密,得到第七密文,以及利用认证验证端的私钥对第七密文进行签名,得到第七签名值,并将包含第七密文和第七签名值的第七数据包发送至读卡终端。通过对身份证数据明文进行加密,可以保证身份证数据明文在传输中的安全性,另外,对第七密文进行签名,可以防止非法分子篡改第七密文。
步骤109:读卡终端接收第七数据包,对第七数据包进行安全验证,在安全验证通过后得到身份证数据明文。
在本实施例中,对第七数据包进行安全验证,包括:利用认证验证端的证书对第七签名值进行签名验证,并在对第七签名值进行签名验证通过后,利用读卡终端的会话密钥对第七密文进行解密。具体的,读卡终端接收第七数据包后,利用认证验证的证书中的公钥对第七签名值进行签名验证,并在对第七签名值进行签名验证通过后,利用读卡终端的会话密钥对第七密文进行解密,得到身份证数据密文。
在本实施例中,身份证数据明文一般是居民身份证号、姓名、照片、年龄、住址、卡片使用年限和/或指纹等数据的明文。作为本实施例的一种可选实施方式,读卡终端解密得到身份证数据明文后,可直接通过读卡终端显示身份证数据明文。当然,读卡终端也可将身份证数据明文发送至上位机,由上位机显示身份证数据明文。
通过上述流程,身份证和云认证平台中的认证验证端通过第一认证因子和第二认证因子的交互完成了双向认证,认证验证端对身份证数据密文进行解密以得到身份证数据明文,并发送给读卡终端,以完成身份证的读取。为更好的理解身份证读取的完整流程,在执行上述流程之前,身份证和认证验证端还会执行寻卡流程和选卡流程,其中寻卡流程用于实现寻找可以进行通信的身份证,选卡流程用于在寻找到的身份证中确定与哪个身份证进行通信。下文分别对寻卡流程和选卡流程进行描述:
作为本实施例的一种可选实施方式,在步骤101中读卡终端从身份证读取身份证基本信息之前,还包括寻卡流程,具体的寻卡流程包括以下两种方式之一:
方式一:
A1:读卡终端向身份证发送寻卡指令;
A2:身份证接收寻卡指令,并向读卡终端发送寻卡确认数据;
A3:读卡终端利用认证加密密钥对寻卡请求数据进行加密,得到寻卡请求数据密文,利用读卡终端的第一私钥对寻卡请求数据密文进行签名,得到寻卡请求签名值;
A4:读卡终端向认证验证端发送寻卡请求,寻卡请求包括寻卡请求数据密文、寻卡请求签名值、读卡终端的第一证书和读卡终端的第二证书;
在本实施例中,读卡终端通过其RF射频模块每间隔一段时间向外发送寻卡指令,身份证接收到该寻卡指令后,向读卡终端发送寻卡确认数据,读卡终端接收到身份证发送的寻卡确认数据后,读卡终端向认证验证端发送寻卡请求。
在本实施例中,寻卡请求中包括寻卡请求数据密文、寻卡请求签名值、读卡终端的第一证书和读卡终端的第二证书。其中,寻卡请求数据密文是读卡终端在收到身份证发送的寻卡确认数据后,利用认证加密密钥对寻卡请求数据进行加密生成的。利用认证加密密钥对寻卡请求数据加密后传输至认证验证端可以保证寻卡请求数据在网络传输中的安全。
在本实施例中,读卡终端的第一证书中至少包括读卡终端的第一公钥,读卡终端的第二证书中也至少包括读卡终端的第二公钥。读卡终端的第一证书中的第一公钥与第二证书中的第二公钥可以相同,也可以不同,本实施例不做限定。步骤101、步骤103、步骤105和步骤107中使用的读卡终端的第一私钥与本步骤中使用的读卡终端的第一公钥是一对非对称密钥对,分别用于对读卡终端向认证验证端传输的数据进行签名和验签。而本步骤中使用的读卡终端的第二公钥与步骤A8中使用的读卡终端的第二私钥是一对非对称密钥对,分别用于步骤A6和步骤A8中对会话密钥进行加解密运算。
作为本实施例的一种可选实施方式,步骤A3中的寻卡请求数据还包括时间戳和/或单次认证数据,寻卡请求中还包括读卡终端的标识。其中,单次认证标识包括读卡终端中的计数器产生的计数值和/或随机因子。当单次认证标识为计数器产生的计数值时,读卡终端每执行一次身份证信息读取操作,计数器会产生一个计数值,用于对发送出的第一数据包进行计数,例如,读卡终端读取身份证A时,计数器产生计数值1,下次读取身份证B时,计数器产生计数值2,以此类推,当然具体的计数值形式不限于此;当单次认证标识为随机因子时,随机因子可以为一个或一串随机数,或者可以为一个或一串随机字符,或者一串随机数和随机字符的任意组合;读卡终端的标识可以为读卡终端的序列号,当然,读卡终端的标识只要是可以唯一表示读卡终端的标识即可,并不局限于读卡终端的序列号。
作为本实施例的一种可选实施方式,云认证平台中除了包括认证验证端之外,还包括调度装置。
作为本实施例的一种可选实施方式,读卡终端并不是直接将寻卡请求发送至云认证平台中的认证验证端,而是先将寻卡请求发送给调度装置,调度装置判断寻卡请求中的读卡终端的标志是否在黑名单内,如果在黑名单内,则结束身份证读取流程;否则,调度装置根据各个认证验证端的处理能力,选择将寻卡请求发送到哪个认证验证端进行处理,调度装置再将寻卡请求发送给该选中的认证验证端。通过调度装置对第一数据包进行分流处理,可以防止单点故障。
作为本实施例的一种可选实施方式,读卡终端将寻卡请求发送给调度装置,调度装置选中认证验证端后,将选中的认证验证端的端口号发送给读卡终端。具体的,有以下实施方式:方式一:调度装置选中认证验证端后,直接选中的认证验证端的端口号发送给读卡终端;方式二:调度装置将选中的认证验证端的端口号携带在寻卡请求响应中发送给读卡终端;方式三:调度装置选中的认证验证端的端口号携带在寻卡请求中发送至认证验证端,认证验证端再将端口号携带在寻卡请求响应中直接发送给读卡终端。
作为本实施例的一种可选实施方式,读卡终端向云认证平台发送数据时,除了读卡终端第一次向云认证平台发送数据时需要由调度装置分配认证验证端,后续向云认证平台发送的数据均可直接发送至端口号对应的认证验证端。当然,后续向云认证平台发送的数据也可通过调度装置做相应处理(例如签名验证、转发)后发送至认证验证端,本实施例不做具体限定。
作为本实施例的一种可选实施方式,调度装置接收到寻卡请求并判断读卡终端的标识不在黑名单后,利用根证书对接收到的读卡终端的第一证书和读卡终端的第二证书进行验证,并在验证通过后,调度装置利用读卡终端的第一证书对寻卡请求签名值进行签名验证,并在对寻卡请求签名值进行签名验证通过后,将寻卡请求中的寻卡请求数据密文和读卡终端的第二证书发送至认证验证端。
A5:认证验证端接收寻卡请求,并利用读卡终端的第一证书对寻卡请求签名值进行签名验证,并在对寻卡请求签名值进行签名验证通过后,利用认证解密密钥对寻卡请求数据密文进行解密,得到寻卡请求数据;
作为本实施例的一种可选实施方式,认证验证端接收到寻卡请求后,利用根证书对接收到的读卡终端的第一证书和读卡终端的第二证书进行验证,以防止非法分子篡改读卡终端第一证书中的第一公钥和读卡终端第二证书中的第二公钥,实现对读卡终端的安全认证,提高双方交互的安全性。
在本实施例中,认证解密密钥与步骤A3中的认证加密密钥为相同的密钥,即对称密钥,预先内置在认证验证端和读卡终端中,读卡终端利用该对称密钥对读卡终端首次发送给认证验证端的数据进行加密,认证验证端利用该对称密钥对认证验证端首次接收到读卡终端发送的数据进行解密,保证读卡终端与认证验证端首次传输数据的安全性。可选的,认证加密密钥和认证解密密钥保存在密钥数据库中,认证验证端可以从密钥数据库中读取该认证解密密钥,并保存在认证验证端本地。读卡终端也可以从密钥数据库中读取该认证加密密钥,并保存在读卡终端本地。
作为本实施例的一种可选实施方式,对寻卡请求签名值进行签名验证的操作可以由云认证平台中的其他装置执行,例如,调度装置执行对寻卡请求签名值进行验签,认证验证端执行利用认证解密密钥对寻卡请求数据密文进行解密以得到寻卡请求数据。
A6:认证验证端生成会话密钥,并利用会话密钥对寻卡请求响应数据进行加密,得到寻卡请求响应数据密文,并利用读卡终端的第二证书对会话密钥进行加密,得到会话密钥密文,并利用认证验证端的私钥对寻卡请求响应数据密文和会话密钥密文进行签名,得到寻卡请求响应签名值;
A7:认证验证端向读卡终端发送寻卡请求响应,寻卡请求响应包括:寻卡请求响应数据密文、会话密钥密文、寻卡请求响应签名值和认证验证端的证书,其中,所述认证验证端采用生成的会话密钥作为认证验证端的会话密钥;
在本实施例中,认证验证端解密得到寻卡请求数据后,生成寻卡请求响应数据,并生成会话密钥,认证验证端采用生成的会话密钥作为认证验证端的会话密钥,其中认证验证端的会话密钥可以为一个或一串随机数,或者可以为一个或一串随机字符,或者一串随机数和随机字符的任意组合。利用会话密钥对寻卡请求响应数据进行加密,保证了寻卡请求响应数据的在网络传输中的安全性。另外,会话密钥作为随机产生的密钥,不易被非法分子窃取。
本实施例中,除读卡终端与认证验证端首次传输的数据使用认证加密密钥进行加密之外,后续读卡终端与认证验证端进行传输的数据可以通过读卡终端的会话密钥或认证验证端的会话密钥进行加密,以避免认证加密密密钥被破解导致数据传输安全性降低。由于读卡终端的会话密钥和认证验证端的会话密钥采用随机数的形式,每次传输的数据采用的随机数均不同,进一步可以提高读卡终端和认证验证端之间数据传输的安全性。
在本实施例中,认证验证端利用读卡终端的第二证书中的公钥对会话密钥进行加密,得到会话密钥密文,保证了会话密钥在网络传输中的安全性。
在本实施例中,认证验证端利用自身存储的私钥对寻卡请求响应密文和会话密钥进行签名,可以防止非法分子篡改寻卡请求响应密文和会话密钥。
在本实施例中,认证验证端向读卡终端发送的寻卡请求响应包括:寻卡请求响应数据密文、会话密钥密文、寻卡请求响应签名值和认证验证端的证书。其中,认证验证端的证书中包括认证验证端的公钥,认证验证端的私钥与认证验证端的公钥是一对非对称密钥对,用于对从认证验证端向读卡终端中传输的数据进行签名和验签。
作为本实施例的一种可选实施方式,认证验证端可以直接将寻卡请求响应发送至读卡终端;也可将寻卡请求响应发送至调度装置后,调度装置再将寻卡请求响应发送至读卡终端。
A8:读卡终端接收寻卡请求响应,并利用认证验证端的证书对寻卡请求响应签名值进行验签,并在对寻卡请求响应签名值进行验签通过后,利用读卡终端的第二私钥对会话密钥密文进行解密,得到会话密钥,并利用会话密钥对寻卡请求响应数据密文进行解密,得到寻卡请求响应数据,其中读卡终端采用对会话密钥密文解密得到的会话密钥作为读卡终端的会话密钥。
A9:读卡终端得到寻卡请求响应数据后,向认证验证端发送寻卡请求数据。
作为本实施例的一种可选实施方式,读卡终端接收到寻卡请求响应后,利用根证书对接收到的认证验证端的证书进行验证,以防止非法分子篡改认证验证端的证书中的公钥,实现对认证验证端的安全认证,提高双方交互的安全性。
作为本实施例的一种可选实施方式,当认证验证端是利用读卡终端的第二证书对会话密钥和单次认证标识进行加密,生成会话密钥密文时,读卡终端的第二私钥对会话密文进行解密,得到会话密钥和单次认证标识,可根据单次认证标识判断是对哪一次寻卡请求的响应。
方式二:
读卡终端和认证验证端先协商会话密钥以进一步保证寻卡请求数据传输的安全,具体协商会话密钥的过程为:读卡终端利用认证加密密钥对会话密钥请求数据进行加密,得到会话密钥请求数据密文,利用读卡终端的第一私钥对会话密钥请求数据密文进行签名,得到会话密钥请求签名值,并向认证验证端发送会话密钥请求,会话密钥请求包括会话密钥请求数据密文、会话密钥请求签名值、读卡终端的第一证书和读卡终端的第二证书;认证验证端接收会话密钥请求,并利用读卡终端的第一证书对会话密钥请求签名值进行签名验证,并在对会话密钥请求签名值进行签名验证通过后,利用认证解密密钥对会话密钥请求数据密文进行解密,得到会话密钥请求数据;认证验证端生成会话密钥,并利用读卡终端的第二证书对会话密钥进行加密,得到会话密钥密文,并利用认证验证端的私钥对会话密钥密文进行签名,得到会话密钥密文签名值,并向读卡终端发送会话密钥请求响应,会话密钥请求响应包括:会话密钥密文、会话密钥密文签名值和认证验证端的证书,其中认证验证端采用生成的会话密钥作为认证验证端的会话密钥;读卡终端接收会话密钥请求响应,并利用认证验证端的证书对会话密钥密文签名值进行验签,并在对会话密钥密文签名值进行验签通过后,利用读卡终端的第二私钥对会话密钥密文进行解密,得到会话密钥,其中,读卡终端采用对会话密钥密文解密得到的会话密钥作为读卡终端的会话密钥。
作为本实施例的一种可选实施方式,在读卡终端利用会话密钥对身份证基本信息进行加密之前,可通过以下方式协商会话密钥:读卡终端获取第一随机数,并利用读卡终端的第一私钥对第一随机数进行签名,得到第一随机数签名值,并向认证验证端发送第一随机数、第一随机数签名值和读卡终端第一证书;认证验证端接收第一随机数、第一随机数签名值和读卡终端的第一证书,并利用根证书对读卡终端的第一证书进行验证,并在验证通过后,利用读卡终端的第一证书对第一随机数签名值进行签名验证,并在对第一随机数签名值进行签名验证通过后,生成第二随机数,根据第一随机数和第二随机数生成认证验证端的会话密钥;并利用读卡终端的第一证书对第一随机数和第二随机数进行加密,得到第八密文,以及利用认证验证端的私钥对第八密文进行签名,得到第八签名值;并向读卡终端发送第八数据包,第八数据包包括:第八密文、第八签名值和认证验证端的证书;读卡终端接收第八数据包;利用认证验证端的证书对第八签名值进行签名验证,并在对第八签名值进行签名验证通过后,利用读卡终端的第一私钥对第八密文进行解密,得到第一随机数和第二随机数;并对第一随机数进行验证,验证通过后,根据第一随机数和第二随机数生成读卡终端的会话密钥。读卡终端通过对第一随机数进行验证、对第八签名值进行签名验证,可以保证认证验证端和读卡终端生成会话密钥的第一随机数和第二随机数相同,保证生成的认证验证端的会话密钥和读卡终端的会话密钥是一对对称密钥。
协商好会话密钥后,读卡终端和认证验证端可以直接利用读卡终端的会话密钥和认证验证端的会话密钥对寻卡请求数据和寻卡请求响应数据进行加解密,后续寻卡流程为:
A1:读卡终端向身份证发送寻卡指令;
A2:身份证接收寻卡指令,并向读卡终端发送寻卡确认数据;
A3:读卡终端利用读卡终端的会话密钥对寻卡请求数据进行加密,得到寻卡请求数据密文,利用读卡终端的第一私钥对寻卡请求数据密文进行签名,得到寻卡请求签名值;
A4:读卡终端向认证验证端发送寻卡请求,寻卡请求包括寻卡请求数据密文和寻卡请求签名值;
A5:认证验证端接收寻卡请求,并利用读卡终端的第一证书对寻卡请求签名值进行签名验证,并在对寻卡请求签名值进行签名验证通过后,利用认证验证端的会话密钥对寻卡请求数据密文进行解密,得到寻卡请求数据;
A6:认证验证端利用认证验证端的会话密钥对寻卡请求响应数据进行加密,得到寻卡请求响应数据密文,并利用认证验证端的私钥对寻卡请求响应数据密文进行签名,得到寻卡请求响应签名值;
A7:认证验证端向读卡终端发送寻卡请求响应,寻卡请求响应包括:寻卡请求响应数据密文和寻卡请求响应签名值;
A8:读卡终端利用认证验证端的证书对接收的寻卡请求响应签名值进行验签,并在对寻卡请求响应签名值验签通过后,利用读卡终端的会话密钥对接收到的寻卡请求响应数据密文进行解密,得到寻卡请求响应数据。
A9:读卡终端向认证验证端发送寻卡确认数据。
步骤A1-A9完成了寻卡流程,寻卡流程结束后还包括选卡流程,通过选卡流程认证验证端可以确认是对哪一张身份证进行的读取操作。作为本实施例的一种可选实施方式,在步骤A9之后,还包括以下选卡流程的实现步骤(A10-A18):
A10:读卡终端得到寻卡请求响应数据后,向身份证发送选卡指令;
A11:身份证接收选卡指令,并向读卡终端发送选卡确认数据,其中选卡确认数据至少包括身份证的序列号;
A12:读卡终端接收选卡确认数据,并利用读卡终端的会话密钥对选卡请求数据进行加密,得到选卡请求数据密文,利用读卡终端的第一私钥对选卡请求数据密文进行签名,得到选卡请求签名值;
A13:读卡终端向认证验证端发送选卡请求,选卡请求包括选卡请求数据密文和选卡请求签名值;
A14:认证验证端接收选卡请求,并利用读卡终端的第一证书对选卡请求签名值进行签名验证,并在对选卡请求签名值进行签名验证通过后,利用认证验证端的会话密钥对选卡请求数据密文进行解密,得到选卡请求数据;
A15:认证验证端利用认证验证端的会话密钥对选卡请求响应数据进行加密,得到选卡请求响应数据密文,并利用认证验证端的私钥对选卡请求响应数据密文进行签名,得到选卡请求响应签名值;
A16:认证验证端向读卡终端发送选卡请求响应,选卡请求响应包括:选卡请求响应数据密文和选卡请求响应签名值;
A17:读卡终端利用认证验证端的证书对接收的选卡请求响应签名值进行验签,并在对选卡请求响应签名值验签通过后,利用读卡终端的会话密钥对接收到的选卡请求响应数据密文进行解密,得到选卡请求响应数据;
A18:读卡终端在得到选卡请求响应数据后,利用读卡终端的会话密钥对选卡确认数据进行加密得到选卡确认数据密文,并利用读卡终端的第一私钥对选卡确认数据密文进行签名,得到选卡确认数据签名值,并向认证验证端发送选卡确认数据密文和选卡确认数据签名值;认证验证端接收到选卡确认数据密文和选卡确认数据签名值后,利用读卡终端的第一证书对选卡数据签名值进行签名验证,并在对选卡数据签名值进行签名验证通过后,利用读卡终端的会话密钥对选卡确认数据密文进行解密,得到选卡确认数据。
需要说明的是,传统的身份证读卡终端一般设置有RF射频模块和验证安全控制模块(SAM模块),读卡终端可通过RF射频模块从身份证中读取身份证数据密文,验证安全控制模块实现对身份证数据密文的解密,但是读卡终端集成有验证安全控制模块的成本非常高,对大量需要身份证读卡终端的机构(例如银行、车站)来说成本很高。
本实施例中,读卡终端并不设置有验证安全控制模块,而是在云端的云认证平台中的认证验证端,该认证验证端可以对从身份证读取的密文数据实现解密,任何用户均可通过有线或无线网络接入到云端的云认证平台中的认证验证端以实现对身份证的读取,大大降低了用户的实现成本,特别是在银行、车站、保险等需要执行身份证信息读取操作的行业,只需部署相应数量的只具有RF射频模块的读卡终端即可,无需再次大量部署验证安全控制模块,也无需大量设置验证安全控制模块与只具有RF射频模块之间的对应关系,简化了实现方案。另外,读卡终端和认证验证端之间传输的数据都进行了安全处理,保证了读卡终端和认证验证端之间数据传输的安全。
实施例2
本实施例提供另一种身份证读取方法。
图2为本实施例提供的一种身份证读取方法工作流程图。本实施例提供的身份证读取方法主要包括以下步骤(201-214):
在本实施例中,云认证平台中的认证验证端包括认证端和验证端。其中,认证端是可以是安全芯片,用于存储数字证书、私钥、会话密钥、认证解密密钥以及进行加解密运算,保证数据传输的安全性。验证端即是验证安全控制模块,用以对从身份证读取的密文数据进行解密以得到可以进行显示的身份证数据明文。
步骤201:读卡终端接收身份证发送的身份证基本信息,对身份证基本信息进行安全处理,得到第一数据包;并向认证端发送第一数据包;
在本实施例中,读卡终端可以是读卡器,也可以是具有读卡功能的其它终端(例如集成有读卡功能的手机、集成有读卡功能的USBKEY等)。
在本实施例中,身份证基本信息可以是身份证的序列号、用于指示身份证中设置的应用的相关信息的应用数据、传输协议(例如,传输协议类型、比特数率、最大帧长度)等,读卡终端可以直接识别该身份证基本信息,不需要公安部授权的安全控制模块进行解密。
在本实施例中,对身份证基本信息进行安全处理,得到第一数据包,包括:利用读卡终端的会话密钥对身份证基本信息进行加密,得到第一密文,以及利用读卡终端的第一私钥对第一密文进行签名,得到第一签名值,第一数据包包括第一密文和第一签名值。具体的,读卡终端接收身份证发送的身份证基本信息后,利用读卡终端的会话密钥对身份证基本信息进行加密,得到第一密文,以及利用读卡终端的第一私钥对第一密文进行签名,得到第一签名值,并把包括第一密文和第一签名值的第一数据包发送至认证端。通过对身份证基本信息进行加密,可以保证身份证基本信息在网络传输中的安全,另外,利用读卡终端的第一私钥对第一密文进行签名,可以防止非法分子篡改第一密文。
在本实施例中,读卡终端的会话密钥可以为一个或一串随机数,或者可以为一个或一串随机字符,或者也可以为一串随机数和随机字符的任意组合。读卡终端的会话密钥用于对读卡终端向认证端发送的数据进行加密,以及用于对认证端向读卡终端发送的加密数据进行解密。
在本实施例中,读卡终端利用读卡终端的第一私钥对第一密文进行签名,得到第一签名值的具体实施方式为:读卡终端利用HASH算法计算第一密文得到第一密文的摘要,并利用读卡终端的第一私钥对第一密文的摘要进行加密,得到第一签名值。通过对第一密文进行签名可以防止非法分子篡改第一密文。需要说明的是,本实施例中的签名过程均可参见该实施方式,下面涉及到签名的过程将不再具体赘述。
在本实施例中,具有联网功能的读卡终端可直接通过有线网络或无线网络向认证端发送第一数据包,不具有联网功能的读卡终端可利用上位机(例如手机、PAD(平板电脑)或PC等)通过有线网络或无线网络向认证端发送第一数据包。可选的,读卡终端可通过有线方式(例如,USB接口等)或无线方式(例如,WiFi,蓝牙等)与上位机实现通信连接。以下涉及到读卡终端向认证端传输数据时将不再赘述具体传输方式。
步骤202:认证端接收第一数据包,对第一数据包进行安全验证,在安全验证通过后得到身份证基本信息;并向验证端发送身份证基本信息;
在本实施例中,对第一数据包进行安全验证,包括:利用读卡终端的第一证书对第一签名值进行签名验证,并在对第一签名值进行签名验证通过后,利用认证端的会话密钥对第一密文进行解密。具体的,认证端接收第一数据包后,利用读卡终端的第一证书中的第一公钥对第一签名值进行签名验证,并在对第一签名值进行签名验证通过后,利用认证端的会话密钥对第一密文进行解密,得到身份证基本信息。通过对第一签名值进行签名验证,可以验证第一密文是否被非法分子篡改。
在本实施例中,认证端的会话密钥可以为一个或一串随机数,或者可以为一个或一串随机字符,或者也可以为一串随机数和随机字符的任意组合。认证端的会话密钥与读卡终端的会话密钥为一对对称密钥,认证端的会话密钥用于对认证端向读卡终端发送的数据进行加密,以及用于对读卡终端向认证端发送的加密数据进行解密。
在本实施例中,在本实施例中,读卡终端的第一证书至少包括读卡终端的第一公钥,读卡终端的第一公钥与读卡终端的第一私钥是一对非对称密钥。
在本实施例中,认证端利用读卡终端的第一证书对第一签名值进行签名验证的具体实施方式为:认证端利用读卡终端的第一证书的公钥对接收到第一签名值进行解密,得到第一密文的摘要,并利用HASH算法对接收到的第一密文进行计算得到第一密文的摘要,并比对解密得到的第一密文的摘要与计算得到的第一密文的摘要是否相同,如果相同,则对第一签名值进行签名验证通过。当然,签名验证的过程并不一定由认证端执行,也可能由云认证平台中的其它装置(例如云认证平台中的调度装置)执行,例如,读卡终端向调度装置发送第一数据包,调度装置执行对第一签名值的签名验证,在对第一签名值的签名验证通过后,调度装置将第一密文发送给认证端,由认证端执行对第一密文的解密,又如,认证端将第一签名发送给云认证平台中的其他装置(例如调度装置),由该其他装置执行对第一签名值的签名验证,在对第一签名值的签名验证通过后,该其他装置将签名验证结果发送给认证端,由认证端执行对第一密文的解密,具体的本实施例不做限定。本实施例中的签名验证的过程均可参见该实施方式,下面涉及到签名验证的过程将不再具体赘述,同样,下面涉及到认证端执行签名验证的过程也均可由云认证平台中的调度装置执行。
步骤203:验证端接收身份证基本信息,并获取第一认证因子,并将第一认证因子发送至认证端;
在本实施例中,认证端解密得到身份证基本信息后,将身份证基本信息发送至验证端,验证端接收到身份证基本信息后,获取第一认证因子,验证端获取的第一认证因子可用来验证身份证的合法性。
步骤204:认证端接收第一认证因子,并对第一认证因子进行安全处理,得到第二数据包;并向读卡终端发送第二数据包;
在本实施例中,对第一认证因子进行安全处理,得到第二数据包,包括:利用认证端的会话密钥对第一认证因子进行加密,得到第二密文,以及利用认证端的私钥对第二密文进行签名,得到第二签名值,第二数据包包括第二密文和第二签名值。具体的,认证端接收第一认证因子后,利用认证端的会话密钥对第一认证因子进行加密,得到第二密文,以及利用认证端的私钥对第二密文进行签名,得到第二签名值,并将包括第二密文和第二签名值的第二数据包发送至读卡终端。通过对第一认证因子进行加密,可以保证第一认证因子在网络传输中的安全,另外,通过对第二密文进行签名,可以防止非法分子篡改第二密文。
在本实施例中,如果读卡终端具有联网功能,认证端可以直接通过有线网络或无线网络向读卡终端发送第二数据包;如果读卡终端不具有联网功能,认证端可以通过有线网络或无线网络向上位机发送第二数据包,上位机再将第二数据包传输至读卡终端。以下涉及到认证端向读卡终端传输数据时将不再赘述具体传输方式。
作为本实施例的一种可选实施方式,认证端并不是直接将第二数据包发送至读卡终端,而是先将第二数据包发送至调度装置,由调度装置将第二数据包转发至读卡终端。同样,以下涉及到认证端向读卡终端传输数据时,认证端均可先将数据发送至调度装置,再由调度装置将数据转发至读卡终端。
步骤205:读卡终端接收第二数据包;对第二数据包进行安全验证,在安全验证通过后得到第一认证因子,并向身份证发送第一认证因子;接收身份证发送的第一认证数据,对第一认证数据进行安全处理,得到第三数据包;并向认证端发送第三数据包,其中,第一认证数据为身份证对第一认证因子进行处理得到;
在本实施例中,对第二数据包进行安全验证,包括:利用认证端的证书对第二签名值进行签名验证,并在对第二签名值进行签名验证通过后,利用读卡终端的会话密钥对第二密文进行解密。具体的,读卡终端接收第二数据包后,利用认证端的证书中的公钥对第二签名值进行签名验证,并在对第二签名值进行签名验证通过后,利用读卡终端的会话密钥对第二密文进行解密,得到第一认证因子。其中,认证端的证书至少包括认证端的公钥。通过对第二签名值进行签名验证,可以验证第二密文是否被非法分子篡改。
在本实施例中,身份证通过公安部预置的算法对第一认证因子进行处理得到第一认证数据,例如,身份证可以利用安全密钥对第一认证因子进行加密得到第一认证数据;或者身份证可以利用身份证的安全密钥对第一认证因子进行MAC(Message AuthenticationCode,消息认证码)计算得到MAC值,并将该MAC值作为第一认证数据。其中,身份证的安全密钥是预先内置在合法的身份证中的,只有合法的身份证才具有该安全密钥。
在本实施例中,对第一认证数据进行安全处理包括:利用读卡终端的会话密钥对第一认证数据进行加密,得到第三密文,以及利用读卡终端的第一私钥对第三密文进行签名,得到第三签名值,第三数据包包括第三密文和第三签名值。具体的,读卡终端接收身份证发送的第一认证数据后,利用读卡终端的会话密钥对第一认证数据进行加密,得到第三密文,以及利用读卡终端的第一私钥对第三密文进行签名,得到第三签名值,并将包括第三密文和第三签名值的第三数据包发送至认证端。通过对第一认证数据进行加密,可以保证第一认证数据在网络传输中的安全性,通过对第三密文进行签名,可以防止第三密文被非法分子篡改。
步骤206:认证端接收第三数据包;对第三数据包进行安全验证,在安全验证通过后得到第一认证数据;并向验证端发送第一认证数据;
在本实施例中,对第三数据包进行安全验证,包括:利用读卡终端的第一证书对第三签名值进行签名验证,并在对第三签名值进行签名验证通过后,利用认证端的会话密钥对第三密文进行解密。具体的,认证端接收第三数据包后,利用读卡终端的第一证书中的第一公钥对第三签名值进行签名验证,并在对第三签名值进行签名验证通过后,利用认证端的会话密钥对第三密文进行解密,得到第一认证数据。通过对第三签名值进行签名验证,可以验证第三密文是否被非法分子篡改。
步骤207:验证端接收第一认证数据,并对第一认证数据进行认证,并在认证通过后生成认证因子申请请求,并向认证端发送认证因子申请请求;
在本实施例中,身份证制作过程中内置安全密钥,在验证端中可以存储与身份证的安全密钥相同的验证端的安全密钥,当然,验证端也可使用相同的预设算法对预设信息进行计算得到验证端的安全密钥。验证端的安全密钥是与身份证基本信息对应的。
在本实施例中,验证端通过公安部预置的算法对第一认证数据进行认证,例如,验证端可以利用验证端的安全密钥对接收到的第一认证数据进行解密,得到认证因子,并比较解密得到的认证因子与自身生成的第一认证因子是否相同,如果相同,则对第一认证数据进行验证通过。当然,验证端也可以利用验证端的安全密钥对自身生成的第一认证因子进行加密得到认证数据,并比较加密得到的认证数据与接收到的第一认证数据是否相同,如果相同,则对第一认证数据进行验证通过。或者,验证端利用验证端的安全密钥对自身生成的第一认证因子进行MAC计算得到MAC值,并比较该计算得到的MAC值与第一认证数据是否相同,如果相同,则对第一认证数据进行验证通过。如果验证端对第一认证数据进行验证通过,则该身份证是合法的身份证,验证端通过对第一认证数据进行验证确认了身份证的合法性。
在本实施例中,验证端在对第一认证数据进行认证通过后,生成认证因子申请请求,该认证因子申请请求用于请求身份证生成第二认证因子以便身份证验证验证端的合法性。
步骤208:认证端接收认证因子申请请求,并对认证因子申请请求进行安全处理,得到认证因子申请请求数据包,并向读卡终端发送认证因子申请请求数据包;
在本实施例中,对认证因子申请请求进行安全处理,得到认证因子申请请求数据包,包括:利用认证端的会话密钥对认证因子申请请求进行加密,生成认证因子申请请求密文,并利用认证端的私钥对认证因子申请请求密文进行签名,得到认证因子申请请求签名值,认证因子申请请求数据包包括认证因子申请请求密文和认证因子申请请求签名值。具体的,认证端接收认证因子申请请求后,利用认证端的会话密钥对认证因子申请请求进行加密,生成认证因子申请请求密文,并利用认证端的私钥对认证因子申请请求密文进行签名,得到认证因子申请请求签名值,并将包括认证因子申请请求密文和认证因子申请请求签名值的认证因子申请请求数据包发送至读卡终端。通过对认证因子申请请求加密可以保证认证因子申请请求在网络传输中的安全,通过对认证因子申请请求密文进行签名可以防止非法分子篡改认证因子申请请求密文。
步骤209:读卡终端接收认证因子申请请求数据包,对认证因子申请请求数据包进行安全验证,在安全验证通过后得到认证因子申请请求,并将认证因子申请请求发送至身份证;接收身份证发送的第二认证因子,对第二认证因子进行安全处理,得到第四数据包;并向认证端发送第四数据包;
在本实施例中,对认证因子申请请求数据包进行安全验证,包括:利用认证端的证书对认证因子申请请求签名值进行签名验证,并在对认证因子申请请求签名值进行签名验证通过后,利用读卡终端的会话密钥对认证因子申请请求密文进行解密。读卡终端接收认证因子申请请求数据包后,利用认证端的证书中的公钥对认证因子申请请求数据包中的认证因子申请请求签名值进行签名验证,并在对认证因子申请请求签名值进行签名验证通过后,利用读卡终端的会话密钥对认证因子申请请求密文进行解密,得到认证因子申请请求。通过对认证因子申请请求签名值进行签名验证,可以验证认证因子申请请求密文是否被非法分子篡改。
在本实施例中,读卡终端得到认证因子申请请求后,将认证因子申请请求发送至身份证。身份证获取认证因子申请请求后,生成第二认证因子,并将第二认证因子发送至读卡终端。读卡终端接收身份证发送的第二认证因子,获取第二认证因子。该第二认证因子可以用来验证验证端的合法性。
在本实施例中,对第二认证因子进行安全处理,得到第四数据包,包括:利用读卡终端的会话密钥对第二认证因子进行加密,得到第四密文,以及利用读卡终端的第一私钥对第四密文进行签名,得到第四签名值,第四数据包包括第四密文和第四签名值。具体的,读卡终端接收身份证发送的第二认证因子,利用读卡终端的会话密钥对第二认证因子进行加密,得到第四密文,以及利用读卡终端的第一私钥对第四密文进行签名,得到第四签名值,并将包括第四密文和第四签名值的第四数据包发送至认证端。通过对第二认证因子进行加密,可以保证第二认证因子在网络传输中的安全性,通过对第四密文进行签名,可以防止第四密文被非法分子篡改。
步骤210:认证端接收第四数据包;并对第四数据包进行安全验证,在安全验证通过后得到第二认证因子;并向验证端发送第二认证因子;
在本实施例中,对第四数据包进行安全验证,包括:利用读卡终端的第一证书对第四签名值进行签名验证,并在对第四签名值进行签名验证通过后,利用认证端的会话密钥对第四密文进行解密。具体的,认证端接收第四数据包后,认证端接收第四数据包后,利用读卡终端的第一证书中的第一公钥对第四数据包中的第四签名值进行签名验证,并在对第四签名值进行签名验证通过后,利用认证端的会话密钥对第四密文进行解密,得到第二认证因子。通过对第四签名值进行签名验证,可以验证第四密文是否被非法分子篡改。
步骤211:验证端接收第二认证因子,并对第二认证因子进行处理生成第二认证数据;并向认证端发送第二认证数据;
在本实施例中,验证端接收第二认证因子后,验证端通过公安部预置的算法对第二认证因子进行处理生成第二认证数据,例如,验证端利用安全密钥对第二认证因子进行加密后生成第二认证数据;或者验证端利用验证端的安全密钥对第二认证因子进行MAC计算得到MAC值,并将该MAC值作为第二认证数据。其中,验证端的安全密钥可以是预先内置在合法的验证端中的,只有合法的验证端才具有该安全密钥。当然,验证端的安全密钥也可以是验证端利用预设算法对预设信息计算得到的,只有合法的验证端才能计算得到该安全密钥。
步骤212:认证端接收第二认证数据,并对第二认证数据进行安全处理,得到第五数据包;并向读卡终端发送第五数据包;
在本实施例中,对第二认证数据进行安全处理,得到第五数据包,包括:利用认证端的会话密钥对第二认证数据进行加密,得到第五密文,以及利用认证端的私钥对第五密文进行签名,得到第五签名值,第五数据包包括第五密文和第五签名值。具体的,认证端接收第二认证数据后,利用认证端的会话密钥对第二认证数据进行加密,得到第五密文,以及利用认证端的私钥对第五密文进行签名,得到第五签名值,并将包括第五密文和第五签名值的第五数据包发送至读卡终端。通过对第二认证数据进行加密,可以保证第二认证数据在网络传输中的安全,另外,通过对第五密文进行签名,可以防止非法分子篡改第五密文。
步骤213:读卡终端接收第五数据包;对第五数据包进行安全验证,在安全验证通过后得到第二认证数据,并向身份证发送第二认证数据;接收身份证发送的身份证数据密文,对身份证数据密文进行安全处理得到第六数据包;并向认证端发送第六数据包,其中,身份证数据密文为身份证对第二认证数据进行认证,在认证通过后发送;
在本实施例中,对第五数据包进行安全验证,包括:利用认证端的证书对第五签名值进行签名验证,并在对第五签名值进行签名验证通过后,利用读卡终端的会话密钥对第五密文进行解密。具体的,读卡终端接收第五数据包后,利用认证端的证书中的公钥对第五签名值进行签名验证,并在对第五签名值进行签名验证通过后,利用读卡终端的会话密钥对第五密文进行解密,得到第二认证数据。通过对第五签名值进行签名验证,可以验证第五密文是否被非法分子篡改。
在本实施例中,读卡终端解密得到第二认证数据后,向身份证发送第二认证数据。身份证接收第二认证数据,并对第二认证数据进行认证,具体的,身份证通过公安部预设的算法对第二认证数据进行认证,例如,身份证可以利用身份证内置的安全密钥对应的解密密钥对接收到的第二认证数据进行解密,得到认证因子,并比较解密得到的认证因子与自身生成的第二认证因子是否相同,如果相同,则对第二认证数据进行验证通过。当然,身份证也可以利用身份证的安全密钥对自身生成的第二认证因子进行加密得到认证数据,并比较加密得到的认证数据与接收到的第二认证数据是否相同,如果相同,则对第二认证数据进行验证通过。或者,身份证利用身份证的安全密钥对自身生成的第二认证因子进行MAC计算得到MAC值,并比较该计算得到的MAC值与第二认证数据是否相同,如果相同,则对第二认证数据进行验证通过。身份证对第二认证数据进行验证通过,说明验证端是合法的验证端,身份证通过对第二认证数据进行验证确认了验证端的合法性。
在本实施例中,通过第一认证因子确认了身份证的合法性,通过第二认证因子确认了验证端的合法性。双向认证通过后,身份证才向读卡终端发送身份证数据密文,其中,身份证数据密文一般是居民身份证号、姓名、照片、年龄、住址、卡片使用年限和/或指纹等数据的密文。
在本实施例中,对身份证数据密文进行安全处理得到第六数据包,包括:利用读卡终端的会话密钥对身份证数据密文进行加密,得到第六密文,以及利用读卡终端的第一私钥对第六密文进行签名,得到第六签名值,第六数据包包括第六密文和第六签名值。具体的,身份证对第二次认证数据进行认证通过后,向读卡终端发送身份证数据密文。读卡终端接收身份证发送的身份证数据密文,利用读卡终端的会话密钥对身份证数据密文进行加密,得到第六密文,以及利用读卡终端的第一私钥对第六密文进行签名,得到第六签名值,并将包括第六密文和第六签名值的第六数据包发送至认证端。通过对身份证数据密文进行加密,可以保证身份证数据密文在传输过程中的安全性,另外,对第六密文进行签名,可以防止非法分子篡改第六密文。
在本实施例中,身份证数据密文所包括的信息可以通过一个数据包一次发送给认证端,当然,身份证数据密文所包括的信息也可以通过多个数据包分多次发送给认证端。
步骤214:认证端接收第六数据包,对第六数据包进行安全验证,在安全验证通过后得到身份证数据密文;并向验证端发送身份证数据密文;
在本实施例中,对第六数据包进行安全验证,包括:利用读卡终端的第一证书对第六签名值进行签名验证,并在对第六签名值进行签名验证通过后,利用认证端的会话密钥对第六密文进行解密。具体的,认证端接收第六数据包后,利用读卡终端第一证书中的第一公钥对第六签名值进行签名验证,并在对第六签名值进行签名验证通过后,利用认证端的会话密钥对第六密文进行解密,得到身份证数据密文。通过对第六签名值进行签名验证,可以验证第六密文是否被非法分子篡改。
步骤215:验证端接收身份证数据密文,并对身份证数据密文进行解密,得到身份证数据明文;并向认证端发送身份证数据明文;
在本实施例中,认证端解密得到身份证数据密文后,将身份证数据密文发送至验证端;验证端利用验证端中设置的可以对从身份证中读取的密文数据进行解密的模块对身份证数据密文进行解密,得到身份证数据明文;验证端将身份证数据明文发送至认证端。
步骤216:认证端接收身份证数据明文,并对身份证数据明文进行安全处理,得到第七数据包;并向读卡终端发送第七数据包;
在本实施例中,对身份证数据明文进行安全处理,得到第七数据包,包括:利用认证端的会话密钥对身份证数据明文进行加密,得到第七密文,以及利用认证端的私钥对第七密文进行签名,得到第七签名值,第七数据包包括第七密文和第七签名值。具体的,认证端接收到验证端发送的身份证数据明文后,利用认证端的会话密钥对身份证数据明文进行加密,得到第七密文,以及利用认证端的私钥对第七密文进行签名,得到第七签名值,并将包括第七密文和第七签名值的第七数据包发送至读卡终端。通过对身份证数据明文进行加密,可以保证身份证数据明文在网络传输中的安全性,另外,通过对第七密文进行签名,可以防止非法分子篡改第七密文。
步骤217:读卡终端接收第七数据包,对第七数据包进行安全验证,在安全验证通过后得到身份证数据明文。
在本实施例中,对第七数据包进行安全验证,包括:利用认证端的证书对第七签名值进行签名验证,并在对第七签名值进行签名验证通过后,利用读卡终端的会话密钥对第七密文进行解密。具体的,读卡终端接收到认证端发送的第七数据包后,利用认证端的证书中的公钥对第七数据包中的第七签名值进行签名验证,并在对第七签名值进行签名验证通过后,利用读卡终端的会话密钥对第七密文进行解密,得到身份证数据明文。通过对第七签名值进行签名验证,可以验证第七密文是否被非法分子篡改。
在本实施例中,身份证数据明文一般是居民身份证号、姓名、照片、年龄、住址、卡片使用年限、指纹等数据的明文。作为本实施例的一种可选实施方式,读卡终端解密得到身份证数据明文后,可直接通过读卡终端显示身份证数据明文。当然,读卡终端也可将身份证数据明文发送至上位机,由上位机显示身份证数据明文。
身份证和云认证平台中的认证端通过第一认证因子和第二认证因子的交互完成了双向认证,认证端中可以对从身份证中读取的密文数据进行解密的模块对身份证数据密文进行解密以得到身份证数据明文,并发送给读卡终端,以完成身份证的读取。为了更好的理解身份证读取的完整流程,在执行上述流程之前,身份证和认证端、验证端还会执行寻卡流程和选卡流程,其中寻卡流程用于实现寻找可以进行通信的身份证,选卡流程用于在寻找到的身份证中确定与哪个身份证进行通信。下文对寻卡流程和选卡流程进行描述:
作为本实施例的一种可选实施方式,在步骤201中读卡终端接收身份证发送的身份证基本信息之前,还包括寻卡流程,具体的寻卡流程包括以下两种方式之一:
方式一:
B1:读卡终端向身份证发送寻卡指令;
B2:身份证接收寻卡指令,并向读卡终端发送寻卡确认数据;
B3:读卡终端利用认证加密密钥对寻卡请求数据进行加密,得到寻卡请求数据密文,利用读卡终端的第一私钥对寻卡请求数据密文进行签名,得到寻卡请求签名值;
B4:读卡终端向认证端发送寻卡请求,寻卡请求包括寻卡请求数据密文、寻卡请求签名值、读卡终端的第一证书和读卡终端的第二证书;
在本实施例中,读卡终端通过其RF射频模块每间隔一段时间向外发送寻卡指令,身份证接收到该寻卡指令后,向读卡终端发送寻卡确认数据,读卡终端接收到身份证发送的寻卡确认数据后,读卡终端向认证端发送寻卡请求。
在本实施例中,寻卡请求中包括寻卡请求数据密文、寻卡请求签名值、读卡终端的第一证书和读卡终端的第二证书。其中,寻卡请求数据密文是读卡终端在收到身份证发送的寻卡确认数据后,利用认证加密密钥对寻卡请求数据进行加密生成的。利用认证加密密钥对寻卡请求数据加密后传输至认证端可以保证寻卡请求数据在网络传输中的安全。
在本实施例中,读卡终端的第一证书中至少包括读卡终端的第一公钥,读卡终端的第二证书中也至少包括读卡终端的第二公钥。读卡终端的第一证书中的公钥与第二证书中的公钥可以相同,也可以不同,本实施例不做限定。读卡终端的第一私钥与读卡终端的第一公钥是一对非对称密钥对,分别用于对读卡终端向认证端传输的数据进行签名和验签。读卡终端的第二公钥与读卡终端的第二私钥是一对非对称密钥对,分别用于对会话密钥进行加解密运算。
作为本实施例的一种可选实施方式,步骤B3中的寻卡请求数据还包括时间戳和/或单次认证数据,寻卡请求中还包括读卡终端的标识。其中,单次认证标识包括读卡终端中的计数器产生的计数值和/或随机因子。当单次认证标识为计数器产生的计数值时,读卡终端每执行一次身份证信息读取操作,计数器会产生一个计数值,用于对发送出的第一数据包进行计数,例如,读卡终端读取身份证A时,计数器产生计数值1,下次读取身份证B时,计数器产生计数值2,以此类推,当然具体的计数值形式不限于此;当单次认证标识为随机因子时,随机因子可以为一个或一串随机数,或者可以为一个或一串随机字符,或者一串随机数和随机字符的任意组合;读卡终端的标识可以为读卡终端的序列号,当然,读卡终端的标识只要是可以唯一表示读卡终端的标识即可,并不局限于读卡终端的序列号。
作为本实施例的一种可选实施方式,云认证平台除了包括认证端和验证端外,还包括调度装置。
作为本实施例的一种可选实施方式,读卡终端并不是直接将寻卡请求发送至云认证平台的认证端,而是先将寻卡请求发送给调度装置,调度装置判断寻卡请求中的读卡终端的标识是否在黑名单内,如果在黑名单内,则结束身份证读取流程;否则,调度装置根据各个认证端的处理能力,决定将寻卡请求发送到哪个认证端进行处理,调度装置再将寻卡请求发送给认证端。通过调度装置对第一数据包进行分流处理,可以防止单点故障。
作为本实施例的一种可选实施方式,读卡终端将寻卡请求发送给调度装置,调度装置选中认证端后,将选中的认证端的端口号发送给读卡终端。具体的,有以下实施方式:方式一:调度装置选中认证端的端口号后,直接将端口号发送给读卡终端;方式二:调度装置将端口号携带在寻卡请求响应中发送给读卡终端;方式三:调度装置将端口号携带在寻卡请求中发送至认证端,认证端再将端口号携带在寻卡请求响应中直接发送给读卡终端。
作为本实施例的一种可选实施方式,读卡终端向云认证平台发送数据时,除了读卡终端第一次向云认证平台发送数据时需要由调度装置分配认证端,后续向云认证平台发送的数据均可直接发送至端口号对应的认证端。当然,后续向云认证平台发送的数据也可通过调度装置做相应处理(例如签名验证、转发)后发送至认证端,本实施例不做具体限定。
作为本实施例的一种可选实施方式,调度装置接收到寻卡请求并判断读卡终端的标识不在黑名单后,利用根证书对接收到的读卡终端的第一证书和读卡终端的第二证书进行验证,并在验证通过后,调度装置利用读卡终端的第一证书对寻卡请求签名值进行签名验证,并在对寻卡请求签名值进行签名验证通过后,将寻卡请求中的寻卡请求数据密文和读卡终端的第二证书发送至认证端。
B5:认证端接收寻卡请求,并利用认证端的第一证书对寻卡请求签名值进行签名验证,并在对寻卡请求签名值进行签名验证通过后,利用认证解密密钥对寻卡请求数据密文进行解密,得到寻卡请求数据;
B6:认证端向验证端发送寻卡请求数据;
作为本实施例中的一种可选实施方式,认证端接收到寻卡请求后,利用根证书对接收到读卡终端的第一证书和读卡终端的第二证书进行验证,以防止非法分子篡改读卡终端的公钥,实现对读卡终端的安全认证,提高双方交互的安全性。
在本实施例中,认证解密密钥与步骤B3中的认证加密密钥为相同的密钥,即对称密钥,读卡终端和认证端分别利用该对称密钥对寻卡请求数据进行加解密,保证寻卡请求数据在网络传输中的安全性。可选的,认证加密密钥和认证解密密钥保存在密钥数据库中,认证端可以从密钥数据库中读取该认证解密密钥,并保存在认证端本地。读卡终端也可以从密钥数据库中读取该认证加密密钥,并保存在读卡终端本地。
作为本实施例的一种可选实施方式,寻卡请求中包括读卡终端的标识,认证端解密得到的寻卡请求数据中包括时间戳和单次认证标识时,认证端将读卡终端的标识、时间戳和单次认证标识发送至调度装置,当然也可以将是其它装置,本实施例不做限定。
作为本实施例的一种可选实施方式,调度装置与读卡终端的时钟保持同步,调度装置判断解密得到的时间戳是否在有效时间窗口内,如果判断解密得到时间戳不在有效时间窗口内,则结束身份证读取流程;如果判断解密得到的时间戳在有效时间窗口内,则对寻卡请求进行频度管控。具体进行频度管控的实施方式为:当单次认证标识为读卡终端的计数器产生的计数值时,调度云认证平台根据时间戳、计数值和读卡终端的标识判断某一在单位时间内接收到的读卡终端发送的寻卡请求的次数,如果超出预设的寻卡请求次数,则将该读卡终端加入黑名单。例如,调度装置接收到读卡终端的标识为TD01的读卡终端在时间戳2016年1月14日16点12分00秒时发送寻卡请求,其计数值为1,接收到读卡终端的标识为TD01的读卡终端在时间戳2016年1月14日16点13分00秒时发送的寻卡请求,其计数值为100,调度装置判断读卡终端标识为TD01的读卡终端在1分钟内发送了100次寻卡请求,超出预设的寻卡请求次数,读卡终端将读卡终端标识为TD01的读卡终端加入黑名单,可以防止恶意的重放攻击造成的云认证平台瘫痪。当单次认证标识为随机因子时,调度装置判断是否已经处理过具有该随机因子的寻卡请求,如果是,结束身份证读取流程,同样可以防止恶意的重放攻击造成的云认证平台瘫痪。
作为本实施例的一种可选实施方式,当调度装置已经对寻卡请求签名值进行验签后,认证端只接收到调度装置发送的寻卡请求数据密文和读卡终端的第二证书时,认证端只利用认证解密密钥对寻卡请求数据密文进行解密以得到寻卡请求数据。
B7:验证端接收到寻卡请求数据,生成寻卡请求响应数据;
B8:验证端向认证端发送寻卡请求响应数据;
B9:认证端接收到寻卡请求响应数据,生成会话密钥,并利用会话密钥对寻卡请求响应数据进行加密,得到寻卡请求响应数据密文,并利用读卡终端的第二证书对会话密钥进行加密,得到会话密钥密文,并利用认证端的私钥对寻卡请求响应数据密文和会话密钥密文进行签名,得到寻卡请求响应签名值;
B10:认证端向读卡终端发送寻卡请求响应,寻卡请求响应包括:寻卡请求响应数据密文、会话密钥密文、寻卡请求响应签名值和认证端的证书,其中,认证端采用生成的会话密钥作为认证端的会话密钥;
在本实施例中,认证端解密得到寻卡请求数据后,生成寻卡请求响应数据,并向认证端发送寻卡请求响应数据;认证端接收到寻卡请求响应数据后,生成会话密钥,认证端采用生成的会话密钥作为认证端的会话密钥,其中认证端的会话密钥可以为一个或一串随机数,或者可以为一个或一串随机字符,或者一串随机数和随机字符的任意组合。利用会话密钥对寻卡请求响应数据进行加密,保证了寻卡请求响应数据的在网络传输中的安全性。另外,会话密钥作为随机产生的密钥,不易被非法分子窃取。
作为一种可选的实施方式,会话密钥可以由认证端生成,也可以由云端云认证平台的其它模块生成后存储在认证端的,本实施例不做限定,只要认证端获取会话密钥即可。
在本实施例中,认证端利用读卡终端的第二证书中的公钥对会话密钥进行加密,得到会话密钥密文,保证了会话密钥在网络传输中的安全性。
在本实施例中,认证端利用自身存储的私钥对寻卡请求响应密文和会话密钥进行签名,可以防止非法分子篡改寻卡请求响应密文和会话密钥。
在本实施例中,认证端向读卡终端发送的寻卡请求响应包括:寻卡请求响应数据密文、会话密钥密文、寻卡请求响应签名值和云认证平台的证书。其中,认证端的证书中包括认证端的公钥,认证端的私钥与认证端的公钥是一对非对称密钥对,用于对从认证端向读卡终端中传输的数据进行签名和验签。
作为本实施例的一种可选实施方式,认证端利用读卡终端的第二证书对会话密钥进行加密,得到会话密钥密文包括:认证端利用读卡终端的第二证书对会话密钥和单次认证标识进行加密,生成会话密钥密文。
作为本实施例的一种可选实施方式,认证端可以直接将寻卡请求响应发送至读卡终端;也可将寻卡请求响应发送至调度装置后,调度装置再将寻卡请求响应发送至读卡终端。
B11:读卡终端接收寻卡请求响应,并利用认证端的证书对寻卡请求响应签名值进行验签,并在对寻卡请求响应签名值进行验签通过后,利用读卡终端的第二私钥对会话密钥密文进行解密,得到会话密钥,并利用会话密钥对寻卡请求响应数据密文进行解密,得到寻卡请求响应数据,其中读卡终端采用对会话密钥密文解密得到的会话密钥作为读卡终端的会话密钥;
B12:读卡终端向认证端发送寻卡确认数据。
作为本实施例的一种可选实施方式,读卡终端接收到寻卡请求响应后,利用根证书对接收到的认证端的证书进行验证,以防止非法分子篡改认证端证书中的公钥,实现对认证端的安全认证,提高双方交互的安全性。
方式二:
读卡终端和认证端先协商会话密钥以进一步保证寻卡请求数据传输的安全,具体协商会话密钥的过程为:
读卡终端利用认证加密密钥对会话密钥请求数据进行加密,得到会话密钥请求数据密文,利用读卡终端的第一私钥对会话密钥请求数据密文进行签名,得到会话密钥请求签名值,并向认证端发送会话密钥请求,会话密钥请求包括会话密钥请求数据密文、会话密钥请求签名值、读卡终端的第一证书和读卡终端的第二证书;认证端接收会话密钥请求,并利用读卡终端的第一证书对会话密钥请求签名值进行签名验证,并在对会话密钥请求签名值进行签名验证通过后,利用认证解密密钥对会话密钥请求数据密文进行解密,得到会话密钥请求数据;认证端生成会话密钥,并利用读卡终端的第二证书对会话密钥进行加密,得到会话密钥密文,并利用认证端的私钥对会话密钥密文进行签名,得到会话密钥密文签名值,并向读卡终端发送会话密钥请求响应,会话密钥请求响应包括:会话密钥密文、会话密钥密文签名值和认证端的证书,其中认证端采用生成的会话密钥作为认证端的会话密钥;读卡终端接收会话密钥请求响应,并利用认证端的证书对会话密钥密文签名值进行验签,并在对会话密钥密文签名值进行验签通过后,利用读卡终端的第二私钥对会话密钥密文进行解密,得到会话密钥,其中读卡终端采用对会话密钥密文解密得到的会话密钥作为读卡终端的会话密钥。
作为本实施例的一种可选实施方式,在读卡终端利用会话密钥对身份证基本信息进行加密之前,砍人通过以下方式协商会话密钥:读卡终端获取第一随机数,并利用读卡终端的第一私钥对第一随机数进行签名,得到第一随机数签名值,并向认证端发送第一随机数、第一随机数签名值和读卡终端第一证书;认证端接收第一随机数、第一随机数签名值和读卡终端的第一证书,并利用根证书对读卡终端的第一证书进行验证,并在验证通过后,利用读卡终端的第一证书对第一随机数签名值进行签名验证,并在对第一随机数签名值进行签名验证通过后,生成第二随机数,根据第一随机数和第二随机数生成认证端的会话密钥;并利用读卡终端的第一证书对第一随机数和第二随机数进行加密,得到第八密文,以及利用认证端的私钥对第八密文进行签名,得到第八签名值;并向读卡终端发送第八数据包,第八数据包包括:第八密文、第八签名值和认证端的证书;读卡终端接收第八数据包;利用认证端的证书对第八签名值进行签名验证,并在对第八签名值进行签名验证通过后,利用读卡终端的第一私钥对第八密文进行解密,得到第一随机数和第二随机数;并对第一随机数进行验证,验证通过后,根据第一随机数和第二随机数生成读卡终端的会话密钥。读卡终端通过对第一随机数进行验证、对第八签名值进行签名验证,可以保证认证端和读卡终端生成会话密钥的第一随机数和第二随机数相同,保证生成的认证端的会话密钥和读卡终端的会话密钥是一对对称密钥。
协商好会话密钥后,读卡终端和认证端可以直接利用读卡终端的会话密钥和认证端的会话密钥对寻卡请求数据和寻卡请求响应数据进行加解密,后续寻卡流程为:
B1:读卡终端向身份证发送寻卡指令;
B2:身份证接收寻卡指令,并向读卡终端发送寻卡确认数据;
B3:读卡终端利用读卡终端的会话密钥对寻卡请求数据进行加密,得到寻卡请求数据密文,利用读卡终端的第一私钥对寻卡请求数据密文进行签名,得到寻卡请求签名值;
B4:读卡终端向认证端发送寻卡请求,寻卡请求包括寻卡请求数据密文和寻卡请求签名值;
B5:认证端接收寻卡请求,并利用读卡终端的第一证书对寻卡请求签名值进行签名验证,并在对寻卡请求签名值进行签名验证通过后,利用认证端的会话密钥对寻卡请求数据密文进行解密,得到寻卡请求数据;
B6:认证端向验证端发送寻卡请求数据。
B7:验证端接收寻卡请求数据,生成寻卡请求响应数据;
B8:验证端向认证端发送寻卡请求响应数据;
B9:认证端接收寻卡请求响应数据,并利用认证端的会话密钥对寻卡请求响应数据进行加密,得到寻卡请求响应数据密文,并利用认证端的私钥对寻卡请求响应数据密文进行签名,得到寻卡请求响应签名值;
B10:认证端向读卡终端发送寻卡请求响应,寻卡请求响应包括:寻卡请求响应数据密文和寻卡请求响应签名值;
B11:读卡终端利用认证端的证书对接收的寻卡请求响应签名值进行验签,并在对寻卡请求响应签名值验签通过后,利用读卡终端的会话密钥对接收到的寻卡请求响应数据密文进行解密,得到寻卡请求响应数据;
B12:读卡终端向认证端发送寻卡确认数据。
步骤B1-B12完成了寻卡流程,寻卡流程结束后还包括选卡流程,通过选卡流程验证端可以确认是对哪一张身份证进行的读取操作。作为本实施例的一种可选实施方式,在步骤B12之后,还包括以下选卡步骤(B13-B24):
B13:读卡终端得到寻卡请求响应数据后,向身份证发送选卡指令;
B14:身份证接收该选卡指令,向读卡终端发送选卡确认数据,其中选卡确认数据至少包括身份证的序列号;
B15:读卡终端接收:身份证发送的选卡确认数据,并利用读卡终端的会话密钥对选卡请求数据进行加密,得到选卡请求数据密文,利用读卡终端的第一私钥对选卡请求数据密文进行签名,得到选卡请求签名值;
B16:读卡终端向认证端发送选卡请求,选卡请求包括选卡请求数据密文和选卡请求签名值;
B17:认证端接收选卡请求,并利用读卡终端的第一证书对选卡请求签名值进行签名验证,并在对选卡请求签名值进行签名验证通过后,利用认证端的会话密钥对选卡请求数据密文进行解密,得到选卡请求数据;
B18:认证端向验证端发送选卡请求数据;
B19:验证端接收选卡请求数据,生成选卡请求响应数据;
B20:验证端向认证端发送选卡请求响应数据;
B21:认证端接收选卡请求响应数据,利用认证端的会话密钥对选卡请求响应数据进行加密,得到选卡请求响应数据密文,并利用认证端的私钥对选卡请求响应数据密文进行签名,得到选卡请求响应签名值;
B22:认证端向读卡终端发送选卡请求响应,选卡请求响应包括:选卡请求响应数据密文和选卡请求响应签名值;
B23:读卡终端利用认证端的证书对接收的选卡请求响应签名值进行验签,并在对选卡请求响应签名值验签通过后,利用读卡终端的会话密钥对接收到的选卡请求响应数据密文进行解密,得到选卡请求响应数据;
B24:读卡终端在得到选卡请求响应数据后,利用读卡终端的会话密钥对选卡确认数据进行加密得到选卡确认数据密文,并利用读卡终端的第一私钥对选卡确认数据密文进行签名,得到选卡确认数据签名值,并向认证端发送选卡确认数据密文和选卡确认数据签名值;认证端接收到选卡确认数据密文和选卡确认数据签名值后,利用读卡终端的第一证书对选卡数据签名值进行签名验证,并在对选卡数据签名值进行签名验证通过后,利用读卡终端的会话密钥对选卡确认数据密文进行解密,得到选卡确认数据,并向验证端发送选卡确认数据;验证端接收选卡确认数据后,获得身份证的序列号。
在本实施例中,一个身份证具有一个安全密钥,不同的身份证对应的安全密钥也不相同,验证端中存储有多个身份证的安全密钥,通过步骤B24,验证端得到选卡确认数据,其中选卡确认数据中包括身份证的序列号,验证端获得身份证的序列号后,可根据身份证的序列号查找身份证与验证端进行认证过程中所使用的安全密钥。
需要说明的是,传统的身份证读卡终端一般设置有RF射频模块和验证安全控制模块(SAM模块),读卡终端可通过RF射频模块从身份证中读取身份证数据密文,验证安全控制模块实现对身份证数据密文的解密,但是读卡终端集成有验证安全控制模块的成本非常高,对大量需要身份证读卡终端的机构(例如银行、车站)来说成本很高。
本实施例中,读卡终端并不设置有验证安全控制模块,而是在云端的云认证平台中设置验证端(即验证安全控制模块),任何用户均可通过有线或无线网络接入到云端的验证端以实现对身份证的读取,大大降低了用户的实现成本,特别是在银行、车站、保险等需要执行身份证信息读取操作的行业,只需部署相应数量的只具有RF射频模块的读卡终端即可,无需再次大量部署验证安全控制模块,也无需大量设置验证安全控制模块与只具有RF射频模块之间的对应关系,简化了实现方案。另外,读卡终端和认证端之间传输的数据都进行了安全处理,保证了读卡终端和认证端之间数据传输的安全。
实施例3
本实施例提供一种身份证读取系统。
本实施例中的身份证读取系统包括:读卡终端32和云认证平台33,其中,云认证平台33中包括认证验证端331。为了更方便描述本实施例中身份证读取系统的工作流程,如图3所示,本实施例中的身份证读取系统还包括身份证31,其中,读卡终端32,用于接收身份证31发送的身份证基本信息,对身份证基本信息进行安全处理,得到第一数据包;并向认证验证端331发送第一数据包;认证验证端331,用于接收第一数据包,对第一数据包进行安全验证,在安全验证通过后得到身份证基本信息;并获取第一认证因子,对第一认证因子进行安全处理,得到第二数据包;并向读卡终端32发送第二数据包;读卡终端32,还用于接收第二数据包;对第二数据包进行安全验证,在安全验证通过后得到第一认证因子,并向身份证31发送第一认证因子;接收身份证31发送的第一认证数据,对第一认证数据进行安全处理,得到第三数据包;并向认证验证端331发送第三数据包,其中,第一认证数据为身份证31对第一认证因子进行处理得到;认证验证端331,还用于接收第三数据包;对第三数据包进行安全验证,在安全验证通过后得到第一认证数据;并对第一认证数据进行认证,并在认证通过后生成认证因子申请请求,对认证因子申请请求进行安全处理,得到认证因子申请请求数据包,并向读卡终端32发送认证因子申请请求数据包;读卡终端32,还用于接收认证因子申请请求数据包,对认证因子申请请求数据包进行安全验证,在安全验证通过后得到认证因子申请请求,并将认证因子申请请求发送至身份证31;接收身份证31发送的第二认证因子,对第二认证因子进行安全处理,得到第四数据包;并向认证验证端331发送第四数据包;认证验证端331,还用于接收第四数据包;并对第四数据包进行安全验证,在安全验证通过后得到第二认证因子;并对第二认证因子进行处理生成第二认证数据;并对第二认证数据进行安全处理,得到第五数据包;并向读卡终端32发送第五数据包;读卡终端32,还用于接收第五数据包;对第五数据包进行安全验证,在安全验证通过后得到第二认证数据,并向身份证31发送第二认证数据;接收身份证31发送的身份证31数据密文,对身份证31数据密文进行安全处理得到第六数据包;并向认证验证端331发送第六数据包,其中,身份证31数据密文为身份证31对第二认证数据进行认证,在认证通过后发送;认证验证端331,还用于接收第六数据包,对第六数据包进行安全验证,在安全验证通过后得到身份证31数据密文;并对身份证31数据密文进行解密,得到身份证31数据明文;并对身份证31数据明文进行安全处理,得到第七数据包;并向读卡终端32发送第七数据包;读卡终端32,还用于接收第七数据包,对第七数据包进行安全验证,在安全验证通过后得到身份证31数据明文。
在本实施例中,读卡终端32可以是读卡器,也可以是具有读卡功能的其它终端(例如集成有读卡功能的手机、集成有读卡功能的USBKEY等)。
在本实施例中,身份证基本信息可以是身份证31的序列号、用于指示身份证31中设置的应用的相关信息的应用数据、传输协议(例如,传输协议类型、比特数率、最大帧长度)等,读卡终端32可以直接识别该身份证基本信息,不需要公安部授权的安全控制模块进行解密。
在本实施例中,对身份证基本信息进行安全处理,得到第一数据包,包括:利用读卡终端32的会话密钥对身份证基本信息进行加密,得到第一密文,以及利用读卡终端32的第一私钥对第一密文进行签名,得到第一签名值,第一数据包包括第一密文和第一签名值。具体的,读卡终端32接收到身份证31发送的身份证基本信息后,利用读卡终端32的会话密钥对身份证基本信息进行加密,得到第一密文,并利用读卡终端32的第一私钥对第一密文进行签名,得到第一签名值,并将包括第一密文和第一签名值的第一数据包发送至认证验证端331。通过对身份证基本信息进行加密,可以保证身份证基本信息在网络传输中的安全性,通过对第一密文进行签名,可以防止非法分子篡改第一密文。
在本实施例中,读卡终端32的会话密钥可以为一个或一串随机数,或者可以为一个或一串随机字符,或者也可以为一串随机数和随机字符的任意组合。读卡终端32的会话密钥用于对读卡终端32向认证验证端331发送的数据进行加密,以及用于对认证验证端331向读卡终端32发送的加密数据进行解密。。
在本实施例中,读卡终端32利用读卡终端32的第一私钥对第一密文进行签名,得到第一签名值的具体实施方式为:读卡终端32利用HASH算法计算第一密文得到第一密文的摘要,并利用读卡终端32的第一私钥对第一密文的摘要进行加密,得到第一签名值。通过对第一密文进行签名可以防止非法分子篡改第一密文。需要说明的是,本实施例中的签名过程均可参见该实施方式,下面涉及到签名的过程将不再具体赘述。
在本实施例中,具有联网功能的读卡终端32可直接通过有线网络或无线网络向认证验证端331发送第一数据包,不具有联网功能的读卡终端32可利用上位机(例如手机、PAD(平板电脑)或PC等)通过有线网络或无线网络向认证验证端331发送第一数据包。可选的,读卡终端32可通过有线方式(例如,USB接口等)或无线方式(例如,WiFi,蓝牙等)与上位机实现通信连接。以下涉及到读卡终端32向认证验证端331传输数据时将不再赘述具体传输方式。
在本实施例中,对第一数据包进行安全验证,包括:利用读卡终端32的第一证书对第一签名值进行签名验证,并在对第一签名值进行签名验证通过后,利用认证验证端331的会话密钥对第一密文进行解密。具体的,认证验证端331接收第一数据包后,利用读卡终端32的第一证书对第一签名值进行签名验证,并在对第一签名值进行签名验证通过后,利用认证验证端331的会话密钥对第一密文进行解密,得到身份证基本信息。通过对第一签名值进行签名验证,可以验证第一密文是否被非法分子篡改。
在本实施例中,认证验证端331的会话密钥可以为一个或一串随机数,或者可以为一个或一串随机字符,或者也可以为一串随机数和随机字符的任意组合。认证验证端331的会话密钥与读卡终端32的会话密钥为一对对称密钥,认证验证端331的会话密钥用于对认证验证端331向读卡终端32发送的数据进行加密,以及用于对读卡终端32向认证验证端331发送的加密数据进行解密。
在本实施例中,认证验证端331解密得到身份证基本信息后,获取第一认证因子。认证验证端331获取的第一认证因子可用来验证身份证31的合法性。
在本实施例中,读卡终端32的第一证书至少包括读卡终端32的第一公钥,读卡终端32的第一公钥与读卡终端32的第一私钥是一对非对称密钥。
在本实施例中,认证验证端331利用读卡终端32的第一证书的第一公钥对接收到第一签名值进行解密,得到第一密文的摘要,并利用HASH算法对接收到的第一密文进行计算得到第一密文的摘要,并比对解密得到的第一密文的摘要与计算得到的第一密文的摘要是否相同,如果相同,则对第一签名值进行签名验证通过。当然,签名验证的过程并不一定由认证验证端331执行,也可能由云认证平台33中的其它装置(例如云认证平台33中的调度装置332)执行,例如,读卡终端32向调度装置332发送第一数据包,调度装置332执行对第一签名值的签名验证,在对第一签名值的签名验证通过后,调度装置332将第一密文发送给认证验证端331,由认证验证端331执行对第一密文的解密,又如,认证验证端331将第一签名发送给云认证平台33中的其他装置(例如调度装置332),由该其他装置执行对第一签名值的签名验证,在对第一签名值的签名验证通过后,该其他装置将签名验证结果发送给认证验证端331,由认证验证端331执行对第一密文的解密,具体的本实施例不做限定。本实施例中的签名验证的过程均可参见该实施方式,下面涉及到签名验证的过程将不再具体赘述,同样,下面涉及到认证验证端331执行签名验证的过程也均可由云认证平台33中的调度装置332执行。
身份证基本信息身份证基本信息在本实施例中,对第一认证因子进行安全处理,得到第二数据包,包括:利用认证验证端331的会话密钥对第一认证因子进行加密,得到第二密文,以及利用认证验证端331的私钥对第二密文进行签名,得到第二签名值,第二数据包包括第二密文和第二签名值。具体的,认证验证端331获取第一认证因子后,利用认证验证端331的会话密钥对第一认证因子进行加密,得到第二密文,以及利用认证验证端331的私钥对第二密文签名,得到第二签名值,并将包括第二密文和第二签名值的第二数据包发送至读卡终端32。通过会话密钥对第一认证因子进行加密,可以保证第一认证因子在网络传输中的安全,通过对第二密文进行签名,可以防止非法分子篡改第二密文。
在本实施例中,如果读卡终端32具有联网功能,认证验证端331可以直接通过有线网络或无线网络向读卡终端32发送第二数据包;如果读卡终端32不具有联网功能,认证验证端331可以通过有线网络或无线网络向上位机发送第二数据包,上位机再将第二数据包传输至读卡终端32。以下涉及到认证验证端331向读卡终端32传输数据时将不再赘述具体传输方式。
作为本实施例的一种可选实施方式,认证验证端331并不是直接将第二数据包发送至读卡终端32,而是先将第二数据包发送至调度装置332,由调度装置332将第二数据包转发至读卡终端32。同样,以下涉及到认证验证端331向读卡终端32传输数据时,认证验证端331均可先将数据发送至调度装置332,再由调度装置332将数据转发至读卡终端32。
在本实施例中,对第二数据包进行安全验证,包括:利用认证验证端331的证书对第二签名值进行签名验证,并在对第二签名值进行签名验证通过后,利用读卡终端32的会话密钥对第二密文进行解密,得到第一认证因子。其中,认证验证端331的证书至少包括认证验证端331的公钥。通过对第二签名值进行签名验证,可以验证第二密文是否被非法分子篡改。
在本实施例中,身份证31通过公安部预置的算法对第一认证因子进行处理得到第一认证数据,例如,身份证31可以利用安全密钥对第一认证因子进行加密得到第一认证数据;或者身份证31利用身份证31的安全密钥对第一认证因子进行MAC(MessageAuthentication Code,消息认证码)计算得到MAC值,并将该MAC值作为第一认证数据。其中,身份证31的安全密钥是预先内置在合法的身份证31中的,只有合法的身份证31才具有该安全密钥。
在本实施例中,读卡终端32通过非接触接口向身份证31发送第一认证因子,并通过非接触接口接收身份证31发送的第一认证数据,其中,非接触接口可以是RF射频模块。本实施例中的读卡终端32与身份证31之间的数据均是通过非接触接口进行通信传输,下面涉及到读卡终端32与身份证31之间的数据发送将不再赘述具体实施方式。
在本实施例中,对第一认证数据进行安全处理包括:利用读卡终端32的会话密钥对第一认证数据进行加密,得到第三密文,以及利用读卡终端32的第一私钥对第三密文进行签名,得到第三签名值,第三数据包包括第三密文和第三签名值。具体的,读卡终端32接收身份证31发送的第一认证数据后,利用读卡终端32的会话密钥对第一认证数据进行加密,得到第三密文,以及利用读卡终端32的第一私钥对第三密文进行签名,得到第三签名值,并将包括第三密文和第三签名值的第三数据包发送至认证验证端331。通过对第一认证数据进行加密,可以保证第一认证数据在网络传输中的安全性,通过对第三密文进行签名,可以防止第三密文被非法分子篡改。
在本实施例中,对第三数据包进行安全验证,包括:利用读卡终端32的第一证书对第三签名值进行签名验证,并在对第三签名值进行签名验证通过后,利用认证验证端331的会话密钥对第三密文进行解密。具体的,认证验证端331接收第三数据包后,利用读卡终端32的第一证书中的第一公钥对第三数据包中的第三签名值进行签名验证,并在对第三签名值进行签名验证通过后,利用认证验证端331的会话密钥对第三数据包中的第三密文进行解密,得到第一认证数据。通过对第三签名值进行签名验证,可以验证第三密文是否被非法分子篡改。
在本实施例中,身份证31制作过程中内置安全密钥,在认证验证端331中可以存储与身份证31的安全密钥相同的认证验证端331的安全密钥,当然,认证验证端331也可使用相同的预设算法对预设信息进行计算得到安全密钥。认证验证端331的安全密钥是与身份证基本信息对应的。
在本实施例中,认证验证端331通过公安部预置的算法对第一认证数据进行认证,例如,认证验证端331可以利用认证验证端331的安全密钥对接收到的第一认证数据进行解密,得到认证因子,并比较解密得到的认证因子与自身生成的第一认证因子是否相同,如果相同,则对第一认证数据进行验证通过。当然,认证验证端331也可以利用认证验证端331的安全密钥对自身生成的第一认证因子进行加密得到认证数据,并比较加密得到的认证数据与接收到的第一认证数据是否相同,如果相同,则对第一认证数据进行验证通过。或者,认证验证端331利用认证验证端331的安全密钥对自身生成的第一认证因子进行MAC计算得到MAC值,并比较该计算得到的MAC值与第一认证数据是否相同,如果相同,则对第一认证数据进行验证通过。如果认证验证端331对第一认证数据进行验证通过,则该身份证31是合法的身份证31,认证验证端331通过对第一认证数据进行验证确认了身份证31的合法性。
在本实施例中,认证验证端331在对第一认证数据进行认证通过后,生成认证因子申请请求,该认证因子申请请求用于请求身份证31生成第二认证因子以便身份证31验证认证验证端331的合法性。
在本实施例中,对认证因子申请请求进行安全处理,得到认证因子申请请求数据包,包括:利用认证验证端331的会话密钥对认证因子申请请求进行加密,生成认证因子申请请求密文,并利用认证验证端331的私钥对认证因子申请请求密文进行签名,得到认证因子申请请求签名值,认证因子申请请求数据包包括认证因子申请请求密文和认证因子申请请求签名值。具体的,认证验证端331生成认证因子申请请求后,利用认证验证端331的会话密钥对认证因子申请请求进行加密,生成认证因子申请请求密文,并利用认证验证端331的私钥对认证因子申请请求密文进行签名,得到认证因子申请请求签名值,并将包括认证因子申请请求密文和认证因子申请请求签名值的认证因子申请请求数据包发送至读卡终端32。通过对认证因子申请请求加密可以保证认证因子申请请求在网络传输中的安全,通过对认证因子申请请求密文进行签名可以防止非法分子篡改认证因子申请请求密文。
在本实施例中,对认证因子申请请求数据包进行安全验证,包括:利用认证验证端331的证书对认证因子申请请求签名值进行签名验证,并在对认证因子申请请求签名值进行签名验证通过后,利用读卡终端32的会话密钥对认证因子申请请求密文进行解密;具体的,读卡终端32接收认证因子申请请求数据包后,利用认证验证端331的证书中的公钥对认证因子申请请求数据包中的认证因子申请请求签名值进行签名验证,并在对认证因子申请请求签名值进行签名验证通过后,利用读卡终端32的会话密钥对认证因子申请请求密文进行解密,得到认证因子申请请求。通过对认证因子申请请求签名值进行签名验证,可以验证认证因子申请请求密文是否被非法分子篡改。
在本实施例中,读卡终端32得到认证因子申请请求后,将认证因子申请请求发送至身份证31。身份证31获取认证因子申请请求后,生成第二认证因子,并将第二认证因子发送至读卡终端32。读卡终端32接收身份证31发送的第二认证因子,获取第二认证因子。该第二认证因子可以用来验证认证验证端331的合法性。
在本实施例中,对第二认证因子进行安全处理,得到第四数据包,包括:利用读卡终端32的会话密钥对第二认证因子进行加密,得到第四密文,以及利用读卡终端32的第一私钥对第四密文进行签名,得到第四签名值,第四数据包包括第四密文和第四签名值。具体的,读卡终端32接收身份证31发送的第二认证因子,利用读卡终端32的会话密钥对第二认证因子进行加密,得到第四密文,以及利用读卡终端32的第一私钥对第四密文进行签名,得到第四签名值,并将包括第四密文和第四签名值的第四数据包发送至认证验证端331。通过对第二认证因子进行加密,可以保证第二认证因子在网络传输中的安全性,通过对第四密文进行签名,可以防止第四密文被非法分子篡改。
在本实施例中,对第四数据包进行安全验证,包括:利用读卡终端32的第一证书对第四签名值进行签名验证,并在对第四签名值进行签名验证通过后,利用认证验证端331的会话密钥对第四密文进行解密。具体的,认证验证端331接收第四数据包后,利用读卡终端32的第一证书中的第一公钥对第四数据包中的第四签名值进行签名验证,并在对第四签名值进行签名验证通过后,利用认证验证端331的会话密钥对第四密文进行解密,得到第二认证因子。通过对第四签名值进行签名验证,可以验证第四密文是否被非法分子篡改。
在本实施例中,认证验证端331通过公安部预置的算法对第二认证因子进行处理生成第二认证数据,例如,认证验证端331利用安全密钥对第二认证因子进行加密后生成第二认证数据;或者认证验证端331利用认证验证端331的安全密钥对第二认证因子进行MAC计算得到MAC值,并将该MAC值作为第二认证数据。其中,认证验证端331的安全密钥可以是预先内置在合法的认证验证端331中的,只有合法的认证验证端331才具有该安全密钥。当然,认证验证端331的安全密钥也可以是认证验证端331利用预设算法对预设信息计算得到的,只有合法的认证验证端331才能计算得到该安全密钥。
在本实施例中,对第二认证数据进行安全处理,得到第五数据包,包括:利用认证验证端331的会话密钥对第二认证数据进行加密,得到第五密文,以及利用认证验证端331的私钥对第五密文进行签名,得到第五签名值,第五数据包包括第五密文和第五签名值。具体的,认证验证端331生成第二认证数据后,利用认证验证端331的会话密钥对第二认证数据进行加密,得到第五密文,以及利用认证验证端331的私钥对第五密文进行签名,得到第五签名值,并将包括第五密文和第五签名值的第五数据包发送至读卡终端32。通过对第二认证数据进行加密,可以保证第二认证数据在网络传输中的安全,另外,通过对第五密文进行签名,可以防止非法分子篡改第五密文。
在本实施例中,对第五数据包进行安全验证,包括:利用认证验证端331的证书对第五签名值进行签名验证,并在对第五签名值进行签名验证通过后,利用读卡终端32的会话密钥对第五密文进行解密。具体的,读卡终端32接收第五数据包后,利用认证验证端331的证书中的公钥对第五签名值进行签名验证,并在对第五签名值进行签名验证通过后,利用读卡终端32的会话密钥对第五密文进行解密,得到第二认证数据。通过对第五签名值进行签名验证,可以验证第五密文是否被非法分子篡改。
在本实施例中,读卡终端32解密得到第二认证数据后,向身份证31发送第二认证数据。身份证31接收第二认证数据,并对第二认证数据进行认证,具体的,身份证31通过公安部预设的算法对第二认证数据进行认证,例如,身份证31可以利用身份证31的安全密钥对应的解密密钥对接收到的第二认证数据进行解密,得到认证因子,并比较解密得到的认证因子与自身生成的第二认证因子是否相同,如果相同,则对第二认证数据进行验证通过。当然,身份证31也可以利用身份证31的安全密钥对自身生成的第二认证因子进行加密得到认证数据,并比较加密得到的认证数据与接收到的第二认证数据是否相同,如果相同,则对第二认证数据进行验证通过。或者,身份证31利用身份证31的安全密钥对自身生成的第二认证因子进行MAC计算得到MAC值,并比较该计算得到的MAC值与第二认证数据是否相同,如果相同,则对第二认证数据进行验证通过。身份证31对第二认证数据进行验证通过,身份证31通过对第二认证数据进行验证确认了认证验证端331的合法性。
在本实施例中,通过第一认证因子确认了身份证31的合法性,通过第二认证因子确认了认证验证端331的合法性。双向认证通过后,身份证31才向读卡终端32发送身份证31数据密文,其中,身份证31数据密文一般是居民身份证31号、姓名、照片、年龄、住址、卡片使用年限和/或指纹等数据的密文。
在本实施例中,对身份证31数据密文进行安全处理得到第六数据包,包括:利用读卡终端32的会话密钥对身份证31数据密文进行加密,得到第六密文,以及利用读卡终端32的第一私钥对第六密文进行签名,得到第六签名值,第六数据包包括第六密文和第六签名值。具体的,身份证31对第二次认证数据进行认证通过后,向读卡终端32发送身份证31数据密文。读卡终端32接收身份证31发送的身份证31数据密文,利用读卡终端32的会话密钥对身份证31数据密文进行加密,得到第六密文,以及利用读卡终端32的第一私钥对第六密文进行签名,得到第六签名值,并将包括第六密文和第六签名值的第六数据包发送至认证验证端331。通过对身份证31数据密文进行加密,可以保证身份证31数据密文在传输过程中的安全性,另外,对第六密文进行签名,可以防止非法分子篡改第六密文。
在本实施例中,身份证31数据密文所包括的信息可以通过一个数据包一次发送给认证验证端331,当然,身份证31数据密文所包括的信息也可以通过多个数据包分多次发送给认证验证端331。
在本实施例中,对第六数据包进行安全验证,包括:利用读卡终端32的第一证书对第六签名值进行签名验证,并在对第六签名值进行签名验证通过后,利用认证验证端331的会话密钥对第六密文进行解密。具体的,认证验证端331接收第六数据包后,利用读卡终端32第一证书中的第一公钥对第六签名值进行签名验证,并在对第六签名值进行签名验证通过后,利用认证验证端331的会话密钥对第六密文进行解密,得到身份证31数据密文。通过对第六签名值进行签名验证,可以验证第六密文是否被非法分子篡改。
在本实施例中,认证验证端331解密得到身份证31数据密文后,利用认证验证端331中设置的可以对从身份证31中读取的密文数据进行解密的模块对身份证31数据密文进行解密,得到身份证31数据明文。
在本实施例中,对身份证31数据明文进行安全处理,得到第七数据包,包括:利用认证验证端331的会话密钥对身份证31数据明文进行加密,得到第七密文,以及利用认证验证端331的私钥对第七密文进行签名,得到第七签名值,第七数据包包括第七密文和第七签名值。具体的,认证验证端331解密得到身份证31数据明文后,利用认证验证端331的会话密钥对身份证31数据明文进行加密,得到第七密文,以及利用认证验证端331的私钥对第七密文进行签名,得到第七签名值,并将包含第七密文和第七签名值的第七数据包发送至读卡终端32。通过对身份证31数据明文进行加密,可以保证身份证31数据明文在传输中的安全性,另外,对第七密文进行签名,可以防止非法分子篡改第七密文。
在本实施例中,对第七数据包进行安全验证,包括:利用认证验证端331的证书对第七签名值进行签名验证,并在对第七签名值进行签名验证通过后,利用读卡终端32的会话密钥对第七密文进行解密。具体的,读卡终端32接收第七数据包后,利用认证验证的证书中的公钥对第七签名值进行签名验证,并在对第七签名值进行签名验证通过后,利用读卡终端32的会话密钥对第七密文进行解密,得到身份证31数据密文。
在本实施例中,身份证31数据明文一般是居民身份证31号、姓名、照片、年龄、住址、卡片使用年限和/或指纹等数据的明文。作为本实施例的一种可选实施方式,读卡终端32解密得到身份证31数据明文后,可直接通过读卡终端32显示身份证31数据明文。当然,读卡终端32也可将身份证31数据明文发送至上位机,由上位机显示身份证31数据明文。
通过上述流程,身份证31和云认证平台33中的认证验证端331通过第一认证因子和第二认证因子的交互完成了双向认证,认证验证端331对身份证31数据密文进行解密以得到身份证31数据明文,并发送给读卡终端32,以完成身份证31的读取。但是,在启动读取身份证31之前,还需要先进行寻卡以建立身份证31与认证验证端331之间的通信链路,具体的寻卡流程包括以下两种方式之一:
方式一:
读卡终端32,还用于利用认证加密密钥对寻卡请求数据进行加密,得到寻卡请求数据密文,利用读卡终端32的第一私钥对寻卡请求数据密文进行签名,得到寻卡请求签名值,并向认证验证端331发送寻卡请求,寻卡请求包括寻卡请求数据密文、寻卡请求签名值、读卡终端32的第一证书和读卡终端32的第二证书;认证验证端331,还用于接收寻卡请求,并利用读卡终端32的第一证书对寻卡请求签名值进行签名验证,并在对寻卡请求签名值进行签名验证通过后,利用认证解密密钥对寻卡请求数据密文进行解密,得到寻卡请求数据;认证验证端331,还用于生成会话密钥,并利用会话密钥对寻卡请求响应数据进行加密,得到寻卡请求响应数据密文,并利用读卡终端32的第二证书对会话密钥进行加密,得到会话密钥密文,并利用认证验证端331的私钥对寻卡请求响应数据密文和会话密钥密文进行签名,得到寻卡请求响应签名值,并向读卡终端32发送寻卡请求响应,寻卡请求响应包括:寻卡请求响应数据密文、会话密钥密文、寻卡请求响应签名值和认证验证端331的证书,其中,认证验证端331采用生成的会话密钥作为认证验证端331的会话密钥;读卡终端32,还用于接收寻卡请求响应,并利用认证验证端331的证书对寻卡请求响应签名值进行验签,并在对寻卡请求响应签名值进行验签通过后,利用读卡终端32的第二私钥对会话密钥密文进行解密,得到会话密钥,并利用会话密钥对寻卡请求响应数据密文进行解密,得到寻卡请求响应数据,其中,读卡终端32采用对会话密钥密文解密得到的会话密钥作为读卡终端32的会话密钥。
具体的:读卡终端32通过其RF射频模块每间隔一段时间向外发送寻卡指令,身份证31接收到该寻卡指令后,向读卡终端32发送寻卡确认数据,读卡终端32接收到身份证31发送的寻卡确认数据后,读卡终端32向认证验证端331发送寻卡请求。其中,寻卡请求中的寻卡请求数据密文是读卡终端32在收到身份证31发送的寻卡确认数据后,利用认证加密密钥对寻卡请求数据进行加密生成的。利用认证加密密钥对寻卡请求数据加密后传输至认证验证端331可以保证寻卡请求数据在网络传输中的安全。寻卡请求中的读卡终端32的第一证书至少包括读卡终端32的第一公钥,读卡终端32的第二证书至少包括读卡终端32的第二公钥,读卡终端32的第一证书中的第一公钥与第二证书中的第二公钥可以相同,也可以不同,本实施例不做限定,读卡终端32的第一私钥与读卡终端32的第一公钥是一对非对称密钥对,用于对读卡终端32向认证验证端331传输的数据进行签名和验签,读卡终端32的第二公钥与读卡终端32的第二私钥是一对非对称密钥对,用于对会话密钥进行加解密运算。
其中,认证解密密钥与认证加密密钥为相同的密钥,即对称密钥,预先内置在认证验证端331和读卡终端32中,读卡终端32利用该对称密钥对读卡终端32首次发送给认证验证端331的数据进行加密,认证验证端331利用该对称密钥对认证验证端331首次接收到读卡终端32发送的数据进行解密,保证读卡终端32与认证验证端331首次传输数据的安全性。可选的,认证加密密钥和认证解密密钥保存在密钥数据库中,认证验证端331可以从密钥数据库中读取该认证解密密钥,并保存在认证验证端331本地。读卡终端32也可以从密钥数据库中读取该认证加密密钥,并保存在读卡终端32本地。
可选的,认证验证端331接收到寻卡请求后,利用根证书对接收到的读卡终端32的第一证书和读卡终端32的第二证书进行验证,以防止非法分子篡改读卡终端32第一证书中的第一公钥和读卡终端32第二证书中的第二公钥,实现对读卡终端32的安全认证,提高双方交互的安全性。
具体的,认证验证端331解密得到寻卡请求数据后,生成寻卡请求响应数据,并生成会话密钥,,认证验证端331采用生成的会话密钥作为认证验证端331的会话密钥,其中,认证验证端331的会话密钥可以为一个或一串随机数,或者可以为一个或一串随机字符,或者一串随机数和随机字符的任意组合。利用会话密钥对寻卡请求响应数据进行加密,保证了寻卡请求响应数据的在网络传输中的安全性。另外,会话密钥作为随机产生的密钥,不易被非法分子窃取。
本实施例中,除读卡终端32与认证验证端331首次传输的数据使用认证加密密钥进行加密之外,后续读卡终端32与认证验证端331进行传输的数据可以通过读卡终端32的会话密钥或认证验证端331的会话密钥进行加密,以避免认证加密密密钥被破解导致数据传输安全性降低。由于读卡终端32的会话密钥和认证验证端331的会话密钥采用随机数的形式,每次传输的数据采用的随机数均不同,进一步可以提高读卡终端32和认证验证端331之间数据传输的安全性。
另外,认证验证端331利用读卡终端32的第二证书中的公钥对会话密钥进行加密,得到会话密钥密文,保证了会话密钥在网络传输中的安全性。认证验证端331利用自身存储的私钥对寻卡请求响应密文和会话密钥进行签名,可以防止非法分子篡改寻卡请求响应密文和会话密钥。
另外,认证验证端331的证书中包括认证验证端331的公钥,认证验证端331的私钥与认证验证端331的公钥是一对非对称密钥对,用于对从认证验证端331向读卡终端32中传输的数据进行签名和验签。可选的,读卡终端32接收到寻卡请求响应后,利用根证书对接收到的认证验证端331的证书进行验证,以防止非法分子篡改认证验证端331的证书中的公钥,实现对认证验证端331的安全认证,提高双方交互的安全性。
作为一种可选的方式,寻卡请求数据还包括时间戳和/或单次认证数据,寻卡请求中还包括读卡终端32的标识。其中,单次认证标识包括读卡终端32中的计数器产生的计数值和/或随机因子。当单次认证标识为计数器产生的计数值时,读卡终端32每执行一次身份证31信息读取操作,计数器会产生一个计数值,用于对发送出的第一数据包进行计数,例如,读卡终端32读取身份证A时,计数器产生计数值1,下次读取身份证B时,计数器产生计数值2,以此类推,当然具体的计数值形式不限于此。当单次认证标识为随机因子时,随机因子可以为一个或一串随机数,或者可以为一个或一串随机字符,或者一串随机数和随机字符的任意组合。读卡终端32的标识可以为读卡终端32的序列号,当然,读卡终端32的标识只要是可以唯一表示读卡终端32的标识即可,并不局限于读卡终端32的序列号。
另外,如图4提供另一种身份证31读取系统结构示意图,云认证平台33中除了包括认证验证端331之外,还包括调度装置332。
可选的,读卡终端32并不是直接将寻卡请求发送至云认证平台33中的认证验证端331,而是先将寻卡请求发送给调度装置332,调度装置332判断寻卡请求中的读卡终端32的标志是否在黑名单内,如果在黑名单内,则结束身份证31读取流程;否则,调度装置332根据各个认证验证端331的处理能力,决定将寻卡请求发送到哪个认证验证端331进行处理,调度装置332再将寻卡请求发送给认证验证端331。通过调度装置332对第一数据包进行分流处理,可以防止单点故障。
可选的,读卡终端32将寻卡请求发送给调度装置332,调度装置332选中认证验证端331后,将选中的认证验证端331的端口号发送给读卡终端32。具体的,有以下实施方式:方式一:调度装置332选中认证验证端331的端口号后,直接将端口号发送给读卡终端32;方式二:调度装置332将端口号携带在寻卡请求响应中发送给读卡终端32;方式三:调度装置332将端口号携带在寻卡请求中发送至认证验证端331,认证验证端331再将端口号携带在寻卡请求响应中直接发送给读卡终端32。
可选的,读卡终端32向云认证平台33发送数据时,除了读卡终端32第一次向云认证平台33发送数据时需要由调度装置332分配认证验证端331,后续向云认证平台33发送的数据均可直接发送至端口号对应的认证验证端331。当然,后续向云认证平台33发送的数据也可通过调度装置332做相应处理(例如签名验证、转发)后发送至认证验证端331,本实施例不做具体限定。
可选的,认证验证端331可以直接将寻卡请求响应发送至读卡终端32;也可将寻卡请求响应发送至调度装置332后,调度装置332再将寻卡请求响应发送至读卡终端32。
可选的,调度装置332接收到寻卡请求并判断读卡终端32的标识不在黑名单后,利用根证书对接收到的读卡终端32的第一证书和读卡终端32的第二证书进行验证,并在验证通过后,调度装置332利用读卡终端32的第一证书对寻卡请求签名值进行签名验证,并在对寻卡请求签名值进行签名验证通过后,将寻卡请求中的寻卡请求数据密文和读卡终端32的第二证书发送至认证验证端331。
可选的,当调度装置332已经对寻卡请求签名值进行验签后,认证验证端331只接收到调度装置332发送的寻卡请求数据密文和读卡终端32的第二证书时,认证验证端331只利用认证解密密钥对寻卡请求数据密文进行解密以得到寻卡请求数据。
方式二:
读卡终端32和认证验证端331先协商会话密钥以进一步保证寻卡请求数据传输的安全,具体协商会话密钥的过程为:读卡终端32利用认证加密密钥对会话密钥请求数据进行加密,得到会话密钥请求数据密文,利用读卡终端32的第一私钥对会话密钥请求数据密文进行签名,得到会话密钥请求签名值,并向认证验证端331发送会话密钥请求,会话密钥请求包括会话密钥请求数据密文、会话密钥请求签名值、读卡终端32的第一证书和读卡终端32的第二证书;认证验证端331接收会话密钥请求,并利用读卡终端32的第一证书对会话密钥请求签名值进行签名验证,并在对会话密钥请求签名值进行签名验证通过后,利用认证解密密钥对会话密钥请求数据密文进行解密,得到会话密钥请求数据;认证验证端331生成会话密钥,并利用读卡终端32的第二证书对会话密钥进行加密,得到会话密钥密文,并利用认证验证端331的私钥对会话密钥密文进行签名,得到会话密钥密文签名值,并向读卡终端32发送会话密钥请求响应,会话密钥请求响应包括:会话密钥密文、会话密钥密文签名值和认证验证端331的证书,其中认证验证端331采用生成的会话密钥作为认证验证端331的会话密钥;读卡终端32接收会话密钥请求响应,并利用认证验证端331的证书对会话密钥密文签名值进行验签,并在对会话密钥密文签名值进行验签通过后,利用读卡终端32的第二私钥对会话密钥密文进行解密,得到会话密钥,其中,读卡终端32采用对会话密钥密文解密得到的会话密钥作为读卡终端32的会话密钥。
作为本实施例的一种可选实施方式,在读卡终端32利用会话密钥对身份证基本信息进行加密之前,读卡终端32和认证验证端331还可通过以下方式协商会话密钥:读卡终端32,还用于获取第一随机数,并利用读卡终端32的第一私钥对第一随机数进行签名,得到第一随机数签名值,并向认证验证端331发送第一随机数、第一随机数签名值和读卡终端32第一证书;认证验证端331,还用于接收第一随机数、第一随机数签名值和读卡终端32的第一证书,并利用根证书对读卡终端32的第一证书进行验证,并在验证通过后,利用读卡终端32的第一证书对第一随机数签名值进行签名验证,并在对第一随机数签名值进行签名验证通过后,生成第二随机数,根据第一随机数和第二随机数生成认证验证端331的会话密钥;并利用读卡终端32的第一证书对第一随机数和第二随机数进行加密,得到第八密文,以及利用认证验证端331的私钥对第八密文进行签名,得到第八签名值;并向读卡终端32发送第八数据包,第八数据包包括:第八密文、第八签名值和认证验证端331的证书;读卡终端32,还用于接收第八数据包;利用认证验证端331的证书对第八签名值进行签名验证,并在对第八签名值进行签名验证通过后,利用读卡终端32的第一私钥对第八密文进行解密,得到第一随机数和第二随机数;并对第一随机数进行验证,验证通过后,根据第一随机数和第二随机数生成读卡终端32的会话密钥。读卡终端32通过对第一随机数进行验证、对第八签名值进行签名验证,可以保证认证验证端331和读卡终端32生成会话密钥的第一随机数和第二随机数相同,保证生成的认证验证端331的会话密钥和读卡终端32的会话密钥是一对对称密钥。
在寻卡流程之前已经协商好会话密钥时,读卡终端32和认证验证端331可以直接利用读卡终端32的会话密钥和认证验证端331的会话密钥对寻卡请求数据和寻卡请求响应数据进行加解密,后续寻卡流程为:读卡终端32利用读卡终端的会话密钥对寻卡请求数据进行加密,得到寻卡请求数据密文,利用读卡终端32的第一私钥对寻卡请求数据密文进行签名,得到寻卡请求签名值,并向认证验证端331发送寻卡请求,寻卡请求包括寻卡请求数据密文和寻卡请求签名值;认证验证端331接收寻卡请求,并利用读卡终端32的第一证书对寻卡请求签名值进行签名验证,并在对寻卡请求签名值进行签名验证通过后,利用认证验证端331的会话密钥对寻卡请求数据密文进行解密,得到寻卡请求数据;认证验证端331利用认证验证端331的会话密钥对寻卡请求响应数据进行加密,得到寻卡请求响应数据密文,并利用认证验证端331的私钥对寻卡请求响应数据密文进行签名,得到寻卡请求响应签名值,并向读卡终端32发送寻卡请求响应,寻卡请求响应包括:寻卡请求响应数据密文和寻卡请求响应签名值;读卡终端32利用认证验证端331的证书对接收的寻卡请求响应签名值进行验签,并在对寻卡请求响应签名值验签通过后,利用读卡终端32的会话密钥对接收到的寻卡请求响应数据密文进行解密,得到寻卡请求响应数据。
完成了寻卡流程后,还包括选卡流程,通过选卡流程认证验证端331可以确认是对哪一张身份证31进行的读取操作。在选卡过程中:读卡终端32,还用于在得到寻卡请求响应数据后,向身份证31发送选卡指令;身份证31,还用于接收选卡指令,并向读卡终端32发送选卡确认数据,其中选卡确认数据至少包括身份证31的序列号;读卡终端32,还用于接收身份证31发送的选卡确认数据,并利用读卡终端32的会话密钥对选卡请求数据进行加密,得到选卡请求数据密文,利用读卡终端32的第一私钥对选卡请求数据密文进行签名,得到选卡请求签名值,并向认证验证端331发送选卡请求,选卡请求包括选卡请求数据密文和选卡请求签名值;认证验证端331,还用于接收选卡请求,并利用读卡终端32的第一证书对选卡请求签名值进行签名验证,并在对选卡请求签名值进行签名验证通过后,利用认证验证端331的会话密钥对选卡请求数据密文进行解密,得到选卡请求数据;认证验证端331,还用于利用认证验证端331的会话密钥对选卡请求响应数据进行加密,得到选卡请求响应数据密文,并利用认证验证端331的私钥对选卡请求响应数据密文进行签名,得到选卡请求响应签名值,并向读卡终端32发送选卡请求响应,选卡请求响应包括:选卡请求响应数据密文和选卡请求响应签名值;读卡终端32,还用于利用认证验证端331的证书对接收的选卡请求响应签名值进行验签,并在对选卡请求响应签名值验签通过后,利用读卡终端32的会话密钥对接收到的选卡请求响应数据密文进行解密,得到选卡请求响应数据;读卡终端32,还利用读卡终端32的会话密钥对选卡确认数据进行加密得到选卡确认数据密文,并利用读卡终端32的第一私钥对选卡确认数据密文进行签名,得到选卡确认数据签名值,并向认证验证端331发送选卡确认数据密文和选卡确认数据签名值;认证验证端331,还用于接收选卡确认数据密文和选卡确认数据签名值,利用读卡终端32的第一证书对选卡数据签名值进行签名验证,并在对选卡数据签名值进行签名验证通过后,利用读卡终端32的会话密钥对选卡确认数据密文进行解密,得到选卡确认数据。
具体的,一个身份证31具有一个安全密钥,不同的身份证31,对应的安全密钥也不相同,认证验证端331中存储有多个身份证31的安全密钥,认证验证端331得到的选卡确认数据中包括身份证31的序列号,认证验证端331获得身份证31的序列号后,可根据身份证31的序列号查找该身份证31对应的安全密钥,以便后续使用该安全密钥实现身份证31与认证验证端331的双向认证。
需要说明的是,传统的身份证读卡终端一般设置有RF射频模块和验证安全控制模块,读卡终端可通过RF射频模块从身份证中读取身份证数据密文,验证安全控制模块实现对身份证数据密文的解密,但是读卡终端集成有验证安全控制模块的成本非常高,对大量需要身份证读卡终端的机构(例如银行、车站)来说成本很高。
本实施例中,读卡终端并不设置有验证安全控制模块,而是在云端的云认证平台中的认证验证端设置可以对从身份证读取的密文数据实现解密的模块,任何用户均可通过有线或无线网络接入到云端的云认证平台中的认证验证端以实现对身份证的读取,大大降低了用户的实现成本,特别是在银行、车站、保险等需要执行身份证信息读取操作的行业,只需部署相应数量的只具有RF射频模块的读卡终端即可,无需再次大量部署验证安全控制模块,也无需大量设置验证安全控制模块与只具有RF射频模块之间的对应关系,简化了实现方案。另外,读卡终端和认证验证端之间传输的数据都进行了安全处理,保证了读卡终端和认证验证端之间数据传输的安全。
实施例4
本实施例提供一种身份证读取系统。
本实施例中的身份证读取系统包括:读卡终端42和云认证平台43,其中,云认证平台43中包括认证端431和验证端432。为了更方便描述本实施例中身份证读取系统的工作流程,如图5所示,本实施例中的身份证读取系统还包括身份证41,其中,认证端431是可以是安全芯片,用于存储数字证书、私钥、会话密钥、认证解密密钥以及进行加解密运算,保证数据传输的安全性。验证端432即是验证安全控制模块,用以对从身份证读取的密文数据进行解密以得到可以进行显示的身份证数据明文。读卡终端42,用于接收身份证41发送的身份证基本信息,对身份证基本信息进行安全处理,得到第一数据包;并向认证端431发送第一数据包;认证端431,用于接收第一数据包,对第一数据包进行安全验证,在安全验证通过后得到身份证基本信息;并向验证端432发送身份证基本信息;验证端432,用于接收身份证基本信息,并获取第一认证因子,并将第一认证因子发送至认证端431;认证端431,还用于接收第一认证因子,并对第一认证因子进行安全处理,得到第二数据包;并向读卡终端42发送第二数据包;读卡终端42,还用于接收第二数据包;对第二数据包进行安全验证,在安全验证通过后得到第一认证因子,并向身份证41发送第一认证因子;接收身份证41发送的第一认证数据,对第一认证数据进行安全处理,得到第三数据包;并向认证端431发送第三数据包,其中,第一认证数据为身份证41对第一认证因子进行处理得到;认证端431,还用于接收第三数据包;对第三数据包进行安全验证,在安全验证通过后得到第一认证数据;并向验证端432发送第一认证数据;验证端432,还用于接收第一认证数据,并对第一认证数据进行认证,并在认证通过后生成认证因子申请请求,并向认证端431发送认证因子申请请求;认证端431,还用于接收认证因子申请请求,并对认证因子申请请求进行安全处理,得到认证因子申请请求数据包,并向读卡终端42发送认证因子申请请求数据包;读卡终端42,还用于接收认证因子申请请求数据包,对认证因子申请请求数据包进行安全验证,在安全验证通过后得到认证因子申请请求,并将认证因子申请请求发送至身份证41;接收身份证41发送的第二认证因子,对第二认证因子进行安全处理,得到第四数据包;并向认证端431发送第四数据包;认证端431,还用于接收第四数据包;并对第四数据包进行安全验证,在安全验证通过后得到第二认证因子;并向验证端432发送第二认证因子;验证端432,还用于接收第二认证因子,并对第二认证因子进行处理生成第二认证数据;并向认证端431发送第二认证数据;认证端431,还用于接收第二认证数据,并对第二认证数据进行安全处理,得到第五数据包;并向读卡终端42发送第五数据包;读卡终端42,还用于接收第五数据包;对第五数据包进行安全验证,在安全验证通过后得到第二认证数据,并向身份证41发送第二认证数据;接收身份证41发送的身份证41数据密文,对身份证41数据密文进行安全处理得到第六数据包;并向认证端431发送第六数据包,其中,身份证41数据密文为身份证41对第二认证数据进行认证,在认证通过后发送;认证端431,还用于接收第六数据包,对第六数据包进行安全验证,在安全验证通过后得到身份证41数据密文;并向验证端432发送身份证41数据密文;验证端432,还用于接收身份证41数据密文,并对身份证41数据密文进行解密,得到身份证41数据明文;并向认证端431发送身份证41数据明文;认证端431,还用于接收身份证41数据明文,并对身份证41数据明文进行安全处理,得到第七数据包;并向读卡终端42发送第七数据包;读卡终端42,还用于接收第七数据包,对第七数据包进行安全验证,在安全验证通过后得到身份证41数据明文。
在本实施例中,读卡终端42可以是读卡器,也可以是具有读卡功能的其它终端(例如集成有读卡功能的手机、集成有读卡功能的USBKEY等)。
在本实施例中,身份证基本信息可以是身份证41的序列号、用于指示身份证41中设置的应用的相关信息的应用数据、传输协议(例如,传输协议类型、比特数率、最大帧长度)等,读卡终端42可以直接识别该身份证基本信息,不需要公安部授权的安全控制模块进行解密。
在本实施例中,对身份证基本信息进行安全处理,得到第一数据包,包括:利用读卡终端42的会话密钥对身份证基本信息进行加密,得到第一密文,以及利用读卡终端42的第一私钥对第一密文进行签名,得到第一签名值,第一数据包包括第一密文和第一签名值。具体的,读卡终端42接收身份证41发送的身份证基本信息后,利用读卡终端42的会话密钥对身份证基本信息进行加密,得到第一密文,以及利用读卡终端42的第一私钥对第一密文进行签名,得到第一签名值,并把包括第一密文和第一签名值的第一数据包发送至认证端431。通过对身份证基本信息进行加密,可以保证身份证基本信息在网络传输中的安全,另外,利用读卡终端42的第一私钥对第一密文进行签名,可以防止非法分子篡改第一密文。
在本实施例中,读卡终端42的会话密钥也可以为一个或一串随机数,或者可以为一个或一串随机字符,或者一串随机数和随机字符的任意组合。读卡终端42的会话密钥用于对读卡终端42向认证端431发送的数据进行加密,以及用于对认证端431向读卡终端42发送的加密数据进行解密。
在本实施例中,读卡终端42利用读卡终端42的第一私钥对第一密文进行签名,得到第一签名值的具体实施方式为:读卡终端42利用HASH算法计算第一密文得到第一密文的摘要,并利用读卡终端42的第一私钥对第一密文的摘要进行加密,得到第一签名值。通过对第一密文进行签名可以防止非法分子篡改第一密文。需要说明的是,本实施例中的签名过程均可参见该实施方式,下面涉及到签名的过程将不再具体赘述。
在本实施例中,具有联网功能的读卡终端42可直接通过有线网络或无线网络向认证端431发送第一数据包,不具有联网功能的读卡终端42可利用上位机(例如手机、PAD(平板电脑)或PC等)通过有线网络或无线网络向认证端431发送第一数据包。可选的,读卡终端42可通过有线方式(例如,USB接口等)或无线方式(例如,WiFi,蓝牙等)与上位机实现通信连接。以下涉及到读卡终端42向认证端431传输数据时将不再赘述具体传输方式。
在本实施例中,对第一数据包进行安全验证,包括:利用读卡终端42的第一证书对第一签名值进行签名验证,并在对第一签名值进行签名验证通过后,利用认证端431的会话密钥对第一密文进行解密。具体的,认证端431接收第一数据包后,利用读卡终端42的第一证书中的第一公钥对第一签名值进行签名验证,并在对第一签名值进行签名验证通过后,利用认证端431的会话密钥对第一密文进行解密,得到身份证基本信息。通过对第一签名值进行签名验证,可以验证第一密文是否被非法分子篡改。
在本实施例中,认证端431的会话密钥也可以为一个或一串随机数,或者可以为一个或一串随机字符,或者一串随机数和随机字符的任意组合。认证端431的会话密钥与读卡终端42的会话密钥为一对对称密钥,认证端431的会话密钥用于对认证端431向读卡终端42发送的数据进行加密,以及用于对读卡终端42向认证端431发送的加密数据进行解密。
在本实施例中,在本实施例中,读卡终端42的第一证书至少包括读卡终端42的第一公钥,读卡终端42的第一公钥与读卡终端42的第一私钥是一对非对称密钥。
在本实施例中,认证端431利用读卡终端42的第一证书对第一签名值进行签名验证的具体实施方式为:认证端431利用读卡终端42的第一证书的公钥对接收到第一签名值进行解密,得到第一密文的摘要,并利用HASH算法对接收到的第一密文进行计算得到第一密文的摘要,并比对解密得到的第一密文的摘要与计算得到的第一密文的摘要是否相同,如果相同,则对第一签名值进行签名验证通过。当然,签名验证的过程并不一定由认证端431执行,也可能由云认证平台43中的其它装置(例如云认证平台43中的调度装置433)执行,例如,读卡终端42向调度装置433发送第一数据包,调度装置433执行对第一签名值的签名验证,在对第一签名值的签名验证通过后,调度装置433将第一密文发送给认证端431,由认证端431执行对第一密文的解密,又如,认证端431将第一签名发送给云认证平台43中的其他装置(例如调度装置433),由该其他装置执行对第一签名值的签名验证,在对第一签名值的签名验证通过后,该其他装置将签名验证结果发送给认证端431,由认证端431执行对第一密文的解密,具体的本实施例不做限定。本实施例中的签名验证的过程均可参见该实施方式,下面涉及到签名验证的过程将不再具体赘述,同样,下面涉及到认证端431执行签名验证的过程也均可由云认证平台43中的调度装置433执行。
在本实施例中,认证端431解密得到身份证基本信息后,将身份证基本信息发送至验证端432,验证端432接收到身份证基本信息后,获取第一认证因子,验证端432获取的第一认证因子可用来验证身份证41的合法性。
身份证基本信息身份证基本信息在本实施例中,对第一认证因子进行安全处理,得到第二数据包,包括:利用认证端431的会话密钥对第一认证因子进行加密,得到第二密文,以及利用认证端431的私钥对第二密文进行签名,得到第二签名值,第二数据包包括第二密文和第二签名值。具体的,认证端431接收第一认证因子后,利用认证端431的会话密钥对第一认证因子进行加密,得到第二密文,以及利用认证端431的私钥对第二密文进行签名,得到第二签名值,并将包括第二密文和第二签名值的第二数据包发送至读卡终端42。通过对第一认证因子进行加密,可以保证第一认证因子在网络传输中的安全,另外,通过对第二密文进行签名,可以防止非法分子篡改第二密文。
在本实施例中,如果读卡终端42具有联网功能,认证端431可以直接通过有线网络或无线网络向读卡终端42发送第二数据包;如果读卡终端42不具有联网功能,认证端431可以通过有线网络或无线网络向上位机发送第二数据包,上位机再将第二数据包传输至读卡终端42。以下涉及到认证端431向读卡终端42传输数据时将不再赘述具体传输方式。
作为本实施例的一种可选实施方式,认证端431并不是直接将第二数据包发送至读卡终端42,而是先将第二数据包发送至调度装置433,由调度装置433将第二数据包转发至读卡终端42。同样,以下涉及到认证端431向读卡终端42传输数据时,认证端431均可先将数据发送至调度装置433,再由调度装置433将数据转发至读卡终端42。
在本实施例中,对第二数据包进行安全验证,包括:利用认证端431的证书对第二签名值进行签名验证,并在对第二签名值进行签名验证通过后,利用读卡终端42的会话密钥对第二密文进行解密。具体的,读卡终端42接收第二数据包后,利用认证端431的证书中的公钥对第二签名值进行签名验证,并在对第二签名值进行签名验证通过后,利用读卡终端42的会话密钥对第二密文进行解密,得到第一认证因子。其中,认证端431的证书至少包括认证端431的公钥。通过对第二签名值进行签名验证,可以验证第二密文是否被非法分子篡改。
在本实施例中,身份证41通过公安部预置的算法对第一认证因子进行处理得到第一认证数据,例如,身份证41可以利用安全密钥对第一认证因子进行加密得到第一认证数据;或者身份证42可以利用安全密钥对第一认证因子进行MAC(Message AuthenticationCode,消息认证码)计算得到MAC值,并将该MAC值作为第一认证数据。其中,身份证41的安全密钥可以是预先内置在合法的身份证41中的,只有合法的身份证41才具有该安全密钥。
在本实施例中,对第一认证数据进行安全处理包括:利用读卡终端42的会话密钥对第一认证数据进行加密,得到第三密文,以及利用读卡终端42的第一私钥对第三密文进行签名,得到第三签名值,第三数据包包括第三密文和第三签名值。具体的,读卡终端42接收身份证41发送的第一认证数据后,利用读卡终端42的会话密钥对第一认证数据进行加密,得到第三密文,以及利用读卡终端42的第一私钥对第三密文进行签名,得到第三签名值,并将包括第三密文和第三签名值的第三数据包发送至认证端431。通过对第一认证数据进行加密,可以保证第一认证数据在网络传输中的安全性,通过对第三密文进行签名,可以防止第三密文被非法分子篡改。
在本实施例中,对第三数据包进行安全验证,包括:利用读卡终端42的第一证书对第三签名值进行签名验证,并在对第三签名值进行签名验证通过后,利用认证端431的会话密钥对第三密文进行解密。具体的,认证端431接收第三数据包后,利用读卡终端42的第一证书中的第一公钥对第三签名值进行签名验证,并在对第三签名值进行签名验证通过后,利用认证端431的会话密钥对第三密文进行解密,得到第一认证数据。通过对第三签名值进行签名验证,可以验证第三密文是否被非法分子篡改。
在本实施例中,身份证41制作过程中内置安全密钥,在验证端432中可以存储与身份证41的安全密钥相同的验证端432的安全密钥,当然,验证端432也可使用相同的预设算法对预设信息进行计算得到验证端432的安全密钥。验证端42的安全密钥是与身份证基本信息对应的。
在本实施例中,验证端432通过公安部预置的算法对第一认证数据进行认证,例如,验证端432可以利用验证端432的安全密钥对接收到的第一认证数据进行解密,得到认证因子,并比较解密得到的认证因子与自身生成的第一认证因子是否相同,如果相同,则对第一认证数据进行验证通过。当然,验证端432也可以利用验证端432的安全密钥对自身生成的第一认证因子进行加密得到认证数据,并比较加密得到的认证数据与接收到的第一认证数据是否相同,如果相同,则对第一认证数据进行验证通过。或者,认证端利用认证端的安全密钥对自身生成的第一认证因子进行MAC计算得到MAC值,并比较该计算得到的MAC值与第一认证数据是否相同,如果相同,则对第一认证数据进行验证通过。如果验证端432对第一认证数据进行验证通过,则该身份证41是合法的身份证41,验证端432通过对第一认证数据进行验证确认了身份证41的合法性。
在本实施例中,验证端432在对第一认证数据进行认证通过后,生成认证因子申请请求,该认证因子申请请求用于请求身份证41生成第二认证因子以便身份证41验证验证端432的合法性。
在本实施例中,对认证因子申请请求进行安全处理,得到认证因子申请请求数据包,包括:利用认证端431的会话密钥对认证因子申请请求进行加密,生成认证因子申请请求密文,并利用认证端431的私钥对认证因子申请请求密文进行签名,得到认证因子申请请求签名值,认证因子申请请求数据包包括认证因子申请请求密文和认证因子申请请求签名值。具体的,认证端431接收认证因子申请请求后,利用认证端431的会话密钥对认证因子申请请求进行加密,生成认证因子申请请求密文,并利用认证端431的私钥对认证因子申请请求密文进行签名,得到认证因子申请请求签名值,并将包括认证因子申请请求密文和认证因子申请请求签名值的认证因子申请请求数据包发送至读卡终端42。通过对认证因子申请请求加密可以保证认证因子申请请求在网络传输中的安全,通过对认证因子申请请求密文进行签名可以防止非法分子篡改认证因子申请请求密文。
在本实施例中,对认证因子申请请求数据包进行安全验证,包括:利用认证端431的证书对认证因子申请请求签名值进行签名验证,并在对认证因子申请请求签名值进行签名验证通过后,利用读卡终端42的会话密钥对认证因子申请请求密文进行解密。读卡终端42接收认证因子申请请求数据包后,利用认证端431的证书中的公钥对认证因子申请请求数据包中的认证因子申请请求签名值进行签名验证,并在对认证因子申请请求签名值进行签名验证通过后,利用读卡终端42的会话密钥对认证因子申请请求密文进行解密,得到认证因子申请请求。通过对认证因子申请请求签名值进行签名验证,可以验证认证因子申请请求密文是否被非法分子篡改。
在本实施例中,读卡终端42得到认证因子申请请求后,将认证因子申请请求发送至身份证41。身份证41获取认证因子申请请求后,生成第二认证因子,并将第二认证因子发送至读卡终端42。读卡终端42接收身份证41发送的第二认证因子,获取第二认证因子。该第二认证因子可以用来验证验证端432的合法性。
在本实施例中,对第二认证因子进行安全处理,得到第四数据包,包括:利用读卡终端42的会话密钥对第二认证因子进行加密,得到第四密文,以及利用读卡终端42的第一私钥对第四密文进行签名,得到第四签名值,第四数据包包括第四密文和第四签名值。具体的,读卡终端42接收身份证41发送的第二认证因子,利用读卡终端42的会话密钥对第二认证因子进行加密,得到第四密文,以及利用读卡终端42的第一私钥对第四密文进行签名,得到第四签名值,并将包括第四密文和第四签名值的第四数据包发送至认证端431。通过对第二认证因子进行加密,可以保证第二认证因子在网络传输中的安全性,通过对第四密文进行签名,可以防止第四密文被非法分子篡改。
在本实施例中,对第四数据包进行安全验证,包括:利用读卡终端42的第一证书对第四签名值进行签名验证,并在对第四签名值进行签名验证通过后,利用认证端431的会话密钥对第四密文进行解密。具体的,认证端431接收第四数据包后,认证端431接收第四数据包后,利用读卡终端42的第一证书中的第一公钥对第四数据包中的第四签名值进行签名验证,并在对第四签名值进行签名验证通过后,利用认证端431的会话密钥对第四密文进行解密,得到第二认证因子。通过对第四签名值进行签名验证,可以验证第四密文是否被非法分子篡改。
在本实施例中,验证端432接收第二认证因子后,验证端432通过公安部预置的算法对第二认证因子进行处理生成第二认证数据,例如,验证端432利用安全密钥对第二认证因子进行加密后生成第二认证数据;或者验证端432利用验证端432的安全密钥对第二认证因子进行MAC计算得到MAC值,并将该MAC值作为第二认证数据。其中,验证端432的安全密钥可以是预先内置在合法的验证端432中的,只有合法的验证端432才具有该安全密钥。当然,验证端432的安全密钥也可以是验证端432利用预设算法对预设信息计算得到的,只有合法的验证端432才能计算得到该安全密钥。
在本实施例中,对第二认证数据进行安全处理,得到第五数据包,包括:利用认证端431的会话密钥对第二认证数据进行加密,得到第五密文,以及利用认证端431的私钥对第五密文进行签名,得到第五签名值,第五数据包包括第五密文和第五签名值。具体的,认证端431接收第二认证数据后,利用认证端431的会话密钥对第二认证数据进行加密,得到第五密文,以及利用认证端431的私钥对第五密文进行签名,得到第五签名值,并将包括第五密文和第五签名值的第五数据包发送至读卡终端42。通过对第二认证数据进行加密,可以保证第二认证数据在网络传输中的安全,另外,通过对第五密文进行签名,可以防止非法分子篡改第五密文。
在本实施例中,对第五数据包进行安全验证,包括:利用认证端431的证书对第五签名值进行签名验证,并在对第五签名值进行签名验证通过后,利用读卡终端42的会话密钥对第五密文进行解密。具体的,读卡终端42接收第五数据包后,利用认证端431的证书中的公钥对第五签名值进行签名验证,并在对第五签名值进行签名验证通过后,利用读卡终端42的会话密钥对第五密文进行解密,得到第二认证数据。通过对第五签名值进行签名验证,可以验证第五密文是否被非法分子篡改。
在本实施例中,读卡终端42解密得到第二认证数据后,向身份证41发送第二认证数据。身份证41接收第二认证数据,并对第二认证数据进行认证,具体的,身份证41通过公安部预设的算法对第二认证数据进行认证,例如,身份证41可以利用身份证41内置的安全密钥对应的解密密钥对接收到的第二认证数据进行解密,得到认证因子,并比较解密得到的认证因子与自身生成的第二认证因子是否相同,如果相同,则对第二认证数据进行验证通过。当然,身份证41也可以利用身份证41的安全密钥对自身生成的第二认证因子进行加密得到认证数据,并比较加密得到的认证数据与接收到的第二认证数据是否相同,如果相同,则对第二认证数据进行验证通过。或者,身份证41利用身份证的安全密钥对自身生成的第二认证因子进行MAC计算得到MAC值,并比较该计算得到的MAC值与第二认证数据是否相同,如果相同,则对第二认证数据进行验证通过。身份证41对第二认证数据进行验证通过,说明验证端432是合法的验证端,身份证41通过对第二认证数据进行验证确认了验证端432的合法性。
在本实施例中,通过第一认证因子确认了身份证41的合法性,通过第二认证因子确认了验证端432的合法性。双向认证通过后,身份证41才向读卡终端42发送身份证41数据密文,其中,身份证41数据密文一般是居民身份证41号、姓名、照片、年龄、住址、卡片使用年限和/或指纹等数据的密文。
在本实施例中,对身份证41数据密文进行安全处理得到第六数据包,包括:利用读卡终端42的会话密钥对身份证41数据密文进行加密,得到第六密文,以及利用读卡终端42的第一私钥对第六密文进行签名,得到第六签名值,第六数据包包括第六密文和第六签名值。具体的,身份证41对第二次认证数据进行认证通过后,向读卡终端42发送身份证41数据密文。读卡终端42接收身份证41发送的身份证41数据密文,利用读卡终端42的会话密钥对身份证41数据密文进行加密,得到第六密文,以及利用读卡终端42的第一私钥对第六密文进行签名,得到第六签名值,并将包括第六密文和第六签名值的第六数据包发送至认证端431。通过对身份证41数据密文进行加密,可以保证身份证41数据密文在传输过程中的安全性,另外,对第六密文进行签名,可以防止非法分子篡改第六密文。
在本实施例中,身份证41数据密文所包括的信息可以通过一个数据包一次发送给认证端431,当然,身份证41数据密文所包括的信息也可以通过多个数据包分多次发送给认证端431。
在本实施例中,对第六数据包进行安全验证,包括:利用读卡终端42的第一证书对第六签名值进行签名验证,并在对第六签名值进行签名验证通过后,利用认证端431的会话密钥对第六密文进行解密。具体的,认证端431接收第六数据包后,利用读卡终端42第一证书中的第一公钥对第六签名值进行签名验证,并在对第六签名值进行签名验证通过后,利用认证端431的会话密钥对第六密文进行解密,得到身份证41数据密文。通过对第六签名值进行签名验证,可以验证第六密文是否被非法分子篡改。
在本实施例中,认证端431解密得到身份证41数据密文后,将身份证41数据密文发送至验证端432;验证端432利用验证端432中设置的可以对从身份证41中读取的密文数据进行解密的模块对身份证41数据密文进行解密,得到身份证41数据明文;验证端432将身份证41数据明文发送至认证端431。
在本实施例中,对身份证41数据明文进行安全处理,得到第七数据包,包括:利用认证端431的会话密钥对身份证41数据明文进行加密,得到第七密文,以及利用认证端431的私钥对第七密文进行签名,得到第七签名值,第七数据包包括第七密文和第七签名值。具体的,认证端431接收到验证端432发送的身份证41数据明文后,利用认证端431的会话密钥对身份证41数据明文进行加密,得到第七密文,以及利用认证端431的私钥对第七密文进行签名,得到第七签名值,并将包括第七密文和第七签名值的第七数据包发送至读卡终端42。通过对身份证41数据明文进行加密,可以保证身份证41数据明文在网络传输中的安全性,另外,通过对第七密文进行签名,可以防止非法分子篡改第七密文。
在本实施例中,对第七数据包进行安全验证,包括:利用认证端431的证书对第七签名值进行签名验证,并在对第七签名值进行签名验证通过后,利用读卡终端42的会话密钥对第七密文进行解密。具体的,读卡终端42接收到认证端431发送的第七数据包后,利用认证端431的证书中的公钥对第七数据包中的第七签名值进行签名验证,并在对第七签名值进行签名验证通过后,利用读卡终端42的会话密钥对第七密文进行解密,得到身份证41数据明文。通过对第七签名值进行签名验证,可以验证第七密文是否被非法分子篡改。
在本实施例中,身份证41数据明文一般是居民身份证41号、姓名、照片、年龄、住址、卡片使用年限、指纹等数据的明文。作为本实施例的一种可选实施方式,读卡终端42解密得到身份证41数据明文后,可直接通过读卡终端42显示身份证41数据明文。当然,读卡终端42也可将身份证41数据明文发送至上位机,由上位机显示身份证41数据明文。
但是,在启动读取身份证41之前,还需要先进行寻卡以建立身份证41与验证端432之间的通信链路。作为本实施例的一种可选实施方式,在读卡终端42获取第一认证因子之前,还包括寻卡流程,具体的寻卡流程包括以下两种方式之一:
方式一:
读卡终端42,还用于利用认证加密密钥对寻卡请求数据进行加密,得到寻卡请求数据密文,利用读卡终端42的第一私钥对寻卡请求数据密文进行签名,得到寻卡请求签名值,并向云认证平台43的认证端431发送寻卡请求,寻卡请求包括寻卡请求数据密文、寻卡请求签名值、读卡终端42的第一证书和读卡终端42的第二证书;认证端431,还用于接收寻卡请求,并利用读卡终端42的第一证书对寻卡请求签名值进行签名验证,并在对寻卡请求签名值进行签名验证通过后,利用认证解密密钥对寻卡请求数据密文进行解密,得到寻卡请求数据,向云认证平台43的验证端432发送寻卡请求数据;验证端432,还用于接收寻卡请求数据,向认证端431发送寻卡请求响应数据;认证端431,还用于接收寻卡请求响应数据,并生成会话密钥,并利用会话密钥对寻卡请求响应数据进行加密,得到寻卡请求响应数据密文,并利用读卡终端42的第二证书对会话密钥进行加密,得到会话密钥密文,并利用认证端431的私钥对寻卡请求响应数据密文和会话密钥密文进行签名,得到寻卡请求响应签名值,并向读卡终端42发送寻卡请求响应,寻卡请求响应包括:寻卡请求响应数据密文、会话密钥密文、寻卡请求响应签名值和认证端431的证书,其中认证端431采用生成的会话密钥作为认证端431的会话密钥;读卡终端42,还用于接收寻卡请求响应,并利用认证端431的证书对寻卡请求响应签名值进行验签,并在对寻卡请求响应签名值进行验签通过后,利用读卡终端42的第二私钥对会话密钥密文进行解密,得到会话密钥,其中读卡终端42采用对会话密钥密文解密得到的会话密钥作为读卡终端42的会话密钥,并利用会话密钥对寻卡请求响应数据密文进行解密,得到寻卡请求响应数据。
具体的:读卡终端42通过其RF射频模块每间隔一段时间向外发送寻卡指令,身份证41接收到该寻卡指令后,向读卡终端42发送寻卡确认数据,读卡终端42接收到身份证41发送的寻卡确认数据后,读卡终端42向认证端431发送寻卡请求。其中,寻卡请求中的寻卡请求数据密文是读卡终端42在收到身份证41发送的寻卡确认数据后,利用认证加密密钥对寻卡请求数据进行加密生成的。利用认证加密密钥对寻卡请求数据加密后传输至认证端431可以保证寻卡请求数据在网络传输中的安全。寻卡请求中的读卡终端42的第一证书至少包括读卡终端42的第一公钥,读卡终端42的第二证书至少包括读卡终端42的第二公钥,读卡终端42的第一证书中的第一公钥与第二证书中的第二公钥可以相同,也可以不同,本实施例不做限定,读卡终端42的第一私钥与读卡终端42的第一公钥是一对非对称密钥对,用于对读卡终端42向认证端431传输的数据进行签名和验签,读卡终端42的第二公钥与读卡终端42的第二私钥是一对非对称密钥对,用于对会话密钥进行加解密运算。
其中,认证解密密钥与认证加密密钥为相同的密钥,即对称密钥,预先内置在认证端431和读卡终端42中,读卡终端42利用该对称密钥对读卡终端42首次发送给认证端431的数据进行加密,认证端431利用该对称密钥对认证端431首次接收到读卡终端42发送的数据进行解密,保证读卡终端42与认证端431首次传输数据的安全性。可选的,认证加密密钥和认证解密密钥保存在密钥数据库中,认证端431可以从密钥数据库中读取该认证解密密钥,并保存在认证端431本地。读卡终端42也可以从密钥数据库中读取该认证加密密钥,并保存在读卡终端42本地。
可选的,认证端431接收到寻卡请求后,利用根证书对接收到的读卡终端42的第一证书和读卡终端42的第二证书进行验证,以防止非法分子篡改读卡终端42第一证书中的第一公钥和读卡终端42第二证书中的第二公钥,实现对读卡终端42的安全认证,提高双方交互的安全性。
另外,认证端431解密得到寻卡请求数据后,向云认证平台43的验证端432发送寻卡请求数据;验证端432接收到寻卡请求数据后,生成寻卡请求响应数据,向认证端431发送寻卡请求响应数据。认证端431接收寻卡请求响应数据,并生成会话密钥,认证端431采用生成的会话密钥作为认证端431的会话密钥,其中,认证端431的会话密钥可以为一个或一串随机数,或者可以为一个或一串随机字符,或者一串随机数和随机字符的任意组合。利用会话密钥对寻卡请求响应数据进行加密,保证了寻卡请求响应数据的在网络传输中的安全性。另外,会话密钥作为随机产生的密钥,不易被非法分子窃取。本实施例中,除读卡终端42与认证端431首次传输的数据使用认证加密密钥进行加密之外,后续读卡终端42与认证端431进行传输的数据可以通过会话密钥进行加密,以避免认证加密密密钥被破解导致数据传输安全性降低。由于会话密钥采用随机数的形式,每次传输的数据采用的随机数均不同,进一步可以提高读卡终端42和认证端431之间数据传输的安全性。
另外,认证端431利用读卡终端42的第二证书中的公钥对会话密钥进行加密,得到会话密钥密文,保证了会话密钥在网络传输中的安全性。认证端431利用自身存储的私钥对寻卡请求响应密文和会话密钥进行签名,可以防止非法分子篡改寻卡请求响应密文和会话密钥。
另外,认证端431的证书中包括认证端431的公钥,认证端431的私钥与认证端431的公钥是一对非对称密钥对,用于对从认证端431向读卡终端42中传输的数据进行签名和验签。可选的,读卡终端42接收到寻卡请求响应后,利用根证书对接收到的认证端431的证书进行验证,以防止非法分子篡改认证端431的证书中的公钥,实现对认证端431的安全认证,提高双方交互的安全性。
作为一种可选的方式,寻卡请求数据还包括时间戳和/或单次认证数据,寻卡请求中还包括读卡终端42的标识。其中,单次认证标识包括读卡终端42中的计数器产生的计数值和/或随机因子。当单次认证标识为计数器产生的计数值时,读卡终端42每执行一次身份证41信息读取操作,计数器会产生一个计数值,用于对发送出的第一数据包进行计数,例如,读卡终端42读取身份证A时,计数器产生计数值1,下次读取身份证B时,计数器产生计数值2,以此类推,当然具体的计数值形式不限于此。当单次认证标识为随机因子时,随机因子可以为一个或一串随机数,或者可以为一个或一串随机字符,或者一串随机数和随机字符的任意组合。读卡终端42的标识可以为读卡终端42的序列号,当然,读卡终端42的标识只要是可以唯一表示读卡终端42的标识即可,并不局限于读卡终端42的序列号。
另外,如图6所示,云认证平台43中除了包括认证端431和验证端432之外,还包括调度装置433。
可选的,读卡终端42并不是直接将寻卡请求发送至云认证平台43中的认证端431,而是先将寻卡请求发送给调度装置433,调度装置433判断寻卡请求中的读卡终端42的标志是否在黑名单内,如果在黑名单内,则结束身份证41读取流程;否则,调度装置433根据各个认证端431的处理能力,决定将寻卡请求发送到哪个认证端431进行处理,调度装置433再将寻卡请求发送给认证端431。通过调度装置433对第一数据包进行分流处理,可以防止单点故障。
可选的,读卡终端42将寻卡请求发送给调度装置433,调度装置433选中认证端431后,将选中的认证端431的端口号发送给读卡终端42。具体的,有以下实施方式:方式一:调度装置433选中认证端431的端口号后,直接将端口号发送给读卡终端42;方式二:调度装置433将端口号携带在寻卡请求响应中发送给读卡终端42;方式三:调度装置433将端口号携带在寻卡请求中发送至认证端431,认证端431再将端口号携带在寻卡请求响应中直接发送给读卡终端42。
作为本实施例的一种可选实施方式,读卡终端42向云认证平台43发送数据时,除了读卡终端42第一次向云认证平台43发送数据时需要由调度装置433分配认证端431,后续向云认证平台43发送的数据均可直接发送至端口号对应的认证端431。当然,后续向云认证平台43发送的数据也可通过调度装置433做相应处理(例如签名验证、转发)后发送至认证端431,本实施例不做具体限定。
可选的,认证端431可以直接将寻卡请求响应发送至读卡终端42;也可将寻卡请求响应发送至调度装置433后,调度装置433再将寻卡请求响应发送至读卡终端42。
可选的,调度装置433接收到寻卡请求并判断读卡终端42的标识不在黑名单后,利用根证书对接收到的读卡终端42的第一证书和读卡终端42的第二证书进行验证,并在验证通过后,调度装置433利用读卡终端42的第一证书对寻卡请求签名值进行签名验证,并在对寻卡请求签名值进行签名验证通过后,将寻卡请求中的寻卡请求数据密文和读卡终端42的第二证书发送至认证端431。
可选的,当调度装置433已经对寻卡请求签名值进行验签后,认证端431只接收到调度装置433发送的寻卡请求数据密文和读卡终端42的第二证书时,认证端431只利用认证解密密钥对寻卡请求数据密文进行解密以得到寻卡请求数据。
方式二:
读卡终端42和认证端431先协商会话密钥以进一步保证寻卡请求数据传输的安全,具体协商会话密钥的过程为:读卡终端42利用认证加密密钥对会话密钥请求数据进行加密,得到会话密钥请求数据密文,利用读卡终端42的第一私钥对会话密钥请求数据密文进行签名,得到会话密钥请求签名值,并向认证端431发送会话密钥请求,会话密钥请求包括会话密钥请求数据密文、会话密钥请求签名值、读卡终端42的第一证书和读卡终端42的第二证书;认证端431接收会话密钥请求,并利用读卡终端42的第一证书对会话密钥请求签名值进行签名验证,并在对会话密钥请求签名值进行签名验证通过后,利用认证解密密钥对会话密钥请求数据密文进行解密,得到会话密钥请求数据;认证端431生成会话密钥,并利用读卡终端42的第二证书对会话密钥进行加密,得到会话密钥密文,并利用认证端431的私钥对会话密钥密文进行签名,得到会话密钥密文签名值,并向读卡终端42发送会话密钥请求响应,会话密钥请求响应包括:会话密钥密文、会话密钥密文签名值和认证端431的证书,其中认证端采用生成的会话密钥作为认证端的会话密钥;读卡终端42接收会话密钥请求响应,并利用认证端431的证书对会话密钥密文签名值进行验签,并在对会话密钥密文签名值进行验签通过后,利用读卡终端42的第二私钥对会话密钥密文进行解密,得到会话密钥,其中读卡终端采用对会话密钥密文解密得到的会话密钥作为读卡终端的会话密钥。
作为本实施例的一种可选实施方式,在读卡终端42利用会话密钥对身份证基本信息进行加密之前,读卡终端42与认证端431通过以下方式协商会话密钥:读卡终端42,还用于获取第一随机数,并利用读卡终端42的第一私钥对第一随机数进行签名,得到第一随机数签名值,并向认证端431发送第一随机数、第一随机数签名值和读卡终端42第一证书;认证端431,还用于接收第一随机数、第一随机数签名值和读卡终端42的第一证书,并利用根证书对读卡终端42的第一证书进行验证,并在验证通过后,利用读卡终端42的第一证书对第一随机数签名值进行签名验证,并在对第一随机数签名值进行签名验证通过后,生成第二随机数,根据第一随机数和第二随机数生成认证端431的会话密钥;并利用读卡终端42的第一证书对第一随机数和第二随机数进行加密,得到第八密文,以及利用认证端431的私钥对第八密文进行签名,得到第八签名值;并向读卡终端42发送第八数据包,第八数据包包括:第八密文、第八签名值和认证端431的证书;读卡终端42,还用于接收第八数据包;利用认证端431的证书对第八签名值进行签名验证,并在对第八签名值进行签名验证通过后,利用读卡终端42的第一私钥对第八密文进行解密,得到第一随机数和第二随机数;并对第一随机数进行验证,验证通过后,根据第一随机数和第二随机数生成读卡终端42的会话密钥。读卡终端42通过对第一随机数进行验证、对第八签名值进行签名验证,可以保证认证端431和读卡终端42生成会话密钥的第一随机数和第二随机数相同,保证生成的认证端431的会话密钥和读卡终端42的会话密钥是一对对称密钥。
协商好会话密钥后,上读卡终端42和认证端431可以直接利用读卡终端42的会话密钥和认证端431的会话密钥对寻卡请求数据和寻卡请求响应数据进行加解密,后续寻卡流程为:读卡终端42利用读卡终端的会话密钥对寻卡请求数据进行加密,得到寻卡请求数据密文,利用读卡终端42的第一私钥对寻卡请求数据密文进行签名,得到寻卡请求签名值,并向认证端431发送寻卡请求,寻卡请求包括寻卡请求数据密文和寻卡请求签名值;认证端431接收寻卡请求,并利用读卡终端42的第一证书对寻卡请求签名值进行签名验证,并在对寻卡请求签名值进行签名验证通过后,利用会话密钥对寻卡请求数据密文进行解密,得到寻卡请求数据,并向验证端432发送寻卡请求数据。验证端432接收到寻卡请求数据后,生成寻卡请求响应数据,并向认证端431发送寻卡请求响应数据;认证端431接收寻卡请求响应数据,并利用认证端431的会话密钥对寻卡请求响应数据进行加密,得到寻卡请求响应数据密文,并利用认证端431的私钥对寻卡请求响应数据密文进行签名,得到寻卡请求响应签名值,并向读卡终端42发送寻卡请求响应,寻卡请求响应包括:寻卡请求响应数据密文和寻卡请求响应签名值;读卡终端42利用认证端431的证书对接收的寻卡请求响应签名值进行验签,并在对寻卡请求响应签名值验签通过后,利用读卡终端42的会话密钥对接收到的寻卡请求响应数据密文进行解密,得到寻卡请求响应数据。
完成了寻卡流程后,还包括选卡流程,通过选卡流程验证端432可以确认是对哪一张身份证41进行的读取操作。在选卡流程中:
读卡终端42,还用于在得到寻卡请求响应数据后,向身份证41发送选卡指令;身份证41,还用于接收该选卡指令,并向读卡终端42发送选卡确认数据,其中选卡确认数据至少包括身份证41的序列号;读卡终端42,还用于接收身份证41发送的选卡确认数据,并利用读卡终端42的会话密钥对选卡请求数据进行加密,得到选卡请求数据密文,利用读卡终端42的第一私钥对选卡请求数据密文进行签名,得到选卡请求签名值,并向认证端431发送选卡请求,选卡请求包括选卡请求数据密文和选卡请求签名值;认证端431,还用于接收选卡请求,并利用读卡终端42的第一证书对选卡请求签名值进行签名验证,并在对选卡请求签名值进行签名验证通过后,利用认证端431的会话密钥对选卡请求数据密文进行解密,得到选卡请求数据,并向验证端432发送选卡请求数据;验证端432,还用于接收选卡请求数据,生成选卡请求响应数据,并向认证端431发送选卡请求响应数据;认证端431,还用于接收选卡请求响应数据,并利用验证端432的会话密钥对选卡请求响应数据进行加密,得到选卡请求响应数据密文,并利用认证端431的私钥对选卡请求响应数据密文进行签名,得到选卡请求响应签名值,并向读卡终端42发送选卡请求响应,选卡请求响应包括:选卡请求响应数据密文和选卡请求响应签名值;读卡终端42,还用于利用认证端431的证书对接收的选卡请求响应签名值进行验签,并在对选卡请求响应签名值验签通过后,利用读卡终端42的会话密钥对接收到的选卡请求响应数据密文进行解密,得到选卡请求响应数据;读卡终端42,还用于在得到选卡请求响应数据后,利用会话密钥对选卡确认数据进行加密得到选卡确认数据密文,并利用读卡终端42的第一私钥对选卡确认数据密文进行签名,得到选卡确认数据签名值,并向认证端431发送选卡确认数据密文和选卡确认数据签名值;认证端431接收到选卡确认数据密文和选卡确认数据签名值后,利用读卡终端42的第一证书对选卡数据签名值进行签名验证,并在对选卡数据签名值进行签名验证通过后,利用认证端431的会话密钥对选卡确认数据密文进行解密,得到选卡确认数据。
具体的,一个身份证41具有一个安全密钥,不同的身份证41,对应的安全密钥也不相同,验证端432中存储有多个身份证41的安全密钥,验证端432得到的选卡确认数据中包括身份证41的序列号,验证端432获得身份证41的序列号后,可根据身份证41的序列号查找该身份证41对应的安全密钥,以便后续使用该安全密钥实现身份证41与验证端432的双向认证。
需要说明的是,传统的身份证读卡终端一般设置有RF射频模块和验证安全控制模块(SAM模块),读卡终端可通过RF射频模块从身份证中读取身份证数据密文,验证安全控制模块实现对身份证数据密文的解密,但是读卡终端集成有验证安全控制模块的成本非常高,对大量需要身份证读卡终端的机构(例如银行、车站)来说成本很高。
本实施例中,读卡终端并不设置有验证安全控制模块,而是在云端的云认证平台中的设置验证端(即验证安全控制模块),任何用户均可通过有线或无线网络接入到云端的验证端以实现对身份证的读取,大大降低了用户的实现成本,特别是在银行、车站、保险等需要执行身份证信息读取操作的行业,只需部署相应数量的只具有RF射频模块的读卡终端即可,无需再次大量部署验证安全控制模块,也无需大量设置验证安全控制模块与只具有RF射频模块之间的对应关系,简化了实现方案。另外,读卡终端和认证端之间传输的数据都进行了安全处理,保证了读卡终端和认证端之间数据传输的安全。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在不脱离本发明的原理和宗旨的情况下在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。本发明的范围由所附权利要求及其等同限定。

Claims (16)

1.一种身份证读取方法,其特征在于,包括:
读卡终端接收身份证发送的身份证基本信息,对所述身份证基本信息进行安全处理,得到第一数据包;并向认证验证端发送所述第一数据包;
所述认证验证端接收所述第一数据包,对所述第一数据包进行安全验证,在安全验证通过后得到所述身份证基本信息;并获取第一认证因子,对所述第一认证因子进行安全处理,得到第二数据包;并向所述读卡终端发送所述第二数据包;
所述读卡终端接收所述第二数据包;对所述第二数据包进行安全验证,在安全验证通过后得到所述第一认证因子,并向所述身份证发送所述第一认证因子;接收所述身份证发送的所述第一认证数据,对所述第一认证数据进行安全处理,得到第三数据包;并向所述认证验证端发送所述第三数据包,其中,所述第一认证数据为所述身份证对所述第一认证因子进行处理得到;
所述认证验证端接收所述第三数据包;对所述第三数据包进行安全验证,在安全验证通过后得到所述第一认证数据;并对所述第一认证数据进行认证,并在认证通过后生成认证因子申请请求,对所述认证因子申请请求进行安全处理,得到认证因子申请请求数据包,并向所述读卡终端发送所述认证因子申请请求数据包;
所述读卡终端接收所述认证因子申请请求数据包,对所述认证因子申请请求数据包进行安全验证,在安全验证通过后得到所述认证因子申请请求,并将所述认证因子申请请求发送至所述身份证;接收所述身份证发送的第二认证因子,对所述第二认证因子进行安全处理,得到第四数据包;并向所述认证验证端发送所述第四数据包;
所述认证验证端接收所述第四数据包;并对所述第四数据包进行安全验证,在安全验证通过后得到所述第二认证因子;并对所述第二认证因子进行处理生成第二认证数据;并对所述第二认证数据进行安全处理,得到第五数据包;并向所述读卡终端发送所述第五数据包;
所述读卡终端接收所述第五数据包;对所述第五数据包进行安全验证,在安全验证通过后得到所述第二认证数据,并向所述身份证发送所述第二认证数据;接收所述身份证发送的身份证数据密文,对所述身份证数据密文进行安全处理得到第六数据包;并向所述认证验证端发送所述第六数据包,其中,所述身份证数据密文为所述身份证对所述第二认证数据进行认证,在认证通过后发送;
所述认证验证端接收所述第六数据包,对所述第六数据包进行安全验证,在安全验证通过后得到所述身份证数据密文;并对所述身份证数据密文进行解密,得到身份证数据明文;并对所述身份证数据明文进行安全处理,得到第七数据包;并向所述读卡终端发送所述第七数据包;
所述读卡终端接收所述第七数据包,对所述第七数据包进行安全验证,在安全验证通过后得到所述身份证数据明文。
2.根据权利要求1所述的方法,其特征在于,
对所述身份证基本信息进行安全处理,得到第一数据包,包括:利用读卡终端的会话密钥对所述身份证基本信息进行加密,得到第一密文,以及利用读卡终端的第一私钥对所述第一密文进行签名,得到第一签名值,所述第一数据包包括所述第一密文和所述第一签名值;
对所述第一数据包进行安全验证,包括:利用所述读卡终端的第一证书对所述第一签名值进行签名验证,并在对所述第一签名值进行签名验证通过后,利用认证验证端的会话密钥对所述第一密文进行解密;
对所述第一认证因子进行安全处理,得到第二数据包,包括:利用所述认证验证端的会话密钥对所述第一认证因子进行加密,得到第二密文,以及利用所述认证验证端的私钥对所述第二密文进行签名,得到第二签名值,所述第二数据包包括所述第二密文和所述第二签名值;
对所述第二数据包进行安全验证,包括:利用所述认证验证端的证书对所述第二签名值进行签名验证,并在对所述第二签名值进行签名验证通过后,利用所述读卡终端的会话密钥对所述第二密文进行解密;
对所述第一认证数据进行安全处理包括:利用所述读卡终端的会话密钥对所述第一认证数据进行加密,得到第三密文,以及利用所述读卡终端的第一私钥对所述第三密文进行签名,得到第三签名值,所述第三数据包包括所述第三密文和所述第三签名值;
对所述第三数据包进行安全验证,包括:利用所述读卡终端的第一证书对所述第三签名值进行签名验证,并在对所述第三签名值进行签名验证通过后,利用所述认证验证端的会话密钥对所述第三密文进行解密;
对所述认证因子申请请求进行安全处理,得到认证因子申请请求数据包,包括:利用所述认证验证端的会话密钥对认证因子申请请求进行加密,生成认证因子申请请求密文,并利用所述认证验证端的私钥对所述认证因子申请请求密文进行签名,得到认证因子申请请求签名值,所述认证因子申请请求数据包包括所述认证因子申请请求密文和所述认证因子申请请求签名值;
对所述认证因子申请请求数据包进行安全验证,包括:利用所述认证验证端的证书对所述认证因子申请请求签名值进行签名验证,并在对所述认证因子申请请求签名值进行签名验证通过后,利用所述读卡终端的会话密钥对所述认证因子申请请求密文进行解密;
对所述第二认证因子进行安全处理,得到第四数据包,包括:利用所述读卡终端的会话密钥对所述第二认证因子进行加密,得到第四密文,以及利用所述读卡终端的第一私钥对所述第四密文进行签名,得到第四签名值,所述第四数据包包括所述第四密文和所述第四签名值;
对所述第四数据包进行安全验证,包括:利用所述读卡终端的第一证书对所述第四签名值进行签名验证,并在对所述第四签名值进行签名验证通过后,利用所述认证验证端的会话密钥对所述第四密文进行解密;
并对所述第二认证数据进行安全处理,得到第五数据包,包括:利用所述认证验证端的会话密钥对所述第二认证数据进行加密,得到第五密文,以及利用所述认证验证端的私钥对所述第五密文进行签名,得到第五签名值,所述第五数据包包括所述第五密文和所述第五签名值;
对所述第五数据包进行安全验证,包括:利用所述认证验证端的证书对所述第五签名值进行签名验证,并在对所述第五签名值进行签名验证通过后,利用所述读卡终端的会话密钥对所述第五密文进行解密;
对所述身份证数据密文进行安全处理得到第六数据包,包括:利用所述读卡终端的会话密钥对所述身份证数据密文进行加密,得到第六密文,以及利用所述读卡终端的第一私钥对所述第六密文进行签名,得到第六签名值,所述第六数据包包括所述第六密文和所述第六签名值;
对所述第六数据包进行安全验证,包括:利用所述读卡终端的第一证书对所述第六签名值进行签名验证,并在对所述第六签名值进行签名验证通过后,利用所述认证验证端的会话密钥对所述第六密文进行解密;
对所述身份证数据明文进行安全处理,得到第七数据包,包括:利用所述认证验证端的会话密钥对所述身份证数据明文进行加密,得到第七密文,以及利用所述认证验证端的私钥对所述第七密文进行签名,得到第七签名值,所述第七数据包包括所述第七密文和所述第七签名值;
对所述第七数据包进行安全验证,包括:利用所述认证验证端的证书对所述第七签名值进行签名验证,并在对所述第七签名值进行签名验证通过后,利用所述读卡终端的会话密钥对所述第七密文进行解密。
3.根据权利要求1或2所述的方法,其特征在于,在读卡终端从身份证读取身份证基本信息之前,所述方法还包括:
所述读卡终端利用认证加密密钥对寻卡请求数据进行加密,得到寻卡请求数据密文,利用读卡终端的第一私钥对所述寻卡请求数据密文进行签名,得到寻卡请求签名值,并向所述认证验证端发送寻卡请求,所述寻卡请求包括所述寻卡请求数据密文、所述寻卡请求签名值、读卡终端的第一证书和读卡终端的第二证书;
所述认证验证端接收所述寻卡请求,并利用读卡终端的第一证书对所述寻卡请求签名值进行签名验证,并在对所述寻卡请求签名值进行签名验证通过后,利用认证解密密钥对所述寻卡请求数据密文进行解密,得到寻卡请求数据;
所述认证验证端生成会话密钥,并利用所述会话密钥对寻卡请求响应数据进行加密,得到寻卡请求响应数据密文,并利用所述读卡终端的第二证书对所述会话密钥进行加密,得到会话密钥密文,并利用认证验证端的私钥对所述寻卡请求响应数据密文和所述会话密钥密文进行签名,得到寻卡请求响应签名值,并向所述读卡终端发送寻卡请求响应,所述寻卡请求响应包括:所述寻卡请求响应数据密文、所述会话密钥密文、所述寻卡请求响应签名值和所述认证验证端的证书,其中,所述认证验证端采用所述生成的会话密钥作为所述认证验证端的会话密钥;
所述读卡终端接收所述寻卡请求响应,并利用所述认证验证端的证书对寻卡请求响应签名值进行验签,并在对所述寻卡请求响应签名值进行验签通过后,利用读卡终端的第二私钥对所述会话密钥密文进行解密,得到所述会话密钥,并利用所述会话密钥对所述寻卡请求响应数据密文进行解密,得到所述寻卡请求响应数据,其中,所述读卡终端采用对所述会话密钥密文解密得到的会话密钥作为所述读卡终端的会话密钥。
4.根据权利要求1或2所述的方法,其特征在于,在读卡终端利用会话密钥对所述身份证基本信息进行加密之前,所述方法还包括:
所述读卡终端获取第一随机数,并利用所述读卡终端的第一私钥对所述第一随机数进行签名,得到第一随机数签名值,并向所述认证验证端发送所述第一随机数、所述第一随机数签名值和所述读卡终端的第一证书;
所述认证验证端接收所述第一随机数、所述第一随机数签名值和所述读卡终端的第一证书,并利用根证书对所述读卡终端的第一证书进行验证,并在验证通过后,利用所述读卡终端的第一证书对所述第一随机数签名值进行签名验证,并在对所述第一随机数签名值进行签名验证通过后,生成第二随机数,根据所述第一随机数和所述第二随机数生成所述认证验证端的会话密钥;并利用所述读卡终端的第一证书对所述第一随机数和所述第二随机数进行加密,得到第八密文,以及利用所述认证验证端的私钥对所述第八密文进行签名,得到第八签名值;并向所述读卡终端发送第八数据包,所述第八数据包包括:所述第八密文、所述第八签名值和所述认证验证端的证书;
所述读卡终端接收所述第八数据包;利用所述认证验证端的证书对所述第八签名值进行签名验证,并在对所述第八签名值进行签名验证通过后,利用所述读卡终端的第一私钥对所述第八密文进行解密,得到所述第一随机数和所述第二随机数;并对所述第一随机数进行验证,验证通过后,根据所述第一随机数和所述第二随机数生成所述读卡终端的会话密钥。
5.一种身份证读取方法,其特征在于,包括:
读卡终端接收身份证发送的身份证基本信息,对所述身份证基本信息进行安全处理,得到第一数据包;并向认证端发送所述第一数据包;
所述认证端接收所述第一数据包,对所述第一数据包进行安全验证,在安全验证通过后得到所述身份证基本信息;并向验证端发送身份证基本信息;
所述验证端接收所述身份证基本信息,并获取第一认证因子,并将所述第一认证因子发送至所述认证端;
所述认证端接收所述第一认证因子,并对所述第一认证因子进行安全处理,得到第二数据包;并向所述读卡终端发送所述第二数据包;
所述读卡终端接收所述第二数据包;对所述第二数据包进行安全验证,在安全验证通过后得到所述第一认证因子,并向所述身份证发送所述第一认证因子;接收所述身份证发送的所述第一认证数据,对所述第一认证数据进行安全处理,得到第三数据包;并向所述认证端发送所述第三数据包,其中,所述第一认证数据为所述身份证对所述第一认证因子进行处理得到;
所述认证端接收所述第三数据包;对所述第三数据包进行安全验证,在安全验证通过后得到所述第一认证数据;并向所述验证端发送第一认证数据;
所述验证端接收所述第一认证数据,并对所述第一认证数据进行认证,并在认证通过后生成认证因子申请请求,并向所述认证端发送所述认证因子申请请求;
所述认证端接收所述认证因子申请请求,并对所述认证因子申请请求进行安全处理,得到认证因子申请请求数据包,并向所述读卡终端发送所述认证因子申请请求数据包;
所述读卡终端接收所述认证因子申请请求数据包,对所述认证因子申请请求数据包进行安全验证,在安全验证通过后得到所述认证因子申请请求,并将所述认证因子申请请求发送至所述身份证;接收所述身份证发送的第二认证因子,对所述第二认证因子进行安全处理,得到第四数据包;并向所述认证端发送所述第四数据包;
所述认证端接收所述第四数据包;并对所述第四数据包进行安全验证,在安全验证通过后得到所述第二认证因子;并向所述验证端发送所述第二认证因子;
所述验证端接收所述第二认证因子,并对所述第二认证因子进行处理生成第二认证数据;并向所述认证端发送所述第二认证数据;
所述认证端接收所述第二认证数据,并对所述第二认证数据进行安全处理,得到第五数据包;并向所述读卡终端发送所述第五数据包;
所述读卡终端接收所述第五数据包;对所述第五数据包进行安全验证,在安全验证通过后得到所述第二认证数据,并向所述身份证发送所述第二认证数据;接收所述身份证发送的身份证数据密文,对所述身份证数据密文进行安全处理得到第六数据包;并向所述认证端发送所述第六数据包,其中,所述身份证数据密文为所述身份证对所述第二认证数据进行认证,在认证通过后发送;
所述认证端接收所述第六数据包,对所述第六数据包进行安全验证,在安全验证通过后得到所述身份证数据密文;并向所述验证端发送所述身份证数据密文;
所述验证端接收所述身份证数据密文,并对所述身份证数据密文进行解密,得到身份证数据明文;并向所述认证端发送所述身份证数据明文;
所述认证端接收所述身份证数据明文,并对所述身份证数据明文进行安全处理,得到第七数据包;并向所述读卡终端发送所述第七数据包;
所述读卡终端接收所述第七数据包,对所述第七数据包进行安全验证,在安全验证通过后得到所述身份证数据明文。
6.根据权利要求5所述的方法,其特征在于,
对所述身份证基本信息进行安全处理,得到第一数据包,包括:利用读卡终端的会话密钥对所述身份证基本信息进行加密,得到第一密文,以及利用读卡终端的第一私钥对所述第一密文进行签名,得到第一签名值,所述第一数据包包括所述第一密文和所述第一签名值;
对所述第一数据包进行安全验证,包括:利用所述读卡终端的第一证书对所述第一签名值进行签名验证,并在对所述第一签名值进行签名验证通过后,利用认证端的会话密钥对所述第一密文进行解密;
对所述第一认证因子进行安全处理,得到第二数据包,包括:利用所述认证端的会话密钥对所述第一认证因子进行加密,得到第二密文,以及利用所述认证端的私钥对所述第二密文进行签名,得到第二签名值,所述第二数据包包括所述第二密文和所述第二签名值;
对所述第二数据包进行安全验证,包括:利用所述认证端的证书对所述第二签名值进行签名验证,并在对所述第二签名值进行签名验证通过后,利用所述读卡终端的会话密钥对所述第二密文进行解密;
对所述第一认证数据进行安全处理包括:利用所述读卡终端的会话密钥对所述第一认证数据进行加密,得到第三密文,以及利用所述读卡终端的第一私钥对所述第三密文进行签名,得到第三签名值,所述第三数据包包括所述第三密文和所述第三签名值;
对所述第三数据包进行安全验证,包括:利用所述读卡终端的第一证书对所述第三签名值进行签名验证,并在对所述第三签名值进行签名验证通过后,利用所述认证端的会话密钥对所述第三密文进行解密;
对所述认证因子申请请求进行安全处理,得到认证因子申请请求数据包,包括:利用所述认证端的会话密钥对认证因子申请请求进行加密,生成认证因子申请请求密文,并利用所述认证端的私钥对所述认证因子申请请求密文进行签名,得到认证因子申请请求签名值,所述认证因子申请请求数据包包括所述认证因子申请请求密文和所述认证因子申请请求签名值;
对所述认证因子申请请求数据包进行安全验证,包括:利用所述认证端的证书对所述认证因子申请请求签名值进行签名验证,并在对所述认证因子申请请求签名值进行签名验证通过后,利用所述读卡终端的会话密钥对所述认证因子申请请求密文进行解密;
对所述第二认证因子进行安全处理,得到第四数据包,包括:利用所述读卡终端的会话密钥对所述第二认证因子进行加密,得到第四密文,以及利用所述读卡终端的第一私钥对所述第四密文进行签名,得到第四签名值,所述第四数据包包括所述第四密文和所述第四签名值;
对所述第四数据包进行安全验证,包括:利用所述读卡终端的第一证书对所述第四签名值进行签名验证,并在对所述第四签名值进行签名验证通过后,利用所述认证端的会话密钥对所述第四密文进行解密;
并对所述第二认证数据进行安全处理,得到第五数据包,包括:利用所述认证端的会话密钥对所述第二认证数据进行加密,得到第五密文,以及利用所述认证端的私钥对所述第五密文进行签名,得到第五签名值,所述第五数据包包括所述第五密文和所述第五签名值;
对所述第五数据包进行安全验证,包括:利用所述认证端的证书对所述第五签名值进行签名验证,并在对所述第五签名值进行签名验证通过后,利用所述读卡终端的会话密钥对所述第五密文进行解密;
对所述身份证数据密文进行安全处理得到第六数据包,包括:利用所述读卡终端的会话密钥对所述身份证数据密文进行加密,得到第六密文,以及利用所述读卡终端的第一私钥对所述第六密文进行签名,得到第六签名值,所述第六数据包包括所述第六密文和所述第六签名值;
对所述第六数据包进行安全验证,包括:利用所述读卡终端的第一证书对所述第六签名值进行签名验证,并在对所述第六签名值进行签名验证通过后,利用所述认证端的会话密钥对所述第六密文进行解密;
对所述身份证数据明文进行安全处理,得到第七数据包,包括:利用所述认证端的会话密钥对所述身份证数据明文进行加密,得到第七密文,以及利用所述认证端的私钥对所述第七密文进行签名,得到第七签名值,所述第七数据包包括所述第七密文和所述第七签名值;
对所述第七数据包进行安全验证,包括:利用所述认证端的证书对所述第七签名值进行签名验证,并在对所述第七签名值进行签名验证通过后,利用所述读卡终端的会话密钥对所述第七密文进行解密。
7.根据权利要求5或6所述的方法,其特征在于,在读卡终端从身份证读取身份证基本信息之前,所述方法还包括:
所述读卡终端利用认证加密密钥对寻卡请求数据进行加密,得到寻卡请求数据密文,利用读卡终端的第一私钥对所述寻卡请求数据密文进行签名,得到寻卡请求签名值,并向所述认证端发送寻卡请求,所述寻卡请求包括所述寻卡请求数据密文、所述寻卡请求签名值、读卡终端的第一证书和读卡终端的第二证书;
所述认证端接收所述寻卡请求,并利用读卡终端的第一证书对所述寻卡请求签名值进行签名验证,并在对所述寻卡请求签名值进行签名验证通过后,利用认证解密密钥对所述寻卡请求数据密文进行解密,得到寻卡请求数据;并向云认证平台的验证端发送所述寻卡请求数据;
所述验证端接收所述寻卡请求数据,并向所述认证端发送寻卡请求响应数据;
所述认证端接收所述寻卡请求响应数据,并生成会话密钥,并利用所述会话密钥对寻卡请求响应数据进行加密,得到寻卡请求响应数据密文,并利用所述读卡终端的第二证书对所述会话密钥进行加密,得到会话密钥密文,并利用认证端的私钥对所述寻卡请求响应数据密文和所述会话密钥密文进行签名,得到寻卡请求响应签名值,并向所述读卡终端发送寻卡请求响应,所述寻卡请求响应包括:所述寻卡请求响应数据密文、所述会话密钥密文、所述寻卡请求响应签名值和所述认证端的证书,其中,所述认证端采用所述生成的会话密钥作为所述认证端的会话密钥;
所述读卡终端接收所述寻卡请求响应,并利用所述认证端的证书对寻卡请求响应签名值进行验签,并在对所述寻卡请求响应签名值进行验签通过后,利用读卡终端的第二私钥对所述会话密钥密文进行解密,得到所述会话密钥,并利用所述会话密钥对所述寻卡请求响应数据密文进行解密,得到所述寻卡请求响应数据,其中,所述读卡终端采用对所述会话密钥密文解密得到的会话密钥作为所述读卡终端的会话密钥。
8.根据权利要求5或6所述的方法,其特征在于,在读卡终端利用会话密钥对所述身份证基本信息进行加密之前,所述方法还包括:
所述读卡终端获取第一随机数,并利用所述读卡终端的第一私钥对所述第一随机数进行签名,得到第一随机数签名值,并向所述认证端发送所述第一随机数、所述第一随机数签名值和所述读卡终端第一证书;
所述认证端接收所述第一随机数、所述第一随机数签名值和所述读卡终端的第一证书,并利用根证书对所述读卡终端的第一证书进行验证,并在验证通过后,利用所述读卡终端的第一证书对所述第一随机数签名值进行签名验证,并在对所述第一随机数签名值进行签名验证通过后,生成第二随机数,根据所述第一随机数和所述第二随机数生成所述认证端的会话密钥;并利用所述读卡终端的第一证书对所述第一随机数和所述第二随机数进行加密,得到第八密文,以及利用所述认证端的私钥对所述第八密文进行签名,得到第八签名值;并向所述读卡终端发送第八数据包,所述第八数据包包括:所述第八密文、所述第八签名值和所述认证端的证书;
所述读卡终端接收所述第八数据包;利用所述认证端的证书对所述第八签名值进行签名验证,并在对所述第八签名值进行签名验证通过后,利用所述读卡终端的第一私钥对所述第八密文进行解密,得到所述第一随机数和所述第二随机数;并对所述第一随机数进行验证,验证通过后,根据所述第一随机数和所述第二随机数生成所述读卡终端的会话密钥。
9.一种身份证读取系统,其特征在于,包括:读卡终端和认证验证端;其中,
所述读卡终端,用于接收所述身份证发送的身份证基本信息,对所述身份证基本信息进行安全处理,得到第一数据包;并向所述认证验证端发送所述第一数据包;
所述认证验证端,用于接收所述第一数据包,对所述第一数据包进行安全验证,在安全验证通过后得到所述身份证基本信息;并获取第一认证因子,对所述第一认证因子进行安全处理,得到第二数据包;并向所述读卡终端发送所述第二数据包;
所述读卡终端,还用于接收所述第二数据包;对所述第二数据包进行安全验证,在安全验证通过后得到所述第一认证因子,并向所述身份证发送所述第一认证因子;接收所述身份证发送的所述第一认证数据,对所述第一认证数据进行安全处理,得到第三数据包;并向所述认证验证端发送所述第三数据包,其中,所述第一认证数据为所述身份证对所述第一认证因子进行处理得到;
所述认证验证端,还用于接收所述第三数据包;对所述第三数据包进行安全验证,在安全验证通过后得到所述第一认证数据;并对所述第一认证数据进行认证,并在认证通过后生成认证因子申请请求,对所述认证因子申请请求进行安全处理,得到认证因子申请请求数据包,并向所述读卡终端发送所述认证因子申请请求数据包;
所述读卡终端,还用于接收所述认证因子申请请求数据包,对所述认证因子申请请求数据包进行安全验证,在安全验证通过后得到所述认证因子申请请求,并将所述认证因子申请请求发送至所述身份证;接收所述身份证发送的第二认证因子,对所述第二认证因子进行安全处理,得到第四数据包;并向所述认证验证端发送所述第四数据包;
所述认证验证端,还用于接收所述第四数据包;并对所述第四数据包进行安全验证,在安全验证通过后得到所述第二认证因子;并对所述第二认证因子进行处理生成第二认证数据;并对所述第二认证数据进行安全处理,得到第五数据包;并向所述读卡终端发送所述第五数据包;
所述读卡终端,还用于接收所述第五数据包;对所述第五数据包进行安全验证,在安全验证通过后得到所述第二认证数据,并向所述身份证发送所述第二认证数据;接收所述身份证发送的身份证数据密文,对所述身份证数据密文进行安全处理得到第六数据包;并向所述认证验证端发送所述第六数据包,其中,所述身份证数据密文为所述身份证对所述第二认证数据进行认证,在认证通过后发送;
所述认证验证端,还用于接收所述第六数据包,对所述第六数据包进行安全验证,在安全验证通过后得到所述身份证数据密文;并对所述身份证数据密文进行解密,得到身份证数据明文;并对所述身份证数据明文进行安全处理,得到第七数据包;并向所述读卡终端发送所述第七数据包;
所述读卡终端,还用于接收所述第七数据包,对所述第七数据包进行安全验证,在安全验证通过后得到所述身份证数据明文。
10.根据权利要求9所述的系统,其特征在于,
对所述身份证基本信息进行安全处理,得到第一数据包,包括:利用读卡终端的会话密钥对所述身份证基本信息进行加密,得到第一密文,以及利用读卡终端的第一私钥对所述第一密文进行签名,得到第一签名值,所述第一数据包包括所述第一密文和所述第一签名值;
对所述第一数据包进行安全验证,包括:利用所述读卡终端的第一证书对所述第一签名值进行签名验证,并在对所述第一签名值进行签名验证通过后,利用认证验证端的会话密钥对所述第一密文进行解密;
对所述第一认证因子进行安全处理,得到第二数据包,包括:利用所述认证验证端的会话密钥对所述第一认证因子进行加密,得到第二密文,以及利用所述认证验证端的私钥对所述第二密文进行签名,得到第二签名值,所述第二数据包包括所述第二密文和所述第二签名值;
对所述第二数据包进行安全验证,包括:利用所述认证验证端的证书对所述第二签名值进行签名验证,并在对所述第二签名值进行签名验证通过后,利用所述读卡终端的会话密钥对所述第二密文进行解密;
对所述第一认证数据进行安全处理包括:利用所述读卡终端的会话密钥对所述第一认证数据进行加密,得到第三密文,以及利用所述读卡终端的第一私钥对所述第三密文进行签名,得到第三签名值,所述第三数据包包括所述第三密文和所述第三签名值;
对所述第三数据包进行安全验证,包括:利用所述读卡终端的第一证书对所述第三签名值进行签名验证,并在对所述第三签名值进行签名验证通过后,利用所述认证验证端的会话密钥对所述第三密文进行解密;
对所述认证因子申请请求进行安全处理,得到认证因子申请请求数据包,包括:利用所述认证验证端的会话密钥对认证因子申请请求进行加密,生成认证因子申请请求密文,并利用所述认证验证端的私钥对所述认证因子申请请求密文进行签名,得到认证因子申请请求签名值,所述认证因子申请请求数据包包括所述认证因子申请请求密文和所述认证因子申请请求签名值;
对所述认证因子申请请求数据包进行安全验证,包括:利用所述认证验证端的证书对所述认证因子申请请求签名值进行签名验证,并在对所述认证因子申请请求签名值进行签名验证通过后,利用所述读卡终端的会话密钥对所述认证因子申请请求密文进行解密;
对所述第二认证因子进行安全处理,得到第四数据包,包括:利用所述读卡终端的会话密钥对所述第二认证因子进行加密,得到第四密文,以及利用所述读卡终端的第一私钥对所述第四密文进行签名,得到第四签名值,所述第四数据包包括所述第四密文和所述第四签名值;
对所述第四数据包进行安全验证,包括:利用所述读卡终端的第一证书对所述第四签名值进行签名验证,并在对所述第四签名值进行签名验证通过后,利用所述认证验证端的会话密钥对所述第四密文进行解密;
并对所述第二认证数据进行安全处理,得到第五数据包,包括:利用所述认证验证端的会话密钥对所述第二认证数据进行加密,得到第五密文,以及利用所述认证验证端的私钥对所述第五密文进行签名,得到第五签名值,所述第五数据包包括所述第五密文和所述第五签名值;
对所述第五数据包进行安全验证,包括:利用所述认证验证端的证书对所述第五签名值进行签名验证,并在对所述第五签名值进行签名验证通过后,利用所述读卡终端的会话密钥对所述第五密文进行解密;
对所述身份证数据密文进行安全处理得到第六数据包,包括:利用所述读卡终端的会话密钥对所述身份证数据密文进行加密,得到第六密文,以及利用所述读卡终端的第一私钥对所述第六密文进行签名,得到第六签名值,所述第六数据包包括所述第六密文和所述第六签名值;
对所述第六数据包进行安全验证,包括:利用所述读卡终端的第一证书对所述第六签名值进行签名验证,并在对所述第六签名值进行签名验证通过后,利用所述认证验证端的会话密钥对所述第六密文进行解密;
对所述身份证数据明文进行安全处理,得到第七数据包,包括:利用所述认证验证端的会话密钥对所述身份证数据明文进行加密,得到第七密文,以及利用所述认证验证端的私钥对所述第七密文进行签名,得到第七签名值,所述第七数据包包括所述第七密文和所述第七签名值;
对所述第七数据包进行安全验证,包括:利用所述认证验证端的证书对所述第七签名值进行签名验证,并在对所述第七签名值进行签名验证通过后,利用所述读卡终端的会话密钥对所述第七密文进行解密。
11.根据权利要求9或10所述的系统,其特征在于,在读卡终端从身份证读取身份证基本信息之前:
所述读卡终端,还用于利用认证加密密钥对寻卡请求数据进行加密,得到寻卡请求数据密文,利用读卡终端的第一私钥对所述寻卡请求数据密文进行签名,得到寻卡请求签名值,并向所述认证验证端发送寻卡请求,所述寻卡请求包括所述寻卡请求数据密文、所述寻卡请求签名值、读卡终端的第一证书和读卡终端的第二证书;
所述认证验证端,还用于接收所述寻卡请求,并利用读卡终端的第一证书对所述寻卡请求签名值进行签名验证,并在对所述寻卡请求签名值进行签名验证通过后,利用认证解密密钥对所述寻卡请求数据密文进行解密,得到寻卡请求数据;
所述认证验证端,还用于生成会话密钥,并利用所述会话密钥对寻卡请求响应数据进行加密,得到寻卡请求响应数据密文,并利用所述读卡终端的第二证书对所述会话密钥进行加密,得到会话密钥密文,并利用认证验证端的私钥对所述寻卡请求响应数据密文和所述会话密钥密文进行签名,得到寻卡请求响应签名值,并向所述读卡终端发送寻卡请求响应,所述寻卡请求响应包括:所述寻卡请求响应数据密文、所述会话密钥密文、所述寻卡请求响应签名值和所述认证验证端的证书,其中,所述认证验证端采用所述生成的会话密钥作为所述认证验证端的会话密钥;
所述读卡终端,还用于接收所述寻卡请求响应,并利用所述认证验证端的证书对寻卡请求响应签名值进行验签,并在对所述寻卡请求响应签名值进行验签通过后,利用读卡终端的第二私钥对所述会话密钥密文进行解密,得到所述会话密钥,并利用所述会话密钥对所述寻卡请求响应数据密文进行解密,得到所述寻卡请求响应数据,其中,所述读卡终端采用对所述会话密钥密文解密得到的会话密钥作为所述读卡终端的会话密钥。
12.根据权利要求9或10所述的系统,其特征在于,在读卡终端利用会话密钥对所述身份证基本信息进行加密之前:
所述读卡终端,还用于获取第一随机数,并利用所述读卡终端的第一私钥对所述第一随机数进行签名,得到第一随机数签名值,并向所述认证验证端发送所述第一随机数、所述第一随机数签名值和所述读卡终端的第一证书;
所述认证验证端,还用于接收所述第一随机数、所述第一随机数签名值和所述读卡终端的第一证书,并利用根证书对所述读卡终端的第一证书进行验证,并在验证通过后,利用所述读卡终端的第一证书对所述第一随机数签名值进行签名验证,并在对所述第一随机数签名值进行签名验证通过后,生成第二随机数,根据所述第一随机数和所述第二随机数生成所述认证验证端的会话密钥;并利用所述读卡终端的第一证书对所述第一随机数和所述第二随机数进行加密,得到第八密文,以及利用所述认证验证端的私钥对所述第八密文进行签名,得到第八签名值;并向所述读卡终端发送第八数据包,所述第八数据包包括:所述第八密文、所述第八签名值和所述认证验证端的证书;
所述读卡终端,还用于接收所述第八数据包;利用所述认证验证端的证书对所述第八签名值进行签名验证,并在对所述第八签名值进行签名验证通过后,利用所述读卡终端的第一私钥对所述第八密文进行解密,得到所述第一随机数和所述第二随机数;并对所述第一随机数进行验证,验证通过后,根据所述第一随机数和所述第二随机数生成所述读卡终端的会话密钥。
13.一种身份证读取系统,其特征在于,包括:读卡终端、认证端和验证端;其中,
所述读卡终端,用于接收所述身份证发送的身份证基本信息,对所述身份证基本信息进行安全处理,得到第一数据包;并向所述认证端发送所述第一数据包;
所述认证端,用于接收所述第一数据包,对所述第一数据包进行安全验证,在安全验证通过后得到所述身份证基本信息;并向所述验证端发送身份证基本信息;
所述验证端,用于接收所述身份证基本信息,并获取第一认证因子,并将所述第一认证因子发送至所述认证端;
所述认证端,还用于接收所述第一认证因子,并对所述第一认证因子进行安全处理,得到第二数据包;并向所述读卡终端发送所述第二数据包;
所述读卡终端,还用于接收所述第二数据包;对所述第二数据包进行安全验证,在安全验证通过后得到所述第一认证因子,并向所述身份证发送所述第一认证因子;接收所述身份证发送的所述第一认证数据,对所述第一认证数据进行安全处理,得到第三数据包;并向所述认证端发送所述第三数据包,其中,所述第一认证数据为所述身份证对所述第一认证因子进行处理得到;
所述认证端,还用于接收所述第三数据包;对所述第三数据包进行安全验证,在安全验证通过后得到所述第一认证数据;并向所述验证端发送第一认证数据;
所述验证端,还用于接收所述第一认证数据,并对所述第一认证数据进行认证,并在认证通过后生成认证因子申请请求,并向所述认证端发送所述认证因子申请请求;
所述认证端,还用于接收所述认证因子申请请求,并对所述认证因子申请请求进行安全处理,得到认证因子申请请求数据包,并向所述读卡终端发送所述认证因子申请请求数据包;
所述读卡终端,还用于接收所述认证因子申请请求数据包,对所述认证因子申请请求数据包进行安全验证,在安全验证通过后得到所述认证因子申请请求,并将所述认证因子申请请求发送至所述身份证;接收所述身份证发送的第二认证因子,对所述第二认证因子进行安全处理,得到第四数据包;并向所述认证端发送所述第四数据包;
所述认证端,还用于接收所述第四数据包;并对所述第四数据包进行安全验证,在安全验证通过后得到所述第二认证因子;并向所述验证端发送所述第二认证因子;
所述验证端,还用于接收所述第二认证因子,并对所述第二认证因子进行处理生成第二认证数据;并向所述认证端发送所述第二认证数据;
所述认证端,还用于接收所述第二认证数据,并对所述第二认证数据进行安全处理,得到第五数据包;并向所述读卡终端发送所述第五数据包;
所述读卡终端,还用于接收所述第五数据包;对所述第五数据包进行安全验证,在安全验证通过后得到所述第二认证数据,并向所述身份证发送所述第二认证数据;接收所述身份证发送的身份证数据密文,对所述身份证数据密文进行安全处理得到第六数据包;并向所述认证端发送所述第六数据包,其中,所述身份证数据密文为所述身份证对所述第二认证数据进行认证,在认证通过后发送;
所述认证端,还用于接收所述第六数据包,对所述第六数据包进行安全验证,在安全验证通过后得到所述身份证数据密文;并向所述验证端发送所述身份证数据密文;
所述验证端,还用于接收所述身份证数据密文,并对所述身份证数据密文进行解密,得到身份证数据明文;并向所述认证端发送所述身份证数据明文;
所述认证端,还用于接收所述身份证数据明文,并对所述身份证数据明文进行安全处理,得到第七数据包;并向所述读卡终端发送所述第七数据包;
所述读卡终端,还用于接收所述第七数据包,对所述第七数据包进行安全验证,在安全验证通过后得到所述身份证数据明文。
14.根据权利要求13所述的系统,其特征在于,
对所述身份证基本信息进行安全处理,得到第一数据包,包括:利用读卡终端的会话密钥对所述身份证基本信息进行加密,得到第一密文,以及利用读卡终端的第一私钥对所述第一密文进行签名,得到第一签名值,所述第一数据包包括所述第一密文和所述第一签名值;
对所述第一数据包进行安全验证,包括:利用所述读卡终端的第一证书对所述第一签名值进行签名验证,并在对所述第一签名值进行签名验证通过后,利用认证端的会话密钥对所述第一密文进行解密;
对所述第一认证因子进行安全处理,得到第二数据包,包括:利用所述认证端的会话密钥对所述第一认证因子进行加密,得到第二密文,以及利用所述认证端的私钥对所述第二密文进行签名,得到第二签名值,所述第二数据包包括所述第二密文和所述第二签名值;
对所述第二数据包进行安全验证,包括:利用所述认证端的证书对所述第二签名值进行签名验证,并在对所述第二签名值进行签名验证通过后,利用所述读卡终端的会话密钥对所述第二密文进行解密;
对所述第一认证数据进行安全处理包括:利用所述读卡终端的会话密钥对所述第一认证数据进行加密,得到第三密文,以及利用所述读卡终端的第一私钥对所述第三密文进行签名,得到第三签名值,所述第三数据包包括所述第三密文和所述第三签名值;
对所述第三数据包进行安全验证,包括:利用所述读卡终端的第一证书对所述第三签名值进行签名验证,并在对所述第三签名值进行签名验证通过后,利用所述认证端的会话密钥对所述第三密文进行解密;
对所述认证因子申请请求进行安全处理,得到认证因子申请请求数据包,包括:利用所述认证端的会话密钥对认证因子申请请求进行加密,生成认证因子申请请求密文,并利用所述认证端的私钥对所述认证因子申请请求密文进行签名,得到认证因子申请请求签名值,所述认证因子申请请求数据包包括所述认证因子申请请求密文和所述认证因子申请请求签名值;
对所述认证因子申请请求数据包进行安全验证,包括:利用所述认证端的证书对所述认证因子申请请求签名值进行签名验证,并在对所述认证因子申请请求签名值进行签名验证通过后,利用所述读卡终端的会话密钥对所述认证因子申请请求密文进行解密;
对所述第二认证因子进行安全处理,得到第四数据包,包括:利用所述读卡终端的会话密钥对所述第二认证因子进行加密,得到第四密文,以及利用所述读卡终端的第一私钥对所述第四密文进行签名,得到第四签名值,所述第四数据包包括所述第四密文和所述第四签名值;
对所述第四数据包进行安全验证,包括:利用所述读卡终端的第一证书对所述第四签名值进行签名验证,并在对所述第四签名值进行签名验证通过后,利用所述认证端的会话密钥对所述第四密文进行解密;
并对所述第二认证数据进行安全处理,得到第五数据包,包括:利用所述认证端的会话密钥对所述第二认证数据进行加密,得到第五密文,以及利用所述认证端的私钥对所述第五密文进行签名,得到第五签名值,所述第五数据包包括所述第五密文和所述第五签名值;
对所述第五数据包进行安全验证,包括:利用所述认证端的证书对所述第五签名值进行签名验证,并在对所述第五签名值进行签名验证通过后,利用所述读卡终端的会话密钥对所述第五密文进行解密;
对所述身份证数据密文进行安全处理得到第六数据包,包括:利用所述读卡终端的会话密钥对所述身份证数据密文进行加密,得到第六密文,以及利用所述读卡终端的第一私钥对所述第六密文进行签名,得到第六签名值,所述第六数据包包括所述第六密文和所述第六签名值;
对所述第六数据包进行安全验证,包括:利用所述读卡终端的第一证书对所述第六签名值进行签名验证,并在对所述第六签名值进行签名验证通过后,利用所述认证端的会话密钥对所述第六密文进行解密;
对所述身份证数据明文进行安全处理,得到第七数据包,包括:利用所述认证端的会话密钥对所述身份证数据明文进行加密,得到第七密文,以及利用所述认证端的私钥对所述第七密文进行签名,得到第七签名值,所述第七数据包包括所述第七密文和所述第七签名值;
对所述第七数据包进行安全验证,包括:利用所述认证端的证书对所述第七签名值进行签名验证,并在对所述第七签名值进行签名验证通过后,利用所述读卡终端的会话密钥对所述第七密文进行解密。
15.根据权利要求13或14所述的系统,其特征在于,在读卡终端从身份证读取身份证基本信息之前:
所述读卡终端,还用于利用认证加密密钥对寻卡请求数据进行加密,得到寻卡请求数据密文,利用读卡终端的第一私钥对所述寻卡请求数据密文进行签名,得到寻卡请求签名值,并向所述认证端发送寻卡请求,所述寻卡请求包括所述寻卡请求数据密文、所述寻卡请求签名值、读卡终端的第一证书和读卡终端的第二证书;
所述认证端,还用于接收所述寻卡请求,并利用读卡终端的第一证书对所述寻卡请求签名值进行签名验证,并在对所述寻卡请求签名值进行签名验证通过后,利用认证解密密钥对所述寻卡请求数据密文进行解密,得到寻卡请求数据;并向云认证平台的验证端发送所述寻卡请求数据;
所述验证端,还用于接收所述寻卡请求数据,并向所述认证端发送寻卡请求响应数据;
所述认证端,还用于接收所述寻卡请求响应数据,并生成会话密钥,并利用所述会话密钥对寻卡请求响应数据进行加密,得到寻卡请求响应数据密文,并利用所述读卡终端的第二证书对所述会话密钥进行加密,得到会话密钥密文,并利用认证端的私钥对所述寻卡请求响应数据密文和所述会话密钥密文进行签名,得到寻卡请求响应签名值,并向所述读卡终端发送寻卡请求响应,所述寻卡请求响应包括:所述寻卡请求响应数据密文、所述会话密钥密文、所述寻卡请求响应签名值和所述认证端的证书,其中,所述认证端采用所述生成的会话密钥作为所述认证端的会话密钥;
所述读卡终端,还用于接收所述寻卡请求响应,并利用所述认证端的证书对寻卡请求响应签名值进行验签,并在对所述寻卡请求响应签名值进行验签通过后,利用读卡终端的第二私钥对所述会话密钥密文进行解密,得到所述会话密钥,并利用所述会话密钥对所述寻卡请求响应数据密文进行解密,得到所述寻卡请求响应数据,其中,所述读卡终端采用对所述会话密钥密文解密得到的会话密钥作为所述读卡终端的会话密钥。
16.根据权利要求13或14所述的系统,其特征在于,在读卡终端利用会话密钥对所述身份证基本信息进行加密之前:
所述读卡终端,还用于获取第一随机数,并利用所述读卡终端的第一私钥对所述第一随机数进行签名,得到第一随机数签名值,并向所述认证端发送所述第一随机数、所述第一随机数签名值和所述读卡终端第一证书;
所述认证端,还用于接收所述第一随机数、所述第一随机数签名值和所述读卡终端的第一证书,并利用根证书对所述读卡终端的第一证书进行验证,并在验证通过后,利用所述读卡终端的第一证书对所述第一随机数签名值进行签名验证,并在对所述第一随机数签名值进行签名验证通过后,生成第二随机数,根据所述第一随机数和所述第二随机数生成所述认证端的会话密钥;并利用所述读卡终端的第一证书对所述第一随机数和所述第二随机数进行加密,得到第八密文,以及利用所述认证端的私钥对所述第八密文进行签名,得到第八签名值;并向所述读卡终端发送第八数据包,所述第八数据包包括:所述第八密文、所述第八签名值和所述认证端的证书;
所述读卡终端,还用于接收所述第八数据包;利用所述认证端的证书对所述第八签名值进行签名验证,并在对所述第八签名值进行签名验证通过后,利用所述读卡终端的第一私钥对所述第八密文进行解密,得到所述第一随机数和所述第二随机数;并对所述第一随机数进行验证,验证通过后,根据所述第一随机数和所述第二随机数生成所述读卡终端的会话密钥。
CN201610243349.7A 2016-04-18 2016-04-18 身份证读取方法和系统 Active CN106022140B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610243349.7A CN106022140B (zh) 2016-04-18 2016-04-18 身份证读取方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610243349.7A CN106022140B (zh) 2016-04-18 2016-04-18 身份证读取方法和系统

Publications (2)

Publication Number Publication Date
CN106022140A CN106022140A (zh) 2016-10-12
CN106022140B true CN106022140B (zh) 2019-02-15

Family

ID=57081527

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610243349.7A Active CN106022140B (zh) 2016-04-18 2016-04-18 身份证读取方法和系统

Country Status (1)

Country Link
CN (1) CN106022140B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018132211A1 (en) * 2017-01-12 2018-07-19 Google Llc Verified boot and key rotation
CN115208632B (zh) * 2022-06-16 2023-11-07 国网浙江省电力有限公司营销服务中心 一种前后端数据加密传输方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101789068A (zh) * 2009-01-22 2010-07-28 深圳市景丰汇达科技有限公司 读卡器安全认证装置及方法
CN104618114A (zh) * 2015-01-27 2015-05-13 李明 身份证信息获取方法、装置及系统
CN104618115A (zh) * 2015-01-27 2015-05-13 李明 身份证信息获取方法及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070168674A1 (en) * 2003-12-09 2007-07-19 Masao Nonaka Authentication system, authentication apparatus, and recording medium

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101789068A (zh) * 2009-01-22 2010-07-28 深圳市景丰汇达科技有限公司 读卡器安全认证装置及方法
CN104618114A (zh) * 2015-01-27 2015-05-13 李明 身份证信息获取方法、装置及系统
CN104618115A (zh) * 2015-01-27 2015-05-13 李明 身份证信息获取方法及系统

Also Published As

Publication number Publication date
CN106022140A (zh) 2016-10-12

Similar Documents

Publication Publication Date Title
CN105050081B (zh) 网络接入设备接入无线网络接入点的方法、装置和系统
CN102882847B (zh) 基于sd密码卡的物联网健康医疗服务系统的安全通信方法
CN106656510B (zh) 一种加密密钥获取方法及系统
CN105939196B (zh) 身份认证方法和系统
CN103532719B (zh) 动态口令生成方法和系统、交易请求的处理方法和系统
CN106027250B (zh) 一种身份证信息安全传输方法及系统
CN109714360B (zh) 一种智能网关及网关通信处理方法
CN103974255B (zh) 一种车辆接入系统和方法
CN106027457B (zh) 一种身份证信息传输方法和系统
CN105281910A (zh) 带ca数字证书作为入网身份识别的物联网锁及其入网身份识别方法
KR101856682B1 (ko) 엔티티의 인증 방법 및 장치
CN108964897A (zh) 基于群组通信的身份认证系统和方法
CN109450648A (zh) 密钥生成装置、数据处理设备及数据流转系统
CN106027249B (zh) 身份证读卡方法和系统
CN109101803A (zh) 生物识别设备及方法
CN108880799A (zh) 基于群组密钥池的多次身份认证系统和方法
CN108964895A (zh) 基于群组密钥池和改进Kerberos的User-to-User身份认证系统和方法
CN105592056A (zh) 用于移动设备的密码安全系统及其密码安全输入方法
CN106022140B (zh) 身份证读取方法和系统
CN106027256B (zh) 一种身份证读卡响应系统
CN103136667B (zh) 具有电子签名功能的智能卡、智能卡交易系统及方法
CN106027481B (zh) 身份证读取系统
CN103514540B (zh) 一种优盾业务实现方法及系统
CN106372557B (zh) 证件卡信息获取方法、装置及系统
CN108965266A (zh) 一种基于群组密钥池和Kerberos的User-to-User身份认证系统和方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220414

Address after: Tiantianrong building, No. 1, Zhongguancun, Beiqing Road, Haidian District, Beijing 100094

Patentee after: TENDYRON Corp.

Address before: 100086 room 603, building 12, taiyueyuan, Haidian District, Beijing

Patentee before: Li Ming