首页 / 专利库 / 银行与财务事项 / 加密货币钱包 / 对存储加密货币的钱包进行安全访问的方法及装置

对存储加密货币的钱包进行安全访问的方法及装置

阅读:481发布:2020-06-07

专利汇可以提供对存储加密货币的钱包进行安全访问的方法及装置专利检索,专利查询,专利分析的服务。并且本 发明 提供了一种用于对存储 加密 货币 和/或其密钥的钱包进行安全 访问 的方法,具有在其中运行交易逻辑的交易 服务器 ,用于与由用户控制的客户端设备一起执行数字交易,其中,每个用户分配有一个用户密码和一个唯一ID,另一个组成部分是在其中管理钱包的钱包服务器,其特征在于,为了完成一交易,需完成从所述交易服务器到所述钱包服务器的访问,所述访问是基于每个用户的用户密码、一非对称服务器密钥对和一对称用户密钥。,下面是对存储加密货币的钱包进行安全访问的方法及装置专利的具体信息内容。

1.一种用于对存储加密货币和/或其密钥的钱包进行安全访问的方法,交易逻辑在交易服务器中运行以便与由用户控制的客户端设备执行一交易,其中,每个用户分配有一用户密码和一唯一ID,在钱包服务器中管理所述钱包,其特征在于,为了完成一交易,从所述交易服务器到所述钱包服务器的访问是基于每个用户的所述用户密码、一非对称服务器密钥对和一对称用户密钥。
2.根据前述权利要求所述的方法,其中,所述对称用户密钥用所述用户密码进行加密并且被加密地存储在所述交易服务器中,使得只有所述用户能够访问所述用户密钥。
3.根据前述权利要求中的一项或多项所述的方法,其中,所述非对称服务器密钥对的私钥存储在所述钱包服务器中,并且所述非对称服务密钥对的公钥存储在所述交易服务器中,
其中,为了交换所述对称用户密钥,所述对称用户密钥必须在由所述非对称服务器密钥对的所述公钥对其加密的情况下从所述交易服务器发送到所述钱包服务器,并且与所述用户相关联地存储。
4.根据前述权利要求中的一项或多项所述的方法,其中,在由所述交易服务器支付所述加密货币的交易请求中,利用输入的所述用户密码来解密所述对称密钥,所述交易请求在被所述对称密钥加密的情况下发送到所述钱包服务器,并且由所述交易服务器执行支付。
5.根据前述权利要求中的一项或多项所述的方法,其中,具有唯一用户ID的所述对称密钥被存储在所述交易服务器和所述钱包服务器中,并且所述用户ID也被发送,使得访问更容易。
6.根据前述权利要求中的一项或多项所述的方法,其中,在更改所述用户密码的情况下,用旧用户密码解密所述对称密钥,并用新用户密码加密所述对称密钥。
7.根据前述权利要求中的一项或多项所述的方法,其中,所述钱包服务器仅允许与经授权和/或经认证的交易服务器建立通信。
8.根据前述权利要求中的一项或多项所述的方法,其中,所述交易服务器只能以只读的方式访问所述钱包服务器,并且只有在所述加密货币的数额足够高时才执行交易。
9.根据前述权利要求中的一项或多项所述的方法,其中,使用链法来确定所述加密货币的状态。
10.根据前述权利要求中的一项或多项所述的方法,其中,所述钱包服务器中的所述对称密钥从不被重写,而是仅在对于一用户ID不存在密钥时才写入对称密钥。
11.一种系统,包括用于对存储加密货币和/或其密钥的钱包提供安全访问的装置,并具有交易服务器和钱包服务器,其特征在于用于实现权利要求1-10中的一项或多项所述的方法的装置和构造。

说明书全文

对存储加密货币的钱包进行安全访问的方法及装置

技术领域

[0001] 本发明涉及一种用于对存储加密货币和/或其密钥的钱包进行安全访问的方法及装置,其中,交易服务器运行交易逻辑以便与由用户控制的客户端设备一起执行交易。

背景技术

[0002] 加密货币例如比特币被保存在所谓的钱包中。加密货币是私人创造的货币或以数字支付形式的法定货币。它们使用密码学原理来实现分布式的、去中心化的和安全的数字补充货币系统。在这方面,还参考了维基(Wiki)https://en.wikipedia.org/wiki/Cryptocurrency。
[0003] 在加密货币中,所有参与者通过对等(Peer-to-Peer)网络彼此通信。参与者发送到该网络的每条消息对于每个其他参与者都是可用的。然而,该消息不会作为广播发送,而是,正如P2P(对等)网络中所通常的那样,会逐渐从一个参与者传递到另一个参与者。因此,在该网络中发送的消息对应于对所有参与者的公开。
[0004] 首先,每个新参与者创建用于非对称密码系统中的密钥对。公钥通过P2P网络公开,如果适用,也可通过其它方式公开。现在,私钥允许参与者以加密方式签署交易订单。每个用户都可以通过这种方式创建一个帐户。新创建的账户的贷方余额为零。所公开的密钥实际上是帐号,也称为帐户地址。私钥保护帐户的权限/管控。由于每个参与者原则上可以创建与他希望的同样多的密钥对,所以密钥对被保存在被称为钱包的文件中。加密货币也将被存储在该钱包中,该加密货币在下文中被称为比特币,但是这不应当认为旨在限制保护范围,而是旨在将比特币作为所有加密货币的同义词。
[0005] 网络钱包(Web Wallet)受加密密钥和密码的保护。为了自动响应来自客户的支付请求,这些密码和密钥必须存储在机器上,该机器在需要时根据客户请求执行支付。
[0006] 因此,钱包会驻留在具有不同质量的安全标准的各种服务器上。
[0007] 提供比特币服务的网站也使用这样的钱包。有能入侵这些网站的服务器的黑客则能够使用在这些网络钱包中所管理的比特币。

发明内容

[0008] 为了保护这种网络钱包免受攻击,本发明开发了如权利要求中限定的方法及系统。
[0009] 所述系统是基于一种“加密方法”。所述方法规定比特币是存储在一分立的钱包服务器中。网页服务器和钱包服务器之间的通信是通过一种加密方法来保护,所述加密方法是基于每个客户的客户密码、一常规非对称密钥和一对称密钥。
[0010] 在这种方法的帮助下,能够防止设法入侵交易服务器的攻击者同时还获得对钱包服务器中的客户存款的访问权限。由于只有交易服务器在因特网上是可见的,因此,显著增加了钱包的安全性。
[0011] 两个服务器被用来保证所操作的钱包交易的处理过程是安全的。在交易服务器中运行所要保护的服务器的交易逻辑,并且在钱包服务器中处置钱包,用加密货币进行交易就可以由此开始。每个客户都有一个只有他自己知道的密码和一个在整个系统中能够清楚地对其进行识别的ID。
[0012] 具体地,本发明是一种用于对存储加密货币和/或其密钥的钱包进行安全访问的方法,具有在其中运行交易逻辑的交易服务器,用于与由用户控制的客户端设备一起执行数字交易,其中,每个用户具有用户密码和一分配的唯一ID。另一个组成部分是管理钱包的钱包服务器。为了完成一交易,交易服务器基于每个用户的用户密码、一非对称服务器密钥对和一对称用户密钥来访问钱包服务器。
[0013] 这里优选地,所述对称用户密钥用所述用户密码加密并且被加密地存储在所述交易服务器中,使得只有所述用户在输入所述密码时才能够访问所述用户密钥。在一个可能的实施例中,可以有一个为用户提供的登录区域,用户可以使用该登录区域来登录他在交易服务器中的个人帐户。除了这些登录信息,在另一可能的实施例中有可能需要输入相同或额外的密码以解密该对称用户密钥。加密方法和密码应该与尽可能强的加密标准相对应。
[0014] 随后,非对称服务器密钥对的私钥存储在所述钱包服务器中,所述非对称服务密钥对的公钥存储在所述交易服务器中,所述私钥和所述公钥被用来发送对称用户密钥。
[0015] 为了交换所述对称用户密钥,所述对称用户密钥由所述非对称密钥对的所述公钥加密并从所述交易服务器发送到所述钱包服务器,并且在所述钱包服务器中存储成与所述用户相关联,特别是与所述ID相关联。该密钥被放置在钱包服务器中的安全区域。该安全区域可以通过相应的服务器密钥来保护,所述服务器密钥对所有对称用户密钥进行相应加密,使得未授权访问更加困难。
[0016] 必须确保每个用户只有一个唯一ID和单个对称用户密钥。防止重写该对称用户密钥。而是,当必须删除或更改用户密钥时,则创建一个新记录。然而,对于这种交易,对系统的特殊干预是必要的,以使得它们非常难以执行。并且,对称用户密钥优选地仅存储一次,并且永久地不被再次存储。如此,所述对称密钥在所述钱包服务器中从不被重写,而是仅在一用户ID还不存在时写入一对称密钥。
[0017] 在有一个需要加密货币的交易时,则对于按照用户ID登录的用户,从交易服务器生成一个交易请求。
[0018] 在交易请求是通过交易服务器支付加密货币的情况下,通过输入所述用户密码来解密所述对称密钥,所述交易请求和所述对称密钥一起被加密地发送到所述钱包服务器,并且由所述交易服务器来执行支付。
[0019] 由于所述对称密钥优选地与所述唯一用户ID一起存储在所述交易服务器和所述钱包服务器中,并且由于所述用户ID也被发送,因此,可以简单地进行访问。
[0020] 在更改所述用户密码的情况下,所述对称密钥用旧用户密码解密,并用新用户密码加密。然后根据已知的方法发送新的对称用户密钥,停用旧密钥,并将新密钥存储在新的存储区域中。
[0021] 为了在所述钱包服务器和所述交易服务器之间建立安全通信,所述钱包服务器仅允许与经授权和/或经认证的交易服务器建立通信。应当注意,该通信还由证书来进行额外的保护和加密。并且,对单个服务器的访问可以例如经由SSL或类似的协议来建立,这些协议一方面允许识别服务器或其地址,另一方面允许进行加密数据的交换。此外,可能需要来自所述交易服务器的附加登录信息,使得所述交易服务器可以登录到所述钱包服务器并且可以交换数据。
[0022] 另一种安全方法是,所述交易服务器仅具有对所述钱包服务器的帐户余额的读取访问权,并且只有在加密货币的数额足够高时才执行交易。这里,来自交易服务器的相应请求被发送到所述钱包服务器,并且所述钱包服务器确认相应数额的加密货币是否可用。如果必要,可以阻止一定量的加密货币,使得该交易还可以被执行。
[0023] 在另一个实施方案中,一种链法被用来确定所述加密货币的数额。
[0024] 在该区块链法中,存在记录序列(所谓的区块)形式的完整交易记录。网络中的所有计算机都有该区块链的副本,它们通过交换新的区块来更新该区块链。每个区块包含自上一个区块被发送以来的一组交易。为了保持区块链的完整性,该链中的每个区块确认前一区块的完整性,直至第一个区块。区块的插入是困难的,因为每个区块必须满足某些要求,使得难以生成有效区块。这样,任何一方都不能覆盖现有区块。
[0025] 本发明的另一部分是一种用于对存储加密货币和/或其密钥的钱包进行安全访问的系统,其具有交易服务器和钱包服务器,还包括实现上述方法的设备和构造。这可以是满足适当的要求的标准服务器,所述标准服务器具有处理器、存储器硬盘驱动器和网络连接,并运行有操作系统。此外,在这个操作系统中运行一相应软件以实现所述钱包服务器和所述交易服务器的功能。经由网络实现该系统的连接。这可以是这两个系统之间的专用网络,或是虚拟专用网络(VPN),这可以在因特网上进行切换。附图说明
[0026] 图1-3示出了本发明的流程图

具体实施方式

[0027] 在下文中,通过参考具体的命令行来对本发明进行描述,这也在反映在对应的附图中。
[0028] 加密过程通过OpenSSL调用来说明。
[0029] I.非对称密钥(图1)
[0030] 1:生成非对称私有/公开密钥对
[0031] 使用具有4096位的标准RSA密钥。
[0032] openssl genrsa-out cryptoprocess.key 4096
[0033] openssl rsa-in cryptoprocess.key-pubout-out cryptoprocess.crt[0034] 2:在钱包服务器中存储私钥
[0035] 私钥“cryptoprocess.key”存储在钱包服务器中,该密钥“属于”钱包服务器。
[0036] 3:在交易服务器中存储公钥
[0037] 公钥“cryptoprocess.crt”存储在交易服务器中,该交易服务器于是可以向钱包服务器发送安全消息。
[0038] II.对称密钥(图2)
[0039] 对于支付请求的对称加密,为每个客户在交易服务器中生成一密钥(secret)。对于该生成过程,应使用能生成强随机值的软件。
[0040] 1:用户用用户密码进行首次登录
[0041] 该密钥在该用户首次登录时生成。
[0042] 2:为用户生成密钥
[0043] 为了说明的目的,密钥在此是存储在交易服务器中的“secret.txt”文件中。在实际实施时,密钥仅临时存储在该生成过程的主存储器中,并且该文件并不是永久存储的:
[0044] openssl rand-base64 370|tr-d"\\n">secret.txt
[0045] 密钥的长度必须选择成能够借助于在先生成的非对称密钥对来进行加密。
[0046] 3:用用户密码加密密钥
[0047] 密钥被用户密码(变量$kundenpasswort)加密。
[0048] cat secret.txt|openssl aes-256-cbc-a-salt-pass pass:
[0049] $kundenpasswort>password_encrypted_secret.txt
[0050] 4:在用户ID下存储加密的密钥
[0051] 将加密的密钥存储在交易服务器中该用户的ID下。在交易服务器中,密钥因此只有加密后才存储,并且只有在用户密码已知的情况下才能被读取。
[0052] 5:用公钥对该密钥进行非对称加密
[0053] 为了发送到该钱包服务器,用在“I.非对称密钥”这一部分中在交易服务器中生成的公钥对该密钥进行加密。
[0054] cat../secret.txt|openssl rsautl-encrypt-pubin–inkey
[0055] cryptoprocess.crt|base64>../publickey_encrypted_secret.txt[0056] 6:将非对称加密的密钥和用户ID一起传送至该钱包服务器
[0057] 该非对称加密的密钥与用户ID一起被传送至该钱包服务器。由于该消息是加密的,因此可以使用消息队列、同步数据库表或http、ftp或scp作为传输路径。
[0058] 7:检查对于所传送的用户ID是否已经存在一密钥
[0059] 该钱包服务器接收该加密的消息以及该用户的ID,并检查是否已经有用于该ID的密钥。
[0060] 8:用私钥解密密钥
[0061] 如果没有可用于该ID的密钥,则用私钥解密该密钥。
[0062] publickey_encrypted_secret.txt|base64-d|openssl rsautl-decrypt-inkeycryptoprocess.key>secret.txt
[0063] 9:将该密钥存储在该用户ID下
[0064] 将该密钥存储在该用户的ID下。
[0065] III.支付(图3)
[0066] 1:利用用户密码进行支付请求
[0067] 伴随每次支付请求,用户必须输入他/她的密码。
[0068] 2:解密该请求用户的密钥
[0069] 使用该用户的密码来解密为该用户所生成的密钥。
[0070] 3:支付请求的对称加密
[0071] 使用解密的密钥对该支付请求进行对称加密。
[0072] echo"I am a payment request"|openssl aes-256-cbc
[0073] -a-salt-pass pass:`cat password_encrypted_secret.txt|openssl aes-256-cbc-d-a-pass pass:$kundenpasswort`>encrypted_message.txt
[0074] 4:发送该加密的支付请求
[0075] 该加密的支付请求通过消息队列、同步的数据库表或通过http、ftp或scp发送。
[0076] 5:处理支付请求
[0077] 使用钱包服务器中存储在该用户的ID下的该用户的密钥来解密该钱包服务器所接收到的支付请求。
[0078] cat encrypted_message.txt|openssl aes-256-cbc-a-d-pass pass:`cat secret.txt`
[0079] IV.密码管理(无图)
[0080] 1:密码更改
[0081] 如果交易服务器中的密钥使用用户密码进行了加密,则在更改密码时必须使用旧密码(变量$kundenpasswort_alt)对其进行解密,并使用新密码(变量$kundenpasswort_neu)对其进行加密。
[0082] cat password_encrypted_secret.txt|openssl aes-256-cbc-d-a-pass pass:$kundenpasswort_alt|openssl aes-256-cbc-a-salt-pass pass:$kundenpasswort_neu>password_encrypted_secret.txt
[0083] 2:密码恢复
[0084] 如果密码丢失,用户必须能够恢复其密码。然而,这不能由交易服务器自动完成,因为已经控制了交易服务器的攻击者是不被允许去访问钱包服务器中的用户存款的。在不知道用户密码的情况下,不可能获取或更改为该客户生成的密钥。
[0085] 为此,应当建立不由交易服务器发起的用于密码恢复的方法。实现这一点的一种方式是支持请求,该支持请求是在后台处理。一名支持人员处理该支持请求,从交易服务器和钱包服务器这两者中均删除该用户的密钥,并向用户发送一封密码恢复邮件。如果用户选好新密码,则创建新的密钥,并执行从“d)密钥生成”步骤开始的方法。
[0086] 攻击可能性是基于如下假设:攻击者已经获得对交易服务器的控制,并且现在正试图访问在钱包服务器中的客户存款。如果攻击者自己创建了该用户,他知道密码并且可以解密密钥。他现在可以向钱包服务器发送任意金额的支付指令。
[0087] 作为对策,客户的账户余额在钱包服务器中是基于区块链管理的。允许交易服务器以只读的方式访问该帐户。该钱包服务器在每次支付之前检查该客户的余额是否足以用于支付。
[0088] 在另一种形式中,攻击者可能尝试向钱包服务器发送新的密钥。作为对策,可以要求钱包服务器从不覆盖所存储的密钥,而是仅在一个用户ID没有密钥时才写入它们。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈