SSL導入の際に検討が必要な事項として、携帯電話(フィーチャーフォン)への対応があげられる。携帯電話のブラウザは、PCに搭載されているブラウザと比較すると機能に乏しいことは自明であるが、利用可能なSSLサーバー証明書もPCと同じようにはいかない。

元来SSLサーバ証明書とは、ブラウザにあらかじめ「ここの証明書発行期間が発行した証明書は大丈夫」といった設定が必要である。PCに搭載されたブラウザ(IEやFireFox、Safari、Chromeなど)には、大抵の場合そこそこ有名なブランドの証明書発行会社であれば、その設定が事前になされている。また任意で設定を追加することも可能だ。

しかし携帯の場合は、使用できる証明書の種類がPCのそれと比較すると非常に少ない。昨今では増加の傾向があるが、初期の携帯電話では、SSLに関して最も有名であるベリサイン社の証明書しか利用できなかったり、そもそもSSL暗号化通信に対応していない機種もあったとようである。

時代は進化し、各携帯電話に搭載されるサーバ証明書の設定は増えつつあるわけだが、もう一つ厄介なことに機種によって設定内容はまちまちということだ。発売時期が異なる機種で設定されている項目が異なることは言うに及ばず、同一シーズンに発売された機種で同じキャリアからの発売といえども、設定が異なる場合がある。また同じ証明書発行機関から発行されている証明書にいくつかの種別がある場合があるが、利用の可否がすべて共通、というわけでもないことも付け加えておく。

よって携帯電話からの利用を考慮した場合、SSLサーバ証明書については、ターゲットとする携帯電話の機種や発売年をどこまで広げるか、ということを考慮して選択する必要がある。

今やサーバ証明書を提供する会社は乱立気味である。10年以上前であれば、SSLと言えばベリサイン、と言ってもいいくらいベリサインの独壇場であった(といってももちろん他の会社もあった)。今ではGeotrust、RapidSSL、セコム・・・など多くの会社がサーバ証明書を発行している。では、どの会社が発行する証明書がよいのか、それを検証してみよう。

ここでいうSSLサーバ証明書は、大きく二つに分類されると言っていいだろう。それらは下記の二つだ。

  • 企業実在証明書
  • ドメイン所有証明書

どちらも同じサーバ証明書なのだが、格付けや意味が全く違うのだ。違いは主にその発行過程にあると言ってもいいだろう。

企業実在証明書だが、こちらはまず前提条件として「法人」しか取得できない(個人での取得は不可)。そして発行申請の際、必ず法人の登記簿謄本が必要となり、ドメインの所有権も確認される。つまり「このドメインで使用されているSSLは、ドメイン所有者である法人の実在も確実である」というお墨付きがつくのだ。

一方のドメイン所有証明書は、法人でも個人でも取得可能で、登記簿謄本の提出もない。所有者の確認がなされないので、ドメインの所有権も確認されない。ただしドメインを事実上運用していることが確認される(例えば特定のメールアドレスを作成してそこにメールを送信する等)。

これらから、前者の証明書のほうが信頼性が高いことは言うまでもない。ただ現実問題として、一般ユーザはこのような違いがあることを殆ど知らないと言ってもいいだろう。大抵のウェブ制作会社も全く理解せず「SSLが必要ですよ」と言っているご時世だし、システムに携わる者でさえ理解していない場合も多く、当然といえば当然だ。サーバ証明書が導入されていないSSL通信を実行しようとすると大抵のブラウザはエラーダイアログを出すが、そのダイアログを表示させないために証明書が必要、と本当に本末転倒な考え方をする人もいる(表示されるエラーの意味を理解していない)。

信頼性の高さは前者だが、価格面では後者のほうが圧倒的に安い。前者の例で言えばメジャーなベリサインであれば、1年間8万5千円だ。しかし後者は数千円から購入することが出来る。しっかりとした技術者から見れば、わかってしまうのだ。

ちなみに、この証明書発行会社、一見すれば誰でもできそうだ。「私が証明します」と言ってしまえばいいのだから。しかしそれだけではいけない。証明書発行会社が、本当に信頼できるかどうかを証明しなくてはいけないからだ。詳細は割愛するが、信頼できる証明書発行会社の一覧は大抵の場合、ブラウザにあらかじめ登録されているのだ。だからブラウザに登録されていない証明書発行会社の証明書がサーバから提示された場合、先程のエラーダイアログが表示されていまうことになる。

証明書発行会社のブランディング、実効性も考慮に入れる必要があることがおわかりいただけると思う。

アンケートに限らず、クレジットカード番号や個人情報を入力するとき、SSLという言葉がキーワードになる。果たしてSSLとはなんだろうか。それを簡単に解説してみよう。

SSLとはSecure Socket Layerの略で、誰もが良く知っている「暗号化」という機能を提供している。自分でSSLを使ったサービスを提供する際、SSLサーバ証明書なるものが必要になるのだが、この証明書のことを誤って理解している人が非常に多いので、まずそれについて説明しよう。

「ベリサイン」や「ジオトラスト」という会社名は最近なら大抵の人が耳にしたことがあるだろう。上記の証明書を発行(販売)している企業だ。ベリサインなら1年間有効のSSLサーバ証明書発行で85,050円だ。このSSLサーバ証明書、実は暗号化機能そのものを実現するためには全く必要ないことをご存知だろうか。つまり高い費用を払って証明書を購入しなくても暗号化を実現することは可能なのだ。そもそも暗号化を実現するのは、大抵が無償で提供されているソフトウェアで実現されるのであって、証明書そのものが暗号化機能を提供しているのではないということだ。

ではSSLサーバ証明書とはいったいなんだろう。実はこれ、読んで字のごとく「SSLを使っているサーバを証明する書類」なのだ(言ってみれば暗号化とは無関係)。

あなたがクレジットカードを使ってウェブショッピングしたと仮定しよう。その時、通信が暗号化されていれば、あなたと相手方のサーバ以外に使用されたクレジットカード番号を知る者はいないはずだ。つまり安全な買い物ができることになる。はたしてそうだろうか。

あなたがクレジットカード番号を送信しようとしているサーバが、間違いなくあなたがショッピングをしようとしている相手方のサーバであると、なぜ言えるのか。実は言えないのだ。巧みな手法を使用すればサーバそのものをすり替えてクレジットカード番号を盗み見ることができるのだ。本当にクレジットカード番号が届いて欲しい相手かどうか、それを証明してくれる術を提供してくれるのがSSLサーバ証明書なのだ。

理屈はさておき、SSLサーバ証明書は「暗号化をかけるためのものではない」ということはご理解いただけたであろうか。今後数回に分けてSSLについてお話を進めることにしよう。