TMT观察网_独特视角观察TMT行业

?淺析區(qū)塊鏈DApp安全隨機源機制的設計與實現(xiàn)區(qū)塊鏈

ChainShells 2018-11-27 13:42
分享到:
導讀

近期區(qū)塊鏈DApp游戲的應用數(shù)量和用戶數(shù)量都得到了一定增長,但令人擔憂的是多款競猜類DApp頻頻爆出被黑客進行了針對隨機數(shù)缺陷的攻擊

近期,區(qū)塊鏈DApp游戲的應用數(shù)量和用戶數(shù)量都得到了一定增長,這對公鏈的應用探索和推廣有積極的促進。令人擔憂的是,多款競猜類DApp頻頻爆出被黑客進行了針對隨機數(shù)缺陷的攻擊。攻擊成功后,黑客就能夠預知競猜結果,來獲得下一次競猜的獎勵。

在中心化的競猜類應用里,競猜結果都是由中心提供的,參與競猜的客戶端向中心服務提交競猜訂單,中心收集競猜訂單并生成競猜結果返回給客戶端。在這個過程中,客戶端只負責收集競猜訂單和通知結果,并不參與競猜結果的計算。競猜結果都是由中心產生競猜用隨機數(shù),根據(jù)游戲規(guī)則將隨機數(shù)的隨機性體現(xiàn)在競猜結果上。通過這樣的隨機數(shù)轉化來保證競猜結果的隨機性和公平性。因此競猜應用是否公平、中獎機率是否隨機,完全取決于隨機數(shù)的生成、使用過程是否完全實現(xiàn)了的隨機性的傳遞。

在區(qū)塊鏈的DApp應用里,隨機數(shù)或由第三方隨機數(shù)服務接口利用Oracle機制,由硬件HSM生成后提供給區(qū)塊鏈參與者,或由智能合約提供生成規(guī)則后DApp自行生成。大多數(shù)DApp使用的都是由智能合約進行共識來生成偽隨機數(shù)。

目前,ETH和EOS等公鏈并未提供可靠的偽隨機數(shù)接口。一些熱門的DApp游戲尤其是競猜類游戲如Luckyos、EOS.WIN、EOSDice等先后因偽隨機數(shù)生成的缺陷而遭到黑客攻擊。我們以EOSDice舉例來說明攻擊的原理。

-------------------https://github.com/loveblockchain/eosdice/blob/v3.0/eosbocai2222.hpp--------------------

    uint8_t random(account_name name, uint64_t game_id)

    {

        auto mixd = tapos_block_prefix() * tapos_block_num() name game_id - current_time();

        const char *mixedChar = reinterpret_cast<const char *>(&mixd);

        checksum256 result;

        sha256((char *)mixedChar, sizeof(mixedChar), &result);

 

        uint64_t random_num = *(uint64_t *)(&result.hash[0]) *(uint64_t *)(&result.hash[8]) *(uint64_t *)(&result.hash[16]) *(uint64_t *)(&result.hash[24]);

        return (uint8_t)(random_num % 100 1);

    }

----------------------------------------------------------------------------------------------------------------------------------------

  從最新修復后的代碼可以看到,該隨機函數(shù)中使用的隨機因子(seed)主要是:
     tapos_block_prefix() * tapos_block_num()  --參照區(qū)塊信息
   name                                      --賬戶名
     game_id                                   --賬戶名
   current_time()                            -- 當前時間

在該版本中,下注賬戶余額(pool_ol_eos.amount) 已經(jīng)不參與隨機因子(seed)。項目方解決被攻擊的思路是避免黑客通過可控制的賬戶余額(pool_ol_eos.amount)來計算隨機因子(seed)。但該修復只是減少可控因素的成本,隨機因子中的賬戶名(name)還是可以被操縱的。當下注金額較大時,黑客依然有十足動力來進行攻擊。

從安全本質上來說,能夠被黑客輕易攻擊是因為這個隨機數(shù)算法不具備工業(yè)級別。表現(xiàn)為:

1.作為隨機因子的(seed)的熵源(Entropy Input)不是可靠。

2.隨機因子Seed的安全強度不足。

3.算法簡單和重置隨機因子機制缺失,隨機數(shù)結果可回溯且具備可預測性。

如何設計和運用具備工業(yè)級別的偽隨機數(shù)方案,筆者建議參考2015年 的NIST 800-90A《確定性隨機比特生成器的隨機數(shù)生成方法建議》(‘Recommendation for Random Number Generation Using Deterministic Random Bit Generators’),它給出了實踐和參考的一些實現(xiàn)方法。但結合DApp的業(yè)務流程時,也需要進行針對性的調整。NIST的800-90A 2016年版本也曾造成了重大的安全事故:建議中包含了4種隨機數(shù)生成方法,其中一種Dual_EC_DRBG算法為美國安全局進行全球的通訊竊聽提供了有力的助攻。

該建議書中的DRBG(Deterministic Random Bit Generators)機制有五個獨立的功能:

1.實例化功能(instantiate function)獲取熵源(entropy input)或者附加 隨機數(shù)Nonce和個性化字符串(personalization string)創(chuàng)建初始內部狀態(tài)的隨機因子(seed)。

2.隨機比特位生成功能根據(jù)請求使用當前內部狀態(tài)(current internal state)和可能的附加輸入(Additional Input)生成偽隨機比特位; 并生成下一個請求的新內部狀態(tài)(new internal state)。

3.重設隨機因子功能(Reseed Function)獲取新的熵源,并將其與當前內部狀態(tài)(current internal state)和可能的附加輸入(Additional Input)結合創(chuàng)建新的隨機因子(new seed)和新內部狀態(tài)(new internal state)。

4.注銷實例化功能將內部狀態(tài)清零擦除。

5.自檢功能確定DRBG機制能繼續(xù)正常運行。

image.png

圖片來源:NIST 800-90A《確定性隨機比特生成器的隨機數(shù)生成方法建議》

在開源世界里,已經(jīng)有很多滿足NIST要求800-90的DRBG的實現(xiàn),筆者建議在不具備密碼學基礎的Developer不要輕易的編寫自定義的偽隨機數(shù)生成器。

即使采用滿足標準的偽隨機數(shù)生成器,但由于偽隨機數(shù)生成算法跟設備上物理狀態(tài)或執(zhí)行過程中狀態(tài)相關,在區(qū)塊鏈分布式系統(tǒng)的各個Node無法得到一致的隨機數(shù)。 在區(qū)塊鏈世界里某些應用場景尤其是有獎競猜等,各個Node所需要的隨機數(shù)(不管是真隨機還是偽隨機)應該是可共識的,可信賴的,可驗證且可審計的。

鏈殼科技愿為DApp開發(fā)者提供全方位的安全設計咨詢和審查服務,共同提高產品抵御攻擊的能力,為用戶提供良好的安全體驗。合作請聯(lián)系:business@chainshells.com


隨機數(shù) 隨機 生成 因子 競猜
分享到:

1.TMT觀察網(wǎng)遵循行業(yè)規(guī)范,任何轉載的稿件都會明確標注作者和來源;
2.TMT觀察網(wǎng)的原創(chuàng)文章,請轉載時務必注明文章作者和"來源:TMT觀察網(wǎng)",不尊重原創(chuàng)的行為TMT觀察網(wǎng)或將追究責任;
3.作者投稿可能會經(jīng)TMT觀察網(wǎng)編輯修改或補充。


主站蜘蛛池模板: 海南在线 海南一家 | 珠海白蚁防治_珠海灭鼠_珠海杀虫灭鼠_珠海灭蟑螂_珠海酒店消杀_珠海工厂杀虫灭鼠_立净虫控防治服务有限公司 | 转子泵_凸轮泵_凸轮转子泵厂家-青岛罗德通用机械设备有限公司 | 纯化水设备-纯水设备-超纯水设备-[大鹏水处理]纯水设备一站式服务商-东莞市大鹏水处理科技有限公司 | 软膜天花_软膜灯箱_首选乐创品牌_一站式天花软膜材料供应商! | 食品机械专用传感器-落料放大器-低价接近开关-菲德自控技术(天津)有限公司 | 路斯特伺服驱动器维修,伦茨伺服驱动器维修|万骏自动化百科 | 皮带输送机-大倾角皮带输送机-皮带输送机厂家-河南坤威机械 | 合肥展厅设计-安徽展台设计-合肥展览公司-安徽奥美展览工程有限公司 | 金属回收_废铜废铁回收_边角料回收_废不锈钢回收_废旧电缆线回收-广东益夫金属回收公司 | 400电话_400电话申请_888元包年_400电话办理服务中心_400VIP网 | 北京成考网-北京成人高考网 | 济南拼接屏_山东液晶拼接屏_济南LED显示屏—维康国际官网 | 常州翔天实验仪器厂-恒温振荡器-台式恒温振荡器-微量血液离心机 恒温恒湿箱(药品/保健品/食品/半导体/细菌)-兰贝石(北京)科技有限公司 | 杭州公司变更法人-代理记账收费价格-公司注销代办_杭州福道财务管理咨询有限公司 | 拖鞋定制厂家-品牌拖鞋代加工厂-振扬实业中国高端拖鞋大型制造商 | 陕西自考报名_陕西自学考试网| 江苏密集柜_电动_手动_移动_盛隆柜业江苏档案密集柜厂家 | 耳模扫描仪-定制耳机设计软件-DLP打印机-asiga打印机-fitshape「飞特西普」 | 铁盒_铁罐_马口铁盒_马口铁罐_铁盒生产厂家-广州博新制罐 | 电磁流量计_智能防腐防爆管道式计量表-金湖凯铭仪表有限公司 | 沈阳庭院景观设计_私家花园_别墅庭院设计_阳台楼顶花园设计施工公司-【沈阳现代时园艺景观工程有限公司】 | 水质监测站_水质在线分析仪_水质自动监测系统_多参数水质在线监测仪_水质传感器-山东万象环境科技有限公司 | 篮球地板厂家_舞台木地板品牌_体育运动地板厂家_凯洁地板 | 健康管理师报考条件,考试时间,报名入口—首页 | 样品瓶(色谱样品瓶)百科-浙江哈迈科技有限公司 | 高速龙门架厂家_监控杆_多功能灯杆_信号灯杆_锂电池太阳能路灯-鑫世源照明 | 琉璃瓦-琉璃瓦厂家-安徽盛阳新型建材科技有限公司 | 桐城新闻网—桐城市融媒体中心主办 | 沟盖板_复合沟盖板厂_电力盖板_树脂雨水篦子-淄博拜斯特 | 临沂招聘网_人才市场_招聘信息_求职招聘找工作请认准【马头商标】 | 全温度恒温培养摇床-大容量-立式-远红外二氧化碳培养箱|南荣百科 | 档案密集柜_手动密集柜_智能密集柜_内蒙古档案密集柜-盛隆柜业内蒙古密集柜直销中心 | 北京翻译公司_同传翻译_字幕翻译_合同翻译_英语陪同翻译_影视翻译_翻译盖章-译铭信息 | 中视电广_短视频拍摄_短视频推广_短视频代运营_宣传片拍摄_影视广告制作_中视电广 | 福建自考_福建自学考试网| led冷热冲击试验箱_LED高低温冲击试验箱_老化试验箱-爱佩百科 | 酒店品牌设计-酒店vi设计-酒店标识设计【国际级】VI策划公司 | 北京律师事务所_房屋拆迁律师_24小时免费法律咨询_云合专业律师网 | 冷油器-冷油器换管改造-连云港灵动列管式冷油器生产厂家 | 广东燎了网络科技有限公司官网-网站建设-珠海网络推广-高端营销型外贸网站建设-珠海专业h5建站公司「了了网」 |