いろいろやってみるにっき

なんとか自分の会社を立ち上げるところまで漕ぎ着けた、てきとーに生きている奴の日記

関連記事を探すときは、読んだ記事と同じカテゴリをクリックしてください。

記事のカテゴリは記事タイトル下に表示されています。カテゴリ一覧はサイドバーにあります。


『証明書を無料で発行、HTTPSの導入を支援する「Let's Encrypt」』は何に使え、何に使えないのか

 やっと、ついに、誰もが無料でHTTPSを使えるようになる!…MozillaやEFFが共同プロジェクトを立ち上げ - TechCrunchだが、ブコメ欄で「フィッシングサイトが見分けられなくなる」と勘違いしている向きがあるようなので、ちょっと書いておく。


このLet's Encryptだが、Let’s Encrypt: Delivering SSL/TLS Everywhereに説明が書かれている。そもそも上のTechCrunchの記事ではLet's Encryptがどういうものか分からない。この記事では何ができて何ができないかを書いていないし。

TechCrunchの記事はオレが見た時点(2014/11/20 5:00)ですごいブクマ数(792ユーザ)なんだけど、本体の説明のブクマ数は4ユーザ、オレがブックマークしたので5ユーザである。ちょっと調べてからコメントすればいいのに。

下記のほうが要約として分かりやすい。 


Let's Encryptとは何か、何でないか

まず結論を先に書いておく。

このLet's Encrypt、サーバ証明書のグレードでいうとDV(Domain Validation)証明書のレベル。フィッシングサイトではないことを保証するEV(Extended Validation)証明書ではないし、一般的に使用されている運営元の身元審査があるOV(Organization Validation)証明書でもない。

 

 DV

 OV

 EV

 認証のレベル

 低レベル

 高レベル

 最高レベル

 企業の実在確認

 ×

 ○

 ◎

このため、Let's Encryptは「単に暗号化したいだけ」「有償でOV証明書を取得するほどではない」用途に使う物である。

そういうわけで「フィッシングサイトが見分けられなくなる」というのは証明書の違い(認証レベル、用途)の違いを知らないか無視した発言である。Let's Encryptによってフィッシングサイトも容易にhttpsサイトにできるようになるが、アクセスした人間が引っ掛かるかどうかはこれまでと変わらない。そもそも、今までSchemeがhttpのサイトに引っ掛かっていたわけだし。

Let's Encryptとは

Let's Encryptは米Electronic Frontier Foundation(EFF)、MozillaCisco SystemsAkamai Technologies、IdenTrust、ミシガン大学の研究者が参加する公益法人「Internet Security Research Group(ISRG)」が運営する。

Let’s Encrypt: Delivering SSL/TLS Everywhereには下記のようにまとめられている。

  • Free: Anyone who owns a domain can get a certificate validated for that domain at zero cost.
  • Automatic: The entire enrollment process for certificates occurs painlessly during the server’s native installation or configuration process, while renewal occurs automatically in the background.
  • Secure: Let’s Encrypt will serve as a platform for implementing modern security techniques and best practices.
  • Transparent: All records of certificate issuance and revocation will be available to anyone who wishes to inspect them.
  • Open: The automated issuance and renewal protocol will be an open standard and as much of the software as possible will be open source.
  • Cooperative: Much like the underlying Internet protocols themselves, Let’s Encrypt is a joint effort to benefit the entire community, beyond the control of any one organization.

簡単に意訳してみる。

  • 無料ドメインを持つ人は誰でもゼロコストでそのドメインのための証明書を有効にできます。
  • 自動:これまでは証明書の登録プロセス全体が難しかったけど、それを簡単に・自動的に行えるようにします。
  • セキュア:現在のセキュリティ技術とベストプラクティスを使っているので、インプリメントするためのプラットフォームとして使えます。
  • 透過性証明書の発行と取り消しのレコードは、使いたい人は誰でも利用可能になります。
  • オープン:自動配布、自動更新などはオープンスタンダードになる。可能な限りオープンソースにします。
  • 共同プロジェクト:これは根本的なインターネット・プロトコル自体であり、それはなにか1つのコミュニティだけでなく、全コミュニティーに役立つ共同プロジェクトです。

言い換えると、Let's Encryptはドメインの所有者であれば誰もがゼロコストで証明書を取得でき、証明書の発行やインストール、更新などのプロセスを自動化する。自動発行や更新のプロトコルはオープンスタンダードとし、ソフトウェアも可能な限りオープンソースにするということである。

「フィッシングサイトが見分けられなくなる」というのは勘違い

「フィッシングサイトが見分けられなくなる」というのは、証明書の違い(認証レベル、用途)の違いを知らないか無視した発言である。

DV証明書の置き換え用途

あるミドルウェアやOS機能を利用したい場合の前提がSSL(https)ということがある。SSL(https)ということはサーバ証明書が必要である。実はここがこれまで問題だった。

例えばこのブログでエントリが多い話でいうとRD GW(リモートデスクトップ ゲートウェイ機能)である。 

基本的にはリモートデスクトップの接続を社外から行わせるゲートウェイ機能であり、特定の人間が使うもの。WebサーバのSSL化/プロトコルhttps化をしたい場合、SSL暗号化とサーバ認証がセットになっているのでサーバ証明書が必要になっているが、用途によってはSSL暗号化さえできれば、あとは別の仕組みでセキュリティが担保できている場合があり、その一例がRD GWである。

 

別の用途の話。2つある。

まず一つ目。完全にイントラネットに閉じて使用するサーバの場合、全部イントラネット内で完結するので、OV(Organization Validation)証明書を取得するまでもない。

あともう一つ。テスト用にインターネットに有期(テスト期間のみ)公開するサーバの場合、テストの内容や使用する企業・組織がお堅いときはOV証明書を使用する。しかしテスト日程の切迫や追加テストの都合で急遽サーバを追加する場合など、今すぐにテストサーバを動かしたいのに、サーバ証明書(OV証明書)入手待ちということは想定できる。というかそういう経験がある。

 

上記3パターン、いずれの場合も有償のOV証明書を取得するまでもないと判断される場合、DV(Domain Validation)証明書が必要なのだがそこにオレオレ証明書(自己証明書)を使うことになる。オレオレ証明書を作り、設定するのはそれなりに面倒であるし、オレオレ証明書なので期限を勝手に長く設定するわけだが、それでも有期であり、いつかは更新しなければならない。クライアント側もワーニングが出て煩わしいか、証明書のインストールが必要で面倒である。Let's Encryptはまずこのような用途で使用されるものである。

OV証明書の置き換え用途 

お勧めしない。仕様の詳細が分からないのでなんとも言えないが、簡単に取得できるという事は、運営元の身元審査があるOV(Organization Validation)証明書ではない。そういうわけなのでお勧めしないのだが、多分使える。運営元の身元審査ってわりと面倒なんですよ、OV証明書取得した時に経験したけど。アレがあるだけで「簡単に取得」にならない。

企業のサイトなどは通常httpであるが、簡単な入力フォームなどはOV証明書で暗号化されている(されているべき)。OV証明書は有償だし期限も最大5年くらい?で短い。httpとhttpsが混在したページを作るとブラウザがワーニングを出す場合もある。自社(自組織)サイト全部をhttpsにするのであれば、このLet's Encryptを使う企業・組織もあるかもしれない。Let's EncryptはOV証明書のレベルではないはずなので全部置き換えちゃうのはよくない。入力フォームを置くサーバにはきちんとOV証明書を使ってほしい。

上に「(されているべき)」と書いたが、某フルスタックエンジニア講座は申込フォーム画面もhttpだったんで、「すげえな、フルスタックエンジニア。サイバーノーガード戦法ww」と思った記憶が。 

ここまでくどく書いても読めない人がいると思う(下記参照)のでもう一度書いておく。仕様の詳細待ちだけど、多分OV証明書の代わりとしてはお勧めできない。

EV証明書の置き換え用途

ありえない。EV(Extended Validation)証明書はフィッシングを防ぐための(高価な)証明書で、きちんと啓蒙すればそれなりに効果がある。それなりにというのは人の目で防げるフィッシングならということであって、CSRFを突かれてのMITM,MITBなどはEV証明書が守る範囲ではない。

http://www.flickr.com/photos/67945918@N00/4773457853

photo by Tom Raftery

Let's EncryptをEV証明書が必要なレベルのサイトに使うやつはいないはず

EV(Extended Validation)証明書については以前下記エントリでじっくり(くどいくらいに)書いた。くどいくらいに「緑色が確認できたら中身を見る必要は無い……  けど見てみる」と毎回書いたのにブコメに「中身を見る必要は無いはず」って書かれて、読まずにコメントするなよと思ったおもひで。 EV証明書を説明するために開いて見せただけで、EV証明書に成りすますニセEV証明書の存在が明らかにならない限り、中身を見る必要が無いのはセキュリティが専門じゃないオレだってわかってるつーの。ぷんすか。

つまりインターネットバンキングなど、フィッシングされると重大な被害が想定されるサイトの場合、提供者側はEV証明書を使うべきである。利用者側もEV証明書とOV証明書を一目で見分けられる機能を持つブラウザの利用が必須である。

というわけで、EV証明書が必要なレベルのサイトにLet's Encryptの利用はあり得ない。Let's Encryptによってフィッシングが増えるというのは誤認であり、引っ掛かる奴はLet's Encryptの存在に関係無く引っ掛かる。

まあ、TwitterでさえEV証明書使っている。入力してもらう内容によっては、お金が絡まなくてもEV証明書に移行すべきと思っている。

新装版 人間の証明 (角川文庫)

新装版 人間の証明 (角川文庫)

 
人間の証明 [DVD]

人間の証明 [DVD]