うるふブログ

wolfSSL 4.1.0をリリースしました

wolfSSL組み込みTLSライブラリのバージョン4.1.0をリリースいたしました。wolfSSL 4.1.0は多くの機能追加、修正、および全般的な改善を含んでいます。

今回のリリースで追加した主な機能と修正は次の通りです。

・TLS 1.3に対する修正とアップデート:

  • TLS 1.3用にさらなる正常性チェックと警告メッセージを追加
  • バージョンネゴシエーションが発生したが一致したバージョンがない場合は、TLSドラフトのメジャーバージョンを無視し警告を送信
  • TLS 1.3 PSKで1つのIDしかなく、それがキャッシュされる場合のためのWOLFSSL_PSK_ONE_IDマクロを追加
  • tls13.cの時間要件を簡単にするためにXTIME_MSマクロを追加
  • TLS 1.3 Client Helloパケットの解析および作成に関連するコードの改善および整理
  • ClientHelloメッセージを解釈する前にTLS 1.3バージョンの再ネゴシエーションを処理

・PCKS7に対する修正および追加:

  • PKCS7バンドル署名を検証するときの戻り値のチェックの修正(wc_PKCS7_VerifySignedData関数を使用するアプリケーションの開発ユーザーは更新する必要があります)
  • PKCS7ファームウェアバンドル用にwc_PKCS7_GetSignerSID関数を追加
  • CEKの展開と復号化のためのPKCS7コールバック関数を追加

・ARMアーキテクチャでの性能向上:

  • SIMD NEON拡張を使用したARMアーキテクチャーでのPoly1305およびSHA-512/384の最適化
  • 性能向上のためのARMアーキテクチャでのChaCha20、Curve25519、およびEd 25519の最適化

・スニファーアップデートの追加:

  • 非暗号化、静的ECDH鍵交換、および新しいSSLWatchCbコールバックをサポート
  • 暗号スイートTLS_RSA_WITH_NULL_MD5を追加(デフォルトではオフ)
  • スニファー統計情報をWOLFSSL_SNIFFER_STATSマクロでプリントアウト

・OpenSSL Extraに対する修正、更新、および新機能

・すべての曲線タイプを有効にするためのビルドフラグ–enable-ecccustcurves = allを追加

・Java Secure Sockets Extension(JSSE)をサポート

・WOLFSSL_EXTRA_ALERTSマクロと共に送信されるTLSアラートメッセージの拡張

・nRF52840でCryptoCell-310をサポート

SiFive社HiFive E31 RISC-Vコアファミリへのポート

・Telit IoT AppZone SDKへのポート

・32ビットBlake2をサポートするためのビルドフラグ–enable-blake2sを追加

・RFC 8032に従って、Ed25519ctxおよびEd25519ph署名/検証アルゴリズムをサポート

 

wolfSSL 4.1.0リリースに含まれる機能とアップデートに関する情報は、今後もご紹介していきます。上記のほか、次の修正と改善などがwolfSSL 4.1.0に含まれます。

 

・単一精度整数ライブラリ(SPmath)とRSA暗号のみでビルドする場合のコンパイル時間の修正

・報告されたスタック変数の明示的な初期化を含むCoverity静的解析レポートの修正、およびMartin氏にご協力いただいた追加のCoverity修正

・スキャンビルド警告の修正(例:ecc.cでnullの間接参照)

・wolfSSL_clear関数の呼び出しで送信確認値のリセット

・–cppオプションを使用してビルドした場合のsp_ModExp_2048のexternを修正

・–enable-sp=cortexmに関するタイプミス修正

・Visual Studioでビルドするときにtfm.cに#pragma warning disable 4127を追加

・ECC署名の最大値計算の改善

・wolfSSL_readが失敗した後にユーザーアプリケーションがwolfSSL_writeを実行できないようTLS書き込みエラーケースの処理の改善

・Windowsでのディレクトリ読み取り機能を修正(wc_ReadDirFirstおよびwc_ReadDirNext)

・wolfSSL_X509_NAME_get_entryの呼び出しでドメインコンポーネントバッファにアクセスする前に、インデックスを正常性チェック

・バージョンエラー時のクライアントサイドから致命的アラート送信

・PKコールバックがあり、秘密鍵がロードされていない静的RSA暗号スイートに対する修正

・wc_DsaKeyToDer関数を使用したエラーの場合の潜在的なメモリリーク修正。Chris H氏の問題報告に感謝します。

・STRING_USERマクロを調整して標準lib <string.h>または<stdio.h>のインクルードを削除

・関数wc_PBKDF2で誤った割り当てチェックし、割り当て失敗時に潜在的なリークを処理するための修正。このケースは、mallocへの呼び出しが関数wc_PBKDF2で失敗したときにのみ影響します。レポートを提供してくれたRobert Altnoeder(Linbit)氏に感謝します。

・ASN.1証明書を解析するときの長さチェックの改善

・TLS拡張機能とエラーコードによる戻り値のチェックの改善

・DRBGをインスタンス化して再シードするときにgenerate関数への余分な呼び出しを削除

・トランスポート層から入力を読み取るときのエラー戻りコードの処理の改善

・SNI拡張構文解析およびALPN構文解析によるエラー検査の効率の向上

 

このwolfSSLのリリースには2つのセキュリティ脆弱性に対する修正も含まれています。追加や修正の詳細なリストはwolfSSL READMEに記載しています。

 

最新バージョンのwolfSSLをダウンロードして表示するには、wolfSSL GitHubリポジトリをhttps://github.com/wolfssl/wolfssl.gitからクローンすることができます。

最新の安定版リリースは、wolfSSLダウンロードページからダウンロードいただけます:https://www.wolfssl.jp/download/

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

 

wolfBoot v1.2をリリースしました!

wolfBootセキュアブートローダーのバージョン1.2が利用可能になりました。当サイトからダウンロード可能です。このリリースは、ハードウェアサポートの追加など、さまざまな改善と更新を含んでいます。

wolfBootバージョン1.2リリースノート:

  • 複数アーキテクチャをサポート
  • 移植性向上を目的に鍵生成および署名ツールをPythonで書き直し
  • フラッシュ書き込み機能をRAMに移すコンパイル時オプションを追加
  • ブートローダーがそれ自身を更新することも可能に
  • macOSおよびWSLでのコンパイルの問題を修正
  •  ハードウェアサポート
    • RV32 RISC-Vアーキテクチャを追加
    • STM32F76x / 77xにハードウェア支援のデュアルバンクサポートを追加
    • 新しいHAL:RV32 FE310(SiFive HiFive-1)
    • 新しいHAL:STM32L0
    • 新しいHAL:STM32G0
    • 新しいHAL:STM32F7
    • 新しいHAL:STM32WB
最新版のダウンロードはこちらにございます:  https://www.wolfssl.jp/download/

wolfBoot製品ページ: https://www.wolfssl.jp/products/wolfboot/

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

wolfTPM 1.6をリリースしました

wolfTPMバージョン1.6をリリースしました。当サイトからダウンロード可能です。

このリリースには、互換性の改善、チップ検出、初期化オプション、スモールスタックサポートが含まれています。またPCR(プラットフォーム構成レジスタ) Extend用の新しいラッパーAPIを追加し、既存の鍵でのHMAC使用をサポートしました。

 

リリースノートの内容:

・参照カウントに関するwolfCrypt init / cleanupの問題を修正(PR#75)
・wolfTPM2_Testを呼び出した後、既存のTPMコンテキストを復元するよう修正(PR#74)
・TPMモジュールとECDHEでサポートされていないECCの処理を解決するための修正(PR#69)
・認証がクリアされるようwolfTPM2_SetCommandを修正(PR#69)
・スタック使用量を削減するための–enable-smallstackビルドオプションを追加(PR#73)
・HMAC鍵のロードしたままをサポート(PR#72)
・APIユニットテストフレームワークを追加(PR#71)
・起動中のデバイスにアクセスする新しいラッパーAPI wolfTPM2_OpenExistingを追加(PR#71)
・wolfTPM2_ExtendPCRラッパーを追加(PR#70)
・FIPSモードの暗号化コールバックフラグとUse Symmetricオプションを使用(PR#69)
・タイムアウトチェックのデバッグ用にWOLFTPM_DEBUG_TIMEOUTマクロを追加(PR#69)
・省電力を無効にするST33 TPM2_SetModeコマンドをサポート(PR#69)
・チップ検出、互換性、起動パフォーマンスの改善(PR#67)
・XPRINTFをサポート
・printfタイプの警告を修正
・TPMハードウェアタイプのビルドマクロ検出をuser_settings.hがインクルードされた後に移動
・使用が必要な場合にのみMutexとRNGを初期化するよう最適化
・サンプルコードのprintf用に、stdio.hを補充
・新しいAPIのTPM2_SetActiveCtx、TPM2_ChipStartup、TPM2_SetHalIoCb、およびTPM2_Init_exを追加
・定義済みBOOLタイプを示す方法をサポート
・C ++をサポート
・TPMのテストおよびオプションで機能一覧(capabilities)を返すための新しいAPI wolfTPM2_Testを追加(PR#66)
・WOLFTPM_USER_SETTINGSを使用し生成されたwolftpm / options.h(またはカスタマイズされたもの)をincludeする方法を追加(PR#63)

 

最新版のダウンロードはこちらにございます:  https://www.wolfssl.jp/download/

wolfTPM製品ページ: https://www.wolfssl.jp/products/wolftpm/

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

wolfMQTT 1.3.0をリリースしました

wolfMQTT 1.3.0をリリースしました。こちらからダウンロードいただけます。

wolfMQTT 1.3.0には以下の変更が含まれます。

*ファイル名オプション `-f`を使うように` fwpush`の例を修正(PR#117)
* –enable-mtまたはWOLFMQTT_MULTITHREADを使用したマルチスレッドサポートを追加(PR#115)
* 2回エンコードされた `MQTT_DATA_TYPE_BINARY`データ長の修正(PR#112)
* Subscribeおよびunsubscribeのためのローカル構造をクリアするように修正(PR#112)
*トピック名IDに間違ったデータタイプを使っている `SN_Encode_Unsubscribe`を修正 (PR#110)
* VSプロジェクトファイルに `WOLFSSL_USER_SETTINGS`を追加(PR#109)
* `mqttnet.c`ソケットのサンプルコードでRTCSを使用するための修正(PR#108)
* MQTT-SNデコードパブリッシュ解析とQoS2応答を修正(PR#107)
* MqttSocket_TlsSocketコールバックをパブリックに変更(PR#104)
* 切断ネットワークエラーコールバックの例を改善(PR#102)
* ソケットコールバックの例にMQTTコンテキスト情報を追加(PR#101)
* Subscribe状態を `MQTT_MSG_BEGIN`と初期化(PR#99)
* Harmonyの可能な循環インクルードの問題を修正(PR#98)

 

最新版のダウンロードはこちらにございます:  https://www.wolfssl.jp/download/

wolfMQTT製品ページ: https://www.wolfssl.jp/products/wolfmqtt/

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

脆弱性の開示:ECDSAの署名操作とノンスサイズの漏洩

影響を受けるバージョンでこの脆弱性を緩和する設定:

  • -enable-sp
  • -enable-sp-asm
  • -enable-fpecc

影響を受けるユーザー:

USE_FAST_MATH設定(–enable-fastmath)でECDSA署名操作に長期間同じECC ECDSA秘密鍵を使用するユーザーは影響を受けます。

Fastmath使用時にデフォルトであるタイミング一定化を無効にしたユーザー(–disable-harden)または通常の整数ライブラリ(–disable-fastmath)のユーザは、この脆弱性を含むタイミング攻撃を受ける可能性があります。

概要:

ECDSA署名操作を実行すると、潜在的にノンスサイズが漏洩する可能性があります。この漏洩を悪用することは難しいと考えられますが、リリース4.1.0より前のバージョンのwolfSSLでは潜在的にECC秘密鍵を復元するために使用される可能性があります。

推奨:

長期間同じECC ECDSA秘密鍵を使いfastmathライブラリを使用してECDSA署名操作を実行ユーザーは、次のことをお勧めします。

  1. wolfSSLバージョン4.1.0にアップデート
  2. 長期のECC ECDSA秘密鍵を交換
  3. タイミング一定化を無効にしない

調査:

この脆弱性の調査結果はまだ一般には公開されていません。詳細を含む一般公開は現在2019年9月2日に予定されています。CVE-2019-13628が一般公開用に確保されています。

追加の詳細:

調査結果の一般公開時にさらなる情報を掲載します。この問題を修正するパッチはこちらにあります→ https://github.com/wolfSSL/wolfssl/pull/2335/files

 

ご質問は support@wolfssl.comまで日本語でお寄せください。

 

関連ページ:
https://www.wolfssl.com/everything-wanted-know-wolfssl-support-handles-vulnerability-reports-afraid-ask/
https://www.wolfssl.com/docs/security-vulnerabilities/
https://github.com/wolfSSL/wolfssl/pull/2353

 

原文: https://www.wolfssl.com/vulnerability-disclosure-ecdsa-signing-operations-nonce-size-leaks/

第21回 組込みシステム技術に関するサマーワークショップ(SWEST21)に参加します

wolfSSLは、2019年9月5日(木)〜6日(金)に下呂温泉で開催されるSWEST21に参加いたします。SWEST21は21回目となる組込みシステム技術に関するサマーワークショップで、wolfSSLは今年もブース出展を予定しています。

今回のメインテーマは「 論!ラン!!push!!! 」

会場でお会いできることをとても楽しみにしております。

SWEST21公式ページ:
https://swest.toppers.jp/

連載:wolfの仲間たち 第六回:最近のwolfMQTT

wolfMQTTはその名の通り、MQTTプロトコルを実現するためのクライアント・ライブラリです。MQTT自身は、IoT向けのパブリッシュ&サブスクライブ型の軽量プロトコルとして比較的広く知られてきているので、ご存知のかたも多いことと思います。今回は、wolfMQTTの最近の強化ポイントを中心にご紹介しましょう。

 

MQTT(Message Queuing Telemetry Transport)は主にIoTのような多数のデバイスが接続されるパブリッシュ・サブスクライブモデルをベースとしたネットワークのための軽量のメッセージプロトコルで、2013年にはOASISにより標準化され、Version 3.1は2016年にはISO/IECでも標準として承認されています。

OASISではその後、大規模なIoTシステムへのスケールアウトにも対応できるようにプロトコルを拡張したVersion 5が承認されていて、最近ではそれに対応したパブリックなブローカーも利用できるようになりつつあります。

Version 5での強化点を少し紹介しましょう。

  • エラーレポートの強化:QoS 1や2においてすべてのサブスクライバーへの配布が完了まで確認できるようにエラーレポートが強化されました。
  • 共有サブスクライブ:莫大な数のデバイスがサブスクライブするような場合に、グループ内のデバイス間でサブスクライブを共有して負荷バランスが可能になるメカニズムです。
  • ユーザ・プロパティ:アプリケーション固有のプロパティを定義して、パブリッシュ、接続、または応答時などに送ることができるようになり、より高度なカスタマイズが可能になりました。

MQTTは軽量のプロトコルを目指していますが、基本的にはTCP接続を前提にしています。このため、HTTPなどと比較すれば小型軽量といえますが、ある程度以上には軽量化されない面もあります。MQTT-SN (Sensor Network) では、TCP接続によらないUDPや無線ネットワークなどで接続されたセンサーデバイスなどのために、より軽量プロトコルを実現できるような配慮がされています。例えば、トピックIDを2文字または整数値で事前定義できるようにしたり、ブローカー検索をゲートウェイやクライアント経由でできるようにするなどが可能となっています。

wolfMQTTは、現在広く利用されているVersion 3.1.1に完全準拠の機能を提供するとともに、必要に応じてこうした Version 5 への対応、またMQTT-SNのための機能も利用できるIoTクライアント向け組み込みライブラリです。

wolfMQTTの詳細についてはこちらをご覧ください。

連載:wolfの仲間たち
第一回:全員集合
第二回:安全なファームウェア更新を支えるwolfBoot
第三回:安全なリモートコンソールwolfSSH
第四回:ハードウェアレベルのセキュリティを支えるwolfTPMとセキュアエレメント
第五回:最強のペア誕生 – cURLとwolfSSL

第4回 IoTセキュリティフォーラム出展とセミナーのおしらせ

wolfSSLは、2019/7/30(火)と31(水)の2日間、御茶ノ水で開催される「第4回 IoTセキュリティフォーラム」に出展いたします。安全なファームウェア更新に関するセミナーも担当いたします。

第4回 IoTセキュリティフォーラム/IoT Security Forum 2019
~課題分析の深化と信頼できる技術の新展開~

会期:

2019年7月30日(火)
講演会 9:20~17:45(受付開始:8:50)/展示会 10:20~17:10
2019年7月31日(水)
講演会 9:20~18:10(受付開始:8:50)/展示会 10:20~16:50

会場:

御茶ノ水ソラシティカンファレンスセンター(東京・御茶ノ水)
東京都千代田区 神田駿河台4-6 御茶ノ水ソラシティ 2F

主催:横浜国立大学先端科学高等研究院

公式サイト:https://b-event.impress.co.jp/event/iot-security201907/

 

wolfSSLブース展示内容

wolfSSLは軽量、高速、優れた移植性持つ組み込みシステム、IoTに適した
SSL/TLSライブラリです。1,000社を超えるお客様の幅広い分野の製品で採用
されています。世界に先駆けTLS 1.3に対応したwolfSSLライブラリ、安全な
ファームウェア更新を実現する新製品 wolfBoot、ハードウェアセキュリティ
との連携を可能にするwolfTPMほか、wolfMQTT、wolfCrypt FIPS を紹介します。

 

セミナー(公式サイトからのお申し込み制です):
7/30(火) 15:00~15:20
進化を継続できるIoTデバイスのための「安全なファームウェア更新」
~ネットワーク・セキュリティからライフサイクル・セキュリティの時代へ~

担当:wolfSSL Japan合同会社 技術統括 古城 隆

ぜひwolfSSL展示ブースにもお気軽にお立ち寄りください。
さらに詳しい情報は弊社問い合わせ窓口info@wolfssl.jpまでお問い合わせください。

wolfTips: テスト用デジタル証明書・鍵をつかいこなす

テスト用デジタル証明書・鍵、いろいろと取り揃えております。

wolfSSL では、テスト用にさまざまな証明書・鍵を揃えています。以前、少しだけ紹介しました。wolfTips : テスト用鍵、証明書(ファイルシステム有、無しの場合)

 

今回はさらにテスト用証明書・鍵の使い方をご紹介したいと思います。

 

サンプルサーバ、クライアントはデフォルトでは下記のものを参照します。

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

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

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

 

楕円曲線暗号をサーバ認証に使用するには、下記の様に証明書を指定します。

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

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

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

 

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

 

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

 

暗号アルゴリズム ed25519 をサーバ認証に使用するには、certs/ed25519ファルダ内の証明書を下記のように使用します。

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

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

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

 

$ ./examples/server/server -c ./certs/ed25519/server-ed25519.pem \

-k ./certs/ed25519/server-ed25519-key.pem

 

$ ./examples/client/client -A ./certs/ed25519/root-ed25519.pem -C

 

中間認証局による証明書を使用する場合、certs/intermediateフォルダ内の証明書を利用します。例えば、中間認証局によって署名されたサーバ証明書を使用する場合、対向テストには下記の証明書を利用します。

 

サーバ側証明書(中間認証局によって署名):./certs/intermediate/server-int-cert.pem

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

$./examples/server/server -v 3 -c ./certs/intermediate/server-int-cert.pem -V -d

 

$ ./examples/client/client -v 3 -l ECDHE-RSA-AES128-GCM-SHA256 \

-A ./certs/intermediate/ca-int-cert.pem -C

 

他にも下記の様にcerts/フォルダ内にはさまざまな証明書・鍵のファイルが存在します。基本的には、server サンプルプログラムの“-c” オプションでサーバ証明書、”-k”オプションでサーバの秘密鍵を指定します。また、client サンプルプログラムの”-A” でルート証明書を指定します。

./certs/1024 1024ビットの証明書・鍵ファイル
./certs/external パブリック認証局のルート証明書
ca/server/client-ecc384-xxx NIST 曲線 384 を使用する証明書・鍵ファイル
server/client-keyEnc フレーズ付きで暗号化された鍵ファイル

 

これらのファイルはテスト用に使用いただけます。使用に際し、ご質問等ありましたら、お気軽にsupport@wolfssl.comまでお知らせください。

 

wolfSSLのNXP版 AUTOSAR対応

wolfSSLでは車載機器で利用したいというご要望が増えていることを受け、NXP版 AUTOSAR へのポーティングを進めています。
NXP社の車載グレードECU S32K (ARM Cortex-M4F / M0 +コア)と車載イーサネットで動作するwolfCrypt、wolfSSLの提供準備が間もなく整う予定です。

ご興味のある方、詳細をご希望の方は info@wolfssl.jpまでご連絡ください。

Posts navigation

1 2 3 4 32 33 34