CN112104672B - 一种通过微信小程序下载蓝牙设备证书的实现方法及系统 - Google Patents
一种通过微信小程序下载蓝牙设备证书的实现方法及系统 Download PDFInfo
- Publication number
- CN112104672B CN112104672B CN202011258159.5A CN202011258159A CN112104672B CN 112104672 B CN112104672 B CN 112104672B CN 202011258159 A CN202011258159 A CN 202011258159A CN 112104672 B CN112104672 B CN 112104672B
- Authority
- CN
- China
- Prior art keywords
- user
- applet
- certificate
- identifier
- logged
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0823—Network architectures or network communication protocols for network security for authentication of entities using certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L67/025—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/06—Authentication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/80—Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W76/00—Connection management
- H04W76/10—Connection setup
- H04W76/14—Direct-mode setup
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明公开一种通过微信小程序下载蓝牙设备证书的实现方法及系统,属于信息安全领域。微信小程序与蓝牙设备建立连接;小程序服务器对蓝牙设备进行验证,如合法则微信小程序判断连接的蓝牙设备是否为所述手机银行用户绑定的蓝牙设备,是则小程序服务器从蓝牙设备中获取签名公钥并保存,将验证密码指令通过微信小程序发送给蓝牙设备进行验证;如验证成功则小程序服务器根据证书标识符和签名公钥生成待签名数据并发送给蓝牙设备进行签名,微信小程序根据签名结果和待签名数据向给认证中心申请证书;小程序服务器对证书进行验证,如有效则将证书通过微信小程序发送给蓝牙设备进行保存。本发明可以更加快捷方便的实现证书下载/更新。
Description
技术领域
本发明涉及信息安全领域,尤其涉及一种通过微信小程序下载蓝牙设备证书的实现方法及系统。
背景技术
目前蓝牙设备申请下载证书,有PC端下载证书和移动端下载证书两种方式:对于PC端下载证书,需要有PC主机协助,安装PC端下载证书专用工具,通过USB连接蓝牙设备进行证书下载,但由于PC主机使用不方便等因素影响,导致手机银行用户下载证书只能到柜台进行证书下载;对于移动端下载证书,需要下载银行app,在银行app内部集成下载证书功能,会增加银行app体积和开发难度,同时由于app内功能众多,导致手机银行用户下载证书时需要提供下载证书指导。故亟需提供一种方便下载蓝牙设备证书的实现方案。
发明内容
本发明的目的是为了克服现有技术的不足,提供一种通过微信小程序下载蓝牙设备证书的实现方法及系统。
本发明提供了一种通过微信小程序下载蓝牙设备证书的实现方法,包括:
步骤S1:当微信小程序接收到手机银行用户的触发信息且在检测到所述手机银行用户成功登录所述微信小程序后,所述微信小程序与蓝牙设备建立连接;
步骤S2:所述微信小程序从所述蓝牙设备中获取设备信息并将所述设备信息和所述手机银行用户的用户唯一标识发送给小程序服务器;所述小程序服务器通过所述设备信息对所述蓝牙设备进行验证,如验证合法则给与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序返回验证合法信息,执行步骤S3,如验证不合法则报错;
步骤S3:与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序判断连接的蓝牙设备是否为所述手机银行用户绑定的蓝牙设备,是则执行步骤S4,否则报错;
步骤S4:与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序从所述蓝牙设备中获取签名公钥并将所述签名公钥和所述用户唯一标识发送给所述小程序服务器;
步骤S5:所述小程序服务器将所述签名公钥与所述用户唯一标识码对应保存,通过与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序从所述蓝牙设备中获取随机数,根据所述随机数与保存的蓝牙设备的初始密码生成验证密码指令并通过与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序发送给所述蓝牙设备;
步骤S6:所述蓝牙设备根据所述随机数对所述验证密码指令进行验证,如验证成功则通过与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序给所述小程序服务器返回验证成功信息;
步骤S7:所述小程序服务器根据证书标识符和与所述用户唯一标识对应的签名公钥生成待签名数据,将所述待签名数据和包含证书申请数据的签名指令发送给与所述用户唯一标识对应的手机银行用户登录的所述微信小程序;
步骤S8:与所述用户唯一标识对应的手机银行用户登录的所述微信小程序缓存所述待签名数据并将所述签名指令发送给所述蓝牙设备;
步骤S9:所述蓝牙设备使用签名私钥对所述签名指令中的证书申请数据进行签名并将签名结果发送给与所述用户唯一标识对应的手机银行用户登录的所述微信小程序;
步骤S10:与所述用户唯一标识对应的手机银行用户登录的所述微信小程序根据所述签名结果和缓存的所述待签名数据生成颁发证书请求并发送给认证中心;当接收到所述认证中心返回的证书时将所述证书和所述用户唯一标识发送给所述小程序服务器;
步骤S11:所述小程序服务器对所述证书进行验证,如验证有效则将所述证书通过与所述用户唯一标识对应的手机银行用户登录的所述微信小程序发送给所述蓝牙设备,执行步骤S12,如验证无效则报错;
步骤S12:所述蓝牙设备保存所述证书。
本发明又提供了一种通过微信小程序下载蓝牙设备证书的实现系统,包括小程序服务器、微信小程序和蓝牙设备,所述小程序服务器包括:接收验证返回模块、获取生成发送模块、第一生成发送模块和第二接收验证模块,所述微信小程序包括:接收连接模块、第一获取发送模块、第一判断模块、第二获取发送模块、第一接收发送模块、接收返回模块、接收缓存发送模块、生成发送接收模块和接收转发模块,所述蓝牙设备包括:第一接收验证模块、接收签名发送模块和接收保存模块;
所述接收连接模块,用于当接收到手机银行用户触发信息且在检测到所述手机银行用户成功登录所述微信小程序后,与所述蓝牙设备建立连接;
所述第一获取发送模块,用于从所述蓝牙设备中获取设备信息并将所述设备信息和所述手机银行用户的用户唯一标识发送给所述小程序服务器;
所述接收验证返回模块,用于接收所述微信小程序发送的设备信息和所述手机银行用户的用户唯一标识,通过所述设备信息对所述蓝牙设备进行验证,如验证合法则给与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序返回验证合法信息,如验证不合法则报错;
所述第一判断模块,用于当接收到所述小程序服务器发送的验证合法信息时判断与所述接收连接模块连接的蓝牙设备是否为所述手机银行用户绑定的蓝牙设备,是则触发所述第二获取发送模块,否则报错;
所述第二获取发送模块,用于从所述蓝牙设备中获取签名公钥并将所述签名公钥和所述用户唯一标识发送给所述小程序服务器;
获取生成发送模块,用于接收所述微信小程序发送的签名公钥和所述用户唯一标识并对应保存,通过所述微信小程序从所述蓝牙设备中获取随机数,根据所述随机数与保存的蓝牙设备的初始密码生成验证密码指令并发送给与所述用户唯一标识对应的手机银行用户登录的所述微信小程序;
所述第一接收发送模块,用于接收所述获取生成发送模块发送的验证密码指令并发送给所述蓝牙设备;
所述第一接收验证模块,用于接收验证指令,根据所述随机数对所述验证密码指令进行验证,如验证成功则给所述微信小程序返回验证成功信息;
所述接收返回模块,用于接收所述蓝牙设备返回的验证成功信息并将所述验证成功信息和所述用户唯一标识发送给所述小程序服务器;
所述第一生成发送模块,用于根据证书标识符和与所述用户唯一标识对应的签名公钥生成待签名数据,将所述待签名数据和包含证书申请数据的签名指令发送给与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序;
所述接收缓存发送模块,用于接收所述小程序服务器发送的所述待签名数据和所述签名指令,缓存所述待签名数据并将所述签名指令发送给所述蓝牙设备;
所述接收签名发送模块,用于接收与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序发送的签名指令,使用签名私钥对所述签名指令中的证书申请数据进行签名并将签名结果发送给所述微信小程序;
所述生成发送接收模块,用于接收所述蓝牙设备发送的签名结果,根据所述签名结果和缓存的所述待签名数据生成颁发证书请求并发送给认证中心;当接收到所述认证中心返回的证书时将所述证书和所述用户唯一标识发送给所述小程序服务器;
所述第二接收验证模块,用于接收所述微信小程序发送的证书,并对所述证书进行验证,如验证有效则将所述证书发送给与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序,如验证无效则报错;
所述接收转发模块,用于接收所述小程序服务器发送的证书并转发给所述蓝牙设备;
所述接收保存模块,用于接收所述与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序发送的证书并保存。
本发明与现有技术相比,具有以下优点:
本发明技术方案通过采用微信小程序实现申请下载/更新证书,无需安装任何工具,可以更加快捷方便的实现证书下载/更新。
附图说明
图1为本发明实施例一提供的一种通过微信小程序下载蓝牙设备证书的实现方法流程图;
图2和图3为本发明实施例二提供的一种通过微信小程序下载蓝牙设备证书的实现方法流程图;
图4本发明实施例三提供的一种通过微信小程序下载蓝牙设备证书的实现系统方框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本发明实施例一提供一种通过微信小程序下载蓝牙设备证书的实现方法,适用于包括微信服务器、小程序服务器、微信小程序、认证中心和蓝牙设备的系统,在小程序服务器中预置小程序标识符和小程序支持的通讯协议,小程序服务器可服务于多个微信小程序,微信服务器上保存有手机银行用户的用户唯一标识,其与登录标识、机构号均一一对应,微信小程序通过小程序服务器与微信服务器相互通信;手机银行用户登录微信小程序之后,小程序服务器会根据用户唯一标识找到对应手机银行用户当前登录的微信小程序,实现登录微信小程序与小程序服务器之间的通信。如图1所示,本实施例的方法包括:
步骤S1:当微信小程序接收到手机银行用户触发信息时,且在检测到手机银行用户成功登录微信小程序后,微信小程序与蓝牙设备建立连接;
具体的,在本实施例中,步骤S1包括:
步骤S1-1:当微信小程序接收到手机银行用户触发信息时,获取登录标识和手机银行用户证书参数;
步骤S1-2:微信小程序向小程序服务器发送机构号和登录标识;
步骤S1-3:小程序服务器接收机构号和登录标识,根据机构号从数据库获取对应的小程序标识符和小程序密钥,将小程序标识符、小程序密钥和登录标识发送给微信服务器,并接收微信服务器返回的用户唯一标识;
步骤S1-4:小程序服务器根据用户唯一标识从数据库中获取对应的手机银行用户信息,给微信小程序返回手机银行用户信息和登录成功状态码;
步骤S1-5:微信小程序检测蓝牙状态是否可用,是则开启蓝牙扫描,当扫描到蓝牙设备时向蓝牙设备发起连接;
步骤S1-6:蓝牙设备给微信小程序返回蓝牙连接状态;
步骤S2:微信小程序从蓝牙设备中获取设备信息并将设备信息和手机银行用户的用户唯一标识发送给小程序服务器;小程序服务器通过设备信息对蓝牙设备进行验证,如验证合法则给与用户唯一标识对应的手机银行用户登录的微信小程序返回验证合法信息,执行步骤S3,如验证不合法则报错;
在本实施例中,步骤S2包括:
步骤S21:微信小程序从蓝牙设备中获取设备信息并将设备信息和手机银行用户的用户唯一标识发送给小程序服务器;
具体的,步骤S21包括:
步骤S21-1:微信小程序调用蓝牙数据发送接口向蓝牙设备发送获取设备信息指令;
步骤S21-2:蓝牙设备给微信小程序返回设备信息;
步骤S21-3:微信小程序通过蓝牙数据监听回调接口接收蓝牙设备返回的设备信息,调用系统网络请求接口向小程序服务器发送设备信息和手机银行用户的用户唯一标识;
步骤S22:小程序服务器验证设备信息,如验证合法则给与用户唯一标识对应的手机银行用户登录的微信小程序返回验证合法信息,执行步骤S23,如验证不合法则给与用户唯一标识对应的手机银行用户登录的微信小程序返回错误信息,结束;
在本实施例中,小程序服务器验证设备信息具体为:小程序服务器根据手机银行用户的用户唯一标识获取对应的设备信息,判断接收到的设备信息是否与获取到的设备信息匹配,是则验证合法,否则验证不合法;
步骤S23:微信小程序通过调用系统网络请求接口向小程序服务器发送包含证书标识符的下载证书请求和用户唯一标识;
步骤S3:微信小程序判断连接的蓝牙设备是否为所述手机银行用户绑定的蓝牙设备,是则执行步骤S4,否则报错;
具体的,在本实施例中,步骤S3包括:
步骤S31:小程序服务器通过与用户唯一标识对应的手机银行用户登录的微信小程序从蓝牙设备中获取会话密钥并与用户唯一标识对应保存,向与用户唯一标识对应的手机银行用户登录的微信小程序发送初始化设备指令;
本实施例的步骤S31包括:
步骤S31-1:小程序服务器向与用户唯一标识对应的手机银行用户登录的微信小程序发送获取会话密钥指令;
步骤S31-2:与用户唯一标识对应的手机银行用户登录的微信小程序调用蓝牙数据发送接口向蓝牙设备发送获取会话密钥指令;
步骤S31-3:蓝牙设备生成会话密钥并保存,使用蓝牙设备私钥对会话密钥进行加密并将会话密钥密文返回给与用户唯一标识对应的手机银行用户登录的微信小程序;
步骤S31-4:与用户唯一标识对应的手机银行用户登录的微信小程序向小程序服务器发送会话密钥密文和用户唯一标识;
步骤S31-5:小程序服务器根据机构号从数据库中获取预置的蓝牙设备公钥,使用蓝牙设备公钥解密会话密钥密文得到会话密钥并与用户唯一标识对应保存,向与用户唯一标识对应的手机银行用户登录的微信小程序发送初始化设备指令;
可选的,本实施例中的步骤S23替换为:微信小程序向小程序服务器发送包含证书标识符的更新颁发证书请求和用户唯一标识;
相应的,步骤S31-5中向与用户唯一标识对应的手机银行用户登录的微信小程序发送初始化设备指令之前还包括:小程序服务器根据手机银行用户证书参数判断当前业务操作是否需要跳过初始化,是则执行步骤S4,否则给与用户唯一标识对应的手机银行用户登录的微信小程序发送初始化设备指令;
步骤S32:与用户唯一标识对应的手机银行用户登录的微信小程序从蓝牙设备中获取设备序列号,根据用户唯一标识检索对应的设备序列号,判断检索到的设备序列号与获取的设备序列号是否一致,是则连接的蓝牙设备为所述手机银行用户绑定的蓝牙设备,执行步骤S33,否则报错;
步骤S33:与用户唯一标识对应的手机银行用户登录的微信小程序通知蓝牙设备进行初始化,并将蓝牙设备返回的初始化结果和用户唯一标识发送给小程序服务器;
具体的,本实施例中的蓝牙设备进行初始化包括:蓝牙设备将设备密码设置为初始密码;
步骤S4:与用户唯一标识对应的手机银行用户登录的微信小程序从蓝牙设备中获取签名公钥并将签名公钥和用户唯一标识发送给小程序服务器;
具体的,在本实施例中,步骤S4包括:
步骤S41:小程序服务器向与用户唯一标识对应的手机银行用户登录的微信小程序发送生成密钥对指令;
步骤S42:与用户唯一标识对应的手机银行用户登录的微信小程序向蓝牙设备发送生成密钥对指令;
步骤S43:蓝牙设备生成签名密钥对并保存,并将签名密钥对中的签名公钥返回给与用户唯一标识对应的手机银行用户登录的微信小程序;
步骤S44:与用户唯一标识对应的手机银行用户登录的微信小程序将签名公钥和用户唯一标识发送给小程序服务器;
步骤S45:小程序服务器接收签名公钥和用户唯一标识并对应保存;
步骤S5:小程序服务器将签名公钥与用户唯一标识码对应保存,通过与用户唯一标识对应的手机银行用户登录的微信小程序从蓝牙设备中获取随机数,根据随机数与保存的蓝牙设备的初始密码生成验证密码指令并通过与用户唯一标识对应的手机银行用户登录的微信小程序发送给蓝牙设备;
具体的,在本实施例中,步骤S5包括:
步骤S50:小程序服务器向与用户唯一标识对应的手机银行用户登录的微信小程序发送获取随机数指令;
步骤S51:与用户唯一标识对应的手机银行用户登录的微信小程序向蓝牙设备发送获取随机数指令;
步骤S52:蓝牙设备生成随机数并保存,将随机数返回给微信小程序;
步骤S53:与用户唯一标识对应的手机银行用户登录的微信小程序将随机数和用户唯一标识发送给小程序服务器;
步骤S54:小程序服务器将随机数作为加密密钥使用对称加密算法对蓝牙设备的初始密码进行加密得到初始密码密文,将包含初始密码密文的验证密码指令发送给与用户唯一标识对应的手机银行用户登录的微信小程序;
步骤S55:微信小程序将验证密码指令发送给蓝牙设备;
可选的,在本实施例中,步骤S5之前包括:小程序服务器根据手机银行用户证书参数判断业务操作类型,如为下载证书则执行步骤S5,如为更新证书则执行步骤A1;
步骤A1:小程序服务器给与用户唯一标识对应的手机银行用户登录的微信小程序发送会话密钥;
步骤A2:与用户唯一标识对应的手机银行用户登录的微信小程序从蓝牙设备中获取随机数,并将随机数和会话密钥发送给应用程序,接收应用程序返回的验证密码指令并转发给蓝牙设备;
步骤A3:蓝牙设备根据保存的随机数、会话密钥和保存的蓝牙设备密码对验证密码指令进行验证,如验证成功给与用户唯一标识对应的手机银行用户登录的微信小程序返回登录成功信息,执行步骤A4,如验证失败则给与用户唯一标识对应的手机银行用户登录的微信小程序返回登录失败信息,执行步骤A5;
具体的,在本实施例中,步骤A3包括:蓝牙设备解析验证密码指令得到加密结果,使用保存的会话密钥对加密结果进行解密,解密成功得到蓝牙设备密码密文,使用随机数解密蓝牙设备密码密文,并判断解密结果与保存的蓝牙设备密码是否相同,是则验证成功,给与用户唯一标识对应的手机银行用户登录的微信小程序返回登录成功信息,执行步骤A4,否则验证失败,给与用户唯一标识对应的手机银行用户登录的微信小程序返回登录失败信息,执行步骤A5;
步骤A4:与用户唯一标识对应的手机银行用户登录的微信小程序将登录成功信息和用户唯一标识发送给小程序服务器,执行步骤S6;
步骤A5:与用户唯一标识对应的手机银行用户登录的微信小程序将登录失败信息和用户唯一标识发送给小程序服务器,结束;
步骤S6:蓝牙设备根据随机数对验证密码指令进行验证,如验证成功则通过与用户唯一标识对应的手机银行用户登录的微信小程序给小程序服务器返回验证成功信息;
具体的,在本实施例中,步骤S6包括:
步骤S61:蓝牙设备根据保存的随机数和保存的初始密码对验证密码指令中的初始密码密文进行验证,如验证成功则给与用户唯一标识对应的手机银行用户登录的微信小程序返回初始密码验证成功信息和用户唯一标识,执行步骤S62,如验证失败则给与用户唯一标识对应的手机银行用户登录的微信小程序返回初始密码验证失败信息和用户唯一标识,执行步骤S63;
可选的,本实施例中该步骤的蓝牙设备根据保存的随机数和保存的初始密码对验证密码指令中的初始密码密文进行验证,包括:蓝牙设备使用随机数解密验证密码指令中的初始密码密文,并判断解密结果与保存的初始密码是否相同,是则验证成功,否则验证失败;
步骤S62:与用户唯一标识对应的手机银行用户登录的微信小程序将初始密码验证成功信息和用户唯一标识发送给小程序服务器,执行步骤S7;
步骤S63:与用户唯一标识对应的手机银行用户登录的微信小程序将初始密码验证失败信息和用户唯一标识发送给小程序服务器,结束;
步骤S7:小程序服务器根据证书标识符和与用户唯一标识对应的签名公钥生成待签名数据,将待签名数据和包含证书申请数据的签名指令发送给与用户唯一标识对应的手机银行用户登录的微信小程序;
步骤S8:与用户唯一标识对应的手机银行用户登录的微信小程序缓存待签名数据并将签名指令发送给蓝牙设备;
步骤S9:蓝牙设备使用签名私钥对签名指令中的证书申请数据进行签名并将签名结果发送给与用户唯一标识对应的手机银行用户登录的微信小程序;
步骤S10:与用户唯一标识对应的手机银行用户登录的微信小程序根据签名结果和缓存的待签名数据生成颁发证书请求并发送给认证中心;当接收到认证中心返回的证书时将证书和用户唯一标识发送给小程序服务器;
具体的,本实施例的步骤S10包括:与用户唯一标识对应的手机银行用户登录的微信小程序根据证书申请数据获取对应的证书序列号和授权码,根据待签名数据、签名结果、证书序列号和授权码生成颁发证书请求,向认证中心发送颁发证书请求;接收认证中心返回的证书;并将证书和用户唯一标识发送给小程序服务器;
步骤S11:小程序服务器对证书进行验证,如验证有效则将证书通过与用户唯一标识对应的手机银行用户登录的微信小程序发送给蓝牙设备,执行步骤S12,如验证无效则报错;
在本实施例中,步骤S11包括:
步骤D0:小程序服务器调用预设证书结构解析接收到的证书;
步骤D1:小程序服务器根据解析结果判断证书是否在有效期内,是则执行步骤D2,否则给与用户唯一标识对应的手机银行用户登录的微信小程序返回错误信息,结束;
具体的,步骤D1包括:小程序服务器从解析结果中获取证书有效期,根据当前时间来判断接收到的证书是否在有效期内,是则执行步骤D2,否则给与用户唯一标识对应的手机银行用户登录的微信小程序返回错误信息,结束;
步骤D2:小程序服务器判断证书中的公钥是否与保存的签名公钥一致,是则执行步骤D3,否则给与用户唯一标识对应的手机银行用户登录的微信小程序返回错误信息,结束;
具体的,步骤D2包括:小程序服务器从解析结果中获取到公钥,判断获取到的公钥是否与保存的签名公钥一致,是则执行步骤D3,否则给与用户唯一标识对应的手机银行用户登录的微信小程序返回错误信息,结束;
步骤D3:小程序服务器根据证书中的上一级根证书验证证书中的证书链是否合法,是则将证书通过与用户唯一标识对应的手机银行用户登录的微信小程序发送给蓝牙设备,否则给与手机银行用户唯一标识对应的手机银行用户登录的微信小程序返回错误信息,结束;
具体的,步骤D3包括:小程序服务器使用证书链的上一级根证书中的公钥解密证书链对应得证书中的签名值,对证书链对应证书中的待签名数据进行哈希计算,并判断哈希结果与解密结果是否一致,是则将证书通过与用户唯一标识对应的手机银行用户登录的微信小程序发送给蓝牙设备,否则给与用户唯一标识对应的手机银行用户登录的微信小程序返回错误信息,结束;
可选的,将证书通过与手机银行用户唯一标识对应的手机银行用户登录的微信小程序发送给蓝牙设备,包括:小程序服务器根据证书生成证书写入指令,并将证书写入指令发送给与用户唯一标识对应的手机银行用户登录的微信小程序;与用户唯一标识对应的手机银行用户登录的微信小程序向蓝牙设备发送证书写入指令;
步骤S12:蓝牙设备保存证书。
如本实施例中进行的为更新证书的操作,则相应的步骤S12替换为:蓝牙设备用证书写入指令中的证书内容替换已保存的证书内容。
可选的,在本实施例中,步骤S12之后,还包括:将写入证书结果返回给与用户唯一标识对应的手机银行用户登录的微信小程序,与用户唯一标识对应的手机银行用户登录的微信小程序将写入证书结果和用户唯一标识发送给小程序服务器,并更新证书的显示。
在本实施例中,向认证中心申请证书可由小程序服务器来实现,即小程序服务器与认证中心可进行通讯,相应的,步骤S7-步骤S10替换为:
步骤S7’:小程序服务器根据证书标识符和签名公钥生成待签名数据并缓存,将证书申请数据通过与用户唯一标识对应的手机银行用户登录的微信小程序发送给蓝牙设备;
步骤S8’:蓝牙设备使用签名私钥对证书申请数据进行签名并将签名结果发送给与用户唯一标识对应的手机银行用户登录的微信小程序,与用户唯一标识对应的手机银行用户登录的微信小程序将签名结果和与用户唯一标识发送给小程序服务器;
步骤S9’:小程序服务器根据签名结果和缓存的待签名数据生成颁发证书请求并发送给认证中心;并接收认证中心返回的证书。
在本实施例中,步骤S9’具体为:小程序服务器根据证书申请数据获取对应的证书序列号和授权码,根据待签名数据、签名结果、证书序列号和授权码生成颁发证书请求,向认证中心发送颁发证书请求;并接收认证中心返回的证书。
本发明技术方案通过采用微信小程序实现申请下载/更新证书,无需安装任何工具,可以更加快捷方便的实现证书下载/更新。
实施例二
本发明实施例一提供一种通过微信小程序下载蓝牙设备证书的实现方法,适用于包括微信服务器、小程序服务器、微信小程序、认证中心和蓝牙设备的系统,在小程序服务器中预置小程序标识符和小程序支持的通讯协议,小程序服务器可服务于多个微信小程序,微信服务器上保存有手机银行用户的用户唯一标识,其与登录标识、机构号均一一对应,微信小程序通过小程序服务器与微信服务器相互通信;手机银行用户登录微信小程序之后,小程序服务器会根据该用户唯一标识找到对应手机银行用户当前登录的微信小程序,实现登录微信小程序与小程序服务器之间的通信。如图2和图3所示,本实施例的方法包括:
步骤101:当微信小程序接收到手机银行用户触发信息时,获取登录标识和手机银行用户证书参数;
当微信小程序接收到手机银行用户触发信息时,微信小程序调用登录接口进行登录操作,并接收登录接口调用成功之后返回的登录标识。微信小程序显示业务操作选项(包括下载证书、更新证书)、证书类型选项(包括普通证书、复核证书、混合证书)、选择密钥对类型选项(包括非对称加密算法RSA1024、非对称加密算法RSA2048、非对称加密算法SM2)和选择哈希算法类型选项(包括哈希算法MD5、哈希算法SHA1、哈希算法SHA256、哈希算法SHA512、哈希算法SM3)并提示手机银行用户进行选择,如手机银行用户到时未选择业务操作则默认为下载证书,如手机银行用户到时未选择证书类型则默认为复核证书;如手机银行用户到时未选择密钥对类型则默认为非对称加密算法SM2如手机银行用户到时未选择哈希算法类型则默认为SM3,微信小程序根据手机银行用户选项组成证书标识符数据,根据证书标识符数据、证书标识符生成手机银行用户证书参数;
例如,本实施例中的登录接口为wx.login(),返回的登录标识为071VWgLk1WYuwp0is9Mk1w6rLk1VWgL2;
在本实施例中,手机银行用户证书参数包括证书标识符、证书类型、密钥对类型手机银行用户选择的业务操作(包括下载证书和更新证书);如手机银行用户选择下载证书则需要进行初始化,并将蓝牙设备密码重置为初始密码,如手机银行用户选择更新证书则无需进行初始化,密码还是原来的蓝牙设备密码;
例如,本实施例中手机银行用户证书参数为:证书标识符:”CN=certRequstition,O=CFCA TEST CA, C=CN”,证书类型:复合证书,密钥对类型:SM2,哈希算法:SM3,业务操作:下载证书;
步骤102:微信小程序调用系统网络请求接口向小程序服务器发送保存的机构号和登录标识;
在本实施例中,小程序服务器配置服务器域名并支持超文本安全传输协议,机构号用于小程序服务器区分不同的小程序,实现服务器同时支持多个小程序;
例如,系统网络请求接口为wx.request();微信小程序向小程序服务器发送的机构号0x0010和登录标识071VWgLk1WYuwp0is9Mk1w6rLk1VWgL2;
步骤103:小程序服务器接收机构号和登录标识,根据机构号从数据库获取对应的小程序标识符和小程序密钥,将小程序标识符、小程序密钥和登录标识发送给微信服务器;
例如,本实施例中的小程序标识符为wxc804dfd360xxxxxx,小程序密钥为62d4abc8314176d9632xxxxxxxxxxxxx,登录标识071VWgLk1WYuwp0is9Mk1w6r
Lk1VWgL2;
步骤104:微信服务器根据登录标识获取手机银行用户的用户唯一标识并返回给小程序服务器;
例如,本实施例中手机银行用户的用户唯一标识为oMSqI5M42YP0c3PKs6Loxpxxxxxx;
在本实施例中,手机银行用户的用户唯一标识用于标识手机银行用户身份,获取手机银行用户的基本信息和蓝牙设备序列号等信息;如微信服务器根据登录标识未获取到手机银行用户的用户唯一标识则给小程序服务器返回小程序数据验证错误信息或小程序非法信息;
步骤105:小程序服务器接收到微信服务器返回的手机银行用户的用户唯一标识,根据手机银行用户的用户唯一标识从数据库中获取对应的手机银行用户信息,给微信小程序返回手机银行用户信息和登录成功状态码;
具体的,在本实施例中,手机银行用户信息包括蓝牙设备序列号,例如蓝牙设备序列号为65020000000027,登录成功状态码为0x0000;
具体的,在本实施例中,手机银行用户信息来自于机构提供,在创建小程序服务器数据库时,导入手机银行用户信息数据表,该手机银行用户信息表中包含手机银行用户信息和该手机银行用户绑定的蓝牙设备序列号和手机银行用户的用户唯一标识,手机银行用户信息表内的初始状态时手机银行用户的用户唯一标识为空数据,当手机银行用户初次登录微信小程序时,获取到手机银行用户的用户唯一标识后,通过输入机构提供的手机银行用户信息中的手机号进行验证,验证成功将手机银行用户得用户唯一标识与手机银行用户信息表中的手机银行用户信息进行绑定;后续登录直接根据手机银行用户的用户唯一标识获取对应的手机银行用户信息;
步骤106:微信小程序调用初始化蓝牙模块接口和蓝牙状态改变监听接口,检测蓝牙状态是否可用,是则调用蓝牙扫描接口开启蓝牙扫描,同时设置蓝牙扫描设备回调函数;当扫描到蓝牙设备时,则调用停止蓝牙扫描接口,执行步骤107;
具体的,本实施例中的初始化蓝牙模块接口为wx.openBluetoothAdapter(),蓝牙状态改变监听接口为wx.onBluetoothAdapterStateChange(),蓝牙扫描接口为wx.startBluetoothDevicesDiscovery(),蓝牙扫描设备回调接口为wx.onBluetoothDeviceFound();例如,扫描发现蓝牙设备的名称为65020000000027;
步骤107:微信小程序调用蓝牙连接接口向蓝牙设备发起连接;
具体的, 本实施例中的蓝牙连接接口为wx.createBLEConnection();
步骤108:蓝牙设备给微信小程序返回蓝牙连接状态;
步骤109:微信小程序调用蓝牙数据发送接口向蓝牙设备发送获取设备信息指令;
具体的,本实施例中的蓝牙数据发送接口为wx.writeBLECharacteristicValue();
步骤110:蓝牙设备给微信小程序返回设备信息;
在本实施例中,返回的设备信息包括设备识别码、供应商识别码、设备生产识别码、设备序列号、设备系统版本号、固件型号、固件版本号、及预留数据等;
例如,本实施例中蓝牙设备返回的设备信息为096E0713019800008012E2012904;
步骤111:微信小程序通过蓝牙数据监听回调接口接收蓝牙设备返回的设备信息,调用系统网络请求接口向小程序服务器发送设备信息和手机银行用户的用户唯一标识;
具体的,在本实施例中,蓝牙数据监听回调接口为wx.onBLECharacteristicValueChange(),系统网络请求接口为wx.request();
步骤112:小程序服务器验证设备信息,如验证合法则给与用户唯一标识对应的手机银行用户登录的微信小程序返回验证合法信息,执行步骤113,如验证不合法则给与用户唯一标识对应的手机银行用户登录的微信小程序返回错误信息,结束;
具体的,在本实施例中,步骤112具体为:小程序服务器根据用户唯一标识获取对应的设备信息,判断接收到的设备信息是否与获取到的设备信息匹配,是则验证合法,否则验证不合法;
小程序服务器创建时,与银行服务机构同步数据库信息,接收银行服务机构发送来的设备信息并保存;
例如,该步骤的中的验证合法信息为0x0000,返回的错误信息为0x0010;
步骤113:与用户唯一标识对应的手机银行用户登录的微信小程序将用户唯一标识作为参数通过调用系统网络请求接口向小程序服务器发送包含证书标识符的下载证书请求;
可选的,本实施例中的步骤113可替换为:微信小程序将用户唯一标识作为参数通过调用系统网络请求接口向小程序服务器发送包含证书标识符的更新颁发证书请求;
具体的,在本实施例中,系统网络请求接口为wx.request();
步骤114:小程序服务器向与用户唯一标识对应的手机银行用户登录的微信小程序发送获取会话密钥指令;
步骤115:与用户唯一标识对应的手机银行用户登录的微信小程序调用蓝牙数据发送接口向蓝牙设备发送获取会话密钥指令;
具体的,在本实施例中,蓝牙数据发送接口为wx.writeBLECharacteristicValue();
步骤116:蓝牙设备生成会话密钥并保存,使用蓝牙设备私钥对会话密钥进行加密并将会话密钥密文返回给与用户唯一标识对应的手机银行用户登录的微信小程序;
优选的,本实施例中,蓝牙设备使用蓝牙设备私钥对会话密钥进行非对称算法RSA加密;
步骤117:与用户唯一标识对应的手机银行用户登录的微信小程序向小程序服务器发送会话密钥密文和用户唯一标识;
例如,本实施例中该步骤的会话密钥密文为784BC4C33E92AD539DA72DFD489D718B7A1B4D30FB1ADFEF81C9B7CC9F039A4AB508E9CAE62B80E92AEFCF700B67AED659CFD369286EA1697FA9ADDF1548A6C454598FFE47D4D3DB547185E4495115983418E103067E75D13F7FB7352679B93BC955462936C3D3C5FEA2E8A5F971553D85457F47068758653C34618F1694E5B9;
步骤118:小程序服务器根据机构号从数据库中获取预置的蓝牙设备公钥,使用蓝牙设备公钥解密会话密钥密文得到会话密钥并将会话密钥与用户唯一标识对应保存,根据手机银行用户证书参数判断当前业务操作是否需要跳过初始化,是则执行步骤125,否则给与用户唯一标识对应的手机银行用户登录的微信小程序发送初始化设备指令,执行步骤119;
在本实施例中,如手机银行用户证书参数中手机银行用户选择的业务操作类型为下载证书则需要进行初始化,如手机银行用户证书参数中手机银行用户选择的业务操作类型为更新证书则无需进行初始化;在该步骤中小程序服务器使用预置公钥解密会话密钥密文若失败则判断蓝牙设备公钥错误,说明该蓝牙设备非法;
优选的,小程序服务器使用蓝牙设备公钥进行非对称算法RSA解密会话密钥密文;例如解密得到的会话密钥为0x9239B58765DA5846;
步骤119:与用户唯一标识对应的手机银行用户登录的微信小程序向蓝牙设备发送获取设备序列号指令;
步骤120:蓝牙设备给与用户唯一标识对应的手机银行用户登录的微信小程序返回设备序列号;
步骤121:与用户唯一标识对应的手机银行用户登录的微信小程序接收蓝牙设备返回的设备序列号,根据用户唯一标识获取对应的设备序列号,判断接收到的设备序列号与获取的设备序列号是否一致,是则执行步骤122,否则报错;
步骤122:与用户唯一标识对应的手机银行用户登录的微信小程序向蓝牙设备发送初始化设备指令;
步骤123:蓝牙设备进行初始化并将初始化结果返回给与用户唯一标识对应的手机银行用户登录的微信小程序;
具体的,蓝牙设备进行初始化包括:蓝牙设备将设备密码设置初始密码;
步骤124:与用户唯一标识对应的手机银行用户登录的微信小程序向小程序服务器发送初始化结果和用户唯一标识,执行步骤125;
步骤125:小程序服务器向与用户唯一标识对应的手机银行用户登录的微信小程序发送生成密钥对指令;
步骤126:与用户唯一标识对应的手机银行用户登录的微信小程序向蓝牙设备发送生成密钥对指令;
步骤127:蓝牙设备生成签名密钥对并保存,并将签名公钥返回给与用户唯一标识对应的手机银行用户登录的微信小程序;
具体的,密钥对包括私钥和公钥;例如,该步骤中返回给与用户唯一标识对应的手机银行用户登录的微信小程序的公钥为04A57EF0BA92208FAD407C1C08D014195A7258E9E7A4A3281AA89C11E
A5376FD6193FBAD6F3B82A671CEDB70CDA24831C7A805AD4D5775C40111F68BF7E94D7AF8;
步骤128:与用户唯一标识对应的手机银行用户登录的微信小程序将签名公钥和用户唯一标识发送给小程序服务器;
步骤129:小程序服务器接收公钥和用户唯一标识并对应保存,根据手机银行用户证书参数判断业务操作类型,如为下载证书则执行步骤130,如为更新证书则执行步骤139;
步骤130:小程序服务器向与用户唯一标识对应的手机银行用户登录的微信小程序发送获取随机数指令;
步骤131:与用户唯一标识对应的手机银行用户登录的微信小程序向蓝牙设备发送获取随机数指令;
步骤132:蓝牙设备生成随机数并保存,将随机数返回给与用户唯一标识对应的手机银行用户登录的微信小程序;
例如,该步骤中生成的随机数为0x4D4F545F545F4087;
步骤133:与用户唯一标识对应的手机银行用户登录的微信小程序将随机数和用户唯一标识发送给小程序服务器;
步骤134:小程序服务器将随机数作为加密密钥使用对称加密算法对蓝牙设备的初始密码进行加密,包含初始密码密文的验证密码指令发送给与用户唯一标识对应的手机银行用户登录的微信小程序;
优选的,本实施例中的对称加密算法为SM4算法;例如,本实施例中蓝牙设备的初始密码为12345678,随机数为0x4D4F545F545F4087,加密得到的初始密码密文为456391AC0627EBD39F2B298A10687C6A5497214676908E2C274194
BDB01D4D704AB4B8763FA7E36466AB75444D4191523632A7F89B8DDB69DF0039304E73F007BA521994EA89490D3A70DE946664DAFFB05A914A8E4F272521BA699E91BD0CA8B2AA00D6C39A29C364437CC6D52A722E7DC6AC891B214154BB089F58D6CCD2CCCB54F85A8D43E8;
步骤135:与用户唯一标识对应的手机银行用户登录的微信小程序将验证密码指令发送给蓝牙设备;
步骤136:蓝牙设备根据保存的随机数和保存的初始密码对验证密码指令中的初始密码密文进行验证,如验证成功则给与用户唯一标识对应的手机银行用户登录的微信小程序返回初始密码验证成功信息,执行步骤137,如验证失败则给与用户唯一标识对应的手机银行用户登录的微信小程序返回初始密码验证失败信息,执行步骤138;
具体的,在本实施例中,步骤136包括:蓝牙设备使用随机数解密验证密码指令中的初始密码密文,并判断解密结果与保存的初始密码是否相同,是则验证成功,否则验证失败;
步骤137:与用户唯一标识对应的手机银行用户登录的微信小程序将初始密码验证成功信息和用户唯一标识发送给小程序服务器,执行步骤147;
步骤138:与用户唯一标识对应的手机银行用户登录的微信小程序将初始密码验证失败信息和用户唯一标识发送给小程序服务器,结束;
步骤139:小程序服务器向与用户唯一标识对应的手机银行用户登录的微信小程序发送会话密钥和获取随机数指令;
例如,本实施例中的会话密钥为0x9239B58765DA5846;
步骤140:与用户唯一标识对应的手机银行用户登录的微信小程序保存会话密钥并将获取随机数指令发送给蓝牙设备;
步骤141:蓝牙设备生成随机数并返回给与用户唯一标识对应的手机银行用户登录的微信小程序;
例如,该步骤生成的随机数为0x4D4F545F545F4087;
步骤142:与用户唯一标识对应的手机银行用户登录的微信小程序通过调用接口将会话密钥和随机数发送给应用程序,并接收应用程序返回的验证密码指令;
例如,本实施例中的蓝牙设备密码密文为:456391AC0627EBD39F2B298A10687C6A5497214676908E2C274194BDB01D4D704AB4B8763FA7E36466AB75444D4191523632A7F89B8DDB69DF0039304E73F007BA521994EA89490D3A70DE946664DAFFB05A914A8E4F272521BA699E91BD0CA8B2AA00D6C39A29C364437CC6D52A722E7DC6AC891B214154BB089F58D6CCD2CCCB54F85A8D43E8;
在本实施例中,应用程序接收到会话密钥和随机数后,提示手机银行用户输入蓝牙设备密码,将随机数当作加密密钥使用对称加密算法对手机银行用户输入的密码进行加密得到蓝牙设备密码密文,然后使用会话密钥对蓝牙设备密码密文进行加密并根据加密结果组成验证密码指令;
优选的,本实施例中的对称加密算法为SM4算法;
步骤143:与用户唯一标识对应的手机银行用户登录的微信小程序将验证密码指令发送给蓝牙设备;
步骤144:蓝牙设备根据保存的随机数、会话密钥和保存的蓝牙设备密码对验证密码指令进行验证,如验证成功则给与用户唯一标识对应的手机银行用户登录的微信小程序返回蓝牙设备密码验证成功信息,执行步骤145,如验证失败则给与用户唯一标识对应的手机银行用户登录的微信小程序返回蓝牙设备密码验证失败信息,执行步骤146;
具体的,在本实施例中,步骤144包括:蓝牙设备解析验证密码指令得到加密结果,使用保存的会话密钥对加密结果进行解密,解密成功得到蓝牙设备密码密文,使用随机数解密蓝牙设备密码密文,并判断解密结果与保存的蓝牙设备密码是否相同,是则验证成功,否则验证失败;
步骤145:与用户唯一标识对应的手机银行用户登录的微信小程序将蓝牙设备密码验证成功信息和用户唯一标识发送给小程序服务器,执行步骤147;
步骤146:与用户唯一标识对应的手机银行用户登录的微信小程序将蓝牙设备密码验证失败信息和用户唯一标识发送给小程序服务器,结束;
步骤147:小程序服务器根据证书标识符和与用户唯一标识对应的签名公钥生成待签名数据;
例如,本实施例中的的证书标识符为:CN=certRequstition, O=CFCA TEST CA, C=CN;公钥为04A57EF0BA92208FAD407C1C08D014195A7258E9E7A4A32
81AA89C11EA5376FD6193FBAD6F3B82A671CEDB70CDA24831C7A805AD4D5775C40111F68BF7E94D7AF8;生成的待签名数据为:3081A0020100303E3118301606035504030C0F636572745265717569736974696F6E31153013060355040A0C0C434643412054455354204341310B300906035504060C02434E3059301306072A8648CE3D020106082A811CCF5501822D03420004A57EF0BA92208FAD407C1C08D014195A7258E9E7A4A3281AA89C11EA5376FD6193FBAD6F3B82A671CEDB70CDA24831C7A805AD4D5775C40111F68BF7E94D7AF8A000;
步骤148:小程序服务器将待签名数据和包含证书申请数据的签名指令发送给与用户唯一标识对应的手机银行用户登录的微信小程序;
步骤149:与用户唯一标识对应的手机银行用户登录的微信小程序缓存待签名数据,并将签名指令发送给蓝牙设备;
步骤150:蓝牙设备使用生成的签名私钥对签名指令中的证书申请数据进行签名,并将签名结果返回给与用户唯一标识对应的手机银行用户登录的微信小程序;
例如,本实施例中的签名结果为5E46D46F4B0C6603F2C6970D52DCF63413
71422CF396CEFBAF10228241CB4EC81A5BAA110150A5753A44A3B36F33C710C60030D61BD4E37423484CD8D0B93D3D;
步骤151:与用户唯一标识对应的手机银行用户登录的微信小程序根据证书申请数据获取对应的证书序列号和授权码,根据待签名数据、签名结果、证书序列号和授权码生成颁发证书请求,微信小程序向认证中心发送颁发证书请求;
步骤152:与用户唯一标识对应的手机银行用户登录的微信小程序接收认证中心返回的证书;
步骤153:与用户唯一标识对应的手机银行用户登录的微信小程序将证书和用户唯一标识发送给小程序服务器;
步骤154:小程序服务器验证证书的有效性,如有效则执行步骤155,如无效则给与用户唯一标识对应的用户登录的微信小程序返回错误信息,结束;
具体的,在本实施例中,步骤154包括:
步骤154-1:小程序服务器判断证书是否在有效期内,是则执行步骤154-2,否则给与用户唯一标识对应的手机银行用户登录的微信小程序返回错误信息,结束;
具体的,步骤154-1包括:小程序服务器调用预置证书结构(例如x509证书结构)解析接收到的证书,从解析结果中获取证书有效期,根据当前时间来判断接收到的证书是否在有效期内,是则执行步骤154-2,否则给与用户唯一标识对应的手机银行用户登录的微信小程序返回错误信息,结束;
步骤154-2:小程序服务器判断证书中的公钥是否与保存的与用户唯一标识对应的签名公钥一致,是则执行步骤154-3,否则给与用户唯一标识对应的手机银行用户登录的微信小程序返回错误信息,结束;
具体的,步骤154-2包括:小程序服务器从解析结果中获取到公钥,判断获取到的公钥是否与保存的与用户唯一标识对应的签名公钥一致,是则执行步骤154-3,否则给与用户唯一标识对应的手机银行用户登录的微信小程序返回错误信息,结束;
例如,本实施例中的公钥为:04A57EF0BA92208FAD407C1C08D014195A72
58E9E7A4A3281AA89C11EA5376FD6193FBAD6F3B82A671CEDB70CDA24831C7A805AD4D5775C40111F68BF7E94D7AF8;
步骤154-3:小程序服务器根据证书中的上一级根证书验证证书中的证书链是否合法,是则执行步骤155,否则给与用户唯一标识对应的手机银行用户登录的微信小程序返回错误信息,结束;
具体的,步骤154-3包括:小程序服务器使用证书链的上一级根证书中的公钥公钥解密证书链对应的证书中的签名值,对证书链对应证书中的待签名数据进行哈希计算,并判断哈希结果与解密结果是否一致是则证书链合法,否则证书链不合法;
步骤155:小程序服务器根据证书生成证书写入指令,并将证书写入指令发送给与用户唯一标识对应的手机银行用户登录的微信小程序;
具体的,在本实施例中,步骤155具体为:小程序服务器按照X.509证书格式从证书中提取证书内容,根据证书内容生成证书写入指令,并将证书写入指令发送给与用户唯一标识对应的手机银行用户登录的微信小程序;
步骤156:与用户唯一标识对应的手机银行用户登录的微信小程序向蓝牙设备发送证书写入指令;
步骤157:蓝牙设备保存证书写入指令中的证书并将写入证书结果返回给与用户唯一标识对应的手机银行用户登录的微信小程序;
如是进行证书更新操作,则步骤157具体为:蓝牙设备用证书写入指令中的证书内容替换已保存的证书内容,并将更新证书结果返回给与用户唯一标识对应的手机银行用户登录的微信小程序;
步骤158:微信小程序将写入证书结果和用户唯一标识发送给小程序服务器,并更新证书的显示信息。
本实施例方法通过微信小程序连接蓝牙设备,小程序服务器通过微信小程序将生成密钥对指令下发至蓝牙设备,微信小程序接收蓝牙设备生成的密钥对并上传至服务器,小程序服务器将待签名数据指令通过微信小程序转发给蓝牙设备,微信小程序接收蓝牙设备返回的签名结果发送至认证中心申请证书,微信小程序将从认证中心申请到的证书发送至小程序服务器,小程序服务器解析重新组装后通过证书写入指令发送到微信小程序然后再发送至蓝牙设备。本实施例方法通过采用微信小程序实现申请下载/更新证书,无需安装任何工具,可以更加快捷方便的实现证书下载/更新。
实施例三
本发明实施例三提供一种通过微信小程序下载蓝牙设备证书的实现系统,如图4所示,包括小程序服务器3、微信小程序4和蓝牙设备5,小程序服务器3包括:接收验证返回模块31、获取生成发送模块32、第一生成发送模块33和第二接收验证模块34,微信小程序4包括:接收连接模块41、第一获取发送模块42、第一判断模块43、第二获取发送模块44、第一接收发送模块45、接收返回模块46、接收缓存发送模块47、生成发送接收模块48和接收转发模块49,蓝牙设备5包括:第一接收验证模块51、接收签名发送模块52和接收保存模块53;
接收连接模块41,用于当接收到手机银行用户触发信息且在检测到当前手机银行用户成功登录微信小程序后,与蓝牙设备5建立连接;
第一获取发送模块42,用于从蓝牙设备5中获取设备信息并将设备信息和手机银行用户的用户唯一标识发送给小程序服务器3;
接收验证返回模块31,用于接收微信小程序4发送的设备信息和手机银行用户的用户唯一标识,通过设备信息对蓝牙设备5进行验证,如验证合法则给与用户唯一标识对应的手机银行用户登录的微信小程序4返回验证合法信息,如验证不合法则报错;
第一判断模块43,用于当接收到小程序服务器3发送的验证合法信息时判断与接收连接模块41连接的蓝牙设备5是否为手机银行用户绑定的蓝牙设备,是则触发第二获取发送模块44,否则报错;
第二获取发送模块44,用于从蓝牙设备5中获取签名公钥并将签名公钥和用户唯一标识发送给小程序服务器3;
获取生成发送模块32,用于接收微信小程序4发送的签名公钥和用户唯一标识并对应保存,通过微信小程序4从蓝牙设备5中获取随机数,根据随机数与保存的蓝牙设备5的初始密码生成验证密码指令并发送给与用户唯一标识对应的手机银行用户登录的微信小程序4;
第一接收发送模块45,用于接收获取生成发送模块32发送的验证密码指令并发送给蓝牙设备5;
第一接收验证模块51,用于接收验证指令,根据随机数对验证密码指令进行验证,如验证成功则给微信小程序4返回验证成功信息;
接收返回模块46,用于接收蓝牙设备5返回的验证成功信息并将验证成功信息和用户唯一标识发送给小程序服务器3;
第一生成发送模块33,用于根据证书标识符和与用户唯一标识对应的签名公钥生成待签名数据,将待签名数据和包含证书申请数据的签名指令发送给与用户唯一标识对应的手机银行用户登录的微信小程序4;
接收缓存发送模块47,用于接收小程序服务器3发送的待签名数据和签名指令,缓存待签名数据并将签名指令发送给蓝牙设备5;
接收签名发送模块52,用于接收与用户唯一标识对应的手机银行用户登录的微信小程序4发送的签名指令,使用签名私钥对签名指令中的证书申请数据进行签名并将签名结果发送给与用户唯一标识对应的手机银行用户登录的微信小程序4;
生成发送接收模块48,用于接收蓝牙设备5发送的签名结果,根据签名结果和缓存的待签名数据生成颁发证书请求并发送给认证中心;当接收到认证中心返回的证书时将证书和用户唯一标识发送给小程序服务器3;
第二接收验证模块34,用于接收与用户唯一标识对应的手机银行用户登录的微信小程序4发送的证书,并对证书进行验证,如验证有效则将证书发送给与用户唯一标识对应的手机银行用户登录的微信小程序4,如验证无效则报错;
接收转发模块49,用于接收小程序服务器3发送的证书并转发给蓝牙设备5;
接收保存模块53,用于接收与用户唯一标识对应的手机银行用户登录的微信小程序4发送的证书并保存。
具体的,在本实施例中,接收连接模块41包括:接收登录单元、第一发送单元和第一检测单元;小程序服务器3还包括接收获取发送模块;蓝牙设备5还包括第一返回模块;
接收登录单元,用于当接收到手机银行用户触发信息时,获取登录标识和手机银行用户证书参数;
第一发送单元,用于向小程序服务器3发送机构号和登录标识;
接收获取发送模块,用于接收小程序服务器3发送的机构号和登录标识,根据机构号从数据库获取对应的小程序标识符和小程序密钥,将小程序标识符、小程序密钥和登录标识发送给微信服务器,并接收微信服务器返回的用户唯一标识;根据用户唯一标识从数据库中获取对应的手机银行用户信息,给微信小程序4返回手机银行用户信息和登录成功状态码;
第一检测单元,用于检测蓝牙状态是否可用,是则开启蓝牙扫描,当扫描到蓝牙设备5时向蓝牙设备5发起连接;
第一返回模块,用于当蓝牙设备5与微信小程序4建立连接后给微信小程序4返回蓝牙连接状态。
在本实施例中,第一获取发送模块42包括:第二发送单元和第一接收发送单元;蓝牙设备5还包括第二接收发送模块;
第二发送单元,用于调用蓝牙数据发送接口向蓝牙设备5发送获取设备信息指令;
第二接收发送模块,用于接收微信小程序4发送的获取设备信息指令并给微信小程序4返回设备信息;
第一接收发送单元,用于通过蓝牙数据监听回调接口接收蓝牙设备5返回的设备信息,调用系统网络请求接口向小程序服务器3发送设备信息和当前手机银行用户的手机银行用户唯一标识。
在本实施例中,接收验证返回模块31具体用于接收微信小程序4发送的设备信息和手机银行用户的用户唯一标识,验证设备信息,如验证合法则给与用户唯一标识对应的手机银行用户登录的微信小程序4返回验证合法信息,如验证不合法则给与用户唯一标识对应的手机银行用户登录的微信小程序4返回错误信息,结束;
第一接收发送模块45还用于接收小程序服务器3返回的验证合法信息,通过调用系统网络请求接口向小程序服务器3发送包含证书标识符的下载证书请求和用户唯一标识。
进一步地,接收验证返回模块31具体用于接收与用户唯一标识对应的手机银行用户登录的微信小程序4发送的设备信息和用户唯一标识,根据用户唯一标识获取对应的设备信息,判断接收到的设备信息是否与获取到的设备信息匹配,是则验证合法,给与用户唯一标识对应的手机银行用户登录的微信小程序4返回验证合法信息,否则验证不合法,给与用户唯一标识对应的手机银行用户登录的微信小程序4返回错误信息,结束。
在本实施例中,小程序服务器3还包括:第三获取发送模块,用于通过与用户唯一标识对应的手机银行用户登录的微信小程序4从蓝牙设备5中获取会话密钥并与用户唯一标识对应保存,向与用户唯一标识对应的手机银行用户登录的微信小程序4发送初始化设备指令;
第一判断模块43具体用于从蓝牙设备5中获取设备序列号,根据用户唯一标识检索对应的设备序列号,判断检索到的设备序列号与获取的设备序列号是否一致,是则连接的蓝牙设备5为手机银行用户绑定的蓝牙设备,通知蓝牙设备5进行初始化,并将蓝牙设备5返回的初始化结果和用户唯一标识发送给小程序服务器3,否则报错。
进一步地,第三获取发送模块包括:第三发送单元和获取解密发送单元;微信小程序4还包括第三接收发送模块和第四接收发送模块;蓝牙设备5还包括:生成加密返回模块;
第三发送单元,用于向与用户唯一标识对应的手机银行用户登录的微信小程序4发送获取会话密钥指令;
第三接收发送模块,用于调用蓝牙数据发送接口向蓝牙设备5发送获取会话密钥指令;
生成加密返回模块,用于接收与用户唯一标识对应的手机银行用户登录的微信小程序4发送的获取会话密钥指令,生成会话密钥并保存,使用蓝牙设备5私钥对会话密钥进行加密并将会话密钥密文返回给与用户唯一标识对应的手机银行用户登录的微信小程序4;
第四接收发送模块,用于接收蓝牙设备5返回的会话密钥密文并向小程序服务器3发送会话密钥密文和用户唯一标识;
获取解密发送单元,用于根据机构号从数据库中获取预置的蓝牙设备5公钥,使用蓝牙设备5公钥解密会话密钥密文得到会话密钥并与用户唯一标识对应保存,向与用户唯一标识对应的手机银行用户登录的微信小程序4发送初始化设备指令。
具体的,在本实施例中,蓝牙设备5进行初始化包括:蓝牙设备5将设备密码设置为初始密码。
可选的,在本实施例中,接收验证返回模块31还用于在验证合法时向小程序服务器3发送包含证书标识符的更新颁发证书请求和用户唯一标识;
获取解密发送单元,还用于在向与用户唯一标识对应的手机银行用户登录的微信小程序4发送初始化设备指令之前,根据手机银行用户证书参数判断当前业务操作是否需要跳过初始化,是则触发第二获取发送模块44,否则给与用户唯一标识对应的手机银行用户登录的微信小程序4发送初始化设备指令。
可选的,在本实施例中,小程序服务器3还包括第二判断模块和第一发送模块;微信小程序4还包括:获取发送接收模块、第二发送模块和第三发送模块;蓝牙设备5包括第二接收验证模块34;
第二判断模块,用于根据手机银行用户证书参数判断业务操作类型,如为下载证书则触发获取生成发送模块32,如为更新证书则触发第一发送模块;
第一发送模块,用于给与用户唯一标识对应的手机银行用户登录的微信小程序4发送会话密钥;
获取发送接收模块,用于从蓝牙设备5中获取随机数,并将随机数和会话密钥发送给应用程序,接收应用程序返回的验证密码指令并转发给蓝牙设备5;
第二接收验证模块34,用于接收与用户唯一标识对应的手机银行用户登录的微信小程序4发送的验证密码指令,根据保存的随机数、会话密钥和保存的蓝牙设备5密码对验证密码指令进行验证,如验证成功给与用户唯一标识对应的手机银行用户登录的微信小程序4返回登录成功信息,触发第二发送模块,如验证失败则给与用户唯一标识对应的手机银行用户登录的微信小程序4返回登录失败信息,第三发送模块;
第二发送模块,用于将登录成功信息和用户唯一标识发送给小程序服务器3,触发第一接收验证模块51;
第三发送模块,用于将登录失败信息和用户唯一标识发送给小程序服务器3,结束。
在本实施例中,第二接收验证模块34,具体用于接收微信小程序4发送的验证密码指令,解析验证密码指令得到加密结果,使用保存的会话密钥对加密结果进行解密,解密成功得到蓝牙设备5密码密文,使用随机数解密蓝牙设备5密码密文,并判断解密结果与保存的蓝牙设备5密码是否相同,是则验证成功,给与用户唯一标识对应的手机银行用户登录的微信小程序4返回登录成功信息,触发第二发送模块,否则验证失败,给与用户唯一标识对应的手机银行用户登录的微信小程序4返回登录失败信息,触发第三发送模块。
具体的,在本实施例中,第二获取发送模块44包括:第五接收发送单元和接收保存单元;小程序服务器3还包括第四发送模块和第五接收发送模块,蓝牙设备5还包括第一生成保存返回模块;
第四发送模块,用于向与用户唯一标识对应的手机银行用户登录的微信小程序4发送生成密钥对指令;
第五接收发送单元,用于接收小程序服务器3发送的生成密钥对指令,向蓝牙设备5发送生成密钥对指令;
第一生成保存返回模块,用于在接收到与用户唯一标识对应的手机银行用户登录的微信小程序4发送的生成密钥对指令后生成签名密钥对并保存,并将签名密钥对中的签名公钥返回给与用户唯一标识对应的手机银行用户登录的微信小程序4;
第五接收发送模块,用于接收蓝牙设备5发送的签名公钥,将签名公钥和用户唯一标识发送给小程序服务器3;
接收保存单元,用于接收签名公钥和用户唯一标识并对应保存。
具体的,在本实施例中,获取生成发送模块32包括:第六发送单元和加密发送单元;微信小程序4还包括第六接收发送模块和第七接收发送模块;蓝牙设备5还包括第二生成保存返回模块;
第六发送单元,用于向与用户唯一标识对应的手机银行用户登录的微信小程序4发送获取随机数指令;
第六接收发送模块,用于接收小程序服务器3发送的获取随机数指令,向蓝牙设备5发送获取随机数指令;
第二生成保存返回模块,用于在接收到微信小程序4发送的获取随机数指令后生成随机数并保存,将随机数返回给微信小程序4;
第七接收发送模块,用于接收蓝牙设备5返回的随机数,将随机数和用户唯一标识发送给小程序服务器3;
加密发送单元,用于将随机数作为加密密钥使用对称加密算法对蓝牙设备5的初始密码进行加密得到初始密码密文,将包含初始密码密文的验证密码指令发送给与用户唯一标识对应的手机银行用户登录的微信小程序4。
在本实施例中,第一接收验证模块51具体用于接收验证指令,根据保存的随机数和保存的初始密码对验证密码指令中的初始密码密文进行验证,如验证成功则给与用户唯一标识对应的手机银行用户登录的微信小程序4返回初始密码验证成功信息,如验证失败则给与用户唯一标识对应的手机银行用户登录的微信小程序4返回初始密码验证失败信息;
接收返回模块46具体用于接收蓝牙设备5发送的初始密码验证成功信息,将初始密码验证成功信息和用户唯一标识发送给小程序服务器3,触发第一生成发送模块33;
接收返回模块46还用于接收蓝牙设备5发送的初始密码验证失败信息,将初始密码验证成功失败和用户唯一标识发送给小程序服务器3,结束。
在本实施例中,第一接收验证模块51根据保存的随机数和保存的初始密码对验证密码指令中的初始密码密文进行验证,包括:第一接收验证模块51使用随机数解密验证密码指令中的初始密码密文,并判断解密结果与保存的初始密码是否相同,是则验证成功,否则验证失败。
在本实施例中,生成发送接收模块48,具体用于根据证书申请数据获取对应的证书序列号和授权码,根据待签名数据、签名结果、证书序列号和授权码生成颁发证书请求,向认证中心发送颁发证书请求;接收认证中心返回的证书;并将证书和用户唯一标识发送给小程序服务器3。
可选的, 在本实施例中,小程序服务器3还包括:生成缓存发送模块和接收认证发送模块;微信小程序4还包括第七接收发送模块和第八接收发送模块;
生成缓存发送模块,用于根据证书标识符和签名公钥生成待签名数据并缓存,将证书申请数据发送给与用户唯一标识对应的手机银行用户登录的微信小程序4;
第七接收发送模块用于接收小程序服务器3发送的证书申请数据并发送给蓝牙设备5;
接收签名发送模块52,还用于使用签名私钥对证书申请数据进行签名并将签名结果发送给与用户唯一标识对应的手机银行用户登录的微信小程序4;
第八接收发送模块用于接收蓝牙设备5发送的签名结果并将签名结果和与当前手机银行用户的手机银行用户唯一标识发送给小程序服务器3;
接收认证发送模块,用于接收与用户唯一标识对应的手机银行用户登录的微信小程序4发送的签名结果,根据签名结果和缓存的待签名数据生成颁发证书请求并发送给认证中心;并接收认证中心返回的证书。
在本实施例中,接收认证发送模块,具体用于接收与用户唯一标识对应的手机银行用户登录的微信小程序4发送的签名结果,根据证书申请数据获取对应的证书序列号和授权码,根据待签名数据、签名结果、证书序列号和授权码生成颁发证书请求,向认证中心发送颁发证书请求;并接收认证中心返回的证书。
具体的,在本实施例中,第二接收验证模块34包括:
第一接收解析单元,用于接收与用户唯一标识对应的手机银行用户登录的微信小程序4发送的证书,调用预设证书结构解析接收到的证书;
第一判断单元,用于根据解析结果判断证书是否在有效期内,是则触发第二判断单元,否则给与用户唯一标识对应的手机银行用户登录的微信小程序4返回错误信息,结束;
第二判断单元,用于判断证书中的公钥是否与保存的签名公钥一致,是则触发第一验证发送单元,否则给与用户唯一标识对应的手机银行用户登录的微信小程序4返回错误信息,结束;
第一验证发送单元,用于根据证书中的上一级根证书验证证书中的证书链是否合法,是则触发第八发送单元,否则给与用户唯一标识对应的手机银行用户登录的微信小程序4返回错误信息,结束;
第八发送单元,用于将证书发送给与用户唯一标识对应的手机银行用户登录的微信小程序4。
进一步地,第一判断单元具体用于从解析结果中获取证书有效期,根据当前时间来判断接收到的证书是否在有效期内,是则触发第二判断单元,否则给与用户唯一标识对应的手机银行用户登录的微信小程序4返回错误信息,结束;
进一步地,第二判断单元具体用于从解析结果中获取到公钥,判断获取到的公钥是否与保存的签名公钥一致,是则触发第一验证发送单元,否则给与用户唯一标识对应的手机银行用户登录的微信小程序4返回错误信息,结束;
进一步地,第一验证发送单元具体用于使用证书链的上一级根证书中的公钥解密证书链对应得证书中的签名值,对证书链对应证书中的待签名数据进行哈希计算,并判断哈希结果与解密结果是否一致,是则将证书通过与用户唯一标识对应的手机银行用户登录的微信小程序4发送给蓝牙设备5,否则给与用户唯一标识对应的手机银行用户登录的微信小程序4返回错误信息,结束。
进一步地,第八发送单元,具体用于根据证书生成证书写入指令,并将证书写入指令发送给与用户唯一标识对应的手机银行用户登录的微信小程序4;
接收转发模块49,具体用于接收小程序服务器3发送的写入指令,向蓝牙设备5发送证书写入指令;
接收保存模块53,用于当接收到与用户唯一标识对应的手机银行用户登录的微信小程序4发送的写入指令时保存写入指令中的证书。
可选的,在本实施例中,接收保存模块53,还用于用证书写入指令中的证书内容替换已保存的证书内容。
可选的,在本实施例中,蓝牙设备5还包括第一返回模块;微信小程序4还包括接收发送更新模块;
第一返回模块,用于将写入证书结果返回给与用户唯一标识对应的手机银行用户登录的微信小程序4;
接收发送更新模块,用于接收蓝牙设备5发送的写入证书结果,将写入证书结果和用户唯一标识发送给小程序服务器3,并更新证书的显示。
在本实施例中,微信小程序在与蓝牙设备建立连接之后,每次给小程序服务器发送数据时都要附带手机银行用户的用户唯一标识,小程序服务器操作完成时根据该用户唯一标识给对应的微信小程序发送数据,在小程序服务器可以多个微信小程序进行通信的情况下,保证小程序服务器当前只与同一个微信小程序进行通信,保证了通信的安全性。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明公开的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (50)
1.一种通过微信小程序下载蓝牙设备证书的实现方法,其特征在于,包括:
步骤S1:当微信小程序接收到手机银行用户的触发信息且在检测到所述手机银行用户成功登录所述微信小程序后,所述微信小程序与蓝牙设备建立连接;
步骤S2:所述微信小程序从所述蓝牙设备中获取设备信息并将所述设备信息和所述手机银行用户的用户唯一标识发送给小程序服务器;所述小程序服务器通过所述设备信息对所述蓝牙设备进行验证,如验证合法则给与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序返回验证合法信息,执行步骤S3,如验证不合法则报错;
步骤S3:与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序判断连接的蓝牙设备是否为所述手机银行用户绑定的蓝牙设备,是则执行步骤S4,否则报错;
步骤S4:与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序从所述蓝牙设备中获取签名公钥并将所述签名公钥和所述用户唯一标识发送给所述小程序服务器;
步骤S5:所述小程序服务器将所述签名公钥与所述用户唯一标识对应保存,通过与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序从所述蓝牙设备中获取随机数,根据所述随机数与保存的蓝牙设备的初始密码生成验证密码指令并通过与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序发送给所述蓝牙设备;
步骤S6:所述蓝牙设备根据所述随机数对所述验证密码指令进行验证,如验证成功则通过与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序给所述小程序服务器返回验证成功信息;
步骤S7:所述小程序服务器根据证书标识符和与所述用户唯一标识对应的签名公钥生成待签名数据,将所述待签名数据和包含证书申请数据的签名指令发送给与所述用户唯一标识对应的手机银行用户登录的所述微信小程序;
步骤S8:与所述用户唯一标识对应的手机银行用户登录的所述微信小程序缓存所述待签名数据并将所述签名指令发送给所述蓝牙设备;
步骤S9:所述蓝牙设备使用签名私钥对所述签名指令中的证书申请数据进行签名并将签名结果发送给与所述用户唯一标识对应的手机银行用户登录的所述微信小程序;
步骤S10:与所述用户唯一标识对应的手机银行用户登录的所述微信小程序根据所述签名结果和缓存的所述待签名数据生成颁发证书请求并发送给认证中心;当接收到所述认证中心返回的证书时将所述证书和所述用户唯一标识发送给所述小程序服务器;
步骤S11:所述小程序服务器对所述证书进行验证,如验证有效则将所述证书通过与所述用户唯一标识对应的手机银行用户登录的所述微信小程序发送给所述蓝牙设备,执行步骤S12,如验证无效则报错;
步骤S12:所述蓝牙设备保存所述证书。
2.如权利要求1所述的方法,其特征在于,所述步骤S1包括:
步骤S1-1:当所述微信小程序接收到手机银行用户触发信息时,获取登录标识和手机银行用户证书参数;
步骤S1-2:所述微信小程序向所述小程序服务器发送机构号和所述登录标识;
步骤S1-3:所述小程序服务器接收所述机构号和所述登录标识,根据所述机构号从数据库获取对应的小程序标识符和小程序密钥,将所述小程序标识符、所述小程序密钥和所述登录标识发送给微信服务器,并接收所述微信服务器返回的所述用户唯一标识;
步骤S1-4:所述小程序服务器根据所述用户唯一标识从数据库中获取对应的手机银行用户信息,给所述微信小程序返回所述手机银行用户信息和登录成功状态码;
步骤S1-5:所述微信小程序检测蓝牙状态是否可用,是则开启蓝牙扫描,当扫描到蓝牙设备时向所述蓝牙设备发起连接;
步骤S1-6:所述蓝牙设备给所述微信小程序返回蓝牙连接状态。
3.如权利要求1所述的方法,其特征在于,所述步骤S2包括:
步骤S21:所述微信小程序从所述蓝牙设备中获取设备信息并将所述设备信息和所述手机银行用户的用户唯一标识发送给所述小程序服务器;
步骤S22:所述小程序服务器验证所述设备信息,如验证合法则给与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序返回验证合法信息,执行步骤S23,如验证不合法则给与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序返回错误信息,结束;
步骤S23:与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序通过调用系统网络请求接口向所述小程序服务器发送包含证书标识符的下载证书请求和所述用户唯一标识。
4.如权利要求3所述的方法,其特征在于,所述步骤S21包括:
步骤S21-1:所述微信小程序调用蓝牙数据发送接口向所述蓝牙设备发送获取设备信息指令;
步骤S21-2:所述蓝牙设备给所述微信小程序返回设备信息;
步骤S21-3:所述微信小程序通过蓝牙数据监听回调接口接收所述蓝牙设备返回的设备信息,调用系统网络请求接口向所述小程序服务器发送所述设备信息和所述手机银行用户的用户唯一标识。
5.如权利要求3所述的方法,其特征在于,所述小程序服务器验证所述设备信息具体为:所述小程序服务器根据所述手机银行用户的用户唯一标识获取对应的设备信息,判断接收到的设备信息是否与获取到的设备信息匹配,是则验证合法,否则验证不合法。
6.如权利要求3所述的方法,其特征在于,所述步骤S3包括:
步骤S31:所述小程序服务器通过与所述用户唯一标识对应的所述手机银行用户登录的微信小程序从所述蓝牙设备中获取会话密钥并与所述用户唯一标识对应保存,向与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序发送初始化设备指令;
步骤S32:与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序从所述蓝牙设备中获取设备序列号,根据所述用户唯一标识检索对应的设备序列号,判断检索到的设备序列号与获取的设备序列号是否一致,是则连接的蓝牙设备为所述手机银行用户绑定的蓝牙设备,执行步骤S33,否则报错;
步骤S33:与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序通知所述蓝牙设备进行初始化,并将所述蓝牙设备返回的初始化结果和所述用户唯一标识发送给所述小程序服务器。
7.如权利要求6所述的方法,其特征在于,所述步骤S31包括:
步骤S31-1:所述小程序服务器向与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序发送获取会话密钥指令;
步骤S31-2:与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序调用蓝牙数据发送接口向所述蓝牙设备发送所述获取会话密钥指令;
步骤S31-3:所述蓝牙设备生成会话密钥并保存,使用蓝牙设备私钥对所述会话密钥进行加密并将会话密钥密文返回给与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序;
步骤S31-4:与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序向所述小程序服务器发送所述会话密钥密文和所述用户唯一标识;
步骤S31-5:所述小程序服务器根据机构号从数据库中获取预置的蓝牙设备公钥,使用所述蓝牙设备公钥解密所述会话密钥密文得到会话密钥并与所述用户唯一标识对应保存,向与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序发送初始化设备指令。
8.如权利要求6所述的方法,其特征在于,所述蓝牙设备进行初始化包括:所述蓝牙设备将设备密码设置为初始密码。
9.如权利要求7所述的方法,其特征在于,所述步骤S23替换为:所述微信小程序向所述小程序服务器发送包含证书标识符的更新颁发证书请求和所述用户唯一标识;
所述步骤S31-5中向与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序发送初始化设备指令之前还包括:所述小程序服务器根据手机银行用户证书参数判断当前业务操作是否需要跳过初始化,是则执行步骤S4,否则给与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序发送初始化设备指令。
10.如权利要求9所述的方法,其特征在于,所述步骤S5之前包括:所述小程序服务器根据手机银行用户证书参数判断业务操作类型,如为下载证书则执行步骤S5,如为更新证书则执行步骤A1;
步骤A1:所述小程序服务器给与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序发送会话密钥;
步骤A2:与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序从所述蓝牙设备中获取随机数,并将所述随机数和所述会话密钥发送给应用程序,接收所述应用程序返回的验证密码指令并转发给所述蓝牙设备;
步骤A3:所述蓝牙设备根据保存的所述随机数、所述会话密钥和保存的蓝牙设备密码对所述验证密码指令进行验证,如验证成功给与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序返回登录成功信息,执行步骤A4,如验证失败则给与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序返回登录失败信息,执行步骤A5;
步骤A4:与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序将所述登录成功信息和所述用户唯一标识发送给所述小程序服务器,执行步骤S6;
步骤A5:与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序将所述登录失败信息和所述用户唯一标识发送给所述小程序服务器,结束。
11.如权利要求10所述的方法,其特征在于,所述蓝牙设备根据保存的所述随机数、所述会话密钥和保存的蓝牙设备密码对所述验证密码指令进行验证,包括:
所述蓝牙设备解析所述验证密码指令得到加密结果,使用保存的所述会话密钥对所述加密结果进行解密,解密成功得到蓝牙设备密码密文,使用所述随机数解密所述蓝牙设备密码密文,并判断解密结果与保存的蓝牙设备密码是否相同,是则验证成功,否则验证失败。
12.如权利要求1所述的方法,其特征在于,所述步骤S4包括:
步骤S41:所述小程序服务器向与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序发送生成密钥对指令;
步骤S42:与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序向所述蓝牙设备发送所述生成密钥对指令;
步骤S43:所述蓝牙设备生成签名密钥对并保存,并将所述签名密钥对中的签名公钥返回给与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序;
步骤S44:与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序将所述签名公钥和所述用户唯一标识发送给所述小程序服务器;
步骤S45:所述小程序服务器接收所述签名公钥和所述用户唯一标识并对应保存。
13.如权利要求1所述的方法,其特征在于,所述步骤S5包括:
步骤S50:所述小程序服务器向与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序发送获取随机数指令;
步骤S51:与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序向所述蓝牙设备发送所述获取随机数指令;
步骤S52:所述蓝牙设备生成随机数并保存,将所述随机数返回给与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序;
步骤S53:与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序将所述随机数和所述用户唯一标识发送给所述小程序服务器;
步骤S54:所述小程序服务器将所述随机数作为加密密钥使用对称加密算法对所述蓝牙设备的初始密码进行加密得到初始密码密文,将包含所述初始密码密文的验证密码指令发送给与所述用户唯一标识对应的所述手机银行用户登录的微信小程序;
步骤S55:与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序将所述验证密码指令发送给所述蓝牙设备。
14.如权利要求13所述的方法,其特征在于,所述步骤S6包括:
步骤S61:所述蓝牙设备根据保存的所述随机数和保存的初始密码对所述验证密码指令中的初始密码密文进行验证,如验证成功则给与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序返回初始密码验证成功信息,执行步骤S62,如验证失败则给与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序返回初始密码验证失败信息,执行步骤S63;
步骤S62:与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序将所述初始密码验证成功信息和所述用户唯一标识发送给所述小程序服务器,执行步骤S7;
步骤S63:与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序将所述初始密码验证失败信息和所述用户唯一标识发送给所述小程序服务器,结束。
15.如权利要求14所述的方法,其特征在于,所述蓝牙设备根据保存的所述随机数和保存的初始密码对所述验证密码指令中的初始密码密文进行验证,包括:所述蓝牙设备使用所述随机数解密所述验证密码指令中的初始密码密文,并判断解密结果与保存的初始密码是否相同,是则验证成功,否则验证失败。
16.如权利要求1所述的方法,其特征在于,所述步骤S10包括:与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序根据所述证书申请数据获取对应的证书序列号和授权码,根据所述待签名数据、所述签名结果、所述证书序列号和所述授权码生成颁发证书请求,向认证中心发送所述颁发证书请求;接收所述认证中心返回的证书;并将所述证书和所述用户唯一标识发送给所述小程序服务器。
17.如权利要求1所述的方法,其特征在于,所述步骤S7-步骤S10替换为:
步骤S7’:所述小程序服务器根据证书标识符和所述签名公钥生成待签名数据并缓存,将证书申请数据通过与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序发送给所述蓝牙设备;
步骤S8’:所述蓝牙设备使用签名私钥对所述证书申请数据进行签名并将签名结果发送给与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序,与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序将所述签名结果和与所述用户唯一标识发送给所述小程序服务器;
步骤S9’:所述小程序服务器根据所述签名结果和缓存的所述待签名数据生成颁发证书请求并发送给认证中心;并接收所述认证中心返回的证书。
18.如权利要求17所述的方法,其特征在于,所述步骤S9’具体为:所述小程序服务器根据所述证书申请数据获取对应的证书序列号和授权码,根据所述待签名数据、所述签名结果、所述证书序列号和所述授权码生成颁发证书请求,向认证中心发送所述颁发证书请求;并接收所述认证中心返回的证书。
19.如权利要求1所述的方法,其特征在于,所述步骤S11包括:
步骤D0:所述小程序服务器调用预设证书结构解析接收到的所述证书;
步骤D1:所述小程序服务器根据解析结果判断所述证书是否在有效期内,是则执行步骤D2,否则给与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序返回错误信息,结束;
步骤D2:所述小程序服务器判断所述证书中的公钥是否与保存的签名公钥一致,是则执行步骤D3,否则给与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序返回错误信息,结束;
步骤D3:所述小程序服务器根据所述证书中的上一级根证书验证所述证书中的证书链是否合法,是则将所述证书通过与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序发送给所述蓝牙设备,否则给与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序返回错误信息,结束。
20.如权利要求19所述的方法,其特征在于,所述步骤D1包括:所述小程序服务器从解析结果中获取证书有效期,根据当前时间来判断接收到的所述证书是否在有效期内,是则执行步骤D2,否则给与所述用户唯一标识对应的手机银行用户登录的微信小程序返回错误信息,结束。
21.如权利要求19所述的方法,其特征在于,所述步骤D2包括:所述小程序服务器从解析结果中获取到公钥,判断获取到的公钥是否与保存的签名公钥一致,是则执行步骤D3,否则给与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序返回错误信息,结束。
22.如权利要求19所述的方法,其特征在于,所述步骤D3包括:所述小程序服务器使用证书链的上一级根证书中的公钥解密所述证书链对应得证书中的签名值,对所述证书链对应证书中的待签名数据进行哈希计算,并判断哈希结果与解密结果是否一致,是则将所述证书通过与所述用户唯一标识对应的手机银行用户登录的微信小程序发送给所述蓝牙设备,否则给与所述用户唯一标识对应的手机银行用户登录的微信小程序返回错误信息,结束。
23.如权利要求19所述的方法,其特征在于,所述将所述证书通过与所述用户唯一标识对应的所述手机银行用户登所述录的微信小程序发送给所述蓝牙设备,包括:所述小程序服务器根据所述证书生成证书写入指令,并将所述证书写入指令发送给与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序;与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序向所述蓝牙设备发送所述证书写入指令。
24.如权利要求23所述的方法,其特征在于,所述步骤S12替换为:所述蓝牙设备用证书写入指令中的证书内容替换已保存的证书内容。
25.如权利要求19所述的方法,其特征在于,所述步骤S12之后,还包括:所述蓝牙设备将写入证书结果返回给与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序,与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序将所述写入证书结果和所述用户唯一标识发送给所述小程序服务器,并更新证书的显示信息。
26.一种通过微信小程序下载蓝牙设备证书的实现系统,其特征在于,包括小程序服务器、微信小程序和蓝牙设备,所述小程序服务器包括:接收验证返回模块、获取生成发送模块、第一生成发送模块和第二接收验证模块,所述微信小程序包括:接收连接模块、第一获取发送模块、第一判断模块、第二获取发送模块、第一接收发送模块、接收返回模块、接收缓存发送模块、生成发送接收模块和接收转发模块,所述蓝牙设备包括:第一接收验证模块、接收签名发送模块和接收保存模块;
所述接收连接模块,用于当接收到手机银行用户触发信息且在检测到所述手机银行用户成功登录所述微信小程序后,与所述蓝牙设备建立连接;
所述第一获取发送模块,用于从所述蓝牙设备中获取设备信息并将所述设备信息和所述手机银行用户的用户唯一标识发送给所述小程序服务器;
所述接收验证返回模块,用于接收所述微信小程序发送的设备信息和所述手机银行用户的用户唯一标识,通过所述设备信息对所述蓝牙设备进行验证,如验证合法则给与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序返回验证合法信息,如验证不合法则报错;
所述第一判断模块,用于当接收到所述小程序服务器发送的验证合法信息时判断与所述接收连接模块连接的蓝牙设备是否为所述手机银行用户绑定的蓝牙设备,是则触发所述第二获取发送模块,否则报错;
所述第二获取发送模块,用于从所述蓝牙设备中获取签名公钥并将所述签名公钥和所述用户唯一标识发送给所述小程序服务器;
获取生成发送模块,用于接收所述微信小程序发送的签名公钥和所述用户唯一标识并对应保存,通过所述微信小程序从所述蓝牙设备中获取随机数,根据所述随机数与保存的蓝牙设备的初始密码生成验证密码指令并发送给与所述用户唯一标识对应的手机银行用户登录的所述微信小程序;
所述第一接收发送模块,用于接收所述获取生成发送模块发送的验证密码指令并发送给所述蓝牙设备;
所述第一接收验证模块,用于接收验证指令,根据所述随机数对所述验证密码指令进行验证,如验证成功则给所述微信小程序返回验证成功信息;
所述接收返回模块,用于接收所述蓝牙设备返回的验证成功信息并将所述验证成功信息和所述用户唯一标识发送给所述小程序服务器;
所述第一生成发送模块,用于根据证书标识符和与所述用户唯一标识对应的签名公钥生成待签名数据,将所述待签名数据和包含证书申请数据的签名指令发送给与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序;
所述接收缓存发送模块,用于接收所述小程序服务器发送的所述待签名数据和所述签名指令,缓存所述待签名数据并将所述签名指令发送给所述蓝牙设备;
所述接收签名发送模块,用于接收与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序发送的签名指令,使用签名私钥对所述签名指令中的证书申请数据进行签名并将签名结果发送给与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序;
所述生成发送接收模块,用于接收所述蓝牙设备发送的签名结果,根据所述签名结果和缓存的所述待签名数据生成颁发证书请求并发送给认证中心;当接收到所述认证中心返回的证书时将所述证书和所述用户唯一标识发送给所述小程序服务器;
所述第二接收验证模块,用于接收与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序发送的证书,并对所述证书进行验证,如验证有效则将所述证书发送给与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序,如验证无效则报错;
所述接收转发模块,用于接收所述小程序服务器发送的证书并转发给所述蓝牙设备;
所述接收保存模块,用于接收所述与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序发送的证书并保存。
27.如权利要求26所述的系统,其特征在于,所述接收连接模块包括:接收登录单元、第一发送单元和第一检测单元;所述小程序服务器还包括接收获取发送模块;所述蓝牙设备还包括第一返回模块;
所述接收登录单元,用于当接收到手机银行用户触发信息时,获取登录标识和手机银行用户证书参数;
所述第一发送单元,用于向所述小程序服务器发送机构号和所述登录标识;
所述接收获取发送模块,用于接收所述小程序服务器发送的所述机构号和所述登录标识,根据所述机构号从数据库获取对应的小程序标识符和小程序密钥,将所述小程序标识符、所述小程序密钥和所述登录标识发送给微信服务器,并接收所述微信服务器返回的所述用户唯一标识;根据所述用户唯一标识从数据库中获取对应的手机银行用户信息,给所述微信小程序返回所述手机银行用户信息和登录成功状态码;
所述第一检测单元,用于检测蓝牙状态是否可用,是则开启蓝牙扫描,当扫描到蓝牙设备时向所述蓝牙设备发起连接;
所述第一返回模块,用于当所述蓝牙设备与所述微信小程序建立连接后给所述微信小程序返回蓝牙连接状态。
28.如权利要求26所述的系统,其特征在于,所述接收验证返回模块具体用于接收与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序发送的设备信息和所述手机银行用户的用户唯一标识,验证所述设备信息,如验证合法则给与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序返回验证合法信息,如验证不合法则给与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序返回错误信息,结束;
所述第一接收发送模块还用于接收所述小程序服务器返回的验证合法信息,通过调用系统网络请求接口向所述小程序服务器发送包含证书标识符的下载证书请求和所述用户唯一标识。
29.如权利要求28所述的系统,其特征在于,所述第一获取发送模块包括:第二发送单元和第一接收发送单元;所述蓝牙设备还包括第二接收发送模块;
所述第二发送单元,用于调用蓝牙数据发送接口向所述蓝牙设备发送获取设备信息指令;
所述第二接收发送模块,用于接收所述微信小程序发送的获取设备信息指令并给所述微信小程序返回设备信息;
所述第一接收发送单元,用于通过蓝牙数据监听回调接口接收所述蓝牙设备返回的设备信息,调用系统网络请求接口向所述小程序服务器发送所述设备信息和所述手机银行用户的用户唯一标识。
30.如权利要求28所述的系统,其特征在于,所述接收验证返回模块具体用于接收所述微信小程序发送的设备信息和所述手机银行用户的用户唯一标识,根据所述用户唯一标识获取对应的设备信息,判断接收到的设备信息是否与获取到的设备信息匹配,是则验证合法,给与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序返回验证合法信息,否则验证不合法,给与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序返回错误信息,结束。
31.如权利要求28所述的系统,其特征在于,所述小程序服务器还包括:第三获取发送模块,用于通过与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序从所述蓝牙设备中获取会话密钥并与所述用户唯一标识对应保存,向与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序发送初始化设备指令;
所述第一判断模块具体用于从所述蓝牙设备中获取设备序列号,根据所述用户唯一标识检索对应的设备序列号,判断检索到的设备序列号与获取的设备序列号是否一致,是则连接的蓝牙设备为所述手机银行用户绑定的蓝牙设备,通知所述蓝牙设备进行初始化,并将所述蓝牙设备返回的初始化结果和所述用户唯一标识发送给所述小程序服务器,否则报错。
32.如权利要求31所述的系统,其特征在于,所述第三获取发送模块包括:第三发送单元和获取解密发送单元;所述微信小程序还包括第三接收发送模块和第四接收发送模块;所述蓝牙设备还包括:生成加密返回模块;
所述第三发送单元,用于向与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序发送获取会话密钥指令;
所述第三接收发送模块,用于调用蓝牙数据发送接口向所述蓝牙设备发送所述获取会话密钥指令;
所述生成加密返回模块,用于接收与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序发送的获取会话密钥指令,生成会话密钥并保存,使用蓝牙设备私钥对所述会话密钥进行加密并将会话密钥密文返回给与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序;
所述第四接收发送模块,用于接收所述蓝牙设备返回的会话密钥密文并向所述小程序服务器发送所述会话密钥密文和所述用户唯一标识;
所述获取解密发送单元,用于根据机构号从数据库中获取预置的蓝牙设备公钥,使用所述蓝牙设备公钥解密所述会话密钥密文得到会话密钥并与所述用户唯一标识对应保存,向与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序发送初始化设备指令。
33.如权利要求31所述的系统,其特征在于,所述蓝牙设备进行初始化包括:所述蓝牙设备将设备密码设置为初始密码。
34.如权利要求32所述的系统,其特征在于,所述接收验证返回模块还用于在验证合法时向所述小程序服务器发送包含证书标识符的更新颁发证书请求和所述用户唯一标识;
所述获取解密发送单元,还用于在向与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序发送初始化设备指令之前,根据手机银行用户证书参数判断当前业务操作是否需要跳过初始化,是则触发所述第二获取发送模块,否则给与所述用户唯一标识对应的所述手机银行用户登所述录的微信小程序发送初始化设备指令。
35.如权利要求34所述的系统,其特征在于,所述小程序服务器还包括第二判断模块和第一发送模块;所述微信小程序还包括:获取发送接收转发模块、第二发送模块和第三发送模块;所述蓝牙设备包括第二接收验证模块;
所述第二判断模块,用于根据手机银行用户证书参数判断业务操作类型,如为下载证书则触发所述获取生成发送模块,如为更新证书则触发所述第一发送模块;
所述第一发送模块,用于给与所述用户唯一标识对应的所述手机银行用户登录的微信小程序发送会话密钥;
所述获取发送接收转发模块,用于从所述蓝牙设备中获取随机数,并将所述随机数和所述会话密钥发送给应用程序,接收所述应用程序返回的验证密码指令并转发给所述蓝牙设备;
所述第二接收验证模块,用于接收与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序发送的验证密码指令,根据保存的所述随机数、所述会话密钥和保存的蓝牙设备密码对所述验证密码指令进行验证,如验证成功给与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序返回登录成功信息,触发所述第二发送模块,如验证失败则给与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序返回登录失败信息,所述第三发送模块;
所述第二发送模块,用于将所述登录成功信息和所述用户唯一标识发送给所述小程序服务器,触发所述第一接收验证模块;
所述第三发送模块,用于将所述登录失败信息和所述用户唯一标识发送给所述小程序服务器,结束。
36.如权利要求35所述的系统,其特征在于,所述第二接收验证模块,具体用于接收所述微信小程序发送的验证密码指令,解析所述验证密码指令得到加密结果,使用保存的所述会话密钥对所述加密结果进行解密,解密成功得到蓝牙设备密码密文,使用所述随机数解密所述蓝牙设备密码密文,并判断解密结果与保存的蓝牙设备密码是否相同,是则验证成功,给与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序返回登录成功信息,触发所述第二发送模块,否则验证失败,给与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序返回登录失败信息,触发所述第三发送模块。
37.如权利要求26所述的系统,其特征在于,所述第二获取发送模块包括:第五接收发送单元和接收保存单元;所述小程序服务器还包括第四发送模块和第五接收发送模块,所述蓝牙设备还包括第一生成保存返回模块;
所述第四发送模块,用于向与所述用户唯一标识对应的所述手机银行用户登所述录的微信小程序发送生成密钥对指令;
所述第五接收发送单元,用于接收所述小程序服务器发送的生成密钥对指令,向所述蓝牙设备发送所述生成密钥对指令;
所述第一生成保存返回模块,用于在接收到与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序发送的生成密钥对指令后生成签名密钥对并保存,并将所述签名密钥对中的签名公钥返回给与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序;
所述第五接收发送模块,用于接收所述蓝牙设备发送的签名公钥,将所述签名公钥和所述用户唯一标识发送给所述小程序服务器;
所述接收保存单元,用于接收所述签名公钥和所述用户唯一标识并对应保存。
38.如权利要求26所述的系统,其特征在于,所述获取生成发送模块包括:第六发送单元和加密发送单元;所述微信小程序还包括第六接收发送模块和第七接收发送模块;所述蓝牙设备还包括第二生成保存返回模块;
所述第六发送单元,用于向与所述手机银行用户唯一标识对应的手机银行用户登录的微信小程序发送获取随机数指令;
所述第六接收发送模块,用于接收所述小程序服务器发送的获取随机数指令,向所述蓝牙设备发送所述获取随机数指令;
所述第二生成保存返回模块,用于在接收到所述微信小程序发送的获取随机数指令后生成随机数并保存,将所述随机数返回给所述微信小程序;
所述第七接收发送模块,用于接收所述蓝牙设备返回的随机数,将所述随机数和所述用户唯一标识发送给所述小程序服务器;
所述加密发送单元,用于将所述随机数作为加密密钥使用对称加密算法对所述蓝牙设备的初始密码进行加密得到初始密码密文,将包含所述初始密码密文的验证密码指令发送给与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序。
39.如权利要求38所述的系统,其特征在于,所述第一接收验证模块具体用于接收验证指令,根据保存的所述随机数和保存的初始密码对所述验证密码指令中的初始密码密文进行验证,如验证成功则给与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序返回初始密码验证成功信息,如验证失败则给与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序返回初始密码验证失败信息;
所述接收返回模块具体用于接收所述蓝牙设备发送的所述初始密码验证成功信息,将所述初始密码验证成功信息和所述用户唯一标识发送给所述小程序服务器,触发所述第一生成发送模块;
所述接收返回模块还用于接收所述蓝牙设备发送的所述初始密码验证失败信息,将所述初始密码验证失败信息和所述用户唯一标识发送给所述小程序服务器,结束。
40.如权利要求39所述的系统,其特征在于,所述第一接收验证模块根据保存的所述随机数和保存的初始密码对所述验证密码指令中的初始密码密文进行验证,包括:所述第一接收验证模块使用所述随机数解密所述验证密码指令中的初始密码密文,并判断解密结果与保存的初始密码是否相同,是则验证成功,否则验证失败。
41.如权利要求26所述的系统,其特征在于,所述生成发送接收模块,具体用于根据所述证书申请数据获取对应的证书序列号和授权码,根据所述待签名数据、所述签名结果、所述证书序列号和所述授权码生成颁发证书请求,向认证中心发送所述颁发证书请求;接收所述认证中心返回的证书;并将所述证书和所述用户唯一标识发送给所述小程序服务器。
42.如权利要求26所述的系统,其特征在于,所述小程序服务器还包括:生成缓存发送模块和接收认证发送模块;所述微信小程序还包括第七接收发送模块和第八接收发送模块;
所述生成缓存发送模块,用于根据证书标识符和所述签名公钥生成待签名数据并缓存,将证书申请数据发送给与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序;
所述第七接收发送模块用于接收所述小程序服务器发送的证书申请数据并发送给所述蓝牙设备;
所述接收签名发送模块,还用于使用签名私钥对所述证书申请数据进行签名并将签名结果发送给与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序;
所述第八接收发送模块用于接收所述蓝牙设备发送的签名结果并将所述签名结果和所述用户唯一标识发送给所述小程序服务器;
所述接收认证发送模块,用于接收与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序发送的签名结果,根据所述签名结果和缓存的所述待签名数据生成颁发证书请求并发送给认证中心;并接收所述认证中心返回的证书。
43.如权利要求42所述的系统,其特征在于,所述接收认证发送模块,具体用于接与所述用户唯一标识对应的所述手机银行用户登录的收所述微信小程序发送的签名结果,根据所述证书申请数据获取对应的证书序列号和授权码,根据所述待签名数据、所述签名结果、所述证书序列号和所述授权码生成颁发证书请求,向认证中心发送所述颁发证书请求;并接收所述认证中心返回的证书。
44.如权利要求26所述的系统,其特征在于,所述第二接收验证模块包括:
第一接收解析单元,用于接收与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序发送的证书,调用预设证书结构解析接收到的所述证书;
第一判断单元,用于根据解析结果判断所述证书是否在有效期内,是则触发第二判断单元,否则给与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序返回错误信息,结束;
所述第二判断单元,用于判断所述证书中的公钥是否与保存的签名公钥一致,是则触发第一验证发送单元,否则给与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序返回错误信息,结束;
所述第一验证发送单元,用于根据所述证书中的上一级根证书验证所述证书中的证书链是否合法,是则触发第八发送单元,否则给与所述用户唯一标识对应的所述手机银行用户登所述录的微信小程序返回错误信息,结束;
所述第八发送单元,用于将所述证书发送给与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序。
45.如权利要求44所述的系统,其特征在于,所述第一判断单元具体用于从解析结果中获取证书有效期,根据当前时间来判断接收到的所述证书是否在有效期内,是则触发第二判断单元,否则给与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序返回错误信息,结束。
46.如权利要求44所述的系统,其特征在于,所述第二判断单元具体用于从解析结果中获取到公钥,判断获取到的公钥是否与保存的签名公钥一致,是则触发第一验证发送单元,否则给与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序返回错误信息,结束。
47.如权利要求44所述的系统,其特征在于,所述第一验证发送单元具体用于使用证书链的上一级根证书中的公钥解密所述证书链对应得证书中的签名值,对所述证书链对应证书中的待签名数据进行哈希计算,并判断哈希结果与解密结果是否一致,是则将所述证书通过与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序发送给所述蓝牙设备,否则给与所述用户唯一标识对应的所述手机银行用户登所述录的微信小程序返回错误信息,结束。
48.如权利要求44所述的系统,其特征在于,所述第八发送单元,具体用于根据所述证书生成证书写入指令,并将所述证书写入指令发送给与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序;
所述接收转发模块,具体用于接收所述小程序服务器发送的写入指令,向所述蓝牙设备发送所述证书写入指令;
所述接收保存模块,用于当接收到与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序发送的写入指令时保存所述写入指令中的证书。
49.如权利要求48所述的系统,其特征在于,所述接收保存模块,还用于用证书写入指令中的证书内容替换已保存的证书内容。
50.如权利要求44所述的系统,其特征在于,所述蓝牙设备还包括第一返回模块;所述微信小程序还包括接收发送更新模块;
所述第一返回模块,用于将写入证书结果返回给与所述用户唯一标识对应的所述手机银行用户登录的所述微信小程序;
所述接收发送更新模块,用于接收所述蓝牙设备发送的写入证书结果,将所述写入证书结果和所述用户唯一标识发送给所述小程序服务器,并更新证书的显示。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011258159.5A CN112104672B (zh) | 2020-11-12 | 2020-11-12 | 一种通过微信小程序下载蓝牙设备证书的实现方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011258159.5A CN112104672B (zh) | 2020-11-12 | 2020-11-12 | 一种通过微信小程序下载蓝牙设备证书的实现方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112104672A CN112104672A (zh) | 2020-12-18 |
CN112104672B true CN112104672B (zh) | 2021-03-16 |
Family
ID=73785051
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011258159.5A Active CN112104672B (zh) | 2020-11-12 | 2020-11-12 | 一种通过微信小程序下载蓝牙设备证书的实现方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112104672B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113225743B (zh) * | 2021-04-19 | 2023-06-06 | 深圳市瑞力物联技术有限公司 | 一种标签信息识别方法 |
CN115529140B (zh) * | 2022-09-15 | 2024-06-18 | 北京天威诚信电子商务服务有限公司 | 一种基于微信小程序的数字签名协同生成方法及系统 |
CN115883276A (zh) * | 2022-10-27 | 2023-03-31 | 四川虹美智能科技有限公司 | 一种基于小程序的智能家电安全控制方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017076258A1 (zh) * | 2015-11-03 | 2017-05-11 | 国民技术股份有限公司 | 智能卡及其下载应用的方法 |
CN110245472A (zh) * | 2019-01-16 | 2019-09-17 | 腾讯科技(深圳)有限公司 | 身份认证方法、个人安全内核节点、和介质 |
CN111464429A (zh) * | 2020-03-31 | 2020-07-28 | 高新兴科技集团股份有限公司 | 微信小程序多项目兼容共享方法、系统、存储介质及设备 |
CN111698259A (zh) * | 2020-06-18 | 2020-09-22 | 北京无忧创想信息技术有限公司 | 一种基于蓝牙设备的动态认证登录设备、系统及方法 |
-
2020
- 2020-11-12 CN CN202011258159.5A patent/CN112104672B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017076258A1 (zh) * | 2015-11-03 | 2017-05-11 | 国民技术股份有限公司 | 智能卡及其下载应用的方法 |
CN110245472A (zh) * | 2019-01-16 | 2019-09-17 | 腾讯科技(深圳)有限公司 | 身份认证方法、个人安全内核节点、和介质 |
CN111464429A (zh) * | 2020-03-31 | 2020-07-28 | 高新兴科技集团股份有限公司 | 微信小程序多项目兼容共享方法、系统、存储介质及设备 |
CN111698259A (zh) * | 2020-06-18 | 2020-09-22 | 北京无忧创想信息技术有限公司 | 一种基于蓝牙设备的动态认证登录设备、系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112104672A (zh) | 2020-12-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112104672B (zh) | 一种通过微信小程序下载蓝牙设备证书的实现方法及系统 | |
CN105847247B (zh) | 一种认证系统及其工作方法 | |
CN109150541B (zh) | 一种认证系统及其工作方法 | |
CN108377190B (zh) | 一种认证设备及其工作方法 | |
CN106302379B (zh) | 车载电器的认证方法、系统及其装置 | |
US20200302043A1 (en) | Authentication system | |
CN107612889B (zh) | 防止用户信息泄露的方法 | |
US10931464B2 (en) | Communication system, hardware security module, terminal device, communication method, and program | |
US20110271330A1 (en) | Solutions for identifying legal user equipments in a communication network | |
US11044085B2 (en) | Method employed in user authentication system and information processing apparatus included in user authentication system | |
CN107135205B (zh) | 一种网络接入方法和系统 | |
KR101210260B1 (ko) | 통합센터를 이용한 유심칩기반 모바일 오티피 인증장치 및 인증방법 | |
CN103067402A (zh) | 数字证书的生成方法和系统 | |
WO2020035009A1 (zh) | 认证系统及其工作方法 | |
CN111770057A (zh) | 身份验证系统及身份验证方法 | |
US11838421B2 (en) | Systems and methods for enhanced mobile device authentication | |
CN104836784A (zh) | 一种信息处理方法、客户端和服务器 | |
CN111147260A (zh) | 一种车辆密钥生成及发行方法、装置 | |
CN115396121A (zh) | 安全芯片ota数据包的安全认证方法及安全芯片装置 | |
CN114637987A (zh) | 基于平台验证的安全芯片固件下载方法及系统 | |
CN111901303A (zh) | 设备认证方法和装置、存储介质及电子装置 | |
JP2015039141A (ja) | 証明書発行要求生成プログラム、証明書発行要求生成装置、証明書発行要求生成システム、証明書発行要求生成方法、証明書発行装置および認証方法 | |
CN114374522B (zh) | 一种可信设备认证方法、装置、计算机设备及存储介质 | |
CN109086588B (zh) | 一种认证方法及认证设备 | |
CN108737101B (zh) | 一种应用程序的验证方法、装置及云端服务器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |