Rundevlog

小さい会社のしがないエンジニアのブログ

2024.9.16

SSLについて解説【WEB基礎】

こんにちは。今回はSSLについて解説したいと思います。

よく、WEB開発を行う際に、SSLは必須だなんて聞きますがそもそもSSLってなんやねんという方のための記事になっております。

1.SSLとは

SSLとはSecure Sockets Layerの略でWebシステムでセキュリティを向上するための仕組みになります。

通常Webの仕組みではHTTPプロトコルを使用したリクエストとレスポンスのやり取りによって情報を交換しています。

しかし、HTTPを使用している場合、通信内容が暗号化されなかったり、URLによって指定されたIPアドレスとただ通信するだけであったりと、セキュリティ的に問題が多いです。

これを解決するのが、SSLになります。

2.SSLの効果

それでは、SSLにはどんな効果があるのでしょうか。具体的に見てみましょう。

2-1.なりすまし防止

一つ目のSSLの効果にはなりすまし防止になります。

例えば、企業サイトやECサイトでは、そのサイトは本当に存在する企業であるのかということを担保することができ、なりすましを防ぐことができます。そうすることによってECサイトでは安心して買い物することができますし、企業サイトは本当にその企業のサイトであることを証明することでサイトの信頼性を上げることができるのです。

2-2.盗聴防止

二つ目は盗聴防止になります。

HTTP通信は暗号化のされていない通信ですので、通信を傍受できればどんなやり取りをしているか閲覧することも可能なのです。

HTTP通信のままだと、ショッピングサイトでのクレジットカードの番号やSNSのIDやパスワードを盗んで、不正な支払いをすることもSNSにアクセスすることも可能になるのです。

それを防ぐためにSSLでは、公開鍵認証と共通鍵認証を組み合わせて、サーバーとの通信を暗号化します。

3.SSLの仕組み

それではSSLの仕組みについて解説したいと思います。

最初にクライアントからのHTTPSによる接続要求を行います(図中①)。HTTPSでWebサイトにアクセスしたものと考えてもらえればいいかと思います。

そうするとサーバからサーバー証明書と公開鍵が送付されてきます(図中②)。

次にクライアント側でサーバ証明書が本当に正しいのかを検証します(図中③)。検証方法としては、OSやブラウザには各認証局の検証用の証明書を保持しています。その二つを照合して本当に正しい証明書であるかを検証します。

検証が完了しましたらクライアント側で共通鍵を生成します(図中④)。

生成された共通鍵をサーバから送付された公開鍵で暗号化し(図中⑤)、サーバに送付します(図中⑥)。

送付された共通鍵をサーバ側で秘密鍵を使用して復号化します(図中⑦)。

こうしてクライアントとサーバで持っている共通鍵を使用して通信を暗号化します(図中⑧)。

これがSSLの仕組みになります。

4.SSLの種類

SSLにはドメイン認証(DV)、企業実在認証(OV)、拡張認証(EV)の3種類があります。

それぞれ、認証のレベルが異なっております。

  • DV(Domain Validation/ドメイン認証)

 ドメインの所有者が正しいことを証明します。ただし、所有者である組織の情報は特定されないため、その組織が実際に存在するかなどは、証明しません。そのためECサイトなど商用目的には推奨できません。

  • OV(Organization Validation/組織実在認証)

 ドメイン認証より高いレベルの認証になります。実際にその企業が存在しているかを電話による連絡や帝国データバンクのデータに基づいた審査などを通じて認証局が実際に確認した上で、合法的な組織がドメインの所有者であることを証明します。商用利用ではこのOVもしくはEVを使用することがいいでしょう。

  • EV(Extemded Validation/拡張認証)

 OVよりも更に厳しい組織の審査を行います。OVでの審査に加えて、活動実態なども加味された審査を通して、サイトの信頼性を最も高めることができます。

まとめ

今回はSSLについて解説しました。WEB開発において基本となる技術ですので、是非覚えていただけたらと思います。