CN111314090B - 一种基于比特级门限的安全多云端口令管理方法 - Google Patents

一种基于比特级门限的安全多云端口令管理方法 Download PDF

Info

Publication number
CN111314090B
CN111314090B CN202010220163.6A CN202010220163A CN111314090B CN 111314090 B CN111314090 B CN 111314090B CN 202010220163 A CN202010220163 A CN 202010220163A CN 111314090 B CN111314090 B CN 111314090B
Authority
CN
China
Prior art keywords
password
data
website
algorithm
information
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
CN202010220163.6A
Other languages
English (en)
Other versions
CN111314090A (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.)
Beihang University
Original Assignee
Beihang University
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 Beihang University filed Critical Beihang University
Priority to CN202010220163.6A priority Critical patent/CN111314090B/zh
Publication of CN111314090A publication Critical patent/CN111314090A/zh
Application granted granted Critical
Publication of CN111314090B publication Critical patent/CN111314090B/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/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
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • 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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • 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
    • 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/0863Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords

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)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种基于比特级门限的安全多云端口令管理方法,该方法对PBKDF2算法进行改进,并基于改良PBKDF2算法对用主口令进行密钥拓展,再通过特殊的字节编码方式导出针对具体网站的强口令,以此实现口令生成。而在口令信息的处理和上传过程中使用AONT编码,并采用了基于RS纠错码的秘密共享方法对用户网站的强口令进行加密处理与分片,设置了(n,k)门限,最终将这些分片存储在多个云服务器上。该方法不仅生成的口令强度高,而且可以有效地防止数据块丢失和数据篡改,安全性较强;并且采用浏览器插件的形式实现让系统的使用更加便捷,用户可以有选择地使用主口令对不同的网站进行口令管理,使系统更加高效。

Description

一种基于比特级门限的安全多云端口令管理方法
技术领域
本发明涉及一种口令管理方法,尤其涉及一种基于RS的比特级门限方法及多云端存储的口令管理方法。
背景技术
网络技术快速发展,社会信息化程度不断提高,互联网用户和网站域名数量也不断升高。互联网规模增大给人们生活带来便捷的同时,也意味着对网络系统安全性的更多、更高需求。其中网络中口令的安全性问题更是引人注目。对普通用户来说,口令即是密码。众多的口令如果设置过于简单则会增加被暴力破解的危险,而将这些口令均设置成一样也会增加额外的风险,即如果某一个网站的口令泄露会导致其他网站的口令全部泄露。因此,这些口令需要尽量随机、可变且相互无关联,但这给用户记忆大量的口令和不定时更新口令带来困难。因此,口令管理系统有了现实需求,用户期望有一个口令管理系统,在尽可能安全的情况下,来帮助自己生成尽量随机、复杂的口令并对这些口令进行管理。
离线模式是口令管理系统的一种常用模式,其将用户的口令信息存储在本地,也正因如此,其一般不具有终端移动性。在线模式是口令管理系统的另一种常用模式,这种模式将口令信息存储在云端服务器,其优势在于:不额外占用用户资源,集中存储更易管理;本发明也采用了该种模式。专利[1](题目:一种基于云计算的口令管理方法及系统;专利申请号:CN 201410160405.1)给出了一种基于云计算的口令管理方法,用1个主口令来管理其他口令,并针对口令管理中的一些问题进行改进,但是单个云服务器存储在安全性方面存在着很大的局限性,因此人们在此基础上又发展了分布云存储也就是多云的设计方法。所谓多云存储方法,并不是简单的将一个服务器的信息重复备份到多个服务器上,因为这样会浪费不必要的空间并增大存储的成本,而是构造(n,k)门限方法,即将信息通过秘密共享方法分成n份存储在n个服务器上,当获得大于等于k个服务器的信息即可恢复出信息。文献[2](题目:基于多云的安全浏览器口令管理器设计与实现;作者:李定波,夏鲁宁,王展;出版刊名及期次页码:信息网络安全,2015(09):124-128)本质上采用基于AONT-Rabin信息分散模型对信息进行分片处理,构造了(4,3)门限方法。该文献中秘密共享方法是以整个服务器数据块为单位进行处理的,即块级门限方法。这种方法收到多于等于3个完全正确的数据块可以恢复出原始口令,即就算4个服务器中任意一个服务器出现故障也可恢复出数据,这种方法通过多云在一定程度上提高了口令存储的安全性,但是发明人发现此方法仍然存在进一步改进的空间。针对上述口令管理系统,发明人将它们的不足之处总结如下:
(1)没有口令自动生成功能,这会导致用户仍然在多个网站使用同一口令,从而产生安全隐患。
(2)一些口令管理系统没有主口令,用户的记忆负担仍然很重。
(3)离线模式口令管理系统不具有跨终端性,由于这种口令管理系统将口令存储在本地,使用户在其它终端登录时无法获取口令。
(4)单云口令管理系统将口令信息存储在一个云端服务器上,如果这个云端服务器因各种原因而出现故障,或者口令在传输过程中出现差错,则会导致用户无法获取自己所存储的口令信息。
(5)多云口令管理系统通过(n,k)块级门限方法将口令存储在多个云端服务器,可以保证只获得k个服务器数据时能够恢复出口令信息,但是当大于k个服务器的数据在存储或者传输过程中都出现差错,尽管每个服务器数据的差错可能是微小的,仍然无法恢复出口令信息。例如,在(4,3)门限中,每个服务器存储了25bit的数据,在传输中每个服务器数据块均出现1bit错误,尽管总错误比特数只有4bit,但是仍然无法恢复数据。
发明内容
为了克服现有口令管理系统技术中没有口令生成功能、没有主口令使便捷性较低、缺乏跨终端性、单云存储可靠性低,多云存储安全性不足且容错率有待提升等问题,发明人做出本发明,提出一种基于比特级门限方法的多云口令管理方法。
在该方法中,有3个主要功能:口令生成、口令上传和口令查询功能。对PBKDF2算法进行改进,使用改进的PBKDF2算法来对主口令进行扩展生成强口令;在处理上传过程中,对原始口令信息使用SM4加密和AONT编码,并使用RS纠错码构造了比特级门限方法对信息进行分片处理,采用多个云服务器存储分片,进一步提高口令存储的安全性。
(1)对于口令生成,有2个步骤:
步骤1:主口令密钥扩展,基于改良PBKDF2算法对用主口令进行密钥拓展,使用两轮改良PBKDF2算法,一轮加入当前网站登录注册页的主机名,一轮加入时间戳。
步骤2:字节编码,改良PBKDF2输出密钥形式为十六进制字节数组,而通常网站对注册密码的要求是可读字符形式。
(2)对于口令上传,有5个步骤:
步骤1:把网站口令、网站登录注册页的主机名和当前用户在该网站的账号串接起来作为原始秘密信息。
步骤2:SM4加密,对打原始秘密信息进行SM4加密,这里加密所使用的密钥是主口令通过改良PBKDF2算法进行密钥扩展所得到的。
步骤3:AONT编码,对SM4加密后的结果进行AONT编码。
步骤4:RS纠错码编码,使用RS编码算法对数据进行编码,以此构造比特级门限方法。
步骤5:将数据上传到服务器端,这一步中使用SM3杂凑算法对分片信息进行hash运算,将数据分片连同其hash值一起上传至各个云服务器节点。
(3)对于口令查询,实际上相当于口令上传各步骤的逆过程,其有6个步骤:
步骤1:客户端将待查询的账户和网站登录注册页的主机名发送到服务器端,服务器端将查询到的口令数据返回给客户端。
步骤2:将数据下载到客户端,先通过hash值验证分片数据是否被篡改。
步骤3:RS纠错码解码,使用RS纠错算法对数据进行解码。
步骤4:AONT解码,对上一步的结果进行AONT解码。
步骤5:SM4解密,对上一步的结果进行SM4加密,解密成原始秘密信息,这里解密所使用的密钥是主口令通过改良PBKDF2算法进行密钥扩展所得到的。
步骤6:将原始秘密信息拆分为网站口令、网站登录注册页的主机名和当前用户在该网站的账号,并将网站口令返回给用户。
本发明的有益效果是:
(1)本发明具有网站口令生成功能,若用户在网站注册时如果不想自己设置口令,则系统可根据用户的主口令和网站信息为用户生成一个口令。若用户对此口令不满意,亦可重新生成口令,给予用户足够的自主性,杜绝用户在多个网站使用同一口令的安全隐患;
(2)对PBKDF2算法进行改进,基于此改良PBKDF2算法进行口令生成,缩短了口令生成时间。
(3)本发明设置主口令,用户仅需记住一个主口令,尽可能减少用户的记忆负担;并且系统不单独存储主口令而只存储主口令的hash值,降低主口令从系统泄漏的可能,用户只需保证主口令的绝对安全,即可保证其他口令的安全;
(4)本发明具有终端移动性,整个方法基于C/S系统实现,用户在不同终端使用时,通过登录相应账号仍可恢复出口令。
(5)本发明具有一定的抗攻击能力,其采用了基于Reed-Solomon纠错码的秘密共享方法,设置了(4,3)门限,使系统拿到3个数据块即可恢复口令,同时也保证了系统在少于等于1个服务器出现故障时,或小于等于1个数据块因信道问题而丢失时仍能正常工作;
(6)本发明具有一定的容错能力,由于基于Reed-Solomon纠错码的冗余属性构造的比特级门限,若4个服务器任意位置的数据被篡改,只要出错的数据总量少于一定限度比特,仍可以恢复出口令。此特性将以往基于数据块的纠错变为基于比特位的出错,增加了系统的容错能力。
附图说明
图1是本发明实现的系统架构图;
图2是本发明实现的系统使用流程示意图;
图3是本发明总体流程示意图;URL是网站登录注册页的主机名;
图4是原始PBKDF2算法伪代码;hlen为hmac的输出长度;Ceiling为向上取整函数;“||”表示两个字符的串接;“^”表示异或操作;iPad是32字节的数组,每个字节均为0x36H;oPad是32字节数组,每个字节均为0x5CH;Padding表示填充操作;[0:klen]表示输出数组前klen长度位。
图5是改良PBKDF2算法伪代码;hlen为hmac的输出长度;Ceiling为向上取整函数;“||”表示两个字符的串接;“^”表示异或操作;iPad是32字节的数组,每个字节均为0x36H;oPad是32字节数组,每个字节均为0x5CH;Padding表示填充操作;[0:klen]表示输出数组前klen长度位。
图6是本发明中口令生成部分中运行改良PBKDF2流程示意图;
图7是本发明中口令生成部分中索引查表伪代码;Data初始值是第二轮改良PBKDF2输出的十六进制字节数组;Rand(x,y)产生一个范围在[x,y]的随机数;Char是字符表数组,在不同mode下不同;r是Char的长度,Site_Password表示网站口令。
图8是本发明中口令生成部分中mode1(产生的口令包含特殊字符)生成口令伪代码;Num是数字字符集{‘0’,‘1’…,‘9’};Cletter是大写字母字符集{‘A’,‘B’,…,‘Z’};Lletter是小写字母字符集{‘a’,‘b’…,‘z’};C是特殊字符集{‘#’,‘¥’,…,‘~’}。
图9是文献[2]口令处理与上传部分流程示意图;
图10是本口令管理方法口令处理与上传部分流程示意图;URL是网站登录注册页的主机名;
图11是AONT编码流程图;
图12是本发明中口令处理与上传部分数据拆分流程示意图;
图13是本发明中口令处理与上传部分数据上传至服务器流程示意图;
图14是本发明中口令查询部分流程示意图;
图15是模拟某个服务器数据块整体丢失的示意图;
图16是模拟所有服务器数据块数据均出现错误的示意图。
具体实施方式
1、系统总体架构
发明人基于本方法实现了一个C/S架构系统,该系统以浏览器插件的形式实现。系统的总体架构分为4层,架构图如图1所示,下面逐层说明。
第一层为用户层,负责为用户提供一个易于操作和美观简洁的GUI,是能让用户方便使用该系统的基础,其基于Chrome插件实现,是连接用户与客户端的桥梁。
第二层为客户端,主要实现用户的登录与注册活动和数据的核心处理算法。当用户每次运行系统时,首先需要注册与登录控制器进行用户身份以及主口令的验证与判断,然后可以进一步使用系统的主要功能。当用户使用系统的主要功能时,首先需要自己打开外部网站的页面,此时系统会获取该网站的相关信息。当用户选择“生成口令”、“上传信息”、“查询信息”等功能时,系统随即会根据具体功能,使用特定的算法对刚刚获取的数据进行处理,得到结果后,再向上将结果展示到用户层的GUI界面上,或者向下将结果传入服务器。
第三层为服务器端,主要功能为接收和发送数据,并对信息进行校验,同时操纵数据库进行数据的增删改查。
第四层为数据层,对传来的信息进行存储,布置了4个云端数据库,实现方式是MySQL。
2、系统使用流程
系统的总体流程设计如图2所示,该系统的运行流程主要分为以下几步:
第一步,引导使用该系统的用户创建一个账户,设置账号和密码,用于标识系统中不同用户的身份,系统的主要功能需要用户关联登陆后才可以使用。
第二步,引导用户设置一个主口令(MasterPassword,MP),该主口令进行密钥扩展后将用于生成其他口令并对口令进行加密。
第三步,用户在成功登录系统之后,可以进行三种操作,也代表着系统的三个主要功能,功能一是口令生成,选择执行此功能,系统将会根据主口令、当前网站登录注册页的主机名和时间戳生成一个尽量随机的强口令,并将该口令作为访问该网站的口令;功能二是口令上传,在设置好网站的口令和用户名后,选择执行此功能,系统将会进行信息的加密和分片,并上传到云端服务器进行存储。值得一提的是,对同一站点的口令,最新上传的口令将会覆盖前一次所上传的口令,这意味着此功能还可以更新口令;功能三是口令查询,当用户需要登录网站,但是忘记了口令时可选择执行此功能,系统将会从云端服务器下载存储的密文,进行校验、合并和解密操作,并将得到的用户名、口令返回给用户。
第四步,用户在进行这些操作之后,如果系统未出现异常,就进行后续操作,否则将错误信息通过前端展示给用户,用户根据报错信息选择后续的操作。
第五步,用户成功登入,若不需要继续使用系统,则选择退出。
3、技术方法细节
本发明的一种基于比特级门限方法的多云口令管理方法,该方法有3个主要功能:口令生成、口令上传和口令查询功能。其针对标准的密钥派生算法PBKDF2进行改进,并使用此改进的PBKDF2算法来对主口令(MP)进行密钥扩展,并在扩展中加入网站登录注册页的主机名和时间戳等信息,来生成尽量随机的网站口令,并通过一种字节编码方式将口令变成通常网站所需的可读字符形式,以此来实现口令生成功能;把网站口令、网站登录注册页的主机名和当前用户在该网站的账号串接起来作为原始秘密信息,通过SM4加密和AONT编码对原始秘密信息进行处理得到AONT数据包,SM4加密所用的密钥也是由MP进行改进的PBKDF2密钥扩展而来的;再用RS纠错码对AONT数据包进行编码,最后将编码结果分片来构造(N,ML)-RS比特级门限方法,将分片分别上传到各个云服务保存,以此来实现对口令的上传。而对于口令查询,则是相对于口令上传中各步骤的逆过程。整个过程的流程图如图3所示。
(1)口令生成
上述的口令生成功能的目的是为在不同网站下注册的用户自动生成口令,杜绝用户为方便而在多个网站使用相同口令产生的安全隐患。该功能有两个步骤,步骤1是基于改进的PBKDF2算法对用主口令进行密钥拓展,步骤2通过特殊的字节编码方式导出针对具体网站的强口令。
步骤1:改进的PBKDF2密钥扩展,这里的PBKDF2函数是国际加密标准PKCS#5的两种常用的口令派生密钥方法之一,原始PBKDF2函数需要以下输入:
Figure BDA0002425790420000051
用户口令P
Figure BDA0002425790420000052
盐值salt:建议最少八字节,这里salt的生成在实现时使用了JavaScript中crypto库中的randomBytes安全随机数
Figure BDA0002425790420000053
迭代次数iterations:至少为1000次
Figure BDA0002425790420000054
密钥长度klen:输出的密钥字节长度
输出:一个长klen的字节流。
算法大致工作原理是通过两层循环来重复计算hmac函数,将SM3算法作为hash函数,算法伪代码如图4所示。
在原始PBKDF2中,实际上主要重复进行两种不同参数的hmac运算,第一种在图4的4~9行,即hmac(P,Salt||i),第二种在图4的12~16行,即hmac(P,T)。
容易知道,图4中第5、12行的填充操作,第6、8、13、16行的hash操作,在循环中值一直不会发生变化,所以可以将些步骤移至首次循环外。将SM3算法作为hash函数,将前述步骤移至首次外层循环外,得到改良PBKDF2算法,其伪代码如图5。改良PBKDF2算法的输入和输出仍然与原始PBKDF2算法一致,这里不再赘述。由前所述,图4中的三个操作不会变化:填充操作:Padding(P),hash操作:SM3(K^ipad),SM3(K^opad),在改良PBKDF2算法中预先计算这些操作的值,而不再循环中重复计算,只是在循环中引用它们的值。除此之外的其他步骤仍与原始PBKDF2一致。
则每次循环的计算量减小,从而提高模块的运行效率。经过测试,此改进算法所耗时间大约只有原始算法的一半。
当用户有生成口令的需求时,只需输入之前设定的主口令和网站注册名,前端为用户抓取时间戳,经过两轮改良PBKDF2迭代得到形式为十六进制字节数组的安全密钥,再通过编码函数映射到符合网站注册密码要求的字符组合,得到网站强口令。其流程如图6所示。两轮迭代产生安全的口令,每一轮的迭代次数都不低于1000次。若以后计算能力提高,可以适当调高迭代次数增加攻击难度。
首先第一轮中,将JavaScript中randomBytes产生的安全随机数salt1与用户注册的网站用户名异或值作为Salt1,用户主口令作为P1,迭代次数iteration1默认使用推荐的最小次数1000作为输入进行第一轮改良PBKDF2迭代。
将第一轮输出作为第二轮输入的P2,再将randomBytes产生的安全随机数salt2与用户注册时的时间戳异或值作为Salt2,迭代次数iteration2默认为2048次,通过第二轮改良PBKDF2迭代得到二进制字符形式的密钥流。
步骤2:字节编码,改良PBKDF2输出密钥形式为十六进制字节数组,而通常网站对注册密码的要求是可读字符形式。因此,这里给出了一种十六进制字节流映射至字符集的编码方式。
首先收集主流网站的密码设置规则,通常可以分为下面两类:
第一类:字节长度要求相同,但要求是数字和大小写字母的混合形式,不可以包含特殊字符。
第二类:注册密码在8-16字节之间,需要数字、特殊字符和大小写字母的混合形式;
上述规则中,字符长度要求都在8-16字节之间。为了保障安全,这里将产生一个随机长度在12-16字节之间的网站口令。而针对两种字符混合要求,模块给出了两种模式,mode0产生的口令不包含特殊字符;mode1产生的口令包含特殊字符。
具体编码过程如下:
这里提供四类基本字符:数字(0-9)、小写字母(a-z)、大写字母(A-Z)和特殊字符集合(‘’#¥%&()*+-./:;<>=?@[\]^_`{}|~)。基本原理是利用改良PBKDF2算法产生的字节数组生成索引,再利用此索引去查字符表。
将改良PBKDF2输入参数中的Klen设置为20。索引生成及通过索引查表的伪代码如图7所示。Rand(x,y)产生一个范围在[x,y]的随机数;data初始值是第二轮改良PBKDF2输出的十六进制字节数组;Char是字符表数组,在不同mode下不同;r是Char的长度,Site_Password表示网站口令。在图7所示的伪代码中,先产生随机产生len作为Site_Password的长度,然后根据data和index[i-1]生成当前的index[i],最终形成最终的索引数组,再根据索引查Char表得到网站口令的字符。
在Mode0下,因为输出不包含特殊字符,则为三种类型字符集混合而成的一维数组。对数字字符集进行填充,得到长度为26*3=78的一维数组Char_Mode0,生成流程与上述Char_Mode1的流程相似。
Char_Mode0的输出形式为:{[num],[cletter],[lletter],[num],[cletter],[lletter],…,[num],[cletter],[lletter]}。
在Mode1下,Char是包含字母、大小写字母与特殊字符的一维数组。要注意的是,作为查询表,Char的字符分布应当是均匀的,而数字有10个,大写和小写字母各有26个,特殊字符有32个,如果直接按原始10+26+26+32=94个字符存储,必然使得每种类型字符出现的概率不同,因此需要将大小写字母和数字都填充至32个,故Char_Mode1的长度为32*4=128。为了达到此效果,我们设置了一个0到31的循环,循环中的每一个步骤都生成一个数字、大写字母、小写字母和特殊字符,以此使它们之间的数量都为32个,Char_Mode1的生成伪代码如图8所示。
Num是数字字符集{‘0’,‘1’…,‘9’};Cletter是大写字母字符集{‘A’,‘B’,…,‘Z’};Lletter是小写字母字符集{‘a’,‘b’…,‘z’};C是特殊字符集{‘#’,‘¥’,…,‘~’}。Char_Mode1的输出形式为:
{[num],[cletter],[lletter],[c],[num],[cletter],[lletter],[c],…,[num],[cletter],[lletter],[c]}。
系统前端通过抓取注册界面源码中关键词判定采用mode0还是mode1模式,从而生成适用于不同网站的强口令。
(2)口令上传
上述的口令上传包含对口令的处理。在文献[2]中使用了AONT-Rabin方法,其数据处理与上传流程图如图9所示。
在多云存储的背景下,加密文件需要以分片的形式被存储在多个云服务器上,此过程有四个主要步骤。当用户需要上传数据时,系统将网站登录注册页的主机名、用户名和口令作为原始数据先进行一次SM4加密,再输入AONT部分进行处理,打包为AONT数据包;数据包输入RS纠错码编码函数,生成对应的冗余校验向量,再根据服务器的数量n,将数据包和冗余校验向量拆分得到n个不同的数据分片,以此来构建(n,k)比特级门限方法,最后还使用SM3杂凑算法对分片信息进行hash运算,将数据分片连同其hash值一起上传至各个云服务器节点。使攻击者拿到小于k数据块时无法恢复加密文件;同时,RS纠错码的冗余属性也使得任意云服务器节点上的部分数据发生丢失或被篡改的情况下仍可以恢复全部口令信息。该部分的流程如图10所示。
步骤1:SM4加密;SM4分组对称密码是我国国家密码标准算法之一,这里对称加密所使用的密钥也是主口令通过改良PBKDF2算法进行密钥扩展所得到的。
步骤2:AONT编码;AONT是一种无密钥的、实现一系列输入块到输出块的转换算法,最早由Rivest提出。一般的加密方法是可分离的加密模型,攻击者通过对单个密文块进行攻击就可以得到对应明文块的相关信息;而对于AONT模式的攻击,对手必须先解密所有密文块,然后才能获得特定的明文块信息,是一种不可分离的加密模型。
在文献[2]中使用了AONT-Rabin方法中,有如下参数:
Figure BDA0002425790420000071
E:一个具有CBC模式的对称加密算法;
Figure BDA0002425790420000072
Hash:一个杂凑函数;
Figure BDA0002425790420000073
K:随机密钥;
Figure BDA0002425790420000074
M:原始数据;
Figure BDA0002425790420000075
canary:与一个输入块长度相同,用来验证数据是否被篡改。
该方法分为两个阶段:AONT数据加密和RS信息分散。
数据的加密过程如下:
Ⅰ)将原始数据以字节为单位分为S片:m0,m1,…,ms-1,将canary块记作ms
Ⅱ)由
Figure BDA0002425790420000076
得到密文C;
Ⅲ)密文C作为Hash输入得到散列值,再将散列值与K异或得到一个值difference;
Ⅳ)密文C与difference共同组成AONT数据包。
信息分散过程使用了Rabin’s IDA算法将数据分为了n份。
发明人发现上述过程存在两个安全缺陷:一是AONT算法用canary字段用来验证数据的完整性,但检验过程是在数据重构过程已经完全结束且对AONT包进行解码之后,如果有敌手对存储数据进行连续破坏的攻击,便无法预防DoS攻击;二是无法正确恢复被攻击者破坏的存储数据。
针对第一个安全缺陷,提出改进:在重建阶段开始前就进行数据完整性的验证,即将信息分散的输出分片和它对应的杂凑值进行绑定,一起上传至云端服务器。在恢复数据前进行对各数据分片进行杂凑值验证,判断是否为有效分片。这种做法本质是将检验完整性步骤提前,使用散列函数替代canary作用。
针对第二个安全缺陷,我们在信息分散算法中使用基于RS纠错码的秘密共享方法,从而在数据被篡改或允许分片数量丢失的前提下恢复原始密文。此即步骤3的内容。
因此实际上在发明人的方法中,只是保留了AONT编码加密部分。AONT编码其流程图如图11所示。
步骤3:RS纠错码编码,RS纠错码全称Reed-Solomon纠错码,其被普遍地应用于数据传输和数据存储过程中。由于RS码可以纠正的错误数目t与校验码长度相关,当超过t数量的数据缺失或篡改时无法恢复原始数据,因此利用这一性质构造门限为(n,k)的比特级秘密共享方法,关于n、k、t的具体关系在下面构造具体的秘密共享方法再叙述。
对于RS纠错码编码,其通过编码算法生成校验码,通过纠错算法验证正确性,这里先明确以下符号的意义:
Figure BDA0002425790420000081
P(x):用来构造GF(23)域的本原多项式,取1+x+x3
Figure BDA0002425790420000082
α:定义为P(x)=0的根;
Figure BDA0002425790420000083
N:编码后的码块长度,单位是字节;
Figure BDA0002425790420000084
ML:码块中的信息长度;
Figure BDA0002425790420000085
K=N-ML:码块中校验码的长度;
Figure BDA0002425790420000086
t:能够纠正的错误数量
Figure BDA0002425790420000087
M(x):信息码符多项式;
Figure BDA0002425790420000088
G(x):校验码的生成多项式;
Figure BDA0002425790420000089
(N,ML)-RS:在GF(2m)中,RS信息码长为ML,校验码长为K=N-ML。
1)对于RS编码算法,其结果为M(x)除以G(x)的余数。下面具体说明:
首先,对一个信息码符多项式,RS校验码的生成多项式的一般形式为:
Figure BDA00024257904200000810
通常K0=0或1,而(N-ML)≥2t。
这里我们取K0=0,则:
G(x)=(x-α)(x-α2)…(x-αK)
假设ML个信息符号为m0,m1,…mML-1,则信息码符多项式为:
M(x)=mML-1xML-1+…+m1x+m0
由于M(x)xK的次数大于G(x),所以一定存在商式A(x)和余式R(x)使得:
M(x)xK=G(x)A(x)+R(x)
取余式R(x)作为校验码多项式,其次数显然小于G(x)的次数K,因此我们可以假设它的K个符号为Q0,Q1,…QK-1,即:
R(x)=Q0+Q1x+…+QK-1xK-1=M(x)xKmodG(x)
由于M(x)xK和G(x)均已知,所以该方程有K个未知数,将x=a,x=α2,…,x=αK代入上式,得K元方程组,求解即可得到校验符号Q0,Q1,…QK-1
令码字多项式C(x)=M(x)xK+R(x),则:
C(x)=mML-1xK+ML-1+...+m1xK+1+m0xK+QK-1xK-1+...+Q1x+Q0
即将信息位为放置于码字的前半部分,校验位放置于码字的后半部分,由此,(N,ML)-RS码构造完毕。
2)对于RS纠错算法,纠错过程分为两步:计算校正子与计算错误值和位置。值得一提的是,这里的错误以及下文的错误均是指数据被篡改或者传输过程中发生错位。
由前述过程知道:
C(x)=M(x)xK+R(x)=G(x)A(x)
因此当x=αi时,G(x)=0,从而C(x)=0。
使用下面的公式来计算校正子:
si=C(αi)=M(αi)(αiK)+R(αi),i=1,2,...,K
若si不全为0,则可以判定存在错误。
假设存在n个错误,其值分别为mxj,位置为αxj,对于{mxjxj},j=1,2,...,n带入校正子中:
Figure BDA0002425790420000091
上式共有K个方程,可解出K个未知数,而每个错误需要两个未知数(一个值
Figure BDA0002425790420000103
一个位置
Figure BDA0002425790420000104
)来确定,即两个方程确定一个错误,因此最多可以纠正K/2长度错误。
3)在本方法中,发明人通过RS码构造了秘密共享方法;由前述我们知道RS码的校验位为K位,最多可以纠正K/2长度的错误。利用此性质,可以构造(n,k)比特级门限要求。
假设现秘密需要分配到n个云服务器进行存储,通过k个数据片即可恢复秘密,原始秘密的长度为M。设每个服务器接收的分片字节长度为a。
这里k为恢复数据的门限值,n和k的值可以根据实际情况事先给定,在我们的系统中取n=4、k=3,M的值一般也由消息的具体情况而确定,在这里,我们的原始秘密是上一步AONT编码后得到的结果。因此,我们在构造此方法时只需确定a的值。
在系统中至少需要k×a位的数据可恢复秘密,加了校验码后总数据长度为n×a,则系统可纠正的错误长度也就是最大容忍错误长度t=(n-k)×a,校验码长度应为2a×(n-k)。则满足:
M+2a×(n-k)=n×a
由上式可得
Figure BDA0002425790420000101
即构造
Figure BDA0002425790420000102
码可满足要求。按照RS编码算法中的步骤,长度为M的原始秘密作为信息码符多项式M(x),和生成多项式G(x)计算出校验码多项式Q(x),再由M(x)和Q(x)构造出最终的码字C(x),取C=M+Q作为最终的编码结果。
在实际RS分片阶段中,由第二部分秘密共享方法可知,每个服务器得到的数据分片长度是a=M/(2k-n)。但实际应用中,可能面临M无法整除(2k-n)的情况,则需要对M进行填充,所以采用如下填充方式:
M无法整除时,令padLen=(2k-n)-M%(2k-n),在M前填充padLen个padLen的字节表示;可以整除时,则在M前填充2k-n长度的(2k-n)字节表示。
在拆分阶段,将编码结果C分为n份即可,具体的拆分方式如图12所示。在此拆分方法中,直接将原始数据M和校验码Q均分为n份,再分别串接起来。值得注意的是,在我们的方案中n取4,这里为了更加清晰的介绍拆分方式,作图时不取n为特定值。
恢复阶段,若出现了(n-k)份的数据缺失或被篡改,纠错码仍然具备恢复能力。
步骤4:将数据上传到云端服务器,其流程图如图13所示。
这一步中使用SM3杂凑算法对分片信息进行hash运算,将数据分片连同其hash值一起上传至各个云服务器节点。连同hash值一同上传的原因已经在本部分步骤2中说明。
在文献[2]中,并没有直接将信息分片上传,而是又经过一层SM4加密上传,但这样做并没有增加本系统的安全性:在SM4加密过程中,无论是采用ECB还是CBC模式,都必然要对原始数据进行填充。对于攻击者而言,篡改服务器节点数据比拿到完整的分片数据更加容易,在(4,3)门限中,若攻击者篡改了两个服务器节点的密文数据,则会导致明文数据发生很大改变,而前述RS纠错码的分片方法中的填充位的错误校验功能只针对原始数据有效,不再对加密后的密文数据有效,因此恢复出的数据可能会存在字节错位或者字节丢失,这种情况对于密文数据的恢复非常不利。相反地,若对分片不做任何加密处理,即使攻击者篡改了两个服务器节点的部分数据或者部分数据丢失,由于RS纠错码的良好特性,仍然可以恢复全部密文数据,同时又提高了系统上传性能。
(4)口令查询
当用户需要从服务器查询用户名和密码的相关信息登录网页时,系统从云端下载分片,对分片的hash值进行验证判断数据是否被篡改;再将有效分片输入RS纠错码解码函数,恢复出AONT数据包;最后经过AONT的解码部分和SM4解密得到原始数据。其流程图如图14所示。
该部分有6个主要步骤:
步骤1:客户端将待查询的账户和网站登录注册页的主机名发送到服务器端,服务器端将查询到的口令数据返回给客户端。
步骤2:将数据下载到客户端,先通过hash值验证分片数据是否被篡改。若被篡改的分片数小于等于n-k,此时说明实际错误位数小于等于最大可容忍错误位数(n-k)×a,我们将被篡改后的服务器分片用全0字节替代,输入RS纠错模块;若发现篡改的分片数大于n-k,,我们将下载密文直接输入RS纠错模块中,通过校正子计算篡改字节数是否超过最大允许错误字节数,若超过,此时说明实际错误位数大于最大可容忍错误位数,已经无法恢复,向用户返回错误信息,直接退出而不进行下面的步骤;若没有,此时说明实际错误位数仍然小于等于最大可容忍错误位数,可以完全恢复出原始密文。
步骤3:RS纠错码解码,使用RS纠错算法对数据进行纠错和解码。解码出数据后,根据数据头部标志进行去填充操作。
步骤4:AONT解码,对上一步的结果进行AONT解码。
步骤5:SM4解密,对上一步的结果进行SM4加密,解密成原始秘密信息,这里解密所使用的密钥是主口令通过改良PBKDF2算法进行密钥扩展所得到的。
步骤6:将原始秘密信息拆分为网站口令、网站登录注册页的主机名和当前用户在该网站的账号,并将网站口令返回给用户。
4、测试分析
为进一步展示该方法的优良效果,下面对方法进行测试分析。
对于四个不同的云服务器,当各种干扰致使网络信道不通畅,或某个服务器出现故障,或某个服务器数据在信道传输过程中被攻击者截获,则可导致某个数据分片整块丢失。为了能直观的模拟此种情况,这里我们将一个数据库中的一条数据块删除,只剩用户名和网站信息,如图15所示。
内部攻击者和侵入服务器的攻击者可篡改数据。或者因为数据块在传输过程中发生数据错误,则会导致我们接受到的每一块分片都会出现一定限度的差错。这里将模拟此种行为,对数据库中的数据进行修改。为了体现出本发明的优点,这里假设有四个数据库的数据都被篡改,如图16所示。
经过测试,这两种情况都能恢复出原始口令信息。
本方法在吸收已有口令管理系统的优点的同时,结合一些前沿性工作,基本采用国密算法,使用改良的PBKDF2算法用于对用户主口令进行密钥拓展,并由此得到不同网站的口令,经过测试,并且口令强度很高。此外还创新性的使用了AONT编码和基于RS纠错码的秘密共享方法,构造出了(n,k)比特级门限方法,使之可以直接定位错误到具体比特位,而不是传统的数据块。将口令数据分片存储在多个云端,提升了系统可靠性和安全性。
如上所述,通过上述实施方式可较好的实现本发明。对于本领域的技术人员而言,根据本发明的教导,在不脱离本发明的技术原理和精神的情况下对上述实施方式进行变化、修改、替换、整合及其变型仍落入本发明的保护范围内。

Claims (1)

1.一种基于比特级门限的安全多云端口令管理方法,其特征在于:该方法基于RS纠错码比特级门限,通过改良PBKDF2算法对密钥进行密钥扩展,使用SM4算法对口令信息加密,AONT算法对口令信息编码,使用RS纠错码编码构造了(n,k)秘密共享方法,将口令信息分成n片上传到云服务器;
所述方法具体包括:
口令生成功能,该功能有2个步骤:
步骤1-1:主口令密钥扩展,基于改良PBKDF2算法对用主口令进行密钥拓展,使用两轮改良PBKDF2算法,一轮加入当前网站登录注册页的主机名,一轮加入时间戳;
步骤1-2:字节编码,改良PBKDF2输出密钥形式为十六进制字节数组,而通常网站对注册密码的要求是可读字符形式;
口令上传功能,该功能有5个步骤:
步骤2-1:把网站口令、网站登录注册页的主机名和当前用户在该网站的账号串接起来作为原始秘密信息;
步骤2-2:SM4加密,对原始秘密信息进行SM4加密,这里加密所使用的密钥是主口令通过改良的PBKDF2算法进行密钥扩展所得到的;
步骤2-3:AONT编码,对SM4加密后的结果进行AONT编码;
步骤2-4:RS纠错码编码,使用RS编码算法对数据进行编码,以此构造比特级门限方法;
步骤2-5:将数据上传到服务器端,这一步中使用SM3杂凑算法对分片信息进行hash运算,将数据分片连同其hash值一起上传至各个云服务器节点;
口令查询功能,该功能有6个步骤:
步骤3-1:客户端将待查询的账户和网站登录注册页的主机名发送到服务器端,服务器端将查询到的口令数据返回给客户端;
步骤3-2:将数据下载到客户端,先通过hash值验证分片数据是否被篡改;
步骤3-3:RS纠错码解码,使用RS纠错算法对数据进行解码;
步骤3-4:AONT解码,对上一步的结果进行AONT解码;
步骤3-5:SM4解密,对上一步的结果进行SM4加密,解密成原始秘密信息,这里解密所使用的密钥是主口令通过改良的PBKDF2算法进行密钥扩展所得到的;
步骤3-6:将原始秘密信息拆分为网站口令、网站登录注册页的主机名和当前用户在该网站的账号,并将网站口令返回给用户。
CN202010220163.6A 2020-03-25 2020-03-25 一种基于比特级门限的安全多云端口令管理方法 Active CN111314090B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010220163.6A CN111314090B (zh) 2020-03-25 2020-03-25 一种基于比特级门限的安全多云端口令管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010220163.6A CN111314090B (zh) 2020-03-25 2020-03-25 一种基于比特级门限的安全多云端口令管理方法

Publications (2)

Publication Number Publication Date
CN111314090A CN111314090A (zh) 2020-06-19
CN111314090B true CN111314090B (zh) 2021-03-26

Family

ID=71147314

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010220163.6A Active CN111314090B (zh) 2020-03-25 2020-03-25 一种基于比特级门限的安全多云端口令管理方法

Country Status (1)

Country Link
CN (1) CN111314090B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112000967B (zh) * 2020-08-10 2021-10-22 广州以太教育科技有限责任公司 一种机密参数的生成方法及装置
CN113949584B (zh) * 2021-11-04 2023-03-07 电子科技大学 抗口令凭证泄露的口令认证方法
CN114398651B (zh) * 2021-12-29 2023-07-28 张海滨 秘密数据共享方法及分布式系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104333447A (zh) * 2014-11-26 2015-02-04 上海爱信诺航芯电子科技有限公司 一种可抵御能量分析攻击的sm4方法
CN110719160A (zh) * 2019-10-10 2020-01-21 杭州闪捷信息科技有限公司 一种基于量子随机数和国密算法的数据库加密方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8370307B2 (en) * 2009-09-01 2013-02-05 Empire Technology Development Llc Cloud data backup storage manager
CN104734856B (zh) * 2015-03-05 2017-12-26 中国科学院信息工程研究所 一种抗服务器端信息泄露的口令认证方法
CN106100832A (zh) * 2016-06-12 2016-11-09 广东工业大学 一种云存储数据去重中基于收敛加密的密钥管理方法
CN110177134B (zh) * 2019-05-10 2021-12-07 东南大学 一种基于多云存储的安全密码管理器及其使用方法
CN110300112B (zh) * 2019-07-02 2022-05-10 石家庄铁道大学 区块链密钥分层管理方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104333447A (zh) * 2014-11-26 2015-02-04 上海爱信诺航芯电子科技有限公司 一种可抵御能量分析攻击的sm4方法
CN110719160A (zh) * 2019-10-10 2020-01-21 杭州闪捷信息科技有限公司 一种基于量子随机数和国密算法的数据库加密方法

Also Published As

Publication number Publication date
CN111314090A (zh) 2020-06-19

Similar Documents

Publication Publication Date Title
CN111314090B (zh) 一种基于比特级门限的安全多云端口令管理方法
CA2792571C (en) Hashing prefix-free values in a signature scheme
CN102904726B (zh) 用于量子密钥分配系统的经典信道消息认证方法和装置
US20100281336A1 (en) Method and entity for probabilistic symmetrical encryption
Chen et al. Robust dynamic provable data possession
CA2792572C (en) Hashing prefix-free values in a certificate scheme
KR20170100602A (ko) 물리적 복제방지 기능으로부터 암호화 키 생성
CN108197484B (zh) 一种分布式存储环境下实现节点数据安全的方法
JP2004534333A (ja) コンピュータネットワークにおける分散データ処理に関する統合された保護方法及びシステム
US11233662B2 (en) Keyless encrypting schemes using physical unclonable function devices
JP6323338B2 (ja) ビット列照合システムと方法とプログラム
CN104994069B (zh) 基于数据重复性验证的云存储数据完整性证明方法
CN105024801A (zh) 一种量子加密通信方法
Alvarez et al. Cryptanalysis of a chaotic secure communication system
CN106612272A (zh) 云存储中一种数据篡改的验证和恢复算法
Finiasz et al. Private stream search at the same communication cost as a regular search: Role of LDPC codes
Esmaeili et al. A secure code based cryptosystem via random insertions, deletions, and errors
Popovska-Mitrovikj et al. Increasing the decoding speed of random codes based on quasigroups
KR20200107621A (ko) 신드롬을 기반으로 한 전자 서명을 통해 데이터 통신이 가능한 전자 장치 및 그 동작 방법
CN113556381B (zh) Http请求的优化方法、终端以及存储介质
CN109698743A (zh) 一种基于消息填充漏洞的分组密码加密密文数据恢复方法
Hashemi et al. A modified McEliece public-Key cryptosystem based on irregular codes of QC-LDPC and QC-MDPC
CN112764677B (zh) 一种在云存储中增强数据迁移安全性的方法
Raja et al. Multi cloud-based secure privacy preservation of hospital data in cloud computing
Rashid et al. Proof of retrieval and ownership protocols for enterprise-level data deduplication

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