Japan IT Week【秋】内、組込みシステム開発技術展出展のご案内

wolfSSL Japanは、Japan IT Week【秋】内、組込みシステム開発技術展に出展いたします。

日時: 2019年10月23日(水)~25日(金)10:00~18:00(最終日のみ17:00終了)
会場: 幕張メッセ
wolfSSLブース番号: 5-22
展示会ウェブサイト: https://www.japan-it-autumn.jp/

ご紹介製品:

wolfSSL – 世界で初めてTLS 1.3に対応した、IoTデバイス向け軽量SSL/TLS商用版セキュリティライブラリ
wolfBoot – 安全なファームウェアアップデートを実現するセキュアブートローダー
wolfTPM – ハードウェアセキュリティ連携を可能にするポータブルTPM2.0ライブラリ
wolfMQTT – MQTT v5.0に準拠したMQTTクライアント
wolfSSH – SFTPSCPをサポートするSSHライブラリ
wolfCryptとFIPSモジュール – メモリ制限の厳しい環境に適した暗号ライブラリとFIPS140-2認証を取得したFIPSモジュール

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

連載:wolfの仲間たち 第七回:UDPを安全に

IoTの世界で軽量かつ高いスループットを実現するインターネットの標準プロトコルとして、UDP(User Datagram Protocol)が現在でも広く利用されています。UDPは1回に送信できるパケットサイズに制限があったり、パケットの喪失や送受信の順序関係が保証されないなどの不安定さがある反面、TCPのような「接続」を必要とせず、単純にパケットごとに宛先を指定して送受信することができるので、アプリケーションからの利用方法が単純で利便性の高いプロトコルとして重宝されてきました。ただし、UDPはセキュリティに関して配慮がされていないことが最近の課題となっています。

このUDPに対してTLSとほぼ同様の安全な通信を実現するのがDTLS(Datagram Transport Layer Security) です。DTLSでは、通信の秘匿性はもちろん、通信の相手方の認証やメッセージの改ざんに関してもTLSとほぼ同等の安全性を実現します。このため、TLSと同様のハンドシェークを安全、確実に行うためにやや重たい作りとなってしまう欠点はありますが、UDPと同様にコネクションをほぼ意識せずに利用することができる利点があります。

wolfSSLではオプション製品として、最新のDTLS1.2に準拠した機能を提供しています。wolfSSLのDTLSでは単なるパケットの安全な送受信だけではなく、同時に複数の相手方との通信を実現するパケットのマルチキャスト機能、セッションのエクスポート、インポート機能といった周辺機能を含めて充実した機能を提供しています。

wolfSSLのDTLS機能はオープンソース版で簡単に評価することができます(商用版の場合、オプションライセンスが必要となりますのでご了承ください)。ビルドの際に”–enable-dtls” もしくは”#define WOLFSSL_DTLS” を指定してDTLS機能を有効化します。

wolfSSLのDTLSサポートについてさらに詳しい情報は info@wolfssl.jp 宛お問い合わせください。

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

wolfTips: 証明書チェーンを理解する

階層になった証明書を wolfSSL で使用する

階層になった証明書を wolfSSL で使用する場合、その内部処理を理解しておくと使いやすさが抜群に向上します。今回は、証明書チェーンを検証する際の例を紹介し、wolfSSLの内部処理と共に見ていきたいと思います。

まず下記のように階層になった証明書があるとします。

 

これらの証明書のうち、中間サーバ公開鍵証明書をもつサーバを認証するには、認証用APIを用いて次のようにクライアント・サーバ間で引数を設定します。

// サーバサイド
wolfSSL_CTX_use_certificate_file( “中間サーバ公開鍵証明書「4」“)

// クライアントサイド
wolfSSL_CTX_load_verify_locations( “中間CA「3」“)

中間サーバ公開鍵証明書「4」に署名した中間CA「3」を使って検証することでクライアントはサーバを認証することが可能になります。

この時wolfSSL 内部では次図のようにCAを管理するためのCA管理用ハッシュテーブルが作成されます。インデックスのハッシュ値はサブジェクト鍵識別子から生成されます。

 

最初の例では証明書に署名したCAを直接読み込むことで認証を行いました。

 

では、ルートCA「1」使用し認証を行うためにはどうすれば良いのでしょう?

次のように証明書を読み込みます。

// サーバサイド
wolfSSL_CTX_use_certificate_file( “中間サーバ公開鍵証明書「2」+中間CA「3」“)

// クライアントサイド
wolfSSL_CTX_load_verify_locations( “ルートCA「1」“)

この時wolfSSLは先ほどと同様にCAを管理するためのCA管理用ハッシュテーブルを作成します。まずルートCAが最初に登録されます。次にルートCAによって検証された中間CAがテーブルに登録されます。中間サーバ公開鍵証明書は証明書に記述されたサブジェクト鍵識別子から、中間CAをテーブルから取り出します。取り出した中間CAを用いて検証を完了します。

 

wolfSSL に含まれる./certs フォルダの証明書を使って実際に試してみることも出来ます。まず最初の例、中間CAを直接ロードする場合、次のコマンドを使用します。

//サーバに中間公開鍵証明書をロード
$ ./examples/server/server -c ./certs/test-pathlen/server-1-cert.pem
//クライアントに中間CAをロード
$ ./examples/client/client -A ./certs/test-pathlen/server-1-ca.pem

次にルートCAを使用する場合は、次のように行います

//サーバ中間公開鍵証明書に中間CAを追記
$cat ./certs/test-pathlen/server-1-ca.pem >> ./certs/test-pathlen/server-1-cert.pem

//サーバに中間公開鍵証明書と中間CAをロード
$ ./examples/server/server -c ./certs/test-pathlen/server-1-cert.pem

//クライアントにルートCAをロード
$ ./examples/client/client

今回は階層になった証明書を検証するにあたって、APIに設定する引数とその内部処理について見てきました。実際の内部動作を頭にイメージでき、API使用時の手助けに少しでもなったら幸いです。証明書検証のAPI使用に際し、ご質問等ありましたら、お気軽にsupport@wolfssl.com までお知らせください。

 

wolfSSH 1.4.2をリリースしました

wolfSSHの新しいバージョン、1.4.2をリリースしました。

このバージョンは、次の新機能を含んでいます。

  • Renesas CS+ 対応のサンプルサーバーを追加
  • マクロWOLFSSH_SHOW_SIZESが定義されている場合、サンプルクライアントに構造サイズ出力オプション-zを追加
  • wolfSSH_CTX_UsePrivateKey_bufferの自動テストの追加と鍵が既にロードされている場合の呼び出しの修正
  • パケットアセンブリの内部処理をリファクタリング
  • クライアント側の公開鍵認証をサポート
  • グローバルリクエストをサポート
  • ユーザー認証コールバックがWOLFSSH_USERAUTH_REJECTEDを返すときに返されるWS_USER_AUTH_Eエラーを追加

本リリースでの修正点は次のとおりです。

  • GCC 8ビルド警告の修正
  • SFTPで使用される列挙型の警告を修正し、ソケットタイプを設定
  • 使用前にUserAuthDataをすべてゼロに初期化するよう修正
  • デフォルトのウィンドウサイズを2048に設定するときのSFTP「LS」操作の修正
  • NULL参照解除警告、rPad / sPadの初期化、読み取りのSFTPチェックの修正。レポートを提供くださったGitHubユーザーのLinuxJedi氏に感謝いたします。
  • シングルスレッドビルドでコンパイルされていない変数のvoidキャストを削除
最新版のダウンロードはこちらにございます:  https://www.wolfssl.jp/download/

wolfSSH製品ページ: https://www.wolfssl.jp/products/wolfssh/

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

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/

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/

 

Posts navigation

1 2 3 4 29 30 31