比特大陆蚂蚁矿机S7

如何保护加密货币交易所的安全?硬件安全模块(HSM)是很好的选择

kyle 发布在 比特币 1 1725

Blockchain Graveyard是一个被攻击过的比特币交易所列表。该列表还在不断增加,这不仅在破坏公众对加密货币的信任,而且还在摧毁公司,客户和投资者等等。

QQ截图20160809133425

这些攻击的根本原因非常多并且通常还很复杂,但是这些漏洞中的大多数通过一种最佳的实践安全方式本来是可以被阻止的——或者至少可以受到严格的限制。

我们所说的最佳实践,我们是指银行机构,电信和政府在过去10年里一直以来的:安全硬件。

 

硬件安全模块

 

硬件安全模块(HSM)是一种实体计算设备,能够保护和管理加密密钥,为安全执行重要代码提供保护。

这些模块以一种PCI卡或者外部rackable设备的形式出现,能够直接与网络相连。

HSM具有内置的防篡改技术,在出现物理漏洞时能够抹去机密信息。

他们围绕着安全的加密处理器的芯片和积极的物理安全措施(如用以减轻边信道攻击或总线探测)进行架构。这些设备被广泛用于银行业,以及所有必须保护重要机密的行业。

 

比特币交易所和HSM

 

唯一不使用HSM的关键行业就是比特币交易所行业(除了Gemini之外)。对于一些未知和神秘的原因,热钱包的安全架构是基于特设的解决方案,围绕着现成的框架进行构建,因此,与通用标准或者FIPS140相比,完全无法保证。

当您处理您无法撤消的私钥时,而私钥被破坏将会造成大量损失,你无法在常规服务器架构上获得它们。

 

热钱包vs 冷钱包

 

大多数的交易所都将大量的(97%+)资产通过冷储存的方式进行保存。密钥是完全离线的,黑客是无法获得的。这是你能够拥有的最佳保护方式。然而,为了自动支付和保持功能正常,你就需要热钱包。这些钱包通过API来控制,并且接收命令来对交易进行签名,以此向想要取款的客户进行支付。因为你需要能够自动化这些钱包,所以 这些密钥必须是实时的,所以就存在了风险。

 

用于交易所的基于HSM的安全架构

 

在这一部分,我们将展示由Ledger公司推荐的基于HSM的架构来确保交易所热钱包的安全。

QQ截图20160809130855

以下为上图中不同的模块/服务:

  1. 交易所引擎:请求支付命令(用户请求提款)
  2. 交易所业务逻辑:能够查看所有用户余额,软/硬提款限额以及支付历史的API
  3. 硬件安全模块:与交易所资料处理中心服务器(例如:Safenet ProtectServer HSM)相连的PCI卡片
  4. Ledger Blue:由PIN代码保护并且保存在一个保险箱中并且只能由高级管理人员(CEO/CTO)访问的安全设备
  5. 2FA app:在用户手机中的外部第二因子信道(包括一种不对称密钥)

HSM本身围绕着以下单元构建:

  1. BOLOS core:这就是Ledger操作系统,保护导出所有密钥对的来源,暴露API,这样外部企业APP(如比特币钱包或者一种匹配引擎一致性检验)就能操作。这些APP在离线状态下被进行测试和签署,并且当系统正在运行时,将无法进行改变。
  2. 速率限制器:对签署授权的HSM的速度设定硬性限制(例如:1000BTC/小时,15000BTC/小时)。这是一个非常重要的数字:它将最终决定在系统被全面破坏的情况下的最大损失量。修改限制器规则的唯一方法通过一个由Ledger Blue设备签署的授权。
  3. 2FA信道:每个签名请求必须由这个内部插件来验证。这将需要两次盘问批准:一个来自于交易所业务逻辑(‘将你的新业务数据发给我,这样我就能检查它与以前的系统状态是否是一致的’),另一个来自用户本身(‘你确定你想这样做吗?’)
  4. 比特币钱包APP:包含所有构建和签署来自UTXO交易池的交易的逻辑(可以由ETH或者其他加密货币钱包来代替)

 

配置安全系统

 

HSM及其模块的初始化必须更加以下程序进行:

  1. 在配置模式下的HSM:与BOLOS core及其所有插件共同运行(固件的认证通过使用HSM内部逻辑和之前的设置来完成)
  2. 设置:HSM生成的一个256位master seed。它可以通过使用标准的机制,如Shamir的 Secret Sharing来进行分裂,作为一组BIP39字展示给不同的重要主管。根据每个安全官员最好的做法,制作和维护一份纸质备份。
  3. 配对:通过Ledger Blue完成安全的密钥交换。这时,只有这个设备拥有对速率限制器的授权。此时,可以对与配置引擎相关的初始业务逻辑数据进行配置。
  4. 生产:HSM被移动到生产设备并且切换到实时模式。从这时起,配置模式被禁用,任何试图物理上移动或者攻击HSM的尝试都会消除seed。

 

付款请求的流程

 

比方说,一个用户想要提取50BTC(所有账户余额)到一个他选择的一个比特币地址。他登录交易所并按照提取要求填写表格。之后的流程为:

  1. 带有支付地址的一个50BTC支付请求,所有客户元数据都被通过一个API命令从交易所引擎发送到HSM。
  2. HSM检查速率限制器是否能够处理50BTC大小的支付;获得绿灯(或者未获得)
  3. 该HSM现在要求2FA插件提出两次盘问:一次是向交易所交易逻辑,另一次是向用户app
  4. 业务逻辑收到取款信息数据,检查是否与数据库匹配(用户获得取款授权,受到反洗钱规定的限制,有足够的资金等等);返还之前由HSM和新转账信息认证的数据。
  5. 用户被推在他的2FA app上(之前他已经下载过的,最初与HSM通过交易所界面进行配对),她可以看到一个带有比特币地址的50BTC请求。当她确认后,该app会通过使用私有密钥对该盘问进行签名。
  6. 2FA插件对这笔支付开绿灯,然后,它被转发到的比特币钱包,对这些交易进行签名(使用UTXO),然后交给交易所引擎,对交易进行广播,并发布内部命令对其账本进行更新。

 

最糟糕的情况

 

让我们直接假设攻击者完全掌控了整个交易所(就像一个内部所为一样)。通过注入虚假的用户配对,攻击者可以很容易地欺骗2FA用户信道。不过,注入虚假市场数据到HSM需要攻击者小心处理——如果HSM未能通过周期性一致性检查,它就会关闭签署插件直到管理员重新激活。

最后一道防线是速率限制器:攻击者无法提取超过HSM的硬性限额设定(这个设定是黑客无法改变的,黑客无法触及Ledger Blue)。几个小时后,客户开始抱怨空账,安全团队可以紧急关闭HSM。‘社区’检测到出现错误越快,黑客被阻止的越快。

最糟糕的情况就是,丢失在速率限制器每小时允许的限额的资金,并且是在黑客攻击了几个小时仍旧未被检测到的情况下。

黑客能够奇迹般地从HSM提取master seed的情景是极度不可能的。这些安全模块都经过仔细的测试,并且大多数漏洞已经被限制为管理界面的滥用或者误解。当然,你可以说没有什么是牢不可破的,这确实是事实。但要实现这样一个壮举的难度要比控制整个IT构架还要高上几个数量级。

另外,我们还可以假设一些Ledger Blue被攻击者掌控的情形,或者出现黑客访问了seed备份的情况。因为人类在犯愚蠢错误的倾向方面,事实上这可能会是其前进方向…这就是为什么即使是最好的安全技术没有常识和仔细审核的流程就一无是处。

本文作者Nicolas Bacca是Ledger的联合创始人兼CTO,他是一名计算机科学工程师,专业从事智能卡技术,并且对高效编码入迷。

 

发文时比特币标准价格 买价:¥3878.22 卖价:¥3877
原文:https://medium.com/@Ledger/how-to-properly-secure-cryptocurrencies-exchanges-511fe7a669a3#.hngxrky27
作者:Nicolas Bacca
编译:Kyle
稿源(译):巴比特资讯
版权声明: by nc" sa 作者保留权利。文章为作者独立观点,不代表巴比特立场。

评论:1

您需要登录后才可以回复 登录|注册
    巴比特资讯
    巴比特资讯 121 天前

    【如何保护加密货币交易所的安全?】比特币交易所被黑客攻击的事件这么多年来一直未停止,这不仅在破坏公众对加密货币的信任,而且还在摧毁公司,客户和投资者等等。硬件安全模块(HSM)是一种实体计算设备,能够保护和管理加密密钥,为安全执行重要代码提供保护。http://t.cn/RtCgsvV

    +1
    +1
    我要点评