ネットワークスペシャリスト合格に必要となる知識を一問一答形式で確認していきます。
HTTP
HTTPレスポンスの代表的なヘッダとその概要を述べよ
- Content-Security-Policy
- 外部読み込みを許可するリソースの種類とドメインを指定する。
- Strict-Transport-Security(HSTS)
- HTTPS接続を強制する。
- X-Content-Type-Options
- ファイルの内容をContent-Type属性から判断させる。このフィールドにより,ファイル形式をブラウザに誤認させてJavascriptを実行させるXSS攻撃を防ぐことができる。
- X-XSS-Protection
- XSS攻撃を検知したときにページの読み込みを停止する
301リダイレクトだけでなくStrict-Transport-Security(HSTS)を利用する理由を述べよ
301リダイレクトでは最初の通信は暗号化されないが,HSTSではコンテンツを返さずにHTTPレスポンスヘッダで通知を行うことができ,それ以降の通信はHTTPS接続となるため。
HTTPリクエストメソッドにおけるGETとPOSTのキャッシュ機能の有無について説明せよ。
GETで取得したページはキャッシュされ,POSTで取得したページはキャッシュされない。
HTTP/1.1において実装が必須であるメソッドを全て挙げよ。
GET/HEAD
Cookieの代表的な属性とその役割を述べよ
- Secure:HTTPS通信のときに限りサーバにブラウザからCookieが送信される
- Domain:Cookieを送信するドメインを指定
- Path:Cookieを送信するURLディレクトリを指定
- Expires:Cookieの有効期限を設定
- HttpOnly:JavaScriptからCookieにアクセスできなくなる
HTTPで定義されている基本的な二つの認証方式を説明せよ
- ベーシック認証:ユーザ名とパスワードをコロンで繋いでBase64でエンコードする方式。
- ダイジェスト認証:ユーザ名・パスワード・ランダムな文字列をMD5でハッシュ化する方式。コロンではない点に注意。
HTTPS通信とプロキシサーバを併用する際の問題点を述べよ。また,その問題点を解決するための方法と,それに付随して再出現する問題を述べよ。最後に,再出現した問題の解決方法を述べよ。
HTTPS通信はクライアントとWebサーバ間で暗号化を行っているため,プロキシサーバを経由させるとパケットを中継することが不可能である。そこで,CONNECTメソッドを使ってプロキシサーバに通信を透過させるという手段を用いる。しかし,通信を透過させると,プロキシサーバのセキュリティチェックがなされないという問題が再出現する。この問題を解決するためには,HTTPS通信をプロキシサーバで終端させて通信を復号し,その後再度プロキシサーバとWebサーバの間でHTTPS通信を行うという手段を用いる。このとき,プロキシサーバのサーバ証明書はプロキシサーバ自身がCAとしてルート証明書(サーバ証明書の署名)を発行しているため,クライアントにはデフォルトで梱包されていないルート証明書を利用していることになり,ブラウザには警告の表示がされてしまう。この警告は,CAとしてのプロキシサーバのルート証明書をクライアントにインストールすることで非表示にできる。
HTTPプロトコルでcookieを発行する流れを説明せよ
- HTTPレスポンス:Set-cookieフィールドにセッションIDを発行
- HTTPリクエスト:CookieフィールドにセッションIDを格納
HTTPの1.0/1.1/2/3の特徴をそれぞれまとめよ
HTTP | 特徴 | 弱点 |
---|---|---|
1.0 | ・テキストファイル以外への対応 ・リクエスト/レスポンスの形式策定 | 毎回TCPコネクションを張ること |
1.1 | ・キープアライブ ・パイプライン(リクエストを連続させる機能) | パイプラインを並列できない |
2 | ・バイナリ形式によるオーバーヘッド削減 ・ストリームごとの並列処理(マルチプレキシング) ・HPACK(メッセージヘッダーの圧縮) ・サーバープッシュ(必要となるファイルの予測送信) | TCPの仕様に基づくボトルネック |
3 | ・UDPを採用することによるハンドシェイク廃止 ・TLA1.3を採用することによるハンドシェイク軽量化 | - |
HoLとはなにか
HTTP1.1において同じTCPコネクション内ではリクエストとレスポンスを並列できない仕様であることから,サーバのバッファを無駄に消費してしまうこと。HTTP1.2においては,1つのTCPコネクション内で複数ストリームを作成し,ストリーム内でリクエストとレスポンスをやりとりする。
ETagとはなにか
Webサーバが設定するファイルの識別子
If-MatchとIf-None-Matchとはなにか
- If-Match:ETagがWebサーバ上のEtagと一致した場合にリクエストを返す方式
- If-None-Match:ETagがWebサーバ上のEtagと一致しなかった場合にリクエストを返す方式
If-MatchではETagが一致しなかった場合は412 Precondition Failedを返し,If-None-MatchではETagが一致した場合は304 Not Modifiedを返す。例えば,CDNではIf-None-Matchを用いてWebサーバへの負荷を軽減している。
SSLハンドシェイクの流れを説明せよ
フェーズ | 通信の呼称 | 詳細 |
---|---|---|
対応方式の提示 | Client Hello | クライアント側が使える暗号化方式やハッシュ化方式のリスト(※)を提示 ※ 暗号スイート |
対応方式の提示 +通信相手の証明 | Server Hello Certificate Certificate Request Server Hello Done | サーバ側がクライアント側が提示した暗号スイートから選択する その後,サーバ署名書の情報を送った上でクライアント証明書を要求し, Server Hello Doneを送る |
通信相手の証明 | Certificate | クライアント証明書を送る |
PMSの交換 | Client Key Exchange | クライアントから共通鍵の素となるpre-master-secret(PMS)を交換する |
要約 | Certificate Verify | クライアントがこれまでの要約をハッシュ値で送る |
最終確認(クライアント) | Change Cipher Spec Finished | ネゴシエーションされた暗号スイートで通信を開始する宣言とその確認 |
最終確認(サーバ) | Change Cipher Spec Finished | ネゴシエーションされた暗号スイートで通信を開始する宣言とその確認 |
特に,CertificateがServerHelloとServerHelloDoneに挟まれていることに注意する。
マスタシークレットと共通鍵の関係を説明せよ
プリマスタシークレットとclient random・server rondomがマスタシークレットとなり,マスタシークレットからMAC鍵とセッション鍵が生成されるという関係。MAC鍵は改ざん防止のためのハッシュ化に利用され,セッション鍵はデータの暗号化に利用される。
FTP
FTPの制御用ポートとデータ転送用ポートを述べよ
- 制御用ポート:TCP/21
- データ転送用ポート:TCP/20
ただし,パッシブモードではデータ転送用ポートは任意となる。
FTPのアクティブ・パッシブは何が主語か
サーバ。転送用コネクションはアクティブ/パッシブ共にクライアントから接続開始し,データコネクションはアクティブの場合はサーバから,パッシブの場合はクライアントから接続開始する。古くから利用されているのはアクティブモードだが,FW等でサーバ側からのデータ転送用のコネクションが拒否されてしまう可能性があるため,パッシブモードが考案された。今のFWではアクティブモードでも問題が起こらないようになっているものが多い。
FTPにおけるMODE/PASV/PORTを説明せよ。
- MODE:転送モードの指定
- PASV:クライアントからサーバに転送用ポートを問い合わせる
- PORT:クライアントがデータ転送を待ち受けているポート番号をサーバに伝える。サーバは能動的になるのでACTIVEと言いたいところだが,PORTなので注意。加えて,制御用のコネクションは常にクライアントからサーバに向けて確立されることにも注意。
種々のプロトコル
SNMPのメッセージをまとめよ
メッセージ | 方向 | 概要 |
---|---|---|
get-request | マネージャ→エージェント | 参照要求 |
set-request | マネージャ→エージェント | 設定要求 |
get-response | エージェント→マネージャ | 参照応答 |
trap | エージェント→マネージャ | イベント通知 |
IPFIXとは何か簡単に説明せよ。
トラフィック分析を行うためのプロトコル。SNMPでは機器自体の状態監視を行い,サーバ側から情報提供を要求する必要があるPull型であるが,IPFIXはトラフィック分析を行い,機器側が自発的に情報提供してくれるPush型であるという違いがある。
SIP/SDP/RTP/音声/動画の関係性を図示せよ
呼制御にSIPが利用され,SIPのボディ部の記述方法を定めたものがSDPである。SDPの中でデータをやり取りするためのプロトコルであるRTPが利用されるという関係。
CPPM/CPRM/DTCP/HDCPを説明せよ
いずれも信号を暗号化して,不正や複製や傍受を防止する仕様を定めた規格である。
- CPPM(Content Protection for Pre-Recorded Media)
- 再生専用メディアに対する規格
- CPRM(Content Protection for Recordable Media)
- 書き可能メディアに対する規格
- DTCP(Digital Transmission Content Protection)
- コンピュータやAV機器の接続などの家庭内ネットワークに対する規格
- HDCP(High-bandwidth Digital Content Protection)
- HDMI端子やDisplayPort端子と表示機器の間でやり取りされる信号に対する規格
EAP-TLSとEAP-TTLS・EAP-FASTの違いを証明書の観点から述べよ
EAP-TLSでは,サーバ・クライアント間の認証をディジタル証明書を用いて行う。一方で,EAP-TTLSやEAP-FASTでは,TLSによりサーバ認証を行った後に各種認証方法でクライアントを認証するという違いがある。
VoIPとそれにまつわるプロトコルを階層化してまとめよ
- 呼制御データに関するプロトコル
- H.323:バイナリ形式
- SIP/SDP:テキスト形式(ボディ部はSDPでプロトコルやポート番号を記述)
- 音声データに関するプロトコル
- RTP:UDP+シーケンス順序管理+タイムスタンプ
WebSocketのハンドシェイク要求はサーバとクライアントどちらから行うか
クライアント。サーバ側からは行うことはできない。
IDPの通信遮断方法を説明せよ。
TCPであればRSTを送出し,UDPであればPort Unreachableを利用する。
コメント