うるふブログ

wolfTips: 新しい整数演算ライブラリ

TLSの性能に関して一番気になるのはハンドシェイク処理時間ではないだろうか。処理時間的に見るとハンドシェイク処理でほとんどの時間は鍵交換、デジタル署名や検証など公開鍵暗号の処理に費やされている。この公開鍵暗号はご存じの通り大きな整数値のベキ乗や剰余の演算処理だ。

wolfSSLではこの大きな整数値の演算のために特別なライブラリを提供しており、時代とともに改良を加えている。初期に、どのようなアーキテクチャのMPUでもポータブルかつ高速に動作するように特別に開発された標準整数ライブラリ(integer.c)は今でもwolfSSLのデフォルト整数ライブラリだ。これに対して、Tom’s Fast Math をベースにIntelアーキテクチャやARMアーキテクチャで特に高速に動作するように改良を加えたFast Math (tfm.c)。これまで、これら二つをターゲット環境に応じてビルドオプションで使い分けてきた。

最近加えられたもう一つのオプションは、公開鍵処理に特化したSingle Precisionオプションだ。公開鍵の整数演算で特定の鍵長であればループ処理を使わなくても直線的な処理に落とし込むことができることを利用し、高速化と処理時間の一定化を実現したものだ。そういうわけでSingle Precisionと言っても、フローティングポイントの単精度とは関係ない、あえて日本語訳するとすれば、単一精度ないし特定精度というようなことになるだろう。

このSingle Precisionオプションは、configureコマンドならば

$ ./configure –enable-sp

というような形で簡単に定義することができる。Single Precision処理は原理的にアルゴリズムや鍵長ごとに対応しなければならない。現在のところwolfSSLではRSA/DH 2048/3072, ECDSA/ECDH256 の署名、鍵交換に対応している。

./wolfcrypt/benchmark/benchmark

でベンチマークを比較することができるので、ぜひご自分の実機で比較して見てください。

特にIoTでは、アプリケーションメッセージの送受信よりハンドシェイク処理時間の方が目立つことが多い。そいう場合のチューニングにおすすめできるオプションだ。また、この処理は処理時間が一定化され、サイドチャネル攻撃に対して耐性が向上するというセキュリティ上の利点からもおすすめです。

wolfSSL Japan技術サポートチーム

Japan IT Week 関西内「組込みシステム開発技術展」出展のご案内

wolfSSL Japanは、2019/1/23 ~ 25に開催されるJapan IT Week 関西内、組込みシステム開発技術展に出展いたします。

日時: 1月23日(水)〜1月25日(金) 10:00~18:00(最終日のみ17時まで)
会場: インテックス大阪
wolfSSLブース番号: 2号館10-19
展示会ウェブサイト: https://www.japan-it-osaka.jp/

2019年初の関西展示会、スタッフ一同とても楽しみにしております。wolfSSL Inc.のBusiness DirectorであるRich Kelmも加わり、TLS 1.3対応のwolfSSL組み込みシステム向けTLSライブラリ、TLSとハードウェアセキュリティの連携を可能にするwolfTPM、wolfMQTT、wolfSSHなどのご紹介を行います。ぜひお気軽にwolfSSLのブースへもお立ち寄りください。

みなさまのご来場を心よりお待ちしております。
現地での個別打ち合わせをご希望の方は、info@wolfssl.jp までご連絡ください。

2019年展示会出展のお知らせ

wolfSSL Japan合同会社は、2019年に次の展示会への参加を予定しております。会場でみなさまと直接お話しできることを楽しみにしております。各展示会のブースやセミナーなどの詳細情報は、あらためてブログでご案内いたします。現地での打ち合わせのご希望やご質問は、info@wolfssl.jp までご連絡ください。

Jan 16-18 スマート工場 EXPO Tokyo Big Sight
Jan 23-25 Japan IT Week 関西 Intex Osaka
Feb 6-7 ET & IoT Technology 名古屋 吹上ホール(名古屋市中小企業振興会館)
Mar 18-20 Medtec Japan Tokyo Big Sight
Apr 10-12 Japan IT Week【春】前期 Tokyo Big Sight
May 29-31 ワイヤレスジャパン2019 Tokyo Big Sight
Jun 13-14 ET & IoT Technology West 2019 Grand Front Osaka
Jul 30 -31 IoTセキュリティフォーラム 2019 よみうり大手町ホール
Oct 23-25 Japan IT Week 秋 幕張メッセ
Nov 20-22 ET & IoT Technology 2019 パシフィコ横浜
イベントに関するブログは、こちらにまとめています。

wolfSSL 3.15.7をリリースしました

年末のお忙しい中での案内になり恐縮ですが、wolfSSL組み込みTLSライブラリのバージョン3.15.7をリリースいたしました。オープンソース版は、こちらからダウンロードいただけます。今回のリリースは、多くの新機能、既存機能の修正と改良を含んでいます。よりわかりやすい APIドキュメント、RSA検証専用ビルド、RSA公開鍵操作専用ビルド、新しいポート追加のほか、以下が本リリースでのアップデート項目です。

新機能追加とポート

  • Espressif ESP-IDF開発フレームワークのサポート
  • PKCS#7で、独立した署名を使用してバンドルを生成および検証するためのサポート
  • Micrium uC / OS-III用のポートアップデート
  • WOLFSSL_ALLOW_MAX_FRAGMENT_ADJUSTマクロを使用してコンパイルした場合、ハンドシェイク後の最大フラグメントサイズを調整する機能を追加
  • wolfSSLにバンドルされたサンプルコードに複数の言語を追加すると、マルチバイト 文字を処理できない組み込みデバイスで問題が生じる可能性があります。NO_MULTIBYTE_PRINTにより、マルチバイト文字を出力するコードを除いてコンパイルできるようになりました
  • RSA検証専用(–enable-rsavfy)およびRSA公開専用(–enable-rsapub)ビルドを追加しました。これらはRSAコードの一部をコンパイルする–enable-cryptonlyと一緒に使用できるビルドです。 RSA公開鍵操作のみ、またはRSA検証操作のみが必要な場合、wolfSSLをさらに小型にすることが可能になりました

wolfSSLの既存機能のアップデートのひとつには、Intel QuickAssist v1.7ドライバのサポートがあります。これにより、wolfSSLを新しいIntelハードウェアと非同期モードで使用し、以前のドライバよりも大幅にパフォーマンスを向上させることができます。ドライバのアップデートに加え、RSA鍵生成とSHA-3サポートをwolfSSL QuickAssistポートに追加しています。
以下、このリリースにおけるその他の追加、アップデートをいくつかご紹介します。

  • i386でiPhoneシミュレータを使ってXCodeをビルドする際の修正
  • AES-CBCを無効にし、opensslextra互換レイヤを有効にするビルドの修正
  • セッション情報を表示し、レコード間で分割メッセージを処理するようスニファを更新
  • PKCS#11 APIなどを含むDoxygenドキュメントの更新
  • 増加したコードカバレッジに対するテストケースの機能強化
  • OpenSSL互換レイヤへのアップデートを含む、Mongooseで使用するためのVxWorksポートのアップデート
  • autotoolsで使いやすくするための–enable-armasm buildの更新
  • Yoctoでの使いやすさを追求しいくつかの改良を加えました。ビルド手順も INSTALLファイルに追加しました

wolfSSLのTLS 1.3コードにいくつかのアップデートと細かい修正を加えました。業界をリードするwolfSSLのTLS 1.3実装を堅牢かつ最新に保ちます。これらの修正は次のとおりです。

  • コネクション付きのTLS 1.3バージョンをチェックする内部コードの更新
  • TLS 1.3を使用している場合、ServerHelloから不要な拡張マスターシークレットを削除
  • TLS v1.3のHelloRetryRequestがすぐに送信され、グループ化されないように修正

このwolfSSLのリリースには1つのセキュリティ脆弱性に対する修正が含まれています。Bleichenbacherの攻撃の変種による潜在的なキャッシュ攻撃に対する中レベルの修正です。以前のバージョンのwolfSSLでは、秘密鍵の復号化中にPKCS#1 v1.5のパディング情報が漏洩し、潜在的なパディングオラクル攻撃につながる可能性がありました。 RSA暗号スイートを有効にしており、悪意のあるソフトウェアがRSA操作を実行しているのと同じシステム上で実行される可能性がある場合は、最新バージョンのwolfSSLにアップデートすることをお勧めします。 ECC暗号スイートのみを有効にし、RSA PKCS#1 v1.5を実行していないユーザー復号化操作はこの脆弱性の影響を受けません。 TLS 1.3のみの接続を持つユーザーもこの攻撃に対して脆弱ではありません。 レポートいただいたEyal Ronen氏(Weizmann Institute)、Robert Gillham氏(アデレード大学)、Daniel Genkin氏(ミシガン大学)、Adi Shamir氏(Weizmann Institute)、David Wong氏(NCCグループ)、およびYuval Yarom氏(アデレード大学およびData61)に御礼申し上げます。この攻撃の詳細についてはhttp://cat.eyalro.net/cat.pdf で説明されています。変更のパッチの確認、適用には、こちらをご覧ください。

さらに詳しい情報は弊社問い合わせ窓口 info@wolfssl.jp までご連絡ください。
原文: https://www.wolfssl.com/wolfssl-3-15-7-now-available/

スマート工場 EXPO出展のご案内

wolfSSL Japanは、2019/1/16 ~ 18に開催されるスマート工場 EXPOに出展いたします。

日時: 2019年1月16日(水)〜1月18日(金) 10:00~18:00(最終日のみ17時まで)
会場: 東京ビッグサイト
wolfSSLブース番号: W20-52
 
2019年最初の展示会出展です!TLS 1.3対応のwolfSSL組み込みシステム向けTLSライブラリのデモをはじめ、TLSとハードウェアセキュリティの連携を可能にするwolfTPMwolfMQTTwolfSSHなどのご紹介を行います。会場の東京ビッグサイトでは期間中、オートモーティブ ワールド、 ロボデックス、ネプコン ジャパン、ウェアラブル EXPOなど多くの展示会が同時開催中です。ぜひwolfSSLのブースへもお立ち寄りください。
 
みなさまのご来場を心よりお待ちしております。

 

走り出した TLS 1.3(4):セキュリティプロトコルの技術と経験を結集

さてここまでTLS1.3の特徴として、性能やスループットの面からのメリットを中心にお話するというセキュリティ屋の説明らしからぬ順序で進めてきた。そろそろ安全性の面からの話もまとめておこう。

実際のところTLS1.2までの経験で、TLSはセキュリティプロトコルとしてはかなり成熟してきていたといってもいいだろう。しかし、最大の課題は、それまで出てきた数々の問題に対応するためにつぎはぎ的な対応が重なってきてしまっていたことだろう。それまでのTLS拡張によるTLSレコードのつぎはぎだらけの拡張では早晩破綻をきたしてしまうことは目に見えていた。たくさんの暗号スイートの中には、すでに危殆化したものや、危殆化が見えているものも増えてきていた。ブロック暗号とMACによる真正性の保証も限界のように思われた。

そういう中で、TLS1.3では、まず暗号スイートの大胆な整理が行われた。最終的には共通鍵暗号の方式としては認証タグ付き暗号(いわゆるAEAD)のみを採用することになった。具体的には、現時点でみとめられているのはブロック暗号としてAES-GCMとAES-CCM、ストリーム暗号ではChaCha-Polyのみだ。TLS1.2でもっとも広く使われているAES-CBCは廃止された。

TLS1.3の安全性の議論で、それまでのバージョンでは配慮されていなかった完全前方秘匿性への配慮が新たに加わった。これは、それまでには考えられなかったような大規模で長期間にわたるネットワークトラフィックの盗聴、蓄積が行われるケースがあることがわかってきたためだ。そういう攻撃方法によれば、長い期間をかけた暗号解読や、本来十分管理されるべきプライベート鍵の流出などで過去の秘匿情報が解読されてしまうリスクがある。公開鍵方式といえども鍵交換において長期間にわたり同じ鍵を使用することは危険であることがわかってきて、そうしたリスクに対する秘匿性、「完全前方秘匿性(PFS)」の重要性が認識されはじめた。

具体的対策としては、鍵交換における静的RSAを廃止し、ディフィー・ヘルマン(DH) においても一時鍵(Ephemeral Key) のみを使用するDHEのみが認められることになった。逆に、DHEのみになったおかげでハンドシェイクは単純化され、シリーズ前回でも紹介したように、オーバーヘッドが削減されたというメリットも享受できるという副産物もある。

以下は、TLS1.2と1.3における暗号スイートの例だ。1.3の鍵交換ではDH系しか使用されないので、そのフィールドは廃止された。ECDH(楕円曲線暗号によるDH)での曲線種別はTLS拡張で示される。

TLS1.2の暗号スイートの例:TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256

TLS1.3の暗号スイートの例:TLS_AES_128_GCM_SHA256

また、鍵合意部分がDH系のみに整理されたことにともない、ハンドシェイク先頭の暗号スイートの合意部分を除いてその後のハンドシェイクはすべて暗号化でき、安全性が大幅に向上した。

図:TLS1.3ではハンドシェイクの大部分が暗号化

そのほかにも、TLS拡張の整理や、暗号スイートの意味の整理がされたことなど、ひとまずのTLSの完成形といえるものに仕上がったといえるだろう。

 連載「走り出したTLS 1.3」
 第一回
 第二回 0-RTTでいきなり暗号化メッセージ
 第三回 一律3割引き !?

さらに詳しい情報は info@wolfssl.jp までお問い合わせください。

wolfSSLホーム:www.wolfssl.jp (English:www.wolfssl.com)

wolfTips: テスト用鍵、証明書 (ファイルシステム有, 無しの場合)

wolfSSLでは、ユーザが作ったプログラムをテストする際にすぐ使えるようなテスト用の鍵や証明書のファイルを製品といっしょに提供しています。certsディレクトリの直下には、サーバー認証、クライアント認証に使用する公開鍵証明書、プライベート鍵(RSA, ECC)がDERとPEMフォーマットで格納されていますのでご利用ください。また、CRLやOCSP用のファイルもそれぞれのディレクトリに格納されています。

例えば、製品に含まれているTLSサーバーとクライアントのサンプルプログラムのデフォルトでは、サーバ認証のためには次の各ファイルが使われていて、RSAによる認証を行います。

サーバー側証明書:./certs/server-cert.pem

サーバー側プライベート鍵;./certs/server-key.pem

クライアント側証明書:./certs/ca-cert.pem

これに対して、例えば次のような各ファイルを指定すれば楕円曲線暗号によるサーバー認証を実行することができます。

./examples/server/server -k ./certs/ecc-key.pem -c ./certs/server-ecc.pem

./examples/client/client -A ./certs/ca-ecc-cert.pem

 

ファイルシステム無しの場合のテスト用には、wolfssl/certs_test.hヘッダーファイルにC 言語によるデータ定義ファイルが提供されています。このファイルには、上記のcerts直下の各ファイルに対応したデータ定義が格納されています。このファイルをインクルードして、あらかじめ定義されたデータを使ってテストすることができるようになっているのでぜひご利用ください。

2018 TRON Symposium出展のご案内

wolfSSL Japanは、12/12 ~ 14に開催されるTRONSHOWに出展いたします。

日時: 2018年12月12日(水)〜12月14日(金) 10:00〜17:00
会場: 東京ミッドタウン ホール(東京都港区赤坂9-7-1)(アクセス)
TRONSHOWサイト: http://www.tronshow.org
wolfSSLブース番号: B2
 
最新TLS 1.3に対応したwolfSSL組み込みシステム向けTLSライブラリのデモをはじめ、TLSとハードウェアセキュリティの連携を可能にするwolfTPMwolfMQTTwolfSSHなどのご紹介を行います。今年最後の展示会出展となります。みなさまのご来場、ご参加を心よりお待ちしております。
 

wolfSSLのESP-IDFとESP32-WROOM-32サポート

組み込み向け SSL/TLS ライブラリwolfSSLESP-IDF(Espressif IoT Development Framework) サポートとサンプルプログラムを公開しました。

ESP-IDF は、IoT デバイスを迅速に開発する為のフレームワークです。Wi-Fi、Bluetooth、電源管理やその他のシステム機能が備わっています。

ESP-IDF についての情報はこちらを参照ください:
https://docs.espressif.com/projects/esp-idf/en/latest/get-started/index.html

 
wolfSSL を ESP-IDF で使用するには、wolfSSL のソースコードをプロジェクトへ配置する必要があります。配置方法とビルド方法については、 wolfSSL の IDE/Espressif/ESP-IDF/フォルダに含まれる README.md を参照してください。また、TLS サーバー/クライアントを含むサンプルプロジェクトも追加しています。サンプルプログラムのビルドに関しては、各プログラムに含まれる README.md をご参照ください。これらのサンプルプログラムは、ESP-IDF環境でESP32-WROOM-32 IoT デバイス上で動作確認を行っています。

wolfSSLのマスターブランチはこちらにあります:
https://github.com/wolfSSL/wolfssl

ESP-IDFポーティングの README.md はこちらから参照ください:
https://github.com/wolfSSL/wolfssl/blob/master/IDE/Espressif/ESP-IDF/README.md

サンプルプログラムはこちらにあります:
https://github.com/wolfSSL/wolfssl/tree/master/IDE/Espressif/ESP-IDF/examples

 
ESP-IDFをサポートしたwolfSSL は、現在 gitHub 上の wolfSSLリポジトリのマスターブランチにあり次期リリースに含まれる予定です。ESP-IDF環境でのwolfSSLを使った開発についてのご質問は、support@wolfssl.com まで日本語でお問い合わせください。

【プレスリリース】wolfSSL、wolfSSL Japan合同会社を設立し、TLS 1.3ライブラリのサポート体制を強化

wolfSSLは本日、次のプレスリリースを配信致しました。

wolfSSL、wolfSSL Japan合同会社を設立し、TLS 1.3ライブラリのサポート体制を強化

さらに詳しい情報は弊社問い合わせ窓口info@wolfssl.jpまでお問い合わせください。
wolfSSLホーム:www.wolfssl.jp (English:www.wolfssl.com)

Posts navigation

1 2 3 4 5 6 7 31 32 33