**************************************************************************
セッションs2d
テーマ:オープンソースで覗いてみよう、組込みセキュリティのしくみ(原理篇)
講師:古城隆(wolfSSL, Inc.)
松原豊(名古屋大学)
日時:2017/8/25 9:00-10:10
参加人数:約20名(終了時)
**************************************************************************

* 概要
> pythonとミニチュアTLS(tiny TLS)を使って理解
> toppersの動作するマイコンボードで実演
* もくじ
> 出発点:なにも隠さないクライアント、サーバ間の通信
> 共通鍵暗号
> DH公開鍵
> SSL/TLS
> 通信相手は本物?ディジタル証明、公開鍵証明等
* 扱う内容
> トランスポート層のSSL/TLS通信について扱う
* 出発点
> WireSharkで観測可能
* 共通鍵暗号
> 通信に共通の鍵で暗号化(exclusive or)する。
> メッセージは観測されても暗号化されている
> 今でも一般的に使われている(例、AES暗号)
> 問題:暗号鍵をどう渡すか
* DH公開鍵
> 生成数(特別な数値)と大きな素数を用いる
> メッセージを盗聴されても最終的な値には到達しない
* 通信相手は本物?
> ディジタル署名
->ちょっと不思議な素数ペアを用いる
> 大きなメッセージに署名するのは現実出来でない
> メッセージダイジェスト
->長いメッセを固定長の数値に変換し、それに署名する
->MDS, SHA-1, SHA-2, SHA-3等
> 問題
->署名がコピペかも
通信中に署名させる
->相手の数だけ公開鍵を持ってないといけない
認証局(CA)に署名をしてもらう
> 公開鍵証明書
->X509, ASN.1, PEM等
* 質疑応答
> 認証局の証明書はどうやって手に入れるの?
->最初にパソコンを買ってきた段階で入っている
->組込は自分で証明書を入れてあげないとだめ
> ディジタル署名はいつ渡されたの?
->メッセージと一緒に送る
->例は一対一なので互いに鍵を共有している
->この方法だと問題で述べた通り鍵が増えすぎる