#coap #oscore #iot-devices #back-end #no-alloc #embedded-devices

无需std liboscore-cryptobackend

基于Rust实现的libOSCORE密码学原语后端实现

1 个不稳定版本

0.1.0 2024年4月17日

#1683嵌入式开发


liboscore 中使用

BSD-3-Clause

23KB
440

libOSCORE:一个(不仅)适用于嵌入式系统的OSCORE实现

libOSCORE库是一个可移植的(且独立的)OSCORE(RFC8613)实现,适用于嵌入式设备。

OSCORE是一种保护(即加密和验证)CoAP消息(典型物联网设备之间的网络流量)的方法,以端到端的方式防止窃听或篡改,同时不牺牲消息和协议实现的紧凑性。《OSCORE:一种新的物联网安全协议概述》这篇文章提供了一个对初学者的友好总结。

这个实现旨在在各种平台上使用,尤其是嵌入式平台;它通过用一个小型通用API描述其对所用平台CoAP实现的要求来实现这一点,该API可以由不同的CoAP库实现,例如RIOT-OS的gcoap。通过选择编程语言(C)、避免动态内存分配以及广泛使用原地操作,它适用于所有能够执行IP流量和加密操作的最小设备。

项目状态

库功能完善,尽管尚未通过所有测试,但libOSCORE的OSCORE 插件测试 服务器在RIOT-OS上可使用。

使用和文档

libOSCORE库可以使用不同的方式,具体取决于底层CoAP库的支持。

集成级别指南 提供了可能的概述,并作为进入其余文档的起点。

为了快速入门,一些示例和演示涵盖了常见用例

请注意,当前示例代码使用的是所谓的“中间集成”(见集成级别)。对于高级应用,建议使用完整集成,但该级别在RIOT平台中尚未提供。

库集成

计划集成的库

  • RIOT-OS - 可用轻量级集成;完整集成正在跟踪中,见11761
  • MoCkoAP – 内部最小CoAP库,用于测试中的模拟
  • libcose – 提供所需的加密原语
  • Rust 集成
    • liboscore-cryptobackend – 提供各种(可配置的)加密原语
    • liboscore-msgbackend – 在[coap-message]特质上实现libOSCORE的消息访问器
    • liboscore-backends-standalone – 从C应用程序中使用Rust cryptobackend的构建基础设施
    • liboscore – 高级Rust抽象

潜在未来候选者:(目前没有计划实现,但正在考虑其可移植性)

许可

版权所有 2019 年 Christian Amsüss 和 Ericsson AB

在LICENSE文件中描述的3条款BSD许可下授权。


lib.rs:

liboscore的加密API的后端,基于aead Rust crate扩展到AEAD算法。

这采用了一种混合的特性和枚举方法;算法被处理为特质对象(或从它们派生出的构造函数),但oscore_crypto_aead_encryptstate_t最终会是一个枚举,以便可以堆栈分配。

依赖项

~1.2–1.6MB
~27K SLoC