WolfSSL
[Wikipedia|▼Menu]

wolfSSL開発元Todd Ouska
初版2006年2月19日 (2006-02-19)

最新版5.5.0 - 2022年8月30日 (20か月前) (2022-08-30)[1] [±]
リポジトリ

github.com/wolfSSL/wolfssl

プログラミング
言語C言語
対応OSマルチプラットフォーム
サポート状況Active
種別セキュリティ・ライブラリー
ライセンスGNU GPL2 または 商用ライセンス
公式サイトwww.wolfssl.jp
テンプレートを表示

wolfSSL (日本語: ウルフエスエスエル) は組込みシステム開発者の使用に向けた小型で移植性の高い組み込みSSL/TLSライブラリである。TLS (SSL 3.0, TLS 1.0, 1.1, 1.2, 1.3, DTLS 1.0, 1.2, 1.3)のオープンソース実装でC言語で書かれている。SSL/TLSクライアントライブラリとサーバライブラリが含まれ、SSLTLSで定義される各種APIほかをサポートする。またOpenSSLで主に利用されている関数と互換[2]のインタフェースを実現している。

wolfSSL/CyaSSLの前身であるyaSSLは、組み込み環境やリソースの限られたリアルタイムOS向けのC++で書かれたSSLライブラリである。
プラットフォーム

wolfSSLは、Win32/64LinuxmacOSSolaris、Threadx、VxWorksFreeBSDNetBSDOpenBSD組み込みLinuxYocto ProjectOpenEmbeddedMicrosoft Windows Embedded CEHaikuOpenWrtiPhoneAndroidNintendo Wii およびDevKitProを通じてGamecubeQNX、MontaVista、TRONITRON、μITRON、NonStop、OpenCL、 MicriumのMicroC/OS-II、FreeRTOS、SafeRTOS、フリースケールMQX、Nucleus、TinyOS、TI-RTOS、HP-UX、uTasker、uT-kernel、INtimembedRIOT、CMSIS-RTOS、FROSTED、Green Hills INTEGRITY、Keil RTX、TOPPERS、PetaLinux、Apache MynewtPikeOS、およびembOSにおいて利用可能である。
歴史

CyaSSLの始まりは2004年に遡る。2004年当時、OpenSSLがSSLライブラリとして利用可能であったが、そのライセンスはOpenSSL License および SSLeay licenseでのデュアルライセンス[3]という独特のものであった。yaSSLは、商用ライセンスとGPLでのデュアルライセンスにおいて利用可能なOpenSSLの代替として開発された[4]。yaSSLはより洗練されたAPI、商用開発におけるサポート、OpenSSLとの完全な互換性を提供した[2]。yaSSLは始めMySQL[5]で利用された。この結果、yaSSLはMySQLへの組込みを通して数百万単位の極めて広い普及を実現した。

現在、wolfSSLはオープンソース、商用プロジェクトの双方で利用されている[6]。wolfSSLは車載スマートデバイス、IP電話、携帯電話、ルータ、プリンタやクレジットカード・スキャナのようなさまざまな種類のネットワーク・デバイスに組み込まれている。

2019年2月にcURLの作成者」であるDaniel StenbergがwolfSSLへ加わった[7]
プロトコル詳細は「Transport Layer Security」を参照

wolfSSLは以下の各種プロトコルを実現している:[8]

SSL 3.0、TLS 1.0、TLS 1.1、TLS 1.2、TLS 1.3

DTLS 1.0、DTLS 1.2、DTLS 1.3

ただし、SSL 2.0は安全性の問題から含まれていない。また、SSL 3.0は既定では無効とされている。
アルゴリズム

wolfSSLは以下の暗号化ライブラリーを使用している:
wolfCrypt

wolfSSLは標準ではwolfCrypt[9]を使用する。wolfCryptは、SSLのようなものに向けて必要な機能に特化する一方で、最大限のポータビリティーが得られるように配慮されている。wolfCryptはRSA楕円曲線暗号DSSDiffie Hellman、EDH、NTRU、DESTriple DESAES (CBC、CTRCCMGCM)、Camellia、IDEA、ARC4、HC-128、ChaCha20MD2MD4MD5SHA-1SHA-2SHA-3BLAKE2RIPEMD-160Poly1305、乱数生成、大規模整数演算、ベース16/64エンコーディング/デコーディングに対応する。欧州のeSTREAMのパブリックドメインのストリーム暗号Rabbitも含まれている。Rabbitは高性能、高負荷環境での暗号化のために有効であると考えられる。

wolfCryptはCurve25519とEd25519をサポートする。

wolfCryptは、例えば ケルベロス認証[10]のようないくつかのソフトウェア・パッケージやライブラリーのバックエンド暗号化インプリメンテーションとして活躍している。
NTRU

CyaSSL+にはNTRU[11]による公開鍵暗号化が含まれている。 CyaSSL+へのNTRUの追加はwolfSSLとSecurity Innovation.[11] のパートナーシップによって実現した。NTRUは、他の公開鍵暗号と同レベルのセキュリティをより小さなビット数で実現できるため、モバイルや組込み環境でうまく機能する。NTRUはまた、公開鍵暗号化へのquantum attackに対しても脆弱性が知られていない。CyaSSL+ではAES-256、RC4、または HC-128など、NTRUを使用したいくつかの暗号スイートが利用可能である。
SGX

wolfSSLはインテル SGX(ソフトウェア保護拡張)をサポートする。インテル SGXは攻撃対象領域を減らし、既存のコードで目立った性能の低下なくより高いレベルの安全性を確保している。
暗号化ハードウェアアクセラレーションのサポート対象
セキュアエレメント

STSAFE

ATECC508A

ハードウェア暗号

サポート対象のハードウェア暗号とアルゴリズムの組み合わせ

AES 暗号モードデバイスAES-GCMAES-CCMAES-CBCAES-ECBAES-CTR
Intel AES-NI

(Xeon and Core processor families)AllAllAllAllAll
Freescale

Cryptographic Accelerator and Assurance Module (CAAM)AllAllAllAll
Freescale Coldfire SEC

(NXP MCF547X and MCF548X)All
Freescale Kinetis MMCAU

K50, K60, K70, and K80 (ARM Cortex-M4 core)AllAllAllAll
STMicroelectronics STM32

F1, F2, F4, L1, W Series (ARM Cortex - M3/M4)AllAll
Cavium NITROX

(III/V PX processors)All
Microchip PIC32 MX/MZ

(Embedded Connectivity)AllAllAll
Texas Instruments TM4C1294

(ARM Cortex-M4F)AllAllAllAllAll
Nordic NRF51 Archived 2018-06-19 at the Wayback Machine.

(Series SoC family, 32-bit ARM Cortex M0 processor core)128-bit
ARMv8AllAllAll
Intel QuickAssist TechnologyAllAll
Freescale NXP LTCAllAllAllAllAll
Xilinx Zynq UltraScale+256-bit
Renesas RX65N (R5F565NEHDFB)AllAll
Renesas RX72N (RTK5RX72N0C00000BJ)AllAll
Renesas RX MPU (R5F571MLDDFC)AllAll
Renesas Synergy DK-S7G2128-bit

- "All" は、128、192、および 256 ビットのサポートされているブロックサイズ。

DES/3DES 暗号モードデバイスDES-CBCDES-ECB3DES-CBC
Freescale Coldfire SEC

(NXP MCF547X and MCF548X)64 bit192 bit
Freescale Kinetis MMCAU

K50, K60, K70, and K80 (ARM Cortex-M4 core)64 bit192 bit
STMicroelectronics STM32

F1, F2, F4, L1, W Series (ARM Cortex - M3/M4)64 bit64 bit (encrypt)192 bit
Cavium NITROX

(III/V PX processors)192 bit
Microchip PIC32 MX/MZ

(Embedded Connectivity)64 bit192 bit
Texas Instruments TM4C1294

(ARM Cortex-M4F)64 bit192 bit

ストリーム暗号デバイスRC4ChaCha20
AVX1/AVX2

(Intel and AMD x86)Supported
Cavium NITROX

(III/V PX processors)2048 bit max.

ハッシュアルゴリズム サポートデバイスMD5SHA1SHA2SHA-256SHA-384SHA-512
AVX1/AVX2

(Intel and AMD x86)SupportedSupportedSupported
Freescale Kinetis MMCAU


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:34 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef