Notary: a device for secure transaction approval

Notary: a device for secure transaction approval
复制标题

DOI:
10.1145/3341301.3359661
复制
发表时间:
2019-10
期刊:
Proceedings of the 27th ACM Symposium on Operating Systems Principles
影响因子:
--
通讯作者:
Anish Athalye;A. Belay;M. Kaashoek;R. Morris;Nickolai Zeldovich
Anish Athalye;A. Belay;M. Kaashoek;R. Morris;Nickolai Zeldovich
中科院分区:
其他
文献类型:
--
作者:
Anish Athalye;A. Belay;M. Kaashoek;R. Morris;Nickolai Zeldovich

文献摘要

被引文献

相似文献

Notary是一种新的硬件和软件架构,用于运行独立的审批代理,其外形为带有小显示屏和按钮的USB记忆棒。批准代理允许将关键的安全决策分解到安全环境中,例如获得用户对签署比特币交易或删除备份的批准。Notary解决的关键挑战是在同一设备上的代理之间安全切换。以前的系统要么通过构建单一功能的设备(如USB U2 F密钥)来避免这个问题,要么提供易受内核错误、侧通道或Rowhammer类攻击影响的弱隔离。Notary使用基于重置的切换实现了强隔离,沿着使用物理上分离的片上系统用于代理代码和内核,以及硬件的寄存器传输级设计和软件的机器检查证明,表明基于重置的切换不泄漏状态。Notary还在代理代码和用户之间提供了一个可信的I/O路径,这可以防止攻击者篡改用户的屏幕或按钮。我们使用ARM和RISC-V处理器的组合构建了Notary的硬件/软件原型。该原型证明了验证Notary基于重置的切换是可行的,并且Notary可以支持多种代理,包括加密货币和用于传统客户端-服务器应用程序(如网站)的交易批准代理。基于重置的切换的测量表明,它是足够快的交互式使用。我们分析了现有加密货币硬件钱包中的安全漏洞,这些钱包旨在提供与Notary类似的外形和功能集,并表明Notary的设计避免了许多影响它们的漏洞。
Notary is a new hardware and software architecture for running isolated approval agents in the form factor of a USB stick with a small display and buttons. Approval agents allow factoring out critical security decisions, such as getting the user's approval to sign a Bitcoin transaction or to delete a backup, to a secure environment. The key challenge addressed by Notary is to securely switch between agents on the same device. Prior systems either avoid the problem by building single-function devices like a USB U2F key, or they provide weak isolation that is susceptible to kernel bugs, side channels, or Rowhammer-like attacks. Notary achieves strong isolation using reset-based switching, along with the use of physically separate systems-on-a-chip for agent code and for the kernel, and a machine-checked proof of both the hardware's register-transfer-level design and software, showing that reset-based switching leaks no state. Notary also provides a trustworthy I/O path between the agent code and the user, which prevents an adversary from tampering with the user's screen or buttons. We built a hardware/software prototype of Notary, using a combination of ARM and RISC-V processors. The prototype demonstrates that it is feasible to verify Notary's reset-based switching, and that Notary can support diverse agents, including cryptocurrencies and a transaction approval agent for traditional client-server applications such as websites. Measurements of reset-based switching show that it is fast enough for interactive use. We analyze security bugs in existing cryptocurrency hardware wallets, which aim to provide a similar form factor and feature set as Notary, and show that Notary's design avoids many bugs that affect them.