うるふブログ

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)

走り出した TLS 1.3(3):一律3割引き !?

と言っても価格の話ではありあせん、すみません!連載第三回はTLS1.3 で大幅に改善されたフルハンドシェイクについて紹介しようと思う。サーバー、クライアントが初めてのTLS通信をしようとするときは、通信に使う暗号スイートの合意、お互いの信頼の確認、メッセージ暗号化に実際に使う鍵を合意するなど、安全なメッセージ通信のためにさまざまな情報を交換しあう。それがフルハンドシェイクだ。そのフルハンドシェイクにTLS1.2までは最低でもTCP通信にして2往復の通信が必要だった。それがTLS1.3では1往復ですむようになった。

フルハンドシェイク往復回数の改善

しかし、これで通信時間が半分になるかというと、残念ながら通常のネットワークの状況ではそこまでは速くならない。ネットワーク遅延の状況にもよるが、当社のシミュレーションでは典型的な通信状況で概ね30%程度の改善がみられた。

ネットワーク遅延とハンドシェイク時間

 

TLS1.3に移行するすべてのTLS通信で冒頭一律30%、セッション時間が30%削減されるとしたら、これは大きな恩恵だ。特にサーバー運用コストには直接跳ね返ってくる。いま、ブラウザのTLS1.3対応が進んでいる中、サーバー側の対応が進むのは時間の問題だろう。それにIoTデバイス系もひっぱられる構図がみえてくる。

では、TLS1.3でなぜフルハンドシェイクがそのように大幅に削減が可能になったのか?それはいくつか要因があるが一番大きいのは、鍵交換の方式がDH(ディフィーヘルマン)系に統一されたことだろう。TLS1.3の議論の中で、前方秘匿性の問題が大きくとりあげられ、静的RSAによる鍵交換のリスクが認識され、今までDHとRSAの二つの方式が選択できたものが( ECを含む)DH、それも一時鍵(Ephemeral)方式だけに統一された。そのためハンドシェイクの冒頭から、DH系を想定した鍵合意のためのプロセスを開始できるようになった。

もう一つは、これまでハンドシェイクの最後のフェーズとしてスイートの切り替えフェーズがあったのだが、これをスキップしていきなりFinishedとしても安全上問題ないということになったことがある。

こうした整理のおかげで、TLS1.3のフルハンドシェイクは大幅に整理改善され、利用者は一律にその恩恵を受けることができるようになったのだ。

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

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

Renesas RX、uITRON、TINET 向けデモプロジェクト

組込み向けSSL/TLSライブラリwolfSSLのuITRON サポートに興味をお持ちの方のために、ルネサスCS+向けデモプロジェクトを公開しました。このデモでは、uITRON、TINETで動作するSSL/TLS対応のサーバー、クライアントのサンプルプログラムが含まれています。wolfSSLをBSDソケットなど以外のTCP APIにも簡単に対応できる例としてもご覧いただけると思います。

 

アルファプロジェクト社RX71Mボード
このデモは今回のwolfSSL バージョン3.15.5からリリースに含まれます。

デモファイル一式は、wolfSSLのルートディレクトリ下の “IDE/Renesas/cs+/Projects/t4_demo” に格納されています。デモはアルファプロジェクト社のRX71M, RX65Nボード上でボード付属のファームウェアと共に動作します。

ビルド方法など詳細は同ディレクト下のREADMEファイルを参照してください。

ルネサス エレクトロニクス: https://www.renesas.com/jp/ja/
Renesas RX ファミリ: https://www.renesas.com/jp/ja/products/microcontrollers-microprocessors/rx.html
アルファプロジェクト: https://www.apnet.co.jp/

このプラットフォーム向けのwolfSSL組み込み向けSSL/TLSライブラリについてさらにご質問などありましたらsupport@wolfssl.com まで日本語でお知らせください。またTLS 1.3FIPS 140-2やハードウェア暗号化などについてもお問い合わせもお気軽にご連絡ください。 

wolfSSL 3.15.5ダウンロードの準備が整いました

wolfSSL 3.15.5ダウンロードの準備が整いました。このリリースには、wolfSSL組み込みIoTライブラリへ追加された新機能と、既存機能に対するいくつかの修正が含まれています。 TLS 1.3の変更の一つとして、「TLS 1.3機能のみ」をビルドする機能を追加しました。これに加えて、TLS 1.3でのOCSPステープルサポート、TLS 1.3実装で非同期暗号を使用するためのいくつかの修正も追加しています。

以下、今回の修正変更点をまとめます。

 

PKCS解析のための拡張と修正:

– wc_PKCS7_Newおよびwc_PKCS7_Free関数を使用したPKCS7構造体の動的割り当てのサポート
– “–enable-pkcs11″が追加されたPKCS#11のサポート
– KEKRI、PWRI、ORIとのPKCS#7 CMSサポートの拡張
– PKCS#7デコードおよび署名検証のストリーミング機能の追加
– PKCS#7の署名付きデータを使用して構築されたOCTET_STRINGのサポート
– 暗号化によるPKCS8パッディングの修正
– PKCS8解析による汎用ECC PEMヘッダ/フッタのサポート

 

新たなプラットフォームへのポーティングを追加しました。また、いくつかの既存のポーティングを更新し、新しい環境でwolfSSLが使いやすくなりました。

– ASIOのポーティングに ” – enable-asio”設定フラグを追加
– wolfssl-3.15.5 / IDE / mynewt / *ディレクトリに追加されたapache mynewtへのポーティング
– Atollic TrueSTUDIO用のwolfSSL静的ライブラリプロジェクトの追加
– ContikiへのポーティングがマクロWOLFSSL_CONTIKIで追加
– AF_ALGとcryptodev-linux暗号サポート
– STM32L4で AES / SHAハードウェアアクセラレーションをサポート
– Renesas E2Studioプロジェクトファイルの追加
– ルネサスRXサンプルプロジェクトを追加
– STSAFE-A100のTLSサポートのために公開鍵参照コールバックの追加
– ATECC508A / ATECC608AのTLSサポートのために公開鍵参照用のコールバックの追加

 

既存のポーティングの更新:

– インテル®SGXポート、WOLFSSL_SGX使用時に定義されたWindowsバージョンおよびマクロに含まれるファイルへのアップデート
– 最新のCryptoAuthLibのサポートを更新(10/25/2018)
– IAR-EWARMを使用したMQX classic 4.0の修正
– サポートされているNucleusバージョンのアップデート
– CMSIS 4のRowley-Crossworks設定の更新
– Lighttpdをサポートするためのアップデート
– NGINXポートでOCSPを使用するための修正
– wolfSSLによるXCODEビルドの更新
– PIC32MZハードウェアアクセラレーションバッファアラインメント修正
– NXP K82サポートの修正と強化
– OpenSSHポートの更新のための互換レイヤー機能の再配置
– GCC-ARMサンプルの更新と拡張
– wolfcrypt JNIラッパーの更新

 

追加機能:

– DTLSの追加(サーバー/クライアント)側の初期設定
– TLSにてAES-CBCを無効にし暗号スイートのみを有効化するフラグ “–disable-aescbc”の追加
– 証明書のみの解析サポートに “–enable-asn = nocrypt”を追加
– ベンチマーク結果をCSV形式出力する機能とメッセージの日本語化機能を拡張
– サンプルサーバーとクライアントに日本語メッセージ機能(-l 1オプション)を追加
– エフェメラルキーサイズに一致するダイジェストサイズを使用するビルド用のUSE_ECDSA_KEYSZ_HASH_ALGOマクロを追加
– wolfSSL_X509_CA_numやwolfSSL_PEM_read_X509_CRLなどの機能を含む追加の互換性APIを追加
– 証明書Auth IDのクリティカルな拡張をチェックする機能と、チェックをオーバーライドするために、マクロWOLFSSL_ALLOW_CRIT_SKIDを追加
– ConfirmSignature関数に公開鍵コールバックを追加、公開鍵コールバックサポートを拡張
– ECCとCurve25519の鍵生成コールバックのサポートを追加
– 証明書対象OID((businessCategory, jurisdiction of incorporation country,  およびjurisdiction of incorporation state:ビジネスカテゴリ、所在国の管轄および法人設立の管轄)を解析するための追加サポート
– ECCの16進文字列によるエクスポートのためにwc_ecc_ecport_ex APIとwc_export_inti APIを追加
– 関数wc_ParseCertPIVおよびマクロWOLFSSL_CERT_PIVを使用してPIV形式の証明書を解析するサポートの追加
– GZIPをサポートするAPIの追加
– Windows DLLビルド用に追加されたバージョンリソース

 

最適化:

– 可能なかぎり、freeをまとめる最適化
– ALT_ECC_SIZEをSP整数演算で使用
– enable-smallstack (WOLFSSL_SMALLSTACK) オプションにおけるスタックサイズの削減
–  Curve25519のアセンブリ最適化バージョンの改善
– ARMアセンブリでSP整数演算を使用する場合のDHアルゴリズムの修正

 

マクロと動作の変更:

– インライン関数のINLINEマクロをWC_INLINEに変更
– 素数検査に修正を加え、Miller-Rabin検定において小さな素数の固定リストではなく最大40個の乱数を検査するよう改善
– SOCKET_PEER_CLOSED_Eを送信時と受信時で一貫性をもたせる

 

変更点の全部リストはChangelog(英語)に記載しています。

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

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

Arm Tech Symposia 2018 Japan出展と担当セミナーのご案内

wolfSSLは、12/6に開催されるArm Tech Symposiaに出展いたします。TLS 1.3に対応したwolfSSL組み込みシステム向けTLSライブラリのご紹介を行います。また、IoTデバイスからの視点で、TLS 1.3についてのセミナーを一枠担当いたします。ぜひみなさまのご来場、ご参加をお待ちしております。

日時: 2018年12月6日(木) 10:00〜19:00
会場: JPタワー ホール&カンファレンス 〒100-0005 東京都千代田区丸の内二丁目7番2号 KITTE 4,5階
特設Webサイト: https://www.armkk-event.com/ts/
wolfSSLブース番号: 22

wolfSSLセミナー:

14:10-14:40 Track D
TLS1.3がやってきた!
今年8月に全面改版されたインターネットセキュリティプロトコルの標準 TLS1.3について、IoTデバイスからの視点で解説します。これまでと一変、1.3 への移行が着々と進む理由。何が変わるのか、何が変わらないのか。自社製品の競争力としていくためには。

wolfSSL 技術統括 古城 隆

wolfTips: サンプルプログラム集

wolfSSL ライブラリにはたくさんのAPIがありますが、ユーザマニュアルやAPIドキュメントだけではなかなかその使い方がわからない、ということも多いと思います。そんなときにはぜひwolfSSLサンプルプログラムのレポジトリーをご覧になってみてください。 https://github.com/wolfssl/wolfssl-examples の下には、ディレクトリ毎にたくさんのサンプルプログラムがあります。

TLSの基本的な使用例は tls ディレクトリを参照してください。tls_server.c, tls_client.cはサーバー・クライアントが基本的なSSL通信を行うためのサンプルプログラムで、TLS接続を確立したあと、サーバーとクライアントの間で1往復のメッセージ通信を行います。比較対象としてプレーンなTCP通信を行うtcp_server.c、tcp_client.cも用意してあるので、すでにTCPによるアプリケーションをもっているお客さまにとってTLSで何を追加、変更しなければいけないか、簡単に理解できるかと思います。

tlsディレクトリの下には、そのほかBSDソケットやライブラリがすでにサポート対象としていないメッセージ通信を行う場合のメッセージコールバックの使用例、非RTOS環境などで使うノンブロッキングの使用例など各種の例が格納されています。

また、DTLS事前共有鍵証明書の管理や生成などの各種の使用例も参照できますので、ぜひご覧になってください。

 

ルネサスe2studioサポート

この度、wolfSSLはルネサスe² studioをサポートするために開発用プロジェクトファイルを追加いたしました。
ルネサスe² studioは、Eclipse CDT(C/C++開発環境)をベースに作られた開発環境であり、GUIベースの使いやすいビルド(エディタ、コンパイラ、リンカ)デバッグ機能を備えています。

今回追加されたプロジェクトファイルは、wolfSSLライブラリビルド用ファイルとwolfCryptテスト用ファイルです。
これらのファイルはIDE/Renesas/e2studio/Projectsディレクトリの下にあります。
実行環境としてe2studioバージョン6.3.0上のルネサス製Cコンパイラで動作確認を行いました。
プロジェクトのビルド方法は、IDE/Renesas/e2studio/Projects下のREADMEをご参照ください。また、e² studioをサポートしたwolfSSLは,現在gitHub上のwolfSSLリポジトリのマスターブランチにあり次期リリースに含まれる予定になっております。

ルネサス環境でのwolfSSLを使った開発についてご不明な点やwolfSSLの入手については、support@wolfssl.comまで日本語でお問い合わせ下さい。

原文: https://www.wolfssl.com/renesas-e2studio-support/
wolfSSLホーム:www.wolfssl.jp (English:www.wolfssl.com)

ルネサスCS+サポート

wolfSSL組み込みSSL/TLSライブラリルネサスCS+サポートとテストプロジェクトファイルを追加いたしました。
ルネサスCS+(旧称CubeSuite +)は、ルネサス製MPU向けアプリケーションのソースコード編集、ビルドおよびデバッグが容易にできる統合開発環境です。

今回追加されたCS+用プロジェクトファイルは、wolfSSLライブラリを構築するためのファイルとwolfCryptテストアプリケーションをビルドして実行するためのプロジェクトファイルです。
CS+用プロジェクトファイルはwolfSSLディレクトリのIDE/Renesas/cs+/Projectsにあります。
プロジェクトのビルド方法については、IDE/Renesas/cs+/Projects/READMEを参照してください。
また、CS+をサポートしたwolfSSLは現在GitHubマスターブランチにあり、次のリリース版に含まれる予定です。
ご不明な点やwolfSSLを入手するには、support@wolfssl.comまで日本語でご連絡ください。

wolfSSLはTLS1.3をサポートしています!詳しくはこちら

原文: https://www.wolfssl.com/wolfssl-renesas-cs-support/
wolfSSLホーム:www.wolfssl.jp (English:www.wolfssl.com)

OpenSSL互換レイヤーに新たに15APIを追加

wolfSSL組み込みSSL/TLSライブラリには、OpenSSL互換レイヤーというOpenSSLとの互換性を持たせるための機能があります。
このOpenSSL互換レイヤーによって、OpenSSL用に作られたアプリケーションをwolfSSLとリンクしてビルドすることができます。今回のOpenSSL互換レイヤーの拡張は、様々なOpenSSLアプリケーションプロジェクトに対応するために行われたもので、新たに15APIを追加いたしました。
追加したAPIは以下の通りです。

OpenSSL_add_all_algorithms_noconf()
RAND_poll()
d2i_X509_fp()
X509_check_ca()
X509_CRL_free()
X509_STORE_add_crl()
d2i_X509_CRL_fp()
PEM_read_X509_CRL()
ASN1_GENERALIZEDTIME_free()
ASN1_STRING_print_ex()
ASN1_TIME_to_generalizedtime()
d2i_PKCS12_fp()
i2d_RSAPublicKey()
d2i_RSAPublicKey()
i2c_ASN1_INTEGER()

また、以下の4つのヘルパー関数も新たに追加しました。

int wolfSSL_ASN1_TIME_get_length(WOLFSSL_ASN1_TIME *t)
WOLFSSL_ASN1_TIME構造のlengthメンバーを取得。

unsigned char* wolfSSL_ASN1_TIME_get_data(WOLFSSL_ASN1_TIME *t)
WOLFSSL_ASN1_TIME構造体のdataメンバーを取得し、ASN1_TIMEのポインタを返す。

int wolfSSL_X509_CA_num(WOLFSSL_X509_STORE* store)
WOLFSSL_X509_STORE内のWOLFSSL_CERT_MANAGERのsignerメンバーの数を返す。

long wolfSSL_X509_get_version(const WOLFSSL_X509 *x509)
X509のバージョンを返す。

OpenSSLからwolfSSLへ移行する理由としてメモリ使用量、移植性、アルゴリズムサポート、CAVPとFIPS 140-2の検証、専門エンジニアによる商用サポートなどがございます。
詳しくは、wolfSSL vs. OpenSSLのページをご覧ください。

アプリケーションでのwolfSSL使用についてやOpenSSLのwolfSSLへの置き換えについてのご質問はsupport@wolfssl.comまで日本語でお問い合わせ下さい。

原文: https://www.wolfssl.com/openssl-compatibility-layer-expands-15-new-functions/

Posts navigation

1 2 3 4 5 28 29 30