見出し画像

SSL証明書の導入が今のインターネットの世界で最初に検討すべき事項のひとつである理由。

おはようございます、こんにちは、こんばんは、そしてはじめまして。イプリオの中の人エンジニア1号です。記念すべき第一回目のコラムですが、今回は「SSL証明書」について書いていこうと思います。

昨今ではインターネットで何かを調べたり、ネットショッピングをしたりするときのセキュリティ意識が一般利用者層でも高まっていると思います。
誰もがスマホを使い、色々なところに個人情報を入力し、預けるようになった時代背景もありますし、GoogleやApple等今のインターネットの世界を牽引する企業が啓蒙しているからというのもあるかもしれません。

利用者の皆さんは自分が利用しているサービスやサイトが本物かどうか、安全かどうか、などをどのようにして確認しているでしょうか?
もしかしたら、ブラウザの上の方にある「鍵マーク」や「https」に気づいているかもしれません。これらは、サイトが「SSL証明書」というものを持っていることを示しています。

では、SSL証明書とは何でしょうか?なぜ必要なのでしょうか?
このコラムでは、SSL証明書についてざっくりと簡単に説明していきます。


SSL証明書とは何か、なぜ必要なのか

SSL証明書自体が持つ大きな役割は「サーバの認証」です。それらを達成するために以下の2つの要素が使われています。

  1. 通信の暗号化

  2. 運営者(組織)情報の提供

例えば、個々の生活でイメージしてもらうとわかりやすいかもしれません。個人情報などの重要な情報を誰かに渡す場合は「他の人には見られたくない」と思いますし、「相手が間違いなく自分が渡したい(渡してもいいと判断している)相手なのか」と疑いますよね。
そのためにはどうしますか?そうですね、例えば、取引する場所を個室や声が漏れない場所にしたり(通信の暗号化)、相手の免許証、パスポートだったり、あるいは登記情報を確認する(運営者情報の提供)、わけですね。

SSL証明書があると、サーバにアクセスしたユーザーに対して、サーバの情報や運営者の情報を正しく伝えることができます。また、サーバとユーザーの間でやり取りされるデータも暗号化されるため、他の人に見られたり変えられたりする可能性がぐんと下がります。少なくとも暗号化されていない情報は様々な危険にさらされており、例えば以下のような攻撃の被害に合う可能性があります。

  • フィッシング:偽のサイトにだまされて個人情報やクレジットカード番号などを盗まれる。

  • マン・イン・ザ・ミドル攻撃:通信経路に他の人が割り込んでデータを見たり変えたりする。

  • セッションハイジャック:ログイン状態を維持するためのIDを盗まれて不正に利用される。

一昔前ではECサイトや個人情報等を入力するサイト・サービスでしか導入されていないSSL証明書でしたが、現在はGoogle等検索エンジンを持つ企業がSSL証明書の有無を検索結果の基準の1つとして含めたこともあり、今は特に個人情報の入力を求めないようなサイトであっても通信及び通信相手の信頼性を担保するため、重要性が高くなっております。

自分がアクセスしたサイトは本物なのかを証明する方法

これはデジタル署名というデータに特定の値(署名)を付け加えることで、データの出所や正しさを確認できるようにする技術を利用しています。そしてデジタル署名は、公開鍵暗号方式という暗号化技術を利用しており、公開鍵と秘密鍵という2種類の鍵を使ってデータを暗号化・復号化しています。

SSL証明書には、サーバの情報(FQDN*¹や企業名など)や公開鍵が記録されています。そして、この情報に対して信頼できる機関が秘密鍵で署名を行います。この署名がデジタル署名です。サーバは、SSL証明書とともにデジタル署名をユーザーに送ります。ユーザーは、信頼できる機関の公開鍵でデジタル署名を復号化し、SSL証明書の情報と一致するかどうかを確認します。一致すれば、サーバが本物であると証明されます。

SSL証明書で通信データを暗号化する方法

SSL証明書で通信データを暗号化する方法は、共通鍵暗号方式という暗号化技術を使っています。共通鍵暗号方式とは、同じ鍵(共通鍵)を使ってデータを暗号化・復号化する技術です。共通鍵暗号方式は、公開鍵暗号方式よりも速く処理できるため、たくさんのデータをやり取りする場合に適しています。
しかし、共通鍵暗号方式には問題があります。それは、共通鍵を安全に交換する方法がないことです。もし、他の人に共通鍵が漏れてしまったら、通信内容が見られてしまいます。そこで、SSL証明書では、公開鍵暗号方式と共通鍵暗号方式を組み合わせ、「公開鍵暗号方式で共通鍵を安全に交換し共通鍵暗号方式で通信データを速く暗号化」を行っています。

SSL証明書の種類

SSL証明書には、ドメイン認証(DV証明書)、企業認証(OV証明書)、EV認証(EV証明書)の3種類があります。これらは、SSL証明書を発行する際に行われる審査の厳しさの違いです。それぞれの特徴は以下のようになります。


ドメイン認証 (DV:Domain Validation)

認証方法:ドメインの所有者を検証
認証レベル:低

企業認証 (OV:Organization Validation):実在証明型

認証方法:ドメインの所有者と組織の実在を検証
認証レベル:中

EV認証 (EV:Extended Validation):実在証明拡張型

認証方法:ドメインの所有者と組織の実在、法的実体、電話認証などを検証
認証レベル:高


DV証明書は、ウェブサイトの暗号化に必要な最低限の証明書だと考えられます。ウェブサイトの所有者を検証しますが、実際にその所有者が存在しているかどうかは問いません。

OV証明書とEV証明書は、証明書発行の際に、発行元である認証局が検証した運営者(組織)の情報(ウェブサイト所有者の運営組織名や所在地など)が記載されており、ユーザが目的のウェブサイトに「本当」にアクセスできているかを確認することができます。

※「実在証明型」という言葉が示していること

誤解を恐れずに言うと、「SSL証明書自体が、運営者(組織)の実在を証明している」わけではありません。
先述のように、OV証明書とEV証明書は、証明書の発行の際に、認証局が様々な手法(後述)を用いて「申請者が確実に実在しているかどうか」を審査しています。ですので、OV証明書・EV証明書が発行されている、と言うことは、運営者(組織)の実在が認証局の責任において確認・証明されている、と言うことになります。

しかし、SSL証明書が持つ役割はあくまでも「運営者(組織)情報の提供」です。実在を証明しているのは証明書を発行した認証局であり、証明書を発行するための前提となる条件であることを覚えておく必要があります。

ちなみにそういった審査をしなくてもよいDV認証ですが、こちらに関しては認証局のひとつである「DigiCert」では以下のように分析を行なっています。

DV証明書は、悪意あるサイトを含む、あらゆるサイトで取得できます。このため、DV証明書にはリスクが存在しており、2018年の時点では95%のフィッシングサイトが、この証明書形式の暗号化を利用しています。

Digicert「SSL、TLS、HTTPS とは」

SSL証明書の取得方法と注意点

SSL証明書を取得する方法は、次のようになります。こちらの作業に関しては、一部複雑かつ知識が必要なところもあるため、多くのサービス提供者が有償、あるいはSSL購入・更新時のセットプランとして代行して対応していることが多いです(当然イプリオも全部対応していますよ)。
例として、以下はOV(企業認証)を取得する際のプロセスになります。

  1. SSL証明書を発行する機関(認証局)を選ぶ
    認証局には、国内外のさまざまな会社や団体があります。認証局によって、発行するSSL証明書の費用やサポート内容が異なります。自分のサイトに合った認証局を選びましょう。

  2. SSL証明書を申請する
    認証局のサイトからSSL証明書を申請します。申請する際には、FQDNや組織名、住所などの情報を入力する必要があります。

  3. 認証局が検証を行う
    認証局は申請情報を元に審査を行います。認証方法は認証局によって異なりますが、一般的には以下のような手順があります。
    - ドメイン名の所有権を確認するために、メールやDNSレコード、Webサーバのファイルなどを利用します。
    - 組織の存在や正当性を確認するために、公的な登記簿や第三者機関のデータベースにより確認した代表電話番号などを参照します。
    - 組織の連絡先や担当者の電話番号を確認するために、電話での確認を行います。その際、申請を自身で行ったこと、または手続き担当者様が申請を行ったことを認識し、承認していることを実証します。

  4. SSL証明書を受け取る
    審査が終わるとSSL証明書が発行されます。SSL証明書はテキストファイルであり、中身は文字列で構成されています。

  5. SSL証明書をサーバーにインストールする
    受け取ったSSL証明書をサーバにインストールします。インストール方法は、サーバの種類や設定によって異なります。詳細は、認証局やサーバ提供者からの指示に従ってください。

ちなみに、SSL証明書を取得する際には、以下の点に注意しましょう。

  • SSL証明書は有効期限(2023年12月現在 最大有効期間397日)があります。有効期限が切れる前に更新しなければなりません。更新しないと、サイトが表示されなくなったり、警告が出たりする可能性があります。

  • SSL証明書はFQDNと紐づいています。FQDNを変更した場合は、新しいFQDN用のSSL証明書を取得しなければなりません。

  • ライセンスの形態によってはSSL証明書はサーバごとに必要です。

SSL証明書を導入する=「安全になる、信頼できる」ではない、ということは重要なことなのです

極端な例を上げれば、スパムを発信しているサーバがSSL証明書を取得していたとしても、それは「安心、安全なサーバ」ということではありませんよね。
SSL証明書は人間にとっての免許証やマイナンバーカードみたいなものです。その人が安心できる人か、信頼できる人かは、皆さんは全く別の基準で判断していると思います。

SSL証明書を導入することは、安全で信頼できるウェブサイトを構築する重要なステップですが、それだけで完全な安全・信頼を保証するものではありません。ウェブサイトやサーバが他の脅威(例えば、サーバへの不正アクセスやマルウェアの感染など)から保護されているわけではありません。

つまり、SSL証明書を導入するだけで、安全で信頼できるサイトを構築はできませんが、SSL証明書の導入なしには、安全で信頼できるウェブサイトの構築はできない、ということです。

まとめ

  • SSL証明書が持つ大きな役割は「サーバの認証」です。

  • 認証を行うために必要なこととして、運営者の情報を提供すると同時に通信の暗号化を行うことができます。

  • SSL証明書には、ドメイン認証、企業認証、EV認証の3種類があります。それぞれによって、運営者の情報公開レベルとアクセスした際の見た目が変わります。

  • SSL証明書を取得するには、信頼できる機関から申請し、サーバにインストールする必要があります。

  • SSL証明書は有効期限がありますので、更新を忘れないようにしましょう。

  • SSL証明書があるからそれだけで「安全、安心」というわけではありません。

インターネットを使ったサービスが進歩すればするほど、攻撃の手段も巧妙になり、また情報漏洩のリスクも高まります。
SSL証明書の導入はインターネット上でビジネスを展開する皆さまが、「最初に必ず行うべき対策」のひとつだとイプリオは考えています。

うちはどの証明書を導入するのがよいのか?どこの認証局のをえらべばよいのか?などなど、SSL証明書の導入に関するご相談は是非ともイプリオまで。お気軽にどうぞ。(と最後に宣伝を)

*¹「FQDN」

「FQDN」とは、「Fully Qualified Domain Name」の略で、 日本語では主に「完全に指定された(限定された)ドメイン名」などと訳されますが、 「絶対ドメイン名」と呼ばれることもあります。

JPNIC「FQDNとは」

この記事が参加している募集

株式会社イプリオのエンジニアズです! ネットワークやサーバに関わること。お客さまのインターネットでのビジネスを支えるコラムを連載していきます!