Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
JavascriptJavascript で暗号化で暗号化無料で可能な限りセキュリティを高める。2013/06/08
自己紹介自己紹介情強そば屋の中の人こと砂原 昌史そば屋五兵衛の店主 砂原 謙一(父)現在⼆級在宅⼠とプログラミングの⽇々◦ そろそろ本気出したい◦ 最近は C#(WPF) いじってます言語◦ メイン:html, css, javascript,...
目次目次五兵衛 web サイトの履歴通販システムの問題点暗号技術に触れるSSL/TLS呼べば答えるインターネット呼べば答えるインターネット暗号暗号鍵作成 – OpenSSL復号Pros, ConsまとめIcons by http://dryic...
五兵衛五兵衛 webweb サイトの履歴サイトの履歴www.sobaya-gohei.com90 年代後半 ホームページ開設。◦ 当初は父が作成&管理◦ Web サイトはプロバイダーのホームページスペースに設置200x プロバイダ乗り換えで C...
通販システムの問題点通販システムの問題点お客様の情報が平分のままネットワークに流れるもちろん SSL 使えない。さくらインターネットの共用 SSL はスタンダードプラン以上 (ドメイン名と違うのでどのみち使えない)少なくとも通販システムの管理を...
暗号技術に触れる暗号技術に触れる2006 就職。LAN ドライバの評価に携わる。◦ -無線 LAN との出会い-評価の仕事だったので詳しいことは知る必要はないが……◦ やはり技術的なことは気になる◦ 認証、暗号化、証明書などを調べる無線 LAN...
SSL/TLSSSL/TLS+ VPS とか……サービスサービスサービスサービス会社会社会社会社 商品名商品名商品名商品名 価格価格価格価格VeriSign セキュアサーバーID 85050 円/YearGlobalSign クイック認証 SS...
呼べば答えるインターネット呼べば答えるインターネット⾞輪の再発明は避ける世界には同じようなことを考えた人がいるはず!いろいろ検索していて、AES として sjcl に、公開鍵暗号(RSA) として Tom Wu 氏のライブラリにたどり着く。SJ...
暗号暗号暗号暗号暗号暗号暗号暗号
暗号について暗号について共通鍵暗号◦ 2000年以上の歴史を持つ基本的な暗号化方式。◦ データを鍵で暗号化。復号化するときも同じ鍵を使う。◦ DES, AES, RC4 など◦ 現在 AES が一般的◦ Camellia なんてのもある (Op...
なぜ2種類使うのか?なぜ2種類使うのか?共通鍵暗号 (AES)◦ 暗号化は簡単だ。だがパスフレーズをどうやって受け取る?公開鍵暗号 (RSA)◦ 暗号化できるデータの⻑さが鍵⻑によって決まってしまう!どうするか?両方使え!データは AES で暗...
暗号鍵作成暗号鍵作成 -- OpenSSLOpenSSLTom Wu 氏のライブラリで使う RSA のキーペアは事前に OpenSSL にて作成します。鍵作成コマンド : test.key という名前で鍵⻑が2048bit の場合◦ opens...
暗号化手順暗号化手順1. パスフレーズ作成 (for AES)2. データの暗号化 - AES3. パスフレーズの暗号化 - RSAお客様端末での処理Icons by http://dryicons.com
パスフレーズ作成パスフレーズ作成自動⽣成。英数字といくつかの記号から導出。◦ 通販ページではお客様のメールアドレスも利用乱数◦ 古いブラウザでは Math.random()◦ 新しいブラウザではwindow.crypto.getRandomVa...
データの暗号データの暗号 AESAESvar encData = sjcl.encrypt(passWord, rawData, PARAM);◦ passWord, rawData : ⽂字列◦ PARAM : オブジェクト。オプションです。...
データの暗号データの暗号 RSARSAvar rsa = new RSAKey();//1rsa.setPublic(PUB_KEY, EXP);//2var encPW = rsa.encrypt(passWord);//3◦ 1.RSAKe...
復号復号RSA 鍵情報のすべてを使います。var rsa = new RSAKey();rsa.setPrivateEx(n,e,d,p,q,dmp1,dmq1,coeff);var result = rsa.decrypt(encData);...
PROS, CONSPROS, CONSメリット、デメリットを SSL/TLS, js 暗号, 無対策で比較
SSL/TLS Js 暗号化1. 有料2. 証明書の偽造、詐称などを検出するための認証機能を持つ。(プロトコルの脆弱性に注意)3. 暗号化の保証は web サーバーまで。その後は……4. ブラウザの javascript 設定に無関係。ただしプ...
Js 暗号化 無対策1. 無料2. MITM 攻撃の可能性◦ 店頭でオレオレ証明書を配布する方法もあるが、非現実的すぎる。3. メールでデータを受け取るまで暗号化。4. javascript が有効になっていないと使えないが、ブラウザに関係なく...
まとめまとめSSL/TLS の方がセキュリティは高いですが、脆弱性も⾒つかっているので注意。◦ パッチやアップデートの適用を。Js 暗号化に穴がいくつかありますが、やらないよりはまし◦ ぬののふく <<< くさりかたびらライブラリの中身を確認し...
ありがとうございました。砂原 昌史
Upcoming SlideShare
Loading in …5
×

Javascript で暗号化

24,807 views

Published on

NSEG 第 40 回勉強会で、mebius こと砂原昌史さんが発表でお使いになったスライドを代理でアップロードしました。

Published in: Technology
  • Sex in your area is here: ♥♥♥ http://bit.ly/39mQKz3 ♥♥♥
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Dating direct: ❤❤❤ http://bit.ly/39mQKz3 ❤❤❤
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Javascript で暗号化

  1. 1. JavascriptJavascript で暗号化で暗号化無料で可能な限りセキュリティを高める。2013/06/08
  2. 2. 自己紹介自己紹介情強そば屋の中の人こと砂原 昌史そば屋五兵衛の店主 砂原 謙一(父)現在⼆級在宅⼠とプログラミングの⽇々◦ そろそろ本気出したい◦ 最近は C#(WPF) いじってます言語◦ メイン:html, css, javascript, PHP, C#◦ メイン:html, css, javascript, PHP, C#◦ サブ:perl, powershell◦ たしなむ程度:ruby, python◦ 忘れつつある:vbs◦ ほぼ忘れた:C松本経済新聞の記事は一部誤りが。◦ 過去にプログラマーはしたことありません。Icons by http://dryicons.com
  3. 3. 目次目次五兵衛 web サイトの履歴通販システムの問題点暗号技術に触れるSSL/TLS呼べば答えるインターネット呼べば答えるインターネット暗号暗号鍵作成 – OpenSSL復号Pros, ConsまとめIcons by http://dryicons.com
  4. 4. 五兵衛五兵衛 webweb サイトの履歴サイトの履歴www.sobaya-gohei.com90 年代後半 ホームページ開設。◦ 当初は父が作成&管理◦ Web サイトはプロバイダーのホームページスペースに設置200x プロバイダ乗り換えで CGI (perl) 使用可能に。◦ 通販ページ作成◦ 通販ページ作成◦ メール投稿スクリプトを拾ってきてカスタマイズ2003 クロネコ@ペイメント対応200x ドメイン取得 (さくらインターネット : ライトプラン[最安])2010 サイトリニューアル2013 クロネコ web コレクト対応
  5. 5. 通販システムの問題点通販システムの問題点お客様の情報が平分のままネットワークに流れるもちろん SSL 使えない。さくらインターネットの共用 SSL はスタンダードプラン以上 (ドメイン名と違うのでどのみち使えない)少なくとも通販システムの管理をしているからには情報漏洩があった場合の責任問題に!報漏洩があった場合の責任問題に!何か対策をしたい。高まる暗号化への思い(個人的に)Icons by http://dryicons.com
  6. 6. 暗号技術に触れる暗号技術に触れる2006 就職。LAN ドライバの評価に携わる。◦ -無線 LAN との出会い-評価の仕事だったので詳しいことは知る必要はないが……◦ やはり技術的なことは気になる◦ 認証、暗号化、証明書などを調べる無線 LAN にも SSL/TLS と同じ仕組みが!これをなんとかして通販システムに組み込む術はないか?とこれをなんとかして通販システムに組み込む術はないか?と考え始めるでも普通 WEB サイトの暗号化といえば HTTPS, SSL/TLSだよね!•ちなみに無線 LAN の認証方式にも TLS が登場します。•EAP-TLS, PEAP-TLS, PEAP-GTC(内部認証としての TLS)Icons by http://dryicons.com
  7. 7. SSL/TLSSSL/TLS+ VPS とか……サービスサービスサービスサービス会社会社会社会社 商品名商品名商品名商品名 価格価格価格価格VeriSign セキュアサーバーID 85050 円/YearGlobalSign クイック認証 SSL 36540 円/YearGeoTrust クイック SSL プレミアム 36540 円/Year+ VPS とか……◦ さくらのVPS 1G 980/Month, 10780/Year格安証明書もありますが……地方の零細企業にとってはちょいと敷居が高い。•貧乏人は頭を使え! javascript で暗号化すればよくね?•CGI で疑似 SSL/TLS という手もあるが、オレオレ証明書に代わりはないので javascript で出来るならそれだけで済ませたい。Icons by http://dryicons.com
  8. 8. 呼べば答えるインターネット呼べば答えるインターネット⾞輪の再発明は避ける世界には同じようなことを考えた人がいるはず!いろいろ検索していて、AES として sjcl に、公開鍵暗号(RSA) として Tom Wu 氏のライブラリにたどり着く。SJCL : Stanford Javascript Crypto LibrarySJCL : Stanford Javascript Crypto Library公開鍵暗号の js 実装は他にもいろいろあるみたいです。javascript での AES は sjcl がスタンダードっぽい。Icons by http://dryicons.com
  9. 9. 暗号暗号暗号暗号暗号暗号暗号暗号
  10. 10. 暗号について暗号について共通鍵暗号◦ 2000年以上の歴史を持つ基本的な暗号化方式。◦ データを鍵で暗号化。復号化するときも同じ鍵を使う。◦ DES, AES, RC4 など◦ 現在 AES が一般的◦ Camellia なんてのもある (OpenSSL.org とか)公開鍵暗号公開鍵暗号◦ 公開鍵で暗号化したものは秘密鍵でのみ復号でき、秘密鍵で暗号化したものは公開鍵でのみ復号できる。◦ わりと最近発⾒された新たな暗号化方式。RSA など◦ 素因数分解の難解さと関連する暗号化方式。◦ 公開鍵 n = p*q (p, q は素数)◦ p, q は秘密鍵⽣成にも利用されるが、巨⼤な n からは p と q を導きだすのは困難。(参考:wikipedia RSA暗号)これを両方使います。Icons by http://dryicons.com
  11. 11. なぜ2種類使うのか?なぜ2種類使うのか?共通鍵暗号 (AES)◦ 暗号化は簡単だ。だがパスフレーズをどうやって受け取る?公開鍵暗号 (RSA)◦ 暗号化できるデータの⻑さが鍵⻑によって決まってしまう!どうするか?両方使え!データは AES で暗号化パスフレーズは短いので RSA で暗号化 これを両方送る。Icons by http://dryicons.com
  12. 12. 暗号鍵作成暗号鍵作成 -- OpenSSLOpenSSLTom Wu 氏のライブラリで使う RSA のキーペアは事前に OpenSSL にて作成します。鍵作成コマンド : test.key という名前で鍵⻑が2048bit の場合◦ openssl genrsa -out test.key 2048鍵情報表示 (公開鍵、秘密鍵含めてすべて)◦ openssl rsa -in test.key –text◦ openssl rsa -in test.key –text◦ 実際に使用する際は : とかスペースなどを取って使います。Modulus (公開鍵) 表示◦ openssl rsa -in test.key -noout –modulus◦ これで出⼒される 16 進数⽂字列をそのまま使います。Icons by http://dryicons.com
  13. 13. 暗号化手順暗号化手順1. パスフレーズ作成 (for AES)2. データの暗号化 - AES3. パスフレーズの暗号化 - RSAお客様端末での処理Icons by http://dryicons.com
  14. 14. パスフレーズ作成パスフレーズ作成自動⽣成。英数字といくつかの記号から導出。◦ 通販ページではお客様のメールアドレスも利用乱数◦ 古いブラウザでは Math.random()◦ 新しいブラウザではwindow.crypto.getRandomValues()新しいブラウザではwindow.crypto.getRandomValues()◦ Firefox21 で対応になったので取り入れてみました。Chrome, Safari では結構前から対応していたようです。このパスフレーズは実際の暗号に使う鍵の元になる。Icons by http://dryicons.com
  15. 15. データの暗号データの暗号 AESAESvar encData = sjcl.encrypt(passWord, rawData, PARAM);◦ passWord, rawData : ⽂字列◦ PARAM : オブジェクト。オプションです。◦ 例) {adata:"", iter:1000, mode:"ccm", ts:128, ks:256};◦ Adata : データ確認用の⽂字列。ccm モードの機能。空⽂字でも OK◦ Iter : PBKDF2 で使用。通常は 1000 で十分な模様◦ mode AES にはいろんな暗号モードがありますが、sjcl がサポートするのはccm と ocb2CCM : [CounterMode with CBC-MAC] RFC3610ccm と ocb2CCM : [CounterMode with CBC-MAC] RFC3610MAC : Message Authentication Codeカウンターモードと CBC-MAC を組み合わせた方式メッセージを分割し、CBC-MAC で MAC 作成。MAC 処理で⽣成されたタグ+メッセージをカウンターモードで暗号化。http://www.cryptrec.go.jp/estimation/rep_ID0205.pdf 35PよりOCB2 : ccm より高速だが特許絡みで避けられることが多いようだ。◦ Ts : (authentication) tag size 64(bit) で十分らしいが、128(bit) にしています。MAC のサイズ。◦ Ks : Kye Size AES キーのサイズ。Icons by http://dryicons.com
  16. 16. データの暗号データの暗号 RSARSAvar rsa = new RSAKey();//1rsa.setPublic(PUB_KEY, EXP);//2var encPW = rsa.encrypt(passWord);//3◦ 1.RSAKey のインスタンス作成。◦ 2.公開鍵とエクスポーネントの設定。両方⽂字列exponent 暗号指数 "10001" が一般的。0x010001。◦ 3.encrypt メソッドに暗号化したい⽂字列を入れると 16◦ 3.encrypt メソッドに暗号化したい⽂字列を入れると 16進数形式の⽂字列が出てきます。Icons by http://dryicons.com
  17. 17. 復号復号RSA 鍵情報のすべてを使います。var rsa = new RSAKey();rsa.setPrivateEx(n,e,d,p,q,dmp1,dmq1,coeff);var result = rsa.decrypt(encData);◦ n:pubKey(modulus)◦ e:exponent(publicExponent)◦ d:privateKey(privateExponent)e:exponent(publicExponent)◦ d:privateKey(privateExponent)◦ p, q:prime1, 2◦ dmp1, dmp2:exponent1, 2◦ coeff:coefficientvar original = sjcl.decrypt(result, encData);Icons by http://dryicons.com
  18. 18. PROS, CONSPROS, CONSメリット、デメリットを SSL/TLS, js 暗号, 無対策で比較
  19. 19. SSL/TLS Js 暗号化1. 有料2. 証明書の偽造、詐称などを検出するための認証機能を持つ。(プロトコルの脆弱性に注意)3. 暗号化の保証は web サーバーまで。その後は……4. ブラウザの javascript 設定に無関係。ただしプロトコルはブラウザや OS の設定などに強く影響を受ける。◦ Firefox TLS 1.0◦ Chrome TLS 1.1◦ Opera TLS 1.21. 無料2. MITM 攻撃の可能性◦ 店頭でオレオレ証明書を配布する方法もあるが、非現実的すぎる。3. メールでデータを受け取るまで暗号化。4. javascript が有効になっていないと使えないが、ブラウザに関係なく AES とか使える。5. js ライブラリの検証等がなされていない。たとえ検証されていても、スクリプトダウンロード中での MITM 攻撃やサーバークラックに弱い◦ 復号失敗が発⽣した場合、原因が不明瞭SSL/TLSSSL/TLS とととととととと jsjs 暗号化暗号化暗号化暗号化のののの比較比較比較比較暗号化暗号化暗号化暗号化のののの比較比較比較比較◦ Opera TLS 1.2◦ IE は OS に依存。Windows7 以降なら TLS1.2 使用可能。※◦ iOS 5 TLS 1.2◦ android TLS 1.0?5. 信頼性 : OpenSSL, NSS など FIPS 140validated◦ 復号失敗が発⽣した場合、原因が不明瞭スクリプトのバグ?MITM 攻撃された?サーバーがクラックされた?どこかでデータの改ざんがあった?◦ W3C で Web Cryptography API が策定中なので、これが勧告されて実装されれば改善される※ mmc のグループポリシーオブジェクトエディタにて[コンピュータの構成¥Windows の設定¥セキュリティの設定¥ローカルポリシー¥セキュリティオプション]にある[システム暗号化: 暗号化、ハッシュ、署名のための FIPS 140 準拠暗号化アルゴリズムを使う] を有効にする必要がある。ただしこれを⾏うと RC4 が使用不可になる模様Icons by http://dryicons.com
  20. 20. Js 暗号化 無対策1. 無料2. MITM 攻撃の可能性◦ 店頭でオレオレ証明書を配布する方法もあるが、非現実的すぎる。3. メールでデータを受け取るまで暗号化。4. javascript が有効になっていないと使えないが、ブラウザに関係なく AES とか使える。5. js ライブラリの検証等がなされていない。たとえ検証されていても、スクリプトダウンロード中での MITM 攻撃やサーバークラックに弱い◦ 復号失敗が発⽣した場合、原因が不明瞭1. 無料2. MITM ほかあらゆる攻撃に無防備3. 暗号化無し。サーバー、ネットワーク経路双方に死角あり。4. どの端末でもフォームは送信可能。5. --JsJs 暗号化暗号化暗号化暗号化とととと無対策無対策無対策無対策のののの比較比較比較比較暗号化暗号化暗号化暗号化とととと無対策無対策無対策無対策のののの比較比較比較比較◦ 復号失敗が発⽣した場合、原因が不明瞭スクリプトのバグ?MITM 攻撃された?サーバーがクラックされた?どこかでデータの改ざんがあった?◦ W3C で Web Cryptography API が策定中なので、これが勧告されて実装されれば改善されるIcons by http://dryicons.com
  21. 21. まとめまとめSSL/TLS の方がセキュリティは高いですが、脆弱性も⾒つかっているので注意。◦ パッチやアップデートの適用を。Js 暗号化に穴がいくつかありますが、やらないよりはまし◦ ぬののふく <<< くさりかたびらライブラリの中身を確認した上で通常の SSL/TLS と組み合わせてさらに上のセキュリティを目指すのもありかと。わせてさらに上のセキュリティを目指すのもありかと。◦ Web Cryptography API にも期待!注意点!両ライブラリとも BSD ライセンスであり、「無保証」です。テストは重要。◦ 五兵衛では少なくとも 50 件 (通販) 以上の復号で失敗は無し。2013/05Icons by http://dryicons.com
  22. 22. ありがとうございました。砂原 昌史

×