依赖传输层安全协议(Transport Layer Security,TLS)
密码学6种主要密码技术:
- 单向散列函数
- 对称加密算法
- 消息认证码算法
- 公钥密码算法
- 数字签名算法
- 伪随机数生成器
单向散列函数:MD5,SHA1等
对称加密算法:AES128,AES192,AES256等
OpenSSL常用于互联网应用,而mbedtls用于物联网应用。
mbedtls主要分为以下3个部分:
- 密码学工具箱实现。
- X.509证书处理实现。
- TLS/DTLS协议实现。
密码学工具箱
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的熵池具有很强的灵活性,熵池既可从标准源收集也可以由应用程序提供。
TLS/DTLS协议
mbedtls提供TLS/DTLS客户端和服务器功能。mbedtls为当前所有的SSL和TLS/DTLS标准提供客户端和服务器端支持,这些标准包括SSL 3版本、TLS 1.0版本、TLS 1.1版本和TLS 1.2版本。mbedtls还支持大多数标准化协议扩展,如服务器名称指示(SNI)和会话票证。mbedtls支持常用的密钥交换方法和130多种不同的标准化密码套件。
X.509证书
SSL/TLS身份验证和一些其他协议都依赖X.509证书处理功能。
mbedtls为X.509证书提供以下支持:
·X.509证书解析
·X.509证书吊销列表解析
·X.509(RSA/ECDSA)私钥解析
·X.509证书生成
·X.509(RSA/ECDSA)私钥生成
·X.509证书请求解析
·X.509证书请求生成