mbed TLS 介紹


mbedTLS(前身 PolarSSL)是一個由 ARM 公司開源和維護的 SSL/TLS 算法庫。其使用 C 編程語言以最小的編碼占用空間實現了 SSL/TLS 功能及各種加密算法,易於理解、使用、集成和擴展,方便開發人員輕松地在嵌入式產品中使用 SSL/TLS 功能。

mbedTLS 軟件包提供了如下的能力:

  • 完整的 SSL v3、TLS v1.0、TLS v1.1 和 TLS v1.2 協議實現
  • X.509 證書處理
  • 基於 TCP 的 TLS 傳輸加密
  • 基於 UDP 的 DTLS(Datagram TLS)傳輸加密
  • 其它加解密庫實現

 

軟件框架圖

 

 

 

工作原理

mbedTLS 建立安全通信連接需要經過以下幾個步驟:

  • 初始化 SSL/TLS 上下文
  • 建立 SSL/TLS 握手
  • 發送、接收數據
  • 交互完成,關閉連接

其中,最關鍵的步驟就是 SSL/TLS 握手 連接的建立,這里需要進行證書校驗。

 

SSL/TLS 握手流程

 

 

 

DTLS 握手流程

為了避免拒絕服務攻擊,DTLS采用和IKE一樣的無狀態 cookie 技術。當客戶端發送 client hello 消息后,服務器發送 HelloVerifyRequest 消息,這個消息包含了無狀態 cookie。客戶端收到之后必須重傳添加上了 cookie 的 clienthello。

DTLS 握手流程如下圖所示:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM