wolfSSL は、組み込みシステム開発者向けに設計された、小型でポータブルな組み込み SSL/TLS ライブラリです。C言語で記述されたTLS (SSL 3.0、TLS 1.0、1.1、1.2、1.3、およびDTLS 1.0、1.2、1.3)のオープンソース実装です。SSL/TLS クライアントライブラリと SSL/TLS サーバー実装、およびSSLとTLSで定義されているものを含む複数の API のサポートが含まれています。wolfSSL には、最も一般的に使用される OpenSSL 関数とのOpenSSL互換インターフェースも含まれています。 [ 4 ] [ 5 ]
wolfSSL は現在、Microsoft Windows、Linux、macOS、Solaris、ESP32、ESP8266、ThreadX、VxWorks、FreeBSD、NetBSD、OpenBSD、組み込み Linux、Yocto Project、OpenEmbedded、WinCE、Haiku、OpenWrt、iPhone、Android、Wii、およびDevKitPro サポートを介したGameCube、QNX、MontaVista、Tronバリアント、NonStop OS、OpenCL、Micrium のMicroC/OS-II、FreeRTOS、SafeRTOS、Freescale MQX、Nucleus、TinyOS、TI-RTOS、HP-UX、uTasker、uT-kernel、embOS、INtime、mbed、RIOT、CMSIS-RTOS、FROSTED、Green Hills INTEGRITY、Keil RTX で利用可能です。 TOPPERS、PetaLinux、Apache Mynewt、PikeOS、[ 6 ] Deos、Azure Sphere OS、Zephyr、AIX、Cesium。
wolfSSL の起源は 2004 年に遡ります。当時OpenSSLが利用可能で、 OpenSSL ライセンスとSSLeay ライセンスのデュアル ライセンスでした。[ 7 ] 一方、yaSSL は商用ライセンスと GPL の両方で開発され、デュアル ライセンスでした。[ 8 ] yaSSL はよりモダンな API、商用スタイルの開発者サポートを提供し、OpenSSL 互換レイヤーも完備していました。[ 4 ] wolfSSL/CyaSSL/yaSSL の最初の主要ユーザーはMySQLでした。[ 9 ] MySQL とのバンドルにより、yaSSL は数百万という非常に高い配布量を達成しました。
2019年2月、cURLの開発者であるダニエル・ステンバーグは、wolfSSLプロジェクトに採用され、cURLの開発に携わることになった。[ 10 ]
wolfSSL軽量SSLライブラリは、以下のプロトコルを実装しています。[ 11 ]
プロトコルに関する注意事項:
wolfSSLは以下の暗号化ライブラリを使用します。
デフォルトでは、wolfSSLはwolfCryptが提供する暗号化サービスを使用します。[ 13 ] wolfCrypt は、RSA、DSA、ECC、DSS、Diffie–Hellman、EDH、ECDH-ECDSA、ECDHE-ECDSA、ECDH-RSA、ECDHE-RSA、NTRU (非推奨で削除済み)、DES、Triple DES、AES (CBC、CTR、CCM、GCM、OFB、XTS、GMAC、CMAC)、Camellia、IDEA、ARC4、HC-128、ChaCha20、MD2、MD4、MD5、SHA-1、SHA-2、SHA-3、BLAKE2、RIPEMD-160、Poly1305、SM2、SM3、SM4乱数生成、大整数サポート、16/64 ベースエンコード/デコード、HMAC を提供します。PBKDF2、およびポスト量子暗号アルゴリズム:ML-KEM(FIPS 203認証取得済み)とML-DSA(FIPS 204認証取得済み)。
wolfCryptは、X25519およびEd25519アルゴリズムに加え、X448およびEd448アルゴリズムもサポートしています。
wolfCryptは、 MIT Kerberos [ 14 ](ビルドオプションを使用して有効にできる)を含む、いくつかの人気のあるソフトウェアパッケージやライブラリのバックエンド暗号化実装として機能します。
wolfCryptはFIPS認証を受けており、2つのFIPS 140-2証明書(#2425 [ 15 ]と#3389 [ 16 ])と2つのFIPS 140-3証明書(#4718 [ 17 ]と#5041 [ 18 ])を取得しています。
CyaSSL+にはNTRU [ 19 ]公開鍵暗号化が含まれています。CyaSSL+へのNTRUの追加は、yaSSLとSecurity Innovationの提携の結果です。[ 19 ] NTRUは、他の公開鍵システムと同じセキュリティを提供するために必要なビットサイズが小さいため、モバイルおよび組み込み環境でうまく機能します。さらに、量子攻撃に対して脆弱であるとは知られていません。CyaSSL+では、AES-256、RC4、HC-128など、NTRUを利用するいくつかの暗号スイートが利用可能です。
wolfSSLは、FIPS準拠を維持するためにNIST推奨のECC曲線とハイブリッド化されたKyber Key Encapsulation Mechanism(KEM)を含む、さまざまなポスト量子暗号アルゴリズムをサポートしています。サポートされているML-KEMレベルは、レベル1(ML-KEM-512)、レベル3(ML-KEM-768)、レベル5(ML-KEM-1024)です。デジタル署名については、wolfSSLはレベル2、3、5でML-DSA、レベル1と5でFALCON、SLH-DSA、LMS/HSS、XMSS/XMSS^MTを実装しています。また、このライブラリは、対応するセキュリティレベルでECDHEとML-KEMを組み合わせたハイブリッドTLS鍵交換方式、デュアルアルゴリズム証明書、TLS 1.3デュアルアルゴリズム認証もサポートしています。
wolfSSLは以下のセキュアエレメントをサポートしています。
wolfSSLは以下のハードウェア技術をサポートしています。
wolfSSLは、 GPL-3.0以降のライセンスと商用ライセンスの両方でライセンスされています。