DTLS1.3をサポート開始!

wolfSSLはDTLS1.3の実装を搭載しています。まだ商用での利用可能な段階ではありませんが、フル機能を搭載しベータテストできる状態にあります。コードは我々のGitHub レポジトリダウンロードサイトから取得できます。

DTLSはその最初のバージョンから、下層トランスポートの信頼性と送信順序の保証無しにTLSと同等のセキュリティを提供することを目指しています。つまり、通信遅延に影響を受けやすくて、TCPや同類のプロトコルが持つオーバーヘッドに耐えられないアプリケーションにこそ向いていると言えます。DTLSv1.3の仕様は4月にRFC9147 として公開されました。DTLSv1.3は TLSv1.3の持つ改良点:早く安全なハンドシェーク、0-RTTセッション再開、最新の暗号化アルゴリズム、ダウングレード防御等、を備えています。wolfSSLは動作するDTLSv1.3実装の最初の提供ベンダーとなりました。もし、皆さんがDTLSをお使いでご質問がありましたらメールでお問い合わせください。お待ちしています!

DTLS1.3関係の過去の記事:

最終段階に入ったDTLS1.3

DTLSの実力(その1DTLSの動作)

DTLSの実力(その2性能編)

原文:https://www.wolfssl.com/new-announcement-wolfssl-now-supports-dtlsv1-3/

ご質問は、info@wolfssl.jpまでお問い合わせください。テクニカルサポートについは、support@wolfssl.comにお問い合わせください。

組み込み向けMCUのポスト量子暗号をベンチマーク

以前、このブログでSTM32向けにTLS1.3にポスト量子KEM(Key Encapsulation Mechanism)を導入することをお知らせしていましたが、それに加えて、PQM4(ARM Cortex-M4用ポスト量子暗号ライブラリ)のKYBERレベル1KEMをwolfSSLのベンチマークに追加しました。 最適化フラグのバグ修正が完了するまでは、最適化を使用してPQM4をビルドしないように注意してください。問題の進行状況は ここでご覧ください。

この修正が完了したら、従来のアルゴリズムと一緒にベンチマークを実行して結果を比較できるように再度このブログでお見せします。

[NUCLEO-F446ZE 168MHz SP Math アセンブリコードを使用して測定]

Running wolfCrypt Benchmarks…
wolfCrypt Benchmark (block bytes 1024, min 1.0 sec each)
RNG                  1 MB took 1.004 seconds,    1.070 MB/s
AES-128-CBC-enc      1 MB took 1.000 seconds,    1.172 MB/s
AES-128-CBC-dec      1 MB took 1.008 seconds,    1.187 MB/s
AES-192-CBC-enc      1 MB took 1.000 seconds,    1.001 MB/s
AES-192-CBC-dec      1 MB took 1.004 seconds,    0.997 MB/s
AES-256-CBC-enc    900 KB took 1.007 seconds,  893.744 KB/s
AES-256-CBC-dec    900 KB took 1.004 seconds,  896.414 KB/s
AES-128-GCM-enc     75 KB took 1.094 seconds,   68.556 KB/s
AES-128-GCM-dec     75 KB took 1.094 seconds,   68.556 KB/s
AES-192-GCM-enc     75 KB took 1.118 seconds,   67.084 KB/s
AES-192-GCM-dec     75 KB took 1.117 seconds,   67.144 KB/s
AES-256-GCM-enc     75 KB took 1.134 seconds,   66.138 KB/s
AES-256-GCM-dec     75 KB took 1.130 seconds,   66.372 KB/s
GMAC Small          75 KB took 1.008 seconds,   74.405 KB/s
CHACHA               4 MB took 1.004 seconds,    4.426 MB/s
CHA-POLY             3 MB took 1.000 seconds,    2.905 MB/s
POLY1305            12 MB took 1.000 seconds,   12.183 MB/s
SHA-256              3 MB took 1.000 seconds,    2.832 MB/s
HMAC-SHA256          3 MB took 1.000 seconds,    2.808 MB/s
RSA     2048 public         78 ops took 1.016 sec, avg 13.026 ms, 76.772 ops/sec
RSA     2048 private         4 ops took 1.836 sec, avg 459.000 ms, 2.179 ops/sec
DH      2048 key gen         5 ops took 1.196 sec, avg 239.200 ms, 4.181 ops/sec
DH      2048 agree           6 ops took 1.439 sec, avg 239.833 ms, 4.170 ops/sec
ECC   [      SECP256R1]   256 key gen       113 ops took 1.000 sec, avg 8.850 ms, 113.000 ops/sec
ECDHE [      SECP256R1]   256 agree          54 ops took 1.008 sec, avg 18.667 ms, 53.571 ops/sec
ECDSA [      SECP256R1]   256 sign           78 ops took 1.019 sec, avg 13.064 ms, 76.546 ops/sec
ECDSA [      SECP256R1]   256 verify         38 ops took 1.012 sec, avg 26.632 ms, 37.549 ops/sec
kyber_level1-kg         62 ops took 1.004 sec, avg 16.194 ms, 61.753 ops/sec
kyber_level1-ed         28 ops took 1.043 sec, avg 37.250 ms, 26.846 ops/sec
Benchmark complete

ポスト量子暗号の過去の記事はこちら:

wolfSSL 5.1.1のポスト量子化暗号:FALCON

組み込み向けMCUのポスト量子暗号

ご質問は、info@wolfssl.jpまでお問い合わせください。テクニカルサポートについは、support@wolfssl.comにお問い合わせください。

原文:https://www.wolfssl.com/kyber-level1-benchmarks-stm32/

組み込み向けMCUのポスト量子暗号

wolfSSLでは、Linux x86_64マシンとARM Cortex M4 チップ搭載のSTM32 NUCLEO-F446ZEボード間で鍵合意にKYBER_LEVEL1グループを使用してのTLS1.3接続に成功しました!

接続には一般的なUART TTL-USBケーブルを使いました。Linuxマシン側ではケーブルをUSBポートに接続し、ボード側はUARTピンヘッダーに接続しました。いずれの側もサーバーあるいはクライアントにすることができます。

liboqsはSTM32向けビルドをサポートしていませんから、どのようにしてwolfSSLに統合したのか疑問に思う方もいらっしゃるかもしれません。wolfSSLはOQSチームの姉妹プロジェクトであるMUPQチームのpqm4プロジェクトと統合しているからです。アルゴリズムアーティファクトはliboqsとpqm4と間で相互運用されており、かつwolfSSLは両側にあるため完全な相互運用が実現できています。OQSチームのOpenSSLフォークとも相互運用できることは重要です。

これは本当に重要でしょうか?私たち重要だと思っています。ポスト量子アルゴリズムがインターネットに与える影響を示す多くの素晴らしい作業が行われています。いくつかの学術論文と大規模な実験があり、いくつかの非常に興味深い結果があり、一般的に言えば、インターネットがポスト量子アルゴリズムの準備ができていることを示しています。しかし、制約のある低リソースのデバイスについてはどうでしょうか。 IoTはどうですか?暗号化アーティファクトのサイズが大きく、一部の操作ではプロセッサパワーの必要性が高いため、これらのアルゴリズムは、制約のある低リソースのデバイスに大きな影響を与える可能性があります。

このようなリソース制限のある機器のドメインでは組み込みプラットフォーム用のポスト量子暗号アルゴリズムの実装とそれを統合しているTLSスタックがないために実験があまり行われてこなかったかもしれません。しかし、今からは変わります。TLS1.3を使ってポスト量子暗号のアルゴリズムを実験し、組み込み機器プロジェクトでの影響を検討することができます。

今後数週間で、STM32 CubeIDEプロジェクトでのサンプルプログラムと、STM32デバイスでTLS1.3を介したポスト量子暗号の確立を開始する方法についてのウェビナーをご報告できる予定です。

現在、KYBER_LEVEL1のみがサポートされています。他のアルゴリズムやバリアントが必要ですか?ハイブリッドが欲しいですか?サンプルプロジェクトとウェビナーがいつリリースされるか知りたいですか?ぜひメールでご連絡ください。

ポスト量子暗号の過去の記事はこちら:

wolfSSL 5.1.1のポスト量子化暗号:FALCON

ご質問は、info@wolfssl.jpまでお問い合わせください。テクニカルサポートについは、support@wolfssl.comにお問い合わせください。

原文:https://www.wolfssl.com/post-quantum-tls-1-3-key-establishment-comes-stm32-cortex-m4/

セキュア ブートとグリッチ攻撃

一般に、「グリッチ」とは、システムで発生する可能性のある一時的な障害のことであり、システムを短時間ですが正常に機能できなくする可能性があります。 適切に動作しているソフトウェアに一つのグリッチを発生させるだけで、それが結果としてシステムが実行を継続できなくなる可能性のあるほど壊滅的な結果も含めて 幾つもの結果をもたらすことが可能です。

グリッチ攻撃は複雑で実行に費用がかかりますが、セキュアブートメカニズムにとって実際の問題になる可能性があり、多くの場合、防止または軽減するのは非常に困難です。 攻撃者は、システムに含まれる実行またはデータを制御するために、単一のグリッチの予測可能な結果を利用することを目的としています。 攻撃者の使うグリッチとしては、特定のマイクロコントローラーまたはCPUのよく知られた弱点を突いてくることが多く、さまざまな手法を使ってきます。 最も一般的なグリッチ注入攻撃は、特定の時間にチップに供給される電圧を変化させること、またはクロック信号のプロファイルを変更して命令の実行のタイミングを乱すことなどで行われます。 より高度な攻撃は、強力な電磁干渉でデバイスを照射することに依存する可能性があります。

セキュアブートに限って言えば、攻撃者の目標は、ファームウェアの信頼性、整合性、またはバージョン管理の検証を実行するコードのような重要なコード領域でセキュリティチェックを回避することです。 これらの攻撃は、最終的にセキュリティチェックを無効にし、許可されていないファームウェアイメージをアップロードすることでシステムを制御する可能性があります。 正確な同期と数回の試行が必要ですが、これらの攻撃は、最終的には必要な時間にハードウェアに障害を注入し、必要な検証実行をスキップさせることに成功します。

当社のセキュアブートローダーであるwolfBootは、RFC9019に準拠し、ファームウェアとその更新の整合性と信頼性の安全な公開鍵ベースの検証を提供します。 小型のマイクロコントローラーからx86_64システムまで、いくつかの異なるアーキテクチャーで動作します。 wolfBootはOSに依存せず、wolfCryptセキュリティエンジンに実装されたFIPS140-2認定アルゴリズムのおかげでクラス最高のセキュリティを提供します。

wolfBootは既に多くのユニークな機能を備えています。 グリッチ攻撃に対する緩和策を実装した最初のオープンソースのセキュアブートローダーでもあります。 私たちの開発チームは最近、コンパイル時にアクティブ化できるオプション機能を追加して、コード内の重要な変数と決定ポイントのセキュリティを強化しています。 これには、攻撃者が単一の特定の命令をスキップする可能性を含む観点から、wolfBootのコードフローを評価する必要がありました。 Cで記述された冗長なコードは通常コンパイラーによって破棄されるため、これらの緩和策の導入には注意が必要です。 このため、対策はアセンブリでプログラムする必要があります。これにより、このコードアーキテクチャが固有になります。

wolfBootの最新版1.11には、これらの対策の最初のバージョンを含んでいます。オープンソース版をダウンロードして、GPLプロジェクトの評価目的で使用いただけます。

グリッチとサイドチャネル攻撃の軽減をオンにしてwolfBootをコンパイルするには、構成オプションにARMORED = 1を追加するだけで十分です(つまり、makeを呼び出すときにコマンドラインを使用するか、.configファイルを使用します)。 ARMOREDオプションは、現在ARMCortex-Mアーキテクチャでサポートしています。 他のアーキテクチャのサポートは、将来追加予定です。

wolfBootに実装して欲しい機能は何かありますか? グリッチに強いセキュアブートメカニズムの恩恵を受ける可能性のある、まだサポートされていないアーキテクチャまたはプラットフォームはありせんか? 私達に教えてください!

ご質問は、info@wolfssl.jpまでお問い合わせください。テクニカルサポートについてはsupport@wolfssl.comにお問い合わせください。

原文:https://www.wolfssl.com/secure-boot-glitching-attacks/

ウェビナー「UDPをセキュアにするDTLSの最新バージョン1.3とは」

wolfSSLが主催するウェビナー開催のご案内です。

UDPをセキュアにするDTLSの最新バージョン1.3とは

2022年6月29日(水) 14:00~14:45

小さなパケットを大量に、データの転送遅延少なく送ることが重要なアプリケーションで使われているUDP(User Datagram Protocol)。DTLSはUDPのような安定性が保証されない通信のセキュリティを実現するトランスポート層のプロトコルです。

本ウェビナーでは、今年4月にインターネット標準になった最新バージョンDTLS1.3について説明します。この新バージョンはTLS1.3の成果を大幅に取り入れるなど、従来のDTLSの課題が大幅に改善されています。

DTLS1.2からの変更点と新バージョンのメリットをご紹介するとともに、UDPを使ったコードをどのように変更すればDTLS1.3を使えるのかについても説明いたします。

スピーカー:
松尾 卓幸
wolfSSL Japan合同会社 ソフトウェアエンジニア

本ウェビナーは日本語で開催します。
約45分の予定です。

参加希望の方はこちらからご登録ください。ご登録後、ウェビナー参加に関する確認メールをお送りします。

ぜひ皆様のご参加をお待ちしています。
ご質問がおありでしたら、info@wolfssl.jp までご連絡ください。
そのほかのウェビナー開催予定、オンデマンド版の公開についてはこちらをご覧ください。

wolfSSL v5.3.0をリリースしました

wolfSSL 5.3.0をリリースし、当サイトのダウンロードページで公開しました。

このリリースにはいくつか新機能と修正を含んでいます。今回、脆弱性対応に該当する修正はありません。主なアップデートは次の通りです。

  • SPパフォーマンスに対するさまざまな強化と修正
    wolfSSLのSP (single precision)ライブラリは、公開鍵アルゴリズムの最高のパフォーマンスを確保するための最高の実装を実現します。
  •  OpenSSL互換性レイヤーの機能強化と新追加
    wolfSSL OpenSSL互換性レイヤーは、OpenSSL用に設計されたアプリケーションをwolfSSLを使用するよう、切り替える事を可能にします。
  • 組み込みポスト量子化アルゴリズムのSTM32デバイスへ移植とベンチマークの実施
  • Linuxでi.MX8 CAAMをサポート
    CAAM(Cryptographic Accelerator and Assurance Module)は、多くのNXP i.MXデバイスに搭載されているハードウェアです。ECCやAESなどの暗号化アルゴリズムの高速化を可能にします
  •  Renesas TSIP、Stunnel、Bindほか、サポートバージョンをアップデート
  • Wycheproofの使用を含む、テストの追加と改善
    Project Wycheproofは、Googleセキュリティチームによって開発、保守されているテストスイートです。そのユニットテストでは、Javaセキュリティパッケージ(java.securityおよびjavax.crypto)を使用して、wolfJCEを含む複数のJCA/JCEプロバイダーの実装をテストできるようにします。

変更点のすべてが記載されたチェンジログはwolfSSL ChangeLog で参照できます。

ご質問は、info@wolfssl.jpまでお問い合わせください。テクニカルサポートについは、support@wolfssl.comにお問い合わせください。

原文: https://www.wolfssl.com/wolfssl-5-3-0-release/

wolfCryptがFIPS140-3承認待ちリスト入り!

多くの作業を経て、wolfCrypt v5をCMVPに提出しましたが、ついにFIPS140-3承認のモジュールインプロセスリストに含まれるようになったことお知らせします。

これまでの140-2に比べて、テストには次のようなアルゴリズムを追加してきました:AES-OFBモード、TLSv1.2とTLSv1.3のKDF、拡張マスターシークレットとSSH KDF。RSA4096ビット鍵を使うテストやECDSAとSHA-3を組み合わせたテストも追加しました。

FIPS環境でTLSv1.3を必要とされているお客様も安心してください、対応しています。wolfCrypt FIPS版はwolfBoot、wolfEngineやwolfSSHなどのwolfSSL社提供の他の製品と組み合わせて動作します。

FIPS140-3について

FIPS 140-3は、FIPS 140-2を段階的に進化させたもので、ISO 19790:2012およびISO 24759:2017仕様で標準化されています。 歴史的に、ISO19790はFIPS140-2に基づいていましたが、それ以来進歩を続けています。 FIPS 140-3は、セキュリティ要件としてはISO19790を参照するようになります。 FIPS 140-3を別個の規格として維持することで、NISTは、必要に応じてISO規格に含まれるものに加えて追加の要件を義務付けることができます。

FIPS 140-3の変更の中には、条件付きアルゴリズムのセルフテストがあります。この場合、アルゴリズムのセルフテストは、使用された場合にのみ実行されます。 すべてのアルゴリズムが必要になるまでテストされないため、操作前のセルフテストが高速になりました。 公開鍵の自己テストには時間がかかる可能性が高い為、特に起動時間の短縮に役立ちます。 セルフテストは、アプリケーションの起動の際の都合が良いタイミングで実行できます。 また、DRBGエントロピーソースについてのテストが追加されています。

ご質問は、info@wolfssl.jpまでお問い合わせください。テクニカルサポートについては、support@wolfssl.comにお問い合わせください。

原文:https://www.wolfssl.com/wolfcrypt-submitted-fips-140-3/

STM32+wolfBoot ビデオシリーズ

STマイクロエレクトロニクス社とのパートナーコラボレーションについてお話ししたいと思います。このコラボレーションは、セキュアブートローダーwolfBootと32ビットマイクロコントローラー・ファミリーSTM32に関する4部構成のビデオシリーズになります。

ビデオ1:STM32用のwolfBoot、パート1:概要https://www.youtube.com/watch?v=9R4Gl0qrzZ0

  • wolfSSL製品とSTM32デバイスのwolfBootサポートの概要。 wolfBoot製品は、セキュアブート、メジャードブート、暗号化されたパーティション、およびルートオブトラスト(ブートローダー、TPM、またはセキュアエレメント内)などの機能を備えています。 STM32マイクロコントローラーのSBSFU、TFM、およびwolfBootオプションの比較。 wolfBootの設計とパーティションの定義方法の実装の詳細。

ビデオ2:STM32用のwolfBoot、パート2:はじめにhttps://www.youtube.com/watch?v=e5VwYA5kknA

  • wolfBootをダウンロードする方法、ファイルとドキュメントの場所。 wolfBoot製品の機能には、セキュアブート、測定ブート、暗号化されたパーティション、および信頼のルート(ブートローダー、TPM、またはセキュアエレメント内)などがあります。

ビデオ3:STM32用のwolfBoot、パート3:アウトオブボックスエクスペリエンスhttps://youtu.be/VrgooHCoUNk

  • NUCLEO-G071RBボードでwolfBootを構成、ビルド、実行、およびデバッグする方法。

ビデオ4:新しいターゲットのwolfBoot HALサポートを拡張する方法。

このビデオシリーズの次のパートの公開についてはお楽しみに!

ご質問は、info@wolfssl.jpまでお問い合わせください。テクニカルサポートについては、support@wolfssl.comにお問い合わせください。

原文:https://www.wolfssl.com/st-wolfboot-video-series/

最終段階に入ったDTLS1.3

このブログではDTLSの最近の動きについて紹介します。DTLS1.3はIETFでの標準化作業が進み現在Draft43が公開前の最終段階に入っています。以下ではDTLSについて少し説明しDTLS1.3について掘り下げていきます。

DTLSとは

DTLS(Datagram Transport Layer Security)プロトコルはUDPに代表されるパケットロス、順序性などが保証されていないというデータグラムを使ったトランスポート層のためのセキュリティプロトコルです。DTLS1.1以降では先行するTLSと歩調を合わせて強化、改善が行われており、今回もTLS1.3の成果を取り込んだ改訂となっており、公開直前のステートにあります。

UDPをはじめとするデータグラムはその特徴である軽量、高速性を生かそうとする機器あるいはアプリケーションで使用されてきました。例を挙げると、パケットの遅延が問題となるストリーミング配信、オンラインゲーム、テレフォニーなど、また、バンド幅の狭い無線通信チャネルを使う機器、センサーデータをクラウドに送信するリソースクリティカルなIoT機器などが挙げられます。DTLSの目標はUDPの持つ高いスループットやリアルタイム性の特徴をできるだけ維持しながらそうしたアプリケーションのために通信の安全性を実現することです。

しかし、RFC6347で規定されている現状のDTLS1.2ではセキュリティを実現するハンドシェーク部分のオーバーヘッドが大きくデータグラム層の特徴を十分生かし切れていません。また、セキュリティの観点からもDTLS1.2では基本的にTLS1.2のハンドシェーク、暗号スイートなどのスキームを引き継いでいます。近年のセキュリティを取り巻く事情からもTLS1.3と同様の抜本的な見直しが求められていました。

DTLS1.3の強化、改善

DTLS1.3ではTLS1.3での知見に基づいた改善を多く取り入れています。さらにDTLS独自となる改善、強化も盛り込んでいます。

TLS1.3のハンドシェークスキームを導入したことにより、セキュリティの面では以下のような点が改善強化されました。

  • 古い脆弱な暗号アルゴリズムを廃止し、AEADのアルゴリズムだけに整理
  • 静的RSAを廃止、(EC)DHEのみとし、完全前方秘匿性を確保
  • ハンドシェークの途中からメッセージの暗号化を開始、秘匿性を改善

また、性能、スループットの面からは次のような点を挙げることができます。

  • フルハンドシェークの往復回数の削減
  • セッション再開の導入により、再接続時のレイテンシー削減
  • 0-RTT (Early Data)の導入

さらに、次の様なDTLS独自の強化も行われています。

  • 以前から別途ドラフトされていたConnection ID(CID) が仕様に取り込まれました。CIDにより無線接続による移動体などが異なるドメイン間を移動しても同一の接続と見なすことができます。
  • 可変長のDTLSレコードヘッダーにより、パケットサイズを削減

DTLS1.3仕様は以下で参照できます。

The Datagram Transport Layer Security (DTLS) Protocol Version 1.3

wolfSSLでのDTLS

現在wolfSSLにはDTLS1.2は実装されており多くの組み込み機器でご利用いただいています。

wolfSSLでDTLS1.3のサポートに関して発表ができる状況になりましたらまたこのブログでお話させていただきます。

ご質問は、info@wolfssl.jpまでお問い合わせください。テクニカルサポートについては、support@wolfssl.comにお問い合わせください。

Posts navigation

1 2 3 4 44 45 46