IoT devices differ widely in crypto-supporting hardware, ranging from no hardware support to powerful accelerators supporting numerous of operations including protected key storage. An operating system should provide uniform access to these heterogeneous hardware features, which is a particular challenge in the resource constrained IoT. Effective security is tied to the usability of cryptographic interfaces. A thoughtful API design is challenging, and it is beneficial to re-use such an interface and to share the knowledge of programming embedded security widely. In this paper, we integrate an emerging cryptographic interface into usable system-level calls for the IoT operating system RIOT, which runs on more than 240 platforms. This interface supports ID-based key handling to access key material in protected storage without exposing it to anyone. Our design foresees hardware acceleration on all available variants; our implementation integrates diverse cryptographic hardware and software backends via the uniform interface. Our performance measurements show that the overhead of the uniform API with integrated key management is negligible compared to the individual crypto operation. Our approach enhances the usability, portability, and flexibility of cryptographic support in the IoT.
翻译:在加密支持硬件方面,IoT装置在加密支持硬件方面差异很大,从没有硬件支持到支持包括受保护钥匙存储在内的众多操作的强大加速器,从没有硬件支持到强大的加速器不等。操作系统应当提供对这些不同硬件特性的统一访问,这是资源受限的IoT中的一项特殊挑战。有效的安全与加密界面的可用性联系在一起。深思熟虑的API设计具有挑战性,并且有利于重新使用这种接口,并广泛分享编程嵌入式安全的知识。在本文件中,我们将正在形成的加密界面纳入可使用的IoT操作系统(RIOT)的系统级呼叫中,该系统运行在240多个平台上运行。这个界面支持基于ID的钥匙处理,以便在受保护的存储库中获取关键材料,而不向任何人披露这些材料。我们的设计预见了所有可用变式的硬件加速;我们的实施将多种加密硬件和软件后端通过统一界面整合。我们的性能测量显示,与个人加密操作相比,统一的API与综合钥匙管理之间的管理是微不足道的。我们的方法提高了IOT加密支持的可用性、可操作性和灵活性。