CN105071941A - 分布式系统节点身份认证方法及装置 - Google Patents

分布式系统节点身份认证方法及装置 Download PDF

Info

Publication number
CN105071941A
CN105071941A CN201510465057.3A CN201510465057A CN105071941A CN 105071941 A CN105071941 A CN 105071941A CN 201510465057 A CN201510465057 A CN 201510465057A CN 105071941 A CN105071941 A CN 105071941A
Authority
CN
China
Prior art keywords
primitive
authentication
semantic
target
node
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.)
Granted
Application number
CN201510465057.3A
Other languages
English (en)
Other versions
CN105071941B (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201510465057.3A priority Critical patent/CN105071941B/zh
Publication of CN105071941A publication Critical patent/CN105071941A/zh
Priority to PCT/CN2016/087704 priority patent/WO2017020669A1/zh
Application granted granted Critical
Publication of CN105071941B publication Critical patent/CN105071941B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Storage Device Security (AREA)

Abstract

本发明实施例公开了一种分布式系统节点身份认证方法及装置。所述方法包括:建立原语库,原语库为认证原语的集合,认证原语为表征被认证节点唯一性的语句,且满足被认证节点的预设语义规则;根据原语库生成原语语义库;当被认证节点和执行认证的节点之间需要进行身份认证时,被认证节点从原语库中选取一个目标认证原语,并将该目标认证原语发送给执行认证的节点;执行认证的节点接收到目标认证原语后,提取目标认证原语的语义,作为目标语义,并验证原语语义库中是否存在该目标语义;如果存在,则被认证节点的身份认证通过,否则,被认证节点的身份认证失败。本发明实施例公开的技术方案,安全性高、简单易行、轻量且能实现按需认证。

Description

分布式系统节点身份认证方法及装置
技术领域
本发明涉及网络安全领域,尤其涉及分布式系统节点身份认证方法及装置。
背景技术
分布式系统中,节点之间存在大规模的数据访问。为实现网络和系统安全,在数据交互访问过程中,通常要对节点进行身份认证,以防止节点被假冒。目前,分布式系统节点身份认证主要有三类方法:
第一类方法采用“你知道的/Whatyouknow”认证机制。该类方法中,执行认证的一方要求被认证的一方给出唯一性的认证凭证,例如常见的用户名/口令认证方法,其中口令是只有用户知道的认证凭证。执行认证的一方在接收到被认证的一方传入的用户名和口令后,找到与用户名对应的预先存储的变形口令,并将接收到的口令进行同样的变形处理,例如经过哈希(HASH)算法处理,得到变形后的口令,然后,将所述变形后的口令与所述预先存储的变形口令进行比对,如果两者匹配,则认证通过,否则认证失败。
第二类方法采用“你拥有的/Whatyouhave”认证机制。该类方法中,执行认证的一方要求被认证的一方给出证明其身份的认证凭证,通过所述认证凭证实现身份认证。例如,SSL/TLS(SecureSocketsLayer/TransportLayerSecurity,安全套接层/传输层安全)协议中,发送方和应答方在建立连接前,需要发送方(被认证的一方)向应答方(执行认证的一方)提供CA(CertificateAuthority,电子商务认证授权机构)证书,或者需要双方相互提供CA证书,以验证对方身份的真实性。
第三类方法采用“你是谁/Whatyouare”认证机制。该类方法中,被认证的一方向执行认证的一方提供自己区别于其他方的特征信息来实现身份认证,所述特征信息,例如指纹数据等。执行认证的一方接收到被认证的一方发送的特征信息后,根据所述特征信息在执行认证一方的特征信息数据库中进行检索,如果找到所述特征信息,则被认证的一方通过身份认证。
上述三类方法中,第一类方法的缺点是:1、认证凭证容易泄露;2、认证凭证要有一定的复杂度和防暴力破解机制,因此,认证凭证的管理难度高;3、复杂的认证凭证难于记忆,不便于检查和修改。第二类方法的缺点是使用不方便,按照第二类方法,需向认证证书颁发机构申请证书,,而且认证证书通常数据量较大,影响数据传输性能。第三类方法的缺点是复杂度高,实现困难,按照第三类方法,首先要采集被认证一方的指纹数据,所述指纹数据通常比较复杂,数据量较大,影响数据传输性能,而且,检索过程消耗的计算资源也较多。
另外,节点之间可能只需对部分数据的交互进行身份认证,这些数据其本身的机密性并不重要,重要的是数据的真实性,例如管理命令和NTP(NetworkTimeProtocol,网络时间协议)时间同步消息等。在这种情况下,如果认证双方采用上述第一类认证方法,在认证完成后,还要维护认证状态的有效性,以便基于有效性进行授权和访问控制;如果采用第二类或第三类方法,在通过身份认证后,还要保持认证状态,建立安全通道,以此来保证其它数据的交互。
发明内容
本发明实施例提供了一种分布式系统节点身份认证方法及装置,以解决现阶段节点身份认证方法难以满足简便轻量的要求的问题。
第一方面,本发明实施例提供一种分布式系统节点身份认证方法,应用于被认证节点,包括:
当被认证节点和执行认证的节点之间需要进行身份认证时,被认证节点从原语库中选取一个目标认证原语,所述原语库为认证原语的集合,所述认证原语为表征被认证节点唯一性的语句,且满足被认证节点的预设语义规则;
将所述目标认证原语发送给执行认证的节点,以使所述执行认证的节点根据所述目标认证原语对被认证节点进行认证。
结合第一方面,在第一方面第一种可能的实现方式中,所述被认证节点从所述原语库中随机选取一个目标认证原语。
结合第一方面或第一方面第一种可能的实现方式,在第一方面第二种可能的实现方式中,所述方法,在将所述目标认证原语发送给执行认证的节点之前,还包括:加密所述目标认证原语。
第二方面,本发明实施例还提供一种分布式系统节点身份认证方法,应用于执行认证的节点,包括:
接收被认证节点发送的目标认证原语;
提取所述目标认证原语的语义,作为目标语义,并验证原语语义库中是否存在所述目标语义;
如果所述原语语义库中存在所述目标语义,则被认证节点的身份认证通过,否则,被认证节点的身份认证失败;
其中,所述原语语义库预先根据原语库生成,所述原语库为认证原语的集合,所述认证原语为表征被认证节点唯一性的语句,且满足被认证节点的预设语义规则。
结合第二方面,在第二方面第一种可能的实现方式中,所述提取所述目标认证原语的语义,作为目标语义,并验证原语语义库中是否存在所述目标语义,包括:
获取所述目标认证原语的哈希值,作为目标语义,并验证所述目标语义是否存在于所述原语语义库的布隆散列;
所述布隆散列,为获取原语库的认证原语的哈希值后,根据所述认证原语的哈希值构建而成,所述原语语义库由所述布隆散列组成。
结合第二方面,在第二方面第二种可能的实现方式中,所述提取所述目标认证原语的语义,作为目标语义,并验证原语语义库中是否存在所述目标语义,包括:
使用学习算法提取所述目标认证原语的特征,作为目标语义;
计算所述目标语义与所述原语语义库中特征的匹配度;
判断所述匹配度是否大于或等于预设阈值,如果所述匹配度大于或等于所述预设阈值,则所述原语语义库中存在所述目标语义,否则,所述原语语义库中不存在所述目标语义;
其中,所述原语语义库为所述原语库中认证原语的特征的集合,所述认证原语的特征通过对认证原语使用所述学习算法提取得到。
结合第二方面,在第二方面第三种可能的实现方式中,所述方法,在接收被认证节点发送的目标认证原语之后,提取所述目标认证原语的语义之前,还包括:
检验所述目标认证原语是否符合被认证节点的预设语义规则;
当所述目标认证原语符合所述预设语义规则时,允许执行提取所述目标认证原语的语义的步骤。
结合第二方面或第二方面第一种至第三种可能的实现方式其中任意一种,在第二方面第四种可能的实现方式中,所述方法,在接收被认证节点发送的目标认证原语之后,提取所述目标认证原语的语义之前,还包括:
检验所述目标认证原语是否被加密;
当所述目标认证原语被加密时,分析所述目标认证原语的加密方法;
获取与所述加密方法对应的解密方法,并使用所述解密方法解密所述目标认证原语。
第三方面,本发明实施例还提供一种分布式系统节点身份认证方法,包括:
建立原语库,所述原语库为认证原语的集合,所述认证原语为表征被认证节点唯一性的语句,且满足被认证节点的预设语义规则;
根据所述原语库生成原语语义库;
当被认证节点和执行认证的节点之间需要进行身份认证时,被认证节点从所述原语库中选取一个目标认证原语;
被认证节点将所述目标认证原语发送给执行认证的节点;
执行认证的节点接收所述被认证节点发送的目标认证原语;
执行认证的节点提取所述目标认证原语的语义,作为目标语义,并验证所述原语语义库中是否存在所述目标语义;
如果所述原语语义库中存在所述目标语义,则被认证节点的身份认证通过,否则,被认证节点的身份认证失败。
结合第三方面,在第三方面第一种可能的实现方式中,当被认证节点和执行认证的节点之间需要进行身份认证时,所述被认证节点从所述原语库中随机选取一个目标认证原语。
结合第三方面,在第三方面第二种可能的实现方式中,所述根据所述原语库生成原语语义库,包括:
获取原语库的认证原语的哈希值,并根据所述认证原语的哈希值构建布隆散列;
所述提取所述目标认证原语的语义,作为目标语义,并验证原语语义库中是否存在所述目标语义,包括:获取所述目标认证原语的哈希值,作为目标语义,并验证所述目标语义是否存在于所述布隆散列。
结合第三方面,在第三方面第三种可能的实现方式中,所述根据所述原语库生成原语语义库,包括:
使用学习算法提取原语库中认证原语的特征,以所述特征的集合为原语语义库;
所述提取所述目标认证原语的语义,作为目标语义,并验证原语语义库中是否存在所述目标语义,包括:
使用所述学习算法提取所述目标认证原语的特征,作为目标语义;
计算所述目标语义与所述原语语义库中特征的匹配度;
判断所述匹配度是否大于或等于预设阈值,如果所述匹配度大于或等于所述预设阈值,则所述原语语义库中存在所述目标语义,否则,所述原语语义库中不存在所述目标语义。
结合第三方面,在第三方面第四种可能的实现方式中,所述方法,在接收所述被认证节点发送的目标认证原语之后,提取所述目标认证原语的语义之前,还包括:
执行认证的节点检验所述目标认证原语是否符合被认证节点的预设语义规则;
当所述目标认证原语符合所述预设语义规则时,允许执行提取所述目标认证原语的语义的步骤。
结合第三方面或第三方面第一种至第四种可能的实现方式其中任意一种,在第三方面第五种可能的实现方式中,所述方法,在将所述目标认证原语发送给执行认证的节点之前,还包括:被认证节点加密所述目标认证原语。
结合第三方面第五种可能的实现方式,在第三方面第六种可能的实现方式中,所述方法,在接收被认证节点发送的目标认证原语之后,提取所述目标认证原语的语义之前,还包括:
执行认证的节点检验所述目标认证原语是否被加密;
当所述目标认证原语被加密时,分析所述目标认证原语的加密方法;
获取与所述加密方法对应的解密方法,并使用所述解密方法解密所述目标认证原语。
第四方面,本发明实施例提供一种分布式系统节点身份认证装置,应用于被认证节点,包括:
认证原语选取单元,用于当被认证节点和执行认证的节点之间需要进行身份认证时,被认证节点从原语库中选取一个目标认证原语,所述原语库为认证原语的集合,所述认证原语为表征被认证节点唯一性的语句,且满足被认证节点的预设语义规则;
认证原语发送单元,用于将所述目标认证原语发送给执行认证的节点,以使所述执行认证的节点根据所述目标认证原语对被认证节点进行认证。
结合第四方面,在第四方面第一种可能的实现方式中,所述认证原语选取单元,具体用于:当被认证节点和执行认证的节点之间需要进行身份认证时,从所述原语库中随机选取一个目标认证原语。
结合第四方面或第四方面第一种可能的实现方式,在第四方面第二种可能的实现方式中,所述装置,还包括认证原语加密单元,所述认证原语加密单元,用于在所述被认证节点将所述目标认证原语发送给执行认证的节点之前,将所述目标认证原语加密。
第五方面,本发明实施例还提供一种分布式系统节点身份认证装置,应用于执行认证的节点,包括:
认证原语接收单元,用于接收被认证节点发送的目标认证原语;
目标语义提取单元,用于提取所述目标认证原语的语义,作为目标语义;
验证单元,用于验证原语语义库中是否存在所述目标语义,如果所述原语语义库中存在所述目标语义,则被认证节点的身份认证通过,否则,被认证节点的身份认证失败;
其中,所述原语语义库预先根据原语库生成,所述原语库为认证原语的集合,所述认证原语为表征被认证节点唯一性的语句,且满足被认证节点的预设语义规则。
结合第五方面,在第五方面第一种可能的实现方式中,
所述目标语义提取单元,具体用于:获取所述目标认证原语的哈希值,作为目标语义;
所述验证单元,具体用于:验证所述目标语义是否存在于布隆散列;
其中,所述布隆散列,为获取所述原语库的认证原语的哈希值后,根据所述认证原语的哈希值构建而成,所述原语语义库由所述布隆散列组成。
结合第五方面,在第五方面第二种可能的实现方式中,
所述目标语义提取单元具体用于:使用学习算法提取所述目标认证原语的特征,作为目标语义;
所述验证单元具体用于:
计算所述目标语义与所述原语语义库中特征的匹配度;
判断所述匹配度是否大于或等于预设阈值,如果所述匹配度大于或等于所述预设阈值,则所述原语语义库中存在所述目标语义,否则,所述原语语义库中不存在所述目标语义;
其中,所述原语语义库为所述原语库中认证原语的特征的集合,所述认证原语的特征通过对认证原语使用所述学习算法提取得到。
结合第五方面,在第五方面第三种可能的实现方式中,所述装置,还包括:
预检验单元,用于检验所述目标认证原语是否符合被认证节点的预设语义规则;
提取使能单元,用于当所述目标认证原语符合所述预设语义规则时,使能所述目标语义提取单元。
结合第五方面或第五方面第一种至第三种可能的实现方式其中任意一种,在第五方面第四种可能的实现方式中,所述装置,还包括认证原语解密单元,所述认证原语解密单元包括:
加密检验模块,用于在接收所述目标认证原语之后,提取所述目标认证原语的语义之前,检验所述目标认证原语是否被加密;
加密方法分析模块,用于当所述目标认证原语被加密时,分析所述目标认证原语的加密方法;
解密模块,用于获取与所述加密方法对应的解密方法,并使用所述解密方法解密所述目标认证原语。
第六方面,本发明实施例提供一种分布式系统节点身份认证装置,包括:
原语库建立单元,用于建立原语库,所述原语库为认证原语的集合,所述认证原语为表征被认证节点唯一性的语句,且满足被认证节点的预设语义规则;
原语语义库生成单元,用于根据所述原语库生成原语语义库;
认证原语选取单元,应用于被认证节点,用于当被认证节点和执行认证的节点之间需要进行身份认证时,从原语库中选取一个目标认证原语;
认证原语发送单元,应用于被认证节点,用于将所述目标认证原语发送给执行认证的节点;
认证原语接收单元,应用于执行认证的节点,用于接收被认证节点发送的目标认证原语;
目标语义提取单元,应用于执行认证的节点,用于提取所述目标认证原语的语义,作为目标语义;
验证单元,应用于执行认证的节点,用于验证原语语义库中是否存在所述目标语义,如果所述原语语义库中存在所述目标语义,则被认证节点的身份认证通过,否则,被认证节点的身份认证失败。
结合第六方面,在第六方面第一种可能的实现方式中,所述认证原语选取单元,具体用于:当被认证节点和执行认证的节点之间需要进行身份认证时,从所述原语库中随机选取一个目标认证原语。
结合第六方面,在第六方面第二种可能的实现方式中,
所述原语语义库生成单元,具体用于获取原语库的认证原语的哈希值,根据所述认证原语的哈希值构建布隆散列,并根据所述布隆散列组成原语语义库;
所述目标语义提取单元具体用于:获取所述目标认证原语的哈希值,作为目标语义;
所述验证单元具体用于:验证所述目标语义是否存在于所述布隆散列。
结合第六方面,在第六方面第三种可能的实现方式中,
所述原语语义库生成单元,具体用于使用学习算法提取原语库中认证原语的特征,以所述特征的集合作为原语语义库;
所述目标语义提取单元具体用于:使用所述学习算法提取所述目标认证原语的特征,作为目标语义;
所述验证单元具体用于:
计算所述目标语义与所述原语语义库中特征的匹配度;
判断所述匹配度是否大于或等于预设阈值,如果所述匹配度大于或等于所述预设阈值,则所述原语语义库中存在所述目标语义,否则,所述原语语义库中不存在所述目标语义。
结合第六方面,在第六方面第四种可能的实现方式中,所述装置,还包括:
预检验单元,应用于执行认证的节点,用于检验所述目标认证原语是否符合被认证节点的预设语义规则;
提取使能单元,应用于执行认证的节点,用于当所述目标认证原语符合所述预设语义规则时,使能所述目标语义提取单元。
结合第六方面或第六方面第一种至第四种可能的实现方式其中任意一种,在第六方面第五种可能的实现方式中,所述装置,还包括认证原语加密单元,所述认证原语加密单元,应用于被认证节点,用于在将所述目标认证原语发送给执行认证的节点之前,将所述目标认证原语加密。
结合第六方面第五种可能的实现方式,在第六方面第六种可能的实现方式中,所述装置,还包括认证原语解密单元,所述认证原语解密单元,应用于执行认证的节点,包括:
加密检验模块,用于在接收所述目标认证原语之后,提取所述目标认证原语的语义之前,检验所述目标认证原语是否被加密;
加密方法分析模块,用于当所述目标认证原语被加密时,分析所述目标认证原语的加密方法;
解密模块,用于获取与所述加密方法对应的解密方法,并使用所述解密方法解密所述目标认证原语。
本发明实施例提供的技术方案,以认证原语为认证凭证,由于认证原语只是被认证节点的描述语句,因此认证原语的构建和原语库的建立都简单易行;在被认证节点和执行认证的节点之间需要进行身份认证时,被认证节点从原语库选取目标认证原语发送给执行认证的节点进行身份认证,原语库中可以存在众多的认证原语,这样被认证节点每次发送的目标认证原语都是不唯一的,从而有效防止目标认证原语被破解,也不需耗费时间和资源来维护目标认证原语。而且被认证节点可以只在需要进行身份认证的时候选取目标认证原语并发送,且每次的目标认证原语不唯一,被认证节点不需保存认证状态。执行认证的节点接收到被认证节点发送的目标认证原语后,以生成原语语义库时提取原语库认证原语的语义的方法,提取目标认证原语的语义,作为目标语义,然后验证所述目标语义是否存在与原语语义库中。由于认证原语及目标认证原语为简单的字符语句,使用已有的语义提取方法提取语义,以及验证目标语义与原语语义库中的语义是否匹配,过程皆简单易行,资源耗费少,且整个认证过程执行认证的节点也不需保存认证状态,使得被认证节点和执行认证的节点之间能够实现按需认证。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种应用于被认证节点的分布式系统节点身份认证方法的流程示意图;
图2为本发明实施例提供的一种应用于执行认证的节点的分布式系统节点身份认证方法的流程示意图;
图3为本发明实施例提供的一种分布式系统节点身份认证方法的流程示意图;
图4为本发明实施例提供的一种应用于被认证节点的分布式系统节点身份认证装置的框图;
图5为本发明实施例提供的一种应用于执行认证的节点的分布式系统节点身份认证装置的框图;
图6为本发明实施例提供的一种分布式系统节点身份认证装置的框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,为本发明实施例提供的一种分布式系统节点身份认证方法的流程示意图,该方法应用于被认证节点,如图1所示,该方法包括如下步骤:
步骤S101,当被认证节点和执行认证的节点之间需要进行身份认证时,被认证节点从原语库中选取一个目标认证原语,所述原语库为认证原语的集合,所述认证原语为表征被认证节点唯一性的语句,且满足被认证节点的预设语义规则;
步骤S102,将所述目标认证原语发送给执行认证的节点,以使所述执行认证的节点根据所述目标认证原语对被认证节点进行认证。
在一种应用场景中,被认证节点在数据访问发起的同时发起身份认证,也就是被认证节点在数据访问发起的同时需要进行身份认证,被认证节点在发送数据的同时需要发送身份认证信息,在本发明中,所述身份认证信息即目标认证原语。在另一种应用场景中,被认证节点先向执行认证的节点发送数据访问请求,执行认证的节点返回身份认证请求消息,被认证节点收到所述身份认证请求消息后,向执行认证的节点发送身份认证信息,通过身份认证后再向执行认证的节点发送数据,在这种情况下,被认证节点收到身份认证请求消息即为被认证节点和执行认证的节点之间需要进行身份认证。
所述原语库预先建立,其为认证原语的集合。认证原语为表征被认证节点唯一性的语句,例如多种描述被认证节点唯一性特征的语句,由于无规则的语句难以提取语义,因此认证原语需符合被认证节点的预设语义规则。认证原语的预设语义规则可以为以下几类:
(1)替换类语义规则:根据预设的字符替换表,将语句中的字符用字符替换表中与该字符对应的其他字符替换,例如:o替换为0,l替换为1,b替换为6,g替换为9等,S替换为$等。
(2)模式类语义规则:认证原语按预设的模式生成,例如在认证原语的偶数字符的后面,加入固定长度的随机字符组合。
(3)标点类语义规则:在认证原语的固定位置加入固定的标点,例如每个认证原语都以问号结尾。
预设语义规则并不仅限于上述三种,上述三种也可以两两组合或者三者组合使用。
按照预设语义规则构建认证原语,并将认证原语存储在原语库中,每个认证原语在原语库中对应一个索引,每个被认证节点与其原语库一一对应。原语库中的认证原语至少包含2条,以使认证原语的选取不唯一。原语库可以保存于被认证节点处,也可以与被认证节点分离,原语库与被认证节点分离时,被认证节点通过网络访问原语库。所述原语库可以加密保存或添加访问控制机制,以防止认证原语泄漏。
当被认证节点和执行认证的节点之间需要进行身份认证时,被认证节点从原语库中选取一个目标认证原语,选取方式可以为随机选取,也可以按照循环性规律选取。所述随机选取,可以为被认证节点先随机生成一个索引值(所述索引值在原语库的索引值范围内),然后选取原语库中与所述索引值对应的认证原语。所述按照循环性规律选取,可以为被认证节点按照原语库的索引值排列顺序,依次选取索引值对应的认证原语,当多次进行身份认证后,被认证节点选取的认证原语对应的索引值已达到原语库索引值排列的尾端时,在下一次身份认证的时候,被认证节点重新从原语库的索引值排列的第一个索引值开始选取。选取目标认证原语后,被认证节点将所述目标认证原语发送给执行认证的节点,以使所述执行认证的节点根据所述目标认证原语对被认证节点进行认证。
另外,为进一步保证被选中的目标认证原语的安全,防止目标认证原语被破坏,在被认证节点将目标认证原语发送给执行认证的节点之前,还可以将所述目标认证原语加密,相应地,执行认证的节点在收到所述目标认证原语后,对所述目标认证原语进行解密。
本实施例所提供的技术方案,以认证原语为认证凭证,由于认证原语只是被认证节点的描述语句,因此认证原语的构建和原语库的建立都简单易行;在被认证节点和执行认证的节点之间需要进行身份认证时,被认证节点从原语库选取目标认证原语发送给执行认证的节点进行身份认证,原语库中可以存在众多的认证原语,这样被认证节点每次发送的目标认证原语都是不唯一的,从而有效防止目标认证原语被破解,不需像用户/口令身份认证方法那样定期修改认证凭证,也不需耗费时间和资源来维护认证凭证。被认证节点使用随机选取方式来选取目标认证原语时,由于每次发送的目标认证原语都不可预料,更有利于防止目标认证原语被破解以及减少认证凭证维护耗费。而且本实施例所提供的技术方案,被认证节点可以只在需要进行身份认证的时候选取目标认证原语并发送,且每次的目标认证原语不唯一,被认证节点不需保存认证状态,从而能够实现按需认证,或者说“一次一认证”。
参见图2,为本发明实施例提供的一种分布式系统节点身份认证方法的流程示意图,该方法应用于执行认证的节点,如图2所示,该方法包括如下步骤:
步骤S201,接收被认证节点发送的目标认证原语;
步骤S202,提取所述目标认证原语的语义,作为目标语义;
步骤S203,验证原语语义库中是否存在所述目标语义,如果所述原语语义库中存在所述目标语义,则被认证节点的身份认证通过,否则,被认证节点的身份认证失败。
其中,所述原语语义库预先根据原语库生成。
原语语义库为原语库中认证原语的语义的集合。提取原语库中每个认证原语的语义,存储于原语语义库中。所述原语语义库可以位于执行认证的节点,也可以与执行认证的节点分离,所述原语语义库与执行认证的节点分离时,执行认证的节点通过网络访问所述原语语义库。如果被认证节点和执行认证的节点是一一对应的,也就是说一个执行认证的节点只对一个被认证的节点进行认证,则该执行认证的节点访问的原语语义库中,只存储该被认证节点的原语库中认证原语的语义。如果执行认证的节点会对至少两个被认证节点进行认证,则该执行认证的节点访问的原语语义库中,存储对应的被认证节点的原语库中认证原语的语义。在一种实施方式中,所有执行认证的节点可以共用一个原语语义库,也就是提取所有原语库中认证原语的语义,存储在一个原语语义库中。
原语为字符组成的语句,其本质也为数据,原语语义即语句的含义,亦即数据的逻辑表示或者特征。提取原语的语义,即将原语按预设的方式进行逻辑组织,或者按预设的方式提取特征。
在一种实施方式中,根据原语库生成原语语义库,包括:获取原语库的认证原语的哈希值,根据所述认证原语的哈希值构建布隆散列,以所述布隆散列为认证原语的语义的集合,存储于原语语义库中。这种实施方式中,根据原语库生成原语语义库是不可逆的过程,因此可以更好地保护认证原语的安全,攻击者将无法通过原语语义库来得到认证原语,也正因为这样,原语语义库可以公开。使用哈希函数作用于原语库的认证原语,便能获取原语库的认证原语的哈希值。在获取到认证原语的哈希值后,构建布隆散列的方式可以为:将长度为m比特的布隆向量(b1,b2,…,bm)中的所有比特位初始化为0,然后将返回值在1到m间的k个相互独立的快捷HASH函数(h1,h2,…,hk),作用于每个输入的认证原语的哈希值上,得到k个返回值(r1,r2,…,rk),并将布隆向量中位置在r1,r2,…,rk的比特位设置为1,最后得到的整个布隆向量即布隆散列,所述布隆散列存储于原语语义库。相应地,执行认证的节点接收到目标认证原语后,获取所述目标认证原语的哈希值,获取所述哈希值的方法,与生成原语语义库时获取原语库中认证原语的哈希值的方法相同。执行认证的节点将目标认证原语的哈希值作为目标语义,然后以构建布隆散列时对输入的认证原语的哈希值进行处理的方式一样,处理所述目标语义,得到返回值,然后判断所述布隆散列中对应于所述返回值的比特位是否为1,如果为1,则确定所述目标语义存在于所述布隆散列,如果为0,则确定所述目标语义不存在于所述布隆散列。如果所述目标语义存在于所述布隆散列,则原语语义库中存在所述目标语义,被认证节点的身份认证通过,否则,被认证节点的身份认证失败。
在另一种实施方式中,根据原语库生成所述原语语义库,包括:使用学习算法提取原语库的认证原语的特征,以认证原语的特征的集合作为原语语义库。学习算法有多种,例如支持向量算法等,都可以应用于本发明中。学习算法提取的认证原语的特征,可以为向量,也可以为矩阵,随学习算法的不同而不同。以支持向量算法为例,以原语库中的认证原语为输入,可以得到表征认证原语的特征的支持向量,以认证原语的支持向量的集合为原语语义库。利用学习算法根据原语库生成原语语义库也是不可逆的,有利于保证认证原语的安全,原语语义库也可以公开。相应地,执行认证的节点接收到目标认证原语后,使用相同的学习算法提取所述目标认证原语的特征,以目标认证原语的特征为目标语义,然后计算目标语义与原语语义库中特征的匹配度,判断所述匹配度是否大于或等于预设阈值,如果所述匹配度大于或等于所述预设阈值,则所述原语语义库中存在所述目标语义,否则,所述原语语义库中不存在所述目标语义。以支持向量算法为例,以目标认证原语为输入,使用支持向量算法得到表征目标认证原语的特征的支持向量,以所述支持向量为目标语义,然后将该目标语义与原语语义库中的支持向量进行匹配,计算该目标语义与原语语义库中支持向量的匹配度,如果所述匹配度大于或者等于85%,则确定该目标语义存在于原语语义库中,被认证节点的身份认证通过,否则,如果所述匹配度小于85%,则确定该目标语义不存在于原语语义库中,被认证节点的身份认证失败,其中,“85%”为预设阈值。
在执行认证的节点接收被认证节点发送的目标认证原语之后,提取所述目标认证原语的语义之前,还可以加上检验所述目标认证原语是否符合预设语义规则的步骤,所述预设语义规则即被认证节点的预设语义规则。原语库中的认证原语必须符合被认证节点的预设语义规则,如果执行认证的节点接收到的目标认证原语不符合所述预设语义规则,则能够确定该目标认证原语是非法的,被认证节点的身份认证不能通过;如果执行认证的节点接收到的目标认证原语符合所述预设语义规则,则执行提取所述目标认证原语的语义的步骤,对被认证节点的身份进行进一步验证。由于检验目标认证原语是否符合预设语义规则简单易行,资源耗费很小,因此只在目标认证原语符合预设语义规则的时候执行提取所述目标认证原语的语义的步骤,可以避免对所有目标认证原语都提取语义所带来的资源耗费。
如果被认证节点发送的是经过加密的目标认证原语,则执行认证的节点在接收所述目标认证原语之后,提取所述目标认证原语的语义之前,需要对接收到的目标认证原语解密,具体可以包括以下步骤:
(a1)检验所述目标认证原语是否被加密;
(a2)当所述目标认证原语被加密时,分析所述目标认证原语的加密方法;
(a3)获取与所述加密方法对应的解密方法,并使用所述解密方法解密所述目标认证原语。
被认证节点为保证目标认证原语的安全,防止目标认证原语被改写或破坏,可以对目标认证原语加密。对于目标认证原语的加密和解密,在被认证节点和执行认证的节点之间可以建立协议,根据协议被认证节点对目标认证原语都使用规定的加密方法进行加密,执行认证的节点则默认接收到的目标认证原语是经过加密的,并使用预先设置的默认的解密方法进行解密,这种情况下,可以不执行步骤(a1)和步骤(a2)。被认证节点加密目标认证原语的方法可以有多种,例如对认证原语进行字符错位处理。
在一种实施方式下,被认证节点在加密后的目标认证原语中加入算法标识,所述算法标识用于表征被认证节点在加密该目标认证原语时所用的加密算法。执行认证的节点接收到目标认证原语后,步骤(a1)判断接收到的目标认证原语中是否包含所述算法标识,如果包含所述算法标识,则所述目标认证原语为加密数据,然后步骤(a2)分析得到对应于所述算法标识的加密算法,步骤(a3)则在预先存储的解密算法中找到与所述加密算法对应的解密算法,并使用该解密算法解密所述目标认证原语。如果步骤(a1)判断得到的结果是目标认证原语中不包含所述算法标识,则确定所述目标认证原语未被加密。
对一些加密算法而言,其加密后的数据具有独特的数据结构,因此,在另一种实施方式中,被认证节点使用加密后数据有独特的数据结构的加密算法,来加密目标认证原语,执行认证的节点接收到目标认证原语后,步骤(a1)识别目标认证原语的数据结构,并且将识别出的目标认证原语的数据结构,与预先存储的各种数据结构进行比对,如果目标认证原语的数据结构与预先存储的某个数据结构匹配,则确定接收到的目标认证原语是加密的。步骤(a2)则根据与目标认证原语的数据结构相匹配的预先存储的数据结构,得到与该预先存储的数据结构对应的加密算法,然后步骤(a3)在预先存储的解密算法中,查找与该加密算法对应的解密算法,并使用该解密算法解密接收到的目标认证原语。
本实施例提供的技术方案,以生成原语语义库时提取原语库认证原语的语义的方法,提取目标认证原语的语义,作为目标语义,然后验证所述目标语义是否存在与原语语义库中,如果存在,则被认证节点的身份认证通过,否则,被认证节点身份认证失败。由于认证原语及目标认证原语为简单的字符语句,使用已有的语义提取方法提取语义,以及验证目标语义与原语语义库中的语义是否匹配,过程皆简单易行,资源耗费少,且整个认证过程执行认证的节点并不需保存认证状态,只针对当次接收的目标认证原语进行认证,从而使得被认证节点和执行认证的节点之间能够实现按需认证。
参见图3,为本发明实施例提供的一种分布式系统节点身份认证方法的流程示意图,如图3所示,该方法包括如下步骤:
步骤S301,建立原语库,所述原语库为认证原语的集合,所述认证原语为表征被认证节点唯一性的语句,且满足被认证节点的预设语义规则;
步骤S302,根据所述原语库生成原语语义库;
步骤S303,当被认证节点和执行认证的节点之间需要进行身份认证时,被认证节点从所述原语库中选取一个目标认证原语;
步骤S304,被认证节点将所述目标认证原语发送给执行认证的节点;
步骤S305,执行认证的节点接收所述被认证节点发送的目标认证原语;
步骤S306,执行认证的节点提取所述目标认证原语的语义,作为目标语义,并验证所述原语语义库中是否存在所述目标语义;
如果所述原语语义库中存在所述目标语义,则被认证节点的身份认证通过,否则,被认证节点的身份认证失败。
其中,在一种应用场景中,被认证节点在数据访问发起的同时发起身份认证,被认证节点在发送数据的同时需要发送身份认证信息,在本发明中,所述身份认证信息即目标认证原语。在另一种应用场景中,被认证节点先向执行认证的节点发送数据访问请求,执行认证的节点返回身份认证请求消息,被认证节点收到所述身份认证请求消息后,向执行认证的节点发送身份认证信息,在这种情况下,被认证节点收到身份认证请求消息即为被认证节点和执行认证的节点之间需要进行身份认证。
所述原语库预先建立,为认证原语的集合。认证原语为表征被认证节点唯一性的语句,由于无规则的语句难以提取语义,因此认证原语需符合被认证节点的预设语义规则。认证原语的预设语义规则可以为以下几类:
(1)替换类语义规则:根据预设的字符替换表,将语句中的字符用字符替换表中与该字符对应的其他字符替换。
(2)模式类语义规则:认证原语按预设的模式生成,例如在认证原语的偶数字符的后面,加入固定长度的随机字符组合。
(3)标点类语义规则:在认证原语的固定位置加入固定的标点。
预设语义规则并不仅限于上述三种,上述三种也可以两两组合或者三者组合使用。
按照预设语义规则构建认证原语,并将认证原语存储在原语库中,每个认证原语在原语库中对应一个索引,每个被认证节点与其原语库一一对应。原语库中的认证原语至少包含2条,以使认证原语的选取不唯一。原语库可以保存于被认证节点处,也可以与被认证节点分离,原语库与被认证节点分离时,被认证节点通过网络访问原语库。所述原语库可以加密保存或添加访问控制机制,以防止认证原语泄漏。
其中,所述原语语义库预先根据原语库生成。原语语义库为原语库中认证原语的语义的集合。提取原语库中每个认证原语的语义,存储于原语语义库中。所述原语语义库可以位于执行认证的节点,也可以与执行认证的节点分离,所述原语语义库与执行认证的节点分离时,执行认证的节点通过网络访问所述原语语义库。如果被认证节点和执行认证的节点是一一对应的,也就是说一个执行认证的节点只对一个被认证的节点进行认证,则该执行认证的节点访问的原语语义库中,只存储该被认证节点的原语库中认证原语的语义。如果执行认证的节点会对至少两个被认证节点进行认证,则该执行认证的节点访问的原语语义库中,存储对应的被认证节点的原语库中认证原语的语义。在一种实施方式中,所有执行认证的节点可以共用一个原语语义库,也就是提取所有原语库中认证原语的语义,存储在一个原语语义库中。
原语为字符组成的语句,其本质也为数据,原语语义即语句的含义,亦即数据的逻辑表示或者特征。提取原语的语义,即将原语按预设的方式进行逻辑组织,或者按预设的方式提取特征。
在一种实施方式中,根据原语库生成原语语义库,包括:获取原语库的认证原语的哈希值,根据所述认证原语的哈希值构建布隆散列,以所述布隆散列为认证原语的语义的集合,存储于原语语义库中。这种实施方式中,根据原语库生成原语语义库是不可逆的过程,因此可以更好地保护认证原语的安全,攻击者将无法通过原语语义库来得到认证原语,也正因为这样,原语语义库可以公开。使用哈希函数作用于原语库的认证原语,便能获取原语库的认证原语的哈希值。在获取到认证原语的哈希值后,构建布隆散列的方式可以为:将长度为m比特的布隆向量(b1,b2,…,bm)中的所有比特位初始化为0,然后将返回值在1到m间的k个相互独立的快捷HASH函数(h1,h2,…,hk),作用于每个输入的认证原语的哈希值上,得到k个返回值(r1,r2,…,rk),并将布隆向量中位置在r1,r2,…,rk的比特位设置为1,最后得到的整个布隆向量即布隆散列,所述布隆散列存储于原语语义库。
在另一种实施方式中,根据原语库生成所述原语语义库,包括:使用学习算法提取原语库的认证原语的特征,以认证原语的特征的集合作为原语语义库。学习算法有多种,例如支持向量算法等,都可以应用于本发明中。学习算法提取的认证原语的特征,可以为向量,也可以为矩阵,随学习算法的不同而不同。以支持向量算法为例,以原语库中的认证原语为输入,可以得到表征认证原语的特征的支持向量,以认证原语的支持向量的集合为原语语义库。利用学习算法根据原语库生成原语语义库也是不可逆的,有利于保证认证原语的安全,原语语义库也可以公开。
当被认证节点和执行认证的节点之间需要进行身份认证时,被认证节点从原语库中选取一个目标认证原语,选取方式可以为随机选取,也可以按照循环性规律选取。所述随机选取,可以为被认证节点先随机生成一个索引值(所述索引值在原语库的索引值范围内),然后选取原语库中与所述索引值对应的认证原语。所述按照循环性规律选取,可以为被认证节点按照原语库的索引值排列顺序,依次选取索引值对应的认证原语,当多次进行身份认证后,被认证节点选取的认证原语对应的索引值已达到原语库索引值排列的尾端时,在下一次身份认证的时候,被认证节点重新从原语库的索引值排列的第一个索引值开始选取。
另外,为进一步保证被选中的目标认证原语的安全,防止目标认证原语被改写或被破坏,在将目标认证原语发送给执行认证的节点之前,被认证节点还可以将所述目标认证原语加密。被认证节点加密目标认证原语的方法可以有多种,例如对认证原语进行字符错位处理。相应地,执行认证的节点在收到所述目标认证原语后,对所述目标认证原语进行解密。
执行认证的节点接收到所述被认证节点发送的目标认证原语后,提取所述目标认证原语的语义,作为目标语义,并验证所述原语语义库中是否存在所述目标语义。
如果根据原语库生成原语语义库,是获取原语库的认证原语的哈希值后,根据所述认证原语的哈希值构建布隆散列,以所述布隆散列为认证原语的语义的集合,相应地,执行认证的节点接收到目标认证原语后,获取所述目标认证原语的哈希值,获取所述哈希值的方法,与生成原语语义库时获取原语库中认证原语的哈希值的方法相同,执行认证的节点将目标认证原语的哈希值作为目标语义,然后以构建布隆散列时对输入的认证原语的哈希值进行处理的方式一样,处理所述目标语义,得到返回值,然后判断所述布隆散列中对应于所述返回值的比特位是否为1,如果为1,则确定所述目标语义存在于所述布隆散列,如果为0,则确定所述目标语义不存在于所述布隆散列。如果所述目标语义存在于所述布隆散列,则原语语义库中存在所述目标语义,被认证节点的身份认证通过,否则,被认证节点的身份认证失败。
如果根据原语库生成所述原语语义库,是使用学习算法提取原语库的认证原语的特征,以认证原语的特征的集合作为原语语义库。则相应地,执行认证的节点接收到目标认证原语后,使用相同的学习算法提取所述目标认证原语的特征,以目标认证原语的特征为目标语义,然后计算目标语义与原语语义库中特征的匹配度,判断所述匹配度是否大于或等于预设阈值,如果所述匹配度大于或等于所述预设阈值,则所述原语语义库中存在所述目标语义,否则,所述原语语义库中不存在所述目标语义。以支持向量算法为例,以目标认证原语为输入,使用支持向量算法得到表征目标认证原语的特征的支持向量,以所述支持向量为目标语义,然后将该目标语义与原语语义库中的支持向量进行匹配,计算该目标语义与原语语义库中支持向量的匹配度,如果所述匹配度大于或者等于85%,则确定该目标语义存在于原语语义库中,被认证节点的身份认证通过,否则,如果所述匹配度小于85%,则确定该目标语义不存在于原语语义库中,被认证节点的身份认证失败,其中,“85%”为预设阈值。
在执行认证的节点接收被认证节点发送的目标认证原语之后,提取所述目标认证原语的语义之前,还可以加上执行认证的节点检验所述目标认证原语是否符合被认证节点的预设语义规则的步骤。原语库中的认证原语必须符合被认证节点的预设语义规则,如果执行认证的节点接收到的目标认证原语不符合所述预设语义规则,则能够确定该目标认证原语是非法的,被认证节点的身份认证不能通过;如果执行认证的节点接收到的目标认证原语符合所述预设语义规则,则执行提取所述目标认证原语的语义的步骤,对被认证节点的身份进行进一步验证。由于检验目标认证原语是否符合预设语义规则简单易行,资源耗费很小,因此只在目标认证原语符合预设语义规则的时候执行提取所述目标认证原语的语义的步骤,可以避免对所有目标认证原语都提取语义所带来的资源耗费。
如果被认证节点发送的是经过加密的目标认证原语,则执行认证的节点在接收所述目标认证原语之后,提取所述目标认证原语的语义之前,需要对接收到的目标认证原语解密,具体可以包括以下步骤:
(a1)检验所述目标认证原语是否被加密;
(a2)当所述目标认证原语被加密时,分析所述目标认证原语的加密方法;
(a3)获取与所述加密方法对应的解密方法,并使用所述解密方法解密所述目标认证原语。
对于目标认证原语的加密和解密,在被认证节点和执行认证的节点之间可以建立协议,根据协议被认证节点对目标认证原语都使用规定的加密方法进行加密,执行认证的节点则默认接收到的目标认证原语是经过加密的,并使用预先设置的默认的解密方法进行解密,这种情况下,可以不执行步骤(a1)和步骤(a2)。
在一种实施方式下,被认证节点在加密后的目标认证原语中加入算法标识,所述算法标识用于表征被认证节点在加密该目标认证原语时所用的加密算法。执行认证的节点接收到目标认证原语后,步骤(a1)判断接收到的目标认证原语中是否包含所述算法标识,如果包含所述算法标识,则所述目标认证原语为加密数据,然后步骤(a2)分析得到对应于所述算法标识的加密算法,步骤(a3)则在预先存储的解密算法中找到与所述加密算法对应的解密算法,并使用该解密算法解密所述目标认证原语。如果步骤(a1)判断得到的结果是目标认证原语中不包含所述算法标识,则确定所述目标认证原语未被加密。
在另一种实施方式中,被认证节点使用加密后数据有独特的数据结构的加密算法,来加密目标认证原语,执行认证的节点接收到目标认证原语后,步骤(a1)识别目标认证原语的数据结构,并且将识别出的目标认证原语的数据结构,与预先存储的各种数据结构进行比对,如果目标认证原语的数据结构与预先存储的某个数据结构匹配,则确定接收到的目标认证原语是加密的。步骤(a2)则根据与目标认证原语的数据结构相匹配的预先存储的数据结构,得到与该预先存储的数据结构对应的加密算法,然后步骤(a3)在预先存储的解密算法中,查找与该加密算法对应的解密算法,并使用该解密算法解密接收到的目标认证原语。
本实施例所提供的技术方案,以认证原语为认证凭证,由于认证原语只是被认证节点的描述语句,因此认证原语的构建和原语库的建立都简单易行;在被认证节点和执行认证的节点之间需要进行身份认证时,被认证节点从原语库选取目标认证原语发送给执行认证的节点进行身份认证,原语库中可以存在众多的认证原语,这样被认证节点每次发送的目标认证原语都是不唯一的,从而有效防止目标认证原语被破解,也不需耗费时间和资源来维护目标认证原语。被认证节点使用随机选取方式来选取目标认证原语时,由于每次发送的目标认证原语都不可预料,更有利于防止目标认证原语被破解以及减少目标认证原语维护耗费。而且被认证节点可以只在需要进行身份认证的时候选取目标认证原语并发送,且每次的目标认证原语不唯一,被认证节点不需保存认证状态。执行认证的节点接收到被认证节点发送的目标认证原语后,以生成原语语义库时提取原语库认证原语的语义的方法,提取目标认证原语的语义,作为目标语义,然后验证所述目标语义是否存在与原语语义库中。由于认证原语及目标认证原语为简单的字符语句,使用已有的语义提取方法提取语义,以及验证目标语义与原语语义库中的语义是否匹配,过程皆简单易行,资源耗费少,且整个认证过程执行认证的节点也不需保存认证状态,只针对当次接收的目标认证原语进行认证,从而使得被认证节点和执行认证的节点之间能够实现按需认证。
参见图4,为本发明实施例提供的一种分布式系统节点身份认证装置的框图,该装置应用于被认证节点,如图4所示,该装置包括如下:
认证原语选取单元U401,用于当被认证节点和执行认证的节点之间需要进行身份认证时,从原语库中选取一个目标认证原语,所述原语库为认证原语的集合,且预先建立,所述认证原语为满足被认证节点的预设语义规则的语句;
认证原语发送单元U402,用于将所述目标认证原语发送给执行认证的节点。
在一种应用场景中,被认证节点在数据访问发起的同时发起身份认证,也就是被认证节点在数据访问发起的同时需要进行身份认证。在另一种应用场景中,被认证节点先向执行认证的节点发送数据访问请求,执行认证的节点返回身份认证请求消息,被认证节点收到所述身份认证请求消息后,向执行认证的节点发送身份认证信息,在这种情况下,被认证节点收到身份认证请求消息即为被认证节点和执行认证的节点之间需要进行身份认证。
所述原语库预先建立,其为认证原语的集合。认证原语为表征被认证节点唯一性的语句,由于无规则的语句难以提取语义,因此认证原语需符合被认证节点的预设语义规则。认证原语的预设语义规则可以为以下几类:
(1)替换类语义规则:根据预设的字符替换表,将语句中的字符用字符替换表中与该字符对应的其他字符替换。
(2)模式类语义规则:认证原语按预设的模式生成,例如在认证原语的偶数字符的后面,加入固定长度的随机字符组合。
(3)标点类语义规则:在认证原语的固定位置加入固定的标点。
预设语义规则并不仅限于上述三种,上述三种也可以两两组合或者三者组合使用。
按照预设语义规则构建认证原语,并将认证原语存储在原语库中,每个认证原语在原语库中对应一个索引,每个被认证节点与其原语库一一对应。原语库中的认证原语至少包含2条,以使认证原语的选取不唯一。原语库可以保存于被认证节点处,也可以与被认证节点分离,原语库与被认证节点分离时,被认证节点通过网络访问原语库。
当被认证节点和执行认证的节点之间需要进行身份认证时,认证原语选取单元U401从原语库中选取一个目标认证原语,选取方式可以为随机选取,也可以按照循环性规律选取。所述随机选取,可以为认证原语选取单元U401先随机生成一个索引值(所述索引值在原语库的索引值范围内),然后选取原语库中与所述索引值对应的认证原语。认证原语选取单元U401使用随机选取方式来选取目标认证原语时,认证原语发送单U402每次发送的目标认证原语都不可预料,更有利于防止目标认证原语被破解以及减少目标认证原语维护耗费。所述按照循环性规律选取,可以为认证原语选取单元U401按照原语库的索引值排列顺序,依次选取索引值对应的认证原语,当多次进行身份认证后,认证原语选取单元U401选取的认证原语对应的索引值已达到原语库索引值排列的尾端时,在下一次身份认证的时候,认证原语选取单元U401重新从原语库的索引值排列的第一个索引值开始选取。认证原语选取单元U401选取目标认证原语后,认证原语发送单U402将所述目标认证原语发送给执行认证的节点,以使所述执行认证的节点根据所述目标认证原语对被认证节点进行认证。
为保证被选中的目标认证原语的安全,防止目标认证原语被破坏,所述装置还可以包括认证原语加密单元,用于在认证原语发送单U402将目标认证原语发送给执行认证的节点之前,将所述目标认证原语加密。相应地,执行认证的节点在收到所述目标认证原语后,对所述目标认证原语进行解密。
本实施例所提供的装置,在被认证节点和执行认证的节点之间需要进行身份认证时,从原语库选取目标认证原语发送给执行认证的节点进行身份认证,原语库中可以存在众多的认证原语,这样被认证节点每次发送的目标认证原语都是不唯一的,从而有效防止目标认证原语被破解,也不需耗费时间和资源来维护认证凭证,且所述装置可以只在需要进行身份认证的时候选取目标认证原语并发送,且每次的目标认证原语不唯一,不需保存认证状态,从而能够实现按需认证。
参见图5,为本发明实施例还提供的一种分布式系统节点身份认证装置的框图,该装置应用于执行认证的节点,如图5所示,该装置包括如下:
认证原语接收单元U501,用于接收被认证节点发送的目标认证原语;
目标语义提取单元U502,用于提取所述目标认证原语的语义,作为目标语义;
验证单元U503,用于验证原语语义库中是否存在所述目标语义,如果所述原语语义库中存在所述目标语义,则被认证节点的身份认证通过,否则,被认证节点的身份认证失败;
其中,所述原语语义库根据原语库生成,且预先建立,所述原语库为认证原语的集合,且预先建立,所述认证原语为满足被认证节点的预设语义规则的语句。
原语语义库为原语库中认证原语的语义的集合。提取原语库中每个认证原语的语义,存储于原语语义库中。所述原语语义库可以位于执行认证的节点,也可以与执行认证的节点分离,所述原语语义库与执行认证的节点分离时,执行认证的节点通过网络访问所述原语语义库。如果被认证节点和执行认证的节点是一一对应的,也就是说一个执行认证的节点只对一个被认证的节点进行认证,则该执行认证的节点访问的原语语义库中,只存储该被认证节点的原语库中认证原语的语义。如果执行认证的节点会对至少两个被认证节点进行认证,则该执行认证的节点访问的原语语义库中,存储对应的被认证节点的原语库中认证原语的语义。在一种实施方式中,所有执行认证的节点可以共用一个原语语义库,也就是提取所有原语库中认证原语的语义,存储在一个原语语义库中。
在一种实施方式中,根据原语库生成原语语义库,包括:获取原语库的认证原语的哈希值,根据所述认证原语的哈希值构建布隆散列,以所述布隆散列为认证原语的语义的集合,存储于原语语义库中。使用哈希函数作用于原语库的认证原语,便能获取原语库的认证原语的哈希值。在获取到认证原语的哈希值后,构建布隆散列的方式可以为:将长度为m比特的布隆向量(b1,b2,…,bm)中的所有比特位初始化为0,然后将返回值在1到m间的k个相互独立的快捷HASH函数(h1,h2,…,hk),作用于每个输入的认证原语的哈希值上,得到k个返回值(r1,r2,…,rk),并将布隆向量中位置在r1,r2,…,rk的比特位设置为1,最后得到的整个布隆向量即布隆散列,所述布隆散列存储于原语语义库。
相应地,认证原语接收单元U501接收到目标认证原语后,目标语义提取单元U502获取所述目标认证原语的哈希值,获取所述哈希值的方法,与生成原语语义库时获取原语库中认证原语的哈希值的方法相同。目标语义提取单元U502将目标认证原语的哈希值作为目标语义,然后验证单元U503以构建布隆散列时对输入的认证原语的哈希值进行处理的方式一样,处理所述目标语义,得到返回值,然后判断所述布隆散列中对应于所述返回值的比特位是否为1,如果为1,则确定所述目标语义存在于所述布隆散列,如果为0,则确定所述目标语义不存在于所述布隆散列。如果所述目标语义存在于所述布隆散列,则原语语义库中存在所述目标语义,被认证节点的身份认证通过,否则,被认证节点的身份认证失败。
在另一种实施方式中,根据原语库生成所述原语语义库,包括:使用学习算法提取原语库的认证原语的特征,以认证原语的特征的集合作为原语语义库。学习算法提取的认证原语的特征,可以为向量,也可以为矩阵,随学习算法的不同而不同。以支持向量算法为例,以原语库中的认证原语为输入,可以得到表征认证原语的特征的支持向量,以认证原语的支持向量的集合为原语语义库。
相应地,认证原语接收单元U501接收到目标认证原语后,目标语义提取单元U502使用相同的学习算法提取所述目标认证原语的特征,以目标认证原语的特征为目标语义,然后验证单元U503计算目标语义与原语语义库中特征的匹配度,判断所述匹配度是否大于或等于预设阈值,如果所述匹配度大于或等于所述预设阈值,则所述原语语义库中存在所述目标语义,否则,所述原语语义库中不存在所述目标语义。以支持向量算法为例,目标语义提取单元U502以目标认证原语为输入,使用支持向量算法得到表征目标认证原语的特征的支持向量,以所述支持向量为目标语义,然后验证单元U503将该目标语义与原语语义库中的支持向量进行匹配,计算该目标语义与原语语义库中支持向量的匹配度,如果所述匹配度大于或者等于85%,则确定该目标语义存在于原语语义库中,被认证节点的身份认证通过,否则,如果所述匹配度小于85%,则确定该目标语义不存在于原语语义库中,被认证节点的身份认证失败,其中,“85%”为预设阈值。
原语库中的认证原语必须符合被认证节点的预设语义规则,如果认证原语接收单元U501接收到的目标认证原语不符合所述预设语义规则,则能够确定该目标认证原语是非法的,被认证节点的身份认证不能通过;如果认证原语接收单元U501接收到的目标认证原语符合所述预设语义规则,则对被认证节点的身份进行进一步验证。因此,所述装置还可以包括预检验单元和提取使能单元,所述预检验单元用于检验所述目标认证原语是否符合被认证节点的预设语义规则;所述提取使能单元,用于当所述目标认证原语符合所述预设语义规则时,使能所述目标语义提取单元。
由于检验目标认证原语是否符合预设语义规则简单易行,资源耗费很小,因此只在预检验单元得到的结果为目标认证原语符合预设语义规则的时候,提取使能单元使能目标语义提取单元U502,由目标语义提取单元U502提取所述目标认证原语的语义,可以避免对所有目标认证原语都提取语义所带来的资源耗费。
可选的,如果被认证节点发送的是经过加密的目标认证原语,则所述装置,还可以包括:
加密检验单元,用于在所述执行认证的节点接收所述目标认证原语之后,提取所述目标认证原语的语义之前,检验所述目标认证原语是否被加密;
加密方法分析模块,用于当所述目标认证原语被加密时,分析所述目标认证原语的加密方法;
解密模块,用于获取与所述加密方法对应的解密方法,并解密所述目标认证原语。
本实施例提供的装置,其中,目标语义提取单元U502以生成原语语义库时提取原语库认证原语的语义的方法,提取目标认证原语的语义,作为目标语义,然后验证单元U503验证所述目标语义是否存在与原语语义库中,如果存在,则被认证节点的身份认证通过,否则,被认证节点身份认证失败。由于认证原语及目标认证原语为简单的字符语句,使用已有的语义提取方法提取语义,以及验证目标语义与原语语义库中的语义是否匹配,过程皆简单易行,资源耗费少,且整个认证过程执行认证的节点并不需保存认证状态,从而使得被认证节点和执行认证的节点之间能够实现按需认证。
参见图6,为本发明实施例提供的一种分布式系统节点身份认证装置的框图,该装置应用于执行认证的节点,如图6所示,该装置包括如下:
原语库建立单元U601,用于建立原语库,所述原语库为认证原语的集合,所述认证原语为表征被认证节点唯一性的语句,且满足被认证节点的预设语义规则;
原语语义库生成单元U602,用于根据所述原语库生成原语语义库;
认证原语选取单元U603,应用于被认证节点,用于当被认证节点和执行认证的节点之间需要进行身份认证时,从原语库中选取一个目标认证原语;
认证原语发送单元U604,应用于被认证节点,用于将所述目标认证原语发送给执行认证的节点;
认证原语接收单元U605,应用于执行认证的节点,用于接收被认证节点发送的目标认证原语;
目标语义提取单元U606,应用于执行认证的节点,用于提取所述目标认证原语的语义,作为目标语义;
验证单元U607,应用于执行认证的节点,用于验证原语语义库中是否存在所述目标语义,如果所述原语语义库中存在所述目标语义,则被认证节点的身份认证通过,否则,被认证节点的身份认证失败。
图6中的虚线表示认证原语接收单元U605,与认证原语发送单元U604通过网络进行连接。
其中,在一种应用场景中,被认证节点在数据访问发起的同时发起身份认证,被认证节点在发送数据的同时需要发送身份认证信息,在本发明中,所述身份认证信息即目标认证原语。在另一种应用场景中,被认证节点先向执行认证的节点发送数据访问请求,执行认证的节点返回身份认证请求消息,被认证节点收到所述身份认证请求消息后,向执行认证的节点发送身份认证信息,在这种情况下,被认证节点收到身份认证请求消息即为被认证节点和执行认证的节点之间需要进行身份认证。
原语库建立单元U601预先建立原语库,先构建认证原语,然后以认证原语的集合为原语库。认证原语为表征被认证节点唯一性的语句,由于无规则的语句难以提取语义,因此认证原语需符合被认证节点的预设语义规则。认证原语的预设语义规则可以为以下几类:
(1)替换类语义规则:根据预设的字符替换表,将语句中的字符用字符替换表中与该字符对应的其他字符替换。
(2)模式类语义规则:认证原语按预设的模式生成,例如在认证原语的偶数字符的后面,加入固定长度的随机字符组合。
(3)标点类语义规则:在认证原语的固定位置加入固定的标点。
预设语义规则并不仅限于上述三种,上述三种也可以两两组合或者三者组合使用。
原语库建立单元U601按照预设语义规则构建认证原语,认证原语的集合构成库,并且原语库建立单元U601建立原语库时,为每个认证原语在原语库设置一个对应的索引。每个被认证节点与其原语库一一对应。原语库建立单元U601建立的原语库,其中的认证原语至少包含2条,以使认证原语的选取不唯一。原语库建立单元U601建立的原语库可以保存于被认证节点处,也可以保存于分布式系统的其他地方,与被认证节点分离,原语库与被认证节点分离时,被认证节点通过网络访问原语库。原语库建立单元U601建立原语库时还可以为所述原语库可以加密保存或添加访问控制机制,以防止认证原语泄漏。
原语语义库生成单元U602预先根据原语库生成原语语义库。原语语义库为原语库中认证原语的语义的集合。原语语义库生成单元U602提取原语库中每个认证原语的语义,存储于原语语义库中。原语语义库生成单元U602可以将生成的原语语义库保存于执行认证的节点,也可以保存在分布式系统的其他地方,与执行认证的节点分离,所述原语语义库与执行认证的节点分离时,执行认证的节点通过网络访问所述原语语义库。如果被认证节点和执行认证的节点是一一对应的,也就是说一个执行认证的节点只对一个被认证的节点进行认证,则原语语义库生成单元U602只提取该被认证节点的原语库中认证原语的语义。如果执行认证的节点会对至少两个被认证节点进行认证,则原语语义库生成单元U602提取对应的被认证节点的原语库中认证原语的语义。在一种实施方式中,所有执行认证的节点可以共用一个原语语义库,原语语义库生成单元U602提取所有原语库中认证原语的语义,将所有原语库中认证原语的语义集合成一个原语语义库中。
在一种实施方式中,原语语义库生成单元U602获取原语库的认证原语的哈希值后,根据所述认证原语的哈希值构建布隆散列,以所述布隆散列为认证原语的语义的集合,存储于原语语义库中。这种实施方式中,根据原语库生成原语语义库是不可逆的过程,因此可以更好地保护认证原语的安全,攻击者将无法通过原语语义库来得到认证原语,也正因为这样,原语语义库可以公开。原语语义库生成单元U602使用哈希函数作用于原语库的认证原语,便能获取原语库的认证原语的哈希值。原语语义库生成单元U602在获取到认证原语的哈希值后,构建布隆散列的方式可以为:将长度为m比特的布隆向量(b1,b2,…,bm)中的所有比特位初始化为0,然后将返回值在1到m间的k个相互独立的快捷HASH函数(h1,h2,…,hk),作用于每个输入的认证原语的哈希值上,得到k个返回值(r1,r2,…,rk),并将布隆向量中位置在r1,r2,…,rk的比特位设置为1,最后得到的整个布隆向量即布隆散列,所述布隆散列存储于原语语义库。
在另一种实施方式中,原语语义库生成单元U602使用学习算法提取原语库的认证原语的特征,以认证原语的特征的集合作为原语语义库。使用学习算法提取的认证原语的特征,可以为向量,也可以为矩阵,随学习算法的不同而不同。以支持向量算法为例,原语语义库生成单元U602以原语库中的认证原语为输入,可以得到表征认证原语的特征的支持向量,以认证原语的支持向量的集合为原语语义库。利用学习算法根据原语库生成原语语义库也是不可逆的,有利于保证认证原语的安全,原语语义库也可以公开。
当被认证节点和执行认证的节点之间需要进行身份认证时,应用于被认证节点的认证原语选取单元U603从原语库中选取一个目标认证原语,选取方式可以为随机选取,也可以按照循环性规律选取。所述随机选取,可以为认证原语选取单元U603先随机生成一个索引值(所述索引值在原语库的索引值范围内),然后选取原语库中与所述索引值对应的认证原语。所述按照循环性规律选取,可以为认证原语选取单元U603按照原语库的索引值排列顺序,依次选取索引值对应的认证原语,当多次进行身份认证后,认证原语选取单元U603选取的认证原语对应的索引值已达到原语库索引值排列的尾端时,在下一次身份认证的时候,认证原语选取单元U603重新从原语库的索引值排列的第一个索引值开始选取。
另外,为进一步保证被选中的目标认证原语的安全,防止目标认证原语被改写或被破坏,所述装置还可以包括加密单元,用于在认证原语发送单元U604将目标认证原语发送给执行认证的节点之前,将所述目标认证原语加密。加密单元加密目标认证原语的方法可以有多种,例如对认证原语进行字符错位处理。相应地,执行认证的节点在收到所述目标认证原语后,对所述目标认证原语进行解密。
应用于执行认证的节点的认证原语接收单元U605,接收到所述被认证节点发送的目标认证原语后,目标语义提取单元U606提取所述目标认证原语的语义,作为目标语义,然后验证单元U607验证所述原语语义库中是否存在所述目标语义。
如果原语语义库建立单元U602,是获取原语库的认证原语的哈希值后,根据所述认证原语的哈希值构建布隆散列,以所述布隆散列为认证原语的语义的集合,则相应地,认证原语接收单元U605接收到目标认证原语后,目标语义提取单元U606获取所述目标认证原语的哈希值,获取所述哈希值的方法,与生成原语语义库时获取原语库中认证原语的哈希值的方法相同,目标语义提取单元U606将目标认证原语的哈希值作为目标语义,然后验证单元U607以构建布隆散列时对输入的认证原语的哈希值进行处理的方式一样,处理所述目标语义,得到返回值,然后判断所述布隆散列中对应于所述返回值的比特位是否为1,如果为1,则确定所述目标语义存在于所述布隆散列,如果为0,则确定所述目标语义不存在于所述布隆散列。如果所述目标语义存在于所述布隆散列,则原语语义库中存在所述目标语义,被认证节点的身份认证通过,否则,被认证节点的身份认证失败。
原语语义库建立单元U602,是使用学习算法提取原语库的认证原语的特征,以认证原语的特征的集合作为原语语义库。则相应地,认证原语接收单元U605接收到目标认证原语后,目标语义提取单元U606使用相同的学习算法提取所述目标认证原语的特征,以目标认证原语的特征为目标语义,然后验证单元U607计算目标语义与原语语义库中特征的匹配度,判断所述匹配度是否大于或等于预设阈值,如果所述匹配度大于或等于所述预设阈值,则所述原语语义库中存在所述目标语义,否则,所述原语语义库中不存在所述目标语义。以支持向量算法为例,目标语义提取单元U606以目标认证原语为输入,使用支持向量算法得到表征目标认证原语的特征的支持向量,以所述支持向量为目标语义,然后验证单元U607将该目标语义与原语语义库中的支持向量进行匹配,计算该目标语义与原语语义库中支持向量的匹配度,如果所述匹配度大于或者等于85%,则确定该目标语义存在于原语语义库中,被认证节点的身份认证通过,否则,则确定该目标语义不存在于原语语义库中,被认证节点的身份认证失败。
原语库中的认证原语必须符合被认证节点的预设语义规则,如果认证原语接收单元U605接收到的目标认证原语不符合所述预设语义规则,则能够确定该目标认证原语是非法的,被认证节点的身份认证不能通过;如果认证原语接收单元U605接收到的目标认证原语符合所述预设语义规则,则对被认证节点的身份进行进一步验证。因此,所述装置还可以包括预检验单元和提取使能单元,所述预检验单元用于检验所述目标认证原语是否符合被认证节点的预设语义规则;所述提取使能单元,用于当所述目标认证原语符合所述预设语义规则时,使能所述目标语义提取单元。
由于检验目标认证原语是否符合预设语义规则简单易行,资源耗费很小,因此只在预检验单元得到的结果为目标认证原语符合预设语义规则的时候,提取使能单元使能目标语义提取单元U606,由目标语义提取单元U606提取所述目标认证原语的语义,可以避免对所有目标认证原语都提取语义所带来的资源耗费。
可选的,如果被认证节点发送的是经过加密的目标认证原语,则所述装置,还可以包括:
加密检验单元,用于在所述执行认证的节点接收所述目标认证原语之后,提取所述目标认证原语的语义之前,检验所述目标认证原语是否被加密;
加密方法分析模块,用于当所述目标认证原语被加密时,分析所述目标认证原语的加密方法;
解密模块,用于获取与所述加密方法对应的解密方法,并解密所述目标认证原语。
本实施例所提供的装置,认证原语的构建和原语库的建立都简单易行;在被认证节点和执行认证的节点之间需要进行身份认证时,认证原语选取单元U603从原语库选取目标认证原语发送给执行认证的节点进行身份认证,原语库中可以存在众多的认证原语,这样认证原语选取单元U604每次发送的目标认证原语都是不唯一的,从而有效防止目标认证原语被破解,也不需耗费时间和资源来维护目标认证原语,而且所述装置可以只在需要进行身份认证的时候选取目标认证原语并发送,且每次的目标认证原语不唯一,因而被认证节点不需保存认证状态。认证原语接收单元U605接收到认证原语选取单元U604发送的目标认证原语后,认证原语提取单元U604以生成原语语义库时提取原语库认证原语的语义的方法,提取目标认证原语的语义,作为目标语义,然后验证单元U607验证所述目标语义是否存在与原语语义库中。由于认证原语及目标认证原语为简单的字符语句,使用已有的语义提取方法提取语义,以及验证目标语义与原语语义库中的语义是否匹配,过程皆简单易行,资源耗费少,且整个认证过程执行认证的节点也不需保存认证状态,从而使得被认证节点和执行认证的节点之间能够实现按需认证。
本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述的本发明实施方式,并不构成对本发明保护范围的限定。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (24)

1.一种分布式系统节点身份认证方法,应用于执行认证的节点,其特征在于,包括:
接收被认证节点发送的目标认证原语;
提取所述目标认证原语的语义,作为目标语义,并验证原语语义库中是否存在所述目标语义;
如果所述原语语义库中存在所述目标语义,则被认证节点的身份认证通过,否则,被认证节点的身份认证失败;
其中,所述原语语义库预先根据原语库生成,所述原语库为认证原语的集合,所述认证原语为表征被认证节点唯一性的语句,且满足被认证节点的预设语义规则。
2.如权利要求1所述的分布式系统节点身份认证方法,其特征在于,
所述提取所述目标认证原语的语义,作为目标语义,并验证原语语义库中是否存在所述目标语义,包括:获取所述目标认证原语的哈希值,作为目标语义,并验证所述目标语义是否存在于所述原语语义库的布隆散列;
所述布隆散列,为获取原语库的认证原语的哈希值后,根据所述认证原语的哈希值构建而成,所述原语语义库由所述布隆散列组成。
3.如权利要求1所述的分布式系统节点身份认证方法,其特征在于,
所述提取所述目标认证原语的语义,作为目标语义,并验证原语语义库中是否存在所述目标语义,包括:
使用学习算法提取所述目标认证原语的特征,作为目标语义;
计算所述目标语义与所述原语语义库中特征的匹配度;
判断所述匹配度是否大于或等于预设阈值,如果所述匹配度大于或等于所述预设阈值,则所述原语语义库中存在所述目标语义,否则,所述原语语义库中不存在所述目标语义;
其中,所述原语语义库为所述原语库中认证原语的特征的集合,所述认证原语的特征通过对认证原语使用所述学习算法提取得到。
4.如权利要求1所述的分布式系统节点身份认证方法,其特征在于,在接收被认证节点发送的目标认证原语之后,提取所述目标认证原语的语义之前,还包括:
检验所述目标认证原语是否符合被认证节点的预设语义规则;
当所述目标认证原语符合所述预设语义规则时,允许执行提取所述目标认证原语的语义的步骤。
5.如权利要求1至4任一项所述的分布式系统节点身份认证方法,其特征在于,在接收被认证节点发送的目标认证原语之后,提取所述目标认证原语的语义之前,还包括:
检验所述目标认证原语是否被加密;
当所述目标认证原语被加密时,分析所述目标认证原语的加密方法;
获取与所述加密方法对应的解密方法,并使用所述解密方法解密所述目标认证原语。
6.一种分布式系统节点身份认证方法,其特征在于,包括:
建立原语库,所述原语库为认证原语的集合,所述认证原语为表征被认证节点唯一性的语句,且满足被认证节点的预设语义规则;
根据所述原语库生成原语语义库;
当被认证节点和执行认证的节点之间需要进行身份认证时,被认证节点从所述原语库中选取一个目标认证原语;
被认证节点将所述目标认证原语发送给执行认证的节点;
执行认证的节点接收所述被认证节点发送的目标认证原语;
执行认证的节点提取所述目标认证原语的语义,作为目标语义,并验证所述原语语义库中是否存在所述目标语义;
如果所述原语语义库中存在所述目标语义,则被认证节点的身份认证通过,否则,被认证节点的身份认证失败。
7.如权利要求6所述的分布式系统节点身份认证方法,其特征在于,当被认证节点和执行认证的节点之间需要进行身份认证时,所述被认证节点从所述原语库中随机选取一个目标认证原语。
8.如权利要求6所述的分布式系统节点身份认证方法,其特征在于,
所述根据所述原语库生成原语语义库,包括:获取原语库的认证原语的哈希值,并根据所述认证原语的哈希值构建布隆散列;
所述提取所述目标认证原语的语义,作为目标语义,并验证原语语义库中是否存在所述目标语义,包括:获取所述目标认证原语的哈希值,作为目标语义,并验证所述目标语义是否存在于所述布隆散列。
9.如权利要求6所述的分布式系统节点身份认证方法,其特征在于,
所述根据所述原语库生成原语语义库,包括:使用学习算法提取原语库中认证原语的特征,以所述特征的集合为原语语义库;
所述提取所述目标认证原语的语义,作为目标语义,并验证原语语义库中是否存在所述目标语义,包括:
使用所述学习算法提取所述目标认证原语的特征,作为目标语义;
计算所述目标语义与所述原语语义库中特征的匹配度;
判断所述匹配度是否大于或等于预设阈值,如果所述匹配度大于或等于所述预设阈值,则所述原语语义库中存在所述目标语义,否则,所述原语语义库中不存在所述目标语义。
10.如权利要求6所述的分布式系统节点身份认证方法,其特征在于,在接收所述被认证节点发送的目标认证原语之后,提取所述目标认证原语的语义之前,还包括:
执行认证的节点检验所述目标认证原语是否符合被认证节点的预设语义规则;
当所述目标认证原语符合所述预设语义规则时,允许执行提取所述目标认证原语的语义的步骤。
11.如权利要求6至10任一项所述的分布式系统节点身份认证方法,其特征在于,在将所述目标认证原语发送给执行认证的节点之前,还包括:被认证节点加密所述目标认证原语。
12.如权利要求11所述的分布式系统节点身份认证方法,其特征在于,在接收被认证节点发送的目标认证原语之后,提取所述目标认证原语的语义之前,还包括:
执行认证的节点检验所述目标认证原语是否被加密;
当所述目标认证原语被加密时,分析所述目标认证原语的加密方法;
获取与所述加密方法对应的解密方法,并使用所述解密方法解密所述目标认证原语。
13.一种分布式系统节点身份认证装置,应用于执行认证的节点,其特征在于,包括:
认证原语接收单元,用于接收被认证节点发送的目标认证原语;
目标语义提取单元,用于提取所述目标认证原语的语义,作为目标语义;
验证单元,用于验证原语语义库中是否存在所述目标语义,如果所述原语语义库中存在所述目标语义,则被认证节点的身份认证通过,否则,被认证节点的身份认证失败;
其中,所述原语语义库预先根据原语库生成,所述原语库为认证原语的集合,所述认证原语为表征被认证节点唯一性的语句,且满足被认证节点的预设语义规则。
14.如权利要求13所述的分布式系统节点身份认证装置,其特征在于,
所述目标语义提取单元,具体用于:获取所述目标认证原语的哈希值,作为目标语义;
所述验证单元,具体用于:验证所述目标语义是否存在于布隆散列;
其中,所述布隆散列,为获取所述原语库的认证原语的哈希值后,根据所述认证原语的哈希值构建而成,所述原语语义库由所述布隆散列组成。
15.如权利要求13所述的分布式系统节点身份认证装置,其特征在于,
所述目标语义提取单元具体用于:使用学习算法提取所述目标认证原语的特征,作为目标语义;
所述验证单元具体用于:
计算所述目标语义与所述原语语义库中特征的匹配度;
判断所述匹配度是否大于或等于预设阈值,如果所述匹配度大于或等于所述预设阈值,则所述原语语义库中存在所述目标语义,否则,所述原语语义库中不存在所述目标语义;
其中,所述原语语义库为所述原语库中认证原语的特征的集合,所述认证原语的特征通过对认证原语使用所述学习算法提取得到。
16.如权利要求13所述的分布式系统节点身份认证装置,其特征在于,还包括:
预检验单元,用于检验所述目标认证原语是否符合被认证节点的预设语义规则;
提取使能单元,用于当所述目标认证原语符合所述预设语义规则时,使能所述目标语义提取单元。
17.如权利要求13至16任一项所述的分布式系统节点身份认证装置,其特征在于,还包括认证原语解密单元,所述认证原语解密单元包括:
加密检验模块,用于在接收所述目标认证原语之后,提取所述目标认证原语的语义之前,检验所述目标认证原语是否被加密;
加密方法分析模块,用于当所述目标认证原语被加密时,分析所述目标认证原语的加密方法;
解密模块,用于获取与所述加密方法对应的解密方法,并使用所述解密方法解密所述目标认证原语。
18.一种分布式系统节点身份认证装置,其特征在于,包括:
原语库建立单元,用于建立原语库,所述原语库为认证原语的集合,所述认证原语为表征被认证节点唯一性的语句,且满足被认证节点的预设语义规则;
原语语义库生成单元,用于根据所述原语库生成原语语义库;
认证原语选取单元,应用于被认证节点,用于当被认证节点和执行认证的节点之间需要进行身份认证时,从原语库中选取一个目标认证原语;
认证原语发送单元,应用于被认证节点,用于将所述目标认证原语发送给执行认证的节点;
认证原语接收单元,应用于执行认证的节点,用于接收被认证节点发送的目标认证原语;
目标语义提取单元,应用于执行认证的节点,用于提取所述目标认证原语的语义,作为目标语义;
验证单元,应用于执行认证的节点,用于验证原语语义库中是否存在所述目标语义,如果所述原语语义库中存在所述目标语义,则被认证节点的身份认证通过,否则,被认证节点的身份认证失败。
19.如权利要求18所述的分布式系统节点身份认证装置,其特征在于,所述认证原语选取单元,具体用于:当被认证节点和执行认证的节点之间需要进行身份认证时,从所述原语库中随机选取一个目标认证原语。
20.如权利要求18所述的分布式系统节点身份认证装置,其特征在于,
所述原语语义库生成单元,具体用于获取原语库的认证原语的哈希值,根据所述认证原语的哈希值构建布隆散列,并根据所述布隆散列组成原语语义库;
所述目标语义提取单元具体用于:获取所述目标认证原语的哈希值,作为目标语义;
所述验证单元具体用于:验证所述目标语义是否存在于所述布隆散列。
21.如权利要求18所述的分布式系统节点身份认证装置,其特征在于,
所述原语语义库生成单元,具体用于使用学习算法提取原语库中认证原语的特征,以所述特征的集合作为原语语义库;
所述目标语义提取单元具体用于:使用所述学习算法提取所述目标认证原语的特征,作为目标语义;
所述验证单元具体用于:
计算所述目标语义与所述原语语义库中特征的匹配度;
判断所述匹配度是否大于或等于预设阈值,如果所述匹配度大于或等于所述预设阈值,则所述原语语义库中存在所述目标语义,否则,所述原语语义库中不存在所述目标语义。
22.如权利要求18所述的分布式系统节点身份认证装置,其特征在于,还包括:
预检验单元,应用于执行认证的节点,用于检验所述目标认证原语是否符合被认证节点的预设语义规则;
提取使能单元,应用于执行认证的节点,用于当所述目标认证原语符合所述预设语义规则时,使能所述目标语义提取单元。
23.如权利要求18至22任一项所述的分布式系统节点身份认证装置,其特征在于,还包括认证原语加密单元,所述认证原语加密单元,应用于被认证节点,用于在将所述目标认证原语发送给执行认证的节点之前,将所述目标认证原语加密。
24.如权利要求23所述的分布式系统节点身份认证装置,其特征在于,还包括认证原语解密单元,所述认证原语解密单元,应用于执行认证的节点,包括:
加密检验模块,用于在接收所述目标认证原语之后,提取所述目标认证原语的语义之前,检验所述目标认证原语是否被加密;
加密方法分析模块,用于当所述目标认证原语被加密时,分析所述目标认证原语的加密方法;
解密模块,用于获取与所述加密方法对应的解密方法,并使用所述解密方法解密所述目标认证原语。
CN201510465057.3A 2015-07-31 2015-07-31 分布式系统节点身份认证方法及装置 Active CN105071941B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201510465057.3A CN105071941B (zh) 2015-07-31 2015-07-31 分布式系统节点身份认证方法及装置
PCT/CN2016/087704 WO2017020669A1 (zh) 2015-07-31 2016-06-29 分布式系统节点身份认证方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510465057.3A CN105071941B (zh) 2015-07-31 2015-07-31 分布式系统节点身份认证方法及装置

Publications (2)

Publication Number Publication Date
CN105071941A true CN105071941A (zh) 2015-11-18
CN105071941B CN105071941B (zh) 2019-01-18

Family

ID=54501228

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510465057.3A Active CN105071941B (zh) 2015-07-31 2015-07-31 分布式系统节点身份认证方法及装置

Country Status (2)

Country Link
CN (1) CN105071941B (zh)
WO (1) WO2017020669A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017020669A1 (zh) * 2015-07-31 2017-02-09 华为技术有限公司 分布式系统节点身份认证方法及装置
CN107113319A (zh) * 2016-07-14 2017-08-29 华为技术有限公司 一种虚拟网络计算认证中应答的方法、装置、系统和代理服务器
CN116827520A (zh) * 2023-08-30 2023-09-29 环球数科集团有限公司 一种基于web3技术的分布式身份认证系统

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108111599B (zh) * 2017-12-19 2021-01-05 深圳马可孛罗科技有限公司 一种不稳定网络环境下的数据请求方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100043054A1 (en) * 2008-08-12 2010-02-18 International Business Machines Corporation Authentication of user database access
CN101695035A (zh) * 2009-10-21 2010-04-14 成都市华为赛门铁克科技有限公司 流量识别方法及装置
CN104348624A (zh) * 2013-08-09 2015-02-11 阿里巴巴集团控股有限公司 一种哈希认证可信度的方法和装置
CN104636662A (zh) * 2013-11-15 2015-05-20 华为技术有限公司 一种数据处理方法和终端设备

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8583574B2 (en) * 2008-08-06 2013-11-12 Delfigo Corporation Method of and apparatus for combining artificial intelligence (AI) concepts with event-driven security architectures and ideas
CN101848479B (zh) * 2010-04-09 2012-08-08 西安电子科技大学 无线网络安全协议仿真系统及仿真方法
CN103986725A (zh) * 2014-05-29 2014-08-13 中国农业银行股份有限公司 一种客户端、服务器端以及身份认证系统和方法
CN105071941B (zh) * 2015-07-31 2019-01-18 华为技术有限公司 分布式系统节点身份认证方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100043054A1 (en) * 2008-08-12 2010-02-18 International Business Machines Corporation Authentication of user database access
CN101695035A (zh) * 2009-10-21 2010-04-14 成都市华为赛门铁克科技有限公司 流量识别方法及装置
CN104348624A (zh) * 2013-08-09 2015-02-11 阿里巴巴集团控股有限公司 一种哈希认证可信度的方法和装置
CN104636662A (zh) * 2013-11-15 2015-05-20 华为技术有限公司 一种数据处理方法和终端设备

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017020669A1 (zh) * 2015-07-31 2017-02-09 华为技术有限公司 分布式系统节点身份认证方法及装置
CN107113319A (zh) * 2016-07-14 2017-08-29 华为技术有限公司 一种虚拟网络计算认证中应答的方法、装置、系统和代理服务器
US11140162B2 (en) 2016-07-14 2021-10-05 Huawei Technologies Co., Ltd. Response method and system in virtual network computing authentication, and proxy server
CN116827520A (zh) * 2023-08-30 2023-09-29 环球数科集团有限公司 一种基于web3技术的分布式身份认证系统
CN116827520B (zh) * 2023-08-30 2023-10-27 环球数科集团有限公司 一种基于web3技术的分布式身份认证系统

Also Published As

Publication number Publication date
WO2017020669A1 (zh) 2017-02-09
CN105071941B (zh) 2019-01-18

Similar Documents

Publication Publication Date Title
EP0711480B1 (en) Method and system for authenticated secure key distribution in a communication system
CN106060078B (zh) 应用于云平台的用户信息加密方法、注册方法及验证方法
CN104243494B (zh) 一种数据处理方法
Malik et al. Novel authentication system using visual cryptography
Nayak et al. An improved mutual authentication framework for cloud computing
CN112115461B (zh) 设备认证方法、装置、计算机设备和存储介质
CN109861956B (zh) 基于状态通道的数据验证系统、方法、装置及设备
CN102724041A (zh) 一种基于隐写术的密钥传输与密钥更新方法
CN110381055A (zh) 医疗供应链中的rfid系统隐私保护认证协议方法
CN111211905A (zh) 一种基于无证书认证的Fabric联盟链成员身份管理方法
CN110493162A (zh) 基于可穿戴设备的身份认证方法及系统
CN105071941A (zh) 分布式系统节点身份认证方法及装置
CN105791274A (zh) 一种基于局域网的分布式加密存储和鉴权方法
Bhandari et al. Enhancement of MD5 Algorithm for Secured Web Development.
CN116743470A (zh) 业务数据加密处理方法及装置
Jones et al. Information Security: A Coordinated Strategy to Guarantee Data Security in Cloud Computing
CN110519222A (zh) 基于一次性非对称密钥对和密钥卡的外网接入身份认证方法和系统
Kumar et al. Data protection and outsourcing in cloud with Linear programming and image based OTP
CN106257859A (zh) 一种密码使用方法
CN107733936A (zh) 一种移动数据的加密方法
CN105162592A (zh) 一种认证可穿戴设备的方法及系统
CN109412799B (zh) 一种生成本地密钥的系统及其方法
CN104394532A (zh) 移动端防暴力破解的安全登录方法
CN114553557B (zh) 密钥调用方法、装置、计算机设备和存储介质
Jabbar et al. Design and implementation of hybrid EC-RSA security algorithm based on TPA for cloud storage

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant