商社であるA 社では,クラウドサービスを利用して取引先と商品情報の交換を行うWeb システムを構築している。Web システムはコンテナ上で稼働するWeb アプリケーション及びマイクロサービス群から構成されており,取引先システムから送られてくる刻々と変化する原価情報や,注文情報を扱うため,リアルタイム性の高い通信を必要とすることから,取引先システムとの接続にはWebSocket を利用している。図1 は,A 社Web システムにおける,取引先システムとの連携のための,WebSocket 通信開始処理である。
A 社が取引先システムへTLS で接続した際に,次の処理が行われる。 ・A 社Web システムはGET リクエストを送るが,このときのリクエストヘッダに“Upgrade: websocket”と”Connection: Upgrade”を含めることでWebSocket ハンドシェイクを開始する。 ・取引先システムがWebSocket を受け入れる場合,応答ヘッダに a を指定した上で,ステータスコードが b である応答が返される。 ・A 社Web システムからSec-WebSocket-Key として送られた16 バイトの乱数に対して,取引先システムからSec-WebSocket-Accept が応答されるが,これは16 バイトの乱数と特定の固定値を連結して c で計算したハッシュ値である。
図1 取引先システムとの連携のためのWebSocket 通信開始処理
A 社Web システムは,取引先システムとの通信においてSec-WebSocket-Accept で得た値を検証することで,相手システムが d ということが確認できる。
設問 図1 中の a ~ c ,及び本文中の d に入れる字句の組合せはどれか。解答群の中から最も適切なものを選べ。
(一) Upgrade: websocket Connection: Upgrade
(二) Upgrade: websocket Connection: websocket
(三) 101
(四) 200
(五) SHA-1
(六) SHA-2
(七) WebSocket を利用可能である
(八) なりすましでない
a | b | c | d | |
|---|---|---|---|---|
ア | (一) | (三) | (五) | (七) |
イ | (一) | (三) | (五) | (八) |
ウ | (一) | (三) | (六) | (八) |
エ | (一) | (四) | (五) | (七) |
オ | (一) | (四) | (六) | (八) |
カ | (二) | (三) | (五) | (八) |
キ | (二) | (三) | (六) | (八) |
ク | (二) | (四) | (五) | (七) |
ケ | (二) | (四) | (六) | (七) |
コ | (二) | (四) | (六) | (八) |