KEROPLOG

IT系サラリーマンの備忘録~情報処理・電子工作・車・ネットワークについて個人的なメモをネット上に残していくブログ

なぜHTTPS化が必要なのか。3分でわかるITブログ

なぜHTTPS化が必要なのか

 

今回の記事では、WEBサービスHTTPSについての記事です。

分からなかった人も、分かった気になれるようなそんな記事づくりを目指しています。

 

 

 

 

 

 

f:id:keroro1114:20171120193633p:plain

URLは一般的にhttpからはじまりますが、楽天AMAZONを利用しているときは、多くのサイトがhttpsからはじまります。では、なぜURLの先頭がページやサイトによって「http」や「https」と変わるのでしょうか。まずはURLについて簡単ですが解説します。

 

通信プロトコルとは

通信プロトコルとは通信する内容を解読・適切に処理を行うための通信ルールのことです。

通信プロトコルは複数あり、そのなかにhttpやhttpsがあります。

 

主な構成要素として

 

通信プロトコルは、伝送路の物理条件、伝達、相手の特定、情報表現の4つの基本要素より成り立っている。

伝送路の物理条件

 

有線通信の場合は、ケーブルとコネクタの形状と電気特性や光学波長、変調方式を規定する。無線通信の場合は、周波数帯や変調方式を規定する。例えば、IEEE 802.11, Bluetooth, ZigBeeなどがある。

 

伝達

伝達に関する要素として、通信プロトコルの中核をなす多くの決まりごとが規定されている。この中には信号にどのように「1」と「0」を割り当てるのかといった「符号化コード」から始まって、「同期」、「アクセス制御」、「誤り制御」、「フロー制御」などの各方式の規定が含まれている。

 

相手の特定

1対1の通信路に関するプロトコルでは例外的に規定の必要がないが、複数の端末が接続されるネットワーク上では送信先を特定する必要がある場合が多い。個別の「アドレス」によって特定できるが、1つの端末には、MACアドレスIPアドレスのように用途によって複数種類のアドレスが割り振られることが多く、それらの間での変換ルールに関しての複雑な取り決めが規定されている。

 

情報表現

ビットの羅列を有効な情報として通信するために、情報の表現ルールを相互に取り決める必要がある。ビットの区切り単位として古くは6ビットや7ビットで1つの文字を表現していたが、今では多くが8ビットで区切られたASCIIコードを文字コードとして使っていることが多く、日本ではシフトJIS等も使用される。また、いくつかの文字の組み合わせでコマンドとする取り決めや、送信する内容、つまりデータそのものの表現方法も取り決めておかなくてならない。こういった情報の配置と構成に関する表現ルールがパケット・フォーマットやフレーム・フォーマットといった形で、詳細な取り決めが規定される。

 

<――wikipedia――>

 

 

HTTPSとはそもそも何か

HTTPSとはSSLあるいはTLSによってより安全な通信をするための仕組みです。SSLは、通信を暗号化するので、安全にWeb情報のやりとりを行うことができます。万が一通信経路から情報が抜き取られたとしても、暗号化されているので内容を判別することは困難です。

httpsのほとんどはSSL/TLSが提供しているものだと思ってください。

 

SSL/TLSが提供する機能とは

SSL/TLSは、セキュリテイが要求されるネットワーク通信を行うためのプロトコルです。

主に次の機能を提供しています。

通信の暗号化

改ざんの検知

通信相手の認証

 

通信の暗号化

SSL/TLS接続における通信は暗号化通信によって行われています。

暗号化に使われるのは、共通鍵暗号ですが、共通鍵をサーバーからクライアントに提示する証明書に含まれる公開鍵を使って共有されています。

これにより、通信経路の第三者が侵入し通信内容を傍受されても、通信の内容を知られることを防ぎます。

 

改ざんの検知

SSL/TLSにおいて、クライアントやサーバーはそれぞれデータ送信前に送信内容から生成したMACを付加します。MACを用いて、改ざんされていないことを確認できます。この機能により、通信経路上で第三者に通信を改ざんされてしまった場合でも、受信者は通信の改ざんに気づくことが可能です。

 

通信相手の認証

SSL/TLS接続を開始する前に、公開鍵証明書を用いて本当に通信しようとしているサーバであるのか確認を行うことができます。

確認方法として⇒

「証明書に含まれているドメイン名が接続先と一致しているか」

「信頼されている認証局から発行された証明書か」

通信相手が「接続しようとしているドメイン名の正当な証明書を持つサーバーである」ことを認証することが可能です。