wolfMQTT クライアントはMicrosoft Azure Sphereをサポートします

MicrosoftのIoT開発支持者であるDaveGloverは、wolfMQTTクライアントライブラリとwolfSSLのEmbedded TLSライブラリを使用して、Altair8800エミュレーションプロジェクトを使用した安全なIoTデバイス接続を示すAzureSphereCloudの例をまとめました。 ここでプロジェクトを見つけて、AltairエミュレーションをInternet of Thingsに接続するためのDaveの取り組みについて詳しく読んでみてください。 誰もがIoTデータを安全にする価値があり、wolfSSLはそれを実現するための最良のライブラリを提供します。

ご質問は、info@wolfssl.jpまでお問い合わせください。テクニカルサポートについては、support@wolfssl.comにお問い合わせください。
原文:https://www.wolfssl.com/wolfmqtt-client-supports-microsoft-azure-sphere/

サンプルプログラムシリーズ -1-:wolfSSLが提供するPKCS#7の機能を探求

組み込み向けSSL / TLSライブラリwolfSSLはPKCS#7をサポートしています。wolfSSLサンプルプログラムのGitHubリポジトリにはPKCS#7の機能を直ぐにお試しできるサンプルプログラムが用意されています。 PKCS#7:暗号化メッセージ構文(CMS)は、公開鍵インフラストラクチャ(PKI)を使ってメッセージに署名、暗号化、または復号するために使用されます。 サンプルプログラムでは、それらの処理をwolfSSL APIを使用していくつかのコンテンツタイプに対して行う実装をいくつか紹介しています。 このブログでは、これらのサンプルプログラムをコンパイル/実行する方法を紹介します。

最初にwolfSSLは以下に示すようにビルド&インストールしてください。 CompressedDataコンテンツタイプを使用しているいくつかの例では、zlibライブラリをインストールする必要があります。

$ ./configure --enable-pkcs7 --enable-pwdbased CFLAGS="-DWOLFSSL_DER_TO_PEM" --with-libz
$ make
$ sudo make install

次に、pkcs7ディレクトリのサンプルプログラムをコンパイルします。

$ make

実行可能なプログラムが全てビルドされ、ターミナルから実行できるようになります。各実行可能プログラムは各々に関連ついているデータをエンコード、でコードして表示します。例えば:

$ ./encryptedData
Successfully encoded EncryptedData bundle (encryptedData.der)
Successfully decoded EncryptedData bundle (encryptedData.der)

コンテンツやRecipientInfo タイプによってwolfCryptの使用方法が変わりますから注意してください。皆さんはwolfSSLのPKCS#7関係のAPIを有効に使ってTLS機能を必要とするIoT機器のセキュリティをさらに強化できるでしょう。

PKCS#7に関するドキュメントやその他の情報はdoxygen ページ:Algorithms – PKCS7 (wolfssl.com)

を参照ください。PCKS#7に関するWikipediaは:https://en.wikipedia.org/wiki/PKCS_7

 

ご質問は、info@wolfssl.jpまでお問い合わせください。テクニカルサポートについては、support@wolfssl.comにお問い合わせください。
原文:https://www.wolfssl.com/wolfssl-examples-explore-wolfssl-pkcs7-functionality/

ウェビナー「FIPS認証の新バージョン: FIPS140-3」

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

FIPS認証の新バージョン: FIPS140-3

2021年9月8日(水) 14:00~14:30

wolfSSLではこの度、FIPS認証の新バージョンFIPS140-3の取得サービスを正式に開始しました。
ウェビナーではFIPS認証の概要、認証プロセス、wolfSSLの認証取得サービスの紹介とともに、従来の140-2との相違点についても解説します。

スピーカー:
wolfSSL Japan合同会社 技術統括
古城 隆

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

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

ぜひ皆様のご参加をお待ちしています。
ご質問がおありでしたら、info@wolfssl.jp までご連絡ください。

 

そのほかのウェビナー開催予定、オンデマンド版の公開についてはこちらをご覧ください。

wolfSSL サンプルプログラムレポジトリ

ブログ連載始まります

wolfSSLでは初期の頃から、クライアントとサーバーのサンプルプログラムを提供してきました。これらのサンプルプログラムによって、さまざまな構成でwolfSSLを使用することがいかに簡単であるかお分かりいただけると思っています。これらサンプルプログラムはライブラリのテストにも使用します。何年にもわたって、サンプルプログラムにはTLSで利用できる新機能を追加してきました。その為段々大きくなりさらに複雑になってきています。以前にも、このブログでサンプルプログラムレポジトリについてお知らせしたことがありますが、その時点から多くのサンプルプログラムが追加されています。

GitHubのwolfSSL-examplesレポジトリを訪れてみてください。このレポジトリにはさまざまなタイプの接続をセットアップおよびテストするライアントとサーバーのサンプルプログラムが含まれています。 これらのクライアント/サーバーに加えて、特定のリアルタイムオペレーティングシステムと組み込みシステムおよびデバイス用のTCP / IPスタックを使用してwolfSSLを構築する方法、単純なエンクレーブを使用してwolfSSLライブラリとリンクする方法、証明書マネージャーやwolfCryptの公開鍵機能などのライブラリの一部の機能の使用方法なども含まれています。

サンプルアプリケーションはC言語で記述され、各ディレクトリは一意のトピック(TLS、DTLS、PSKなど)を表し、Makefileと特定のトピックに関する簡単なチュートリアルが含まれています。 wolfSSL-examples GitHubリポジトリは、wolfSSLライブラリに精通するための優れた方法であるため、この次のブログシリーズでは、このレポジトリに含まれる各トピック/ディレクトリを紹介します。取り上げるトピックの包括的なリストは次のとおりです。

android(Android NDKのサンプルプログラム)

このディレクトリには、Android NDKツールチェーンを使用して、AndroidプラットフォームでwolfSSLとwolfSSLJNIを使​​用する方法を示すサンプルプログラムが含まれています。

BTLE

このディレクトリには、Bluetooth Low Energy Link(BTLE)を保護するためのサンプルプログラムが含まれています。 BTLEパケットは小さく、スループットは低いため、これらのサンプルプログラムは、BTLEペアリングなしでデータを安全に交換する方法を示しています。

certfields(X509フィールド抽出)

このディレクトリには、wolfSSLを使用してDERでエンコードされた証明書を読み取り、公開鍵とサブジェクト名の情報を抽出するサンプルプログラムが含まれています。

certmanager(wolfSSL CertManager)

このディレクトリには、CertManager(Certificate Manager)機能の使用方法を示すサンプルプログラムが含まれています。

crypto(wolfCryptのサンプルプログラム)

このディレクトリには、wolfCrypt機能を使用してさまざまなアルゴリズム(AES、3DESなど)でファイルを暗号化する方法を示すサンプルプログラムが含まれています。

custom-io-callbacks(wolfSSLカスタムIOコールバック)

このディレクトリには、カスタムIOコールバックを使用して、任意のメディアを使用したTLS接続を容易にする方法を示すサンプルプログラムが含まれています。

DTLS(データグラムTLS)

このディレクトリには、DTLSを使うサンプルプログラムが含まれており、UDP、DTLS、ノンブロッキング、セッション再開、およびマルチスレッディングの使用例が示されています。

ecc(楕円曲線暗号)

このディレクトリには、wolfCrypt ECCのさまざまなユースケースを示すサンプルプログラムが含まれています。

embedded(組み込みシステム)

このディレクトリには、バッファを介して通信し、ソケットを使用するTLSクライアント/サーバーを示すサンプルプログラムが含まれています。

hash

このディレクトリには、wolfCryptを使用して入力ファイルをハッシュする方法を示すサンプルプログラムが含まれています。

java(wolfJSSEのサンプルプログラム)

このディレクトリには、wolfJSSEでのHTTPS URLの使用例とキーストアのサンプルプログラムが含まれています。

mynewt(Apache Mynewtのサンプルプログラム)

このディレクトリには、Apache Mynewt OSでwolfSSLを使用する方法を示すサンプルプログラムが含まれています。

picotcp(picoTCPのサンプルプログラム)

このディレクトリには、wolfSSLカスタムコールバックを介してpicoTCPを使用して作成されたTLSサーバーが含まれています。

pk(公開鍵)

このディレクトリには、さまざまなwolfCrypt公開鍵機能(生成後の鍵の保存と読み込み、秘密鍵からの公開鍵の抽出など)を示すサンプルプログラムが含まれています。

pkcs11(PKCS#11)

このディレクトリには、wolfSSLのPKCS#11機能の使用例と、PKCS11ベースのキーを使用したTLSサーバーのサンプルプログラムが含まれています。

pkcs7(PKCS#7)

このディレクトリには、wolfCryptPKCS#7 / CMSAPIの使用法を示すサンプルアプリケーションが含まれています。

PSK(事前共有キー)

このディレクトリには、PSKの使用例が含まれており、クライアントとサーバーの例では、TCP / IP、PSK、ノンブロッキング、セッション再開、およびマルチスレッドが示されています。

riot-os-posix-lwip(RIOT-OS)

このディレクトリには、RIOT-OSPOSIXソケット上でwolfSSLTLSソケットを使用する方法を示すサンプルプログラムが含まれています。

RT1060(i.MX RT1060-EVK)

このディレクトリには、i.MXRT1060-EVK用のwolfCryptベンチマークテストアプリケーションが含まれています。

SGX_Linux(Linuxエンクレーブ)

このディレクトリには、Cで記述されたサンプルアプリケーションが含まれています。これは、Linuxを使用してwolfSSL軽量SSL / TLSライブラリを単純なエンクレーブ(SGX)にリンクする方法を示しています。

SGX_Windows(Windowsエンクレーブ)

このディレクトリには、C ++で記述されたサンプルアプリケーションが含まれています。これは、Windowsを使用してwolfSSL軽量SSL / TLSライブラリを単純なエンクレーブ(SGX)にリンクする方法を示しています。

signature (署名と検証のサンプルプログラム

このディレクトリには、wolfSSLを使用してバイナリデータに署名および検証する方法を示すサンプルプログラムが含まれています(署名用のRSAとECC、およびMD2、MD4、MD5、SHA、SHA224、SHA256、SHA384、SHA512をサポート)。

tirtos_ccs_examples(TI-RTOS)

このディレクトリには、TI-RTOSエコシステムでのwolfSSLの使用を示すクライアント/サーバーのサンプルプログラムが含まれています。

TLS

このディレクトリには、SSL / TLSの使用例が含まれており、クライアントとサーバーのサンプルプログラムでは、TCP / IP、SSL / TLS、ノンブロッキング、セッション再開、およびマルチスレッドが示されています。

utasker(uTasker wolfSSLサンプルタスク)

このディレクトリには、uTaskerスタックでwolfSSLを使用する方法を示すサンプルのuTaskerクライアントおよびサーバータスクが含まれています。これらはuTaskerシミュレータでテストされています。

wolfCLU(wolfSSLコマンドラインユーティリティ)

wolfCLUは、wolfCrypt暗号化ライブラリへのコマンドラインアクセスを提供するツールです。 wolfSSLコマンドラインユーティリティを使用すると、ユーザーはユーザー指定のファイルを任意のファイル名と拡張子で暗号化または復号できます。

 

ご質問は、info@wolfssl.jpまでお問い合わせください。テクニカルサポートについては、support@wolfssl.comにお問い合わせください。
原文:https://www.wolfssl.com/wolfssl-examples-repository-series/

組み込みSSHクライアントにTPMの鍵保護機能を追加しよう!

コネクテッドシステムに対するセキュリティ要件が高まりつつあるなか、我々はその要求に応えるべく、wolfSSHにハードウェアセキュリティを追加しました。

広く利用可能なTPM(Trusted Platform Module)とポータブルなwolfTPMライブラリの組み合わせで、wolfSSHはユーザーのSSH秘密鍵をハードウェアセキュリティモジュール内に保存し、かつH/Wから直接使用することができます。 このため、秘密鍵が未加工の形で公開されることはなく、システムはその重要な秘密を物理的な改ざん防止機能で保護します。

wolfSSHは、ポータブルSSHv2.0クライアントおよびサーバーモジュールです。 また、SCPおよびSFTPプロトコルもサポートしています。 これより、wolfSSHは組み込みシステムおよびアプリケーションに適した選択肢になります。

wolfTPMは、ベアメタルおよび組み込みシステム用に設計されたポータブルTPM2.0ライブラリです。 wolfTPMには、Trusted Computing Group (TCG)に従って開発された独自のTPMインターフェイスレイヤー(TIS)があります。 これにより、wolfTPMはTPMドライバーを必要とせず、すべてのオペレーティング環境で動作できます。

ご質問は、info@wolfssl.jpまでお問い合わせください。テクニカルサポートについては、support@wolfssl.comにお問い合わせください。
原文:https://www.wolfssl.com/teaser-embedded-ssh-client-tpm-protected-keys/

wolfMQTT クライアントはHiveMQ Cloud をサポートしています

wolfMQTTクライアントライブラリのサンプルプログラム”mqttclient”は、wolfSSLが提供するTLSを介した安全なMQTT接続のデモンストレーションプログラムです。

wolfSSLでは皆さんがテスト用に使用できるHiveMQクラウドクラスターをセットアップしました。 HiveMQクラウドブローカーは、TLSクライアント認証にサーバー名インジケーション(SNI)拡張機能を使用します。この機能を使う際には”–enable-sni”オプションを付加してconfigureしてください。さらに実行時に 下記のコマンドラインに`-S`オプションを指定することで使用できます。 このサンプルプログラムは、 ダウンロードしたパッケージを解凍した、”/ examples / mqttclient /”にあります。

以下のコマンドを使用して、HiveMQクラウドクラスターでテストしましょう:

./examples/mqttclient/mqttclient -h 833f87e253304692bd2b911f0c18dba1.s1.eu.hivemq.cloud -t -S -u wolf1 -w NEZjcm7i8eRjFKF -p 8883 

 

wolfSSLは、皆さんのIoTデータを安全に転送する為に最適なライブラリを提供しています。

最新のリリースはここからダウンロードできます:

または、GitHubリポジトリhttps://github.com/wolfSSL/wolfMQTT

から直接クローンを作成してください。

 

ご質問は、info@wolfssl.jpまでお問い合わせください。テクニカルサポートについては、support@wolfssl.comにお問い合わせください。
原文:https://www.wolfssl.com/wolfmqtt-client-supports-hivemq-cloud/

真性乱数生成器 vs 疑似乱数生成器

疑似乱数生成器(PRNG)

ソフトウェアで生成された乱数のみが疑似乱数と呼ばれます。 コンピューターは分布に基づくアルゴリズムを使用しているという点で真にランダムではありません。また決定論的で予測可能なアルゴリズムに依存している点で、(後述の真性乱数の目的に直接使用するのは)安全でもありません。 生成された「乱数」を複製するようにシード番号を設定できるため、シードがわかっている場合は番号を予測できます。 PythonやExcelなどの日常的なツールでの疑似乱数生成は、メルセンヌツイスターアルゴリズムに基づいています。

PRNGの使用例の一つは、鍵ストリームの生成です。 Chachaなどのストリーム暗号は、疑似ランダム暗号数ストリーム(キーストリーム)を使用して平文メッセージを暗号化します。 AES CTR(カウンター)モードなどの一部のブロック暗号モードのキーストリームは、ストリーム暗号として機能し、疑似乱数生成と見なすこともできます。

真正乱数生成器(TRNG)

真性乱数を生成させる場合には、コンピューターは、アルゴリズムではなく、同位体の放射性崩壊や電波静的など、予測できない外部の物理変数を使用する必要があります。 量子レベルでは、亜原子粒子は完全にランダムな振る舞いをしており、予測不可能なシステムの理想的な変数になっています。 ほとんどのハイエンドマイクロコントローラーにはTRNGソースがあり、wolfSSLはこれを直接ランダムソースまたはPRNGのシードとして使用できます。 シリコンベースのTRNGであるIntelRDRANDは、wolfSSLでサポートされています。

wolfSSLは以下の様なTRNGを含むハードウエアをサポートしています:

wolfSSLがサポートしているハードウエアアクセラレータ/暗号化プラットフォームのリストはここを参照ください。

暗号化処理における真性乱数生成器

真のRNG自体はコスト効率が良くないことが多く、さらに時間の経過に伴ってランダム性が徐々に低下する可能性があります。したがって、エントロピーソースの品質に一貫性がないといえます。そこでランダム性をさらに向上させるために、後処理アルゴリズム(決定論的で脆弱ですが)に依然依存しています。 TRNGとPRNGの組み合わせにより、ランダム性低下による悪影響を制限できます。たとえば、NXP i.MX RT1060では、コアに存在するTRNGをエントロピーソースとして使用して、それ自体がPRNGである決定論的ランダムビットジェネレータ(DRBG)のシードを決定できます。このように組み合わせたTRNGは、時間の経過とともに弱くなることなく近似的に真性乱数とみなせる程のランダム性を提供します。

wolfSSLは、NISTのSP 800-90A(暗号化で使用するための暗号的に安全であるとされる3つの疑似乱数ジェネレーターの仕様)で説明されているSHA2-256(セキュアハッシュアルゴリズム)Hash_DRBGを使用します。さらに、ハードウェアエントロピーソースを含むwolfSSLのFIPSモジュールであるwolfRandは、NISTのSP 800-90B(ランダムビットジェネレーターで使用されるエントロピーソースの設計原則と要件、およびエントロピーソースの検証テスト)に準拠しています。

暗号化に使用する目的で、真性乱数により近い値を算出する為には、アルゴリズムの1つだけに依存するのではなく、複数のアルゴリズムの組み合わせを用います。 TLS1.1からTLS1.2への更新では、疑似ランダム関数(PRF)のMD5 / SHA-1の組み合わせが、暗号スイートで指定されたPRFに置き換えられました。これは、引き続きTLS1.3でSHA2-256およびSHA2-384で使用されます。

MD5 / SHA-1(メッセージダイジェスト/セキュアハッシュアルゴリズム)は、2つのメッセージ認証コード(MAC)アルゴリズムを組み合わせて、速度とセキュリティのバランスを実現しました。一方、暗号スイートは、Transport Layer Security(TLS)/ Secure Socket Layer(SSL)を介してネットワーク接続を保護するのに役立つ暗号化命令またはアルゴリズムのセットです。 Webサーバーとクライアント間のSSLハンドシェイク中に、両者は暗号スイートについて合意します。暗号スイートは、HTTPS接続を保護するために使用されます。一般的な暗号スイートには、1つの鍵交換、1つのバルク暗号化、1つの認証、および1つのMACアルゴリズムが含まれています。暗号スイートとその使用法の詳細については、“What is a Cipher Suite?”を参照ください。

最後に

真の乱数は、費用対効果が低く、時間の経過とともにランダム性が減少する可能性があるため、生成が困難です。ただし、TRNG / PRNGの組み合わせ、または暗号スイート内のアルゴリズムのいずれかと組み合わせて複数のランダムプロセスを使用することにより、乱数生成をより効果的にすることができます。

 

ご質問は、info@wolfssl.jpまでお問い合わせください。テクニカルサポートについては、support@wolfssl.comにお問い合わせください。
原文:https://www.wolfssl.com/true-random-vs-pseudorandom-number-generation/

wolfMQTT v1.9.0 リリースしました

wolfMQTT v1.9.0をリリースしました。このリリースには、次の不具合修正と機能追加を含んでいます。

  • センサーネットワーククライアントの修正(PR#204、214、219)
  • ノンブロッキングに関する修正(PR#205)
  • マルチスレッドに関する修正(PR#207、209、211、218)
  • MQTT v5 パブリッシュへの応答の処理を修正(PR#224、220)
  • subscribeのリターンコードリストの修正(PR#210)
  • 他のツールチェーンでのswitch文のフォールスルーを修正(PR#225)
  • SNI機能を備えたHiveMQ クラウド機能の追加(PR#222)
  • サンプルクライアントにファイルをパブリッシュする機能を追加し、チャンクパブリッシュを修正(PR#223)

機能と修正の全リストについては、ダウンロードしたフォルダ内の変更履歴を確認してください。またご質問はsupport@wolfssl.comまでお問い合わせください。

wolfMQTTプロジェクトへの応援メッセージもお待ちしております!

最新のリリースはこちらダウンロードいただけます。

 

wolfSSL v4.8.1をリリースしました

wolfSSLバージョン4.8.1をリリースしました

このバージョンのwolfSSLには、多くの新機能、ポート、および修正を含んでいます。新機能の一部を紹介します。

  • 新製品wolfSentryと合わせて使用するための追加
    • wolfSentryとは:動的な埋め込みが可能な、製品組み込み向け IDPS (侵入検知および防止システム)
    • wolfSentryと合わせて使用するために追加されたビルドオプションは、autotoolsフラグ-enable-wolfsentryを使用してコンパイル可能。wolfSentryは、ファイアウォールと同様の方法で使用できる新製品ですが、現在利用可能な多くのファイアウォールアプリケーションとは異なり、リソースに制約のある組み込みIoTデバイス向けに合わせ設計されています
  • 互換性レイヤー用の多数のAPI
    • OpenSSLからwolfSSLへの置き換えや、FIPS要件のため暗号の更新をサポート
  • NXP社のi.MXデバイスで使用するQNX CAAMドライバ
    • CAAM は Cryptographic Accelerator and Assurance Module の略です。CAAM を使用すると、ECCやAESなどの暗号化アルゴリズムが高速化されるだけでなく、暗号化されたキーと安全なメモリパーティションの使用によりセキュリティが向上します
  • STM32G0のサポート
  • Zephyrプロジェクトのサンプルコード
    • Zephyrプロジェクトは、複数のハードウェアアーキテクチャをサポートし、リソースに制約のあるデバイス向けに最適化され、安全性とセキュリティを念頭に置いて構築されたスケーラブルなリアルタイムオペレーティングシステム(RTOS)です
  • DEVKITPRO用の使いやすいDolphinエミュレーターテスト
    • devkitProは、ゲームプラットフォームにコンパイルするためのツールチェーンのセットです
  • PKCS#7の修正
    • PKCS#7は、PKI (Public Key Infrastructure)でメッセージの署名、暗号化、復号化するために使用されます。また、証明書の配布にも使用されますが、シングルサインオンに最もよく使用されます
  • 既存のポートの修正とともに、エッジケースの解析と処理を改善
  • Coverityおよびfsanitizerツールを使用したテストから得られた修正
    • Coverityは問題を見つけるのに非常に効率的であり、多くの場合、適切なコードの指標として使用されます(見つかって修正された問題の数に基づく)
    • fsanitizerは静的分析ツールです
  • 2つの脆弱性の問題が見つかり、今回修正を加えています
    • 1つはOCSPに関するものです
      • OCSP(Online Certificate Status Protocol)は、X.509デジタル証明書の失効ステータスを取得するために使用されるインターネットプロトコルです
    • もう1つは、以前に修正したbase64PEMデコードサイドチャネルの脆弱性に関する問題です
      • PEM(Privacy Enhanced Mail)は、認証局が証明書を発行する際の最も一般的なフォーマットです

変更の完全なリストについては、wolfSSLに同梱されている最新のChangeLog.mdをご覧いただくか、GitHubのページ(https://github.com/wolfSSL/wolfssl)をご覧ください。ご質問は、info@wolfssl.jp まで直接お寄せください。

原文:https://www.wolfssl.com/wolfssl-v4-8-1-release/

Posts navigation

1 2 3 4 41 42 43