HTTPSと一時代の終わり（Ben Klemens）

この記事は、「[HTTPS: the end of an era](https://b-k.medium.com/https-the-end-of-an-era-c106acded474)」の翻訳です。2015年5月15日と古い記事ですが、翻訳が見当たらず、大変興味深い視点だったので紹介します。一部現状とそぐわない点もありますが、訳注を入れてそのまま記載します。

## 著者紹介
ベン・クレメンス(Ben Klemens)は、FSFの「End Software Patents（ソフト特許廃止）」運動の総指揮を務め、統計ライブラリの「[Apophenia](http://apophenia.info/)」のメイン作者である。ミクロ経済学者、アナリストとしての顔も持つ。

## 初めに
Firefoxを管理する団体のMozillaが[セキュアでないHTTPプロトコルを実質的に非推奨とし](https://blog.mozilla.org/security/2015/04/30/deprecating-non-secure-http/)、最終的にすべての新機能を使いたいサイトにHTTPSを使用することを強いることを発表した。
この文章は僕にとってなぜこのニュースが悲しいのか、またなぜこの移行がとあるライフスタイルに終止符を打つことになるのかを書いたものである。

## 0章：HTTP vs HTTPS
HTTPとHTTPSの違いが分かるなら、この章は飛ばしても構わない。

用語に詳しくない人のために説明すると、HTTPはhypertext transfer protocolの略で、ブラウザがwebサーバーからデータを要求する際に使われる。もしデータパケットの中身を調べたいのであれば、届いたwebページを観ればよいという点で比較的シンプルだ。これらのパケットは何重ものルーターを経由してwebサーバーから手元まで運ばれ、途中で犯罪者や、やたらとアグレッシブな広告業者や、NSA（訳注：アメリカ国家安全保障局。インターネット監視プログラムPRISMで悪名高い情報機関）や、どこぞの暇人に読まれるリスクが無視できない。

そこで、セキュア化したHTTPSが登場した。HTTPSを使うと接続したサイト（頭を使うのも面倒なので https://example.com を提示しておく）は関連した暗号コードを持っており、パソコン（携帯でも時計でもつながっているものは何でも）が暗号コードを使って送信前に暗号化し、もう一方で暗号化したデータを送り返す。つまり、すべてのパケットは基本的にパケットを取り扱うものは中身を読み取れず、example.com のサーバーと自分だけが理解できるということだ。

でもNSAが通信に介入して、自分を example.com と称して、彼らが望む暗号コードを使うようにパソコンに指示されたらどうだろうか? データはNSAのキーで暗号化されて送られ、それをNSA自身が復号して、 example.com のリクエストを記録してから戻す。これをおかしいと思わないかもしれないが、中間者（NSA）はすべての通信を読めるので、暗号化の意味が無くなってしまう。

だから正しいキーを受け取るまでデータが信用できないが、他の検証が無いとキーが example.com から来たと信用できない。それじゃあどうやってほかの検証を信用するのか? その答えとしてexample.com のアイデンティティを登録した署名済みの認証がある。少数の認証局が信頼深い認証を行い、ブラウザはその名前を知っている。

現状としてはHTTPとHTTPSが混在している。あなたが口座を作っている銀行はHTTPSを使っている（そうじゃなければ即銀行を変えるべきだ）。しかし http://www.weather.gov/ はプレーンなHTTPを使っている（訳注：2015年当時。現在はhttpリンクからhttps版に自動的に切り替わる）ので、あなたがどこの天気を調べたか、のぞき魔に分かってしまう。MozillaのセキュリティチームはWebを100％HTTPSにするよう発破をかけている。

## 1章：陰キャ（Introvert）

ただ、この記事で語りたいのは技術のことじゃない。陰キャについて話そう。

陰キャは社会の暗黒物質だ。世界の人々を簡単に調べようと思った場合、例えばグループ会合[^1]やFacebookページやツイート、誰からかかってきたか分からない電話調査に応えてくれるような人を探した場合、陰キャは大変過小評価される。**誰も陰キャの会合に参加しないだろう**[^2]。

[^1]: （訳注）原文では「meetup groups」。SNSの「Meetup」のグループを指すかもしれないが、文脈で読み取るのが難しいため直訳した。

[^2]: （訳注）原文でTop Highlightになっていたため太字。先生そこじゃないです。

でも、どんな陰キャにも家族がいる。それが陰キャに遭遇する一番の方法だ。もし誰かが叔母や祖父が外に出ないことを話すとき（ちょっと変わり者だ、というコメントが漏れなく付く）、あなたは陰キャを知ったことになる。ほとんどの陰キャは仕事に行ったり学校に通ったりしているので、2、3人見かけるかもしれない。彼らは物静かな変わり者でいようとし、みんなからは忘れられがちである。5時になると、社会の枠から彼（女）らは消えてしまう。

あなたは創造性のある陰キャだとしよう。仲間と一緒にいたくないからと言って世界に興味が無いわけではない。そんな時はどうする？

この数十年間、このジレンマに対する答えは簡単だった。コンピューターを手に入れてコーディングを学べばいい。同じく陰キャのキャリアパスとして有名な小説家のように、世界を言葉だけで作り上げるのだ。いいコードを作るのには時間がかかるし、社会性を競い合うことにかまけることもないので、陰キャであることは一石二鳥である。

まさに僕がそうだった。不器用なうえにお金もないのでモノ作りはできなかった。控えめに言って自分は社会不適合者だった。でも学校のコンピュータクラブに通えたし、名前が同じ「ベン」だからというだけで付き合ってくれたろう友達のPCを借りることができた。

何を作ったのかはよく覚えていないし、どうせ大したものではないだろう。マンデルブロ集合や基本的な物理関連を描画するものを書いたことは覚えている。でもそんなことは関係ない。大事なのは自分が楽しんでいたことと、他の手段よりもいいものを作っていたと感じていたことだ。

自分が、小さな問題をコードっぽいものを書くことで解決できることを褒められた小5の時代で止まっているのではないかと気をもんでしまうことがある。確かに今でも自分の時間をコードを書くことで費やしている。

Webにアクセスしたときに、またその自信を取り戻したような気がした。カリフォルニア工科大学のドメイン管理が寛容だった時代に avocado.caltech.edu のページを発行してもらえて、友達とそこをカリフォルニア工科大学神聖学校（Caltech Divinity School）というジョークサイトにし、聖変化の物理化学を面白おかしく書いた。見てくれた数十人が面白いと思ってくれた。

![1_R3BBkQvLtv-hXByCWU_INw.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/666342/ee103d19-bd2e-4b48-df07-948a7f8183bb.png)
↑カリフォルニア工科大学神聖学校のwebサイト。友達は満足しなかったがHTMLテーブルを使っていた。

勿論、自分は工場で組み上げられ、OSを走らせたノートパソコンで、テキストエディタとユーザにファイルを供給できるネットワークスタックを使ってDIYサイトを作った。それら[^3]がDIY精神をそぐことはなかった。

[^3]: （訳注）要はPCもOSもエディタもネットワークも自分で作ったものではないので、DIYに反するんじゃないの？　ということだと思われる。筆者はFSF所属なので、そういう面にはことさら敏感であることが2章以降からも読み取れる。

では何がDIY精神をつぶしたか？　クレジットカードを取り出すことがそれだし、登録フォームを記載することはなおさら萎えた。もしツールが良く出来ていて、それを立ち上げることで課題が解決してしまうなら、感動は「僕がやったのを見て」から「誰かがやったのを見て」に変わってしまう。これは時間効率はいいが特に面白くない。レゴで何かを作り上げるのは個人の努力とちょっとした創造性を要するので、完成した暁には達成感が得られるものだが、イケアのテーブルはもう組み立てられているので、置くだけでも一苦労というのと同じだ。

## 2章：陰キャと絶海の孤島

僕は情報処理アルゴリズムの特許化に反対な立場を主張し続けてきた。経緯の詳細に関しては、僕の[法律レビュー記事](http://web.archive.org/web/20080610000828/http://www.bu.edu/law/central/jd/organizations/journals/scitech/volume141/documents/Klemens.pdf)をご覧いただきたい[^4]。

[^4]: （訳注）[元記事のリンク](http://www.bu.edu/law/central/jd/organizations/journals/scitech/volume141/documents/Klemens.pdf)は現在死んでいる。体裁が多少違うが「正式に」アップされているものは[こちら](https://deliverypdf.ssrn.com/delivery.php?ID=480102116097123096116082071099101030127059060050007025029031117007114014025064006011033056120123040008022102115119092005086006005008033082111115071097069010091077033008025097008069103118083122012074025006080071025123123070031068118008124118102003&EXT=pdf&INDEX=TRUE)。

この文脈において、陰キャがソフトウェア特許に反対する理由がご理解いただけたと思う。家でプロジェクトを進めていた際に、どうして弁護士にチェックしてもらう必要があるのか？　ソフトウェアは特許にできる案件なので、望もうと望まざるとにかかわらず、コードを書くだけで法律家と特許保持者の罠にかかってしまう。NSAがパケットを覗き見るのと同じで、問題は特許保持者があなたに気が付いて、訴えるかどうかだ。

フリーソフトウェアの自由を強調するLinux/GNUのディストリビューションであるDebianの管理者は、ソフトに不当な制限を課しているかどうかの判断基準を持っているが、そのうち二つは陰キャについてだ（嗜好と環境に関して）。https://people.debian.org/~bap/dfsg-faq.html から引用する。

> 孤島テスト
> 太陽電池で動くコンピューターをもって孤島に流された場合を考えましょう。自由であるためには、ソフトウェアが不幸な漂流者でも変更でき、合法に同じ島の友達に変更をシェアできなければなりません。

> 反逆者(dissident)テスト
> 全体主義国家の中で、同志に改編したソフトを共有したいが、改変者の個人情報や変更、さらにはプログラムの所持を政府に直接さらしたくない場合を考えましょう。

弁理士を孤島に招かない限り、アルゴリズムを使うために特許を必要とするのはこれらのテストに反する。

さらなる思考実験をするために、「セキュアブート」問題を考える。データが改変されてないことを確かめるためにPCにプログラムを入れたい場合は、プログラム自体が改変されていないことを確かめる必要がある。それにはプログラムを走らせるOSが安全で改変されていないことを信用する必要がある。でもOSをどうやって信用するのか？　セキュアブートはハードウェアに署名されたOSだけが起動できるよう要求するものだ。[フリーソフトウェア財団はこれに反対し続けている。](https://www.fsf.org/campaigns/campaigns/secure-boot-vs-restricted-boot)いろいろな理由はあるが、すでに2つの答えが出そろっている。つまり、ハードメーカーに登録が必要であれば、反逆者や孤島の住人がOSを書くことができないからだ。

HTTPSは陰キャの友達に見えるようだが、まだ世間にはSじゃないHTTPのサイトがごまんとある。暗号化を設定するのは非常に難しく、あなただけではHTTPSは成り立たない。難しいところと言えば、Ars Technicaの[認証取得ガイド](http://arstechnica.com/security/2009/12/how-to-get-set-with-a-secure-sertificate-for-free/)と、[WebサーバーにHTTPSを設定する手順](http://arstechnica.com/information-technology/2012/11/securing-your-web-server-with-ssltls/)を紹介しておこう。

承認局の署名が必要なので、HTTPSサイトは孤島のネットワークには設置できない。住民は認証局に情報を提示しないといけないので、反逆者は締め出される。

![1_4WbmUODxOgvRvaGg-_OcvQ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/666342/aeb9b46c-769f-7caf-cafb-84d253d3cb9c.png)

↑SSL認証を取得するために届け出なければならない個人情報。https://www.startssl.com/?app=11&action=regform より

Arsの二つ目の記事にある通り、自己署名する方法はある。ただ[MozillaのFAQ](https://blog.mozilla.org/security/files/2015/05/HTTPS-FAQ.pdf)ではFirefoxが自己署名されたサイトを訪れた際に常に恐ろしい通知（彼ら曰く）を表示する理由がたくさんあると指摘している。もしちゃんとした署名が使えない反逆者だったら、Firefoxを使ってあなたのサイトを訪れた際に「恐ろしい」警告が出ることを覚悟しなければならない。

![1_027DdWF1qYmIRkdamnKQ7g.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/666342/63906251-6ad2-1772-ee62-e09d21553b85.png)

↑恐ろしい警告。

特許システムとセキュアブートシステムのように、HTTPS要求は自分が書いたコードを世に公開する前に当局のチェックが入るということだ。WordPressを使わずに、モダンでより面白いカリフォルニア工科大学神聖学校のリメイクを作りたい坊やとしては、大きなハードルである。

## 3章：陰キャ、イケアに現る

もし上記のように陰キャが娑婆(general population)よりもオタク界(geekdom)に惹かれるのであれば、オタク界における陰キャの人口密度は娑婆のそれよりも高いことになる（これを数式で表すならば、`P(オタク(geek)|陰キャ) > P(オタク)`だとすると、`P(陰キャ|オタク) > P(陰キャ)`が成り立つと言える）。

オタク界はほかの世界よりも陰キャを重要視するということは、オタク界はほかの世界よりも陰キャの世話をしなければならない。

もうすでに重要な言葉の綾がある。「オープンソースコミュニティ」はオープンソースに興味ある人の集まりなのか、陰キャぶりを克服して（潜在的に敵ばかりの）フォーラムの中で発言できる人の集まりなのか? 「コミュニティ」の決断は陰キャと陽キャ(extroverts)に影響するが、陽キャは暗黒物質に目もくれないことが多い[^5]。陽キャとにぎやかに会話するのをやめて、そこにいるのに話し声が小さすぎる人に声掛けするという埒外のステップが必要だからだ。

[^5]: （訳注）そのためオープンソースコミュニティでは陰キャが無視されてしまう、ということ。

これまで述べた陰キャのタイプである、孤島を目指すDIY探検家は陽キャのように考えたり動いたりできないので、会話の非対称性は重要である。

モダンハッカー間の会話はファッションショーよりもブランド名が出てくる。「僕のプロジェクトを試してみてよ! GitHubからDockerのスクリプトをクローンして、HadoopからプルするためにArchインスタンスをApache Hive使ってSciPy/Pandasを用いたEC2上にBeanstalkしちゃって、nginxサーバからqGISでマップを提供しているんだ」[^6]

[^6]: (訳注)技術もといブランドに関する勉強が足りないのでかなり難解な文章になってしまった。文脈がおかしいかもしれない。原文を置いておくので訳せる人は修正案を出してください。 “Try my project! You can clone the Docker script from GitHub and it’ll Beanstalk up an Arch instance to EC2 with SciPy/Pandas using Apache Hive to pull from Hadoop, and qGIS serving up maps using an nginx server.”

出来合いのツールを使うのはよくわかる。HTMLを一から手書きするよりも、ビューポートやフォントや色の選び方までの熟練の知恵をパッケージ化した良いフレームワークを使って他の誰かが組み立てたやつよりも見栄えがいいもんね(ありがとう、Medium.com)。それで結局は(「一緒に良いソフトを作ろう」のスローガンでおなじみGitHubみたいな)たくさんのサービスに登録する羽目になり、SSL証明書に登録するのが雀の涙に思われる。

もう慣れてきたように思いたいけど、僕が参加するグループハックイベントのほとんどはレゴを組み立てる陰キャな方法を学んだ人が一人はいて、テーブルの脚をカタログから選んでみんなでねじ止めするという陽キャ技術の海に飛び込む様を見せられる。

徒党を組んでやることが独学の陰キャのやり方よりもモラル的に優れているかどうか価値判断をするつもりはない。技術の進歩でよくある話だ。ライト兄弟は自分で飛行機を作ったが、それも他の飛行マニア(aviation enthusiasts)と協力したおかげだ(この[論文](http://econterms.net/pbmeyer/wiki/images/8/83/Meyer_Revue_economique_nearfinal.pdf)とこの[スライド](http://econterms.net/pbmeyer/wiki/images/7/76/MeyerP_4S2013_airplane.pdf)を読んでほしい)。でも今、二人の人間がガレージで組み立てたという飛行機を飛ばせるかい? 手作りのプレートや本や家具を買ったときは、工場製のものよりも手作り感があるからかもしれないけど、お手製データベースバックエンドの市場ってどこかにある?

他の人よりも良いコードを陰キャが黙々と書く時代は終わりに近づいている。スタートアップや、一大オープンソースプロジェクトでさえ、動かしているのは陽キャだ。DIYへの関心は薄れ、ストック部品を組み上げる方向に変わっている。

でも僕にとって、MozillaのHTTPS要求は、本当の意味でDIY時代のとどめを刺したんだ。クローズソースな会社でも、新しいツールを売り込むスタートアップでも、ハッカソンの傲慢野郎でもない、他ならぬMozillaがーオープン性とイノベーションとWebの機会を推進するのが使命の団体がー孤島のツールで作ったページを登録フォームを埋めないで作ったら、それはおかしいよと言ってしまった。モダンなWebページを作るための許可をちゃんと得るまで、Mozilla Firefoxはあなたのページをブロックし続けるのだ。

Mozillaの声明は「Web開発者コミュニティへのメッセージ」という体を取っている。孤島に一人残された陰キャや、1990年代の僕、WordPressが好きじゃなくて何か新しいものを作り出そうとしている現代の坊や、現実世界の全体主義国家たちに対する反逆者たちは、声明で名指しされていない暗黒物質なわけだが、それでもこの声明の影響を受けるのだ。