************************************************************************** セッション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等 * 質疑応答 > 認証局の証明書はどうやって手に入れるの? ->最初にパソコンを買ってきた段階で入っている ->組込は自分で証明書を入れてあげないとだめ > ディジタル署名はいつ渡されたの? ->メッセージと一緒に送る ->例は一対一なので互いに鍵を共有している ->この方法だと問題で述べた通り鍵が増えすぎる