HIBTC谈比特币交易平台安全架构

更多更全的比特币资料尽在:http://t.cn/8kVYxyZ

近期部分比特币交易平台的账户被盗,以及前段时间国内两家交易平台被黑,让比特币玩家对放在国内比特币交易平台上的比特币提心吊胆。

HIBTC建立之初,本人与前百度同事,一起设计了一个比特币交易平台的安全架构。在这里拿出来给大家做个参考,希望能抛砖引玉。

平台安全

对于服务器安全设置这里就不多说了,互联网上有很多这样的文章。我们看图说吧。

整个结构是

1:前端一个代理服务器

2:脚本与webserver公用一台服务器

3:数据库单独一台服务器

4:比特币服务端单独一台服务器

5:短信接口 与邮件服务器使用第三方的。

将木桶理论(一个由许多块长短不同的木板箍成的木桶,决定其容水量大小的并非是其中最长的那块木板或全部木板长度的平均值,而是取决于其中最短的那 块木板)引入到安全领域,在信息安全中,认为信息安全的防护强度取决于“马奇诺防线”中最为薄弱的一环。所以我们得加强上图中所有环节的安全性。

1:为了不将真正的代码服务器暴露出来,在前端设置一个代理服务器。

2:代码服务器安全

由于wenserver跟PHP等脚本语言在同一台服务器,而脚本语言中 包含了数据库访问权限 以及比特币钱包 SMTP邮件服务器  SMS短信接口的访问权限,所以这一环节尤为重要。

为了保证这些权限的安全性,建议使用下面的方法

2.1 使用HipHop for PHP编译PHP执行,虽然有可能被反编译,但是至少在你的服务器权限被拿之后,多了一层保护 为你赢得了一些时间。

2.2 由于交易平台不会有文件写入,所以应该设置整个目录为只读权限

2.3 在有用户登录服务器后通过短信发送报警

2.4 与比特币服务端通讯采用动态密钥机制,例如将当前的时间戳的前9位作为加密密钥,这样就算配置文件被看到 也需要攻击者再通过阅读你的整个通讯接口的代码 来了解你的通讯机制。

2.5 在交易流程时设置一个数据表用来存储用户的账户变化,在用户提现时,统计这个账户变化表 与用户总金额进行对比,若不相等则很有可能是入侵者直接更改的用户表数据,然后发送报警短信。(当然此方法公布后 有可能就失灵了,可以用一些其他方法来做到相同的效果)

3:第三方安全

由于验证短信 以及找回密码时的邮件 都是通过第三方发送的,而第三方是有记录保留的,这样入侵者就可能截获了 验证信息。所以为了保证第三接口的安全,第一是要 选择大一点的第三方服务,第二是在第三方服务的账户与密码 要使用不常用的猜解难度大的密码。

4:最后一道防线。

入侵者入侵比特币交易平台的目的无非是想窃取比特币,所以比特币服务端就是我们的最后一道防线。有如下方法可以加固这道防线

4.1 钱包一定要加密

4.2 在钱包与PHP代码之间 加一个中间接口,中间接口可以去验证用户提现比特币的数量的正确性。同时可以设置一个转出比特币数量的最大值,当一次提现到达这个最大值时则拒绝以后的所有请求。(因为盗币者,大多希望一次提取完你的所有比特币)

账户安全

由于很多网站的数据库被爆,很多用户的密码明文也都被黑客掌握,近期很多交易平台的用户被盗都是这个原因引起的。

为了保证用户账户的安全,我们先来看看用户账户有哪些被盗取的途径。

1:用户密码被猜解

2:用户找回密码的邮箱被盗(或者是该邮箱的安全邮箱被盗 等连锁反应)

3:用户中了木马程序

那么我们如何来加固这些环节呢

1:设置交易密码 为用户构建第二道防线

2:设置提现安全验证(非密码),因为用户密码被猜解后,用户的交易密码也有可能被猜解。所以再设置个提现密码 应该也不会起到什么作用。这样手机就发挥作用了。因为很少出现用户密码被盗取后 手机也被同一个入侵者盗取。常见的手机验证有 google的动态密码验证,以手机客户端的形式安装在手机上。以及短信验证。

好啦,大致的就说到这里,由于本人不是做安全出身,所以有很多说得不对的地方 还请大家指正 请见谅。在这里再次感谢以前的同事鼎力相助。

更多更全的比特币资料尽在:http://t.cn/8kVYxyZ

你可能感兴趣的:(比特币)