IOTA Stronghold(要塞)Alpha版本

Stronghold是一个开源软件库,最初是为了保护IOTA Seeds(IOTA种子)而建立的,但也可用于保护任何数字机密。它是用于加密的安全数据库,可确保永远不会泄露秘密(如私钥)。它提供了自己的对等通信层,因此不同的实例可以使用最新的“协议”安全地进行通信。要塞将成为新的IOTA钱包的安全基础。

在智能设备(电话,电表,电视乃至信用卡)之间日益互连的世界中,真正安全性的重要性只会越来越高。物联网设备需要通过敌对网络安全地相互通信。对于每个阅读此文的人来说,必须也清楚,保护数据(例如身份和数字驾驶执照)免受集中式黑客攻击非常重要。 问题并不在于这种风险是未知的。这是一个很难正确解决的挑战。我们接受了这一挑战,保护IOTA生态系统,建立任何人都可以使用的软件库。

什么是Stronghold,它与其他数据库有何不同?

Stronghold是用Rust编程语言编写的软件库。它提供了一个加密的持久数据库,用于在可以跨多个设备分布的安全计算区域中执行加密操作。我们多次被问到关于Stronghold和其他数据库之间的区别。可以概括为三个主要区别:

  1. 要塞记录(及其文件备份)是“按自动加密”的,用于缓解离线攻击。其他大多数数据库都要求您自己通过库,插件或基础的加密文件系统应用加密。
  2. 通过使用Stronghold,您可以对存储的数字机密执行操作,而不会将其泄露给外部进程,并防止这些机密以解密形式导出。 (请参阅下面的强化要塞)
  3. 多个要塞可以像一个网络一样工作,以允许的、分散的方式进行沟通和协作。(将于2021年1月发布)。 (将于2021年1月推出)。

强化Stronghold(要塞)

一些操作系统和硬件平台为增强运行时安全性提供了独特的机会。因此,我们在Stronghold中开发了一个安全的计算区域,该区域使用进程沙箱和syscall筛选来创建计算区域。我们还使用带有保护页的自定义内存分配器,从而允许我们在不使用内存时限制对内存的访问。这些工具可以被其他项目使用,即使它们不需要完整的Stronghold功能集也是如此。

对于未启动的用户:系统调用筛选使进程可以放弃其访问操作系统资源的权限。例如:为什么加密算法需要访问文件系统甚至文件描述符(请记住:在Unix中,一切都是文件)?为了应用这些限制,包装程序会分叉主进程(例如,包含UI和网络代码的电子钱包应用程序),然后执行敏感操作。在内存隔离和潜在的恶意生成线程方面,这还增加了其他好处。

安全区域属性

应用了安全区域的以下功能(如果操作系统提供了这些功能),以增加系统整体安全性的防御深度:

1.进程隔离:进程生成到安全区域(运行时),并使用一组非常受限的允许syscall应用接受列表。

2.内存管理:在安全区域内,仅使用带有保护页和限制性内存保护的分配。

3.通信:从继承的父内存中读取传入请求(TX),并且使用在分叉之前生成的临时密钥对传出结果(RX)进行加密和认证。

还需要指出的是,这些措施使探测已经受到威胁的系统变得更加困难,也就是说,这是深度防御,而不是完美的安全。 为此,我们需要在专用硬件(例如USB Armory Mk-II)上生产和分立要塞。

密码

随着IOTA基金会在2019年决定过渡到Rust编程语言,该基金会的许多软件库和产品都在使用Rust。越来越需要经过适当审查和维护的密码库,该库可以收集IOTA中的应用所需的密码原语和算法。密码学必须经过审核,维护和适当的审查。

不幸的是,密码学很容易出错,错误可能会产生非常真实的影响。确实,这是IOTA Stronghold项目的主要目标之一:让加密技术的使用变得容易--所以我们在固守我们自己的理念。

为此,我们已经集成了IOTA所需的整个加密系列:

资料来源:
https : 
//github.com/iotaledger/crypto.rs/blob/dev/README.md

发布和安全使用

对于任何与安全性有关的软件库,制定可靠的发布策略都很重要。像许多现代包裹配送系统一样,Rust具有货箱生态系统。我们使用Tauri社区开发的协向量Polyglot ChangeLog和发布工作流自动发布到crates.io。CoVector实现了一个交钥匙发布过程,只需最少的人工干预和一个经过审查的通道, 用于测试,构建,整理,审计,变更日志,合并到主分支,创建git发布标签,制造工件(如命令行二进制文件),在Github上发布新版本,然后发布到crates.io。

然而,在Stronghold和Crypto.rs稳定下来并且所有资源都可以从crates.io(而不是git)获得之前,我们的资源只能在GitHub获得。 很抱歉,我们日以继夜地工作,以确其文档正确可用。

虽然crates.io功能强大且通常比NPM稳定,但仍处于集中化状态,这给验证带来了挑战。 为此,我们建议您的Rust项目始终通过git hash来使用Stronghold,因为这样您就可以完全验证所接收的代码是否符合您的期望。

您可以在以下位置跟踪进度: https://github.com/iotaledger/crypto.rs


原文:点击进入

如果你喜欢这篇文章或者我之前发表的文章,我很高兴能得到一点捐助;-):

IOTA:OZFXAVABNPAPFGJ9RVZQGGJZDXHZJA9REUTQSCQIKCGUILGLTAVDUC9KYDZKHOEXC9DYJTXYXLQ9EBJUYWWABVEJGC

专栏作者:IOTA-方可

个人简介:我共发表了 152 篇文章,总计被阅读了220,038 次,共获得了 1,699 个赞。

作者邮箱 作者主页 Ta的文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注