应用程序之间认证的方法及设备技术

技术编号:12803977 阅读:66 留言:0更新日期:2016-02-02 19:08
提出了一种应用程序之间认证的方法,包括:向密钥分发中心KDC发送应用程序的信息和认证服务器的验证请求申请;接收KDC生成的Session Key和标签Ticket;根据公钥PUB_KEY1解密Session Key,生成Authenticator,将Authenticator和Ticket发送给认证服务器;接收认证服务器发送的应用程序的认证结果。本发明专利技术实施例还提出了一种密钥分发中心和一种客户端。本发明专利技术提出的上述方案,应用程序进行认证时,传输过程中加密时使用的密钥属于短时间有效的密钥,降低了被恶意监听截获的可能性;此外,通过引入KDC,客户端和服务器可以采用不同的加密算法进行加密,有效增强了认证过程的安全性。通过KDC,除了能够验证待验证客户端的可信与否,同时也能够验证服务器端是否可信,解决了现有技术中应用程序认证过程存在的安全隐患。

【技术实现步骤摘要】

本专利技术涉及应用程序
,具体而言,本专利技术涉及应用程序之间认证的方法及设备
技术介绍
目前在安卓平台的技术中,安卓应用程序之间的认证机制通常是基于服务器—客户端(Server—Client)机制,其中,服务器为应用程序认证服务器(App Auth Server),客户端为安卓应用程序(Android app),通过在服务器和客户端共享一对公钥和私钥的方式进行认证。具体而言,服务器负责生成一对公钥和私钥,其中,私钥保存在服务器,客户端可以通过REST API获取到公钥。首次客户端(也就是安卓应用程序)在服务器注册后,服务器端会对客户端的APK二进制包生成HASH Value以及用对称加密算法对这个HASH Value生成签名,并保存在服务器端的数据库中。客户端(也就是安卓应用程序)之间发起互信访问的时候,需要对安卓应用程序进行认证。当客户端(也就是安卓应用程序)希望对某个客户端(也就是另外一个安卓应用程序)进行认证的时候,请求验证的客户端传递需要验证的客户端的信息到服务器端,服务器端返回给其待验证的客户端的签名的HASH Value,请求验证的客户端通过之前得到的公钥来对这个签名验证,当认证通过后,则完成对待验证的客户端的认证。上述现有技术中的认证方式,存在以下一个或多个缺陷,例如:1.现有的客户端和服务器端维护着的一对公钥和私钥,是属于长期内保持不变的密钥(Long-term Key),而且长期内保持不变的密钥需要在网络上传输,也会存在安全隐患。原因很简单,一旦长期内保持不变的密钥加密包被恶意网络监听截获,原则上,只要有充足的时间,是能够获取原始数据的。2.客户端和服务器端需要使用相同的算法进行加密,而且,算法的保密也存在安全风险。3.客户端和服务器端之间多次和单次的认证请求流程是一样的,这样容易被恶意网络监听或截获。4.上述认证流程只能验证待验证客户端的可信与否,无法验证服务器是否可信。基于以上原因,因此,有必要提出有效的认证机制,以解决应用程序之间认证的缺陷与不足。
技术实现思路
本专利技术的目的旨在至少解决上述技术缺陷之一,特别是通过引入KDC(Key Distribution Center,密钥分发中心),并使用短时内保持不变的密钥(Short-term Key)和时间戳(Timestamp)来解决上述存在的一个或多个问题,同时简化了应用程序认证外部功能的集成和加强了应用程序认证过程内部实现的可扩展性实现。本专利技术实施例一方面提出了一种应用程序之间认证的方法,包括以下步骤:向密钥分发中心KDC发送应用程序的信息和认证服务器的验证请求申请;接收所述密钥分发中心KDC生成的会话密钥Session Key和标签Ticket;根据公钥PUB_KEY1解密所述Session Key,生成鉴定码Authenticator,将所述鉴定码Authenticator和所述标签Ticket发送给所述认证服务器;接收所述认证服务器发送的所述应用程序的认证结果。本专利技术实施例另一方面还提出了一种密钥分发中心KDC,包括接收模块,加密模块和发送模块,所述接收模块,用于接收应用程序的信息和认证服务器的验证请求申请;所述加密模块,用于将所述应用程序的信息进行加密,生成会话密钥Session Key和标签Ticket;所述发送模块,用于发送所述会话密钥Session Key和所述标签Ticket。本专利技术实施例另一方面还提出了一种客户端,包括接收模块,解密模块,加密模块和发送模块,所述接收模块,用于接收所述密钥分发中心KDC生成的会话密钥Session Key和标签Ticket,以及接收认证服务器发送的应用程序的认证结果;所述解密模块,用于根据公钥PUB_KEY1解密所述Session Key;所述加密模块,用于生成鉴定码Authenticator;所述发送模块,用于向密钥分发中心KDC发送应用程序的信息和认证服务器的验证请求申请,以及用于将所述鉴定码Authenticator和所述标签Ticket发送给所述认证服务器。本专利技术提出的上述方案,应用程序进行认证时,传输过程中加密时使用的密钥属于短时间有效的密钥,降低了被恶意监听截获的可能性;此外,通过引入密钥分发中心KDC,客户端和服务器可以采用不同的加密算法进行加密,有效增强了认证过程的安全性。通过引入密钥分发中心KDC,除了能够验证待验证客户端的可信与否,同时也能够验证服务器端是否可信,解决了现有技术中应用程序认证过程存在的安全隐患。此外,本专利技术提出的上述方案,对现有系统的改动很小,不会影响系统的兼容性,而且实现简单、高效。本专利技术附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本专利技术的实践了解到。附图说明本专利技术上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:图1为本专利技术实施例应用程序之间认证的方法流程图;图2为密钥分发中心的处理流程示意图;图3为客户端的处理流程示意图;图4为认证服务器验证的解密流程示意图;图5为认证服务器验证的验证流程示意图;图6为认证系统的结构示意图。具体实施方式下面详细描述本专利技术的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本专利技术,而不能解释为对本专利技术的限制。本
技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本专利技术的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的任一单元和全部组合。本
技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语)具有与本专利技术所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通本文档来自技高网
...

【技术保护点】
一种应用程序之间认证的方法,其特征在于,包括以下步骤:向密钥分发中心KDC发送应用程序的信息和认证服务器的验证请求申请;接收所述密钥分发中心KDC生成的会话密钥Session Key和标签Ticket;根据公钥PUB_KEY1解密所述Session Key,生成鉴定码Authenticator,将所述鉴定码Authenticator和所述标签Ticket发送给所述认证服务器;接收所述认证服务器发送的所述应用程序的认证结果。

【技术特征摘要】
1.一种应用程序之间认证的方法,其特征在于,包括以下步骤:
向密钥分发中心KDC发送应用程序的信息和认证服务器的验证请求
申请;
接收所述密钥分发中心KDC生成的会话密钥Session Key和标签
Ticket;
根据公钥PUB_KEY1解密所述Session Key,生成鉴定码
Authenticator,将所述鉴定码Authenticator和所述标签Ticket发送给所述
认证服务器;
接收所述认证服务器发送的所述应用程序的认证结果。
2.根据权利要求1所述的应用程序之间认证的方法,其特征在于,
向密钥分发中心KDC发送应用程序的信息,包括:
所述应用程序的名称,所述应用程序的版本以及所述应用程序的APK
二进制包。
3.根据权利要求2或1所述的应用程序之间认证的方法,其特征在
于,所述密钥分发中心KDC生成的会话密钥Session Key,包括:
所述密钥分发中心KDC通过私钥PRI_KEY1生成一个会话密钥
Session Key。
4.根据权利要求2或1所述的应用程序之间认证的方法,其特征在
于,所述密钥分发中心KDC生成的标签Ticket,包括:
所述密钥分发中心KDC通过私钥PRI_KEY2生成一个会话密钥
Session Key;
所述密钥分发中心KDC通过HMAC Key对应用程序的APK二进制
包进行HMAC签名;
所述密钥分发中心KDC通过私钥PRI_KEY2对所述应用程序的信息,
所述应用程序的APK二进制包的签名和所述会话密钥Session Key进行加
密,生成标签Ticket。
5.根据权利要求1所述的应用程序之间认证的方法,其特征在于,

\t生成鉴定码Authenticator,包括:
根据所述会话密钥Session Key对所述应用程序的信息和时间戳
Timestamp进行加密,生成所述鉴定码Authenticator。
6.根据权利要求1或5所述的应用程序之间认证的方法,其特征在
于,接收所述认证服务器发送的所述应用程序的认证结果,包括:
所述认证服务器根据公钥PUB_KEY2解密所述标签Ticket,获得其
中的所述应用程序的信息和所述会话密钥Session Key;
所述认证服务器根据所述会话密钥Session Key解密所述鉴定码
Authenticator,获得其中的所述应用程序的信息和时间戳Timestamp;
将所述时间戳Timestamp与当前时间进行比较,两者在预定时间范围
内时,时间戳验证通过;
时间戳验证通过之后,比较从所述标签Ticket和所述鉴定码
Authenticator中获得的应用程序的信息,两者中的应用程序的信息相同时,
比较所述认证服务器本地的HMAC签名与所述标签Ticket中的HMAC签
名是否相同;
当所述HMAC签名相同时,所述认证服务器通过HMAC Key和应用
程序的APK二进制验证从所述标签Ticket中获得的HMAC签名是否正
确;
当所述标签Ticket中获得的HMAC签名正确时,所述认证服务器发
送的所述应用程序的认证通过的信息。
7.根据权利要求5所述的应用程序之间认证的方法,...

【专利技术属性】
技术研发人员:翟永恒陈自力杨飞曹华俊
申请(专利权)人:北京三星通信技术研究有限公司三星电子株式会社
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1