CN111563243A - 一种基于微信小程序的可信身份认证平台 - Google Patents

一种基于微信小程序的可信身份认证平台 Download PDF

Info

Publication number
CN111563243A
CN111563243A CN202010357863.XA CN202010357863A CN111563243A CN 111563243 A CN111563243 A CN 111563243A CN 202010357863 A CN202010357863 A CN 202010357863A CN 111563243 A CN111563243 A CN 111563243A
Authority
CN
China
Prior art keywords
authentication
user
platform
card
real
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202010357863.XA
Other languages
English (en)
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.)
Naval Aeronautical University
Original Assignee
Naval Aeronautical University
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 Naval Aeronautical University filed Critical Naval Aeronautical University
Priority to CN202010357863.XA priority Critical patent/CN111563243A/zh
Publication of CN111563243A publication Critical patent/CN111563243A/zh
Pending legal-status Critical Current

Links

Images

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/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/32User authentication using biometric data, e.g. fingerprints, iris scans or voiceprints
    • 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/44Program or device authentication
    • 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/45Structures or tools for the administration of authentication
    • G06F21/46Structures or tools for the administration of authentication by designing passwords or checking the strength of passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0861Network architectures or network communication protocols for network security for authentication of entities using biometrical features, e.g. fingerprint, retina-scan
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD

Abstract

本发明公开了一种基于微信小程序的可信身份认证平台,该平台中的数据通信安全机制是平台的基础模块,上层的认证均基于该模块,在用户登录认证、数据传输安全和内部接口密文调用等阶段分别应用了不同的数据安全机制,多维度保护了平台中的数据。采用了实名+实证+实人三重认证机制,其中实名认证初步确保了用户实名安全;实证认证对身份证进行识别,可以确保身份证的真实性;实人认证人脸识别和活体检测,以确保用户为真实活体本人。本发明基于微信小程序开发系统架构,充分利用OCR图像识别、NFC技术、人脸识别、活体检测等新一代身份识别技术,最终使用WXML等语言编程实现客户端和服务器端的设计,搭建手机端的可信任身份认证平台。

Description

一种基于微信小程序的可信身份认证平台
技术领域
本发明属于计算机技术领域,具体地说,涉及一种基于微信小程序的可信身份认证平台。
背景技术
近年来,随着云计算、大数据等现代网络技术的迅速发展,身份认证在民用和军事领域的应用越来越广泛和深入,金融交易、社区管理、快递物流等行业的快速发展对在线身份认证技术的要求也越来越高。但鉴于网络环境错综复杂,网络在线身份认证在给人们带来便利的同时,也成为不法人员进行非法活动的滋生地,如何提高在线身份认证的安全等级,确保用户信息安全是急需进行研究的课题。为此,本文重点研究了在线身份认证安全隐患,针对安全通信潜在威胁设计了多重安全处理机制,一定程度上保证了用户信息传递安全;针对认证处理潜在威胁,以身份证为基础可信任根,根据认证业务需求,实现了“实名+实证+实人”三层安全可信的身份认证;最后实现了一个可信任的身份认证验证系统,用以验证各种安全机制,一定程度上满足了安全需求。
发明内容
本发明的目的在于提供一种基于微信小程序的可信身份认证平台,综合考虑数据通信安全的基础上,实现了在用户登录认证、数据传输安全和内部接口密文调用等阶段分别应用了不同的数据安全机制,多维度保护了平台中的数据;在保证平台使用安全的前提下,设计并实现一个可信任身份认证平台。以身份证为基础可信任根,可根据认证业务需求,实现三类不同的认证方式,即“实名+实证+实人”认证。
其具体技术方案为:
本发明设计的综合考虑数据通信安全的基于微信小程序的可信身份认证平台,包括数据通信安全模块、客户端和服务器端,实现三类不同的认证方式。
第一层次为实名认证。需要对二代身份证正面的人员信息拍照,通过OCR技术识别获取姓名、身份证号等卡面信息进行信息收集,并与后台数据库进行比对。
第二层次为实名+实证认证。在实名认证通过的基础上,利用具有NFC功能的智能设备对证件的合法性进行确认,并以此获取基础可信任根;以基础可信任根为索引,从公安部获取申请人的基础信息、人像比对源信息,集合生物行为识别及生物人脸特征比对等手段来确认申请人证件合法、基本信息有效及本人申请。
第三层次为实名+实证+实人认证。增加了人脸生物特征比对环节,利用活体检测技术,确定采集对象为生物人,以预置的人像/证件照片作为可信数据源进行对比,可确定申请人信息的准确性。
进一步,所述数据通信安全中,在用户登录认证环节使用了动态口令卡或短信验证码等动态口令验证,以及登录设备MAC地址验证等技术;数据传输环节对登录认证信息采用了MD5加密技术,对正常使用时的关键数据采用了RSA非对称加密技术。
进一步,所述客户端的设计使用微信前端开发语言WXML和WXSS,以及脚本语言WXS,在WXML中将按钮绑定到相关函数上,拼接参数后以POST的方式发送JSON请求,通过URL地址发送给AI接口实现功能并回传参数,最后页面重定向到下一页。
进一步,所述服务器端作为MVC设计中的M层,提供了读写数据库到API的封装;平台采用Node.js作为后端开发平台实现对MongoDB数据库的读取,与微信小程序端进行交互并返回JSON数据包的功能,其中使用Express框架搭建服务端;前后端使用HTTPS协议通信,传输JSON格式数据。
进一步,第一层次实名认证中采用OCR身份证识别,绑定一个无参数的函数uploadIdImage函数到上传身份证照片按钮上,先调用微信API拉取相册或者摄像头,获取用户身份证照片后,将其用Base64编码,拼接百度身份证OCR参数后发送至百度AI接口;随后将识别的结果解析,与数据库中存储的内容进行比较,通过后进入下一步。
进一步,第二层次实名+实证认证中,采用NFC近距离读卡。首先测试手机开启NFC功能的返回值并初始化NFC模块,然后完成wx.onHCEMessage的消息监听并发送消息,将shizhengCert函数绑定到读取NFC按钮上;通过南京亿数身份证读取API对身份证进行识别;在身份证芯片验证成功后,将修改flag值,转至人脸活体检测模块。
进一步,第三层次实名+实证+实人认证中,采用人脸识别和人脸活体检测。将uploadRealImage函数绑定到实人认证按钮上;函数调用相机接口,拍照获取图片之后拼接参数,和服务端数据库中预置的身份鉴别图片一起经过Base64编码,发送给百度AI人脸识别API后端进行比对,返回对比相似度比分,若比分大于等于80,则认证成功。另外,为了检测用户为活体,还需要调用百度活体检测API进行活体检测,若用户按要求完成了预制的动作后,则可确认用户为活体。
与现有技术相比,本发明的有益效果为:
本发明基于微信小程序开发的系统架构,充分利用数据安全(MD5、RSA)、OCR识别、NFC技术、人脸识别、活体检测等新一代身份识别技术,最终使用WXML、Node.js等语言编程实现客户端和服务器端的设计,搭建了手机端的可信任身份认证平台。本平台优点体现如下:
1、本发明充分考虑了数据通信安全,分用户登录认证、数据传输安全和内部接口密文调用等阶段分别应用了不同的数据安全机制,多维度保护了平台中的数据。其中用户登录认证保证了用户使用正确的口令和正确的设备登录平台。数据传输安全分类别采用不同的加密技术,保证了用户在与平台交互过程中的关键敏感数据的安全,实现了即使关键数据在传输时被截获,也无法被有效复现的目的。内部接口密文调用通过将平台提供给客户端调用的接口进行转义,利用不相关的“字母+数字”代号来表示,可以进一步避免被恶意用户非法调用或破解;另外,在内部接口中每次都会对调用的客户端进行身份信息验证,再次确保了调用安全。
2、本发明采用了“实名+实证+实人”三重认证机制,确保了用户为真实本人且为活体。其中,实名认证通过OCR技术对用户身份证正面信息进行识别,并将识别后的信息与用户预先注册存储在平台的身份信息进行比对,初步确保了用户实名安全。实证认证通过NFC技术对身份证进行识别,获取基础可信任根,并基于它获取公安部身份证数据库真实身份信息,并进行再次比对,这样可以确保身份证的真实性。实人认证通过对用户的人脸进行拍照,并与实证认证阶段获取的真实身份证人脸图像进行比对,以确保用户是本人;另外,为了进一步确保用户为真实活体本人,还增加了活体检测,并穿插抓拍人脸正面图片进行再比对,通过双重认证机制确保了用户的合法身份。
附图说明
图1为登录认证时数据传输安全机制;
图2为一次迭代;
图3为正常使用时数据传输安全机制;
图4为客户端调用接口安全验证示意图;
图5为客户端调用实名认证接口示意图;
图6为客户端调用实证认证接口示意图;
图7为客户端调用实人认证接口示意图;
图8为用户认证流程图;
图9为平台功能模块图;
图10为平台功能结构图;
图11前端界面设计关系图;
图12为服务器端项目架构;
图13为登陆页面;
图14为实名认证;
图15为实证认证;
图16为获取身份凭证。
图17实人认证。
具体实施方式
下面结合附图和具体实施过程对本发明的实施方案作进一步详细地说明。
1、数据通信安全设计
进行数据通信安全设计主要是防止非法用户。用户在使用前必须提前注册登记动态口令卡、手机号码、移动设备MAC信息。这样非法用户无法准确获取每次登录口令,且无法使用未注册设备进行系统登录,使得其无法非法使用系统。另外,正常用户在使用系统过程中,所传递的关键数据均进行非对称加密,所调用的服务接口均经过密文处理,使得非法用户即使截获信息,也无法复现数据,进一步阻挡了非法用户。
(1)用户登录认证
用户登录认证作为可信身份认证平台的第一层安全防护,可以初步确保当前登录方式为准合法用户使用合法设备登录。
1)动态口令验证
用户在使用可信身份认证平台时,无需再使用传统的“用户名+密码”,而是改用动态口令方式。此处动态口令可以采用两种方式:一是动态口令卡;二是短信验证码。
方式一:动态口令卡。
此种方式适用于用户登录设备不具备短信通信功能的情况。用户在可信身份认证平台注册时,附带下发电子口令卡,该卡记录了一个50×50的二维矩阵,矩阵每一单元格为4位“数字+字母”组合。样例如下:
表1电子动态口令卡
Figure BDA0002474094570000061
用户在登录时,系统会随机给用户下发一个标签组合,例如“A2B2”。当用户获取这个随机标签后,可以查找电子口令卡,进而获知当前动态密码为“qT7m”。服务端同样维护了与该用户相同的电子口令卡,用于提取相同的动态口令以验证客户端用户口令的正确性。
方式二:短信验证码。
此种方式适用于用户登录设备具备短信通信功能的情况。用户在可信身份认证平台注册时,提供手机号码,用于接收服务端发送的随机验证码。用户在每次登录时,选择短信验证登录方式,则系统会向用户注册手机号码发送随机验证码。用户可借此验证码登录系统。
2)登录设备MAC地址验证
通过动态口令认证确保了当前用户为准合法用户,但无法保证该准合法用户所使用的登录设备的合法性。为此,本发明增加了对登录设备MAC地址的验证。
用户在登录时,客户端自动获取当前登录设备的MAC地址信息,会同动态口令一起发送给服务端进行验证。服务端验证收到的MAC地址信息与用户注册时提供的MAC地址信息是否一致,以确定是否是合法登录设备。
(2)数据传输安全
无论是用户登录信息还是正常认证过程信息,都需要通过无线网络经Internet进行传输,当数据不经过任何处理,则是以明文形式进行传输,这样就存在数据传输泄密安全隐患。为了提高可信身份认证平台的安全等级,则需要对传输数据进行加密。所传输的数据主要分为两类:一是登录认证信息;二是正常使用过程中的关键信息。下面分别针对这两类信息进行加密处理。
种类一:登录认证信息
本发明为了防止登录认证信息在网络传输时被截获破解,平台考虑增加MD5(Message-digest Algorithm 5)对登录认证信息进行加密。MD5作为目前常用的一种Hash加密算法,专门针对理论上任意长的输入产生固定128位长输出。在用户A和B通信的过程中,为了保证认证信息在传送过程中没有被修改,A把自己的信息通过散列函数生成哈希值,附在消息尾部,B收到消息后,重新计算哈希值,如果哈希值比对一致,则表示在传送过程中信息未被篡改,反之则表明信息被篡改。流程如图1所示。
算法加密处理过程具体包含了如下几个步骤:
Ⅰ.消息填充
首先填充消息,使其长度为(n×512﹣64)位,其中n为大于0的整数。注意,即使消息本身长度为448=(1×512﹣64)位,满足要求,还是需要继续填充512位为960=(2×512﹣64)位。填充的内容由一个1和后续的0组成。然后,在填充内容的后面再附上64位,这64位存放的内容是填充之前消息的长度,一旦消息长度大于264,则取其对264取模的结果进行填充。
填充过后,消息的长度为512×L,则可将消息分为每512位长一组的Y0,Y1,……,YL-1,再把每一个分组Y分为16个32比特长的字单位,这样消息为N=L×16个字,因此消息还可以按字表示为M[0,……,N-1]。
Ⅱ.缓冲区初始化
Hash函数的中间结果和最终结果保存在128位的缓冲区当中,缓冲区用32位的寄存器表示。可用4个32比特长的字表示:A、B、C、D。初始值以十六进制表示为A=01234567,B=89ABCDEF,C=FEDCBA98,D=76543210。
Ⅲ.HMD5运算
以分组为单位对信息进行处理,每一分组Yq(q=0,……,L-1)都经过压缩函数HMD5处理。HMD5是算法的核心,一次算法包括有4轮处理过程。HMD5的4轮处理过程结构一致,但所用的逻辑函数不同,可分别表示为F、G、H、I。只不过每一轮用到的逻辑函数各不相同,同时每一步的输入函数也有所不同。
表2 4轮的逻辑函数
基本函数g 逻辑函数g(b,c,d)
1 F(b,c,d) (b∧c)∨(b-∧d)
2 G(b,c,d) (b∧d)∨(c∧d-)
3 H(b,c,d) b⊕c⊕d
4 I(b,c,d) c⊕d∨d-
每轮的输入为当前处理的512位分组Yq和缓冲区当前的A、B、C、D值,输出继续存储缓冲区中生成新的A、B、C、D。每轮要完成16步重复迭代运算,四轮共计64步完成。64步途中每一步都按照图2示流程进行迭代,其中X[k]是当前分组Yq的第k个32位字,T[i]作为消除输入数据规律性的数据。
每一轮循环左移的情况不同,第一轮分别左移7、12、17、22位,第二轮分别左移5、9、14、22位,第三轮分别左移4、11、16、23位,第四轮分别左移6、10、15、21位。
最终第四轮的输出与第一轮的输入进行模232相加结果为输出,也就是下一个分组进行运算的缓冲区初始值。
Ⅳ.输出
全部L个512位分组按照上述描述处理完,最后一个分组的128位输出即为所有迭代得出的哈希值。
种类二:正常使用时关键数据传输信息
在用户登录成功后进行关键数据传输时,也需要进行加密处理。此处主要是解决用户登录后正常进行数据操作的传递安全问题。此时数据分为两大类:一是字符信息数据,如姓名、身份证号、身份证基础可信任根等;二是图片数据,如人脸图片等。为了缩短处理时间,提高加密效率,此处仅对于字符敏感信息数据使用非对称密码加密技术(RSA)。令客户端持有公钥,而后台数据处理端持有私钥,在保证私钥安全的基础上,完成加密传输数据。利用RSA加密实现平台的数据传递安全原理如图3所示。
使用RSA算法,把选取的两大素数之积n和公钥e存储于手机端数据库SQLite中,另外还要把整数n和私钥d存储于平台数据库中。在数据传输的过程中,客户端向服务端发送的内容包括用户真正需要传输的正常关键信息数据(如身份证号等),以及已被MD5算法加密处理过的“动态口令+设备MAC”客户身份信息(身份认证在用户登录中已验证完备,此处进行验证的是用户每一步操作的合法性)。全部内容利用RSA算法加密后,再发送至服务端。
每一次数据传输的目的都是调用在服务端的某个或某些具体的接口。以用户进行实证认证为例,在服务端接收到经RSA公钥加密过的客户身份信息和身份证基础可信任根等数据后,服务端的处理过程如下:
ⅰ解密。首先对加密内容进行RSA私钥解密得到身份信息和正常数据。
ⅱ验真。其次需要再次根据服务端存储的动态口令(MD5加密值)进行内容比较验证身份信息。
ⅲ服务。最后验证身份信息无误后,处理正常的数据请求,实现后续服务。
每一次数据传输过程都需要调用某个或某些接口服务,每个服务都必须经过解密验真无误的步骤才处理真正的服务。因为对所有服务而言解密和验真都属于必须经过的步骤,为了简化代码的书写,在服务端中实现将解密函数和比较动态口令(MD5加密值)函数作为公共函数供所有的服务函数调用。
(3)内部接口密文调用
用户客户端若要使用可信身份认证平台提供的服务,必须通过网络调用平台提供的接口。一般服务端为了方便用户调用,会将功能接口以显示的具有一定含义的命名方式暴露给用户,这种方式对于确需公开给大众用户自主调用时可以避免混淆,达到“见名知意”的目的,如用户开发地图应用时所调用的百度地图接口等。但是对于本可信身份认证平台来说,将服务端接口以这种方式提供给客户端调用,必然会造成一定的安全隐患。为此,本发明通过将具有含义的明文接口及其参数转换为“字母+数字”组合代号方式,可以一定程度上防止接口被非法人员截获后通过接口名字和参数获知接口功能,进而进行恶意调用。经过转换后接口即使被非法获取也无法“见名知意”,增加了安全性。如下表3所示。
表3接口转义示例
Figure BDA0002474094570000111
另外,为了进一步增加接口的安全性,平台在每个接口中还会验证接口调用设备的MAC地址,这样可以防止非法用户通过非法设备调用接口。流程如图4所示。
2、实名、实证和实人认证设计
通过以上验证后,可以初步确保“准合法用户”使用“合法设备”登录可信身份认证平台,之所以是“准合法用户”是因为可能会存在非法用户盗取合法用户设备进行登录的情况。为此,还需要对“准合法用户”的身份进行深层次的认证。本发明采用“实名+实证+实人”认证设计,主要是认证合法用户。首先需要认证用户身份证信息,通过OCR识别用户身份证表面文字信息,确保用户信息与注册的身份证信息相一致。其次,为了防止身份证为非法仿制证件,还必须通过手机NFC功能对用户提供的身份证进行读卡验证操作,确保身份证卡片的真实性。最后,为了确保用户为真实本人且为活体,必须通过活体检测和人脸识别功能对用户进行验证。
(1)实名认证
实名认证主要是验证用户身份证正面信息与其在可信身份认证平台预留的身份信息是否一致。过程为:“准合法用户”通过移动客户终端(如具有NFC和拍照功能的手机等)调用平台实名认证接口,对身份证正面进行拍照,并上传至平台服务端;然后平台服务端采用OCR技术对其中的关键信息(如姓名、出生年月、性别、身份证号等)进行识别;最后比对客户端提供的信息与客户在平台预留的信息一致性,并返回结果。流程如图5所示。
(2)实证认证
通过实名认证后,可以初步确认用户的身份关键信息的合法性,但是也存在一定漏洞。比如非法用户提供的身份证是仿制证件或提供的身份证照片为其它途径获取等,此时仅通过实名认证已经无法确认“准合法用户”的身份,为此必须再增加实证认证。
实证认证主要是验证“准合法用户”提供的身份证是否是真实证件,可以排除假冒仿制证件或仅提供身份证照片所带来的安全隐患。过程为:“准合法用户”通过具有NFC功能的移动客户端调用平台实证认证接口,此时要确保客户端的NFC功能是开启状态;将身份证实体贴近客户端,客户端会与身份证之间简历NFC连接,并获取身份证中芯片所存储的基础可信任根等信息;客户端将识别出的基础可信任根等信息上传至服务端;服务端以基础可信任根为索引,从公安部网站获取申请人的基础信息、人像比对源等信息,并跟客户端在实名阶段所提供的身份证关键信息进行再次比对,从而确保了“准合法用户”提供的身份证的真实性。流程如图6所示。
(3)实人认证
通过实名认证和实证认证后,可以初步确保“准合法用户”提供了真实的身份证件来进行身份认证,但仍然存在一定漏洞。比如非法用户盗用了合法用户的手机和身份证时,若仅基于以上认证方式,则无法准确识别出其中的非法性,为此必须再增加实人认证。
实人认证主要是验证“准合法用户”确系本人,且为活体,可以排除非法用户仅通过证件冒名认证的安全隐患。过程为:“准合法用户”通过移动客户端的摄像头对自己头像进行拍照,将照片上传至服务端;服务端通过人脸识别技术将客户端上传的人脸图片与通过实证认证阶段获取的身份证上的头像进行比对,确认当前操作验证过程的是“本人”。但此时还无法完全确保是真实的“本人”,因为客户端提供的用于进行人脸识别的人脸图片可能是预先拍摄的,为此还需要进行活体检测。系统预设眨眼、摇头等多种动作,并自定义生效动作及校验顺序。每次进行活体检测时,“准合法用户”按照系统提示,做出相应的动作,系统会随机抓取多图进行活体判断。这样即可保证当前用户为活体,又防止非法用户提前录制。为了进一步确保当前活体是合法用户本人,在进行活体检测过程中会对用户正面图片进行抓拍,并与实证认证阶段获取的身份证上的头像进行再次比对。这样通过双重验证机制,最终确定“准合法用户”为“合法用户”本人,且为活体。流程如图7所示。
通过“实名+实证+实人”认证后,基本可以确定“准合法用户”为“合法用户”,进而可以进行后续操作。
3可信任身份认证平台总体方案
本发明基于微信小程序的系统架构,综合考虑数据通信安全,设计并实现了一个可信任身份认证平台。该平台根据认证业务需求,实现了“实名+实证+实人”三重认证机制。
3.1平台认证流程
平台认证流程如图8所示。
(1)平台分别在用户登录认证、数据传输安全和内部接口密文调用等阶段应用了不同的数据安全机制,多维度确保数据安全。
(2)通过“实名+实证+实人”三重认证机制,最终确保用户的合法性。
第一层次为“实名”认证。需要对二代身份证正面的人员信息拍照,通过OCR技术识别获取姓名、身份证号等卡面信息进行信息收集,并与后台数据库进行比对。
第二层次为“实名+实证”认证。在实名认证通过的基础上,利用具有NFC功能的智能设备对证件的合法性进行确认,并以此获取基础可信任根。以基础可信任根为索引,从公安部身份证数据库获取申请人的基础信息、人像比对源信息,通过比对再次确认申请人证件合法、基本信息有效及本人申请。
第三层次为“实名+实证+实人”认证。因系统无法确认现场采集对象是生物人像还是照片人人像,因此“实名+实证”仍然存在假冒的漏洞。而“实名+实证+实人”认证较“实名+实证”认证有了很大的进步,增加了人脸生物特征比对环节,利用活体检测技术,确定采集对象为生物人,以预置的人像/证件照片作为可信数据源进行对比,可确定申请人的合法性。
基于平台的认证流程,设计平台功能模块如图9所示,功能结构如图10所示。
3.2平台数据库设计
(1)服务端MongoDB数据库设计
由于身份认证涉及的数据大多是个人身份信息,具有数据体量大、结构简单、频率快等特点,对读写数据的效率要求非常高,因此使用MongoDB作为服务端后台数据库。另外出于安全性的考虑,数据库中的个人身份信息并没有采用用户输入方式验证,而是在部署应用时由DBA从可信数据源进行导入。数据字典如下表4所示:
表4 MongoDB数据库数据字典
Key名 示例数据 数据类型
_id 5cd40d2782f6e32a541bdd4c ObjectId
Phone 13811111111 String
Password test1 String
Name 1qazxsw2 String
Idnum 张XX String
Sex String
Nat String
Addr XX省XX市XX街道XXX String
Birth 19970120 String
Idpic /9j/4AAQSkZJRgABAQEAYA….. String
(2)客户端数据库设计
在认证过程中,客户端需要加密存储动态口令卡、RSA非对称加密公钥等信息。本发明采用SQLite数据库用于客户端数据的存储。
表5动态口令卡
Key名 示例数据 数据类型
_id 9yk40d2782f6e32a541bkh7t ObjectId
RowId A1 String
ColId B1 String
Value aE3h String
表6 RSA公钥
Key名 示例数据 数据类型
_id 4hn00d2782f6e32a541b97ug ObjectId
name RSAPublicKey String
Value 5m9m14XH3oqLJ8bNGw9e4rGpXpck... String
注意:以上数据库内容需要设置访问权限,只有注册客户端才保存该数据库,且数据库中的内容,尤其是动态口令要加密存储。
3.3客户端设计
平台基于微信小程序,对各个认证功能模块的调用实现可信的身份认证,力求便捷、高效、简约,在这里使用微信前端开发语言WXML和WXSS,以及脚本语言WXS。其中WXML是微信基于HTML设计的一套标签语言,实现了基本的组件、事件系统和数据双向绑定,并采用Mustache模板引擎;WXSS是兼容CSS的微信小程序样式表规范,在CSS的基础上扩展了许多有用的功能;WXS则是基于JS语法的微信脚本语言,内部封装了微信的基本API并可以兼容大多数JS脚本。根据功能需求,该框架所要设计实现的特点如下:
1.系统界面布局大方简约,融合安全元素;
2.实现“实名+实证+实人”三层认证过程,操作流程简单方便;
3.系统可扩展性较强,便于日后根据需求变更修改系统;
4.系统运行稳定,鲁棒性强;
5.基于微信小程序实现,不依赖其他终端设备,便于部署使用;
6.可以集成在其他系统中作为子系统提供身份认证的功能。
界面设计分为三级界面,具体关系如图11所示。
3.4服务器端设计
服务器端作为MVC设计中的M层,提供了读写数据库到API的封装。平台采用Node.js作为后端开发平台,实现对MongoDB数据库的读取、与微信小程序端进行交互并返回JSON数据包的功能,其中使用Express框架搭建服务端。前后端使用HTTPS协议通信,传输JSON格式数据。该后端设计的优点有:
1.Node.js代码原生异步处理,在可能具有阻塞的场景中(如DB读写,网络、磁盘请求)具有响应速度快的优势;
2.Express.js框架以路由栈为线索构建代码,封装了其他服务器端,便于快速实现后端API搭建;
3.MongoDB数据库原生提供异步连接支持,每次读写都是异步请求,避免在后端使用线程池,可以节省计算资源提高处理效率。
服务器端架构如图12所示。app.js为框架入口,其中注册了Express.js框架所需的一系列中间件,进行了基础路由配置等。bin/文件夹存放框架启动配置,www文件中配置了服务器启动的端口、IP等信息。cert/文件夹存放SSL证书,用以启动HTTPS服务器。package.json文件为项目依赖树。public/文件夹为静态资源目录。routes/文件夹为路由目录。
4身份识别方案
4.1OCR身份证识别
OCR身份证识别技术基于深度学习算法,融合多种图像处理技术,可以精准识别公民身份证上的图像文字信息并返回和后台数据库进行比对,经过对比选用百度OCR证件识别API实现,具体设计如下:
绑定一个无参数的函数uploadIdImage函数到“上传身份证照片”按钮上,先调用微信API拉取相册或者摄像头,获取用户身份证照片后,将其用Base64编码,拼接百度身份证OCR参数后发送至百度AI接口。随后将识别的结果解析,与数据库中存储的内容进行比较,通过后进入后续认证环节。
4.2NFC近距离读卡
因为我国公民的身份证由公安使用国密算法加密,没有密钥无法对身份证卡面信息进行解密,可以采用南京亿数信息科技有限公司的身份证网络读取SDK用于对身份证芯片信息进行读取。另外,本发明基于微信小程序的框架开发,而小程序正好能够提供基于NCE模式的NFC开发接口,通过获取证件的NFC信号确认证件的真实性。以下是结合小程序NFC接口开发文档进行的开发步骤:
首先测试手机开启NFC功能的返回值并初始化NFC模块,然后完成wx.onHCEMessage的消息监听并发送消息,将shizhengCert函数绑定到读取NFC按钮上。在身份证芯片验证成功后,将修改flag值,转至后续认证环节。
4.3人脸活体检测
目前人脸活体检测可以接入的平台有Face++、阿里云、腾讯云、百度云等,综合考虑接口稳定性、价格技术等因素,最重要的是百度人脸识别API可以实现手机端调用相机实时拍摄人脸的功能,可以判断重复拍摄照片、视频中的人脸所产生的摩尔纹。另外百度人脸识别AI实现,具有稳定可靠、识别精度高,并且采用接口+SDK双重融合检测,可抵御照片、视频等攻击。接入的步骤和OCR身份证识别技术类似。具体设计如下:
将uploadRealImage函数绑定到实人认证按钮上。函数调用相机接口进行人脸拍摄,并将图片传至服务端。服务端之后拼接参数,将客户端上传图片和数据库中预置的身份鉴别图片一起经过Base64编码,发送给百度AI人脸识别API后端进行比对,返回对比相似度比分,若比分大于等于80,则认证成功。另外,为了检测用户为活体,还需要调用百度活体检测API进行活体检测,若用户按要求完成了预制的动作后,则可确认用户为活体。
5功能测试
使用微信开发者工具进行平台认证过程的测试,内容包括用户登录、实名认证、实证认证、实人认证、获取身份凭证。测试过程如下:
(1)开启后台腾讯云服务器;
(2)打开微信开发者工具,导入项目代码,输入AppID;
(3)Node手动部署,建立与服务器的连接;
(4)设置相关参数进行测试。
登录界面如图13所示。实名认证界面如图14所示。实证认证界面如图15、图16所示。实人认证界面如图17所示。
以上所述,仅为本发明较佳的具体实施方式,本发明的保护范围不限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可显而易见地得到的技术方案的简单变化或等效替换均落入本发明的保护范围内。

Claims (7)

1.一种基于微信小程序的可信身份认证平台,其特征在于,综合考虑数据通信安全,分别在用户登录认证、数据传输安全和内部接口密文调用等阶段应用了不同的数据安全机制;包括数据通信安全模块、客户端和服务器端,在保证平台使用安全的前提下,平台通过客户端和服务器端,实现三类不同的认证方式;
第一层次为实名认证,需要对二代身份证正面的人员信息拍照,通过OCR技术识别获取姓名、身份证号的卡面信息进行信息收集,并与后台数据库进行比对;
第二层次为实名+实证认证,在实名认证通过的基础上,利用具有NFC功能的智能设备对证件的合法性进行确认,并以此获取基础可信任根;以基础可信任根为索引,从公安部获取申请人的基础信息、人像比对源信息,集合生物行为识别及生物人脸特征比对的手段来确认申请人证件合法、基本信息有效及本人申请;
第三层次为实名+实证+实人认证,增加了人脸生物特征比对环节,利用活体检测技术,确定采集对象为生物人,以预置的人像/证件照片作为可信数据源进行对比,确定申请人信息的准确性。
2.根据权利要求1所述的基于微信小程序的可信身份认证平台,其特征在于,综合考虑数据通信安全,用户登录认证环节使用了动态口令卡或短信验证码的动态口令验证,以及登录设备MAC地址验证;数据传输环节对登录认证信息采用了MD5加密,对正常使用时的关键数据采用了RSA非对称加密。
3.根据权利要求1所述的基于微信小程序的可信身份认证平台,其特征在于,所述平台客户端的设计使用微信前端开发语言WXML和WXSS,以及脚本语言WXS,在WXML中将按钮绑定到相关函数上,拼接参数后以POST的方式发送JSON请求,通过URL地址发送给AI接口实现功能并回传参数,最后页面重定向到下一页。
4.根据权利要求1所述的基于微信小程序的可信身份认证平台,其特征在于,所述平台服务器端作为MVC设计中的M层,提供了读写数据库到API的封装;平台采用Node.js作为后端开发平台实现对MongoDB数据库的读取,与微信小程序端进行交互并返回JSON数据包的功能,其中使用Express框架搭建服务端;前后端使用HTTPS协议通信,传输JSON格式数据。
5.根据权利要求1所述的基于微信小程序的可信身份认证平台,其特征在于,平台第一层次实名认证中采用OCR身份证识别,绑定一个无参数的函数uploadIdImage函数到上传身份证照片按钮上,先调用微信API拉取相册或者摄像头,获取用户身份证照片后,将其用Base64编码,拼接百度身份证OCR参数后发送至百度AI接口;随后将识别的结果解析,与数据库中存储的内容进行比较,通过后进入下一步。
6.根据权利要求1所述的基于微信小程序的可信身份认证平台,其特征在于,平台第二层次实名+实证认证中,采用NFC近距离读卡,首先测试手机开启NFC功能的返回值并初始化NFC模块,然后完成wx.onHCEMessage的消息监听并发送消息,将shizhengCert函数绑定到读取NFC按钮上;通过南京亿数身份证读取API对身份证进行识别;在身份证芯片验证成功后,将修改flag值,转至人脸活体检测模块。
7.根据权利要求1所述的基于微信小程序的可信身份认证平台,其特征在于,平台第三层次实名+实证+实人认证中,采用人脸识别和人脸活体检测,将uploadRealImage函数绑定到实人认证按钮上;函数调用相机接口,拍照获取图片之后拼接参数,和服务端数据库中预置的身份鉴别图片一起经过Base64编码,发送给百度AI人脸识别API后端进行比对,返回对比相似度比分,若比分大于等于80,则认证成功,为了检测用户为活体,还需要调用百度活体检测API进行活体检测,若用户按要求完成了预制的动作后,则确认用户为活体。
CN202010357863.XA 2020-04-29 2020-04-29 一种基于微信小程序的可信身份认证平台 Pending CN111563243A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010357863.XA CN111563243A (zh) 2020-04-29 2020-04-29 一种基于微信小程序的可信身份认证平台

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010357863.XA CN111563243A (zh) 2020-04-29 2020-04-29 一种基于微信小程序的可信身份认证平台

Publications (1)

Publication Number Publication Date
CN111563243A true CN111563243A (zh) 2020-08-21

Family

ID=72070637

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010357863.XA Pending CN111563243A (zh) 2020-04-29 2020-04-29 一种基于微信小程序的可信身份认证平台

Country Status (1)

Country Link
CN (1) CN111563243A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112165579A (zh) * 2020-10-10 2021-01-01 北京明略昭辉科技有限公司 一种规范拍摄方法、系统、计算机设备及存储介质
CN112598837A (zh) * 2020-11-24 2021-04-02 福州芸鼎互链信息科技有限公司 一种通过信息交互门禁实现人脸自助录入的方法
CN113194023A (zh) * 2020-11-02 2021-07-30 常熟理工学院 丢失证件找回系统及其控制方法
CN113271591A (zh) * 2021-05-25 2021-08-17 广州瀚信通信科技股份有限公司 基于5g切片网络的二标四实数据加密交互方法及装置
CN113660254A (zh) * 2021-08-12 2021-11-16 上海酷栈科技有限公司 一种云桌面分布式网络终端安全接入策略、设备及系统
CN116994380A (zh) * 2023-09-21 2023-11-03 浙江口碑网络技术有限公司 一种信息交互方法和装置
CN117541317A (zh) * 2023-12-12 2024-02-09 湖南中科拓达信息科技有限公司 基于数据安全的人脸识别消费分发方法及系统

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103095659A (zh) * 2011-11-03 2013-05-08 北京神州泰岳软件股份有限公司 一种互联网中账户登录方法和系统
CN103269270A (zh) * 2013-04-25 2013-08-28 安徽杨凌科技有限公司 一种基于手机号码的实名认证安全登录的方法及系统
CN105138985A (zh) * 2015-08-25 2015-12-09 北京拓明科技有限公司 一种基于微信公众号的实名认证方法和系统
CN105703910A (zh) * 2016-04-18 2016-06-22 中邮建技术有限公司 基于微信服务号的动态令牌验证方法
CN106068518A (zh) * 2013-12-03 2016-11-02 安东尼奥·费雷拉·德索萨 利用接近式数据读取技术,查询并验证国家驾照(cnh)、车辆登记证书(crv)和车辆登记及领牌证书(crlv)的真实性、有效性和限制的电子系统
CN106682647A (zh) * 2017-01-20 2017-05-17 上海易销科技股份有限公司 基于人脸识别的人证合一系统及方法
CN106789077A (zh) * 2016-12-29 2017-05-31 北京握奇智能科技有限公司 一种实名认证方法及系统
CN108173870A (zh) * 2018-01-15 2018-06-15 广州大白互联网科技有限公司 一种用于身份认证的网证生成方法和系统
CN109145063A (zh) * 2018-09-04 2019-01-04 奥壹科技(广州)有限公司 诚信认证方法、身份信息的认证方法和装置
CN109413086A (zh) * 2018-11-16 2019-03-01 阿里巴巴集团控股有限公司 线上核验身份信息的方法及装置
CN109598663A (zh) * 2018-11-16 2019-04-09 阿里巴巴集团控股有限公司 提供和获取安全身份信息的方法及装置
CN109684801A (zh) * 2018-11-16 2019-04-26 阿里巴巴集团控股有限公司 电子证件的生成、签发和验证方法及装置
US20190332754A1 (en) * 2018-03-05 2019-10-31 The Boogie Badge, Inc. Digital identity authentication and verification system, method, and device
CN110472714A (zh) * 2019-08-22 2019-11-19 广东创能科技股份有限公司 一种多途径实人实证验证的程序和方法

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103095659A (zh) * 2011-11-03 2013-05-08 北京神州泰岳软件股份有限公司 一种互联网中账户登录方法和系统
CN103269270A (zh) * 2013-04-25 2013-08-28 安徽杨凌科技有限公司 一种基于手机号码的实名认证安全登录的方法及系统
CN106068518A (zh) * 2013-12-03 2016-11-02 安东尼奥·费雷拉·德索萨 利用接近式数据读取技术,查询并验证国家驾照(cnh)、车辆登记证书(crv)和车辆登记及领牌证书(crlv)的真实性、有效性和限制的电子系统
CN105138985A (zh) * 2015-08-25 2015-12-09 北京拓明科技有限公司 一种基于微信公众号的实名认证方法和系统
CN105703910A (zh) * 2016-04-18 2016-06-22 中邮建技术有限公司 基于微信服务号的动态令牌验证方法
CN106789077A (zh) * 2016-12-29 2017-05-31 北京握奇智能科技有限公司 一种实名认证方法及系统
CN106682647A (zh) * 2017-01-20 2017-05-17 上海易销科技股份有限公司 基于人脸识别的人证合一系统及方法
CN108173870A (zh) * 2018-01-15 2018-06-15 广州大白互联网科技有限公司 一种用于身份认证的网证生成方法和系统
US20190332754A1 (en) * 2018-03-05 2019-10-31 The Boogie Badge, Inc. Digital identity authentication and verification system, method, and device
CN109145063A (zh) * 2018-09-04 2019-01-04 奥壹科技(广州)有限公司 诚信认证方法、身份信息的认证方法和装置
CN109413086A (zh) * 2018-11-16 2019-03-01 阿里巴巴集团控股有限公司 线上核验身份信息的方法及装置
CN109598663A (zh) * 2018-11-16 2019-04-09 阿里巴巴集团控股有限公司 提供和获取安全身份信息的方法及装置
CN109684801A (zh) * 2018-11-16 2019-04-26 阿里巴巴集团控股有限公司 电子证件的生成、签发和验证方法及装置
CN110472714A (zh) * 2019-08-22 2019-11-19 广东创能科技股份有限公司 一种多途径实人实证验证的程序和方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
DZP_CODER: "微信小程序 页面跳转 传递参数 https://blog.csdn.net/qq_31383345/article/details/52795212", 《CSDN》 *
宋宪荣,张猛: "网络可信身份认证技术问题研究", 《网络空间安全》 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112165579A (zh) * 2020-10-10 2021-01-01 北京明略昭辉科技有限公司 一种规范拍摄方法、系统、计算机设备及存储介质
CN113194023A (zh) * 2020-11-02 2021-07-30 常熟理工学院 丢失证件找回系统及其控制方法
CN113194023B (zh) * 2020-11-02 2023-06-20 常熟理工学院 丢失证件找回系统及其控制方法
CN112598837A (zh) * 2020-11-24 2021-04-02 福州芸鼎互链信息科技有限公司 一种通过信息交互门禁实现人脸自助录入的方法
CN113271591A (zh) * 2021-05-25 2021-08-17 广州瀚信通信科技股份有限公司 基于5g切片网络的二标四实数据加密交互方法及装置
CN113660254A (zh) * 2021-08-12 2021-11-16 上海酷栈科技有限公司 一种云桌面分布式网络终端安全接入策略、设备及系统
CN116994380A (zh) * 2023-09-21 2023-11-03 浙江口碑网络技术有限公司 一种信息交互方法和装置
CN116994380B (zh) * 2023-09-21 2024-01-02 浙江口碑网络技术有限公司 一种信息交互方法和装置
CN117541317A (zh) * 2023-12-12 2024-02-09 湖南中科拓达信息科技有限公司 基于数据安全的人脸识别消费分发方法及系统

Similar Documents

Publication Publication Date Title
CN111563243A (zh) 一种基于微信小程序的可信身份认证平台
CN105763521B (zh) 一种设备验证方法及装置
JP6853364B2 (ja) ブロックチェーンベースのデジタル証明書を実装するためのシステム及び方法
JP6965352B2 (ja) デジタル・マークを生成するためのシステム及び方法
CN105472052B (zh) 一种跨域服务器的登录方法和系统
CN108833114A (zh) 一种基于区块链的去中心化身份认证系统及方法
CN105164689B (zh) 用户认证系统及方法
US20180006825A1 (en) Electronic signature framework with enhanced security
CN110086608A (zh) 用户认证方法、装置、计算机设备及计算机可读存储介质
WO2016078182A1 (zh) 敏感数据的授权方法、装置和系统
CN109801192A (zh) 电子合同签订方法、装置、计算机设备及存储介质
CN110490004A (zh) 电子签章文件的处理方法、客户端、计算机设备及介质
US20230034169A1 (en) Non-fungible token authentication
WO2019233951A1 (fr) Une application logicielle et un serveur informatique pour authentifier l'identité d'un créateur de contenu numérique et l'intégrité du contenu du créateur publié
CN113435888B (zh) 一种账户数据处理方法、装置、设备及存储介质
Cavoukian et al. Advances in biometric encryption: Taking privacy by design from academic research to deployment
CN103559221B (zh) 一种进行多媒体数据处理的方法、装置和浏览器
CN109767376A (zh) 图像认证方法、装置、计算机设备及存储介质
CN111709860B (zh) 遗嘱处理方法、装置、设备及存储介质
CN105162604A (zh) 一种基于特征图像识别的验证方法、服务器及系统
CN109242666A (zh) 基于区块链获取个人征信方法、装置及计算机设备
CN103532979A (zh) CGI web界面下的多会话验证码的产生及验证方法
EP3915221B1 (en) Offline interception-free interaction with a cryptocurrency network using a network-disabled device
CN108304701A (zh) 一种生成身份签注的方法及系统
KR102517001B1 (ko) 블록체인 네트워크 상에서 전자서명 처리 시스템 및 방법

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20200821