うるふブログ

wolfTips: 最初の対向テスト

wolfSSLライブラリを使って目的の組込みアプリケーションを開発する際、ビルドが終わってターゲッットにダウンロードしたアプリケーションのTLS通信をテストするのに対向テスト用のTLSクライアントないしサーバが必要になります。wolfSSLではそのような時のために、PCやLinuxなどの通常の開発環境の上で動作するTLSサーバとクライアントが含まれています。

wolfSSLライブラリを通常のセルフ環境でビルドすると、ライブラリとともに、examplesディレクトリの下にclient/client(TLSクライアント)とserver/server(TLSサーバ)がビルドされます。これらは、1往復の暗号化されたメッセージのやりとりをするだけの簡単なTLSクライアントとサーバですが、さまざまなコマンドオプションを持っているので開発環境の上で動作させて、色々な条件で目的の組込みアプリケーションとの対向テストをすることができます。

wolfSSLのビルドが終わったら、まず二つのコマンドウィンドウを開いて、一つ目のウィンドウから

$ ./examples/server/server

とコマンドを発行してみます。ビルドが正常に終了しているなら、開発環境の上で、テスト用のサーバがTLSアクセプト状態となります。次に、二つ目のウィンドウから

$ ./examples/client/client

とコマンドを発行すると、デフォルトの接続先であるlocalhost(127.0.0.1)、つまり先ほど立ち上げたテスト用サーバにTLS接続に行きます。デフォルトのポートは”11111″です。通信が成功すると次のように、使用されたTLSのバージョン、暗号スイート、楕円曲線の種類や、送られたメッセージなどが表示されるはずです。

===
SSL version is TLSv1.2
SSL cipher suite is TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
SSL curve name is SECP521R1
Client message: hello wolfssl!
===

テスト用サーバとクライアントが正常に動作していることを確認したら、コマンドオプションを指定して目的のテストをしてみてください。

使用例:

クライアント側で一番最初に必要になるのは、次のような接続先、ポート指定でしょう。-h オプションで接続先のホスト、ドメイン名やIPアドレスを、-pオプションでポート番号を指定することができます。

$ ./examples/client/client -h <ホスト名> -p <ポート番号>

また、さらに

-g: 簡単なHTTP GETリクエストの送信

-v: TLSバージョンの指定(0:SSLv3, 1:TLS1.0, 2: TLS1.1: 3:TLS1.2, 4: TLS1.3)

などが可能です。

このコマンドでは証明書、鍵ファイルはデフォルトでは./certsディレクトリの下にあるclient-cert.pem(クライアント証明書)、client-key.pem(クライアント鍵)、ca-cert.pem(CA証明書)が使用されます。これらをテスト用に独自のものに変更したい場合は、
-c <file>  証明書ファイル, -k <file>   鍵ファイル,   -A <file>   CA証明書ファイルの各オプションで指定することができます。

また、-eオプションを指定するとこのビルドで組み込まれている暗号スイートの一覧を得ることができるので、その一覧の中から適当なスイートを選択して -lオプションで指定することで、下記の例のように特定のスイートを指定したTLS接続をテストすることができます。

$ ./examples/client/client -l ECDHE-ECDSA-AES128-GCM-SHA256

 

テストサーバ側を起動する際は、通常は外部からの接続を可能にするためにポートをバインドする必要があります。これには-bオプションを指定します。デフォルトのアクセプトポートは”11111″です。その他のポートを使用する場合は-pオプションで指定します。また、テストサーバはデフォルトではクライアント認証を行います。このため、クライアント側が認証に対応していない場合は、-dオプションを指定します。

./examples/server/server -b -d -p <ポート番号>

 

クライアント、サーバとも使用できるオプションについては -? でヘルプメッセージを表示できるので、さらに詳しい使い方についてはそちらを参照してください。

 

ET & IoT Technology 2018出展とセミナー開催のご案内

組込み総合技術展/IoT総合技術展まであと一ヶ月を切りました!今年はブース出展に加え、TLS 1.3セミナーを2回開催いたします。

日時: 2018年11月14日(水)〜16日(金)10:00〜17:00、15日(木)は18:00まで
会場: パシフィコ横浜 〒220-0012 神奈川県横浜市西区みなとみらい1-1-1
主催: 一般社団法人 組込みシステム技術協会
wolfSSLブース番号: C-52

wolfSSLブースでは、8月に正式発行されたTLS1.3をご案内いたします。wolfSSLの新機能、wolfMQTT、wolfCrypt FIPSのほか、この度wolfTPM、wolfSSHもご紹介をはじめました。暗号化やSSL / TLSに関する一般的な質問もお受けしております。

セミナーは、展示会初日に会議センター[313+314]で実施いたします。

タイトル:
動き始めたTLS 1.3。新時代のIoTプロトコル
* 事前登録制です。ぜひお早めにこちらからお申し込みください。

概要:
ネットワークセキュリティの基本、SSL/TLS。性能、安全性の両面で全面刷新の新バージョンTLS1.3。サーバ、ブラウザの対応とともに、予想通り急速に立ち上がり始めている新プロトコルバージョンの特長を最大限に引き出し、IoTデバイス新製品の競争力としていくために必見の速習教室。

受講対象者:
・TLS 1.3に興味のあるエンジニア

古城 隆
wolfSSL Inc. 日本オフィス技術統括

PWS-1 11月14日(木)10:30-11:15
PWS-2 11月14日(木)11:45-12:30

スタッフ一同みなさまのご参加をお待ちしております!

さらに詳しい情報は弊社問い合わせ窓口 info@wolfssl.jp までお問い合わせください。

走り出した TLS 1.3(2):0-RTTでいきなり暗号化メッセージ

連載第二回、TLS1.3の性能面での改善項目、0-RTT (Early Data) を紹介しようと思う。(0-RTT: Zero Round Trip Time)

これまでのTLS/SSLの性能上の大きな悩みは、冒頭のハンドシェイクによる遅延だ。これまではハンドシェイクは、安全な暗号通信をするためのやむをえないオーバヘッドと思われていた。それが、使用条件はあるものの、通信の冒頭で暗号化されたメッセージを送れる方法が正式に認められたのだから、かなり画期的なことだと思う。特に、少しでも早くデータをサーバに届けたいIoTデバイスにとっては朗報のはずだ。

しかし実は、これを1.3の冒頭に紹介するかどうかについては少々悩ましい。というのは、Early Dataによる暗号化メッセージはセキュリティ的には安全性がやや落ちるからだ。もう少し厳密な言い方をするなら、Early Data では完全前方秘匿性(PFS)が保証されなくなる。それと、サーバにとってはリプレイ攻撃のリスクも伴う。

PFSというのは将来にわたって過去の通信内容の秘匿性が失われないようにする。これまでは通信時の秘匿性だけを考えていたのに対して、メッセージが大規模、長期に蓄積分析されるリスクに対応できるための新しいディメンジョンの秘匿性だ。TLS1.3の検討過程で実現の必要性が熱心に議論され、認識されたいわばTLS1.3の安全性側の目玉の一つだ。そのPFSについて、「だたし、Early Dataでは保証しない」というのだから、いくら性能側から魅力的とはいっても一番はじめにもってくるのは少々はばかられるのだけれど、やっぱりEarly Dataから行こう!

TLS1.3では、1.2までのセッションIDやセッションチケットが整理され、「セッション再開と事前共有鍵」として統合された方法が定義された。セッション再開にしろ事前共有鍵にしろ、セッションを再確立しようとする際は、安全な鍵がきちんと準備された状態になっていることが保証されている。ただし、TLS1.3ではそれをそのまま使用するのでなく、もう1ラウンド(EC)DHEによって鍵合意を行って完全前方秘匿性を確保した鍵によってアプリケーションデータの送受信をするという選択ができるようになっている。Early Dataではそのフェーズより前にアプリケーションデータを送ることになるので、そういう選択肢はなくなってしまう。

Early Dataのニーズは、もともとはWebサーバのようなアプリケーションから出てきた。Webサーバへのアクセスの多くは再接続だから、これを高速化できる処理はサーバ負荷の観点からもブラウザ側からも嬉しい話だ。しかしIoTのデバイスサイドのようなものから見ても、小さなデータを周期的、あるいはイベント発生時にできるだけ速やかにサーバに送りたいというニーズは多い。そいう場合、それを以前に確立したセッションに対するセッション再開として処理できるケースが多いはずだ。一方、そういうデータの多くはPFSまでの秘匿性は必要としないかもしれない。そういう場合、Early Dataを使えばTCPと同じくらいのレベルの短い遅延でデータを送れるようになったのだ。

Early Dataだけでなく、TLS1.3を詳しくみていくと、あちこちで安全性と性能のトレードオフをアプリケーションの要件などから選択できるようになっているのに気がつく。ネットの上のアプリケーション・ドメインの広がり、それに伴うセキュリティ要件、性能要件の多様化に対応しようとするTLS1.3の姿勢の表れなのだろう。TLS1.3を単に1.2までのたくさんの問題点が再整理された安全性の改善されたプロトコルバージョンとみて、最小のインパクトで1.3に移行することも可能ではある。その一方で、こうした新しい仕組みを積極的に利用して、自社製品の強みとして生かしていくこともできるようになっているところが1.3の優れた検討成果だと思う。

走り出した TLS 1.3 第一回はこちらです。

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

オープンソースカンファレンス2018 Tokyo/Fallに出展します!

10月最後の週末に開催される、オープンソースカンファレンス2018 Tokyo/Fallに出展いたします。wolfSSLの最新情報、TLS 1.3で変わる点などご紹介します。ご参加される方は、展示会場206のwolfSSLブースへもぜひお立ち寄りください!

日時: 10月27日(土) 10:00-18:00(展示:11:00-17:30)
    10月28日(日) 10:00-17:30(展示:10:00-16:00)
入場: 無料
会場: 明星大学 日野キャンパス 28号館 2F(OSC受付)
主催: オープンソースカンファレンス実行委員会

 

セッションもひとつ担当します!

10月27日(土) 11:00〜11:45
TLS1.3がやってきた: 全面改版されたインタネットセキュリティプロトコルの標準、TLS1.3についてIoTデバイスからの視点から解説

ご参加申込み、お待ちしております!

wolfSSLのApache Mynewtサポート

Apache Mynewtはオープンソースでモジュール形式のリアルタイムOS(RTOS)です。メモリとストレージが限られており、最小限の消費電力で長期間稼働する必要があるIoTデバイスのために設計されたものです。詳細は Apache Mynewt のウェブサイトを参照してください。
http://mynewt.apache.org/

wolfSSLはApache Mynewtのサポートをお知らせいたします!
WOLFSSL_APACHE_MYNEWT と呼ばれる wolfSSL の mynewtポート層を有効にするための新しいプリプロセッサ定義を追加しました。 このポートは、Mynewtのrawソケットインタフェース “mnsocket”を使用して、SSL / TLS接続を介してデータを送受信します。

mynewt プロジェクトで wolfSSL を利用するには、wolfSSL のソースコードをプロジェクトへ配置する必要があります。配置方法とビルド方法については wolfSSL に含まれている README.md ドキュメントを参照してください。Mynewtポートとプロジェクトのドキュメントは、wolfSSLパッケージの IDE/mynewt ディレクトリにあります。
https://github.com/wolfSSL/wolfssl/tree/master/IDE/mynewt

Mynewt 用の wolfSSL クライアントサンプルも作成しました。
Mynewt プロジェクトで wolfSSL クライアントサンプルを使用するには、まず wolfssl-example ソースコードをプロジェクトに配置する必要があります。 ビルド、テスト、および配置の方法については、GitHubの wolfssl-examples リポジトリのREADME.mdドキュメントを参照してください。
https://github.com/wolfSSL/wolfssl-examples/tree/master/mynewt

wolfSSL組み込みSSL / TLSライブラリに関するより詳しい情報は、info@wolfssl.jp までお問い合わせください。また、wolfSSL は TLS 1.3FIPS 140-2 をサポートしています。両方とも Apache Mynewt と併用することができます。

走り出した TLS 1.3

標準策定フェーズから実用、普及にむけてTLS1.3が本格的に動き出した。サーバ側の対応は先頭を走る主要サイトの準備は着々すすみ、FireFox、Chromeとメジャーなブラウザのサポート開始とともに、ネット上の現実のトラフィックのTLS1.3サポート比率が立ち上がり始めているようだ。詳細に見れば、まだまだ全体からすると一部のトラフィック、それもほとんどはDraft23 (最終版は28) というようなこともあるが、予想通りTLS1.3の立ち上がりは非常に早いようだ。TLS1.2やそれ以前のバージョンのときの新バージョン移行では数年以上を要した。TLS1.3は、これまでのTLSのバージョンアップと異なり、安全性の面だけでなく広い意味での性能に対する改善が随所に対策されていることが大きい。オーバーヘッドの軽減は、コスト負担に悩むサーバ側各社にとって何よりのモチベーションになる。ブラウザユーザにとっても、より快適なブラウズ環境を意味するのだから、新バージョンへの移行スピードが従来より大幅に早いのは当然ともいえる。

では、この新バージョンプロトコルがIoTエッジデバイス側の我々にどのような意味をもってくるのか。新バージョンの特徴を自社製品の競争力の源泉にできないのか?この連載では、そうしたあれこれをTLS1.3の違いから順次解き明かして行こうと思う。

今年に入って急速に立ち上がるTLS1.3対応のトラフィック比率
(wolfssl.jpサイトへのアクセス比率)

 

wolfSSL TLS 1.3正式対応版のダウンロードはこちらから。

 

連載の内容については概ねこちらのセミナーでもお話をさせていただくことになっているので、掲載を待てない、というかたはぜひご参加ください。

wolfSSLセミナー2018秋開催 品川、10月4日(木) 13:30-17:00
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
昨年に続きwolfSSLエンジニアリングマネジャのChris Conlonが来日し、最新TLS 1.3の優位点、TPM2.0ライブラリ、wolfSSH、OpenSSL互換レイヤーなどご紹介します(英語、日本語概訳)。
https://www.wolfssl.jp/wolfblog/2018/09/10/wolfsslseminar/

 

マクニカ社主催セミナーでの講演 新横浜、10月17日(水) 13:30-16:30
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
「AWSクラウドに繋がるエッジ端末 IoT設計支援とセキュリティ対策セミナー」で講演させていただきます。wolfSSLセッション:「 IoTデバイスのセキュリティ、そろそろ真剣に考えませんか?」(日本語)
http://bit.ly/2xOPnHk

 

Japan IT Week、IoT/M2M展【秋】に出展します

wolfSSLは、2018/10/24(水)から26(金)まで幕張メッセにて開催されるJapan IT Week 内、IoT/M2M展【秋】へ出展いたします。Business DirectorのRich Kelmも来日し、世界500社以上で採用されているwolfSSLのグローバル事例などもご紹介いたします。

会期: 2018年10月24日(水)〜26日(金)
時間:10:00〜18:00(最終日は17:00終了)
会場:幕張メッセ
wolfSSL小間番号:21-42
展示会wolfSSLページ: https://d.japan-it.jp/ja/Expo/5071001/wolfSSL-Inc

展示会公式ページ: https://www.cloud-japan.jp/aki/Home/

ご紹介製品:

wolfSSL – TLS 1.3に対応した、IoTデバイス向けSSL/TLSセキュリティライブラリ
wolfCryptとFIPSモジュール – メモリ制限の厳しい環境に適した暗号ライブラリとFIPS140-2認証を取得したFIPSモジュール
wolfMQTT – MQTT v5.0に準拠したMQTTクライアント
wolfTPM – エッジノードのセキュリティを実現する軽量TPM2.0ライブラリ
wolfSSH – ポータブルな組込み向けSSHライブラリ

ぜひお気軽にwolfSSLブースへお立ち寄りください。
会場でのミーティング予約をご希望の方は、info@wolfssl.jp までご連絡ください。

 

みなさまのご来場をお待ちしております。

日経 xTECH EXPO 2018に出展します

wolfSSLは、2018/10/17(水)から19(金)まで東京ビッグサイトにて開催される「日経 xTECH EXPO 2018」内、IoT Japan 2018へ出展いたします。

会期: 2018年10月17日(水)〜19日(金)
時間:10:00〜17:30
会場:東京ビッグサイト
wolfSSL小間番号:1155
展示会公式ページ: https://expo.nikkeibp.co.jp/xtech/

ご紹介製品:

wolfSSL – TLS 1.3に対応した、IoTデバイス向けSSL/TLSセキュリティライブラリ
wolfCryptとFIPSモジュール – メモリ制限の厳しい環境に適した暗号ライブラリとFIPS140-2認証を取得したFIPSモジュール
wolfMQTT – MQTT v5.0に準拠したMQTTクライアント
wolfTPM – エッジノードのセキュリティを実現する軽量TPM2.0ライブラリ
wolfSSH – ポータブルな組込み向けSSHライブラリ

ぜひお気軽にwolfSSLブースへお立ち寄りください。
会場でのミーティング予約をご希望の方は、info@wolfssl.jp までご連絡ください。

みなさまのご来場をお待ちしております。

wolfSSLセミナーのご案内:「最新TLS 1.3」&「wolfTPMとwolfSSH」&「OpenSSL互換レイヤ」

このたびwolfSSLでは、弊社エンジニアリングマネジャのChris Conlonが来日し、技術セミナーを開催いたします。ついに発行されたTLS 1.3で変化するSSL/TLSの世界、日本では初のご紹介となるwolfTPMとwolfSSH、またwolfSSLが持つOpenSSL互換レイヤについて説明いたします。みなさまのお越しをお待ちしております。

=========================================================
wolfSSLセミナー2018秋

日時:  2018年10月4日(木)13:30〜17:00 (開場13:15〜)
会場:  品川プリンスホテル Nタワー4階 地図
ーーーーーJR線・京急線の品川駅(高輪口)から徒歩約3分
費用:  無料
お申し込みフォーム:こちらからどうぞ
ご注意:
* お申し込み後、数日中に確認メールを差し上げます。
* お席に限りがありますため、ぜひお早めにお申し込みください。
* 当日会場でお名刺を一枚頂戴いたします。

=========================================================

** セミナー内容 **

・wolfSSL会社概要と製品のご紹介
・ついに発行となった最新TLS 1.3の優位点
・wolfSSLでTLS 1.3を使ってみる
・エッジノードのセキュリティを実現する軽量TPM2.0ライブラリ、wolfTPMのご紹介
・ポータブルな組込み向けSSHライブラリ、wolfSSHのご紹介
・wolfSSLのOpenSSL互換レイヤーの使い方
・wolfSSLをセキュアに保つテストサイクルのご紹介
(プレゼンテーションは英語ですが、適宜概要を通訳いたします。)



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

wolfTips:wolfSSLのビルドオプションの指定方法

wolfSSLは、お使いの開発環境によって2つのビルドオプションの指定方法があります。
● configureコマンドでの指定
Linuxなどで主に使われているconfigureコマンドでMakefileを生成する場合は、–enable-xxxxオプションを指定します。
例:
# ./configure –enable-opensslextra –enable-debug
これによって、wolfSSLのライブラリー、サンプルプログラムなどをビルドするMakefileとconfigureコマンドで指定したビルドオプションをC言語のヘッダーファイルに変換したwolfssl/options.hファイルが生成され、makeコマンド実行時に参照されます。自分のアプリケーションのためのコンパイルの際は、コンパイラのincludeオプションやソースコードの先頭の#includeでこのwolfssl/options.hをインクルードしてください。
個々のオプションなど詳細については、ユーザマニュアル2.5 ビルドオプションを参照ください。
https://www.wolfssl.jp/wolfsite/wp-content/uploads/2016/08/wolfSSL_UserManual-jp-3_9_0.pdf
● user_settings.hによる指定
Windows上でIDEなどconfigureコマンドを使わない環境で開発を行う場合は、user_settings.hというファイル名のヘッダーファイルを作成し、ビルドオプションを設定します。その場合、開発ツールの設定でWOLFSSL_USER_SETTINGSマクロをdefineするよう設定してください。また、user_settings.hのパスをインクルードパスに追加してください。
個々のオプションなど詳細については、ユーザマニュアル 2.4 非標準環境でのビルドを参照ください。
https://www.wolfssl.jp/wolfsite/wp-content/uploads/2016/08/wolfSSL_UserManual-jp-3_9_0.pdf
user_settings.hの各開発プラットフォームの例が、以下のファイルにありますので併せてご参照ください。
Windows: IDE/WIN/user_settings.h
GCC_ARM: IDE/GCC-ARM/Header/user_settings.h
Xcode: IDE/XCODE/user_settings.h
Renesas cs+: IDE/Renesas/cs+/Projects/common/user_settings.h
さらに詳しい情報は弊社問い合わせ窓口info@wolfssl.jpまでお問い合わせください。
wolfSSLホーム:www.wolfssl.jp (English:www.wolfssl.com)

Posts navigation

1 2 3 4 5 6 28 29 30