コンテンツにスキップ

「WolfSSL」の版間の差分

出典: フリー百科事典『ウィキペディア(Wikipedia)』
削除された内容 追加された内容
(英語版12 April 2018, at 18:23を反映、細部修正)
5行目: 5行目:
| caption =
| caption =
| developer = Todd Ouska
| developer = Todd Ouska
| released = {{Start date|2006|02|19}}<ref name="wolfSSL-ChangeLog">{{cite web |title=wolfSSL ChangeLog |url=https://www.wolfssl.com/wolfSSL/Docs-wolfssl-changelog.html |accessdate=2015-05-29}}</ref>
| released = {{Start date|2006|02|19}}<ref name="wolfSSL-ChangeLog">{{cite web |title=wolfSSL ChangeLog |url=https://www.wolfssl.com/wolfSSL/Docs-wolfssl-changelog.html}}</ref>
| operating_system = マルチプラットフォーム
| operating_system = マルチプラットフォーム
| frequently_updated = yes
| frequently_updated = yes
12行目: 12行目:
| status = Active
| status = Active
| license = [[GNU General Public License|GNU GPL2]] または 商用ライセンス
| license = [[GNU General Public License|GNU GPL2]] または 商用ライセンス
| website = {{URL|http://www.wolfssl.jp}}
| website = {{URL|https://www.wolfssl.jp}}
|最新版=3.14.0}}
}}
'''wolfSSL''' (旧称 '''CyaSSL''' (C - Yet another SSL)) は組込みシステム開発者向けのコンパクトでポータブルな組込み向けSSLプログラミング・ライブラリ、[[C言語]]、[[C++]]、[[Java]]プログラムなどに組み込まれ [[オープンソース]] の[[Secure Sockets Layer|SSL]]ライブラリ (SSL 3, TLS 1.0, 1.1, 1.2, DTLS 1.0, 1.2)でる。SSLクライアントライブラリー、サーバライブラリーの両方また[[Secure Sockets Layer|SSL]]および[[Transport Layer Security|TLS]]で定義される各種APIを実現している。また[[OpenSSL]]で主に利用されている関数と互換<ref name="compatibility">[https://www.wolfssl.com/wolfSSL/Products.html wolfSSL - Embedded Communications Products]</ref>のインタフェースを実現している。
'''wolfSSL''' (旧称 '''CyaSSL''') は組込みシステム開発者の使用に向けた小型で移植性高い込みSSL/TLSライブラリであ。TLS (SSL 3.0, TLS 1.0, 1.1, 1.2, 1.3, DTLS 1.0, 1.2)の[[オープンソース]]実装[[C言語]]で書かれている。SSL/TLSクライアントライブラリサーバライブラリが含まれ、[[Secure Sockets Layer|SSL]][[Transport Layer Security|TLS]]で定義される各種APIほかサポートする。また[[OpenSSL]]で主に利用されている関数と互換<ref name="compatibility">[https://www.wolfssl.com/wolfSSL/Products.html wolfSSL - Embedded Communications Products]</ref>のインタフェースを実現している。


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


==プラットフォーム==
==プラットフォーム==
wolfSSLは、[[Windows API|Win32/64]]、[[Linux]]、[[macOS]]、[[Solaris]]、[[FreeBSD]]、[[NetBSD]]、[[OpenBSD]]、[[組み込みLinux]]、[[Haiku (オペレーティングシステム)|Haiku]]、[[OpenWrt]]、[[iPhone]]、[[Android]]、[[Wii|Nintendo Wii]] およびDevKitProを通じて[[ニンテンドーゲームキューブ|Gamecube]]、[[QNX]]、[[VxWorks]]、[[:en:MontaVista|MontaVista]]、[[:en:ThreadX|ThreadX]]、[[ITRON]]、[[:en:NonStop|NonStop]]、[[OpenCL]]、 Micriumの[[:en:MicroC/OS-II|MicroC/OS-II]]、[[FreeRTOS]]、[[:en:MQX|フリースケールMQX]]、[[Nucleus RTOS|Nucleus]]、および[[:en:TinyOS|TinyOS]]において利用可能である。
wolfSSLは、[[Windows API|Win32/64]]、[[Linux]]、[[macOS]]、[[Solaris]]、[[FreeBSD]]、[[NetBSD]]、[[OpenBSD]]、[[組み込みLinux]]、[[Haiku (オペレーティングシステム)|Haiku]]、[[OpenWrt]]、[[iPhone]]、[[Android]]、[[Wii|Nintendo Wii]] およびDevKitProを通じて[[ニンテンドーゲームキューブ|Gamecube]]、[[QNX]]、[[VxWorks]]、[[:en:MontaVista|MontaVista]]、[[:en:ThreadX|ThreadX]]、[[TRONプロジェクト|TRON]]、[[ITRON]]、µITRON、[[:en:NonStop|NonStop]]、[[OpenCL]]、 Micriumの[[:en:MicroC/OS-II|MicroC/OS-II]]、[[FreeRTOS]]、[[:en:MQX|フリースケールMQX]]、[[Nucleus RTOS|Nucleus]]、[[TinyOS]]、[[TI-RTOS]]、[[HP-UX]]、uTasker、およびembOSにおいて利用可能である。


==歴史==
==歴史==
29行目: 29行目:
{{main|Transport Layer Security}}
{{main|Transport Layer Security}}
wolfSSLは以下の各種プロトコルを実現している:<ref name="protocols">[https://www.wolfssl.com/wolfSSL/Docs-cyassl-manual-4-features.html wolfSSL - Docs | CyaSSL Manual - Chapter 4 (Features)]</ref>
wolfSSLは以下の各種プロトコルを実現している:<ref name="protocols">[https://www.wolfssl.com/wolfSSL/Docs-cyassl-manual-4-features.html wolfSSL - Docs | CyaSSL Manual - Chapter 4 (Features)]</ref>
* [[Secure Sockets Layer|SSL]] 3.0、[[Transport Layer Security|TLS]] 1.0、TLS 1.1、TLS 1.2
* [[Secure Sockets Layer|SSL]] 3.0、[[Transport Layer Security|TLS]] 1.0、TLS 1.1、TLS 1.2、TLS 1.3
* [[Datagram Transport Layer Security|DTLS]] 1.0、DTLS 1.2
* [[Datagram Transport Layer Security|DTLS]] 1.0、DTLS 1.2
ただし、SSL 2.0は安全性の問題から含まれていない。また、SSL 3.0は既定では無効とされている。
ただし、SSL 2.0は安全性の問題から含まれていない。また、SSL 3.0は既定では無効とされている。
37行目: 37行目:


===wolfCrypt===
===wolfCrypt===
wolfSSLは標準ではwolfCrypt<ref>[https://www.wolfssl.com/wolfSSL/Docs-cyassl-manual-10-ctaocrypt-usage-reference.html wolfSSL - Docs | CyaSSL Manual - Chapter 10 (CTaoCrypt Usage Reference)]</ref>を使用する。wolfCryptは、SSLのようなものに向けて必要な機能に特化する一方で、最大限のポータビリティーが得られるように配慮されている。wolfCryptは[[RSA暗号|RSA]]、[[楕円曲線暗号]]、[[Digital Signature Algorithm|DSS]]、[[ディフィー・ヘルマン鍵共有|Diffie Hellman]]、[[:en:NTRU|NTRU]]、[[Data Encryption Standard|DES]]、[[Triple DES]]、[[Advanced Encryption Standard|AES]] ([[暗号利用モード#秘匿用の利用モード|CBC、CTR]]、[[Counter with CBC-MAC|CCM]]、[[Galois/Counter Mode|GCM]])、[[Camellia]]、[[RC4|ARC4]]、[[:en:HC-128|HC-128]]、[[ChaCha20]]、[[MD2]]、[[MD4]]、[[MD5]]、[[SHA-1]]、[[SHA-2]]、[[BLAKE2]]、[[RIPEMD|RIPEMD-160]]、[[Poly1305]]、乱数生成、大規模整数演算、ベース16/64エンコーディング/デコーディング。EUのeSTREAMのパブリックドメインのストリーム・サイファー[[:en:Rabbit (cipher)|Rabbit]]も含まれている。Rabbitは高性能、高負荷環境での暗号化のために有効であると考えられる。
wolfSSLは標準ではwolfCrypt<ref>[https://www.wolfssl.com/wolfSSL/Docs-cyassl-manual-10-ctaocrypt-usage-reference.html wolfSSL - Docs | CyaSSL Manual - Chapter 10 (CTaoCrypt Usage Reference)]</ref>を使用する。wolfCryptは、SSLのようなものに向けて必要な機能に特化する一方で、最大限のポータビリティーが得られるように配慮されている。wolfCryptは[[RSA暗号|RSA]]、[[楕円曲線暗号]]、[[Digital Signature Algorithm|DSS]]、[[ディフィー・ヘルマン鍵共有|Diffie Hellman]]、EDH、[[:en:NTRU|NTRU]]、[[Data Encryption Standard|DES]]、[[Triple DES]]、[[Advanced Encryption Standard|AES]] ([[暗号利用モード#秘匿用の利用モード|CBC、CTR]]、[[Counter with CBC-MAC|CCM]]、[[Galois/Counter Mode|GCM]])、[[Camellia]]、IDEA、[[RC4|ARC4]]、[[:en:HC-128|HC-128]]、[[ChaCha20]]、[[MD2]]、[[MD4]]、[[MD5]]、[[SHA-1]]、[[SHA-2]]、[[BLAKE2]]、[[RIPEMD|RIPEMD-160]]、[[Poly1305]]、乱数生成、大規模整数演算、ベース16/64エンコーディング/デコーディングに対応する欧州のeSTREAMのパブリックドメインのストリーム暗号[[:en:Rabbit (cipher)|Rabbit]]も含まれている。Rabbitは高性能、高負荷環境での暗号化のために有効であると考えられる。

wolfCryptは[[Curve25519]]と[[EdDSA|Ed25519]]をサポートする。


wolfCryptは、例えば [[ケルベロス認証]]<ref>[http://web.mit.edu/kerberos/ Kerberos: The Network Authentication Protocol]</ref>のようないくつかのソフトウェア・パッケージやライブラリーのバックエンド暗号化インプリメンテーションとして活躍している。
wolfCryptは、例えば [[ケルベロス認証]]<ref>[http://web.mit.edu/kerberos/ Kerberos: The Network Authentication Protocol]</ref>のようないくつかのソフトウェア・パッケージやライブラリーのバックエンド暗号化インプリメンテーションとして活躍している。


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

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


== 暗号化ハードウェアアクセラレーションのサポート対象 ==
==製品==
Intel AES-NI
開発マイルストーン:
* wolfSSL version 3.4.6: 2015年3月30日リリース
* wolfSSL version 3.4.0: 2015年2月23日リリース
* CyaSSL version 3.3.0: 2014年12月5日リリース
* CyaSSL version 3.2.0: 2014年9月10日リリース
* CyaSSL version 3.1.0: 2014年7月14日リリース
* CyaSSL version 3.0.0: 2014年4月30日リリース
* CyaSSL version 2.9.4: 2014年4月9日リリース
* ...
* CyaSSL version 2.3.0: 2012年8月10日リリース
* CyaSSL version 2.2.0: 2012年5月18日リリース
* CyaSSL version 2.0.8: 2012年2月24日リリース
* CyaSSL version 2.0.0rc3: 2011年9月28日リリース
* CyaSSL version 1.9.0: 2011年3月2日リリース
* CyaSSL version 1.6.0: 2010年8月27日リリース
* CyaSSL version 1.5.0: 2010年5月11日リリース
* CyaSSL version 1.2.0: 2009年11月2日リリース
* CyaSSL version 1.1.0: 2009年9月2日リリース
* CyaSSL version 1.0.2: 2009年4月2日リリース
* CyaSSL version rc3-1.0.0: 2009年2月25日リリース
* CyaSSL version rc1-1.0.0: 2008年12月17日リリース


==ライセンス==
== ライセンス ==
wolfSSLはGNU General Public License GPLv2.<ref>[http://www.gnu.org/licenses/license-list.html GNU License]</ref>による[[オープンソース]]と商用ライセンスの双方で利用可能である。
wolfSSLはGNU General Public License GPLv2.<ref>[http://www.gnu.org/licenses/license-list.html GNU License]</ref>による[[オープンソース]]と商用ライセンスの双方で利用可能である。


==受賞==
== 受賞 ==
2011 Tomorrow's Technology Today - Mobile Encryption<ref>[http://www.infosecurityproductsguide.com/technology/2011/Security-Innovation.html 2011 Tomorrow's Technology Today - Mobile Encryption]</ref>
2011 Tomorrow's Technology Today - Mobile Encryption<ref>[http://www.infosecurityproductsguide.com/technology/2011/Security-Innovation.html 2011 Tomorrow's Technology Today - Mobile Encryption]</ref>


80行目: 65行目:
*[[Transport Layer Security]]
*[[Transport Layer Security]]
*[[:en:Comparison of TLS implementations|Comparison of TLS implementations]]
*[[:en:Comparison of TLS implementations|Comparison of TLS implementations]]
*[[Comparison of cryptography libraries]]
*[[GnuTLS]]
*[[Network Security Services]]
*[[OpenSSL]]
*[[MatrixSSL]]


==外部リンク==
==外部リンク==
* [http://www.wolfssl.com/jp/Home.html wolfSSL/CyaSSLホームページ]
* [https://www.wolfssl.jp wolfSSL日本語ホームページ]
* [http://www.wolfssl.com/yaSSL/Docs.html CyaSSL/wolfSSL Documentation]
* [https://www.wolfssl.com wolfSSL Homepage]
* [http://embedded-computing.com/news/wolfssl-with-chacha20-poly1305 wolfSSL Now With ChaCha20 and Poly1305]
* [http://www.securityinnovation.com/products/encryption/cyassl.shtml CyaSSL - High-Performance SSL, Security Innovation]
* [http://tek-tips.nethawk.net/yassl-secures-embedded-systems-with-tiny-footprints wolfSSL Secures Embedded Systems with Tiny Footprints]


{{暗号ソフトウェア}}
{{暗号ソフトウェア}}

2018年4月20日 (金) 07:35時点における版

wolfSSL
開発元 Todd Ouska
初版 2006年2月19日 (2006-02-19)[1]
最新版
3.14.0
リポジトリ ウィキデータを編集
プログラミング
言語
C言語
対応OS マルチプラットフォーム
サポート状況 Active
種別 セキュリティ・ライブラリー
ライセンス GNU GPL2 または 商用ライセンス
公式サイト www.wolfssl.jp
テンプレートを表示

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

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

プラットフォーム

wolfSSLは、Win32/64LinuxmacOSSolarisFreeBSDNetBSDOpenBSD組み込みLinuxHaikuOpenWrtiPhoneAndroidNintendo Wii およびDevKitProを通じてGamecubeQNXVxWorksMontaVistaThreadXTRONITRON、µITRON、NonStopOpenCL、 MicriumのMicroC/OS-IIFreeRTOSフリースケールMQXNucleusTinyOSTI-RTOSHP-UX、uTasker、およびembOSにおいて利用可能である。

歴史

yaSSLの始まりは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電話、携帯電話、ルータ、プリンタやクレジットカード・スキャナのようなさまざまな種類のネットワーク・デバイスに組み込まれている。

プロトコル

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

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

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

アルゴリズム

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

wolfCrypt

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

wolfCryptはCurve25519Ed25519をサポートする。

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

NTRU

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

SGX

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

暗号化ハードウェアアクセラレーションのサポート対象

Intel AES-NI

ライセンス

wolfSSLはGNU General Public License GPLv2.[11]によるオープンソースと商用ライセンスの双方で利用可能である。

受賞

2011 Tomorrow's Technology Today - Mobile Encryption[12]

脚注

関連項目

外部リンク