ハッシュアルゴリズム・SSL/TLSハンドシェイク・SSL-VPNの動作方式・SSL-VPNの暗号スイート、動作方式【ネットワークスペシャリスト試験 平成29年度 秋期 午後1 問1 No.1】

ネットワークスペシャリスト試験 平成29年度 秋期 午後1 問1 No.1

【出典:ネットワークスペシャリスト試験 平成29年度 秋期 午後1 問1(一部、加工あり)】

問1 SSL-VPNの導入に関する次の記述を読んで、設問1〜4に答えよ。

 H社は、顧客の業務システムの構築(以下、顧客システム構築という)を主力業務とする、中堅のシステム開発会社である。顧客システムは、様々なサーバ機器、OS、ミドルウェアなどを組み合わせて構築され、利用されるプロトコルも様々である。H社の拠点で構築されて、最終的に顧客の拠点に納入されたシステムは、顧客社内のPCなどから利用される。

 H社は、顧客の業務システムの構築(以下、顧客システム構築という)を主力業務とする、中堅のシステム開発会社である。顧客システムは、様々なサーバ機器、OS、ミドルウェアなどを組み合わせて構築され、利用されるプロトコルも様々である。H社の拠点で構築されて、最終的に顧客の拠点に納入されたシステムは、顧客社内のPCなどから利用される。

【顧客システム構築業務の問題とその解決策】
 H社では、顧客システム構築業務において次に示す問題を抱えている。

  • (問題1)顧客システム構築ネットワークに対して、当該構築業務とは関係がないPCから不正なアクセスを受ける可能性がある。
  • (問題2)顧客システム構築をH社の拠点で行っているので、顧客はシステムが納入されるまで動作確認ができない。

 これらの問題に対処するために、解決策の検討を任されたH社情報システム部のSさんは、SSL-VPNを利用すれば解決できると考えた。Sさんの検討結果を次に示す。

  1. SSL-VPNについて
     SSL-VPNは、SSL/TLSのプロトコルを利用したVPN技術である。その利用には、SSL/TLSのプロトコルのバージョン、及びプロトコルに含まれるアルゴリズムについて、次に示す点を考慮する必要がある。
    • 十分な安全性を確保できないとされるハッシュアルゴリズムであるMD5又は(ア:SHA-1)を使用しないで済むように、TLSプロトコルのバージョン(イ:1.2)以上を利用する。
    • SSL/TLSのコネクション開設時に、クライアント側から送られる(ウ:Client_Hello)メッセージと、サーバ側から返される(エ:Server_Hello)メッセージの交換が行われる。このとき、それ以降で用いられる暗号スイート(アルゴリズムの組合せを示した情報)が決定される。その情報には、アプリケーション層の暗号化に使われる暗号アルゴリズム以外に、(Ⅰ)2種類の暗号アルゴリズムと1種類のハッシュアルゴリズムが含まれる。
  2. SSL-VPNの動作方式
     SSL-VPNの基本的な動作には、(オ:リバースプロキシ)、ポートフォワーディング、L2フォワーディングの3方式がある。(Ⅱ)H社の場合はL2フォワーディング方式が望ましいと、Sさんは判断した。Sさんがベンダに確認したL2フォワーディング方式の動作概要を次に示す。
  • PCにインストールするクライアントモジュールからSSL/TLS接続を行う。
  • (Ⅲ)接続時の認証に応じて、PCに適切なIPアドレスを割り当てる
  • PCとSSL-VPN装置間のSSL/TLS接続トンネル上で、レイヤ2の中継を行う。

 Sさんは、これらの検討結果から、開発LAN及び顧客各社のPCから顧客システム構築ネットワークに対する必要なアクセスを全てSSL-VPN経由で行うようにすることで、問題1と問題2に対応できると考え、SSL-VPN装置を新たに導入することにした。また、その問題の対応には、FW、L3SWなどの設定変更も必要になると考えた。

ア:SHA-1

 ハッシュアルゴリズムには、MD5(Message Digest Algorithm 5)、SHA-1(Secure Hash Algorithm 1)、SHA-256、SHA-384がありますが、MD5、SHA-1については攻撃手法が公開されており安全性を確保できなものとして位置付けされています。

イ:1.2

 TLS(Transport Layer Security)のバージョンにはTLS1.0からTLS1.3がありますが、ハッシュアルゴリズムとしてSHA-256、SHA-384を利用できるようにしたのはTLS1.2からです。

ウ:Client_Hello、エ:Server_Hello

 TLSのコネクション開設時に行われるハンドシェイクでは、クライアントからClient_Helloメッセージが送信され、サーバからServer_Helloメッセージが返信されます。

  • Client_Helloメッセージ:クライアントのTLSバージョン、クライアント乱数、暗号スイートのリストなどをサーバに送信する。
  • Server_Helloメッセージ:サーバで使用するTLSバージョン、サーバ乱数、サーバで選択した暗号スイートをクライアントに通知する。

その後、サーバ証明書によるサーバ認証、鍵交換プロセスなどを行います。

(Ⅰ)について、2種類の暗号アルゴリズムと1種類のハッシュアルゴリズムのそれぞれの用途を答えよ。:(暗号アルゴリズム)鍵交換、認証、(ハッシュアルゴリズム)メッセージ認証

 SSL/TLSコネクション開設時に決定される暗号スイートには、鍵交換アルゴリズム、鍵認証方式、暗号化、メッセージ認証の組み合わせがセットされています。
例えば、「ECDHE_RSA_WITH_AES_128_GCM_SHA256」という暗号スイートの場合、以下のようになります。

  1. ECDHE(elliptic curve Diffie-Hellman Ephemeral):鍵交換アルゴリズム
  2. RSA:鍵認証方式(署名)
  3. AES_128_GCM:暗号化(鍵長128ビットのGCMを用いるAES)
  4. SHA256:メッセージ認証(ハッシュ関数)

 暗号アルゴリズムとしては上記の1と2が該当し、その用途は鍵交換と認証になります。
 また、ハッシュアルゴリズムとしては4が該当し、その用途はメッセージ認証になります。

オ:リバースプロキシ

 SSL-VPNの実現には、リバースプロキシ、ポートフォワーディング、L2フォワーディングという3つの方式があります。

  • リバースプロキシ方式:SSL-VPN装置をリバースプロキシとして動作させる方式で、クライアントはHTTPS(HTTP over TLS)でアクセスする。Webブラウザ上で動作するアプリケーションに限定される。
  • ポートフォワーディング方式:クライアント側にJavaアプレットなどで通信モジュールを介した通信を行う方式で、ポート番号に応じた通信先を定義しておくことで、ポート番号によりアクセス先を指定できる。
  • L2フォワーディング方式:クライアント側に専用のVPNクライアントソフトを導入して、L2(データリンク)層のデータをSSL/TLSのトンネルで転送するため、利用できるアプリケーションなどの制約がない。

(Ⅱ)について、判断の根拠となった、H社が構築する顧客システムの特徴を、30字以内で述べよ。:顧客システムは、様々なプロトコルを利用している。

 顧客システムの特徴としては、問題文に「顧客システムは、様々なサーバ機器、OS、ミドルウェアなどを組み合わせて構築され、利用されるプロトコルも様々である」とあります。
 これを前提に、SSL-VPNの動作方式の特徴を示すと以下のようになります。

  • リバースプロキシ方式:SSL-VPN装置をリバースプロキシとして動作させる方式で、クライアントはHTTPS(HTTP over TLS)でアクセスする。Webブラウザ上で動作するアプリケーションに限定される。
  • ポートフォワーディング方式:クライアント側にJavaアプレットなどで通信モジュールを介した通信を行う方式で、ポート番号に応じた通信先を定義しておくことで、ポート番号によりアクセス先を指定できる。使用するアプリケーションのポート番号が動的に変化するようなものは利用できない。
  • L2フォワーディング方式:クライアント側に専用のVPNクライアントソフトを導入して、L2(データリンク)層のデータをSSL/TLSのトンネルで転送するため、利用できるアプリケーションなどの制約がない。

 したがって、顧客システムで利用される様々なプロトコルに対応するには、L2フォワーディング方式が最適であると考えて良さそうです。

(Ⅲ)について、割り当てられたIPアドレスは、PCのどのネットワークインタフェースに設定されるか、図2中の字句を用いて答えよ。:vNIC

 「PCとSSL-VPN装置間のSSL/TLS接続トンネル上で、レイヤ2の中継を行う。」と図2から、PCがSSL-VPN装置との間で構築したSSL/TLS接続トンネル上で通信が行われることが分かります。
 したがって、IPアドレスはそのSSL/TLS接続トンネルに設定されることになり、図2から、PC側ではvNICに設定されることが分かります。

f:id:aolaniengineer:20200625033857p:plain