protocol

概要

情報技術におけるプロトコルは、マシンやソフトウェア同士のやりとりに関する取り決め。Web開発者にとってもっとも馴染み深いプロトコルにHTTPなどがある。

Memo

ソケット通信

コネクション型通信であるTCPは、コンピュータ間に仮想的な通信路を作って通信する。TCPを利用した通信ではソケットを利用する。

ソケットを使う流れ。

  1. ソケット生成
  2. ソケット接続
  3. ソケット通信
  4. ソケット切断

一度通信接続が確立すると、クライアント・サーバに違いはない。お互いに書き込め、読み込める。

SSL/TLSとは

SSL(Secure Socket Layer)は、公開鍵基盤(PKI)を使用して、データの暗号化と、2者間(通常はクライアントとサーバ間)の認証を可能にするプロトコル。LOSSLESは最初Netscapeによって策定され、そのあとIETFに引き継がれてTLSに改名された。HTTPS、すなわちHTTP over SSは実質的にはSSL/TLSコネクション上のHTTP。

SSL証明書はデータの暗号化と認証のために提供されている。SSL証明書は公開鍵などの情報を含み、X.509形式にまとめられた一片のデータでWebサーバに保管される。SSL証明書には通常、それが本物であることを証明する認証局(Certificate Authority: CA)の署名がある。クライアントがサーバにリクエストを出すと、サーバから証明書が返される。クライアントは、その証明書が本物であることを確認すると、ランダムな鍵を生成し、証明書(証明書内の公開鍵)を使ってその鍵を暗号化する。この対象鍵が、クライアントとサーバ側のデータを暗号化するのに使われる実際の鍵。

  • X.509とは、公開鍵基盤(PKI)用のITU-Tによる標準規格。X.509には公開鍵証明書の標準書式が含まれている
  • X.509証明書(日常的にSSL証明書とも呼ばれる)は、ASN.1で表記され符号化されたデジタル文書。ASN.1は通信とコンピュータネットワーキングの分野でデータを表現するための規則と構造を記述する規格と記法。X.509証明書は、さまざまな形式に符号化できる
  • SSLでは証明書はいろいろな形式でファイルに保存できる。その1つがPEM(Privacy Enhanced Email)。Base64エンコードされたDER X.509証明書を“–—BEGIN CERTIFICATE–—”と“–—END CERTIFICATE–—”ではさんだもの
  • HTTPSは、SSLの上にHTTPのレイヤーを置いただけのもの

参考。

Tasks

TODO パケットキャプチャで理解する TLS1.3

TLSを観察して理解する本。

Reference

ネットワーク ゲームにおけるTCPとUDPの使い分け | PPT

プロトコルに関してのスライド。

Archives