👌
インターネットの仕組みを理解するための基本用語
- プロトコル
異なるデバイス間で通信を行うための規格。様々なプロトコルを用いてデータのやり取りが行われる- IP
パケットが正しい移送先に向かうようルーティングを行う - TCP/UDP
パケットを確実かつ効率的に伝送することを保証する - DNS
ドメインネームをIPアドレスに変換する - HTTP
クライアントとサーバーの間でデータを伝送するために用いられる
- IP
- ルーター
異なるネットワーク間でパケットの行き先を割り振る - パケット
インターネット上で移送されるデータの小単位 - IPアドレス
インターネット上のリソースを一意に識別する、いわばインターネット上の住所。ピリオドで仕切られる4つの数字で表される。(192.168.1.1) - ドメインネーム
IPアドレスに人間がわかりやすい名前を割り当てたもの。(google.com)
DNSによってドメインネームがIPアドレスに変換され通信に利用される。 - DNS
ドメインネームをIPアドレスに変換するシステム。
Webブラウザにドメインネームを入力すると、DNSサーバーが対応するIPアドレスを探索し返還する。その後、そのIPアドレスを用いてリソースにアクセスされる - HTTP
クライアントとサーバー間でデータのやり取りを行うためのプロトコル。クライアントサイドがHTTPリクエストをサーバーに送信、その後サーバーサイドが要求されたデータを含むHTTPレスポンスを返す。 - HTTPS
よりセキュアなバージョンのHTTP。SSLとTLSを用いてクライアント−サーバー間で伝送されるデータを暗号化する。 - TCP/IP
インターネット上通信の規定となるプロトコル。データの伝送を担う。TCP/IPは以下の概念の上に成り立つ。- ポート
デバイス上のアプリケーションやサービスを一意に識別するために、それぞれにポートという数字があてがわれる。これによりデータを指定したアプリケーションに受け渡すことができるようになる。 - ソケット
IPアドレスとポートナンバーの組み合わせたもの。デバイス間のコネクションを確立し、アプリケーション間でデータを伝送するために用いられる。 - コネクション
通信を始める時に2つのソケットの間で確立される。コネクションを作る過程で、デバイスはお互いに様々なパラメータ(最大セグメントサイズ、ウインドウサイズなど)を交渉し、どのようにデータを伝送するかを決定する。 - データ転送
データは通常セグメント単位で送信される。各セグメントにはシーケンス番号やその他のメタデータが含まれ、それにより信頼性の高いデータ転送が可能になる。
- ポート
- SSL/TLS
インターネット上で行うデータのやり取りを暗号化する。-
サーバー証明書
サイトの身元を明示するためのもの。証明書には、URL、組織名、住所などが記載される。SSLサーバー証明書をWebサイトに設定することで以下の効果が得られる。- なりすましの防止
- やり取りされるデータの改ざん検知
- 盗聴防止
- 中間者攻撃による通信の改ざんを検知
-
ハンドシェイク
クライアントとサーバーがメッセージをやり取りして互いを認識し、検出し、使用する暗号アルゴリズムを決定する。 -
暗号化
セキュアなコネクションが確立されることによって、データがハンドシェイク時に決定されたアルゴリズムによって暗号化され、伝送される。 -
SSL通信の流れ
- 鍵の送受信
- サーバーからブラウザへ公開鍵を含むサーバー証明書の送付
- ブラウザにサーバーから送られてきたサーバー証明書の検証
- ブラウザで共通鍵を生成
- 生成した共通鍵をサーバーから送付された公開鍵で暗号化
- 暗号化した共通鍵をブラウザからサーバーへ送付
- サーバーで暗号化されていた共通鍵を秘密鍵で復号
- データの送受信
- 受け渡しが完了している共通鍵を利用して、ブラウザで送付したいデータを暗号化
- 暗号化したデータをブラウザからサーバーへ送付
- サーバーでは受け取った暗号化されたデータを共通鍵で復号
- 鍵の送受信
-
Discussion