原文地址
譯者:遠(yuǎn)方的自由
轉(zhuǎn)載請(qǐng)注明出處: http://blog.csdn.net/z2066411585
概述
mbed tls庫(kù)的設(shè)計(jì)可以輕松地與現(xiàn)有(嵌入式)應(yīng)用程序集成,并為安全通訊徊哑、密碼學(xué)和密鑰管理提供構(gòu)建模塊.本教程將幫助你了解如何執(zhí)行這些步驟.
mbed tls 被設(shè)計(jì)成盡可能松散耦合,讓你只需要整合你需要的部分,而不需要關(guān)注其余部分.這也為mbed tls 帶來(lái)了非常低內(nèi)存占用和構(gòu)建足跡.通過(guò)消除你系統(tǒng)中不需要的部分,你可以將構(gòu)建版本從低至45kB的版本升級(jí)到更典型的300kB版本,以實(shí)現(xiàn)更加全面的功能.
mbed tls 被設(shè)計(jì)成以嵌入式環(huán)境作為主要目標(biāo)的便攜式C語(yǔ)言,運(yùn)行在像ARM和AVR到PCS和iPad,iphones甚至是xbox這樣的嵌入式平臺(tái)上.
堆棧解釋(Stack explanation)
本教程的目的是向你展示如何確保你的客戶端和服務(wù)端與mbed tls的通信.讓我們開始展示所涉及的主要組件.
從下往上:
- 硬件(Hardware)
硬件平臺(tái)提供物理處理器,存儲(chǔ)器,內(nèi)存和網(wǎng)絡(luò)接口
操作系統(tǒng)(Operating System)
操作系統(tǒng)提供以太網(wǎng)驅(qū)動(dòng)程序和標(biāo)準(zhǔn)服務(wù).這取決于操作系統(tǒng),包括調(diào)度,線程安全,和一個(gè)完整的網(wǎng)絡(luò)堆棧.網(wǎng)絡(luò)堆棧(Network Stack)
取決于操作系統(tǒng),網(wǎng)絡(luò)堆棧要么完全集成,要么是一個(gè)單獨(dú)的模塊,從網(wǎng)絡(luò)接口提供抽象層.最常用的是 lwIP TCP/IP stack和 uIP TCP/IP stack.mbed TLS SSL/TLS Library
建立在網(wǎng)絡(luò)接口之上, mbed tls 為安全通信提供了一個(gè)抽象層.客戶端應(yīng)用(Client Application)
客戶端應(yīng)用程序使用mbed tls 本身抽象安全通信.
將mbed tls 集成到應(yīng)用程序的確切步驟非常依賴與上面特定組件.在基本教程中,我們將假設(shè)一個(gè)集成了BSD-like TCP/IP 堆棧的操作系統(tǒng)
SSL/TLS 說(shuō)明
mbed tls的ssl/tls部分提供了使用ssl/tls通過(guò)安全通信通道建立和通信方法.
- 其基本規(guī)定是:
- 初始化一個(gè)SSL/TLS context
- 執(zhí)行一個(gè)SSL/TLS握手(handshake)
- 發(fā)送/接收數(shù)據(jù)
- 通知對(duì)方一個(gè)連接正在關(guān)閉
- 一個(gè)通道很多方面都是通過(guò)參數(shù)和回調(diào)函數(shù)來(lái)設(shè)置的.
- 端點(diǎn)角色(endpoint role),客戶端和服務(wù)器
- 身份驗(yàn)證模式: 是否應(yīng)該進(jìn)行證書驗(yàn)證
- 主機(jī)到主機(jī)通信通道: 發(fā)送和接收功能
- 隨機(jī)數(shù)生成器(RNG)功能
- 用于加密/解密的密碼
- 證書驗(yàn)證功能
- 會(huì)話控制: 會(huì)話獲取和設(shè)置功能
- 證書處理和密鑰交換的X.509參數(shù)
mbed 通過(guò)創(chuàng)建一個(gè)SSL/TLS服務(wù)器和客戶端,通過(guò)提供一個(gè)框架來(lái)建立和通過(guò)SSL/TLS通信通道進(jìn)行通信.SSL/TLS部分直接依賴于庫(kù)的證書解析,對(duì)稱和非對(duì)稱和哈希模塊.