mbed TLS 简明教程(一)

概述

mbed tls库的设计可以轻松地与现有(嵌入式)应用程序集成,并为安全通讯、密码学和密钥管理提供构建模块.本教程将帮助你了解如何执行这些步骤.

mbed tls 被设计成尽可能松散耦合,让你只需要整合你需要的部分,而不需要关注其余部分.这也为mbed tls 带来了非常低内存占用和构建足迹.通过消除你系统中不需要的部分,你可以将构建版本从低至45kB的版本升级到更典型的300kB版本,以实现更加全面的功能.

mbed tls 被设计成以嵌入式环境作为主要目标的便携式C语言,运行在像ARM和AVR到PCS和iPad,iphones甚至是xbox这样的嵌入式平台上.

堆栈解释(Stack explanation)

本教程的目的是向你展示如何确保你的客户端和服务端与mbed tls的通信.让我们开始展示所涉及的主要组件. 
mbedtls-stack.png

从下往上:

  • 硬件(Hardware)

硬件平台提供物理处理器,存储器,内存和网络接口

  • 操作系统(Operating System) 
    操作系统提供以太网驱动程序和标准服务.这取决于操作系统,包括调度,线程安全,和一个完整的网络堆栈.

  • 网络堆栈(Network Stack) 
    取决于操作系统,网络堆栈要么完全集成,要么是一个单独的模块,从网络接口提供抽象层.最常用的是 lwIP TCP/IP stack和 uIP TCP/IP stack.

  • mbed TLS SSL/TLS Library 
    建立在网络接口之上, mbed tls 为安全通信提供了一个抽象层.

  • 客户端应用(Client Application) 
    客户端应用程序使用mbed tls 本身抽象安全通信.

将mbed tls 集成到应用程序的确切步骤非常依赖与上面特定组件.在基本教程中,我们将假设一个集成了BSD-like TCP/IP 堆栈的操作系统

SSL/TLS 说明

mbed tls的ssl/tls部分提供了使用ssl/tls通过安全通信通道建立和通信方法.

  • 其基本规定是: 
    • 初始化一个SSL/TLS context
    • 执行一个SSL/TLS握手(handshake)
    • 发送/接收数据
    • 通知对方一个连接正在关闭
  • 一个通道很多方面都是通过参数和回调函数来设置的. 
    • 端点角色(endpoint role),客户端和服务器 
    • 身份验证模式: 是否应该进行证书验证
    • 主机到主机通信通道: 发送和接收功能
    • 随机数生成器(RNG)功能
    • 用于加密/解密的密码
    • 证书验证功能
    • 会话控制: 会话获取和设置功能
    • 证书处理和密钥交换的X.509参数 

mbed 通过创建一个SSL/TLS服务器和客户端,通过提供一个框架来建立和通过SSL/TLS通信通道进行通信.SSL/TLS部分直接依赖于库的证书解析,对称和非对称和哈希模块.

参考

from: https://blog.csdn.net/z2066411585/article/details/79178325

发布了264 篇原创文章 · 获赞 520 · 访问量 300万+

猜你喜欢

转载自blog.csdn.net/phenixyf/article/details/90670176
TLS
今日推荐