Mbed TLS

Mbed TLS
開発者TrustedFirmware(旧Arm)が管理する共同プロジェクト
初回リリース2009年1月15日 (2009年1月15日
安定版リリース4.0.0 [ 1 ]ウィキデータで編集する(2025年10月15日)[±] (2025年10月15日
リポジトリ
書かれたC
オペレーティング·システムマルチプラットフォーム
タイプセキュリティライブラリ
ライセンスデュアルApache-2.0またはGPL-2.0以降
Webサイトwww.trustedfirmware.org /プロジェクト/ mbed-tls /

Mbed TLS(旧称PolarSSL )は、TLSおよびSSLプロトコル、そしてそれぞれの暗号化アルゴリズムと必要なサポートコードの実装です。Apacheライセンスバージョン2.0に基づいて配布されています。ウェブサイトには、Mbed TLSは「理解しやすく、使いやすく、統合しやすく、拡張しやすい」ことを目指していると記載されています。

歴史

PolarSSL SSLライブラリは、 XySSL SSLライブラリの公式フォークです。XySSLはフランスの「ホワイトハットハッカーChristophe Devineによって開発され、2006年11月1日にGNU GPL v2およびBSDライセンスの下で初めてリリースされました。2008年、Christophe DevineはXySSLのサポートを終了し、Paul BakkerがPolarSSLという公式フォークを開発しました。[ 2 ] 2014年11月、PolarSSLはARM Holdingsに買収されました。[ 3 ]

2011年、オランダ政府はOpenVPNとPolarSSLの統合を承認し、OpenVPN-NLと名付けました。このバージョンのOpenVPNは、制限レベルまでの政府通信の保護に使用することが承認されています。[ 4 ]

バージョン1.3.10のリリース以降、PolarSSLはMbedエコシステムへの適合性をより明確に示すためにMbed TLSにブランド名が変更されました。[ 5 ]バージョン2.1.0以降、ライブラリはGPL v2とApache License v2.0の両方で利用可能になりました。[ 6 ]

2020年にMbed TLSはTrustedFirmwareプロジェクトに参加しました。[ 7 ]

図書館

コアSSLライブラリはCプログラミング言語で記述されており、SSLモジュール、基本的な暗号化機能を実装し、さまざまなユーティリティ関数を提供しています。OpenSSLやその他のTLS実装とは異なり Mbed TLSはwolfSSLと同様に小型組み込みデバイスに収まるように設計されており、最小限の完全なTLSスタックに必要なプログラムスペースは60KB以下、RAMは64KB以下です。また、高度なモジュール化も特徴で、暗号化機能などの各コンポーネントは、フレームワークの他の部分から独立して使用できます。Microsoft WindowsおよびLinux用のバージョンも提供されています。Mbed TLSはCプログラミング言語で記述されているため、外部依存関係がなく、ほとんどのオペレーティングシステムとアーキテクチャで動作します。

バージョン1.3.0以降では、既存の組み込みオペレーティングシステムとのより良い統合をサポートするために、コアにメモリ割り当てとスレッド処理のための抽象化レイヤーが追加されました。[ 8 ]

設計の優先順位

Mbed TLSライブラリは、コードの読みやすさ、ドキュメント、自動化された回帰テスト、疎結合設計、移植可能なコードに重点を置いています。[ 9 ]

開発ドキュメント

開発者向けに次のドキュメントが用意されています。

  • 高レベル設計: [ 10 ]ライブラリ内のさまざまなモジュールのUML図、ユースケース、一般的なシナリオでの相互作用を含む高レベルの説明。
  • APIドキュメント: [ 11 ] ライブラリのヘッダーファイルからDoxygenによって生成されたドキュメント。
  • ソースコードのドキュメント: [ 12 ]ライブラリのソースコードは、構造、決定、コード構成を明確にするために文書化されています。

自動テスト

Mbed TLS の自動テストには以下が含まれます。

  • ソース コードには、さまざまなプラットフォームでの回帰と互換性をテストするための 5000 を超える自動テスト (ライブラリのバージョン 1.3.2 のテストの数に基づく) を含むテスト フレームワークが含まれています。
  • OpenSSLおよびGnuTLSとのSSL通信の互換性をテストする互換性スクリプト(compat.sh [ 13 ] ) 。
  • Travis CIJenkinsをベースにした継続的インテグレーションシステム。[ 14 ]

使用

Mbed TLS は、大規模なオープンソース プロジェクトで SSL コンポーネントとして使用されています。

プラットフォーム

Mbed TLSは現在、 LinuxMicrosoft WindowsOS XOpenWrtAndroidiOSRISC OS [ 15 ]FreeRTOSなど、ほとんどのオペレーティングシステムで利用可能です。サポートされているチップセットには、少なくともARM、x86、PowerPC、MIPSが含まれます。

アルゴリズム

Mbed TLS は、さまざまな暗号化アルゴリズムをサポートしています。

暗号ハッシュ関数
MD2MD4MD5RIPEMD160SHA-1SHA-2SHA-3
MACモード
CMACHMAC
暗号
AESARIABlowfishCamelliaChaChaDESRC4Triple DESXTEA
暗号モード
ECBCBCCFBCTROFBXTS
認証された暗号化モード
CCMGCMNISTキーラップ
チャチャ20-ポリ1305
鍵導出
香港国防軍
キーストレッチ
PBKDF2PKCS #5 PBE2、PKCS #12鍵導出
公開鍵暗号
RSAディフィー・ヘルマン鍵交換
楕円曲線暗号 (ECC)楕円曲線ディフィー・ヘルマン (ECDH)楕円曲線 DSA (ECDSA)、楕円曲線J-PAKE

参照

参考文献

  1. ^ 「リリース 4.0.0」 2025年10月15日. 2025年10月21日閲覧
  2. ^ 「 PolarSSLについて」 . 2014年5月8日閲覧
  3. ^ 「PolarSSL は ARM の一部になりました」 2014 年 11 月 24 日。
  4. ^ [1] 2013年1月29日アーカイブ、 Wayback Machine
  5. ^ 「mbed TLS 1.3.10 リリース」 . 2015年2月8日. 2015年2月9日閲覧
  6. ^ 「ダウンロード」 . Mbed TLS . Arm. 2019年3月24日時点のオリジナルよりアーカイブ2021年4月5日閲覧。
  7. ^ 「Hafnium、MbedTLS、PSA CryptoがTrusted Firmwareプロジェクトに参加」 . TrustedFirmware . TrustedFirmware. 2020年8月12日時点のオリジナルよりアーカイブ。 2021年4月5日閲覧
  8. ^ 「PolarSSL 1.3.0の新機能 - 技術アップデート」 Polarssl.org 。 2014年5月8日閲覧
  9. ^ 「PolarSSLの機能:使いやすいSSLライブラリと充実したドキュメント」 Polarssl.org . 2014年5月8日閲覧
  10. ^ 「PolarSSL高レベル設計」 . Polarssl.org . 2014年5月8日閲覧。
  11. ^ 「v1.3.6 ソースコードドキュメント – APIドキュメント」 . PolarSSL . 2014年5月8日閲覧。
  12. ^ "polarssl/polarssl — GitHub" . Github.com ". 2014年5月8日閲覧
  13. ^実行ファイル (2020-04-26). "mbedtls/compat.sh at development · ARMmbed/mbedtls · GitHub" . Github.com . 2021-04-05に取得.
  14. ^ 「Mbed TLS継続的インテグレーション」 . Trusted Firmware . Trusted Firmware . 2021年4月5日閲覧。
  15. ^ 「21世紀とのつながり」 RISC OS Open Steve Revill 2022年4月19日閲覧