基于
服务器
应用
密码
管理
方案设计
第 35 卷 第 2 期2023 年 6 月河南工程学院学报(自然科学版)JOURNAL OF HENAN UNIVERSITY OF ENGINEERING(NATURAL SCIENCE EDITION)Vol.35,No.2Jun.2023 基于云服务器应用的密码管理方案设计 陈金木,陈少英,黄朝阳(厦门海洋职业技术学院 信息工程学院,福建 厦门 361102)摘 要:为保证数据在网络传输过程中的信息安全,提出了一种在云服务器上存储密码加密信息的密码管理方案,将加密密钥拆分为用户共享份额和云服务器共享份额,其中用户共享份额仅基于选定的密码短语,而云服务器的共享份额由用户共享份额和加密密钥生成,通过在客户端执行加密和解密来实现数据的安全性,并引入迭代哈希操作来保护分割密钥方案免受字典式攻击。分析表明,所提出的基于云服务器的密码管理方案与其他密码管理方案相比,具备更优的功能性与安全性。关键词:密码管理;密码加密;密钥分割;迭代哈希操作 中图分类号:TP309 文献标志码:A 文章编号:1674-330X(2023)02-0054-04Design of password management scheme based on cloud server applicationCHEN Jinmu,CHEN Shaoying,HUANG Chaoyang(School of Information Engineering,Xiamen Ocean Vocational College,Xiamen 361102,China)Abstract:In order to ensure the information security of data in the process of network transmission,a password management scheme is proposed,which stores password encrypted information on the cloud server.The encryption key is divided into user share and cloud server share,in which the user share is only based on the selected passphrase,while the cloud server share is generated by the user share and encryption key,data security is achieved by performing encryption and decryption on the client,and the split key scheme is protected from dictionary attacks by introducing iterative Hash operations.The analysis shows that the proposed password management scheme based on cloud server has better functionality and security than other password management schemes.Keywords:password management;password encryption;key segmentation;iterative Hash operation收稿日期:2022-07-06基金项目:福建省中青年教师教育科研项目(JAT191316);2022 年度校级教科研项目(KYZY202201)作者简介:陈金木(1985),男,福建厦门人,实验师,主要研究方向为信息安全、网络技术。随着各种系统应用和 Web 增值服务的迅速增长,人们所持有的账户越来越多,需要设置密码保护的账户也越来越多,所以用户需要一种有效的方法来管理这些密码1。用户对账号密码管理的有效手段需要借助密码管理器来实现,常用的密码管理器有 Password Safe、Kee Pass、1Password、Last Pass 等2-3。相对于这些需要在电脑等设备上独立安装运行的密码管理器,基于浏览器的密码管理器是用户身份验证和密码管理最受欢迎的选择之一。但是,如果用户使用多个浏览器,则必须在每个浏览器上单独存储密码。市场上有将浏览器与设备结合进行密码管理的方案4-6,但也存在一定漏洞,攻击者利用漏洞很容易破解密码7-8。为解决漏洞对用户造成的安全困扰,本研究提出了一种在云服务器上存储加密密码的新方案,其加密密钥被拆分为从用户选择的密码短语派生的共享和驻留在云服务器上的共享。只有当两个共享组合在一起时,密码才能被解密。即使数据驻留在云服务器上,处理也是由用户执行的,这意味着云服务器没有访问明文密码的权限,也没有派生明文密码的能力,即使攻击者泄露了用户密码,也必须绕过云服务器的身份验证来解密。1 1 密码管理方案设计思路在传统的密钥共享方案中,假设用户 A 和用户 B 希望将他们的秘密 K 分成两份,其中用户 A 创建两个第 2 期陈金木,等:基于云服务器应用的密码管理方案设计共享并将其中一个发送给用户 B。将 K 表示为有限域p的一个元素,其中 p 是一个足够大的素数9。假设:K p,用户 A 的公钥为 x1,用户 B 的公钥为 x2,用户 A 的私钥为 y1,用户 B 的私钥为 y2。用户 A 操作:x1,x2 p,其中 x1 x2,a p。计算:y1=ax1+K,y2=ax2+K。用户 A 保留 y1并将计算过的 y2发送给用户 B,同时 x1和 x2的值已公开。这种方法的问题在于,共享是计算的而不是选择的,容易被破解。在本方案中,y1由用户保存,y2则被发送到云服务器上。如果服务器将y2发送回用户,用户只需要通过计算 a=(y1-y2)/(x1-x2)来求解 a,并获得秘密 K。通过第三方云服务器保存和发送用户密钥,可以有效提升密码的安全性。1.1系统设置为用户和服务器设置所需要的信息,用户必须首先生成对称加密密钥 K,然后选择一个任意长度的密码短语 R。为简单起见,将密钥 K 设为256 位的 AES 密钥。它可以由用户正在使用的系统生成,并且对用户完全透明。密码短语 R 的选择应具有足够的熵,以免被轻易猜到。1.2导出用户的加密密钥共享输入m字节的用户密码短语R,导出用户的加密密钥共享(d1,d2),其中d1和d2均为256位。步骤如下:(1)将 R 表示为 R=r1r2,其中 r1由 R 的第一个m2 字节组成,r2由 R 最右边的m2字节组成。(2)假设 g1=SHA-512(r1),g2=SHA-512(r2)。(3)将 g1和 g2表示为 g1=e1f1和 g2=e2f2,其中 e1、e2、f1、f2均为 256 位。(4)设置 d1=e1 e2,d2=f1 f2。(5)如果 d1或 d2是 000 或 111,用户需要输入新的密码短语并再次启动该过程。(6)输出(d1,d2)。1.3 派生服务器的密钥共享由于加密是独立完成的,且用户的共享是由用户输入的密码短语生成的,所以服务器的共享需要从这两部分派生出来。用户执行以下任务并将输出发送到服务器,步骤如下:(1)输入用户的私钥对(d1,d2)、256 位加密密钥 K 和 256 位的伪随机数 S。(2)计算 x1=d1K+S 和 x2=d2S+K。(3)输出服务器共享的分割加密密钥(x1,x2),其是从 K 和(d1,d2)中得出的。当用户首次在服务器注册并选择其密码短语时,密钥共享可以由用户生成并发送到服务器。如果用户希望更改其密码短语,则应生成一个新的加密密钥 K 和相应的伪随机数 S。当用户对自己的密码进行加密和解密时,加密过程只涉及一个实体。该过程不需要公钥加密,也不会出现密钥管理等问题。此时,用户生成的伪随机数 S 不能透露给服务器,否则服务器将能够通过分解 512 位整数 x1-S 来获得密钥 K。1.4导出加密密钥为解密密码,用户需要访问加密密钥。用户知道其密码短语,故可以导出其用户密钥共享。步骤如下:(1)输入用户的密钥共享(d1,d2)、服务器的密钥共享(x1,x2)。(2)计算 u=d2x1-x2和 v=d1d2-1。(3)输出 K=u/v。随着时间的推移,用户可能希望更改其密码短语,此时还需要更改加密密钥 K 和伪随机数 S。假设相同的 K 和S 用于不同的用户共享(d1,d2),就会有新的服务器共享值x1=d1K+S 和x2=d2S+K,而由于 x1-x1=(d1-d1)K,所以密钥 K 是 512 位数字 x1-x1的一个因子。对这个数字进行分解并检查少量的因子,向服务器显示密钥 K。因此,建议将 K、S 与(d1,d2)一起更改。1.5加密密码用户向 Web 服务注册时,将获得该 Web 服务的 URL 或其他标志符 U、用户名和密码集。如用户希望在服务器上存储 Web 服务的密码,则必须在传输密码之前用加密密钥对密码进行加密。步骤如下:55河南工程学院学报(自然科学版)2023 年(1)输入 256 位加密密钥 K、URL 或其他标志符 U、要加密的密码 P、一个 256 位的随机数 E 和用于索引密码的 32 位计数器 i。(2)计算 P=P1P2Pr、Wj=UEij、Hj=SHA-512(Wj)、Hj=ejfjgjhj、Nj=ej fjgj hj和 Cj=Pj AESk(Nj)。(3)输出加密密码 C=C1C2Cr。除了密码和加密密钥,加密机制还使用了其他数据,如 URL、随机数和计数器。下面具体描述这些输入是如何影响加密的。URL 需要在哈希值中表示,以便将每个密码绑定到使用它的 URL。假设一个用户有两个密码 P1和 P2,分别用于URL的U1和U2。进一步假设U1的密码安全性很高,而U2的密码安全性很低或没有。假设一个用户希望通过同时请求两个密码来解密它们,攻击者只需要在传输过程中切换 URL 或加密密码即可。用于密码加密的随机数 E 只是一个字符串,每次用户更改关联 URL 的密码时都会更改该字符串。假设某个特定站点的用户密码被泄露,原因是将密码P 和C 泄露给另一个实体,另一个实体将能够像密码加密和解密算法的最后一步一样,为每个 j 确定 AESk(Nj)。现在假设用户更改了密码,但没有更改随机数 E,由于 URL 没有更改,计数器 i 和 j 也没有更改,所以 Nj的值是相同的,故 AESk(Nj)也将是相同的。如果实体获得所有 i 的 Ci,那么他们将能够计算密码 P。无论用户如何更改密码形式,都会发生这种情况。因此,每次更改特定密码时,对应于密码的随机数 E 都应该更改。在客户机受到攻击并且攻击者获得 Web 服务密码的情况下,除非客户机和服务器之间的通信凭据已经被泄露,否则攻击者无法从服务器端获得密码的加密版本和服务器的共享。这是因为客户机和服务器之间的连接应该受到其他身份验证服务的保护。一个Web服务可能有几个不同的密码,多阶段登录时尤其如此。此外,有些密码可能会超过16个字符,故由多个块组成。实际上,密码通常是 ASCII 码字符,其特定编码为字节,如果不使用计数器,则相同值对应的 AESk(Nj)将被异或到 Web 服务的每个单独块,这可能会导致潜在的相关攻击来推断密码。1.6解密密码用户若希望访问 Web 服务,则需要用户名和密码,要获取这些信息,需要从密码短语和服务器共享中派生加密密钥。一旦加密密钥准备就绪,就可将加密密钥从服务器发送给用户进行解密和转发。步骤如下:(1)输入 256 位加密密钥 K、URL 或其他标志符 U、加密密码 C、一个 256 位的随机数 E 和用于索引密码的 32 位计数器 i。(2)计算C=C1C2Cr、Rj=UEij、Hj=SHA-512(Rj)、Hj=ejfjgjhj、Nj=ejfjgjhj和 Pj=Cj AESk(Nj)。(3)输出 P=P1P2Pr。解密与加密过程非常相似,唯一的区别在于加密值是通过异或运算获得明文值的。按照解密的结构,只有加密密钥的拥有者即用户才能解密。1.7增强抗字典式攻击能力使用密码短语似乎比使用密码更有效,然而字典式攻击也可以应用于密码短语。为实现更广泛的安全特性,引入迭代哈希操作来保护分割密钥方案免受字典式攻击,以此对分裂密钥方案进行提升。为防止字典式攻击发现 d1和 d2,在该方案中引入以下变体。由 R 生成 r1和 r2,并引入一个值 B,将其写成 B1B2。B 应该存储在服务器端,这将减少攻击者获得用户共享(仅在客户端使用)和 B 的机会。接下来计算两 个 序 列 ei 和 fi,设 e0=SHA-512(r1B1),f0=SHA-512(r2B2),当 i 1 时,ei=SHA-512(r1B1ei-1),fi=SHA-512(r2B2fi-1)。设置 E=eN,F=fN,N 足够大。本研究选择 1 000 个数量级的 N,也可以选择更高的数量级。首先,把 E和 F 分成相等的段 E=E1E2和 F=F1F2,设 di=Ei Fi,其中 i=1,2。然后,像之前一样生成 x1和 x2。添加迭代哈希步骤的目的是在 d1和 d2中引入足够的熵,从而减少字典式攻击的可能。65第 2 期陈金木,等:基于云服务器应用的密码管理方案设计2 2 对比分析基于桌面的密码管理器容易受到存储和认证的影响。例如,由于缺乏完整性保护,文件头的未加密密钥字段或文档文本可能会发生更改,同时自动填充功能也存在一定的漏洞。本方案的密码管理是基于云存储的,可通过选择和应用秘密共享算法将用户密码存储在云服务器中,以保护数据的真实性和安全性,与其他密码管理器的安全性对比见表 1。表 1 本方案与其他密码管理器的安全性对比Tab.1 Security comparison between this scheme and other password managers安全性文献3方案文献2方案本方案抵抗数据库攻击(主动)抵抗数据库攻击(被动)抵抗进程内存攻击抵抗针对自动填充攻击基于桌面的密码管理器需要将用户账号及密码存储在本地设备上,一旦用户设备出现故障,用户存储的数据信息基本无法找回。更重要的是,用户既不能从其他设备获取密码,也不能轻易使用密码。基于浏览器的密码管理器在特定浏览器上运行,用户无法在不同浏览器上同步账号密码的存储信息。本设计是基于云服务器的密码管理方案,用户可以通过网络从任何地方轻松访问,与其他方案相比具有更多增强安全性的功能,具体的功能性对比见表 2。表 2 本方案与其他密码管理器的功能性对比Tab.2 Functional comparison between this scheme and other password managers功能性基于桌面的密码管理器基于浏览器的密码管理器本方案加密保存的账号及密码数据存储位置(本地)数据存储位置(网络服务器)支持云同步扩展设置支持多因素身份验证3 3 结语本研究提出了一种通过在云服务器上存储密码加密信息进行密码管理的方案。该方案将加密密钥分成用户共享和云服务器共享,用户共享完全取决于选定的密码短语,云服务器共享由用户共享和加密密钥生成,只有用户能够恢复加密密钥和加密/解密密码。该方案通过提供一个抗字典式攻击的特性对性能进行进一步增强,分析表明该方案具备更优的功能性与安全性。参考文献:1 秦中元,韩尹,张群芳,等.一种高可靠的多云存储密码管理器J.东南大学学报(自然科学版),2019,49(6):1081-1087.2 SCHNEIER B.Password safe-a popular easy-to-use and secure password managerEB/OL.(2020-04-30)2022-06-28.https: D.KeePass-a lightweight and easy-to-use password managerEB/OL.(2021-12-26)2022-05-09.https: 彭金辉,李橙橙,张朝阳,等.一种浏览器使用远端设备密码服务的方法及系统:202011057622.XP.2020-09-30.5 陈本峰,白东鑫,朱二强.一种浏览器快速登录方法,装置,系统及存储介质:201910949936.1P.2019-10-08.6 高瑾,白亮.基于网页浏览器和在线服务的安全密钥设计J.计算机工程与应用,2018,54(17):71-76,134.7 LUEVANOS C,ELIZARRARAS J,HIRSCHI K,et al.Analysis on the security and use of password managersC2017 18th in-ternational conference on parallel and distributed computing,applications and technologies(PDCAT),Guangzhou:IEEE,2017:13-14.8 韩尹.密码管理器的安全机制分析与改进研究D.南京:东南大学,2019.9 方亮,刘丰年,苗付友.基于秘密共享的组密钥协商方案J.计算机工程与应用,54(12):69-73,151.75