1 个不稳定版本
0.1.0 | 2024年4月17日 |
---|
#1683 在 嵌入式开发
在 liboscore 中使用
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