如何从源头确保数据安全?
极客时间编辑部
讲述:丁婵大小:6.50M时长:04:44
很多区块链技术人会(有意)忽视一个问题:数据如何同区块链交互。就像其他众多系统一样,区块链技术也正经历着“垃圾输入,垃圾输出”(GIGO)的痛。日前,Taraxa 创始人兼 CEO Steven Pu 发文分享了解决区块链技术“垃圾输入和垃圾输出”的方法,以下为原文编译内容。
之前发布的关于数据的文章中,我们发现对于那些非区块链本地生成且非公开可获取的数据,区块链系统并不能确保其真实性,而不幸的是,全球绝大多数都是这类数据。因此,如果某人(某设备)提交欺诈性数据到区块链上,我们根本无法确定其真实性,结果就是你不停地提交假数据到区块链历史。于是,你让垃圾上了链,区块链再还你一堆垃圾。
据悉,如今忽略这个问题的应用比比皆是,通常它们会再附加一些技术层确保数据正确性。比如在去中心化数据市场,用代币激励企业挂牌出售数据。但你怎么知道你买的数据是真实的?再比如隐私保护查询,这项服务通过一种零知识范围证明来计算银行高净值人士数量,这样你就可以收获一个数字而银行不用提交任何客户数据。那么你怎么确认银行没有伪造整个客户数据库?
对于公开可获取的数据,你可以设计一个游戏,让有资金风险的玩家向其他玩家的数据真实性发起挑战。但世界上大部分的数据并非公开可获取。那该怎么办?关键是要在源头确保数据安全。
但是如何从源头确保数据安全呢?由于世界上大部分数据都是由设备产生或捕捉,我们也可以把这个问题描述为如何保护设备生成的数据。现在,我们面临着三个潜在的失败点:
身份:你如何知晓正在生成数据的是什么设备?是你预想的温度感应器吗?还是作恶者的随机数生成器?
处理和传输:即使数据来源真实可确定,你又从何得知这个数据没有被更改、损坏或在设备的处理和传输过程中被直接替换掉?
数字 / 模拟接口:如何预防有人通过接入假的输入信号源对设备采集数据渠道进行物理更换?
下面我们来一一解决这些问题。
身份
首先,为了确保生成数据的设备身份受到保护,我们可以在设备上嵌入一组公私钥,让公钥知晓并且现场检查实际设备的输出,通过这种切实可行的手段确保硬件的身份没有问题。当然,这是相对简单的一步。
棘手的部分是,你如何确保这个身份不是偷来的或者只对设备可知?这里可以采用一种叫做“安全元素”(Secure Element, SE) 的硬件模块,它能够在芯片上生成公私钥对,并且高度防篡改。通常情况下,这个安全模块只做一件事:签署消息。这是一个提供身份证明的好方法。如果你持有过信用卡,或者用过现代智能手机,那么你已经享受到了这个安全元素的好处。
处理和传输
其次,为了保护数据处理与传输逻辑的安全,我们采用了一个带有安全启动程序(SB)的微控制器(MCU)。你可以把这里的微控制器想象成一台超级简单的计算机。
安全启动程序确保只有拥有正确私钥的实体能够加载应用程序到微控制器中。而这个应用程序的逻辑和相关的校验能够提前共享给利益相关方(或者直接开源),这样就可以在加载后对其进行验证。
接下来更关键的是,在应用程序经过了全面的测试后,我们需要禁用应用程序和微控制器上所有的修改功能。这一点是为了确保从现在起该应用程序的逻辑彻底不可更改,就算是制造商也无法再做改动。
数字 / 模拟接口
最后对于数字 / 模拟接口的问题,解决起来比较难。它不能通过数据采集与中继设备上嵌入的硬件来解决,通常必须设计出创新机制来确保接口不被中断,但这一点还要看每个应用程序的情况,“具体问题具体分析”。
以上就是今天的内容,希望对你有所帮助。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论