RT-Thread 发布硬件加解密驱动框架

拟墨画扇 提交于 2021-02-11 15:21:57

近些年万物互联成为国家发展战略,物联网技术出现了蓬勃发展的迹象。各种物联网设备逐渐走入人们的日常生活中,信息安全在物联网领域也越来越重要。

为保证物联网设备的信息安全,软件层面引入了TLS安全传输层协议,同时硬件芯片上也逐渐添加安全相关的加解密模块,甚至出现了专为安全设计的安全芯片。芯片上的硬件安全模块相比纯软件实现的安全算法,拥有更快的运算速度,更小的资源占用。但大多数物联网设备上仍在使用纯软件的安全算法。其中最重要的一个原因,就是硬件接口不一,种类繁杂,软件对接起来比较困难。


图片来源pixabay无版权图库


因此 RT-Thread 推出了 hwcrypto - 硬件加解密驱动框架,并对接了常见的安全传输套件。只要硬件支持加解密模块,就能直接使用基于硬件加解密的安全传输套件,传输速度提升数倍。


01

介绍


hwcrypto 是一个硬件加解密设备驱动框架。主要由硬件加解密驱动抽象层以及各种加解密API接口两部分构成。对于上层应用,可对接安全套件或直接使用,使用方式十分灵活。对于驱动,需要对接的接口少,功能单一。驱动开发简单快捷。主要特性介绍,参见下



02


特性


1、设计轻薄,运行高效

硬件加解密驱动的最重要的一个功能就是接口转换,实现接口统一,方便上层应用使用硬件加解密。所以它被设计的十分轻薄。有着极低资源占用,ROM < 0.8K / RAM < 0.2K。

加解密在运行速度上,也有着很高的要求。所以频繁调用的代码,细致考虑,把运行过程的步骤降到最少,让性能损失降到最小,如同直接操作硬件寄存器一般迅速。

2、考虑周全,使用简单

在 API 设计上,从简单易用,功能齐全两个维度出发。首先是用户直接使用硬件加解密API,要求上手简单, 使用容易。为此前期针对众多软件接口进行了评估。亲身使用测试,最终定义出一套功能齐全,接口简单的 API。

满足用户的使用需求的同时,在安全传输套件的对接上,也做了许多考虑。专门为安全传输套件增加了API。最终这套API用户使用或是对接安全传输套件,都能游刃有余。

3.完全兼容,通用性强

驱动对接的接口设计上,也精心设计。前期对多家硬件厂商的加解密外设根据功能进行分类,进行分析整理,提取出一套功能单一,参数全面的驱动接口。该驱动接口可完全适配常规 MCU 加解密外设。现目前已在多个平台上做验证,例如联盛德 W60X 系列,STM32 系列等。


03


支持


硬件加解密接口


硬件加解密框架目前已经支持

AES/DES/3DES/RC4/SHA1/SHA2/MD5/CRC/RNG/BIGNUM 等加解密相关的接口。将上述加解密算法按照不同的类型分成如下几个大类,每一类都有丰富的 API 可供使用。目前已经支持的类型如下:


bignum

  大数运算

crc 

CRC冗余校验

gcm

GMAC消息认证码

hash 

散列算法

rng 

随机数发生器

symmetric

对称加解密算法

驱动及软件支持


1、硬件支持上选择了联盛德 W601 芯片。W601 是集成了丰富的硬件加解密功能的一颗 WIFI SOC。目前已经将硬件加解密驱动全部对接完成,近期会推送到 RT-Thread 仓库 w60x bsp 中,开发者可在此硬件平台上进行体验。STM32 系列部分支持了设备ID、RNG、CRC32等功能,手上有STM32的小伙伴们,也可以尝尝鲜。后续也将会有更多的硬件平台对接。


2、软件上率先实现了 MbedTLS 安全套件的对接。配合联盛德 W601 芯片硬件加解密,一次完整数据交互从 1.4 秒降低到 0.4 秒。整体性能提升 3 倍以上。


04


下载


hwcrypto 属于 RT-Thread 的一个设备驱动,在 rt-thread/components/drivers/hwcrypto 目录下。预计在 RT-Thread 4.0.2 版本中发布。

现可以在 GitHub 上下载 RT-Thread master 分支源码,即可抢先体验。

大家可以将以下网址复制至外部浏览器打开进行下载:

RT-Thread源码下载:https://github.com/RT-Thread/rt-thread


 


RT-Thread线上活动


1、【RT-Thread能力认证考试12月——RCEA】经过第一次考试的验证,RT-Thread能力认证得到了更多社区开发者和产业界的大力支持(点此查看)如果您有晋升、求职、寻找更好机会的需要,有深入学习和掌握RT-Thread的需求,欢迎垂询/报考!

能力认证官网链接:https://www.rt-thread.org/page/rac.html(在外部浏览器打开)


立即报名



#题外话# 喜欢RT-Thread不要忘了在GitHub上留下你的STAR哦,你的star对我们来说非常重要!链接地址:https://github.com/RT-Thread/rt-thread


你可以添加微信18917005679为好友,注明:公司+姓名,拉进 RT-Thread 官方微信交流群


RT-Thread


让物联网终端的开发变得简单、快速,芯片的价值得到最大化发挥。Apache2.0协议,可免费在商业产品中使用,不需要公布源码,无潜在商业风险。

长按二维码,关注我们


看这里,求赞!求转发!

点击阅读原文进入GitHub

本文分享自微信公众号 - RTThread物联网操作系统(RTThread)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!