《密码技术与物联网安全:mbedtls开发实战》 —1.4 mbedtls简介
1.4 mbedtls简介
mbedtls使开发人员可以非常轻松地在嵌入式产品中加入物联网安全功能。相比于OpenSSL这样的工具,mbedtls小巧灵活且易于使用。mbedtls具有多种多样的配置选项,这些配置选项可以帮助开发人员根据实际情况灵活地裁剪代码,降低对具体硬件平台的资源消耗。mbedtls提供的安全加密组件相对独立,开发者可以通过单个配置文件把单个功能加入应用中。另外,它还包括一个完整的抽象层实现,通过这个抽象层可提高代码的复用程度,降低开发难度。除了这些强大的功能之外,mbedtls还包括众多经过精心设计的测试用例,这些测试用例保证了mbedtls的稳定性和可靠性。总之,mbedtls足够小巧灵活,完全可以做到“开箱即用”。
从功能角度来看,mbedtls主要分为以下3个部分:
1)密码学工具箱实现。
2)X.509证书处理实现。
3)TLS/DTLS协议实现。
1.4.1 密码学工具箱
mbedtls的密码学工具箱部分具有针对对称加密算法、单向散列(又称消息摘要)和公钥加密的抽象层实现。另外,mbedtls还包含多个基于标准的随机数生成器和一个可自定义的熵池。所有的安全算法均以独立模块存在,任何一个模块都可以与其他模块解耦。这种轻耦合的设计方法便于用户对mbedtls进行裁剪,用户可以直接根据需求选取相应的头文件和源代码文件,并将其放入项目中。
1.对称加密算法
对称加密抽象层提供了对称加密和解密功能。它针对不同算法支持不同的加密模式,主要包括电子密码本(ECB)、密码块链接(CBC)、计数器模式(CTR)和密码反馈(CFB)等模式。mbedtls不仅提供 AES、Blowfish和Camellia 等最常用的算法,还提供DES和RC4等老旧或已弃用的算法。
2.单向散列与消息认证码算法
mbedtls针对单向散列算法提供了消息摘要抽象层,可提供单向散列功能和消息认证码功能(HMAC)。mbedtls 不仅为SHA256、SHA512和RIPEMD-160等最常用的算法提供支持,还支持MD2、MD4、MD5和SHA1等老旧或已弃用的算法。
3.公钥算法与数字签名
公钥加密算法可搭配RSA算法或椭圆曲线算法,mbedtls在这些算法的基础上提供公钥算法抽象层。mbedtls公钥算法部分还提供多种密钥协商算法,例如Diffie-Hellman密钥协商算法(DH)和椭圆曲线密钥协商算法(ECDH)。另外,它也提供多种数字签名方法,例如RSA签名和椭圆曲线数字签名(ECDSA)。
4.随机数生成器
关于随机数生成器,mbedtls 不但提供了熵池,还提供了符合CTR-DRBG与HMAC-DRBG标准的随机数生成器。mbedtls的熵池具有很强的灵活性,熵池既可从标准源收集也可以由应用程序提供。
- 点赞
- 收藏
- 关注作者
评论(0)