CN111193695B - 一种第三方账号登录的加密方法、装置及存储介质 - Google Patents
一种第三方账号登录的加密方法、装置及存储介质 Download PDFInfo
- Publication number
- CN111193695B CN111193695B CN201910683098.8A CN201910683098A CN111193695B CN 111193695 B CN111193695 B CN 111193695B CN 201910683098 A CN201910683098 A CN 201910683098A CN 111193695 B CN111193695 B CN 111193695B
- Authority
- CN
- China
- Prior art keywords
- key
- client
- public key
- party account
- server
- 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/0815—Network architectures or network communication protocols for network security for authentication of entities providing single-sign-on or federations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明实施例公开了一种第三方账号登录的加密方法、装置及存储介质。本发明实施例当检测到进行第三方账号登录时,获取第三方账号数据,并生成客户端私钥和客户端公钥,将客户端公钥发送至密钥管理服务,以使密钥管理服务根据客户端公钥生成服务端私钥和服务端公钥,并将服务端公钥返回至客户端,对服务端公钥的合法性进行验证,当确认服务端公钥的合法性验证通过时,根据服务端公钥和客户端私钥生成第一对称密钥,并根据第一对称密钥对第三方账号数据进行加密。本申请实施例只需新增一次网络往返时延,即可完成整个密钥协商的流程,还使得用户密钥隔离,从而在进行第三方账号登录时,有效的提提升业务登录数据的安全性。
Description
技术领域
本发明涉及通信技术领域,具体涉及一种第三方账号登录的加密方法、装置及存储介质。
背景技术
随着终端的不断普及与发展,用户越来越依赖终端,终端上可以安装各种各样的应用,其中,即时通信应用得到了广泛的使用,用户可以通过即时通信应用完成与好友的通信以及互动。
现有技术中,针对有账号***的移动端应用,往往会支持外部第三方社交账号进行注册登录,如微信,QQ,微博登录等。其往往都会集成第三方SDK,以供接入方调用,换取登录的access_token票据。SDK封装了获取access_token的接口细节,保证了登录信息的安全性。在终端换取到access_token登录票据后,便会向业务后台发送登录请求,业务后台需要验证该第三方access_token票据的合法性,从而进行后续的业务处理。
在对现有技术的研究和实践过程中,本发明的发明人发现,现有技术中,终端向业务后台发起登录请求时,若通信链路安全性不高,access_token会出现被中间人截获的可能性,导致第三方认证信息泄露,出现安全风险。
发明内容
本发明实施例提供一种第三方账号登录的加密方法、装置及存储介质,旨在进行第三方账号登录时,提升业务登录数据的安全性。
为解决上述技术问题,本发明实施例提供以下技术方案:
一种第三方账号登录的加密方法,包括:
当检测到进行第三方账号登录时,获取所述第三方账号数据,并基于第一预设算法生成客户端私钥和客户端公钥;
将所述客户端公钥发送至密钥管理服务,以使所述密钥管理服务基于所述第一预设算法根据所述客户端公钥生成服务端私钥和服务端公钥,并将所述服务端公钥返回至客户端;
对所述服务端公钥的合法性进行验证;
当确认所述服务端公钥的合法性验证通过时,根据所述服务端公钥和客户端私钥生成第一对称密钥,并基于第二预设算法根据所述第一对称密钥对所述第三方账号数据进行加密。
一种第三方账号登录的加密装置,包括:
第一生成单元,用于当检测到进行第三方账号登录时,获取所述第三方账号数据,并基于第一预设算法生成客户端私钥和客户端公钥;
第一发送单元,用于将所述客户端公钥发送至密钥管理服务,以使所述密钥管理服务基于所述第一预设算法根据所述客户端公钥生成服务端私钥和服务端公钥,并将所述服务端公钥返回至客户端;
验证单元,用于对所述服务端公钥的合法性进行验证;
加密单元,用于当所述验证单元验证通过时,根据所述服务端公钥和客户端私钥生成第一对称密钥,并基于第二预设算法根据所述第一对称密钥对所述第三方账号数据进行加密。
在一些实施例中,所述装置还包括:
版本获取单元,用于在所述客户端进行第三方账号登录之前,所述密钥管理服务获取所述客户端的版本信息;
第二生成单元,用于基于所述第三预设算法根据所述版本信息生成预设公钥和预设私钥,所述密钥管理服务保存所述预设私钥,并将所述预设公钥发送至所述客户端。
在一些实施例中,所述密钥管理服务通过所述预设私钥对所述服务端公钥进行签名后返回至所述客户端,所述验证单元,具体用于通过所述预设公钥对所述服务端公钥的签名的合法性进行验证。
在一些实施例中,在所述密钥管理服务生成服务端私钥和服务端公钥之后,所述密钥管理服务根据所述服务端私钥和客户端公钥生成第二对称密钥,所述装置还包括:
第二发送单元,用于在所述加密单元基于第二预设算法根据所述第一对称密钥对所述第三方账号数据进行加密之后,将所述加密后的第三方账号数据发送至登录服务;
密钥获取单元,用于控制所述登录服务向所述密钥管理服务获取所述第二对称密钥;
解密单元,用于控制所述登录服务基于所述第二对称密钥对所述加密后的第三方账号数据进行解密,以生成所述第三方账号数据。
一种存储介质,所述存储介质存储有多条指令,所述指令适于处理器进行加载,以执行上述第三方账号登录的加密方法中的步骤。
本申请提供的实施例当检测到进行第三方账号登录时,获取第三方账号数据,并基于第一预设算法生成客户端私钥和客户端公钥,将客户端公钥发送至密钥管理服务,以使密钥管理服务基于第一预设算法根据客户端公钥生成服务端私钥和服务端公钥,并将服务端公钥返回至客户端,对服务端公钥的合法性进行验证,当确认服务端公钥的合法性验证通过时,根据服务端公钥和客户端私钥生成第一对称密钥,并基于第二预设算法根据第一对称密钥对第三方账号数据进行加密。本申请实施例只需新增一次网络往返时延,即可完成整个密钥协商的流程,还使得用户密钥隔离,从而在进行第三方账号登录时,有效的提提升业务登录数据的安全性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的第三方账号登录的加密***的场景示意图;
图2是本发明实施例提供的第三方账号登录的加密方法的流程示意图;
图3是本发明实施例提供的第三方账号登录的加密方法的另一流程示意图;
图4为本申请实施例提供的一种登录界面示意图;
图5为本申请实施例提供的第三方账号登录的加密方法的又一流程示意图;
图6为本发明实施例提供的第三方账号登录的加密装置的结构示意图;
图7为本发明实施例提供的第三方账号登录的加密装置的另一种结构示意图;
图8是本发明实施例提供的终端的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
本发明实施例提供一种第三方库的文件版本检测方法,该第三方库的文件版本检测方法的执行主体可以是本发明实施例提供的第三方库的文件版本检测装置,或者集成了该第三方库的文件版本检测装置的服务器,其中该第三方库的文件版本检测装置可以采用硬件或者软件的方式实现。
在描述本发明的技术方案之前,先对相关的技术术语进行简单解释:
序列化:序列化(Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。
密钥:用来加密明文的密码,在对称加密算法中,加密与解密的密钥是相同的。通信双方可以通过一个协商机制,计算出同一个加密密钥。
ECDH:ECDH是基于ECC(Elliptic Curve Cryptosystems,椭圆曲线密码体制,参看ECC)的DH(Diffie-Hellman)密钥交换算法。交换双方可以在不共享任何秘密的情况下协商出一个密钥。
ECDSA:(Elliptic Curve Digital Signature Algorithm,椭圆曲线数字签名算法)是使用椭圆曲线对数字签名算法(DSA)的模拟,用于数字签名,是ECC与DSA的结合,签名中采取的算法为ECC。
AES-GCM:AES是一种对称加密算法,其中GCM(Galois/Counter Mode)指的是该对称加密采用Counter模式,并带有GMAC消息认证码。
refresh_token:长票据,用于刷新验证鉴权票据,有效期较长。
access_token:短票据,用于校验用户身份的合法性。该票据的有效期较短,需要用refresh_token定期换取新的access_token。
本发明实施例提供一种第三方账号登录的加密方法、装置及存储介质。
请参阅图1,图1为本发明实施例所提供的第三方账号登录的加密***的场景示意图,包括:终端10和服务器20,终端10与服务器20之间可以通过通信网络连接,该通信网络,包括无线网络以及有线网络,其中无线网络包括无线广域网、无线局域网、无线城域网、以及无线个人网中的一种或多种的组合。网络中包括路由器、网关等等网络实体,图中并未示意出。终端10可以通过通信网络与服务器20进行信息交互,比如可以从服务器20下载应用(如即时通讯应用)。
该第三方账号登录的加密***可以包括第三方账号登录的加密装置,该第三方账号登录的加密装置具体可以集成在平板电脑、手机、笔记本电脑、台式电脑等具备储存单元并安装有微处理器而具有运算能力的终端中,在图1中,该终端即为图1中的终端10,该终端10中可以安装有各种用户所需的应用,比如具备信息互动功能的即时通讯应用等。该终端10可以用于获取第三方账号数据,将第三方账号数据发送至服务器20,并接收服务器20根据第三方账号数据返回的账号关联信息,如头像昵称,手机号,工作地等私密信息,终端10接收到账号关联信息后展示给用户。
该第三方账号登录的加密***还可以包括服务器20,主要用于接收终端10发送的第三方账号数据,然后根据该第三方账号数据进行认证,确认用户身份,确认后获取账号关联信息并发送至终端10。该第三方账号登录的加密***还可以包括存储器,用于存储信息库,该信息库中包括第三方账号数据与账号关联信息之间的的关联关系等,以使得服务器可以从存储器中获取第三方账号数据、以及与第三方账号数据关联的账号关联信息发送至终端10。
需要说明的是,图1所示的第三方账号登录的加密***的场景示意图,仅仅是一个示例,本发明实施例描述的第三方账号登录的加密***以及场景是为了更加清楚的说明本发明实施例的技术方案,并不构成对于本发明实施例提供的技术方案的限定,本领域普通技术人员可知,随着第三方账号登录的加密***的演变和新业务场景的出现,本发明实施例提供的技术方案对于类似的技术问题,同样适用。
以下分别进行详细说明。需说明的是,以下实施例的序号不作为对实施例优选顺序的限定。
在本实施例中,将从第三方账号登录的加密装置的角度进行描述,该第三方账号登录的加密装置具体可以集成在具备储存单元并安装有处理器而具有运算能力的终端中。
一种第三方账号登录的加密方法,包括:
当检测到进行第三方账号登录时,获取所述第三方账号数据,并基于第一预设算法生成客户端私钥和客户端公钥;
将所述客户端公钥发送至密钥管理服务,以使所述密钥管理服务基于所述第一预设算法根据所述客户端公钥生成服务端私钥和服务端公钥,并将所述服务端公钥返回至客户端;
对所述服务端公钥的合法性进行验证;
当确认所述服务端公钥的合法性验证通过时,根据所述服务端公钥和客户端私钥生成第一对称密钥,并基于第二预设算法根据所述第一对称密钥对所述第三方账号数据进行加密。
请参阅图2,图2是本发明实施例提供的第三方账号登录的加密方法的流程示意图。该第三方账号登录的加密方法包括:
在步骤101中,当检测到进行第三方账号登录时,获取第三方账号数据,并基于第一预设算法生成客户端私钥和客户端公钥。
其中,在现有的具备账号***的客户端当中,为方便用户登录,往往会支持外部第三方社交账号进行注册登录,其往往都会集成第三方SDK,以供接入方调用,换取登录的access_token票据。其中,SDK为软件开发工具包,软件开发工具包是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作***等创建应用软件的开发工具的集合,一般而言SDK即开发Windows平台下的应用程序所使用的SDK。它可以简单的为某个程序设计语言提供应用程序接口API的一些文件,但也可能包括能与某种嵌入式***通讯的复杂的硬件。SDK封装了获取access_token的接口细节,保证了登录信息的安全性。
在一实施例中,当检测到用户进行第三方账号登录时,比如在应用登录页面点击其他登录方式,然后从多个第三方登录选项当中选取一个点击登录,在此过程当中,为保证通信链路的安全性,尝试用两种方式来建立通信。方案一是使用HTTPS建立安全的数据通路,由TLS层(安全传输层协议)保障用户的数据链路安全。方案二则是采用私有TLV类型的协议,如ProtoBuf等,将用户的请求序列化后明文传输到服务端进行处理。具体的,客户端在点击第三方账号登录时,拉起对应的SDK,用户在授权后返回该次的access_token给到客户端。客户端用access_token和相关业务信息,通过proto buffer序列化后,发送到登录服务。登录服务反序列化请求包后,将access_token发送至第三方认证服务器。认证用户的合法性后,第三方服务器根据应用的授权等级,返回该用户的相关信息,如头像昵称,手机号,工作地等私密信息。登录服务再将这些信息序列化后,返回给客户端,客户端对这些信息进行相应的展示。
对于上述方案一引入了TLS层来保障前后端的数据通信链路安全。在运营维护方面,需要申请并购买维护CA证书;在业务开发方面,同时需要前后端都支持到HTTPS的功能,业务侧开发工作量大且容易因为证书相关问题导致业务的失败,同时在业务交互上,由于TLS的密钥协商需要进行多次交换,导致增大了前后端的交互延迟以及计算资源的损耗。对于方案二,采用了私有的请求协议进行了数据的序列化。但如果协议格式被破解,中间人就能够轻易的获取到用户的第三方登录票据信息,从而伪装成服务端,劫持用户的所有账号请求,导致用户的敏感信息泄露。
在本申请实施例中,检测到进行第三方账号登录时,拉起对应的SDK,用户在授权后返回该次的短票据数据access_token给到客户端,其中上述短票据数据access_token也可以为长票据数据refresh_token。
进一步的,基于第一预设算法生成客户端私钥和客户端公钥。其中,上述第一预设算法可以为ECDH算法。其中,上述ECDH算法主要是用来在一个不安全的通道中建立起安全的共有加密资料,一般来说交换的都是私钥,这个密钥一般作为“对称加密”的密钥而被双方在后续数据传输中使用。比如在本地通过ECDH算法,生成一对本地的公私密钥,client_pub_key和client_pri_key,其中上述client_pub_key为客户端公钥,上述client_pri_key为客户端私钥。
在步骤102中,将客户端公钥发送至密钥管理服务,以使密钥管理服务基于第一预设算法根据客户端公钥生成服务端私钥和服务端公钥,并将服务端公钥返回至客户端。
在本申请实施例中,相对于现有技术新增加了一个密钥管理服务,客户端将上述客户端公钥发送至密钥管理服务,该密钥管理服务可以为服务器或者云服务器,用于在进行每次登录时的用户密钥换取。
在一实施例中,上述密钥管理服务接收客户端发送的客户端公钥,比如client_pub_key,也使用上述第一预设算法根据客户端公钥生成服务端私钥和服务端公钥,比如通过ECDH算法,生成,svr_pub_key和svr_pri_key,其中,上述svr_pub_key为服务端公钥,上述svr_pri_key为服务端私钥,然后再将上述服务端私钥也即svr_pri_key明文回传给客户端。
在步骤103中,对服务端公钥的合法性进行验证。
在一申请实施例中,可以通过预设的一对公私钥对服务端公钥的合法性进行验证。比如在客户端当中设置一个预设公钥,同时在密钥管理服务当中设置一个预设私钥,然后密钥管理服务在向客户端发送服务端公钥明文的同时,通过预设私钥对上述服务端公钥进行签名以生成对应的信息摘要,然后密钥管理服务将该信息摘要以及服务端公钥明文一并回传给客户端。
进一步的,客户端在接收到密钥管理服务的回包后,通过客户端存储的预设公钥去校验回包当中信息摘要的签名是否合法,具体为验证上述签名是否由对应的密钥管理服务签发,因为上述预设公钥存储在客户端中,预设私钥存储在密钥管理服务当中,因此该预设私钥只有真正的后台服务也即密钥管理服务知道,若验证成功,则表明服务端公钥的合法性验证通过,也即表明上述接收到的服务端公钥是合法的,便可执行接下来的操作。
在一实施例中,上述预设的一对公私钥可以由密钥管理服务预先生成,比如,上述密钥管理服务可以根据客户端的版本号,使用ECDSA算法生成一对公私钥,将公钥预置于客户端,可以称为verify_key;而将私钥存放在密钥管理服务,可以称为sign_key。也即在所述客户端进行第三方账号登录之前,所述方法还包括:
所述密钥管理服务获取所述客户端的版本信息;
基于所述第三预设算法根据所述版本信息生成预设公钥和预设私钥;
所述密钥管理服务保存所述预设私钥,并将所述预设公钥发送至所述客户端。
在一实施例中,在上述密钥管理服务将所述服务端公钥返回至所述客户端的过程中,可以通过预设私钥对上述服务端公钥进行签名,具体流程比如为:密钥管理服务使用预置的sign_key,对生成的svr_pub_key进行签名生成对应的信息摘要,其中signature=ECDSA(sign_key,client_rand)。将后台服务端的签名摘要以及对应的svr_pub_key明文回传给对应的客户端。也即所述将所述服务端公钥返回至所述客户端的步骤,包括:
通过所述预设私钥对所述服务端公钥进行签名后返回至所述客户端。
在一实施例中,在客户端对所述服务端公钥的合法性进行验证时,可以通过上述预设公钥去校验回包当中信息摘要的签名是否合法,具体流程可以为:客户端收到密钥管理服务的回包后,通过预置的verify_key去校验回包的签名是否由真实的密钥管理服务签发。由于sign_key只有真实的后台服务也即密钥管理服务知道,若校验成功,则表示该次获取到的svr_pub_key是合法的。也即所述对所述服务端公钥的合法性进行验证的步骤,包括:
通过所述预设公钥对所述服务端公钥的签名的合法性进行验证。
在步骤104中,当确认服务端公钥的合法性验证通过时,根据服务端公钥和客户端私钥生成第一对称密钥,并基于第二预设算法根据第一对称密钥对第三方账号数据进行加密。
在一实施例中,比如当客户端通过预置的verify_key校验签名成功时,则表示该次获取到的svr_pub_key是合法的,便可在客户端本地也生成对应的对称密钥,具体可以根据服务端公钥和客户端私钥生成第一对称密钥,该第一对称密钥比如为share_key=ECDH_GENERATE(client_pri_key,svr_pub_key),该第一对称密钥用于对第三方账号数据进行加密。其中,上述对称密钥也称私钥加密,属于对称密码体制,是指双方用同一个密钥进行加密和解密。即发送和接收数据的双方必使用相同的密钥对明文进行加密和解密运算。
进一步的,在客户端生成第一对称密钥后,可以基于第二预设算法根据第一对称密钥对第三方账号数据进行加密。上述第二预设算法可以为对称加密算法,该对称加密算法可以包括DES算法,3DES算法,TDEA算法,Blowfish算法,RC5算法,IDEA算法,AES-GCM算法等等,在一实施例中,可以使用AES-GCM算法对上述第三方账号数据进行加密。GCM中的G就是指GMAC,C就是指CTR。GCM可以提供对消息的加密和完整性校验,另外,它还可以提供附加消息的完整性校验AES-GCM算法是带认证和加密的算法,同时可以对给定的原文,生成加密数据和认证码。参数如下:带加密的原文、存储加密后密文、IV向量、生成的消息验证码tag、额外的消息认证数据aad,并且通信双方需要共享。
进一步的,在本申请实施例的对称加密算法中,数据发信方也即客户端将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。收信方收到密文后,若想解读原文,则需要使用加密用过的密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。在对称加密算法中,使用的密钥只有一个,发收信双方都使用这个密钥对数据进行加密和解密,这就要求解密方事先必须知道加密密钥。因此,在一实施例中,还可以在密钥管理服务接收到客户端公钥,以及根据客户端公钥基于第一预设算法生成服务端公钥和服务端私钥之后,根据客户端公钥以及服务端私钥生成第二对称密钥,并存储在密钥管理服务当中,以用于对经第一对称密钥加密后的第三方账号数据进行解密。
在一实施例中,由于对称加密指加密和解密使用相同密钥的加密算法。就是加密密钥能够从解密密钥中推算出来,同时解密密钥也可以从加密密钥中推算出来。而在大多数的对称算法中,加密密钥和解密密钥是相同的,因此上述客户端中的第一对称密钥和密钥管理服务中的第二对称密钥可以为相同的。第三方账号数据经客户端的第一对称密钥加密后,发送至登录服务,登录服务在接收到加密后的第三方账号数据后,从密钥管理服务中请求获取第二对称密钥,从而完成对上述第三方账号数据的解密,解密出用户的请求,获取明文的业务数据,从而完成第三方账号的登录。
在上述整个交互流程中,客户端在每次登录之前,都需要向密钥管理服务换取一次会话的服务端公钥,来唯一生成每次会话的对称密钥。每一个客户端的每一次交换都会生成一对唯一的公私密钥,以及每次计算出来的对称密钥也是会话唯一的,不会存在因为密钥泄露而影响所有用户的账号登录安全性。
在上述实施例中,由于密钥协商时的协议是未加密的,为了防止中间人的劫持和篡改,密钥管理服务在回包时,会使用预置的预设私钥对密钥管理服务的服务端密钥进行签名。客户端在收到回包后,可使用预置的预设公钥对签名数据进行校验,若校验成功,即可对第三方账号数据进行加密。
由上可知,本申请实施例提供的第三方账号登录的加密方法可以当检测到进行第三方账号登录时,获取第三方账号数据,并基于第一预设算法生成客户端私钥和客户端公钥,将客户端公钥发送至密钥管理服务,以使密钥管理服务基于第一预设算法根据客户端公钥生成服务端私钥和服务端公钥,并将服务端公钥返回至客户端,对服务端公钥的合法性进行验证,当确认服务端公钥的合法性验证通过时,根据服务端公钥和客户端私钥生成第一对称密钥,并基于第二预设算法根据第一对称密钥对第三方账号数据进行加密。本申请实施例只需新增一次网络往返时延,即可完成整个密钥协商的流程,还使得用户密钥隔离,从而在进行第三方账号登录时,有效的提提升业务登录数据的安全性。
根据上一实施例中所描述的第三方账号登录的加密方法,以下将举例作进一步详细说明。
在本实施例中,将以该第三方账号登录的加密装置具体集成在终端中为例进行说明。
请参阅图3,图3为本发明实施例提供的第三方账号登录的加密方法的另一流程示意图。该方法流程可以包括:
步骤201,当检测到进行第三方账号登录时,获取第三方账号数据,并基于第一预设算法生成客户端私钥和客户端公钥。
在一实施例中,用户可以在应用程序当中登录账号,从而获取账号数据,而针对某些第一次使用应用程序的用户,为避免注册账号的繁琐步骤,还可以选择第三方账号进行登录,比如集成第三方SDK,以供接入方调用,换取登录的access_token票据。
在一实施例中,如图4所示,图4为本申请实施例提供的一种登录界面示意图,用户在使用客户端时,可以在登录界面选择进行登录或注册等,同时客户端还会展示支持登录的账号类型,包括第三方账号,比如FaceBook、Line、微信、QQ等以供用户进行选择,用户可以选取其中拥有账号的类型以完成第三方账号的登录。
进一步的,当用户点击其中一个第三方账号登录方式后,比如用户点击FaceBook登录,客户端还可以生成提示信息,该提示信息包括客户端在使用FaceBook进行登录时获取终端的权限,比如位置权限和网络权限等,向用户请求是否继续,若用户确定继续登录,则跳转至第三方账号登录界面,以完成登录操作。
请参阅图5,图5为本申请实施例提供的第三方账号登录的加密方法的又一流程示意图。在一实施例中,当检测到用户进行第三方账号登录时,拉起对应的SDK,用户在授权后返回该次的短票据数据access_token给到客户端,其中上述短票据数据access_token也可以为长票据数据refresh_token。
进一步的,基于第一预设算法生成客户端私钥和客户端公钥。其中,上述第一预设算法可以为ECDH算法。其中,上述ECDH算法主要是用来在一个不安全的通道中建立起安全的共有加密资料,一般来说交换的都是私钥,这个密钥一般作为“对称加密”的密钥而被双方在后续数据传输中使用。比如在本地通过ECDH算法,生成一对本地的公私密钥,client_pub_key和client_pri_key,其中上述client_pub_key为客户端公钥,上述client_pri_key为客户端私钥。
步骤202,将客户端公钥发送至密钥管理服务,以使密钥管理服务基于第一预设算法根据客户端公钥生成服务端私钥和服务端公钥,并将服务端公钥返回至客户端。
在本申请实施例中,相对于现有技术新增加了一个密钥管理服务,客户端将上述客户端公钥发送至密钥管理服务,该密钥管理服务可以为服务器或者云服务器,用于在进行每次登录时的用户密钥换取。
进一步的,客户端在本地生成客户端公钥和客户端私钥后,还可以基于客户端公钥,请求随机序列号,同时获取终端对应的设备信息与客户端公钥一同传输到后端的密钥管理服务。比如,客户端在生成client_pub_key和client_pri_key后,将本次生成的client_pub_key,请求的随机序列号client_rand以及相关设备信息传输到后端的密钥管理服务。
在一实施例中,上述密钥管理服务接收客户端发送的客户端公钥,比如client_pub_key,也使用上述第一预设算法根据客户端公钥生成服务端私钥和服务端公钥,比如通过ECDH算法,生成,svr_pub_key和svr_pri_key,其中,上述svr_pub_key为服务端公钥,上述svr_pri_key为服务端私钥,然后再将上述服务端私钥也即svr_pri_key明文回传给客户端。
步骤203,密钥管理服务根据服务端私钥和客户端公钥生成第二对称密钥。
在一实施例中,密钥管理服务可以根据服务端私钥和客户端公钥通过算法生成第二对称密钥,比如,该密钥管理服务可以根据对称密钥算法计算出该客户端对应的本次第二对称密钥share_key=ECDH_GENERATE(client_pub_key,svr_pri_key)。进一步的,还可以以用户设备维度保存该第二对称密钥并设置使用有效期。
步骤204,对服务端公钥的合法性进行验证。
在一申请实施例中,可以通过预设的一对公私钥对服务端公钥的合法性进行验证。比如在客户端当中设置一个预设公钥,同时在密钥管理服务当中设置一个预设私钥,然后密钥管理服务在向客户端发送服务端公钥明文的同时,通过预设私钥对上述服务端公钥进行签名以生成对应的信息摘要,然后密钥管理服务将该信息摘要以及服务端公钥明文一并回传给客户端。
进一步的,客户端在接收到密钥管理服务的回包后,通过客户端存储的预设公钥去校验回包当中信息摘要的签名是否合法,具体为验证上述签名是否由对应的密钥管理服务签发,因为上述预设公钥存储在客户端中,预设私钥存储在密钥管理服务当中,因此该预设私钥只有真正的后台服务也即密钥管理服务知道,若验证成功,则表明服务端公钥的合法性验证通过,也即表明上述接收到的服务端公钥是合法的,便可执行接下来的操作。
在一实施例中,上述预设的一对公私钥可以由密钥管理服务预先生成,比如,上述密钥管理服务可以根据客户端的版本号,使用ECDSA算法生成一对公私钥,将公钥预置于客户端,可以称为verify_key;而将私钥存放在密钥管理服务,可以称为sign_key。
在一实施例中,在上述密钥管理服务将所述服务端公钥返回至所述客户端的过程中,可以通过预设私钥对上述服务端公钥进行签名,具体流程比如为:密钥管理服务使用预置的sign_key,对生成的svr_pub_key进行签名生成对应的信息摘要,其中signature=ECDSA(sign_key,client_rand)。将后台服务端的签名摘要以及对应的svr_pub_key明文回传给对应的客户端。
在一实施例中,在客户端对所述服务端公钥的合法性进行验证时,可以通过上述预设公钥去校验回包当中信息摘要的签名是否合法,具体流程可以为:客户端收到密钥管理服务的回包后,通过预置的verify_key去校验回包的签名是否由真实的密钥管理服务签发。由于sign_key只有真实的后台服务也即密钥管理服务知道,若校验成功,则表示该次获取到的svr_pub_key是合法的。
步骤205,当确认服务端公钥的合法性验证通过时,根据服务端公钥和客户端私钥生成第一对称密钥,并基于第二预设算法根据第一对称密钥对第三方账号数据进行加密。
在一实施例中,比如当客户端通过预置的verify_key校验签名成功时,则表示该次获取到的svr_pub_key是合法的,便可在客户端本地也生成对应的对称密钥,具体可以根据服务端公钥和客户端私钥生成第一对称密钥,该第一对称密钥比如为share_key=ECDH_GENERATE(client_pri_key,svr_pub_key)。其中,上述客户端中的第一对称密钥和密钥管理服务中的第二对称密钥可以为相同的。
进一步的,在客户端生成第一对称密钥后,可以基于第二预设算法根据第一对称密钥对第三方账号数据进行加密。上述第二预设算法可以为AES-GCM算法,加密业务登录请求的数据ENC(share_key,access_token+user_data),从而请求有业务后台的登陆服务。
在一实施例中,上述加密后的第三方账号数据还可以携带设备信息,用于通过设备信息向密钥管理服务对应的第二密钥。
步骤206,将加密后的第三方账号数据发送至登录服务,登录服务向密钥管理服务获取第二对称密钥,并基于第二对称密钥进行解密,以生成第三方账号数据。
在本申请实施例中,由于对称加密指加密和解密使用相同密钥的加密算法。就是加密密钥能够从解密密钥中推算出来,同时解密密钥也可以从加密密钥中推算出来。而在大多数的对称算法中,加密密钥和解密密钥是相同的。也即再通过客户端的第一对称密钥加密后的第三方账号数据,可以通过密钥管理服务中的第二对称密钥来进行解密。
在一实施例中,所述登录服务向所述密钥管理服务获取第二对称密钥的步骤,包括:
登录服务根据所述设备信息向所述密钥管理服务获取所述第二对称密钥。
比如,登录服务收到请求后,根据用户的设备信息,向密钥管理服务查询该设备对应的share_key,解密出用户的请求,获取明文的业务数据。
步骤207,登录服务将第三方账号数据发送至第三方认证服务器,完成登录。
在一实施例中,第三方认证服务器根据第三方账号数据对用户身份的合法性进行验证,若确认用户身份合法,第三方服务器获取用户的关联信息并发送至登录服务,以使登录服务将关联信息返回至客户端,客户端对这些关联信息进行展示。其中,上述用户的关联信息比如为头像昵称,手机号,工作地等私密信息。
在一实施例中,密钥管理服务会根据客户端的版本号,使用ECDSA算法生成一对公私钥,将公钥预置于客户端,称为verify_key;私钥存放在密钥管理服务,称为sign_key。同时还可以生成一对备用的公钥和私钥,比如可以为default_svr_pub_key和default_svr_pri_key,其中default_svr_pub_key为被用公钥,default_svr_pri_key为备用私钥,将default_svr_pub_key预置在客户端,default_svr_pri_key存放在密钥管理服务,预置的服务端公私密钥跟随客户端的版本进行升级替换,可降低泄露的安全风险。也即在所述客户端进行第三方账号登录之前,所述方法还包括:
所述密钥管理服务生成备用公钥和备用私钥,并保存所述备用私钥,将所述备用公钥发送至所述客户端。
在一实施例中,密钥协商时的协议是未加密的,为了防止中间人的劫持和篡改,服务端在回包时,会使用预置的sign_key对服务端的svr_pub_key进行签名。客户端在收到回包后,可使用预置的verify_key对签名数据进行校验,若校验失败,则认为该次数据可能被篡改,则使用预置的default_svr_pub_key来计算对称密钥。也即,在所述对所述服务端公钥的合法性进行验证的不足之后,所述方法还包括:
当确认所述服务端公钥的合法性验证不通过时,根据所述备用公钥和客户端私钥生成第三对称密钥,并基于第二预设算法根据所述第三对称密钥对所述第三方账号数据进行加密。
进一步的,在客户端使用上述第三对称密钥进行加密后,密钥管理服务也可以通过备用私钥来计算第四对称密钥,该第四对称密钥用于对加密后的第三方账号数据进行解密。
在上述整个交互流程中,客户端在每次登录之前,都需要向密钥管理服务换取一次会话的服务端公钥,来唯一生成每次会话的对称密钥。每一个客户端的每一次交换都会生成一对唯一的公私密钥,以及每次计算出来的对称密钥也是会话唯一的,不会存在因为密钥泄露而影响所有用户的账号登录安全性。
在上述实施例中,由于密钥协商时的协议是未加密的,为了防止中间人的劫持和篡改,密钥管理服务在回包时,会使用预置的预设私钥对密钥管理服务的服务端密钥进行签名。客户端在收到回包后,可使用预置的预设公钥对签名数据进行校验,若校验成功,即可对第三方账号数据进行加密。若校验失败,则认为该次数据可能被篡改,则使用预置的备用公钥来计算对称加密密钥。
由上可知,本申请实施例提供的第三方账号登录的加密方法可以当检测到进行第三方账号登录时,获取第三方账号数据,并基于第一预设算法生成客户端私钥和客户端公钥,将客户端公钥发送至密钥管理服务,以使密钥管理服务基于第一预设算法根据客户端公钥生成服务端私钥和服务端公钥,并将服务端公钥返回至客户端,密钥管理服务根据服务端私钥和客户端公钥生成第二对称密钥,对服务端公钥的合法性进行验证,当确认服务端公钥的合法性验证通过时,根据服务端公钥和客户端私钥生成第一对称密钥,并基于第二预设算法根据第一对称密钥对第三方账号数据进行加密,将加密后的第三方账号数据发送至登录服务,登录服务向密钥管理服务获取第二对称密钥,并基于第二对称密钥进行解密,以生成第三方账号数据,登录服务将第三方账号数据发送至第三方认证服务器,完成登录。本申请实施例只需新增一次网络往返时延,即可完成整个密钥协商的流程,还使得用户密钥隔离,从而在进行第三方账号登录时,有效的提提升业务登录数据的安全性。
为便于更好的实施本发明实施例提供的第三方账号登录的加密方法,本发明实施例还提供一种基于上述第三方账号登录的加密方法的装置。其中名词的含义与上述第三方账号登录的加密方法中相同,具体实现细节可以参考方法实施例中的说明。
请参阅图6,图6为本发明实施例提供的第三方账号登录的加密装置的一种结构示意图。其中,上述第三方账号登录的加密装置可以包括:
第一生成单元301,用于当检测到进行第三方账号登录时,获取所述第三方账号数据,并基于第一预设算法生成客户端私钥和客户端公钥。
其中,在现有的具备账号***的客户端当中,为方便用户登录,往往会支持外部第三方社交账号进行注册登录,其往往都会集成第三方SDK,以供接入方调用,换取登录的access_token票据。
在一实施例中,检测到进行第三方账号登录时,拉起对应的SDK,用户在授权后返回该次的短票据数据access_token给到客户端,其中上述短票据数据access_token也可以为长票据数据refresh_token。
进一步的,第一生成单元301基于第一预设算法生成客户端私钥和客户端公钥。其中,上述第一预设算法可以为ECDH算法。其中,上述ECDH算法主要是用来在一个不安全的通道中建立起安全的共有加密资料,一般来说交换的都是私钥,这个密钥一般作为“对称加密”的密钥而被双方在后续数据传输中使用。比如在本地通过ECDH算法,生成一对本地的公私密钥,client_pub_key和client_pri_key,其中上述client_pub_key为客户端公钥,上述client_pri_key为客户端私钥。
第一发送单元302,用于将所述客户端公钥发送至密钥管理服务,以使所述密钥管理服务基于所述第一预设算法根据所述客户端公钥生成服务端私钥和服务端公钥,并将所述服务端公钥返回至客户端。
在本申请实施例中,相对于现有技术新增加了一个密钥管理服务,客户端将上述客户端公钥发送至密钥管理服务,该密钥管理服务可以为服务器或者云服务器,用于在进行每次登录时的用户密钥换取。
在一实施例中,上述密钥管理服务接收客户端发送的客户端公钥,比如client_pub_key,也使用上述第一预设算法根据客户端公钥生成服务端私钥和服务端公钥,比如通过ECDH算法,生成,svr_pub_key和svr_pri_key,其中,上述svr_pub_key为服务端公钥,上述svr_pri_key为服务端私钥,然后再由第一发送单元302将上述服务端私钥也即svr_pri_key明文回传给客户端。
验证单元303,用于对所述服务端公钥的合法性进行验证。
在一申请实施例中,验证单元303可以通过预设的一对公私钥对服务端公钥的合法性进行验证。比如在客户端当中设置一个预设公钥,同时在密钥管理服务当中设置一个预设私钥,然后密钥管理服务在向客户端发送服务端公钥明文的同时,通过预设私钥对上述服务端公钥进行签名以生成对应的信息摘要,然后密钥管理服务将该信息摘要以及服务端公钥明文一并回传给客户端。
进一步的,客户端在接收到密钥管理服务的回包后,验证单元303通过客户端存储的预设公钥去校验回包当中信息摘要的签名是否合法,具体为验证上述签名是否由对应的密钥管理服务签发,因为上述预设公钥存储在客户端中,预设私钥存储在密钥管理服务当中,因此该预设私钥只有真正的后台服务也即密钥管理服务知道,若验证成功,则表明服务端公钥的合法性验证通过,也即表明上述接收到的服务端公钥是合法的,便可执行接下来的操作。
加密单元304,用于当所述验证单元验证通过时,根据所述服务端公钥和客户端私钥生成第一对称密钥,并基于第二预设算法根据所述第一对称密钥对所述第三方账号数据进行加密。
在一实施例中,比如当客户端通过预置的verify_key校验签名成功时,则表示该次获取到的svr_pub_key是合法的,便可在客户端本地也生成对应的对称密钥,具体可以根据服务端公钥和客户端私钥生成第一对称密钥,该第一对称密钥比如为share_key=ECDH_GENERATE(client_pri_key,svr_pub_key)。
进一步的,在客户端生成第一对称密钥后,加密单元304可以基于第二预设算法根据第一对称密钥对第三方账号数据进行加密。上述第二预设算法可以为对称加密算法,在一实施例中,可以使用AES-GCM算法对上述第三方账号数据进行加密。
在上述整个交互流程中,客户端在每次登录之前,都需要向密钥管理服务换取一次会话的服务端公钥,来唯一生成每次会话的对称密钥。每一个客户端的每一次交换都会生成一对唯一的公私密钥,以及每次计算出来的对称密钥也是会话唯一的,不会存在因为密钥泄露而影响所有用户的账号登录安全性。
在一实施例中,如图7所示,所述第三方账号登录的加密装置还可以包括:
版本获取单元305,用于在所述客户端进行第三方账号登录之前,所述密钥管理服务获取所述客户端的版本信息;
第二生成单元306,用于基于所述第三预设算法根据所述版本信息生成预设公钥和预设私钥,所述密钥管理服务保存所述预设私钥,并将所述预设公钥发送至所述客户端。
在一实施例中,所述密钥管理服务通过所述预设私钥对所述服务端公钥进行签名后返回至所述客户端,所述验证单元303,具体用于通过所述预设公钥对所述服务端公钥的签名的合法性进行验证。
在一实施例中,在所述密钥管理服务生成服务端私钥和服务端公钥之后,所述密钥管理服务根据所述服务端私钥和客户端公钥生成第二对称密钥。继续参阅图7,所述第三方账号登录的加密装置还可以包括:
第二发送单元307,用于在所述加密单元304基于第二预设算法根据所述第一对称密钥对所述第三方账号数据进行加密之后,将所述加密后的第三方账号数据发送至登录服务;
密钥获取单元308,用于控制所述登录服务向所述密钥管理服务获取所述第二对称密钥;
解密单元309,用于控制所述登录服务基于所述第二对称密钥对所述加密后的第三方账号数据进行解密,以生成所述第三方账号数据。
由上述可知,本发明实施例可以当检测到进行第三方账号登录时,第一生成单元301获取第三方账号数据,并基于第一预设算法生成客户端私钥和客户端公钥,第一发送单元302将客户端公钥发送至密钥管理服务,以使密钥管理服务基于第一预设算法根据客户端公钥生成服务端私钥和服务端公钥,并将服务端公钥返回至客户端,验证单元303对服务端公钥的合法性进行验证,当确认服务端公钥的合法性验证通过时,加密单元304根据服务端公钥和客户端私钥生成第一对称密钥,并基于第二预设算法根据第一对称密钥对第三方账号数据进行加密。本申请实施例只需新增一次网络往返时延,即可完成整个密钥协商的流程,还使得用户密钥隔离,从而在进行第三方账号登录时,有效的提提升业务登录数据的安全性。
本发明实施例还提供一种终端,如图8所示,该终端可以包括射频(RF,RadioFrequency)电路601、包括有一个或一个以上计算机可读存储介质的存储器602、输入单元603、显示单元604、传感器605、音频电路606、无线保真(WiFi,Wireless Fidelity)模块607、包括有一个或者一个以上处理核心的处理器608、以及电源609等部件。本领域技术人员可以理解,图8中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
RF电路601可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器608处理;另外,将涉及上行的数据发送给基站。通常,RF电路601包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM,Subscriber Identity Module)卡、收发信机、耦合器、低噪声放大器(LNA,Low Noise Amplifier)、双工器等。此外,RF电路601还可以通过无线通信与网络和其他设备通信。无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯***(GSM,Global System of Mobile communication)、通用分组无线服务(GPRS,GeneralPacket Radio Service)、码分多址(CDMA,Code Division Multiple Access)、宽带码分多址(WCDMA,Wideband Code Division Multiple Access)、长期演进(LTE,Long TermEvolution)、电子邮件、短消息服务(SMS,Short Messaging Service)等。
存储器602可用于存储软件程序以及模块,处理器608通过运行存储在存储器602的软件程序以及模块,从而执行各种功能应用以及信息处理。存储器602可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器602可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器602还可以包括存储器控制器,以提供处理器608和输入单元603对存储器602的访问。
输入单元603可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,在一个具体的实施例中,输入单元603可包括触敏表面以及其他输入设备。触敏表面,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面上或在触敏表面附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器608,并能接收处理器608发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面。除了触敏表面,输入单元603还可以包括其他输入设备。具体地,其他输入设备可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元604可用于显示由用户输入的信息或提供给用户的信息以及终端的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元604可包括显示面板,可选的,可以采用液晶显示器(LCD,Liquid Crystal Display)、有机发光二极管(OLED,Organic Light-Emitting Diode)等形式来配置显示面板。进一步的,触敏表面可覆盖显示面板,当触敏表面检测到在其上或附近的触摸操作后,传送给处理器608以确定触摸事件的类型,随后处理器608根据触摸事件的类型在显示面板上提供相应的视觉输出。虽然在图8中,触敏表面与显示面板是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面与显示面板集成而实现输入和输出功能。
终端还可包括至少一种传感器605,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板的亮度,接近传感器可在终端移动到耳边时,关闭显示面板和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于终端还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路606、扬声器,传声器可提供用户与终端之间的音频接口。音频电路606可将接收到的音频数据转换后的电信号,传输到扬声器,由扬声器转换为声音信号输出;另一方面,传声器将收集的声音信号转换为电信号,由音频电路606接收后转换为音频数据,再将音频数据输出处理器608处理后,经RF电路601以发送给比如另一终端,或者将音频数据输出至存储器602以便进一步处理。音频电路606还可能包括耳塞插孔,以提供外设耳机与终端的通信。
WiFi属于短距离无线传输技术,终端通过WiFi模块607可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图8示出了WiFi模块607,但是可以理解的是,其并不属于终端的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器608是终端的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器602内的软件程序和/或模块,以及调用存储在存储器602内的数据,执行终端的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器608可包括一个或多个处理核心;优选的,处理器608可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作***、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器608中。
终端还包括给各个部件供电的电源609(比如电池),优选的,电源可以通过电源管理***与处理器608逻辑相连,从而通过电源管理***实现管理充电、放电、以及功耗管理等功能。电源609还可以包括一个或一个以上的直流或交流电源、再充电***、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管未示出,终端还可以包括摄像头、蓝牙模块等,在此不再赘述。具体在本实施例中,终端中的处理器608会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器602中,并由处理器608来运行存储在存储器602中的应用程序,从而实现各种功能:
当检测到进行第三方账号登录时,获取第三方账号数据,并基于第一预设算法生成客户端私钥和客户端公钥,将客户端公钥发送至密钥管理服务,以使密钥管理服务基于第一预设算法根据客户端公钥生成服务端私钥和服务端公钥,并将服务端公钥返回至客户端,对服务端公钥的合法性进行验证,当确认服务端公钥的合法性验证通过时,根据服务端公钥和客户端私钥生成第一对称密钥,并基于第二预设算法根据第一对称密钥对第三方账号数据进行加密。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见上文针对第三方账号登录的加密方法的详细描述,此处不再赘述。
由上可知,本发明实施例的终端可以当检测到进行第三方账号登录时,获取第三方账号数据,并基于第一预设算法生成客户端私钥和客户端公钥,将客户端公钥发送至密钥管理服务,以使密钥管理服务基于第一预设算法根据客户端公钥生成服务端私钥和服务端公钥,并将服务端公钥返回至客户端,对服务端公钥的合法性进行验证,当确认服务端公钥的合法性验证通过时,根据服务端公钥和客户端私钥生成第一对称密钥,并基于第二预设算法根据第一对称密钥对第三方账号数据进行加密。本申请实施例只需新增一次网络往返时延,即可完成整个密钥协商的流程,还使得用户密钥隔离,从而在进行第三方账号登录时,有效的提提升业务登录数据的安全性。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本发明实施例提供一种存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本发明实施例所提供的任一种第三方账号登录的加密方法中的步骤。例如,该指令可以执行如下步骤:
当检测到进行第三方账号登录时,获取第三方账号数据,并基于第一预设算法生成客户端私钥和客户端公钥,将客户端公钥发送至密钥管理服务,以使密钥管理服务基于第一预设算法根据客户端公钥生成服务端私钥和服务端公钥,并将服务端公钥返回至客户端,对服务端公钥的合法性进行验证,当确认服务端公钥的合法性验证通过时,根据服务端公钥和客户端私钥生成第一对称密钥,并基于第二预设算法根据第一对称密钥对第三方账号数据进行加密。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该存储介质中所存储的指令,可以执行本发明实施例所提供的任一种第三方账号登录的加密方法中的步骤,因此,可以实现本发明实施例所提供的任一种第三方账号登录的加密方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
以上对本发明实施例所提供的一种第三方账号登录的加密方法、装置、存储介质以及终端进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (11)
1.一种第三方账号登录的加密方法,其特征在于,所述方法包括:
当检测到进行第三方账号登录时,获取所述第三方账号数据,并基于第一预设算法生成客户端私钥和客户端公钥;
将所述客户端公钥发送至密钥管理服务,以使所述密钥管理服务基于所述第一预设算法根据所述客户端公钥生成服务端私钥和服务端公钥,并将所述服务端公钥返回至客户端;
对所述服务端公钥的合法性进行验证;
当确认所述服务端公钥的合法性验证通过时,根据所述服务端公钥和客户端私钥生成第一对称密钥,并基于第二预设算法根据所述第一对称密钥对所述第三方账号数据进行加密。
2.根据权利要求1所述的第三方账号登录的加密方法,其特征在于,在所述客户端进行第三方账号登录之前,所述方法还包括:
所述密钥管理服务获取所述客户端的版本信息;
基于第三预设算法根据所述版本信息生成预设公钥和预设私钥;
所述密钥管理服务保存所述预设私钥,并将所述预设公钥发送至所述客户端。
3.根据权利要求2所述的第三方账号登录的加密方法,其特征在于,所述将所述服务端公钥返回至所述客户端的步骤,包括:
通过所述预设私钥对所述服务端公钥进行签名后返回至所述客户端;
所述对所述服务端公钥的合法性进行验证的步骤,包括:
通过所述预设公钥对所述服务端公钥的签名的合法性进行验证。
4.根据权利要求1所述的第三方账号登录的加密方法,其特征在于,在所述密钥管理服务生成服务端私钥和服务端公钥之后,所述方法还包括:
所述密钥管理服务根据所述服务端私钥和客户端公钥生成第二对称密钥。
5.根据权利要求4所述的第三方账号登录的加密方法,其特征在于,在所述基于第二预设算法根据所述第一对称密钥对所述第三方账号数据进行加密之后,所述方法还包括:
将所述加密后的第三方账号数据发送至登录服务;
所述登录服务向所述密钥管理服务获取所述第二对称密钥;
所述登录服务基于所述第二对称密钥对所述加密后的第三方账号数据进行解密,以生成所述第三方账号数据。
6.根据权利要求5所述的第三方账号登录的加密方法,其特征在于,在所述登录服务生成所述第三方账号数据之后,所述方法还包括:
所述登录服务将所述第三方账号数据发送至第三方认证服务器;
所述第三方认证服务器根据所述第三方账号数据对用户身份的合法性进行验证;
若确认所述用户身份合法,所述第三方服务器获取所述用户的关联信息并发送至所述登录服务,以使所述登录服务将所述关联信息返回至所述客户端。
7.根据权利要求5所述的第三方账号登录的加密方法,其特征在于,所述加密后的第三方账号数据携带设备信息,所述登录服务向所述密钥管理服务获取所述第二对称密钥的步骤,包括:
所述登录服务根据所述设备信息向所述密钥管理服务获取所述第二对称密钥。
8.根据权利要求1所述的第三方账号登录的加密方法,其特征在于,在所述客户端进行第三方账号登录之前,所述方法还包括:
所述密钥管理服务生成备用公钥和备用私钥,并保存所述备用私钥,将所述备用公钥发送至所述客户端;
在所述对所述服务端公钥的合法性进行验证之后,所述方法还包括:
当确认所述服务端公钥的合法性验证不通过时,根据所述备用公钥和客户端私钥生成第三对称密钥,并基于第二预设算法根据所述第三对称密钥对所述第三方账号数据进行加密。
9.一种第三方账号登录的加密装置,其特征在于,包括:
第一生成单元,用于当检测到进行第三方账号登录时,获取所述第三方账号数据,并基于第一预设算法生成客户端私钥和客户端公钥;
第一发送单元,用于将所述客户端公钥发送至密钥管理服务,以使所述密钥管理服务基于所述第一预设算法根据所述客户端公钥生成服务端私钥和服务端公钥,并将所述服务端公钥返回至客户端;
验证单元,用于对所述服务端公钥的合法性进行验证;
加密单元,用于当所述验证单元验证通过时,根据所述服务端公钥和客户端私钥生成第一对称密钥,并基于第二预设算法根据所述第一对称密钥对所述第三方账号数据进行加密。
10.一种存储介质,其特征在于,所述存储介质存储有多条指令,所述指令适于处理器进行加载,以执行权利要求1至8任一项所述的第三方账号登录的加密方法中的步骤。
11.一种终端,其特征在于,所述终端中包括处理器以及存储器,所述存储器存储有应用程序,所述处理器运行存储在存储器中的应用程序,以执行权利要求1至8任一项所述的第三方账号登录的加密方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910683098.8A CN111193695B (zh) | 2019-07-26 | 2019-07-26 | 一种第三方账号登录的加密方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910683098.8A CN111193695B (zh) | 2019-07-26 | 2019-07-26 | 一种第三方账号登录的加密方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111193695A CN111193695A (zh) | 2020-05-22 |
CN111193695B true CN111193695B (zh) | 2021-07-06 |
Family
ID=70709038
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910683098.8A Active CN111193695B (zh) | 2019-07-26 | 2019-07-26 | 一种第三方账号登录的加密方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111193695B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112073185B (zh) * | 2020-08-11 | 2023-06-30 | 广州点云科技有限公司 | 云游戏安全传输方法及装置 |
CN112202792A (zh) * | 2020-09-30 | 2021-01-08 | 京东数字科技控股股份有限公司 | 客户端与服务器建立长连接的、通信方法及装置 |
CN112187832A (zh) * | 2020-11-03 | 2021-01-05 | 北京指掌易科技有限公司 | 数据传输方法和电子设备 |
CN112966286B (zh) * | 2021-03-30 | 2023-01-24 | 中国建设银行股份有限公司 | 用户登录的方法、***、设备和计算机可读介质 |
CN112733107B (zh) * | 2021-04-02 | 2021-06-22 | 腾讯科技(深圳)有限公司 | 一种信息验证的方法、相关装置、设备以及存储介质 |
CN113360924A (zh) * | 2021-06-03 | 2021-09-07 | 腾讯云计算(北京)有限责任公司 | 数据处理方法、装置、电子设备及介质 |
CN113556359B (zh) * | 2021-08-04 | 2023-06-23 | 京东方科技集团股份有限公司 | 一种通讯协议转换方法、设备、***及网关设备 |
CN113641985B (zh) * | 2021-10-12 | 2022-02-11 | 江苏荣泽信息科技股份有限公司 | 一种分布式可信组织身份访问控制***及方法 |
CN116527246A (zh) * | 2021-11-19 | 2023-08-01 | 荣耀终端有限公司 | 数据保护方法及电子设备 |
CN114500055B (zh) * | 2022-01-27 | 2023-06-27 | 建信金融科技有限责任公司 | 密码验证方法、装置及电子设备、存储介质 |
CN114615012A (zh) * | 2022-01-28 | 2022-06-10 | 北京威尔文教科技有限责任公司 | 设备连接方法、装置、电子设备和可读存储介质 |
CN114531235B (zh) * | 2022-03-01 | 2023-06-13 | 中国科学院软件研究所 | 一种端对端加密的通信方法及*** |
CN115001865B (zh) * | 2022-07-28 | 2022-12-02 | 杭州安司源科技有限公司 | 通信处理方法及***、客户端、通信服务端和监管服务端 |
CN115499122B (zh) * | 2022-11-15 | 2023-04-28 | 平安银行股份有限公司 | 外部合作方接入方法、电子设备以及计算机存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102739708A (zh) * | 2011-04-07 | 2012-10-17 | 腾讯科技(深圳)有限公司 | 一种基于云平台访问第三方应用的***及方法 |
CN103095704A (zh) * | 2013-01-15 | 2013-05-08 | 杭州华三通信技术有限公司 | 一种可信介质的在线验证方法及装置 |
CN104184701A (zh) * | 2013-05-21 | 2014-12-03 | 腾讯科技(深圳)有限公司 | 一种第三方应用的登录方法及装置、终端 |
CN104836776A (zh) * | 2014-02-10 | 2015-08-12 | 阿里巴巴集团控股有限公司 | 数据交互方法和装置 |
CN105187431A (zh) * | 2015-09-17 | 2015-12-23 | 网易(杭州)网络有限公司 | 第三方应用的登录方法、服务器、客户端及通信*** |
CN105871866A (zh) * | 2016-04-28 | 2016-08-17 | 济南大学 | 一种基于计算机硬件信息的密码管理***及方法 |
CN108347419A (zh) * | 2017-01-24 | 2018-07-31 | 腾讯科技(深圳)有限公司 | 数据传输方法和装置 |
CN108471404A (zh) * | 2018-02-28 | 2018-08-31 | 深圳市达仁基因科技有限公司 | 文件共享方法、装置、计算机设备和存储介质 |
CN108965331A (zh) * | 2018-08-29 | 2018-12-07 | 腾讯科技(深圳)有限公司 | 登录校验方法、装置和登录*** |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9674158B2 (en) * | 2015-07-28 | 2017-06-06 | International Business Machines Corporation | User authentication over networks |
US9565020B1 (en) * | 2016-02-02 | 2017-02-07 | International Business Machines Corporation | System and method for generating a server-assisted strong password from a weak secret |
-
2019
- 2019-07-26 CN CN201910683098.8A patent/CN111193695B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102739708A (zh) * | 2011-04-07 | 2012-10-17 | 腾讯科技(深圳)有限公司 | 一种基于云平台访问第三方应用的***及方法 |
CN103095704A (zh) * | 2013-01-15 | 2013-05-08 | 杭州华三通信技术有限公司 | 一种可信介质的在线验证方法及装置 |
CN104184701A (zh) * | 2013-05-21 | 2014-12-03 | 腾讯科技(深圳)有限公司 | 一种第三方应用的登录方法及装置、终端 |
CN104836776A (zh) * | 2014-02-10 | 2015-08-12 | 阿里巴巴集团控股有限公司 | 数据交互方法和装置 |
CN105187431A (zh) * | 2015-09-17 | 2015-12-23 | 网易(杭州)网络有限公司 | 第三方应用的登录方法、服务器、客户端及通信*** |
CN105871866A (zh) * | 2016-04-28 | 2016-08-17 | 济南大学 | 一种基于计算机硬件信息的密码管理***及方法 |
CN108347419A (zh) * | 2017-01-24 | 2018-07-31 | 腾讯科技(深圳)有限公司 | 数据传输方法和装置 |
CN108471404A (zh) * | 2018-02-28 | 2018-08-31 | 深圳市达仁基因科技有限公司 | 文件共享方法、装置、计算机设备和存储介质 |
CN108965331A (zh) * | 2018-08-29 | 2018-12-07 | 腾讯科技(深圳)有限公司 | 登录校验方法、装置和登录*** |
Also Published As
Publication number | Publication date |
---|---|
CN111193695A (zh) | 2020-05-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111193695B (zh) | 一种第三方账号登录的加密方法、装置及存储介质 | |
CN112733107B (zh) | 一种信息验证的方法、相关装置、设备以及存储介质 | |
CN109600223B (zh) | 验证方法、激活方法、装置、设备及存储介质 | |
US11088836B2 (en) | Key updating method, apparatus, and system | |
US11509485B2 (en) | Identity authentication method and system, and computing device | |
US11456864B2 (en) | Information storage method, device, and computer-readable storage medium | |
EP3605989B1 (en) | Information sending method, information receiving method, apparatus, and system | |
WO2018014723A1 (zh) | 密钥管理方法、装置、设备及*** | |
US20190236300A1 (en) | Service processing method and apparatus, data sharing system, and storage medium | |
CN110417543B (zh) | 一种数据加密方法、装置和存储介质 | |
WO2017041599A1 (zh) | 业务处理方法及电子设备 | |
CN111737366B (zh) | 区块链的隐私数据处理方法、装置、设备以及存储介质 | |
US10601590B1 (en) | Secure secrets in hardware security module for use by protected function in trusted execution environment | |
CN104954126B (zh) | 敏感操作验证方法、装置及*** | |
CN109768977B (zh) | 流媒体数据处理方法、装置以及相关设备和介质 | |
US10454905B2 (en) | Method and apparatus for encrypting and decrypting picture, and device | |
CN107154935B (zh) | 业务请求方法及装置 | |
EP3439266B1 (en) | Processing resource requests on a mobile device | |
WO2018108123A1 (zh) | 身份验证方法、装置与*** | |
WO2018108062A1 (zh) | 身份验证方法、装置及存储介质 | |
CN113037741A (zh) | 一种鉴权方法和相关装置 | |
CN109086595B (zh) | 一种业务账号切换方法、***、装置及服务器 | |
WO2023226778A1 (zh) | 身份认证方法、装置、电子设备及计算机可读存储介质 | |
CN108737341B (zh) | 业务处理方法、终端及服务器 | |
CN114553612B (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 |