在计算机系统中安全生成和存储密码的制作方法

文档序号:8385950阅读:585来源:国知局
在计算机系统中安全生成和存储密码的制作方法
【专利说明】在计算机系统中安全生成和存储密码
[0001]相关案件声明
[0002]本申请要求于2012年8月13日提交的美国临时专利申请序列号第61/652,235号的优先权和权益,其在此通过引用被整体并入。
[0003]背景
[0004]保护密码和其他信息对于保护计算机的安全来说是重要的。密码是对针对计算机系统的有害入侵的关键防御。丢失密码(通常通过黑客行为),以及所造成的安全信息丢失通常是灾难性的,因为可能丢失重要且高度敏感的数据。
[0005]密码安全性问题即使在计算机系统交互时也存在。在这些情况下,访问第二计算机系统的第一计算机系统也必须通过密码访问第二计算机系统。
[0006]当第一系统自动地访问第二系统时,密码(或其他认证信息,在此简称为密码)可能需要存储在第一计算机系统中,而不是由人输入。这通常增加这些密码可能被访问包含这样的密码的可执行软件或配置文件的任何人获取的风险。
[0007]为了降低这种风险,需要新的和改进的生成、存储和访问密码的系统和方法。

【发明内容】

[0008]本发明使用本地配置数据、数据串接(data concatenat1n)、哈希函数和加密来处理密码以保护密码。该信息可以存储在第一计算机设备上。该信息可以作为软件应用存储在第一计算机设备上的存储器中。该信息还可以存储在第一计算机设备上的存储器中的配置文件中。当第一计算设备需要访问第二计算设备时,第一计算设备逆转该过程来获得密码。
[0009]本发明的一个方面是一种保护密码的方法。处理器在存储器中的指令集的控制下选择一组本地配置数据,串接该组本地配置数据,并计算串接数据的哈希值。处理器通过使用哈希值作为密钥来对密码加密以生成加密的串,然后将加密的串编码为软件程序中的串O
[0010]根据本发明进一步的方面,计算SHA-256哈希值。也可以计算其他哈希值。
[0011]根据本发明进一步的方面,可以使用AES-256密钥来执行加密步骤。
[0012]加密步骤还可以使用ECB模式或计数器模式(Counter Mode)。还可以使用其他的密钥大小、加密方法或加密模式。
[0013]根据本发明的另一方面,编码步骤使用Base 64来执行编码步骤,尽管在此步骤也可以使用其他的编码过程,或不使用任何编码过程。
[0014]本地配置数据可以使用不同的信息和不同的过程构建。根据本发明的一个实施例,使用来自处理器的CPUID指令生成本地配置数据。根据本发明的另一个实施例,使用来自网络接口卡的48位MAC地址生成本地配置数据。在进一步的实施例中,使用来自操作系统的软件许可号生成本地配置数据。在又一实施例中,使用来自与处理器连接的外围设备的型号和序列号生成本地配置数据。这些本地配置数据也可以结合起来使用。
[0015]根据本发明进一步的方面,处理器在其计算机系统想要访问另一计算机系统时还执行以下步骤。当它需要重建密码时,处理器解码加密的串以得到二进制密文,获得该组本地配置数据,并计算哈希值以获得重建的密钥,然后使用重建的密钥解密该二进制密文以获得密码。然后,处理器使用密码访问计算机系统。
[0016]在已经重建密码后,处理器优选地破坏重建的密钥。在本发明的一个实施例中,处理器擦除存储器中重建的密钥。在本发明的另一实施例中,处理器改写存储器中重建的密钥以破坏重建的密钥。
[0017]本发明还考虑一种用于保护密码的系统。该系统是具有存储指令集的存储器和与存储器中的指令集通信的处理器的计算机系统。指令集能操作来使得处理器:选择一组本地配置数据;串接该组本地配置数据,并计算串接的数据的哈希值;通过使用作为密钥的哈希值对密码加密来生成加密的串;以及对加密的密码编码,并将加密的密码存储在存储器中。
[0018]在本发明的一个实施例中,在软件应用中对加密的密码编码。在本发明的另一实施例中,将加密的密码存储在配置文件中。
[0019]一段时间后,当处理器需要访问密码时,它对加密的串解码以得到二进制密文,获得该组本地配置数据,并计算哈希值以获得重建的密钥,使用重建的密钥解密二进制密文以获得密码,并使用密码访问第二计算机。
【附图说明】
[0020]图1图示根据本发明一方面的将密码存储在软件应用中。
[0021]图2图示根据本发明一方面的将密码存储在配置文件中。
[0022]图3图示根据本发明一方面的通过SSL或通过TLS保护的密码提交。
[0023]图4图示根据本发明一方面的在配置文件中的受保护的密码。
[0024]图5图示根据本发明一方面的混乱的密码。
[0025]图6图示根据本发明一方面的通过本地配置数据保护的密码。
[0026]图7图示根据本发明一方面的在创建和保护密码中的步骤。
[0027]图8图示根据本发明一方面的在解码密码中的步骤。
[0028]图9图示根据本发明一方面的系统。
【具体实施方式】
[0029]本发明的目的是提供增强对密码和其他秘密对称密钥、私人密钥或认证数据的保护的方法和系统。密码可以存储在软件中,如图1所示。在此情形中,密码可以加密成作为文件、软件应用或其他软件程序的部分存储的串。密码还可以存储在配置文件中,如图2所不O
[0030]以这种方式存储的密码容易受到严重威胁。攻击者可以访问、复制和分析存储在本地介质中的软件可执行文件或配置文件。由于内部攻击、访问存储在别处的软件或配置文件的备份拷贝、或保护软件或配置文件的访问控制中的空隙,这是可能发生的。
[0031]攻击者可以访问、复制和分析存储在远程介质中(例如,在分布式计算或云计算配置中)的软件可执行文件或配置文件。
[0032]攻击者可以访问、复制和分析作为在主存储器中或分页设备上运行过程的映像的软件。
[0033]攻击者可以访问、复制和分析在系统故障后写入的软件的副本,或通过旁路攻击(side channel attack)获得的或在已经关闭电力后在包括DRAM的存储设备中找到的软件的全部或部分副本。
[0034]一般地说,本发明中描述的模型假设攻击者可能不在使用密码的操作期间访问、复制或跟踪运行的软件。而且,攻击者可能不在从第一系统发送密码到第二系统时简单地窃取该密码。
[0035]存在用于保护密码的方法。方法可以提供用于(I)控制对软件可执行文件和配置文件的访问(参见图4);或(2)代码混乱以使得逆向工程软件和提取密码或其他秘密信息困难(参见图5)。此外,如图3所示,根据本发明的一方面,可以通过SSL或使用TLS保护密码提交。而且,如图6所示,可以在配置文件内保护密码。可以使用这些措施,但它们优选地与本发明结合使用,因为尽管它们可能是有帮助的,但它们可能不是在所有的情形中充分的。当然,可以对密码加密,但这可能只是将问题从保护密码转移到保护解密密钥。
[0036]然而,攻击者可以在不完全访问第一系统或不完全知道软件如何工作的情况下,成功获得软件可执行文件或配置文件。而且,在某些情况下,攻击者可能受限只能一次性访问第一系统,并且不能再次入侵来获得额外的信息。
[0037]除了使用访问控制和混乱方法(无论哪个可用)之外,本发明使得访问存储在第一系统的软件或配置文件中的密码(或其他秘密认证数据)依赖于其他系统参数,其他系统参数对攻击者来说可能不可用或者具有有限访问权限的攻击者未能获得或不能获得。
[0038]当软件第一次安装时,或者当密码改变时,需要一些系统管理操作将密码或其他秘密认证信息插入本地系统。如果,根据本发明的一方面,该信息以安全的方式依赖于攻击者可能不具有的本地配置数据,那么单独拥有软件和配置文件的副本对获得密码或秘密认证信息来说可能是无用的,另外,在别处运行软件将不允许重建、提取或使用正确的密码或秘密认证信息。
[0039]本发明所面对的挑战是找到一些固定不变的、可重复的但不容易猜出并且不存储在应用软件或其配置文件中的对于本地配置特定的信息。一些候选如下:
[0040]来自英特尔和AMD的现代CPU具有CPUID指令。通过重复设定参数的若干值并执行该指令,获得信息阵列,其虽然不唯一但难以准确猜出。
[0041]网络接口卡具有全球唯一的48位MAC地址。在LAN上的数据通信暴露该地址,但与其他网络的路由通信并不如此。
[0042]操作系统软件可能具有可以被访问的软件许可号。
[0043]外围设备,如硬盘,可能有通过软件可访问的型号和序列号或配置信息(如中断向量、地址或优先级)。
[0044]专用硬件可以包括对一些恒定输入返回一致但外部不可预测的值的物理随机函数。
[0045]除了其他已有的保护之外,还可以使用下面的过程来降低攻击者可以以上述威胁模型提取密码或其他秘密认证数据的可能性。在安装处,当秘密认证信息变化时,或者当本地配置数据变化时,如图7所示,根据本发明的各方面执行下面的步骤:
[0046]步骤1-选择一组本地配置数据。可使用上面定义的配置数据。也可以使用其他的配置数据。优选地,选择的本地配置数据最大化可重复的机会并且是不容易可猜出的。
[0047]步骤2-串接本地配置数据,并计算串接的数据的哈希。可以根据优选实施例计算SHA-256哈希。还可以使用其他处理本地配置数据的方法,如使用固定且已知的密钥加密数据。
[0048]步骤3-使用哈希值作为AES-256密钥来加密密码和其他秘密认证信息。对于少量的秘密认证信息,ECB模式是合适的。对于较大的量,应该使用计数器模式。可以使用其他使用处理的本地配置数据加密密码的方法,例如简单的异或(XOR)操作。
[0049]步骤4-将加密的密码存储在存储器中。优选地,在软件中将加密编码为可打印串。编码可以是例如Base64,但也可以使用其他的编码。还优选对该串应用可用且谨慎的混乱。
[0050]当需要密码时,如图8所示,优选地通过处理器执行下面
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1