原文地址
译者:远方的自由
转载请注明出处: http://blog.csdn.net/z2066411585
概述
mbed tls库的设计可以轻松地与现有(嵌入式)应用程序集成,并为安全通讯、密码学和密钥管理提供构建模块.本教程将帮助你了解如何执行这些步骤.
mbed tls 被设计成尽可能松散耦合,让你只需要整合你需要的部分,而不需要关注其余部分.这也为mbed tls 带来了非常低内存占用和构建足迹.通过消除你系统中不需要的部分,你可以将构建版本从低至45kB的版本升级到更典型的300kB版本,以实现更加全面的功能.
mbed tls 被设计成以嵌入式环境作为主要目标的便携式C语言,运行在像ARM和AVR到PCS和iPad,iphones甚至是xbox这样的嵌入式平台上.
堆栈解释(Stack explanation)
本教程的目的是向你展示如何确保你的客户端和服务端与mbed tls的通信.让我们开始展示所涉及的主要组件.
从下往上:
- 硬件(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部分直接依赖于库的证书解析,对称和非对称和哈希模块.