CN108900309B - 一种鉴权方法及鉴权系统 - Google Patents

一种鉴权方法及鉴权系统 Download PDF

Info

Publication number
CN108900309B
CN108900309B CN201810840575.2A CN201810840575A CN108900309B CN 108900309 B CN108900309 B CN 108900309B CN 201810840575 A CN201810840575 A CN 201810840575A CN 108900309 B CN108900309 B CN 108900309B
Authority
CN
China
Prior art keywords
authentication
center
module
private key
identification
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810840575.2A
Other languages
English (en)
Other versions
CN108900309A (zh
Inventor
符爱花
杨邺
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing R Sun Information Technology Co ltd
Original Assignee
Beijing R Sun Information Technology Co ltd
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 Beijing R Sun Information Technology Co ltd filed Critical Beijing R Sun Information Technology Co ltd
Publication of CN108900309A publication Critical patent/CN108900309A/zh
Priority to PCT/CN2019/096040 priority Critical patent/WO2020020008A1/zh
Application granted granted Critical
Publication of CN108900309B publication Critical patent/CN108900309B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/3271Cryptographic 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 challenge-response
    • 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
    • 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/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
    • 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/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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/321Cryptographic 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 a third party or a trusted authority
    • H04L9/3213Cryptographic 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 a third party or a trusted authority using tickets or tokens, e.g. Kerberos
    • 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/3226Cryptographic 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 a predetermined code, e.g. password, passphrase or PIN
    • 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/3247Cryptographic 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)
  • Power Engineering (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Measurement Of The Respiration, Hearing Ability, Form, And Blood Characteristics Of Living Organisms (AREA)
  • Telephonic Communication Services (AREA)
  • Storage Device Security (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种鉴权方法及鉴权系统,所述方法用于实现鉴权中心对鉴权模块请求的鉴权,所述鉴权模块运行在客户端,所述鉴权中心运行在服务端,所述方法包括:所述鉴权中心基于一个或多个鉴权因子生成鉴权标识,所述鉴权因子由鉴权模块发送给鉴权中心或者由鉴权中心生成;所述鉴权中心基于该鉴权标识生成鉴权私钥,并将鉴权标识和鉴权私钥发送给鉴权模块;所述鉴权中心和鉴权模块依据鉴权标识的内容,对鉴权标识进行全部存储、部分存储或全部删除的操作;所述鉴权模块向所述鉴权中心发送鉴权请求,所述鉴权中心对所述鉴权请求进行验证。在易用性不降低的前提下,本发明的鉴权方法和系统达到了更高的安全性,同时效率和成本控制在一个较优的水平。

Description

一种鉴权方法及鉴权系统
技术领域
本发明涉及计算机技术领域,具体涉及一种鉴权方法及鉴权系统。
背景技术
20世纪80年代,美国学者提出了PKI(公开密钥设施)的概念,PKI是一种普遍适用的网络安全基础设施。一些美国学者把提供全面安全服务的基础设施,包括软件、硬件、人和策略的集合叫做PKI。PKI通过延伸到用户本地的接口为各种应用提供安全服务,包括认证、身份识别、数字签名、加密等。一方面,作为基础设施,PKI与使用PKI的应用系统是分离的,因此具有“公用”的特性;另一方面,离开PKI应用系统,PKI本身没有任何用处。正是这种基础设施的特性使PKI系统的设计和开发效率大大提高,因为PKI系统的设计、开发、生产及管理都可以独立地进行,不需要考虑应用的特殊性。
为了解决PKI体系中公钥难以管理的问题,1984年,以色列科学家Shamir提出了基于标识的密码系统的概念。在基于标识的系统中,每个实体具有一个标识。该标识可以是任何有意义的字符串。但和传统公钥系统最大的不同是,在基于标识的系统中,实体的标识本身就是实体的公开密钥。由于标识本身就是实体的公钥,这类系统就不再依赖证书和证书管理系统如PKI,从而极大地简化了管理密码系统的复杂性。在提出IBC概念的同时,Shamir提出了一个基于大数分解的基于标识的签名算法(IBS)。
基于身份的密码学(Identity-Base Cryptography,IBC)是一种新兴的非对称密码学。其特点是用户公钥与用户身份天然相关,不需要再用额外的机制(如数字证书等)来检验这一点。
IBC体系使用一个权威方——私钥生成器(PKG)。PKG主要负责以下两个步骤:
初始化:
(IBC_Master_Key,IBC_Common_Para)=IBC_Setup();
初始化阶段产生一个主密钥(IBC_Master_Key)和一组公共参数(IBC_Common_Para)。主密钥由管理员保存,不可泄露,并将公共参数公开。
私钥生成:
Private_KeyID=IBC_PKG(IBC_Master_Key,ID,IBC_Common_Para);
管理员操作PKG,输入IBC_Master_Key和ID(签名方标识信息)以及IBC_Common_Para,为该用户生成私钥(Private_KeyID)。然后通过可信且保密的手段,将这个私钥送到相应的签名方手中。
签名方获得私钥后,就可以进行数字签名:
IBC_Signature=IBC_Sign(Message,Private_KeyID,IBC_Common_Para);
验签方可以直接使用签名方的ID进行验签:
Result=IBC_Verify(Message,IBC_Signature,ID,IBC_Common_Para);
现有鉴权方法通常有以下三种实现方式:
(1)口令的方式,需要数据库存储口令,不但成本高,而且数据库的泄露风险很大。数据库被攻击导致口令大规模泄露的事件已经司空见惯。即使是采取存口令散列值的形式,依然存在泄露后被字典攻击的风险。而且该方式难以绑定设备或客户端。
(2)挑战应答协议的方式,依然需要数据库存储鉴权密钥,所以成本高和机密信息易泄露的风险依然存在。而且由于鉴权密钥需要存放在客户端,当设备落入攻击者之手时,攻击者即可畅通无阻。
(3)基于证书的数字签名的方式,虽然不需要数据库存储与用户相关的密钥,但需要PKI支持,这本身就是高成本设施,而且经常需要验证证书链,大大降低了效率。鉴权私钥需要存放在客户端,当设备落入攻击者之手时,攻击者即可畅通无阻。
假设攻击者具有以下五种能力:
1、攻击者有能力从一般服务端(如普通服务器)的数据库窃取任何数据,但攻击者无法从高安全服务端(如CA等)窃取任何数据。由于鉴权为高频繁操作,因此鉴权操作本身和鉴权相关数据的存储,都只能由一般服务端完成。
2、攻击者在获得了客户端设备后,有能力获得其中存储的任何数据。
3、攻击者有能力窃听非安全信道(如:不使用SSL的HTTP协议)上的所有通信,但无法窃听安全信道(如:使用了SSL的HTTP协议,蜂窝移动通信等)上的通信。
4、攻击者有能力模仿客户端设备与服务端通信。
5、攻击者有能力获取鉴权方案的流程细节。
基于上述攻击者假设,前述的三种鉴权方式皆不能抵御。
现有鉴权方案大多数都是依赖于数据库来实现的。具体做法概括如下:
1、服务端将用于鉴权的若干个鉴权因子或其相关信息存储到服务端的数据库;
2、在鉴权时,服务端从数据库中调取部分或全部鉴权因子或其相关信息,然后直接对比或间接对比客户端发送来的鉴权因子或其相关信息,全部一致是鉴权通过的必要条件。服务端还可以从数据库中调取部分鉴权因子或其相关信息,依据当前的某些环境信息判断是否有效,判断结果为有效是鉴权通过的必要条件。
例如:
1、服务端将客户端的设备信息、口令的Hash值和失效时间三者作为鉴权因子存入数据库。
2、鉴权时,客户端发送设备信息和口令给客户端。验证步骤如下:
2.1、服务端从数据库中调取对应的设备信息,并与该客户端发来的设备信息作对比。(直接对比)
2.2、服务端从数据库中调取对应的口令的Hash值,计算客户端发来的口令的Hash值,二者作对比。(间接对比)
2.3、服务端从数据库中调取对应的失效时间,判断当前时间(环境信息)是否小于该时效时间,小于则有效,大于或等于则无效。(环境信息判断)
2.4、依据上述2.1至2.3的验证结果判断鉴权是否通过。当且仅当2.1和2.2的对比结果都是一致,并且2.3的判断结果为有效时,鉴权通过。
上述基于数据库的鉴权方法存在的问题是:数据库建立、运营、管理、维护的成本高,并且使用方法繁琐。数据库安全性低,容易遭受各种攻击。
文献[1](CN 101964039 B:一种版权对象的加密保护方法和系统)、文献[2](CN102523563B:一种基于标识密码技术的彩信加密方法)、文献[3](CN102970144B:基于身份的认证方法)、文献[4](CN103326853A、一种密钥更新的方法及装置)和文献[5](CN104065487A:一种基于数字指纹随机密值IBC身份认证方法)都提供了一种鉴权方法,但是都不能解决上述技术问题。
发明内容
本发明的目的在于,通过将IBC体系运用到鉴权中,克服现有技术存在的上述缺陷,从而提供了一种鉴权方法和鉴权系统,能够提高鉴权过程的安全性和可靠性。
为了实现上述目的,本发明提出了一种鉴权方法,用于实现鉴权中心对鉴权模块请求的鉴权,所述鉴权模块运行在客户端,所述鉴权中心运行在服务端,其特征在于,所述方法包括:
所述鉴权中心基于一个或多个鉴权因子生成鉴权标识,所述鉴权因子由鉴权模块发送给鉴权中心或者由鉴权中心生成;
所述鉴权中心基于该鉴权标识生成鉴权私钥,并将鉴权标识和鉴权私钥发送给鉴权模块;
所述鉴权中心和鉴权模块依据鉴权标识的内容,对鉴权标识进行全部存储、部分存储或全部删除的操作;
所述鉴权模块向所述鉴权中心发送鉴权请求,所述鉴权中心对所述鉴权请求进行验证。
作为上述方法的一种改进,鉴权中心和鉴权模块的初始化步骤:所述鉴权中心的IBC初始化单元基于选择的IBC算法,建立IBC算法的PKG,使用该PKG生成一组主密钥和一组公共参数,所述鉴权中心的第二存储单元存储IBC初始化单元生成的主密钥;所述鉴权模块的IBC载入单元载入该组公共参数。
作为上述方法的一种改进,客户端设备硬件信息、口令、失效时间、账户名或客户端标签。
作为上述方法的一种改进,所述方法具体包括:
步骤A1)所述鉴权模块向鉴权中心发起私钥与鉴权标识生成请求,将客户端设备硬件信息发送给鉴权中心;所述鉴权中心的鉴权标识生成单元生成包括客户端设备硬件信息的鉴权标识,鉴权中心的鉴权私钥生成单元根据鉴权标识生成鉴权私钥;
步骤A2)所述鉴权中心将鉴权标识和鉴权私钥发送给鉴权模块,鉴权中心删除鉴权标识和鉴权私钥,所述鉴权模块接收后,所述鉴权模块删除鉴权标识中的客户端设备硬件信息,所述鉴权模块的第一存储单元存储鉴权标识和鉴权私钥;
步骤A3)所述鉴权模块的鉴权请求单元向鉴权中心发送鉴权请求,所述鉴权中心的鉴权验证单元验证后将鉴权结果返回鉴权模块。
作为上述方法的一种改进,所述步骤A3)具体包括:
步骤A3-1)所述鉴权模块的鉴权请求单元向鉴权中心发送鉴权请求;
步骤A3-2)所述鉴权中心的鉴权验证单元向鉴权模块发送一个挑战;所述挑战为随机数或特定信息;
步骤A3-3)鉴权模块获取设备硬件信息,组装出完整的鉴权标识;使用鉴权私钥对挑战使用IBC签名算法进行签名,得到挑战的数字签名,然后将鉴权标识和数字签名发送给鉴权中心;
步骤A3-4)所述鉴权中心的鉴权验证单元以鉴权标识作为ID使用IBC验签算法验证数字签名;得到鉴权结果;
步骤A3-5)所述鉴权中心的鉴权验证单元将鉴权结果发送给鉴权模块。
作为上述方法的一种改进,当鉴权中心设置设备锁定列表,则所述步骤A3-4)还包括:判断鉴权标识中的设备硬件信息是否在设备锁定列表中,如果判断结果是肯定的,则验签未通过,否则,验签通过。
作为上述方法的一种改进,所述步骤A3)具体包括:
步骤A3-1′)鉴权模块获取客户端设备硬件信息,组装出完整的鉴权标识;所述鉴权模块的鉴权请求单元生成一个挑战,使用鉴权私钥对挑战使用IBC签名算法进行签名,得到数字签名,然后将鉴权标识、挑战和数字签名发送给鉴权中心;
步骤A3-2′)所述鉴权中心的鉴权验证单元以鉴权标识作为ID使用IBC验签算法验证数字签名;得到鉴权结果;
步骤A3-3′)所述鉴权中心的第一鉴权验证单元将鉴权结果发送给鉴权模块。
作为上述方法的一种改进,所述方法具体包括:
步骤B1)所述鉴权模块向鉴权中心发起私钥与鉴权标识生成请求,所述鉴权模块将口令发送给鉴权中心;所述鉴权中心的鉴权标识生成单元生成包括口令的鉴权标识,鉴权中心的鉴权私钥生成单元根据鉴权标识生成鉴权私钥;
步骤B2)所述鉴权中心将鉴权标识和鉴权私钥发送给鉴权模块,鉴权中心删除鉴权标识和鉴权私钥,所述鉴权模块接收后,所述鉴权模块删除鉴权标识中的口令,所述鉴权模块的第一存储单元存储鉴权标识和鉴权私钥;
步骤B3)所述鉴权模块的鉴权请求单元向鉴权中心发送鉴权请求,所述鉴权中心的鉴权验证单元验证后将鉴权结果返回鉴权模块。
作为上述方法的一种改进,所述方法具体包括:
步骤C1)所述鉴权模块的账户生成单元生成账户名,所述鉴权模块向鉴权中心发起私钥与鉴权标识生成请求,将账户名发送给鉴权中心;
步骤C2)所述鉴权中心的鉴权标识生成单元生成包括账户名的鉴权标识,鉴权中心的鉴权私钥生成单元根据鉴权标识生成鉴权私钥;
步骤C3)所述鉴权中心将鉴权标识和鉴权私钥发送给鉴权模块,鉴权中心删除鉴权标识和鉴权私钥;所述鉴权模块接收后,所述鉴权模块的第一存储单元存储鉴权标识和鉴权私钥;
步骤C4)所述鉴权模块的鉴权请求单元向鉴权中心发送鉴权请求,所述鉴权中心的鉴权验证单元验证后将鉴权结果返回鉴权模块。
作为上述方法的一种改进,所述方法具体包括:
步骤D1)所述鉴权模块向鉴权中心发起私钥与鉴权标识生成请求,所述鉴权模块将客户端标签发送给鉴权中心;所述鉴权中心的鉴权标识生成单元生成包括客户端标签的鉴权标识,所述鉴权中心的鉴权私钥生成单元根据鉴权标识生成鉴权私钥;
步骤D2)所述鉴权中心将鉴权标识和鉴权私钥发送给鉴权模块,鉴权中心删除鉴权标识和鉴权私钥,所述鉴权模块接收后,所述鉴权模块的第一存储单元存储鉴权标识和鉴权私钥;
步骤D3)所述鉴权模块的鉴权请求单元向鉴权中心发送鉴权请求,所述鉴权中心的鉴权验证单元验证后将鉴权结果返回鉴权模块。
作为上述方法的一种改进,所述步骤D3)具体包括:
步骤D3-1)所述鉴权模块的鉴权请求单元向鉴权中心发送鉴权请求;
步骤D3-2)所述鉴权中心的鉴权验证单元向鉴权模块发送一个挑战;所述挑战为随机数或特定信息;
步骤D3-3)鉴权模块从第一存储单元获取鉴权标识;使用鉴权私钥对挑战使用IBC签名算法进行签名,得到挑战的数字签名,然后将鉴权标识和数字签名发送给鉴权中心;
步骤D3-4)所述鉴权中心的鉴权验证单元以鉴权标识作为ID使用IBC验签算法验证数字签名;得到鉴权结果;
步骤D3-5)所述鉴权中心的鉴权验证单元将鉴权结果发送给鉴权模块。
作为上述方法的一种改进,当鉴权中心设置客户端锁定列表,所述步骤D3-4)还包括:判断鉴权标识中的客户端标签是否在客户端锁定列表中,如果判断结果是肯定的,则验签未通过,否则,验签通过。
作为上述方法的一种改进,所述方法具体包括:
步骤E1)所述鉴权中心的鉴权标识生成单元生成包括失效时间的鉴权标识,所述鉴权中心的鉴权私钥生成单元根据鉴权标识生成鉴权私钥;
步骤E2)所述鉴权中心将鉴权标识和鉴权私钥发送给鉴权模块,鉴权中心删除鉴权标识和鉴权私钥,所述鉴权模块接收后,所述鉴权模块的第一存储单元存储鉴权标识和鉴权私钥;
步骤E3)所述鉴权模块的鉴权请求单元向鉴权中心发送鉴权请求,所述鉴权中心的鉴权验证单元验证后将鉴权结果返回鉴权模块。
作为上述方法的一种改进,所述步骤E3)具体包括:
步骤E3-1)所述鉴权模块的鉴权请求单元向鉴权中心发送鉴权请求;
步骤E3-2)所述鉴权中心的鉴权验证单元向鉴权模块发送一个挑战;所述挑战为随机数或特定信息;
步骤E3-3)鉴权模块从第一存储单元获取鉴权标识;使用鉴权私钥对挑战使用IBC签名算法进行签名,得到挑战的数字签名,然后将鉴权标识和数字签名发送给鉴权中心;
步骤E3-4)所述鉴权中心的鉴权验证单元以鉴权标识作为ID使用IBC验签算法验证数字签名;得到鉴权结果;
步骤E3-5)所述鉴权中心的鉴权验证单元将鉴权结果发送给鉴权模块。
作为上述方法的一种改进,所述步骤E3-4)还包括:判断当前时间是否小于鉴权标识中的失效时间,如果判断结果是肯定的,则验签通过,否则,验签未通过。
作为上述方法的一种改进,当鉴权因子包括客户端设备硬件信息和口令时,所述方法具体包括:
步骤F1)所述鉴权模块向鉴权中心发起私钥与鉴权标识生成请求,将客户端设备硬件信息和口令发送给鉴权中心;所述鉴权中心的鉴权标识生成单元生成包括客户端设备硬件信息和口令的鉴权标识,鉴权中心的鉴权私钥生成单元根据鉴权标识生成鉴权私钥;
步骤F2)所述鉴权中心将鉴权标识和鉴权私钥发送给鉴权模块,所述鉴权中心删除鉴权标识;所述鉴权模块接收后,所述鉴权模块删除鉴权标识中的口令,所述鉴权模块的第一存储单元存储鉴权标识和鉴权私钥;
步骤F3)所述鉴权模块的鉴权请求单元向鉴权中心发送鉴权请求,所述鉴权中心的鉴权验证单元验证后将鉴权结果返回鉴权模块。
作为上述方法的一种改进,当鉴权因子包括客户端设备硬件信息、口令和账户名时,所述方法具体包括:
步骤G1)所述鉴权模块的账户生成单元生成账户名,将账户名发送给鉴权中心;将账户名存储在鉴权中心的存储单元;
步骤G2)所述鉴权模块向鉴权中心发起私钥与鉴权标识生成请求,将客户端设备硬件信息和口令发送给鉴权中心;所述鉴权中心的鉴权标识生成单元生成至少包括账户名、客户端设备硬件信息和口令的鉴权标识,鉴权中心的鉴权私钥生成单元根据鉴权标识生成鉴权私钥;
步骤G3)所述鉴权中心将鉴权标识和鉴权私钥发送给鉴权模块,所述鉴权中心删除鉴权标识;所述鉴权模块接收后,所述鉴权模块删除鉴权标识中的口令,所述鉴权模块的第一存储单元存储鉴权标识和鉴权私钥;
步骤G4)所述鉴权模块的鉴权请求单元向鉴权中心发送鉴权请求,所述鉴权中心的鉴权验证单元验证后将鉴权结果返回鉴权模块。
作为上述方法的一种改进,所述步骤G2)具体包括:
步骤G2-1)所述鉴权模块向鉴权中心发起私钥与鉴权标识生成请求,所述鉴权模块将客户端设备硬件信息和口令发送给鉴权中心;
步骤G2-2)鉴权中心为鉴权模块生成鉴权标识;所述鉴权标识至少由账户名、客户端设备硬件信息和口令组成;
步骤G2-3)鉴权中心以鉴权标识作为ID,使用初始化步骤生成的PKG通过主密钥生成鉴权私钥。
作为上述方法的一种改进,所当鉴权因子包括客户端设备硬件信息、口令、客户端标签和失效时间时,所述方法具体包括:
步骤H1)所述鉴权模块向鉴权中心发起私钥与鉴权标识生成请求,将客户端设备硬件信息、口令和客户端标签发送给鉴权中心;所述鉴权中心的鉴权标识生成单元生成包括账户名、客户端设备硬件信息、口令、客户端标签和失效时间的鉴权标识,鉴权中心的鉴权私钥生成单元根据鉴权标识生成鉴权私钥;
步骤H2)所述鉴权中心将鉴权标识和鉴权私钥发送给鉴权模块,所述鉴权中心删除鉴权标识;所述鉴权模块接收后,所述鉴权模块删除鉴权标识中的口令和客户端设备硬件信息,所述鉴权模块的第一存储单元存储鉴权标识和鉴权私钥;
步骤H3)所述鉴权模块的鉴权请求单元向鉴权中心发送鉴权请求,所述鉴权中心的鉴权验证单元验证后将鉴权结果返回鉴权模块。
作为上述方法的一种改进,当鉴权因子包括客户端设备硬件信息、口令、账户名、客户端标签和失效时间时,所述方法具体包括:
步骤R1)所述鉴权模块的账户生成单元生成账户名,将账户名发送给鉴权中心;将账户名存储在鉴权中心的存储单元;
步骤R2)所述鉴权模块向鉴权中心发起私钥与鉴权标识生成请求,将客户端设备硬件信息、口令和客户端标签发送给鉴权中心;所述鉴权中心的鉴权标识生成单元生成包括账户名、客户端设备硬件信息、口令、客户端标签和失效时间的鉴权标识,鉴权中心的鉴权私钥生成单元根据鉴权标识生成鉴权私钥;
步骤R3)所述鉴权中心将鉴权标识和鉴权私钥发送给鉴权模块,所述鉴权中心删除鉴权标识;所述鉴权模块接收后,所述鉴权模块删除鉴权标识中的口令和客户端设备硬件信息,所述鉴权模块的第一存储单元存储鉴权标识和鉴权私钥;
步骤R4)所述鉴权模块的鉴权请求单元向鉴权中心发送鉴权请求,所述鉴权中心的鉴权验证单元验证后将鉴权结果返回鉴权模块。
作为上述方法的一种改进,当所述鉴权中心保存设备信息列表,所述方法还包括挂失的步骤:
步骤S1)用户通过新的设备使用第二鉴权方式或其它身份认证手段认证用户身份;
步骤S2)所述鉴权中心验证用户身份,认证通过后,所述鉴权中心向用户展示设备信息列表;
步骤S3)用户从设备信息列表中选择需要挂失的设备,并告知鉴权中心;
步骤S4)所述鉴权中心将对应的设备硬件信息存放入设备锁定列表中,存放期限为永久或者失效日。
作为上述方法的一种改进,当所述鉴权中心保存设备硬件信息,所述方法还包括挂失的步骤:
步骤S1′)用户通过新的设备使用第二鉴权方式或其他身份认证手段认证用户身份;
步骤S2′)所述鉴权中心验证用户身份,认证通过后,鉴权中心将数据库中该用户账户对应的所有的设备硬件信息和客户端标签删除;
步骤S3′)该账户的所有设备绑定都已失效,所有设备重新进行设备绑定流程。
作为上述方法的一种改进,执行挂失的步骤后,当时间到了失效时间的时候,设备挂失自行解除;当鉴权中心中设置客户端标签列表,则在设备挂失自行解除之前,所述方法还进一步包括解除挂失的步骤:
步骤T1))用户通过新的设备使用第二鉴权方式或其他身份认证手段认证用户身份;
步骤T2)所述鉴权中心验证用户身份,认证通过后,鉴权中心向用户展示设备锁定列表;
步骤T3)用户从设备锁定列表中选择需要解除挂失的设备,并告知鉴权中心;
步骤T4)所述鉴权中心将对应的设备硬件信息与客户端标签放入客户端锁定列表中,存放期限为永久或者失效日期,同时将对应的设备硬件信息从设备锁定列表中删除;
步骤T5)待解除挂失的设备彻底删除原有的客户端标签,然后生成新的客户端标签,然后重新进行设备绑定。
此外,本发明还提供了一种鉴权系统,所述系统包括:鉴权模块和鉴权中心;所述鉴权模块运行在客户端,所述鉴权中心运行在服务端;其特征在于,
所述鉴权中心,用于基于一个或多个鉴权因子生成鉴权标识,所述鉴权因子由鉴权模块发送给鉴权中心或者由鉴权中心生成;还用于基于该鉴权标识生成鉴权私钥,并将鉴权标识和鉴权私钥发送给鉴权模块;还用于依据鉴权标识的内容,对鉴权标识进行全部存储、部分存储或全部删除的操作;还用于对鉴权模块发送的鉴权请求进行验证;
所述鉴权模块,用于依据鉴权标识的内容,对鉴权标识进行全部存储、部分存储或全部删除的操作;还用于向所述鉴权中心发送鉴权请求。
作为上述系统的一种改进,所述鉴权模块包括:IBC载入单元、账户生成单元、私钥请求单元、第一存储单元和鉴权请求单元;
所述IBC载入单元,用于载入鉴权中心公开的公共参数;
所述账户生成单元,用于生成鉴权模块的账户名;
所述第一存储单元,用于存储鉴权标识和/或鉴权私钥;
所述私钥请求单元,用于向鉴权中心发送鉴权因子;
所述鉴权请求单元,用于向鉴权中心发送鉴权请求,还用于接收鉴权中心发送的鉴权结果。
作为上述系统的一种改进,所述鉴权中心包括:IBC初始化单元、鉴权标识生成单元、鉴权私钥生成单元、第二存储单元和鉴权验证单元;
所述IBC初始化单元,用于选择一种IBC算法,并建立一个该算法的私钥生成器PKG,使用PKG进行初始化,生成一组主密钥和公共参数,将公共参数公开;
所述鉴权标识生成单元,用于根据鉴权模块发送的鉴权因子生成鉴权标识;
所述鉴权私钥生成单元,用于以鉴权标识作为ID,通过IBC初始化单元生成的PKG和主密钥生成鉴权私钥;然后将鉴权标识和鉴权私钥发送给鉴权模块;
所述第二存储单元:用于存储IBC初始化单元生成的主密钥;
所述鉴权验证单元:用于接收鉴权模块的鉴权请求,以鉴权标识作为ID使用IBC验签算法验证数字签名,以及将鉴权结果发送给鉴权模块。
本发明的优势在于:
1、使用开放式的鉴权标识,提高了鉴权方法的灵活性和可扩展性。
2、在本发明的鉴权方法中,在客户端和服务端都不保存口令,口令只有用户本人知道,从而避免了由于口令被盗导致的安全问题;
3、在易用性不降低的前提下,本发明的鉴权方法和系统达到了更高的安全性,同时效率和成本也控制在一个较优的水平;
4、本发明的鉴权方法不但解决了基于数据库鉴权的弊端,还解决了使用PKI体系进行鉴权的弊端。
附图说明
图1为本发明的实施例1提供的鉴权方法的流程图;
图2为本发明的应用实例1提供的鉴权方法的流程图;
图3为本发明的应用实例2提供的鉴权方法的流程图;
图4为本发明的应用实例3提供的鉴权系统的示意图;
图5为本发明的应用实例3提供的鉴权系统中的鉴权模块的示意图;
图6为本发明的应用实例3提供的鉴权系统中的鉴权中心的示意图;
图7为本发明的应用实例4提供的鉴权系统的示意图;
图8为本发明的应用实例4提供的鉴权系统中的物联网设备的示意图;
图9为本发明的应用实例4提供的鉴权系统中的物联网平台的示意图。
具体实施方式
为使本领域的技术人员更好地理解本发明的技术方案,下面结合附图和具体实施例对本发明所提供的一种鉴权方法和鉴权系统进行详细的描述。
下述“鉴权模块”指的是:需要被鉴权的一方,如邮箱登录操作时的客户端。
下述“鉴权中心”指的是:对鉴权模块进行鉴权的一方,如邮箱登录操作时的服务器。
下述“第二鉴权方式”指的是:鉴权中心可用于对鉴权模块进行鉴权的其他方式,如短信验证码等。
实施例1:通用鉴权流程(如图1所示):
1、系统建立:
鉴权中心选择一种IBC算法,并建立一个该算法的私钥生成器PKG。使用PKG进行初始化,生成一组IBC_Master_Key和IBC_Common_Para。将IBC_Common_Para公开,鉴权模块载入IBC_Common_Para。IBC_Master_Key应存放在高安全服务端中,不可泄露,PKG也运行在高安全服务端上。不涉及IBC_Master_Key和PKG的操作可以使用一般服务端完成。
PKG的初始化阶段:
(IBC_Master_Key,IBC_Common_Para)=IBC_Setup();
服务端和客户端与鉴权相关的所有连接应该始终基于安全的信道(如使用SSl协议加密的信道),同时客户端有能力鉴权服务端,如使用SSL协议等。
2、私钥与鉴权标识生成:
鉴权模块发起私钥生成请求。
鉴权中心生成鉴权标识Token,并以Token作为ID,使用PKG通过主密钥IBC_Master_Key和IBC_Common_Para生成鉴权私钥Token_Private_Key,然后通过可信且保密的手段(如使用SSL协议),将Token_Private_Key和Token发送到相应的鉴权模块中。
Token_Private_Key=IBC_PKG(IBC_Master_Key,Token,IBC_Common_Para);
3、对私钥与鉴权标识的处理:
鉴权中心彻底删除私钥,鉴权模块完整存储私钥。
鉴权中心和鉴权模块依据鉴权标识的内容,对鉴权标识进行全部存储、部分存储或全部删除的操作。
4、鉴权:
鉴权模块向鉴权中心发送鉴权请求。
鉴权中心向鉴权模块发送一个挑战Challenge,或鉴权模块自己生成一个挑战。所述挑战为随机数或其它特定信息。
鉴权模块使用完整的鉴权标识(若存储的鉴权标识不完整,则用相应的方法将其恢复完整),使用鉴权私钥Token_Private_Key对挑战Challenge使用IBC签名算法进行签名,得到对Challenge的数字签名Challenge_Sign,然后将Challenge(如果Challenge由鉴权模块自己生成)、Token和Challenge_Sign发送给鉴权中心;
Challenge_Sign=IBC_Sign(Challenge,Token_Private_Key,IBC_Common_Para);
鉴权中心以鉴权标识Token作为ID使用IBC验签算法验证Challenge_Sign;得到鉴权结果;
验签方可以直接使用签名方的鉴权标识Token作为ID进行验签:
Result=IBC_Verify(Challenge,Challenge_Sign,ID,IBC_Common_Para);
以验签通过作为鉴权通过的必要条件之一,其他必要条件取决于鉴权标识的内容。
鉴权中心将鉴权结果发送给鉴权模块。
实施例2:鉴权流程(设备信息):
1、系统建立:
鉴权中心选择一种IBC算法,并建立一个该算法的私钥生成器PKG。使用PKG进行初始化,生成一组IBC_Master_Key和IBC_Common_Para。将IBC_Common_Para公开,鉴权模块载入IBC_Common_Para。IBC_Master_Key应存放在高安全服务端中,不可泄露,PKG也运行在高安全服务端上。不涉及IBC_Master_Key和PKG的操作可以使用一般服务端完成。
PKG的初始化阶段:
(IBC_Master_Key,IBC_Common_Para)=IBC_Setup();
服务端和客户端与鉴权相关的所有连接应该始终基于安全的信道(如使用SSl协议加密的信道),同时客户端有能力鉴权服务端,如使用SSL协议等。
2、私钥与鉴权标识生成:
鉴权模块发起私钥生成请求,私钥生成请求中包含鉴权模块的当前设备信息。
鉴权中心生成鉴权标识Token,Token中包含1个鉴权因子:设备信息(来自私钥生成请求)。鉴权中心以Token作为ID,使用PKG通过主密钥IBC_Master_Key和IBC_Common_Para生成鉴权私钥Token_Private_Key,然后通过可信且保密的手段(如使用SSL协议),将Token_Private_Key和Token发送到相应的鉴权模块中。
Token_Private_Key=IBC_PKG(IBC_Master_Key,Token,IBC_Common_Para);
3、对私钥与鉴权标识的处理:
鉴权中心彻底删除私钥,鉴权模块完整存储私钥。
鉴权中心彻底删除整个Token。
鉴权模块彻底删除Token中的设备信息。
4、鉴权:
鉴权模块向鉴权中心发送鉴权请求。
鉴权中心向鉴权模块发送一个挑战Challenge,或鉴权模块自己生成一个挑战。所述挑战为随机数或其它特定信息。
鉴权模块实时获取当前设备信息,从而组装出完整的鉴权标识。鉴权模块使用完整的鉴权标识,使用鉴权私钥Token_Private_Key对挑战Challenge使用IBC签名算法进行签名,得到对Challenge的数字签名Challenge_Sign,然后将Challenge(如果Challenge由鉴权模块自己生成)、Token和Challenge_Sign发送给鉴权中心;
Challenge_Sign=IBC_Sign(Challenge,Token_Private_Key,IBC_Common_Para);
鉴权中心以鉴权标识Token作为ID使用IBC验签算法验证Challenge_Sign;得到鉴权结果;
验签方可以直接使用签名方的鉴权标识Token作为ID进行验签:
Result=IBC_Verify(Challenge,Challenge_Sign,ID,IBC_Common_Para);
以验签通过作为鉴权通过的必要条件之一。如果鉴权中心存在设备锁定列表,则鉴权通过的必要条件还有:Token中的设备信息不在设备锁定列表中。
鉴权中心将鉴权结果发送给鉴权模块。
实施例3:鉴权流程(口令):
1、系统建立:
鉴权中心选择一种IBC算法,并建立一个该算法的私钥生成器PKG。使用PKG进行初始化,生成一组IBC_Master_Key和IBC_Common_Para。将IBC_Common_Para公开,鉴权模块载入IBC_Common_Para。IBC_Master_Key应存放在高安全服务端中,不可泄露,PKG也运行在高安全服务端上。不涉及IBC_Master_Key和PKG的操作可以使用一般服务端完成。
PKG的初始化阶段:
(IBC_Master_Key,IBC_Common_Para)=IBC_Setup();
服务端和客户端与鉴权相关的所有连接应该始终基于安全的信道(如使用SSl协议加密的信道),同时客户端有能力鉴权服务端,如使用SSL协议等。
2、私钥与鉴权标识生成:
鉴权模块发起私钥生成请求,私钥生成请求中包含口令。
鉴权中心生成鉴权标识Token,Token中包含1个鉴权因子:口令(来自私钥生成请求)。鉴权中心以Token作为ID,使用PKG通过主密钥IBC_Master_Key和IBC_Common_Para生成鉴权私钥Token_Private_Key,然后通过可信且保密的手段(如使用SSL协议),将Token_Private_Key和Token发送到相应的鉴权模块中。
Token_Private_Key=IBC_PKG(IBC_Master_Key,Token,IBC_Common_Para);
3、对私钥与鉴权标识的处理:
鉴权中心彻底删除私钥,鉴权模块完整存储私钥。
鉴权中心彻底删除Token。
鉴权模块彻底删除Token中的口令(基于账户的应用场景),或存储整个Token(基于设备的应用场景)。
4、鉴权:
鉴权模块向鉴权中心发送鉴权请求。
鉴权中心向鉴权模块发送一个挑战Challenge,或鉴权模块自己生成一个挑战。所述挑战为随机数或其它特定信息。
鉴权模块实时获取用户输入的口令,从而组装出完整的鉴权标识(基于账户的应用场景),或者直接获取存储的鉴权标识(基于设备的应用场景)。鉴权模块使用完整的鉴权标识,使用鉴权私钥Token_Private_Key对挑战Challenge使用IBC签名算法进行签名,得到对Challenge的数字签名Challenge_Sign,然后将Challenge(如果Challenge由鉴权模块自己生成)、Token和Challenge_Sign发送给鉴权中心;
Challenge_Sign=IBC_Sign(Challenge,Token_Private_Key,IBC_Common_Para);
鉴权中心以鉴权标识Token作为ID使用IBC验签算法验证Challenge_Sign;得到鉴权结果;
验签方可以直接使用签名方的鉴权标识Token作为ID进行验签:
Result=IBC_Verify(Challenge,Challenge_Sign,ID,IBC_Common_Para);
以验签通过作为鉴权通过的必要条件之一。无其他必要条件。
鉴权中心将鉴权结果发送给鉴权模块。
实施例4:鉴权流程(失效时间):
1、系统建立:
鉴权中心选择一种IBC算法,并建立一个该算法的私钥生成器PKG。使用PKG进行初始化,生成一组IBC_Master_Key和IBC_Common_Para。将IBC_Common_Para公开,鉴权模块载入IBC_Common_Para。IBC_Master_Key应存放在高安全服务端中,不可泄露,PKG也运行在高安全服务端上。不涉及IBC_Master_Key和PKG的操作可以使用一般服务端完成。
PKG的初始化阶段:
(IBC_Master_Key,IBC_Common_Para)=IBC_Setup();
服务端和客户端与鉴权相关的所有连接应该始终基于安全的信道(如使用SSl协议加密的信道),同时客户端有能力鉴权服务端,如使用SSL协议等。
2、私钥与鉴权标识生成:
鉴权模块发起私钥生成请求。
鉴权中心生成鉴权标识Token,Token中包含1个鉴权因子:失效时间(由鉴权中心设定)。鉴权中心以Token作为ID,使用PKG通过主密钥IBC_Master_Key和IBC_Common_Para生成鉴权私钥Token_Private_Key,然后通过可信且保密的手段(如使用SSL协议),将Token_Private_Key和Token发送到相应的鉴权模块中。
Token_Private_Key=IBC_PKG(IBC_Master_Key,Token,IBC_Common_Para);
3、对私钥与鉴权标识的处理:
鉴权中心彻底删除私钥,鉴权模块完整存储私钥。
鉴权中心彻底删除Token。
鉴权模块存储整个Token。
4、鉴权:
鉴权模块向鉴权中心发送鉴权请求。
鉴权中心向鉴权模块发送一个挑战Challenge,或鉴权模块自己生成一个挑战。所述挑战为随机数或其它特定信息。
鉴权模块直接获取存储的鉴权标识。鉴权模块使用完整的鉴权标识,使用鉴权私钥Token_Private_Key对挑战Challenge使用IBC签名算法进行签名,得到对Challenge的数字签名Challenge_Sign,然后将Challenge(如果Challenge由鉴权模块自己生成)、Token和Challenge_Sign发送给鉴权中心;
Challenge_Sign=IBC_Sign(Challenge,Token_Private_Key,IBC_Common_Para);
鉴权中心以鉴权标识Token作为ID使用IBC验签算法验证Challenge_Sign;得到鉴权结果;
验签方可以直接使用签名方的鉴权标识Token作为ID进行验签:
Result=IBC_Verify(Challenge,Challenge_Sign,ID,IBC_Common_Para);
以验签通过作为鉴权通过的必要条件之一。另外的必要条件有:当前时间不大于鉴权标识中的失效时间。
鉴权中心将鉴权结果发送给鉴权模块。
实施例5:鉴权流程(账户名):
1、系统建立:
鉴权中心选择一种IBC算法,并建立一个该算法的私钥生成器PKG。使用PKG进行初始化,生成一组IBC_Master_Key和IBC_Common_Para。将IBC_Common_Para公开,鉴权模块载入IBC_Common_Para。IBC_Master_Key应存放在高安全服务端中,不可泄露,PKG也运行在高安全服务端上。不涉及IBC_Master_Key和PKG的操作可以使用一般服务端完成。
PKG的初始化阶段:
(IBC_Master_Key,IBC_Common_Para)=IBC_Setup();
服务端和客户端与鉴权相关的所有连接应该始终基于安全的信道(如使用SSl协议加密的信道),同时客户端有能力鉴权服务端,如使用SSL协议等。
2、私钥与鉴权标识生成:
鉴权模块发起私钥生成请求,私钥生成请求中包含账户名。
鉴权中心生成鉴权标识Token,Token中包含1个鉴权因子:账户名(来自私钥生成请求)。鉴权中心以Token作为ID,使用PKG通过主密钥IBC_Master_Key和IBC_Common_Para生成鉴权私钥Token_Private_Key,然后通过可信且保密的手段(如使用SSL协议),将Token_Private_Key和Token发送到相应的鉴权模块中。
Token_Private_Key=IBC_PKG(IBC_Master_Key,Token,IBC_Common_Para);
3、对私钥与鉴权标识的处理:
鉴权中心彻底删除私钥,鉴权模块完整存储私钥。
鉴权中心彻底删除Token。
鉴权模块存储整个Token。
4、鉴权:
鉴权模块向鉴权中心发送鉴权请求。
鉴权中心向鉴权模块发送一个挑战Challenge,或鉴权模块自己生成一个挑战。所述挑战为随机数或其它特定信息。
鉴权模块直接获取存储的鉴权标识。鉴权模块使用完整的鉴权标识,使用鉴权私钥Token_Private_Key对挑战Challenge使用IBC签名算法进行签名,得到对Challenge的数字签名Challenge_Sign,然后将Challenge(如果Challenge由鉴权模块自己生成)、Token和Challenge_Sign发送给鉴权中心;
Challenge_Sign=IBC_Sign(Challenge,Token_Private_Key,IBC_Common_Para);
鉴权中心以鉴权标识Token作为ID使用IBC验签算法验证Challenge_Sign;得到鉴权结果;
验签方可以直接使用签名方的鉴权标识Token作为ID进行验签:
Result=IBC_Verify(Challenge,Challenge_Sign,ID,IBC_Common_Para);
以验签通过作为鉴权通过的必要条件之一。无其他必要条件。
鉴权中心将鉴权结果发送给鉴权模块。
实施例6:鉴权流程(客户端标签):
1、系统建立:
鉴权中心选择一种IBC算法,并建立一个该算法的私钥生成器PKG。使用PKG进行初始化,生成一组IBC_Master_Key和IBC_Common_Para。将IBC_Common_Para公开,鉴权模块载入IBC_Common_Para。IBC_Master_Key应存放在高安全服务端中,不可泄露,PKG也运行在高安全服务端上。不涉及IBC_Master_Key和PKG的操作可以使用一般服务端完成。
PKG的初始化阶段:
(IBC_Master_Key,IBC_Common_Para)=IBC_Setup();
服务端和客户端与鉴权相关的所有连接应该始终基于安全的信道(如使用SSl协议加密的信道),同时客户端有能力鉴权服务端,如使用SSL协议等。
2、私钥与鉴权标识生成:
鉴权模块发起私钥生成请求,私钥生成请求中包含客户端标签。
鉴权中心生成鉴权标识Token,Token中包含1个鉴权因子:客户端标签(来自私钥生成请求)。鉴权中心以Token作为ID,使用PKG通过主密钥IBC_Master_Key和IBC_Common_Para生成鉴权私钥Token_Private_Key,然后通过可信且保密的手段(如使用SSL协议),将Token_Private_Key和Token发送到相应的鉴权模块中。
Token_Private_Key=IBC_PKG(IBC_Master_Key,Token,IBC_Common_Para);
3、对私钥与鉴权标识的处理:
鉴权中心彻底删除私钥,鉴权模块完整存储私钥。
鉴权中心彻底删除Token。
鉴权模块存储整个Token。
4、鉴权:
鉴权模块向鉴权中心发送鉴权请求。
鉴权中心向鉴权模块发送一个挑战Challenge,或鉴权模块自己生成一个挑战。所述挑战为随机数或其它特定信息。
鉴权模块直接获取存储的鉴权标识。鉴权模块使用完整的鉴权标识,使用鉴权私钥Token_Private_Key对挑战Challenge使用IBC签名算法进行签名,得到对Challenge的数字签名Challenge_Sign,然后将Challenge(如果Challenge由鉴权模块自己生成)、Token和Challenge_Sign发送给鉴权中心;
Challenge_Sign=IBC_Sign(Challenge,Token_Private_Key,IBC_Common_Para);
鉴权中心以鉴权标识Token作为ID使用IBC验签算法验证Challenge_Sign;得到鉴权结果;
验签方可以直接使用签名方的鉴权标识Token作为ID进行验签:
Result=IBC_Verify(Challenge,Challenge_Sign,ID,IBC_Common_Para);
以验签通过作为鉴权通过的必要条件之一。如果鉴权中心存在客户端锁定列表,则鉴权通过的必要条件还有:Token中的客户端标签不在客户端锁定列表中。
鉴权中心将鉴权结果发送给鉴权模块。
实施例7:鉴权流程(设备信息+口令):
1、系统建立:
鉴权中心选择一种IBC算法,并建立一个该算法的私钥生成器PKG。使用PKG进行初始化,生成一组IBC_Master_Key和IBC_Common_Para。将IBC_Common_Para公开,鉴权模块载入IBC_Common_Para。IBC_Master_Key应存放在高安全服务端中,不可泄露,PKG也运行在高安全服务端上。不涉及IBC_Master_Key和PKG的操作可以使用一般服务端完成。
PKG的初始化阶段:
(IBC_Master_Key,IBC_Common_Para)=IBC_Setup();
服务端和客户端与鉴权相关的所有连接应该始终基于安全的信道(如使用SSl协议加密的信道),同时客户端有能力鉴权服务端,如使用SSL协议等。
2、私钥与鉴权标识生成:
鉴权模块发起私钥生成请求,私钥生成请求中包含鉴权模块的当前设备信息和口令。
鉴权中心生成鉴权标识Token,Token中包含2个鉴权因子:设备信息(来自私钥生成请求)和口令(来自私钥生成请求)。鉴权中心以Token作为ID,使用PKG通过主密钥IBC_Master_Key和IBC_Common_Para生成鉴权私钥Token_Private_Key,然后通过可信且保密的手段(如使用SSL协议),将Token_Private_Key和Token发送到相应的鉴权模块中。
Token_Private_Key=IBC_PKG(IBC_Master_Key,Token,IBC_Common_Para);
3、对私钥与鉴权标识的处理:
鉴权中心彻底删除私钥,鉴权模块完整存储私钥。
鉴权中心彻底删除整个Token。
鉴权模块彻底删除Token中的设备信息。
鉴权模块彻底删除Token中的口令(基于账户的应用场景),或存储Token的剩余部分(基于设备的应用场景)。
4、鉴权:
鉴权模块向鉴权中心发送鉴权请求。
鉴权中心向鉴权模块发送一个挑战Challenge,或鉴权模块自己生成一个挑战。所述挑战为随机数或其它特定信息。
鉴权模块实时获取当前设备信息,鉴权模块实时获取用户输入的口令(基于账户的应用场景)或者直接获取存储的Token的剩余部分(基于设备的应用场景),从而组装出完整的鉴权标识。鉴权模块使用完整的鉴权标识,使用鉴权私钥Token_Private_Key对挑战Challenge使用IBC签名算法进行签名,得到对Challenge的数字签名Challenge_Sign,然后将Challenge(如果Challenge由鉴权模块自己生成)、Token和Challenge_Sign发送给鉴权中心;
Challenge_Sign=IBC_Sign(Challenge,Token_Private_Key,IBC_Common_Para);
鉴权中心以鉴权标识Token作为ID使用IBC验签算法验证Challenge_Sign;得到鉴权结果;
验签方可以直接使用签名方的鉴权标识Token作为ID进行验签:
Result=IBC_Verify(Challenge,Challenge_Sign,ID,IBC_Common_Para);
以验签通过作为鉴权通过的必要条件之一。如果鉴权中心存在设备锁定列表,则鉴权通过的必要条件还有:Token中的设备信息不在设备锁定列表中。
鉴权中心将鉴权结果发送给鉴权模块。
实施例8:鉴权流程(设备信息+失效时间):
1、系统建立:
鉴权中心选择一种IBC算法,并建立一个该算法的私钥生成器PKG。使用PKG进行初始化,生成一组IBC_Master_Key和IBC_Common_Para。将IBC_Common_Para公开,鉴权模块载入IBC_Common_Para。IBC_Master_Key应存放在高安全服务端中,不可泄露,PKG也运行在高安全服务端上。不涉及IBC_Master_Key和PKG的操作可以使用一般服务端完成。
PKG的初始化阶段:
(IBC_Master_Key,IBC_Common_Para)=IBC_Setup();
服务端和客户端与鉴权相关的所有连接应该始终基于安全的信道(如使用SSl协议加密的信道),同时客户端有能力鉴权服务端,如使用SSL协议等。
2、私钥与鉴权标识生成:
鉴权模块发起私钥生成请求,私钥生成请求中包含鉴权模块的当前设备信息。
鉴权中心生成鉴权标识Token,Token中包含2个鉴权因子:设备信息(来自私钥生成请求)、失效时间(由鉴权中心设定)。鉴权中心以Token作为ID,使用PKG通过主密钥IBC_Master_Key和IBC_Common_Para生成鉴权私钥Token_Private_Key,然后通过可信且保密的手段(如使用SSL协议),将Token_Private_Key和Token发送到相应的鉴权模块中。
Token_Private_Key=IBC_PKG(IBC_Master_Key,Token,IBC_Common_Para);
3、对私钥与鉴权标识的处理:
鉴权中心彻底删除私钥,鉴权模块完整存储私钥。
鉴权中心彻底删除整个Token。
鉴权模块彻底删除Token中的设备信息,并存储Token的剩余部分。
4、鉴权:
鉴权模块向鉴权中心发送鉴权请求。
鉴权中心向鉴权模块发送一个挑战Challenge,或鉴权模块自己生成一个挑战。所述挑战为随机数或其它特定信息。
鉴权模块实时获取当前设备信息,从而组装出完整的鉴权标识。鉴权模块使用完整的鉴权标识,使用鉴权私钥Token_Private_Key对挑战Challenge使用IBC签名算法进行签名,得到对Challenge的数字签名Challenge_Sign,然后将Challenge(如果Challenge由鉴权模块自己生成)、Token和Challenge_Sign发送给鉴权中心;
Challenge_Sign=IBC_Sign(Challenge,Token_Private_Key,IBC_Common_Para);
鉴权中心以鉴权标识Token作为ID使用IBC验签算法验证Challenge_Sign;得到鉴权结果;
验签方可以直接使用签名方的鉴权标识Token作为ID进行验签:
Result=IBC_Verify(Challenge,Challenge_Sign,ID,IBC_Common_Para);
以验签通过作为鉴权通过的必要条件之一。如果鉴权中心存在设备锁定列表,则鉴权通过的必要条件还有:Token中的设备信息不在设备锁定列表中。另外的必要条件有:当前时间不大于鉴权标识中的失效时间。
鉴权中心将鉴权结果发送给鉴权模块。
实施例9:鉴权流程(口令+失效时间):
1、系统建立:
鉴权中心选择一种IBC算法,并建立一个该算法的私钥生成器PKG。使用PKG进行初始化,生成一组IBC_Master_Key和IBC_Common_Para。将IBC_Common_Para公开,鉴权模块载入IBC_Common_Para。IBC_Master_Key应存放在高安全服务端中,不可泄露,PKG也运行在高安全服务端上。不涉及IBC_Master_Key和PKG的操作可以使用一般服务端完成。
PKG的初始化阶段:
(IBC_Master_Key,IBC_Common_Para)=IBC_Setup();
服务端和客户端与鉴权相关的所有连接应该始终基于安全的信道(如使用SSl协议加密的信道),同时客户端有能力鉴权服务端,如使用SSL协议等。
2、私钥与鉴权标识生成:
鉴权模块发起私钥生成请求,私钥生成请求中包含口令。
鉴权中心生成鉴权标识Token,Token中包含2个鉴权因子:口令(来自私钥生成请求)、失效时间(由鉴权中心设定)。鉴权中心以Token作为ID,使用PKG通过主密钥IBC_Master_Key和IBC_Common_Para生成鉴权私钥Token_Private_Key,然后通过可信且保密的手段(如使用SSL协议),将Token_Private_Key和Token发送到相应的鉴权模块中。
Token_Private_Key=IBC_PKG(IBC_Master_Key,Token,IBC_Common_Para);
3、对私钥与鉴权标识的处理:
鉴权中心彻底删除私钥,鉴权模块完整存储私钥。
鉴权中心彻底删除Token。
鉴权模块彻底删除Token中的口令后存储Token的剩余部分(基于账户的应用场景),或直接存储Token的剩余部分(基于设备的应用场景)。
4、鉴权:
鉴权模块向鉴权中心发送鉴权请求。
鉴权中心向鉴权模块发送一个挑战Challenge,或鉴权模块自己生成一个挑战。所述挑战为随机数或其它特定信息。
鉴权模块实时获取用户输入的口令,从而组装出完整的鉴权标识(基于账户的应用场景),或者直接获取存储的鉴权标识(基于设备的应用场景)。鉴权模块使用完整的鉴权标识,使用鉴权私钥Token_Private_Key对挑战Challenge使用IBC签名算法进行签名,得到对Challenge的数字签名Challenge_Sign,然后将Challenge(如果Challenge由鉴权模块自己生成)、Token和Challenge_Sign发送给鉴权中心;
Challenge_Sign=IBC_Sign(Challenge,Token_Private_Key,IBC_Common_Para);
鉴权中心以鉴权标识Token作为ID使用IBC验签算法验证Challenge_Sign;得到鉴权结果;
验签方可以直接使用签名方的鉴权标识Token作为ID进行验签:
Result=IBC_Verify(Challenge,Challenge_Sign,ID,IBC_Common_Para);
以验签通过作为鉴权通过的必要条件之一。另外的必要条件有:当前时间不大于鉴权标识中的失效时间。
鉴权中心将鉴权结果发送给鉴权模块。
实施例10:鉴权流程(设备信息+口令+失效时间):
1、系统建立:
鉴权中心选择一种IBC算法,并建立一个该算法的私钥生成器PKG。使用PKG进行初始化,生成一组IBC_Master_Key和IBC_Common_Para。将IBC_Common_Para公开,鉴权模块载入IBC_Common_Para。IBC_Master_Key应存放在高安全服务端中,不可泄露,PKG也运行在高安全服务端上。不涉及IBC_Master_Key和PKG的操作可以使用一般服务端完成。
PKG的初始化阶段:
(IBC_Master_Key,IBC_Common_Para)=IBC_Setup();
服务端和客户端与鉴权相关的所有连接应该始终基于安全的信道(如使用SSl协议加密的信道),同时客户端有能力鉴权服务端,如使用SSL协议等。
2、私钥与鉴权标识生成:
鉴权模块发起私钥生成请求,私钥生成请求中包含鉴权模块的当前设备信息和口令。
鉴权中心生成鉴权标识Token,Token中包含3个鉴权因子:设备信息(来自私钥生成请求)、口令(来自私钥生成请求)、失效时间(由鉴权中心设定)。鉴权中心以Token作为ID,使用PKG通过主密钥IBC_Master_Key和IBC_Common_Para生成鉴权私钥Token_Private_Key,然后通过可信且保密的手段(如使用SSL协议),将Token_Private_Key和Token发送到相应的鉴权模块中。
Token_Private_Key=IBC_PKG(IBC_Master_Key,Token,IBC_Common_Para);
3、对私钥与鉴权标识的处理:
鉴权中心彻底删除私钥,鉴权模块完整存储私钥。
鉴权中心彻底删除整个Token。
鉴权模块彻底删除Token中的设备信息。
鉴权模块彻底删除Token中的口令后存储Token的剩余部分(基于账户的应用场景),或直接存储Token的剩余部分(基于设备的应用场景)。
4、鉴权:
鉴权模块向鉴权中心发送鉴权请求。
鉴权中心向鉴权模块发送一个挑战Challenge,或鉴权模块自己生成一个挑战。所述挑战为随机数或其它特定信息。
鉴权模块实时获取当前设备信息,鉴权模块实时获取用户输入的口令(基于账户的应用场景)或者直接获取存储的Token的剩余部分(基于设备的应用场景),从而组装出完整的鉴权标识。鉴权模块使用完整的鉴权标识,使用鉴权私钥Token_Private_Key对挑战Challenge使用IBC签名算法进行签名,得到对Challenge的数字签名Challenge_Sign,然后将Challenge(如果Challenge由鉴权模块自己生成)、Token和Challenge_Sign发送给鉴权中心;
Challenge_Sign=IBC_Sign(Challenge,Token_Private_Key,IBC_Common_Para);
鉴权中心以鉴权标识Token作为ID使用IBC验签算法验证Challenge_Sign;得到鉴权结果;
验签方可以直接使用签名方的鉴权标识Token作为ID进行验签:
Result=IBC_Verify(Challenge,Challenge_Sign,ID,IBC_Common_Para);
以验签通过作为鉴权通过的必要条件之一。如果鉴权中心存在设备锁定列表,则鉴权通过的必要条件还有:Token中的设备信息不在设备锁定列表中。另外的必要条件有:当前时间不大于鉴权标识中的失效时间。
鉴权中心将鉴权结果发送给鉴权模块。
实施例11:鉴权流程(设备信息+口令+失效时间+客户端标签):
1、系统建立:
鉴权中心选择一种IBC算法,并建立一个该算法的私钥生成器PKG。使用PKG进行初始化,生成一组IBC_Master_Key和IBC_Common_Para。将IBC_Common_Para公开,鉴权模块载入IBC_Common_Para。IBC_Master_Key应存放在高安全服务端中,不可泄露,PKG也运行在高安全服务端上。不涉及IBC_Master_Key和PKG的操作可以使用一般服务端完成。
PKG的初始化阶段:
(IBC_Master_Key,IBC_Common_Para)=IBC_Setup();
服务端和客户端与鉴权相关的所有连接应该始终基于安全的信道(如使用SSl协议加密的信道),同时客户端有能力鉴权服务端,如使用SSL协议等。
2、私钥与鉴权标识生成:
鉴权模块发起私钥生成请求,私钥生成请求中包含鉴权模块的当前设备信息、口令和客户端标签。
鉴权中心生成鉴权标识Token,Token中包含4个鉴权因子:设备信息(来自私钥生成请求)、口令(来自私钥生成请求)、客户端标签(来自私钥生成请求)、失效时间(由鉴权中心设定)。鉴权中心以Token作为ID,使用PKG通过主密钥IBC_Master_Key和IBC_Common_Para生成鉴权私钥Token_Private_Key,然后通过可信且保密的手段(如使用SSL协议),将Token_Private_Key和Token发送到相应的鉴权模块中。
Token_Private_Key=IBC_PKG(IBC_Master_Key,Token,IBC_Common_Para);
3、对私钥与鉴权标识的处理:
鉴权中心彻底删除私钥,鉴权模块完整存储私钥。
鉴权中心彻底删除整个Token。
鉴权模块彻底删除Token中的设备信息。
鉴权模块彻底删除Token中的口令后存储Token的剩余部分(基于账户的应用场景),或直接存储Token的剩余部分(基于设备的应用场景)。
4、鉴权:
鉴权模块向鉴权中心发送鉴权请求。
鉴权中心向鉴权模块发送一个挑战Challenge,或鉴权模块自己生成一个挑战。所述挑战为随机数或其它特定信息。
鉴权模块实时获取当前设备信息,鉴权模块实时获取用户输入的口令(基于账户的应用场景)或者直接获取存储的Token的剩余部分(基于设备的应用场景),从而组装出完整的鉴权标识。鉴权模块使用完整的鉴权标识,使用鉴权私钥Token_Private_Key对挑战Challenge使用IBC签名算法进行签名,得到对Challenge的数字签名Challenge_Sign,然后将Challenge(如果Challenge由鉴权模块自己生成)、Token和Challenge_Sign发送给鉴权中心;
Challenge_Sign=IBC_Sign(Challenge,Token_Private_Key,IBC_Common_Para)
鉴权中心以鉴权标识Token作为ID使用IBC验签算法验证Challenge_Sign;得到鉴权结果;
验签方可以直接使用签名方的鉴权标识Token作为ID进行验签:
Result=IBC_Verify(Challenge,Challenge_Sign,ID,IBC_Common_Para)
以验签通过作为鉴权通过的必要条件之一。如果鉴权中心存在设备锁定列表,则鉴权通过的必要条件还有:Token中的设备信息不在设备锁定列表中。另外的必要条件有:当前时间不大于鉴权标识中的失效时间。如果鉴权中心存在客户端锁定列表,则鉴权通过的必要条件还有:Token中的客户端标签不在客户端锁定列表中。
鉴权中心将鉴权结果发送给鉴权模块。
实施例12:鉴权流程(设备信息+口令+失效时间+账户名+客户端标签):
1、系统建立:
鉴权中心选择一种IBC算法,并建立一个该算法的私钥生成器PKG。使用PKG进行初始化,生成一组IBC_Master_Key和IBC_Common_Para。将IBC_Common_Para公开,鉴权模块载入IBC_Common_Para。IBC_Master_Key应存放在高安全服务端中,不可泄露,PKG也运行在高安全服务端上。不涉及IBC_Master_Key和PKG的操作可以使用一般服务端完成。
PKG的初始化阶段:
(IBC_Master_Key,IBC_Common_Para)=IBC_Setup();
服务端和客户端与鉴权相关的所有连接应该始终基于安全的信道(如使用SSl协议加密的信道),同时客户端有能力鉴权服务端,如使用SSL协议等。
2、私钥与鉴权标识生成:
鉴权模块发起私钥生成请求,私钥生成请求中包含鉴权模块的当前设备信息、口令、账户名、客户端标签。
鉴权中心生成鉴权标识Token,Token中包含5个鉴权因子:设备信息(来自私钥生成请求)、口令(来自私钥生成请求)、失效时间(由鉴权中心设定)、账户名(来自私钥生成请求)、客户端标签(来自私钥生成请求)。鉴权中心以Token作为ID,使用PKG通过主密钥IBC_Master_Key和IBC_Common_Para生成鉴权私钥Token_Private_Key,然后通过可信且保密的手段(如使用SSL协议),将Token_Private_Key和Token发送到相应的鉴权模块中。
Token_Private_Key=IBC_PKG(IBC_Master_Key,Token,IBC_Common_Para);
3、对私钥与鉴权标识的处理:
鉴权中心彻底删除私钥,鉴权模块完整存储私钥。
鉴权中心彻底删除整个Token。
鉴权模块彻底删除Token中的设备信息。
鉴权模块彻底删除Token中的口令后存储Token的剩余部分(基于账户的应用场景),或直接存储Token的剩余部分(基于设备的应用场景)。
4、鉴权:
鉴权模块向鉴权中心发送鉴权请求。
鉴权中心向鉴权模块发送一个挑战Challenge,或鉴权模块自己生成一个挑战。所述挑战为随机数或其它特定信息。
鉴权模块实时获取当前设备信息,鉴权模块实时获取用户输入的口令(基于账户的应用场景)或者直接获取存储的Token的剩余部分(基于设备的应用场景),从而组装出完整的鉴权标识。鉴权模块使用完整的鉴权标识,使用鉴权私钥Token_Private_Key对挑战Challenge使用IBC签名算法进行签名,得到对Challenge的数字签名Challenge_Sign,然后将Challenge(如果Challenge由鉴权模块自己生成)、Token和Challenge_Sign发送给鉴权中心;
Challenge_Sign=IBC_Sign(Challenge,Token_Private_Key,IBC_Common_Para);
鉴权中心以鉴权标识Token作为ID使用IBC验签算法验证Challenge_Sign;得到鉴权结果;
验签方可以直接使用签名方的鉴权标识Token作为ID进行验签:
Result=IBC_Verify(Challenge,Challenge_Sign,ID,IBC_Common_Para);
以验签通过作为鉴权通过的必要条件之一。如果鉴权中心存在设备锁定列表,则鉴权通过的必要条件还有:Token中的设备信息不在设备锁定列表中。如果鉴权中心存在客户端锁定列表,则鉴权通过的必要条件还有:Token中的客户端标签不在客户端锁定列表中。另外的必要条件有:当前时间不大于鉴权标识中的失效时间。
鉴权中心将鉴权结果发送给鉴权模块。
针对不同的应用场景,实施例12包括以下四个应用实例:
应用实例1:
应用场景为基于用户账户的应用场景,其中的鉴权模块指的是进行账户鉴权操作的各种硬件、软件或固件,如某些网银客户端、电子锁等。鉴权中心运行在服务端,用于处理客户端的鉴权请求。
如图2所示,一种鉴权方法,该方法具体包括以下步骤:
步骤11)鉴权中心选择一种IBC算法,并建立一个该算法的私钥生成器PKG。使用PKG进行初始化,生成一组IBC_Master_Key和IBC_Common_Para。将IBC_Common_Para公开,鉴权模块载入IBC_Common_Para。IBC_Master_Key应存放在高安全服务端中,不可泄露,PKG也运行在高安全服务端上。不涉及IBC_Master_Key和PKG的操作可以使用一般服务端完成。
PKG的初始化阶段:
(IBC_Master_Key,IBC_Common_Para)=IBC_Setup();
服务端与客户端与鉴权相关的所有连接应该始终基于安全的信道,同时客户端有能力鉴权服务端,如使用SSL协议等。
步骤12)鉴权模块生成账户名并设置第二鉴权方式,将账户名与第二鉴权方式发送给鉴权中心;鉴权中心将账户名与第二鉴权方式绑定后存入数据库中;
每一个账户皆对应一个唯一的账户名Account,账户名由用户自己选择,或由服务端的鉴权中心指定,或由双方协商产生。用户在生成账户时,需留下可靠的第二鉴权方式,如用于接收短信验证码的手机号等。
步骤13)鉴权模块进行设备绑定,将设备硬件信息和口令发送给鉴权中心;鉴权中心生成鉴权标识,并根据鉴权标识生成鉴权私钥;具体包括:
步骤13-1)用户在设备的鉴权模块上发起绑定申请,并使用第二鉴权方式进行鉴权;
步骤13-2)使用第二鉴权方式鉴权通过后,鉴权模块将设备硬件信息Dev_Info、口令Psw和客户端标签Client_Tag等信息发送给鉴权中心;
步骤13-3)鉴权中心为鉴权模块生成鉴权标识Token;
Token至少由账户名Account、硬件信息Dev_Info和口令Psw组成,并还可以包含客户端标签Client_Tag、失效日期Expire_Date等信息。见表1:
表1
Figure GDA0002530924870000291
其中:
Dev_Info为可以唯一标识当前设备的信息。
Psw:口令由用户输入,设备绑定完成后,客户端与服务端皆不保存Psw,Psw需由用户保存,不可泄露。口令不限于字符形式,也可以是手势密码等具备确定性的信息,指纹等模糊型信息则不可使用。
Client_Tag:客户端第一次启动时,生成一个随机数作为Client_Tag。用户也可以删除并重新生成Client_Tag。
Expire_Date:Token失效日期,由服务端决定。
步骤13-4)鉴权中心以Token作为ID,使用步骤11)的PKG通过主密钥生成鉴权私钥Token_Private_Key;
Token_Private_Key=IBC_PKG(IBC_Master_Key,Token,IBC_Common_Para);
管理员操作PKG,输入IBC_Master_Key和ID(鉴权标识)以及IBC_Common_Para,为该鉴权模块生成私钥(Token_Private_Key)。然后通过可信且保密的手段(如使用SSL协议),将这个私钥送到相应的签名方手中。
步骤14)鉴权中心将鉴权标识和鉴权私钥发送给鉴权模块,然后删除鉴权标识中的口令;鉴权模块接收后,保存删除了口令的鉴权标识和鉴权私钥;具体包括:
步骤14-1)鉴权中心将Token和Token_Private_Key发送给鉴权模块,然后删除Token或只保存Token中Psw以外的部分信息到数据库(务必将Psw信息彻底删除);
步骤14-2)鉴权模块在收到Token和Token_Private_Key后,保存Token_Private_Key,同时保存Token中除了Psw以外的所有信息(务必将Psw信息彻底删除)。
步骤15)鉴权模块向鉴权中心发送鉴权请求,鉴权中心处理后将鉴权结果返回鉴权模块;具体包括:
步骤15-1)鉴权模块向鉴权中心发送鉴权请求;
步骤15-2)鉴权中心向鉴权模块发送一个挑战Challenge;所述挑战为随机数或其它特定信息;
步骤15-3)用户向鉴权模块输入口令Psw,鉴权模块组装出完整的鉴权标识Token;使用鉴权私钥Token_Private_Key对挑战Challenge使用IBC签名算法进行签名,得到对Challenge的数字签名Challenge_Sign,然后将Token和Challenge_Sign发送给鉴权中心;
签名方获得私钥后,就可以进行数字签名:
IBC_Signature=IBC_Sign(Message,Token_Private_Key,IBC_Common_Para);
步骤15-4)鉴权中心以鉴权标识Token作为ID使用IBC验签算法验证Challenge_Sign;得到鉴权结果;
验签方可以直接使用签名方的ID进行验签:
Result=IBC_Verify(Message,IBC_Signature,ID,IBC_Common_Para);
以验签通过作为鉴权通过的必要条件之一,其他可选的必要条件还有:Dev_Info与Client_Tag(如果有Client_Tag)在数据库中并且与Account对应,Dev_Info不在设备锁定列表中,Dev_Info与Client_Tag不在客户端锁定列表中,当前时间在Expire_Date之前(如果有Expire_Date)等等。
步骤15-5)鉴权中心将鉴权结果发送给鉴权模块。
当采用另一种挑战验证方式,所述步骤15)包括:
步骤15-1′)用户向鉴权模块输入口令Psw,鉴权模块组装出完整的鉴权标识Token;鉴权模块生成一个挑战,使用鉴权私钥Token_Private_Key对挑战Challenge使用IBC签名算法进行签名,得到对Challenge的数字签名Challenge_Sign,然后将Token、挑战和数字签名Challenge_Sign发送给鉴权中心;
签名方获得私钥后,就可以进行数字签名:
IBC_Signature=IBC_Sign(Message,Token_Private_Key,IBC_Common_Para);
步骤15-2′)鉴权中心以鉴权标识Token作为ID使用IBC验签算法验证Challenge_Sign;得到鉴权结果;
验签方可以直接使用签名方的ID进行验签:
Result=IBC_Verify(Message,IBC_Signature,ID,IBC_Common_Para);
以验签通过作为鉴权通过的必要条件之一,其他可选的必要条件还有:Dev_Info与Client_Tag(如果有Client_Tag)在数据库中并且与Account对应,Dev_Info不在设备锁定列表中,Dev_Info与Client_Tag不在客户端锁定列表中,当前时间在Expire_Date之前(如果有Expire_Date)等等。
步骤15-3′)鉴权中心将鉴权结果发送给鉴权模块。
此外,鉴权中心还可以设置安全控制策略,在某些适当的条件下(如鉴权失败若干次),将某些Dev_Info放入设备锁定列表中。
当用户在Psw有泄露风险、鉴权模块所绑定的设备丢失或者Token_Private_Key有泄露风险时,应当进行挂失。
如果鉴权中心的数据库中保存有Dev_Info信息,则挂失方法包括以下步骤:
步骤S1)用户通过新的设备使用第二鉴权方式或其他身份认证手段认证用户身份;
步骤S2)鉴权中心验证用户身份,认证通过后,鉴权中心向用户展示Dev_Info列表;
步骤S3)用户从Dev_Info列表中选择需要挂失的设备,并告知鉴权中心;
步骤S4)鉴权中心将对应的Dev_Info存放入设备锁定列表中,存放期限为永久(如果没有Expire_Date)或者Expire_Date(如果有Expire_Date)。
此外,在遗忘口令或者Token到期的情形下,该设备皆需要重新进行设备绑定流程。
当时间到了Expire_Date(如果有Expire_Date)的时候,设备挂失自行解除。如果鉴权中心的数据库中还保存有Client_Tag,则可在设备挂失自行解除之前,对挂失的设备进行解除挂失操作,具体包括:
步骤T1))用户通过新的设备使用第二鉴权方式或其他身份认证手段认证用户身份;
步骤T2)鉴权中心验证用户身份,认证通过后,鉴权中心向用户展示设备锁定列表;
步骤T3)用户从设备锁定列表中选择需要解除挂失的设备,并告知鉴权中心;
步骤T4)鉴权中心将对应的Dev_Info与Client_Tag存放入客户端锁定列表中,存放期限为永久(如果没有Expire_Date)或者Expire_Date(如果有Expire_Date),同时将对应的Dev_Info从设备锁定列表中删除;
步骤T5)待解除挂失的设备彻底删除原有的Client_Tag,然后生成新的Client_Tag,然后再进行一遍设备绑定流程。
如果鉴权中心的数据库中保存有Dev_Info信息,则另外一种挂失方法包括以下步骤:
步骤S1′)用户通过新的设备使用第二鉴权方式或其他身份认证手段认证用户身份;
步骤S2′)鉴权中心验证用户身份,认证通过后,鉴权中心将数据库中该用户账户名Account对应的所有的Dev_Info和Client_Tag(如果有Client_Tag)删除。
挂失结束后,将该Account的所有已绑定设备重新进行设备绑定。一个Account可以绑定在多个设备上。就是说如果用这种方法挂失,那么该Account所有的现有设备绑定都会失效,都需要重新绑定一遍。
上述挂失的方法适用于更高安全要求的应用场景。
应用实例2
应用场景为基于设备的应用场景,其中的“客户端”指的是待被鉴权的设备本身,如物联网设备。
如图3所示,一种鉴权方法,所述方法包括:
步骤21)物联网平台基于选择的IBC算法并建立算法的PKG,使用该PKG生成一组主密钥和一组公共参数;物联网设备载入该组公共参数;
物联网平台选择一种IBC算法,并建立一个该算法的PKG。使用PKG进行初始化,生成一组IBC_Master_Key和IBC_Common_Para。将IBC_Common_Para公开。IBC_Master_Key应存放在高安全服务端中,不可泄露,PKG也应运行在高安全服务端上。不涉及IBC_Master_Key和PKG的操作可以使用一般服务端完成。
步骤22)物联网设备将设备信息、口令发送给物联网平台,物联网平台生成鉴权标识,并根据鉴权标识生成鉴权私钥;具体包括:
步骤22-1)物联网设备将硬件信息Dev_Info和口令Psw发送给物联网平台;
步骤22-2)物联网平台为物联网设备生成设备鉴权标识Token;
设备鉴权标识由至少由硬件信息Dev_Info组成,并还可以包含失效日期Expire_Date和口令Psw等信息。见表2:
表2
Figure GDA0002530924870000331
其中:
Dev_Info为可以唯一标识当前设备的信息。
Psw:口令由设备随机生成,物联网平台不保存Psw,Psw存放在物联网设备的安全区域,不可泄露。
Expire_Date:Token失效日期,由物联网平台决定。
步骤22-3)物联网平台以Token作为ID,使用步骤21)的PKG通过主密钥生成鉴权私钥Token_Private_Key;
步骤23)物联网平台将鉴权标识和鉴权私钥发送给物联网设备,删除鉴权标识中的口令;物联网设备接收后,保存删除了口令的鉴权标识和鉴权私钥,将口令存储在设备安全存储区;具体包括:
步骤23-1)物联网平台将Token和Token_Private_Key发送给物联网设备,然后删除Token或只保存Token中Psw以外的部分信息到数据库(务必将Psw信息彻底删除);
步骤23-2)物联网设备收到Token和Token_Private_Key后,保存Token中除了Psw以外的所有信息;并将Token_Private_Key和Psw存储在设备的安全区域。
步骤24)物联网设备向物联网平台发送鉴权请求,物联网平台处理后将鉴权结果返回物联网设备;具体包括:
步骤24-1)物联网设备向物联网平台发送鉴权请求;
步骤24-2)物联网平台向物联网设备发送一个挑战(Challenge),挑战为随机数或其它特定信息;
步骤24-3)物联网设备从设备安全存储区读取Psw,组装出完整的Token;然后使用Token_Private_Key对Challenge使用IBC签名算法进行签名,得到对Challenge的数字签名Challenge_Sign,物联网设备将Token和Challenge_Sign发送给物联网平台;
步骤24-4)物联网平台以Token作为ID使用IBC验签算法验证Challenge_Sign,返回鉴权结果;
验签方可以直接使用签名方的ID进行验签:
Result=IBC_Verify(Message,IBC_Signature,ID,IBC_Common_Para);
以验签通过作为鉴权通过的必要条件之一,其他可选的必要条件还有:Dev_Info与Client_Tag(如果有Client_Tag)在数据库中并且与Account对应,Dev_Info不在设备锁定列表中,Dev_Info与Client_Tag不在客户端锁定列表中,当前时间在Expire_Date之前(如果有Expire_Date)等等。
物联网平台还可以设置安全控制策略,在某些适当的条件下(如鉴权失败若干次),将某些Dev_Info放入设备锁定列表中。
当采用另一种挑战验证方式,所述步骤24)包括:
步骤24-1′)物联网设备从设备安全存储区读取Psw,组装出完整的Token;鉴权设备生成一个挑战,使用鉴权私钥Token_Private_Key对挑战Challenge使用IBC签名算法进行签名,得到对Challenge的数字签名Challenge_Sign,然后将Token、挑战和数字签名Challenge_Sign发送给物联网平台;
签名方获得私钥后,就可以进行数字签名:
IBC_Signature=IBC_Sign(Message,Token_Private_Key,IBC_Common_Para);
步骤24-2′)物联网平台以鉴权标识Token作为ID使用IBC验签算法验证Challenge_Sign;得到鉴权结果;
验签方可以直接使用签名方的ID进行验签:
Result=IBC_Verify(Message,IBC_Signature,ID,IBC_Common_Para);
以验签通过作为鉴权通过的必要条件之一,其他可选的必要条件还有:Dev_Info与Client_Tag(如果有Client_Tag)在数据库中并且与Account对应,Dev_Info不在设备锁定列表中,Dev_Info与Client_Tag不在客户端锁定列表中,当前时间在Expire_Date之前(如果有Expire_Date)等等。
步骤24-3′)物联网平台将鉴权结果发送给物联网设备。
应用实例3:
应用场景为基于用户账户的应用场景,其中的鉴权单元指的是进行账户鉴权操作的各种硬件、软件或固件,如某些网银客户端等。
如图4所示,一种鉴权系统,该系统包括:鉴权模块300和鉴权中心400;如图5所示,所述鉴权模块300包括:第一IBC载入单元301、账户生成单元302、设备绑定单元303、第一存储单元304和第一鉴权请求单元305;
第一IBC载入单元301,用于载入鉴权中心400公开的公共参数;
账户生成单元302,用于生成鉴权模块的账户名,并设置第二鉴权方式,将账户名与第二鉴权方式发送给鉴权中心400;
设备绑定单元303,用于发起设备绑定请求,并使用第二鉴权方式进行鉴权,请求通过后,将设备信息、口令Psw和客户端标签Client_Tag等信息发送给鉴权中心;
第一存储单元304,用于保存鉴权中心400发送的删除了Psw的鉴权标识Token和鉴权私钥Token_Private_Key;
第一鉴权请求单元305,用于通过输入口令Psw向鉴权中心400发送鉴权请求,还用于接收鉴权中心400发送的鉴权结果;
用户向第一鉴权请求单元输入Psw,第一鉴权请求单元组装出完整的鉴权标识Token;使用鉴权私钥Token_Private_Key对Challenge使用IBC签名算法进行签名,得到对Challenge的数字签名Challenge_Sign,然后将Token和Challenge_Sign发送给鉴权中心;
如图6所示,鉴权中心400包括:第一IBC初始化单元401、第一鉴权标识生成单元402、第一鉴权私钥生成单元403、第二存储单元404和第一鉴权验证单元405;
第一IBC初始化单元401,用于选择一种IBC算法,并建立一个该算法的私钥生成器PKG,使用PKG进行初始化,生成一组主密钥IBC_Master_Key和公共参数IBC_Common_Para,将IBC_Common_Para公开;
第一鉴权标识生成单元402,用于根据鉴权模块300发送的账户名、设备信息和口令生成设备鉴权标识Token;Token的形式见表1;
第一鉴权私钥生成单元403,用于以鉴权标识Token作为ID,通过第一IBC初始化单元401生成的PKG和主密钥生成鉴权私钥Token_Private_Key;然后将鉴权标识和鉴权私钥发送给鉴权模块300;
第二存储单元404:用于存储第一IBC初始化单元401生成的主密钥,用于存储鉴权模块300的账户名和第二鉴权方式,还用于存储删除了口令的鉴权标识;
第一鉴权验证单元405:用于接收鉴权模块300的鉴权请求,向鉴权模块300发送一个挑战(Challenge);以鉴权标识作为ID使用IBC验签算法验证Challenge_Sign;,鉴权中心400将鉴权结果发送给鉴权模块300。
以验签通过作为鉴权通过的必要条件之一,其他可选的必要条件还有:Dev_Info与Client_Tag(如果有Client_Tag)在数据库中并且与Account对应,Dev_Info不在设备锁定列表中,Dev_Info与Client_Tag不在客户端锁定列表中,当前时间在Expire_Date之前(如果有Expire_Date)
应用实例4:
应用场景为基于设备的应用场景,其中的“客户端”指的是待被鉴权的设备本身,如物联网设备。
如图7所示,一种鉴权系统,所述系统包括:物联网设备500和物联网平台600;如图8所示,所述物联网设备500包括:第二IBC载入单元501、信息发送单元502、第三存储单元503、设备安全存储区504和第二鉴权请求单元505;
第二IBC载入单元501,用于载入物联网平台600公开的公共参数;
信息发送单元502,用于将设备信息和口令Psw发送给物联网平台600;
第三存储单元503,用于保存物联网平台600发送的删除了口令Psw的鉴权标识Token;
设备安全存储区504,用于存储口令Psw和鉴权私钥Token_Private_Key;
第二鉴权请求单元505,用于向物联网平台600发送鉴权请求,并接收物联网平台600发送的鉴权结果;
从设备安全存储区读取Psw,组装出完整的鉴权标识;使用Token_Private_Key对Challenge使用IBC签名算法进行签名,得到对Challenge的数字签名(Challenge_Sign),然后将Token和Challenge_Sign发送给物联网平台600。
如图9所示,物联网平台600包括:第二IBC初始化单元601、第二鉴权标识生成单元602、第二鉴权私钥生成单元603、第四存储单元604和第二鉴权验证单元605;
第二IBC初始化单元601,用于选择一种IBC算法,并建立一个该算法的私钥生成器PKG,使用PKG进行初始化,生成一组主密钥IBC_Master_Key和公共参数IBC_Common_Para,将IBC_Common_Para公开;
第二鉴权标识生成单元602,用于根据物联网设备500发送的设备信息和口令生成设备鉴权标识Token;Token的形式见表2;
第二鉴权私钥生成单元603,用于以Token作为ID,通过第二IBC初始化单元601生成的PKG和主密钥生成鉴权私钥Token_Private_Key;然后将鉴权标识和鉴权私钥发送给鉴物联网设备500;
第四存储单元604:用于存储第一IBC初始化单元401生成的主密钥,还用于存储删除了口令的鉴权标识;
第二鉴权验证单元605:用于接收物联网设备500的鉴权请求,向物联网设备500发送一个挑战Challenge;以鉴权标识作为ID使用IBC验签算法验证Challenge_Sign;物联网平台600将鉴权结果发送给物联网设备500;
以验签通过作为鉴权通过的必要条件之一,其他可选的必要条件还有:Dev_Info与Client_Tag(如果有Client_Tag)在数据库中并且与Account对应,Dev_Info不在设备锁定列表中,Dev_Info与Client_Tag不在客户端锁定列表中,当前时间在Expire_Date之前(如果有Expire_Date)。
本发明的鉴权方法的安全性分析如下:
攻击情景1:攻击者从服务端数据库窃取数据。
现有的口令方式中,口令是以明文或口令散列值的形式存放在数据库中的。在本攻击情景中,攻击者可以直接获取口令,或者使用字典攻击的方式,以不可忽视的成功率获取口令。
现有的挑战应答协议的方式中,鉴权密钥存放在数据库中。在本攻击情景中,攻击者可以直接获取鉴权密钥。
本发明的方法中,服务端数据库不存储任何有关于口令的信息,也不存储鉴权私钥,即使攻击者获取到了Token除了口令以外的所有信息,也无法鉴权通过。
攻击情景2:口令泄露。
现有的口令方式中,口令泄露将导致攻击者可以鉴权成功。
本发明的方法中,攻击者单纯获取口令无法鉴权成功。纵使并列出现了攻击情景1,攻击者也只能组装出Token,但由于不知道鉴权私钥,依然无法鉴权成功。
攻击情景3:攻击者获得客户端设备。
根据攻击者能力假设,在本攻击情景下,攻击者可获取设备中存储的任何数据。
现有的挑战应答协议的方式中,由于鉴权密钥需要存储在客户端设备中,因此攻击者可以获取到鉴权密钥。
现有的基于证书的数字签名的方式中,由于鉴权私钥需要存储在客户端设备中,因此攻击者可以获取到鉴权私钥。
本发明的方法中,虽然鉴权私钥也存储在客户端设备中,但由于客户端设备不存储口令,因此攻击者无法组成完整的Token以进行鉴权。
易用性、效率与成本分析:
在实例1的应用场景中,本发明的方法在绑定设备时使用第二鉴权方式,在鉴权时需要在设备上输入口令,这与现有的高安全应用场景(如网银客户端等)的做法相仿,在易用性上并无降低。
与现有的基于证书的数字签名的方式相比,本发明的方法不再使用PKI和证书链。鉴权时仅需要进行一次验签,而基于证书的数字签名的方式至少需要两次验签(验证证书和验证鉴权签名)。而且与CA相比,PKG的建设成本非常低,维护工作量和维护成本也很低。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。

Claims (26)

1.一种鉴权方法,用于实现鉴权中心对鉴权模块请求的鉴权,所述鉴权模块运行在客户端,所述鉴权中心运行在服务端,其特征在于,所述方法包括:
所述鉴权中心基于一个或多个鉴权因子生成鉴权标识,所述鉴权因子由鉴权模块发送给鉴权中心或者由鉴权中心生成;
所述鉴权中心基于该鉴权标识生成鉴权私钥,并将鉴权标识和鉴权私钥发送给鉴权模块;
所述鉴权中心删除鉴权私钥;所述鉴权模块存储鉴权私钥;
所述鉴权中心和鉴权模块依据鉴权标识的内容,对鉴权标识进行全部存储、部分存储或全部删除的操作;
所述鉴权模块向所述鉴权中心发送鉴权请求,所述鉴权中心对所述鉴权请求进行验证;具体包括:
所述鉴权模块接收鉴权中心发送一个挑战,或生成一个挑战;
所述鉴权模块使用完整的鉴权标识和鉴权私钥,通过IBC签名算法对所述挑战进行签名,得到数字签名,然后将所述挑战、鉴权标识和数字签名发送给鉴权中心;
所述鉴权中心通过鉴权标识和IBC验签算法验证数字签名;以验签通过作为鉴权通过的必要条件之一,得到鉴权结果;
所述鉴权中心将鉴权结果发送给鉴权模块。
2.根据权利要求1所述的鉴权方法,其特征在于,所述方法还包括:鉴权中心和鉴权模块的初始化步骤:所述鉴权中心的IBC初始化单元基于选择的IBC算法,建立IBC算法的PKG,使用该PKG生成一组主密钥和一组公共参数,所述鉴权中心的第二存储单元存储IBC初始化单元生成的主密钥;所述鉴权模块的IBC载入单元载入该组公共参数。
3.根据权利要求2所述的鉴权方法,其特征在于,所述鉴权因子为:客户端设备硬件信息、口令、失效时间、账户名或客户端标签。
4.根据权利要求3所述的鉴权方法,其特征在于,所述方法具体包括:
步骤A1)所述鉴权模块向鉴权中心发起私钥与鉴权标识生成请求,将客户端设备硬件信息发送给鉴权中心;所述鉴权中心的鉴权标识生成单元生成包括客户端设备硬件信息的鉴权标识,鉴权中心的鉴权私钥生成单元根据鉴权标识生成鉴权私钥;
步骤A2)所述鉴权中心将鉴权标识和鉴权私钥发送给鉴权模块,鉴权中心删除鉴权标识和鉴权私钥,所述鉴权模块接收后,所述鉴权模块删除鉴权标识中的客户端设备硬件信息,所述鉴权模块的第一存储单元存储鉴权标识和鉴权私钥;
步骤A3)所述鉴权模块的鉴权请求单元向鉴权中心发送鉴权请求,所述鉴权中心的鉴权验证单元验证后将鉴权结果返回鉴权模块。
5.根据权利要求4所述的鉴权方法,其特征在于,所述步骤A3)具体包括:
步骤A3-1)所述鉴权模块的鉴权请求单元向鉴权中心发送鉴权请求;
步骤A3-2)所述鉴权中心的鉴权验证单元向鉴权模块发送一个挑战;所述挑战为随机数或特定信息;
步骤A3-3)鉴权模块获取设备硬件信息,组装出完整的鉴权标识;使用鉴权私钥对挑战使用IBC签名算法进行签名,得到挑战的数字签名,然后将鉴权标识和数字签名发送给鉴权中心;
步骤A3-4)所述鉴权中心的鉴权验证单元以鉴权标识作为ID使用IBC验签算法验证数字签名;得到鉴权结果;
步骤A3-5)所述鉴权中心的鉴权验证单元将鉴权结果发送给鉴权模块。
6.根据权利要求5所述的鉴权方法,其特征在于,当鉴权中心设置设备锁定列表,则所述步骤A3-4)还包括:判断鉴权标识中的设备硬件信息是否在设备锁定列表中,如果判断结果是肯定的,则验签未通过,否则,验签通过。
7.根据权利要求4所述的鉴权方法,其特征在于,所述步骤A3)具体包括:
步骤A3-1′)鉴权模块获取客户端设备硬件信息,组装出完整的鉴权标识;所述鉴权模块的鉴权请求单元生成一个挑战,使用鉴权私钥对挑战使用IBC签名算法进行签名,得到数字签名,然后将鉴权标识、挑战和数字签名发送给鉴权中心;
步骤A3-2′)所述鉴权中心的鉴权验证单元以鉴权标识作为ID使用IBC验签算法验证数字签名;得到鉴权结果;
步骤A3-3′)所述鉴权中心的第一鉴权验证单元将鉴权结果发送给鉴权模块。
8.根据权利要求3所述的鉴权方法,其特征在于,所述方法具体包括:
步骤B1)所述鉴权模块向鉴权中心发起私钥与鉴权标识生成请求,所述鉴权模块将口令发送给鉴权中心;所述鉴权中心的鉴权标识生成单元生成包括口令的鉴权标识,鉴权中心的鉴权私钥生成单元根据鉴权标识生成鉴权私钥;
步骤B2)所述鉴权中心将鉴权标识和鉴权私钥发送给鉴权模块,鉴权中心删除鉴权标识和鉴权私钥,所述鉴权模块接收后,所述鉴权模块删除鉴权标识中的口令,所述鉴权模块的第一存储单元存储鉴权标识和鉴权私钥;
步骤B3)所述鉴权模块的鉴权请求单元向鉴权中心发送鉴权请求,所述鉴权中心的鉴权验证单元验证后将鉴权结果返回鉴权模块。
9.根据权利要求3所述的鉴权方法,其特征在于,所述方法具体包括:
步骤C1)所述鉴权模块的账户生成单元生成账户名,所述鉴权模块向鉴权中心发起私钥与鉴权标识生成请求,将账户名发送给鉴权中心;
步骤C2)所述鉴权中心的鉴权标识生成单元生成包括账户名的鉴权标识,鉴权中心的鉴权私钥生成单元根据鉴权标识生成鉴权私钥;
步骤C3)所述鉴权中心将鉴权标识和鉴权私钥发送给鉴权模块,鉴权中心删除鉴权标识和鉴权私钥;所述鉴权模块接收后,所述鉴权模块的第一存储单元存储鉴权标识和鉴权私钥;
步骤C4)所述鉴权模块的鉴权请求单元向鉴权中心发送鉴权请求,所述鉴权中心的鉴权验证单元验证后将鉴权结果返回鉴权模块。
10.根据权利要求3所述的鉴权方法,其特征在于,所述方法具体包括:
步骤D1)所述鉴权模块向鉴权中心发起私钥与鉴权标识生成请求,所述鉴权模块将客户端标签发送给鉴权中心;所述鉴权中心的鉴权标识生成单元生成包括客户端标签的鉴权标识,所述鉴权中心的鉴权私钥生成单元根据鉴权标识生成鉴权私钥;
步骤D2)所述鉴权中心将鉴权标识和鉴权私钥发送给鉴权模块,鉴权中心删除鉴权标识和鉴权私钥,所述鉴权模块接收后,所述鉴权模块的第一存储单元存储鉴权标识和鉴权私钥;
步骤D3)所述鉴权模块的鉴权请求单元向鉴权中心发送鉴权请求,所述鉴权中心的鉴权验证单元验证后将鉴权结果返回鉴权模块。
11.根据权利要求10所述的鉴权方法,其特征在于,所述步骤D3)具体包括:
步骤D3-1)所述鉴权模块的鉴权请求单元向鉴权中心发送鉴权请求;
步骤D3-2)所述鉴权中心的鉴权验证单元向鉴权模块发送一个挑战;所述挑战为随机数或特定信息;
步骤D3-3)鉴权模块从第一存储单元获取鉴权标识;使用鉴权私钥对挑战使用IBC签名算法进行签名,得到挑战的数字签名,然后将鉴权标识和数字签名发送给鉴权中心;
步骤D3-4)所述鉴权中心的鉴权验证单元以鉴权标识作为ID使用IBC验签算法验证数字签名;得到鉴权结果;
步骤D3-5)所述鉴权中心的鉴权验证单元将鉴权结果发送给鉴权模块。
12.根据权利要求11所述的鉴权方法,其特征在于,当鉴权中心设置客户端锁定列表,所述步骤D3-4)还包括:判断鉴权标识中的客户端标签是否在客户端锁定列表中,如果判断结果是肯定的,则验签未通过,否则,验签通过。
13.根据权利要求3所述的鉴权方法,其特征在于,所述方法具体包括:
步骤E1)所述鉴权中心的鉴权标识生成单元生成包括失效时间的鉴权标识,所述鉴权中心的鉴权私钥生成单元根据鉴权标识生成鉴权私钥;
步骤E2)所述鉴权中心将鉴权标识和鉴权私钥发送给鉴权模块,鉴权中心删除鉴权标识和鉴权私钥,所述鉴权模块接收后,所述鉴权模块的第一存储单元存储鉴权标识和鉴权私钥;
步骤E3)所述鉴权模块的鉴权请求单元向鉴权中心发送鉴权请求,所述鉴权中心的鉴权验证单元验证后将鉴权结果返回鉴权模块。
14.根据权利要求13所述的鉴权方法,其特征在于,所述步骤E3)具体包括:
步骤E3-1)所述鉴权模块的鉴权请求单元向鉴权中心发送鉴权请求;
步骤E3-2)所述鉴权中心的鉴权验证单元向鉴权模块发送一个挑战;所述挑战为随机数或特定信息;
步骤E3-3)鉴权模块从第一存储单元获取鉴权标识;使用鉴权私钥对挑战使用IBC签名算法进行签名,得到挑战的数字签名,然后将鉴权标识和数字签名发送给鉴权中心;
步骤E3-4)所述鉴权中心的鉴权验证单元以鉴权标识作为ID使用IBC验签算法验证数字签名;得到鉴权结果;
步骤E3-5)所述鉴权中心的鉴权验证单元将鉴权结果发送给鉴权模块。
15.根据权利要求14所述的鉴权方法,其特征在于,所述步骤E3-4)还包括:判断当前时间是否小于鉴权标识中的失效时间,如果判断结果是肯定的,则验签通过,否则,验签未通过。
16.根据权利要求3所述的鉴权方法,其特征在于,当鉴权因子包括客户端设备硬件信息和口令时,所述方法具体包括:
步骤F1)所述鉴权模块向鉴权中心发起私钥与鉴权标识生成请求,将客户端设备硬件信息和口令发送给鉴权中心;所述鉴权中心的鉴权标识生成单元生成包括客户端设备硬件信息和口令的鉴权标识,鉴权中心的鉴权私钥生成单元根据鉴权标识生成鉴权私钥;
步骤F2)所述鉴权中心将鉴权标识和鉴权私钥发送给鉴权模块,所述鉴权中心删除鉴权标识;所述鉴权模块接收后,所述鉴权模块删除鉴权标识中的口令,所述鉴权模块的第一存储单元存储鉴权标识和鉴权私钥;
步骤F3)所述鉴权模块的鉴权请求单元向鉴权中心发送鉴权请求,所述鉴权中心的鉴权验证单元验证后将鉴权结果返回鉴权模块。
17.根据权利要求3所述的鉴权方法,其特征在于,当鉴权因子包括客户端设备硬件信息、口令和账户名时,所述方法具体包括:
步骤G1)所述鉴权模块的账户生成单元生成账户名,将账户名发送给鉴权中心;将账户名存储在鉴权中心的存储单元;
步骤G2)所述鉴权模块向鉴权中心发起私钥与鉴权标识生成请求,将客户端设备硬件信息和口令发送给鉴权中心;所述鉴权中心的鉴权标识生成单元生成至少包括账户名、客户端设备硬件信息和口令的鉴权标识,鉴权中心的鉴权私钥生成单元根据鉴权标识生成鉴权私钥;
步骤G3)所述鉴权中心将鉴权标识和鉴权私钥发送给鉴权模块,所述鉴权中心删除鉴权标识;所述鉴权模块接收后,所述鉴权模块删除鉴权标识中的口令,所述鉴权模块的第一存储单元存储鉴权标识和鉴权私钥;
步骤G4)所述鉴权模块的鉴权请求单元向鉴权中心发送鉴权请求,所述鉴权中心的鉴权验证单元验证后将鉴权结果返回鉴权模块。
18.根据权利要求17所述的鉴权方法,其特征在于,所述步骤G2)具体包括:
步骤G2-1)所述鉴权模块向鉴权中心发起私钥与鉴权标识生成请求,所述鉴权模块将客户端设备硬件信息和口令发送给鉴权中心;
步骤G2-2)鉴权中心为鉴权模块生成鉴权标识;所述鉴权标识至少由账户名、客户端设备硬件信息和口令组成;
步骤G2-3)鉴权中心以鉴权标识作为ID,使用初始化步骤生成的PKG通过主密钥生成鉴权私钥。
19.根据权利要求3所述的鉴权方法,其特征在于,所当鉴权因子包括客户端设备硬件信息、口令、客户端标签和失效时间时,所述方法具体包括:
步骤H1)所述鉴权模块向鉴权中心发起私钥与鉴权标识生成请求,将客户端设备硬件信息、口令和客户端标签发送给鉴权中心;所述鉴权中心的鉴权标识生成单元生成包括账户名、客户端设备硬件信息、口令、客户端标签和失效时间的鉴权标识,鉴权中心的鉴权私钥生成单元根据鉴权标识生成鉴权私钥;
步骤H2)所述鉴权中心将鉴权标识和鉴权私钥发送给鉴权模块,所述鉴权中心删除鉴权标识;所述鉴权模块接收后,所述鉴权模块删除鉴权标识中的口令和客户端设备硬件信息,所述鉴权模块的第一存储单元存储鉴权标识和鉴权私钥;
步骤H3)所述鉴权模块的鉴权请求单元向鉴权中心发送鉴权请求,所述鉴权中心的鉴权验证单元验证后将鉴权结果返回鉴权模块。
20.根据权利要求3所述的鉴权方法,其特征在于,当鉴权因子包括客户端设备硬件信息、口令、账户名、客户端标签和失效时间时,所述方法具体包括:
步骤R1)所述鉴权模块的账户生成单元生成账户名,将账户名发送给鉴权中心;将账户名存储在鉴权中心的存储单元;
步骤R2)所述鉴权模块向鉴权中心发起私钥与鉴权标识生成请求,将客户端设备硬件信息、口令和客户端标签发送给鉴权中心;所述鉴权中心的鉴权标识生成单元生成包括账户名、客户端设备硬件信息、口令、客户端标签和失效时间的鉴权标识,鉴权中心的鉴权私钥生成单元根据鉴权标识生成鉴权私钥;
步骤R3)所述鉴权中心将鉴权标识和鉴权私钥发送给鉴权模块,所述鉴权中心删除鉴权标识;所述鉴权模块接收后,所述鉴权模块删除鉴权标识中的口令和客户端设备硬件信息,所述鉴权模块的第一存储单元存储鉴权标识和鉴权私钥;
步骤R4)所述鉴权模块的鉴权请求单元向鉴权中心发送鉴权请求,所述鉴权中心的鉴权验证单元验证后将鉴权结果返回鉴权模块。
21.根据权利要求20所述的鉴权方法,其特征在于,当所述鉴权中心保存设备信息列表,所述方法还包括挂失的步骤:
步骤S1)用户通过新的设备使用第二鉴权方式或其它身份认证手段认证用户身份;
步骤S2)所述鉴权中心验证用户身份,认证通过后,所述鉴权中心向用户展示设备信息列表;
步骤S3)用户从设备信息列表中选择需要挂失的设备,并告知鉴权中心;
步骤S4)所述鉴权中心将对应的设备硬件信息存放入设备锁定列表中,存放期限为永久或者失效日。
22.根据权利要求20所述的鉴权方法,其特征在于,当所述鉴权中心保存设备硬件信息,所述方法还包括挂失的步骤:
步骤S1′)用户通过新的设备使用第二鉴权方式或其他身份认证手段认证用户身份;
步骤S2′)所述鉴权中心验证用户身份,认证通过后,鉴权中心将数据库中该用户的账户对应的所有的设备硬件信息和客户端标签删除;
步骤S3′)该账户的所有设备绑定都已失效,所有设备重新进行设备绑定流程。
23.根据权利要求21或22所述的鉴权方法,其特征在于,执行挂失的步骤后,当时间到了失效时间的时候,设备挂失自行解除;当鉴权中心中设置客户端标签列表,则在设备挂失自行解除之前,所述方法还进一步包括解除挂失的步骤:
步骤T1))用户通过新的设备使用第二鉴权方式或其他身份认证手段认证用户身份;
步骤T2)所述鉴权中心验证用户身份,认证通过后,鉴权中心向用户展示设备锁定列表;
步骤T3)用户从设备锁定列表中选择需要解除挂失的设备,并告知鉴权中心;
步骤T4)所述鉴权中心将对应的设备硬件信息与客户端标签放入客户端锁定列表中,存放期限为永久或者失效日期,同时将对应的设备硬件信息从设备锁定列表中删除;
步骤T5)待解除挂失的设备彻底删除原有的客户端标签,然后生成新的客户端标签,然后重新进行设备绑定。
24.一种鉴权系统,所述系统包括:鉴权模块和鉴权中心;所述鉴权模块运行在客户端,所述鉴权中心运行在服务端;其特征在于,
所述鉴权中心,用于基于一个或多个鉴权因子生成鉴权标识,所述鉴权因子由鉴权模块发送给鉴权中心或者由鉴权中心生成;还用于基于该鉴权标识生成鉴权私钥,并将鉴权标识和鉴权私钥发送给鉴权模块;还用于依据鉴权标识的内容,对鉴权标识进行全部存储、部分存储或全部删除的操作;还用于对鉴权模块发送的鉴权请求进行验证;
所述鉴权模块,用于依据鉴权标识的内容,对鉴权标识进行全部存储、部分存储或全部删除的操作;还用于向所述鉴权中心发送鉴权请求;
所述鉴权中心删除鉴权私钥;所述鉴权模块存储鉴权私钥;
所述鉴权模块向所述鉴权中心发送鉴权请求,所述鉴权中心对所述鉴权请求进行验证;具体包括:
所述鉴权模块接收鉴权中心发送一个挑战,或生成一个挑战;
所述鉴权模块使用完整的鉴权标识和鉴权私钥,通过IBC签名算法对所述挑战进行签名,得到数字签名,然后将所述挑战、鉴权标识和数字签名发送给鉴权中心;
所述鉴权中心通过鉴权标识和IBC验签算法验证数字签名;以验签通过作为鉴权通过的必要条件之一,得到鉴权结果;
所述鉴权中心将鉴权结果发送给鉴权模块。
25.根据权利要求24所述的鉴权系统,其特征在于,所述鉴权模块包括:IBC载入单元、账户生成单元、私钥请求单元、第一存储单元和鉴权请求单元;
所述IBC载入单元,用于载入鉴权中心公开的公共参数;
所述账户生成单元,用于生成鉴权模块的账户名;
所述第一存储单元,用于存储鉴权标识和/或鉴权私钥;
所述私钥请求单元,用于向鉴权中心发送鉴权因子;
所述鉴权请求单元,用于向鉴权中心发送鉴权请求,还用于接收鉴权中心发送的鉴权结果。
26.根据权利要求24或25所述的鉴权系统,其特征在于,所述鉴权中心包括:IBC初始化单元、鉴权标识生成单元、鉴权私钥生成单元、第二存储单元和鉴权验证单元;
所述IBC初始化单元,用于选择一种IBC算法,并建立一个该算法的私钥生成器PKG,使用PKG进行初始化,生成一组主密钥和公共参数,将公共参数公开;
所述鉴权标识生成单元,用于根据鉴权模块发送的鉴权因子生成鉴权标识;
所述鉴权私钥生成单元,用于以鉴权标识作为ID,通过IBC初始化单元生成的PKG和主密钥生成鉴权私钥;然后将鉴权标识和鉴权私钥发送给鉴权模块;
所述第二存储单元:用于存储IBC初始化单元生成的主密钥;
所述鉴权验证单元:用于接收鉴权模块的鉴权请求,以鉴权标识作为ID使用IBC验签算法验证数字签名,以及将鉴权结果发送给鉴权模块。
CN201810840575.2A 2018-05-17 2018-07-27 一种鉴权方法及鉴权系统 Active CN108900309B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/CN2019/096040 WO2020020008A1 (zh) 2018-05-17 2019-07-15 一种鉴权方法及鉴权系统

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN2018104725111 2018-05-17
CN201810472511 2018-05-17

Publications (2)

Publication Number Publication Date
CN108900309A CN108900309A (zh) 2018-11-27
CN108900309B true CN108900309B (zh) 2020-08-18

Family

ID=64352695

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201810840575.2A Active CN108900309B (zh) 2018-05-17 2018-07-27 一种鉴权方法及鉴权系统
CN201910065214.XA Pending CN109547503A (zh) 2018-05-17 2019-01-23 生物特征识别方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201910065214.XA Pending CN109547503A (zh) 2018-05-17 2019-01-23 生物特征识别方法

Country Status (2)

Country Link
CN (2) CN108900309B (zh)
WO (1) WO2020020008A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108900309B (zh) * 2018-05-17 2020-08-18 北京岸思信息科技有限公司 一种鉴权方法及鉴权系统
CN110099065A (zh) * 2019-05-10 2019-08-06 北京百度网讯科技有限公司 物联网设备及认证方法、云服务器、处理设备、可读介质
CN110321682B (zh) * 2019-07-08 2021-10-22 国网电子商务有限公司 一种基于uaf和ibc的统一身份认证方法及装置
CN110795174B (zh) * 2019-10-31 2023-03-14 成都西加云杉科技有限公司 一种应用程序接口调用方法、装置、设备及可读存储介质
CN111723163B (zh) * 2020-07-30 2024-03-29 腾讯科技(深圳)有限公司 一种信息处理方法、装置及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1530315A1 (en) * 2003-11-05 2005-05-11 Openwave Systems Inc. System and method for authentication of applications in a non-trusted network environment

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0980559A4 (en) * 1997-05-09 2004-11-03 Gte Service Corp BIOMETRIC CERTIFICATES
US7523314B2 (en) * 2003-12-22 2009-04-21 Voltage Security, Inc. Identity-based-encryption message management system
EP1730881B1 (en) * 2004-03-30 2010-10-13 Dublin City University Verification of identity based signatures
US7370202B2 (en) * 2004-11-02 2008-05-06 Voltage Security, Inc. Security device for cryptographic communications
CN1905438B (zh) * 2006-08-15 2010-05-12 华为技术有限公司 一种基于标识的组合密钥管理方法和系统
KR20070026285A (ko) * 2006-12-27 2007-03-08 학교법인 대전기독학원 한남대학교 단말대 단말 통신에서 휴대폰 채널(문자서비스)을 이용한전자서명 인증 전달 방법
CN101098232B (zh) * 2007-07-12 2012-05-09 兰州大学 一种动态口令与多生物特征结合的身份认证方法
CN101521569B (zh) * 2008-02-28 2013-04-24 华为技术有限公司 实现服务访问的方法、设备及系统
US8423783B2 (en) * 2009-11-27 2013-04-16 International Business Machines Corporation Secure PIN management of a user trusted device
US9887989B2 (en) * 2012-06-23 2018-02-06 Pomian & Corella, Llc Protecting passwords and biometrics against back-end security breaches
CN103634265B (zh) * 2012-08-20 2019-01-11 腾讯科技(深圳)有限公司 安全认证的方法、设备及系统
CN103049850A (zh) * 2013-01-05 2013-04-17 深圳市中兴移动通信有限公司 一种基于nfc的移动支付终端、系统及其支付方法
CN103248488B (zh) * 2013-05-14 2017-04-19 顾纯祥 一种基于身份的密钥生成方法和认证方法
CN103607282B (zh) * 2013-11-22 2017-03-15 成都卫士通信息产业股份有限公司 一种基于生物特征的身份融合认证方法
CN104618120B (zh) * 2015-03-04 2018-01-23 青岛微智慧信息有限公司 一种移动终端密钥托管数字签名方法
CN106713236A (zh) * 2015-11-17 2017-05-24 成都腾甲数据服务有限公司 一种基于cpk标识认证的端对端身份认证及加密方法
CN106506168A (zh) * 2016-12-07 2017-03-15 北京信任度科技有限公司 一种安全的基于生物特征远程身份认证的方法
CN108900309B (zh) * 2018-05-17 2020-08-18 北京岸思信息科技有限公司 一种鉴权方法及鉴权系统

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1530315A1 (en) * 2003-11-05 2005-05-11 Openwave Systems Inc. System and method for authentication of applications in a non-trusted network environment

Also Published As

Publication number Publication date
CN108900309A (zh) 2018-11-27
WO2020020008A1 (zh) 2020-01-30
CN109547503A (zh) 2019-03-29

Similar Documents

Publication Publication Date Title
CN108900309B (zh) 一种鉴权方法及鉴权系统
CN110535628B (zh) 通过证书签发进行多方安全计算的方法及装置
KR100827650B1 (ko) 그룹에 참여하도록 초대된 잠재적 회원을 인증하는 방법
US7793340B2 (en) Cryptographic binding of authentication schemes
US20190052622A1 (en) Device and method certificate generation
US7571489B2 (en) One time passcode system
US20140270179A1 (en) Method and system for key generation, backup, and migration based on trusted computing
CN106341232B (zh) 一种基于口令的匿名实体鉴别方法
CN102984127A (zh) 一种以用户为中心的移动互联网身份管理及认证方法
CN105915338B (zh) 生成密钥的方法和系统
CN102404347A (zh) 一种基于公钥基础设施的移动互联网接入认证方法
CN113746632B (zh) 一种物联网系统多级身份认证方法
CN110808991B (zh) 一种安全通信连接的方法、系统、电子设备及存储介质
CN112039918B (zh) 一种基于标识密码算法的物联网可信认证方法
Frymann et al. Asynchronous remote key generation: An analysis of yubico's proposal for W3C webauthn
CN109587100A (zh) 一种云计算平台用户认证处理方法及系统
CN114760065A (zh) 一种在线学习平台教学资源共享的访问控制方法及装置
CN112733129B (zh) 一种服务器带外管理的可信接入方法
CN114499876A (zh) 基于区块链以及NB-IoT芯片的物联网数据存证方法
Liou et al. T-auth: A novel authentication mechanism for the IoT based on smart contracts and PUFs
CN112926983A (zh) 一种基于区块链的存证交易加密系统及方法
WO2023174350A1 (zh) 身份认证方法、装置、设备及存储介质
CN111460463A (zh) 电子存证保存和公证方法、装置、设备及存储介质
CN115348077A (zh) 一种虚拟机加密方法、装置、设备、存储介质
Bavishi et al. Scalable and efficient mutual authentication strategy in fog computing

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