| Mbed TLS | |
|---|---|
| 開発者 | TrustedFirmware(旧Arm)が管理する共同プロジェクト |
| 初回リリース | 2009年1月15日 (2009年1月15日) |
| 安定版リリース | 4.0.0 [ 1 ] |
| リポジトリ | |
| 書かれた | C |
| オペレーティング·システム | マルチプラットフォーム |
| タイプ | セキュリティライブラリ |
| ライセンス | デュアルApache-2.0またはGPL-2.0以降 |
| Webサイト | www.trustedfirmware.org |
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 CIとJenkinsをベースにした継続的インテグレーションシステム。[ 14 ]
使用
Mbed TLS は、大規模なオープンソース プロジェクトで SSL コンポーネントとして使用されています。
- OpenVPNと OpenVPN-NL
- ハイアワサ
- パワーDNS
- モンキー HTTP サーバー
- オープンWRT
プラットフォーム
Mbed TLSは現在、 Linux、Microsoft Windows、OS X、OpenWrt、Android、iOS、RISC OS [ 15 ]、FreeRTOSなど、ほとんどのオペレーティングシステムで利用可能です。サポートされているチップセットには、少なくともARM、x86、PowerPC、MIPSが含まれます。
アルゴリズム
Mbed TLS は、さまざまな暗号化アルゴリズムをサポートしています。
- 暗号ハッシュ関数
- MD2、MD4、MD5、RIPEMD160、SHA-1、SHA-2、SHA-3
- MACモード
- CMAC、HMAC
- 暗号
- AES、ARIA、Blowfish、Camellia、ChaCha、DES、RC4、Triple DES、XTEA
- 暗号モード
- ECB、CBC、CFB、CTR、OFB、XTS
- 認証された暗号化モード
- CCM、GCM、NISTキーラップ、
- チャチャ20-ポリ1305
- 鍵導出
- 香港国防軍
- キーストレッチ
- PBKDF2、PKCS #5 PBE2、PKCS #12鍵導出
- 公開鍵暗号
- RSA、ディフィー・ヘルマン鍵交換、
- 楕円曲線暗号 (ECC)、楕円曲線ディフィー・ヘルマン (ECDH)、楕円曲線 DSA (ECDSA)、楕円曲線J-PAKE
参照
参考文献
- ^ 「リリース 4.0.0」 2025年10月15日. 2025年10月21日閲覧。
- ^ 「 PolarSSLについて」 . 2014年5月8日閲覧。
- ^ 「PolarSSL は ARM の一部になりました」 2014 年 11 月 24 日。
- ^ [1] 2013年1月29日アーカイブ、 Wayback Machine
- ^ 「mbed TLS 1.3.10 リリース」 . 2015年2月8日. 2015年2月9日閲覧。
- ^ 「ダウンロード」 . Mbed TLS . Arm. 2019年3月24日時点のオリジナルよりアーカイブ。2021年4月5日閲覧。
- ^ 「Hafnium、MbedTLS、PSA CryptoがTrusted Firmwareプロジェクトに参加」 . TrustedFirmware . TrustedFirmware. 2020年8月12日時点のオリジナルよりアーカイブ。 2021年4月5日閲覧。
- ^ 「PolarSSL 1.3.0の新機能 - 技術アップデート」 Polarssl.org 。 2014年5月8日閲覧。
- ^ 「PolarSSLの機能:使いやすいSSLライブラリと充実したドキュメント」 Polarssl.org . 2014年5月8日閲覧。
- ^ 「PolarSSL高レベル設計」 . Polarssl.org . 2014年5月8日閲覧。
- ^ 「v1.3.6 ソースコードドキュメント – APIドキュメント」 . PolarSSL . 2014年5月8日閲覧。
- ^ "polarssl/polarssl — GitHub" . Github.com ". 2014年5月8日閲覧。
- ^実行ファイル (2020-04-26). "mbedtls/compat.sh at development · ARMmbed/mbedtls · GitHub" . Github.com . 2021-04-05に取得.
- ^ 「Mbed TLS継続的インテグレーション」 . Trusted Firmware . Trusted Firmware . 2021年4月5日閲覧。
- ^ 「21世紀とのつながり」 RISC OS Open Steve Revill 2022年4月19日閲覧。