CN111682941B - 基于密码学的集中式身份管理、分布式认证与授权的方法 - Google Patents
基于密码学的集中式身份管理、分布式认证与授权的方法 Download PDFInfo
- Publication number
- CN111682941B CN111682941B CN202010418455.0A CN202010418455A CN111682941B CN 111682941 B CN111682941 B CN 111682941B CN 202010418455 A CN202010418455 A CN 202010418455A CN 111682941 B CN111682941 B CN 111682941B
- Authority
- CN
- China
- Prior art keywords
- user
- authentication
- data
- authentication server
- authorization
- 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
- 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/3263—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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
- G06F21/32—User authentication using biometric data, e.g. fingerprints, iris scans or voiceprints
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
- G06F21/41—User authentication where a single sign-on provides access to a plurality of computers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
- G06F21/6254—Protecting personal data, e.g. for financial or medical purposes by anonymising data, e.g. decorrelating personal data from the owner's identification
-
- 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
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- 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/3226—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 using a predetermined code, e.g. password, passphrase or PIN
- H04L9/3231—Biological data, e.g. fingerprint, voice or retina
-
- 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)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biodiversity & Conservation Biology (AREA)
- Biomedical Technology (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及一种基于密码学的集中式身份管理、分布式认证与授权的系统,其特征在于,包括:认证服务器;认证凭证服务器;应用服务器;客户端。本发明的另一个技术方案是提供了一种新用户增加方法,其特征在于,包括以下步骤:本发明的另一个技术方案是提供了一种用户信息的更改方法。本发明的另一个技术方案是提供了一种用户或者用户信息的删除方法。本发明的另一个技术方案是提供了一种用户的认证授权方法。
Description
技术领域
本发明涉及一种基于密码学的分布式认证与授权的方法,属于软件、区块链、物联网、云计算、安全领域。
背景技术
鉴权(authentication)是指验证用户是否拥有访问系统的权利。传统的鉴权是通过密码来验证的。这种方式的前提是,每个获得密码的用户都已经被授权。在建立用户时,就为此用户分配一个密码,用户的密码可以由管理员指定,也可以由用户自行申请。这种方式的弱点十分明显:一旦密码被偷或用户遗失密码,情况就会十分麻烦,需要管理员对用户密码进行重新修改,而修改密码之前还要人工验证用户的合法身份。
授权(Authorization)发生在认证成功之后,系统在执行具体的功能模块之前,其简要的流程如下:(1)获取用户的登录信息(from Cookie or Session)。(2)通过模块唯一标识和用户角色信息获取当前用户在当前模块的权限。(3)把用户当前模块的权限信息写入上下文(Context)中。避免一个请求多次读取权限信息,后面的操作就可以直接从上下文中获取。
鉴权与授权都涉及到系统与用户的私密信息,在很多情况下鉴权与授权是一个概念。现有系统一般通过集中式的认证服务来规避私密信息的泄露与保护。也就是说在有多个应用程序的系统中,应用程序通过网络与集中式的认证服务进行连接,完成鉴权与授权。
集中式鉴权与授权,又称为集中式认证服务(英语:Central AuthenticationService,缩写CAS)是一种针对万维网的单点登录协议。它的目的是允许一个用户访问多个应用程序,而只需提供一次凭证(如用户名和密码)。它还允许web应用程序在没有获得用户的安全凭据(如密码)的情况下对用户进行身份验证。CAS协议涉及到至少三个方面:客户端(例如Web浏览器)、身份验证(例如Web应用请求)和CAS服务器。它还可能涉及一个后台服务(例如数据库服务器),CAS通过诸如HTTP接口与应用程序(例如Web应用程序)进行通信。当客户端访问应用程序,请求身份验证时,应用程序重定向到CAS。CAS验证客户端是否被授权,通常通过在数据库对用户名和密码进行检查(例如Kerberos、LDAP或ActiveDirectory)。如果身份验证成功,CAS令客户端返回到应用程序,并传递身份验证票(Security ticket)。然后,应用程序通过安全链接连接CAS,并提供自己的服务标识和验证票。之后CAS给出了关于特定用户是否已成功通过身份验证的应用程序授信信息。CAS允许通过代理服务器进行多层身份验证。后端服务(如数据库或邮件服务器)可以组成CAS,通过从Web应用程序接收到的信息验证用户是否被授权。因此,网页邮件客户端和邮件服务器都可以实现CAS,CAS的工作流程如图1所示。
结合图1,CAS简要的工作流程如下:
步骤1、客户端(以下简称C)发送登录请求给应用程序服务器端(W),该请求中不包含私密信息。
步骤2、W返回给C一个CAS服务器的地址(以下简称A)。
步骤3、C通过A访问CAS,在访问的过程中A需要提供私密信息给CAS,以通过CAS的认证。
步骤4、CAS通过认证之后,返回给C一个凭证(以下简称T)。
步骤5、C将T交给W
步骤6、W通过T访问CAS,在访问CAS的过程中,W需要提供T。
步骤7、CAS返回W需要的数据给W。
CAS解决了多个服务程序的单点登录问题,在一个中心化的位置维护敏感信息,既减少了维护的复杂度,又减少了数据的暴露面,提高了数据安全。但是CAS具有如下问题:
1.数据存在频繁交互。在上述过程中,C、W以及CAS之间存在4次访问(C与W,C与CAS,C与W,W与CAS)。频繁的交互增加了服务时间,降低服务质量。
2.认证的过程需要W、C与CAS进行通讯的强连接。C、W与CAS之间确保通讯的通畅,如果C与CAS或者W与CAS之间出现通讯中断的情况,会导致认证出现问题。
3.认证的过程需要CAS具备强活性。由于认证的过程需要CAS一直参与,所以需要CAS一直保持在线。
4.容易使得CAS遭受攻击。由于CAS是一个在线服务,特别是W需要使用C提供的T对CAS访问,软件上的漏洞容易使得CAS被攻击。
5.隐私漏洞。根据现有的设计,W与直接访问CAS来获取用户的信息,CAS设计上的漏洞容易使得W可以获取到更多的用户信息。
6.频繁的认证易造成认证服务器压力。
集中式认证(CAS)带来的优势是用户数据的集中化处理,该处理方式同时带来了存储效率的提高。由于用户数据只有一份拷贝(存储于CAS上),应用服务器不需要维护用户数据,降低了应用服务器的存储需求,提高了安全性与隐私保护。
针对目前集中式认证的问题,目前有如下的专利在尝试解决该问题:
CN100550738C提出了一种分布式认证的方法,该方法使用通过增加一个远端代理的方式来提供分布式认证的能力。该方式存在如下缺点:需要在代理端增加数据库存放认证数据,容易造成数据隐私泄露;该方式需要在应用服务器侧提供存储能力,如果用户数据过大则导致应用程序侧的数据比较大,会带来存储压力以及通讯压力。
CN102143134A提出了一种分布式认证的方法与系统,该系统与CAS具有较大的相似性。
CN106375317A提出了一种基于区块链的大数据认证方式,该方式完全沿袭区块链的处理方式,效率低下。
传统的分布式认证,通过将用户数据推送到应用服务器已达到认证与授权的目的,典型的系统如图2所示.
如图2所示,认证服务器(S)直接将全部用户数据或者部分用户数据推送给应用程序服务器,C直接与W完成认证过程。当存在多个应用程序时,会导致每个应用程序都会拥有用户数据的部分或者是全部拷贝。由于用户数据全部或者部分位于应用程序服务器,导致敏感数据的暴露面大,易造成用户数据信息泄露。
集中式认证(CAS)带来的优势是用户数据的集中化处理,该处理方式同时带来了存储效率的提高。由于用户数据只有一份拷贝(存储于CAS上),应用服务器不需要维护用户数据,降低了应用服务器的存储需求,提高了安全性与隐私保护。
目前的分布式认证,采用了将用户数据直接推送给代理服务器的方式,该方式增加了代理服务器的存储需求。特别的,在一些环境中,例如零信任网络中,用户的每一次访问都要被认证以及授权,导致每个服务器都需要存储用户数据,造成了极大的浪费。
另外在一些存储受限的场合,例如一下IOT设备上,设备本身的存储受限,也导致不能存放过多的用户数据。
发明内容
本发明要解决的技术问题是:分布式认证预授权过程中存在的隐私问题以及认证数据存储问题。
为了解决上述技术问题,本发明的技术方案是提供了一种基于密码学的集中式身份管理、分布式认证与授权的系统,其特征在于,包括:
认证服务器,至少用于:
a)根据用户的权限数据与用户的认证数据,通过哈希的方式生成用户唯一的用户ID,以及该ID完成认证所需要的信息;
b)根据用户ID以及用户数据生成全部用户的指纹;
c)为每个用户生成用户ID在上述数据指纹中的证据;
d)增加、更新、删除用户,以及用户的授权数据;
认证凭证生成服务器,至少用于存储认证服务器生成的用户ID与证据,以及所有的不含有敏感信息的中间状态数据,同时,至少用于完成全部用户指纹的发布、更新;
应用服务器,与认证凭证服务器进行连接,用于订阅认证凭证服务器的全部用户指纹的更新;
客户端,至少保存如下信息:
a)客户端ID,以及客户端存在于全部用户指纹中的证据。
b)客户端的密码方式。
优选地,所述应用服务器与所述认证凭证服务器保持间断连接,所述应用服务器订阅所述认证凭证服务器的全部用户指纹的更新的过程通过懒惰订阅的方式进行。
本发明的另一个技术方案是提供了一种基于上述的基于密码学的集中式身份管理、分布式认证与授权的系统的新用户增加方法,其特征在于,包括以下步骤:
步骤101、用户向系统提交用户数据,该用户数据包含基本的用户信息;
步骤102、认证服务器根据用户提供的用户数据以及用户的认证信息,生成用户的用户ID;
步骤103、认证服务器根据每个用户的用户ID,将用户插入到密码累加器中,密码累加器最终输出用户授权签名User-set-Signature;
步骤104、认证服务器等待一定的时间T,在时间T内,重复执行步骤102及步骤103,认证服务器为接收到用户数据的新用户生成对应的用户ID,并输出对应的用户授权签名User-set-Signature;
步骤105、当T超时之后,认证服务器为收到用户数据的所有用户统一生成用户指纹证据,该用户指纹证据用于证明用户属于当前的用户授权签名User-set-Signature;
步骤106、认证服务器将用户数据以及证据信息发送给最终用户。
优选地,步骤106中,在发送的过程中,使用非对称加密的方式进行发送以确保发送的信息安全。
本发明的另一个技术方案是提供了一种基于上述的基于密码学的集中式身份管理、分布式认证与授权的系统的用户信息的更改方法,其特征在于,包括以下步骤:
步骤201、用户向认证服务器提交更改请求以及需要更改的数据;
步骤202、认证服务器基于更改请求确认用户是否有效,同时,判断需要更改的数据是否有效,若均有效,则进入下一步;
步骤203、认证服务器根据需要更改的数据中所包含的新的用户信息重新生成新的用户ID;
步骤204、认证服务器根据针对当前用户所生成的新的用户ID以及已有的用户ID,将新的用户ID增加到密码累加器中,并在密码累加器中删除已有的用户ID;
步骤205、认证服务器需要等待一定的时间T,在时间T内,重复执行步骤204,认证服务器为接收到的所有更改请求以及需要更改的数据生成新的用户ID增加到密码累加器中,并在密码累加器中删除所有已有的用户ID;
步骤206、当T超时之后认证服务器为所有的用户统一生成用户指纹证据;
步骤207、认证服务器将授权数据以及用户的基本信息以及证据等信息通过非对称加密的方式或者是加密的信道将数据发送给最终用户。
本发明的另一个技术方案是提供了一种基于上述的基于密码学的集中式身份管理、分布式认证与授权的系统的用户或者用户信息的删除方法,其特征在于,包括以下步骤:
步骤301、用户向认证服务器提交更改请求以及需要删除的数据,或者向认证服务器提交更改请求以及需要删除的用户;
步骤302、若用户向认证服务器提交的是需要删除的数据,则认证服务器基于更改请求确认用户是否有效,同时,判断需要更改的数据是否有效,若均有效,则进入下一步;
若用户向认证服务器提交的是需要删除的用户,则认证服务器基于更改请求确认用户是否有效,同时,判断需要删除的用户是否有效,若均有效,则进入下一步;
步骤303、若用户向认证服务器提交的是需要删除的用户,则进入步骤306,若用户向认证服务器提交的是需要删除的数据,则进入步骤304;
步骤304、认证服务器根据需要删除的数据中所包含的新的用户信息重新生成新的用户ID;
步骤305、认证服务器根据针对当前用户所生成的新的用户ID以及已有的用户ID,将新的用户ID增加到密码累加器中,并在密码累加器中删除已有的用户ID,进入步骤307;
步骤306、在密码累加器中删除需要删除的用户所对应的已有的用户ID;
步骤307、认证服务器需要等待一定的时间T,在时间T内,重复执行步骤303、304、305、306,认证服务器为接收到的所有更改请求以及需要删除的数据生成新的用户ID增加到密码累加器中,并在密码累加器中删除所有已有的用户ID,或者认证服务器为接收到的所有更改请求以及需要删除的用户在密码累加器中删除所有已有的用户ID;
步骤308、当T超时之后认证服务器会为所有的新的用户统一生成用户指纹证据;
步骤309、认证服务器将授权数据以及用户的基本信息以及证据等信息通过非对称加密的方式将数据发送给最终用户。
本发明的另一个技术方案是提供了一种基于上述的基于密码学的集中式身份管理、分布式认证与授权的系统的用户的认证授权方法,其特征在于,包括以下步骤:
步骤401、用户获取最新的用户授权签名user-set-signature以及用户自身的证据;
步骤402、用户向应用服务器提交认证与授权请求;
步骤403、应用服务器接收到认证与授权请求后生成随机数,并将随机数与所需的权限发送给用户;
步骤404、用户使用私钥对用户授权签名user-set-signature、用户ID、用户自身的证据、权限的证明过程、权限信息以及应用服务器生成的随机数进行签名,发送给应用服务器;
步骤405、验证用户提交的用户授权签名user-set-signature有效性,若验证通过,则进入下一步,否则,进入步骤4013;
步骤406、根据用户ID判断用户是否在用户授权签名user-set-signature中,若在,则进入下一步,否则,进入步骤4013;
步骤407、判断用户上传的随机数是否与步骤403中生成的随机数一致,若一致,则进入下一步,否则,进入步骤4013;
步骤408、判断用户的公钥是否在用户ID中,若是,则进入下一步,否则,进入步骤4013;
步骤409、使用用户的公钥判断用户的签名是否有效,若是,则进入下一步,否则,进入步骤4013;
步骤4010、判断用户的权限的证明过程是否有效,若是,则进入下一步,否则,进入步骤4013;
步骤4011、判断用户的权限信息是否满足要求,若是,则进入步骤4012,否则,进入步骤4013;
步骤4012、认证授权通过;
步骤4013、认证授权失败。
本专利所阐述的方法解决了如下问题:
1.认证数据的隐私问题:在应用服务器中,存储的是user-set-signature,如前所述,该数据中公有的,不含有任何的用户具体数据信息的信息。攻击者获取到该信息之后,并不能从该信息中获取到任何有效信息。在用户侧,用户直接控制授权数据,清晰明了,用户可以自己决策哪些数据可以授权给应用服务器,这种方式跟传统的应用服务器与认证服务器直接对接的方式相比,用户更能控制数据的隐私。
2.降低传统的分布式认证对于应用服务器的存储的需求:本发明中所阐述的应用服务器只需要存储user-set-signature以及认证服务器的公钥,这两者加起来不会超过1000字节。更加重要的,该数据与具体的用户数没有直接关系。
3.该发明所阐述的认证授权方式性能卓越:在大概率情况下,本发明所阐述的认证方式只需要跟应用服务器进行两次通讯(其中一次通讯是为了获取随机数而保证安全)就可以完成全部认证。跟集中式的方式相比,交互的次数大大降低。另外在具体计算方面,本发明的认证方式需要计算一次签名验证以及两次存在性验证。
附图说明
图1为CAS的工作流程图;
图2为传统的分布式认证系统示意图;
图3为本发明的主要架构图;
图4为新用户的增加流程的流程图;
图5为生成用户ID时约定的数据结构;
图6为密码累加器的结构;
图7为用户指纹证据生成形式;
图8为用户需要保存的指纹证据的结构,阴影部分为需要保存的数据;
图9为用户信息更改流程的流程图;
图10为用户或者用户信息的删除流程的流程图;
图11为用户的认证授权流程的流程图。
具体实施方式
下面结合具体实施例,进一步阐述本发明。应理解,这些实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定的范围。
如图3所示,本发明所描述的系统由以下几个模块组成:
1.认证服务器:认证服务器与集中式认证的认证服务器(以下简称为“集中服务器”)相比,除了具有集中服务器的功能之外,还需要增加如下功能:
a)能够根据用户的权限数据与用户的认证数据,通过哈希的方式生成用户唯一的用户ID。该用户ID的生成根据不同的算法可以生成不同的用户ID,例如可以根据国密的SM3生成用户ID,或者是根据商密的SHA256等算法生成相应的用户ID。
b)能够根据用户ID生成全部用户的指纹数据,该指纹具有数据量小(32字节到几K字节不等),安全(通过严格的数学认证)等特点。
c)为每个用户生成用户ID在数据指纹中的证据。
d)能够增加、更新、删除用户,以及用户的授权数据等。
2.认证凭证服务器:认证凭证服务器不需要存储敏感数据,但是需要存储认证服务器生成的用户ID与证据,以及所有的不含有敏感信息的中间状态数据等。此外用户的认证凭证服务器还需要完成全部用户指纹的发布、更新等。
3.应用服务器:与集中服务器不同的是,应用服务器不与认证服务器直接进行连接,而是与认证凭证服务器进行连接。此外,应用服务器不需要与认证凭证服务器保持持续连接,而是需要订阅认证凭证服务器的全部用户指纹的更新。该过程可以通过懒惰订阅(只有当由用户提供认证的时候才去更新全部用户指纹)的方式减少通讯。
4.客户端:与集中服务器相比,客户端需要保存如下信息:
a)客户端ID,以及客户端存在于全部用户指纹中的证据。
b)客户端的非对称加密或者是其他等价的密码方式。
本发明提供的一种基于密码学的集中式身份管理、分布式认证与授权的方法涉及多个主体,包括客户端、集中认证服务器、认证凭证服务器以及应用服务器等元素,交互较为复杂。为了能够清晰的描述系统中的交互关系,围绕用户把整个流程划分为如下几个流程:
1.新用户的增加流程:该流程描述了增加新用户对整个系统的影响;
2.用户信息更改流程:该流程采用秘钥式的转账方式;
3.描述了用户信息更改对于系统的影响;
4.用户或者用户信息的删除流程:该流程描述了删除用户的流程;
5.用户的认证授权流程:该流程描述了用户与应用服务器之间通过本发明所描述的方式进行认证授权的流程。
一)新用户的增加流程
如图4所示,新用户的增加流程包括如下内容:
1.用户(C)向系统提交用户数据,该用户数据包含基本的用户信息。这部分数据在某些系统中也可以由系统管理员提供。
2.认证服务器根据用户提供的用户数据以及用户的认证信息,生成用户的用户ID。生成该用户ID方式,根据不同的算法的不同可以有多种方式。特别的在本发明中我们以默克尔树为例进行说明。本发明所阐述的方法同样适用于RSA累加器、双线性累加器等。
在生成用户ID时,我们约定的数据结构如图5所示。
在图5中,Root-Hash就是用户的用户ID。任何用户数据的变化,都会引起这个,Root-Hash的变化。
3.认证服务器根据每个用户的用户ID,将用户插入到密码累加器中。密码累加器的结构(以默克尔树为例)如图6所示。图6所示的累加器的最终输出为User-set-Signature。
4.认证服务器需要收集到所有的用户的注册信息之后,才能为所有的用户统一生成证据,所以在我们的方法中认证服务器需要等待一定的时间T,当T超时之后认证服务器会为所有的用户统一生成数据。
5.认证服务器还需要为每个用户生成用户指纹证据,该用户指纹证据用于证明用户属于当前的User-set-Signature。用户的用户指纹证据通过如图7所示形式生成。
图7中的用户1的用户指纹证据如下:
(user-root-hash-1,user-root-hash-2,hash-2,hash-6)
验证过程如下:用户信息更改流程
H(H(H(user-root-hash-1,user-root-hash-2),hash-2),hash-6)=user-set-signature
由图8所示的结构构成。
6.认证服务器将用户数据以及证据信息发送给最终用户。在发送的过程中,可使用非对称加密的方式进行发送以确保发送的信息安全。
二)用户信息更改流程
用户信息的更改的流程如图9所示,包括以下内容:
1.用户向认证服务器提交更改请求以及需要更改的数据。
2.认证服务器基于更改请求确认用户是否有效,同时,判断需要更改的数据是否有效。若均有效,则进入下一步。
3.认证服务器根据需要更改的数据中所包含的新的用户信息重新生成新的用户ID。
4.认证服务器根据针对当前用户所生成的新的用户ID以及已有的用户ID,将新的用户ID增加到密码累加器中,并在密码累加器中删除已有的用户ID。
5.认证服务器需要等待一定的时间T,在时间T内,重复执行步骤4,认证服务器为接收到的所有更改请求以及需要更改的数据生成新的用户ID增加到密码累加器中,并在密码累加器中删除所有已有的用户ID。
6.当T超时之后认证服务器会为所有的用户统一生成用户指纹证据。
7.认证服务器将授权数据以及用户的基本信息以及证据等信息通过用户的公钥将数据发送给最终用户。
用户信息更改流程与用户信息增加的流程的差异体现在用户信息的更新需要首先对原有用户进行认证,并且需要在累加器中删除原有用户的ID信息。然后在认证服务器超时的时刻为所有的用户生成证据。
三)用户或者用户信息的删除流程
用户或者是用户信息的删除流程如图10所示,包括以下内容:
1.用户向认证服务器提交更改请求以及需要删除的数据,或者向认证服务器提交更改请求以及需要删除的用户。
2.若用户向认证服务器提交的是需要删除的数据,则认证服务器基于更改请求确认用户是否有效,同时,判断需要更改的数据是否有效。若均有效,则进入下一步。
若用户向认证服务器提交的是需要删除的用户,则认证服务器基于更改请求确认用户是否有效,同时,判断需要删除的用户是否有效。若均有效,则进入下一步。
3.若用户向认证服务器提交的是需要删除的用户,则进入步骤6,若用户向认证服务器提交的是需要删除的数据,则进入步骤4。
4.认证服务器根据需要删除的数据中所包含的新的用户信息重新生成新的用户ID。
5.认证服务器根据针对当前用户所生成的新的用户ID以及已有的用户ID,将新的用户ID增加到密码累加器中,并在密码累加器中删除已有的用户ID,进入步骤7。
6.在密码累加器中删除需要删除的用户所对应的已有的用户ID。
7.认证服务器需要等待一定的时间T,在时间T内,重复执行步骤3、4、5、6,认证服务器为接收到的所有更改请求以及需要删除的数据生成新的用户ID增加到密码累加器中,并在密码累加器中删除所有已有的用户ID,或者认证服务器为接收到的所有更改请求以及需要删除的用户在密码累加器中删除所有已有的用户ID。
8.当T超时之后认证服务器会为所有的新的用户统一生成用户指纹证据。
9.认证服务器将授权数据以及用户的基本信息以及证据等信息通过用户的公钥将数据发送给最终用户。
用户在删除时,可以删除用户数据与删除全部用户。当删除部分用户数据时,我们认为这是一个数据更新,在删除全部用户时,我们需要在user-set-dignature中删除用户ID。
四)用户的认证授权流程
在理解用户的分布式认证授权流程之前,我们先来理解应用服务器需要存储的内容:应用服务器仅仅需要存储认证凭证服务器发布的用户授权签名user-set-signature,这带来了两个主要的优势:
1.认证授权数据小型化。以默克尔树为例,这部分的数据的大小与用户数无关,大小不超过200bytes。
2.认证授权数据的隐私化:用户授权签名user-set-signature是公开的数据,内部不含有任何的用户具体的用户数据信息,使用者(应用服务器)不能从这个数据中获得任何具体的用户数据信息。
用户的认证授权流程如图11所示,包括以下内容:
1.用户获取最新的用户授权签名user-set-signature以及用户自身的证据。
2.用户向应用服务器提交认证与授权请求。
3.应用服务器接收到认证与授权请求后生成随机数,并将随机数与所需的权限发送给用户。
4.用户使用私钥对用户授权签名user-set-signature、用户ID、用户自身的证据、权限的证明过程、权限信息以及应用服务器生成的随机数进行签名,发送给应用服务器。
5.验证用户提交的用户授权签名user-set-signature有效性,若验证通过,则进入下一步,否则,进入步骤13。
6.根据用户ID判断用户是否在用户授权签名user-set-signature中,若在,则进入下一步,否则,进入步骤13。
7.判断用户上传的随机数是否与步骤3中生成的随机数一致,若一致,则进入下一步,否则,进入步骤13。
8.判断用户的公钥是否在用户ID中,若是,则进入下一步,否则,进入步骤13。
9.使用用户的公钥判断用户的签名是否有效,若是,则进入下一步,否则,进入步骤13。
10.判断用户的权限的证明过程是否有效,若是,则进入下一步,否则,进入步骤13。
11.判断用户的权限信息是否满足要求,若是,则进入步骤12,否则,进入步骤13。
12.认证授权通过。
13.认证授权失败。
该认证流程包含三个主要组成部分:
1.确认user-set-signature真实有效:通过user-set-signature的签名,版本信息,超时信息等进行确认。
2.确认用户ID在user-set-signature中,该过程通过认证服务器提供的证明过程完成。
3.确认用户拥有用户ID。通过用户ID中的公钥,以及用户对数据的签名来确定。
Claims (7)
1.一种基于密码学的集中式身份管理、分布式认证与授权的系统,其特征在于,包括:
认证服务器,至少用于:
a)根据用户的权限数据与用户的认证数据,通过哈希的方式生成用户唯一的用户ID,以及该ID完成认证所需要的信息;
b)根据用户ID以及用户数据生成全部用户指纹;
c)为每个用户生成用户ID在上述指纹中的证据;
d)增加、更新、删除用户以及用户的授权数据;
认证凭证生成服务器,至少用于存储认证服务器生成的用户ID与证据,以及所有的不含有敏感信息的中间状态数据,同时,至少用于完成全部用户指纹的发布、更新;
应用服务器,与认证凭证生成服务器进行连接,用于订阅认证凭证生成服务器的全部用户指纹的更新;
客户端,至少保存如下信息:
a)客户端ID,以及客户端存在于全部用户指纹中的证据;
b)客户端的密码方式。
2.如权利要求1所述的一种基于密码学的集中式身份管理、分布式认证与授权的系统,其特征在于,所述应用服务器与所述认证凭证生成服务器保持间断连接,所述应用服务器通过懒惰订阅的方式订阅所述认证凭证生成服务器的全部用户指纹的更新的过程。
3.基于权利要求1所述的基于密码学的集中式身份管理、分布式认证与授权的系统的新用户增加方法,其特征在于,包括以下步骤:
步骤101、用户向系统提交用户数据,该用户数据包含基本的用户信息;
步骤102、认证服务器根据用户提供的用户数据以及用户的认证信息,生成用户的用户ID;
步骤103、认证服务器根据每个用户的用户ID,将用户插入到密码累加器中,密码累加器最终输出用户授权签名User-set-Signature;
步骤104、认证服务器等待一定的时间T,在时间T内,重复执行步骤102及步骤103,认证服务器为接收到用户数据的新用户生成对应的用户ID,并输出对应的用户授权签名User-set-Signature;
步骤105、当T超时之后,认证服务器为收到用户数据的所有用户统一生成用户指纹证据,该用户指纹证据用于证明用户属于当前的用户授权签名User-set-Signature;
步骤106、认证服务器将用户数据以及用户指纹证据信息发送给最终用户。
4.如权利要求3所述的基于密码学的集中式身份管理、分布式认证与授权的系统的新用户增加方法,其特征在于,步骤106中,在发送的过程中,使用非对称加密的方式进行发送以确保发送的信息安全。
5.基于权利要求1所述的基于密码学的集中式身份管理、分布式认证与授权的系统的用户信息的更改方法,其特征在于,包括以下步骤:
步骤201、用户向认证服务器提交更改请求以及需要更改的数据;
步骤202、认证服务器基于更改请求确认用户是否有效,同时,判断需要更改的数据是否有效,若均有效,则进入下一步;
步骤203、认证服务器根据需要更改的数据中所包含的新的用户信息重新生成新的用户ID;
步骤204、认证服务器根据针对当前用户所生成的新的用户ID以及已有的用户ID,将新的用户ID增加到密码累加器中,并在密码累加器中删除已有的用户ID;
步骤205、认证服务器需要等待一定的时间T,在时间T内,重复执行步骤204,认证服务器为接收到的所有更改请求以及需要更改的数据生成新的用户ID增加到密码累加器中,并在密码累加器中删除所有已有的用户ID;
步骤206、当T超时之后认证服务器为所有的用户统一生成用户指纹证据;
步骤207、认证服务器将授权数据以及用户的基本信息以及用户指纹证据通过用户的公钥将数据发送给最终用户。
6.基于权利要求1所述的基于密码学的集中式身份管理、分布式认证与授权的系统的用户或者用户信息的删除方法,其特征在于,包括以下步骤:
步骤301、用户向认证服务器提交更改请求以及需要删除的数据,或者向认证服务器提交更改请求以及需要删除的用户;
步骤302、若用户向认证服务器提交的是需要删除的数据,则认证服务器基于更改请求确认用户是否有效,同时,判断需要更改的数据是否有效,若均有效,则进入下一步;
若用户向认证服务器提交的是需要删除的用户,则认证服务器基于更改请求确认用户是否有效,同时,判断需要删除的用户是否有效,若均有效,则进入下一步;
步骤303、若用户向认证服务器提交的是需要删除的用户,则进入步骤306,若用户向认证服务器提交的是需要删除的数据,则进入步骤304;
步骤304、认证服务器根据需要删除的数据中所包含的新的用户信息重新生成新的用户ID;
步骤305、认证服务器根据针对当前用户所生成的新的用户ID以及已有的用户ID,将新的用户ID增加到密码累加器中,并在密码累加器中删除已有的用户ID,进入步骤307;
步骤306、在密码累加器中删除需要删除的用户所对应的已有的用户ID;
步骤307、认证服务器需要等待一定的时间T,在时间T内,重复执行步骤303、304、305、306,认证服务器为接收到的所有更改请求以及需要删除的数据生成新的用户ID增加到密码累加器中,并在密码累加器中删除所有已有的用户ID,或者认证服务器为接收到的所有更改请求以及需要删除的用户在密码累加器中删除所有已有的用户ID;
步骤308、当T超时之后认证服务器会为所有的新的用户统一生成用户指纹证据;
步骤309、认证服务器将授权数据以及用户的基本信息以及用户指纹证据通过用户的公钥将数据发送给最终用户。
7.基于权利要求1所述的基于密码学的集中式身份管理、分布式认证与授权的系统的用户的认证授权方法,其特征在于,包括以下步骤:
步骤401、用户获取最新的用户授权签名user-set-signature以及用户自身的证据;
步骤402、用户向应用服务器提交认证与授权请求;
步骤403、应用服务器接收到认证与授权请求后生成随机数,并将随机数与所需的权限发送给用户;
步骤404、用户使用私钥对用户授权签名user-set-signature、用户ID、用户自身的证据、权限的证明过程、权限信息以及应用服务器生成的随机数进行签名,发送给应用服务器;
步骤405、验证用户提交的用户授权签名user-set-signature有效性,若验证通过,则进入下一步,否则,进入步骤4013;
步骤406、根据用户ID判断用户是否在用户授权签名user-set-signature中,若在,则进入下一步,否则,进入步骤4013;
步骤407、判断用户上传的随机数是否与步骤403中生成的随机数一致,若一致,则进入下一步,否则,进入步骤4013;
步骤408、判断用户的公钥是否在用户ID中,若是,则进入下一步,否则,进入步骤4013;
步骤409、使用用户的公钥判断用户的签名是否有效,若是,则进入下一步,否则,进入步骤4013;
步骤4010、判断用户的权限的证明过程是否有效,若是,则进入下一步,否则,进入步骤4013;
步骤4011、判断用户的权限信息是否满足要求,若是,则进入步骤4012,否则,进入步骤4013;
步骤4012、认证授权通过;
步骤4013、认证授权失败。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010418455.0A CN111682941B (zh) | 2020-05-18 | 2020-05-18 | 基于密码学的集中式身份管理、分布式认证与授权的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010418455.0A CN111682941B (zh) | 2020-05-18 | 2020-05-18 | 基于密码学的集中式身份管理、分布式认证与授权的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111682941A CN111682941A (zh) | 2020-09-18 |
CN111682941B true CN111682941B (zh) | 2022-12-20 |
Family
ID=72434119
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010418455.0A Active CN111682941B (zh) | 2020-05-18 | 2020-05-18 | 基于密码学的集中式身份管理、分布式认证与授权的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111682941B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115052047A (zh) * | 2022-01-27 | 2022-09-13 | 昆明理工大学 | 一种Gossip网络协议的前置验证方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106973041A (zh) * | 2017-03-02 | 2017-07-21 | 飞天诚信科技股份有限公司 | 一种颁发身份认证凭据的方法、系统及认证服务器 |
CN108234515A (zh) * | 2018-01-25 | 2018-06-29 | 中国科学院合肥物质科学研究院 | 一种基于智能合约的自认证数字身份管理系统及其方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090260070A1 (en) * | 2008-04-15 | 2009-10-15 | Elevate Technologies Pty Ltd. | Systems and Methods for Secure Sign-Up Procedures for Application Servers in Wired and Wireless Environments |
WO2011160683A1 (en) * | 2010-06-22 | 2011-12-29 | Telefonaktiebolaget Lm Ericsson (Publ) | Privacy preserving authorisation in pervasive environments |
CN106411533B (zh) * | 2016-11-10 | 2019-07-02 | 西安电子科技大学 | 双向隐私保护的在线指纹认证系统及方法 |
CN109327477A (zh) * | 2018-12-06 | 2019-02-12 | 泰康保险集团股份有限公司 | 认证鉴权方法、装置及存储介质 |
CN110535882A (zh) * | 2019-09-27 | 2019-12-03 | 南方电网科学研究院有限责任公司 | 一种基于异构终端的身份认证服务方法及系统 |
CN110891060A (zh) * | 2019-11-26 | 2020-03-17 | 昆明能讯科技有限责任公司 | 一种基于多业务系统集成的统一认证系统 |
CN113849798A (zh) * | 2021-10-18 | 2021-12-28 | 南方电网数字电网研究院有限公司 | 安全登录认证方法、系统、计算机设备和存储介质 |
-
2020
- 2020-05-18 CN CN202010418455.0A patent/CN111682941B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106973041A (zh) * | 2017-03-02 | 2017-07-21 | 飞天诚信科技股份有限公司 | 一种颁发身份认证凭据的方法、系统及认证服务器 |
CN108234515A (zh) * | 2018-01-25 | 2018-06-29 | 中国科学院合肥物质科学研究院 | 一种基于智能合约的自认证数字身份管理系统及其方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111682941A (zh) | 2020-09-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8683196B2 (en) | Token renewal | |
CN112822675B (zh) | 面向MEC环境的基于OAuth2.0的单点登录机制 | |
US5892828A (en) | User presence verification with single password across applications | |
KR101459802B1 (ko) | 암호화 증명의 재검증에 기반을 둔 인증 위임 | |
JP5619019B2 (ja) | 認証のための方法、システム、およびコンピュータ・プログラム(1次認証済み通信チャネルによる2次通信チャネルのトークンベースのクライアント・サーバ認証) | |
CN108964885B (zh) | 鉴权方法、装置、系统和存储介质 | |
CN109963282B (zh) | 在ip支持的无线传感网络中的隐私保护访问控制方法 | |
US20010020274A1 (en) | Platform-neutral system and method for providing secure remote operations over an insecure computer network | |
US20090199009A1 (en) | Systems, methods and computer program products for authorising ad-hoc access | |
KR20190114434A (ko) | 블록체인 기반의 권한 인증 방법, 단말 및 이를 이용한 서버 | |
KR20140127303A (ko) | 다중 팩터 인증 기관 | |
CN108881222A (zh) | 基于pam架构的强身份认证系统及方法 | |
DK2414983T3 (en) | Secure computer system | |
CA3093444A1 (en) | System and method for identity and authorization management | |
Chattaraj et al. | HEAP: an efficient and fault-tolerant authentication and key exchange protocol for Hadoop-assisted big data platform | |
CN115277168A (zh) | 一种访问服务器的方法以及装置、系统 | |
CN114499876B (zh) | 基于区块链以及NB-IoT芯片的物联网数据存证方法 | |
CN114091009A (zh) | 利用分布式身份标识建立安全链接的方法 | |
CN111682941B (zh) | 基于密码学的集中式身份管理、分布式认证与授权的方法 | |
CN111131160B (zh) | 一种用户、服务及数据认证系统 | |
JP2002132722A (ja) | 代行認証方法、その各装置、その装置の処理方法、及びプログラム記録媒体 | |
CN107360132B (zh) | 一种防止会话重演的方法及系统 | |
Yang et al. | A High Security Signature Algorithm Based on Kerberos for REST-style Cloud Storage Service | |
Wang et al. | Design and implementation of a safe Public Key Infrastructure | |
US20230198767A1 (en) | Distribution of one-time passwords for multi-factor authentication via blockchain |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20210729 Address after: 311202 room 809-2, building 1, No. 371, Xingxing Road, economic and Technological Development Zone, Xiaoshan District, Hangzhou City, Zhejiang Province Applicant after: Zhejiang Lianhu Technology Co.,Ltd. Address before: Room w-1126, 559 yueluo Road, Baoshan District, Shanghai 201900 Applicant before: Shanghai Jinchen Network Technology Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |