サイトアイコン やさしいネットワークとセキュリティ

ECBモードとCTRモードにおける暗号化処理の問題【情報処理安全確保支援士試験 平成31年度 春期 午後2 問1 設問4】

情報処理安全確保支援士試験 平成31年度 春期 午後2 問1 設問4

【出典:情報処理安全確保支援士試験 平成31年度 春期 午後2問1(一部、加工あり)】

【暗号モード】
 P君は、暗号モードについても調べてみた。ブロック暗号を利用して長い平文を暗号化するには、平文をブロックに分割し、各ブロックに対して暗号化処理を適用する必要がある。ブロック暗号の適用方法を暗号モードと呼ぶ。最も単純な暗号モードはECBモードである。
 暗号モードのうち、ECBモードとCTRモードの仕組みを図3に示す。


 一般的なブロック暗号のブロック長は、64~128ビット程度なので、暗号化のためTCP/IPパケットをヘッダも含めて平文ブロックに分割すると、④パケットがもつある特徴から、同一端末間の異なるパケットにおいて、同一の平文ブロックが繰り返して現れることが想定される。そのため、その平文の内容は高い確率で推測可能である。仮にTCP/IPパケット全体をECBモードで暗号化した場合、(c)が繰り返して現れることになり、暗号の解読が容易になるおそれがある。
 CTRモードでは、暗号ブロックは、(d)と(e)の排他的論理和である。無線LANの場合、攻撃者は暗号化されたパケットを入手可能であるので、その暗号化されたパケットに対する(d)が推測できた場合、(e)は容易に算出できる。これらを踏まえるとCTRモードでは、初期カウンタ値の再利用の強制によって、同一の(e)を使用して異なるパケットの暗号文を作成してしまう可能性がある。
 ここまで調べたP君は、イントラポータルサーバへのアクセスはHTTPであり、かつ、ベーシック認証を使用しているので、WPA2の通信を解読されると利用者IDとパスワードの流出に直結していしまうことに気付いた。

【不審なW-APの発見と対策】
 無線LAN経由で侵入された可能性のある時期には、タブレットPCはKRACKsへの対策がされていなかったので、P君は、KRACKsによる攻撃を受けた可能性を調査する必要があると考えた。そこでP君は、W主任に相談して、攻撃者が不正なW-APを設置していないか、N社の周囲の無線状況を調査した。その結果、総務部のW-APと同一のSSIDが設定された不審なW-APが、N社敷地外にあることを発見し、KRACksによる攻撃を受けたと結論付けた。
 そこで、W主任は、KRACksによってWPA2の通信が解読された場合でも被害を防ぐ対策として、イントラポータルサーバへのアクセスをHTTPSに変更する案を提案した。

【L7FW機能の実効性の確認】
 一方、R課長は、FW1にはL7FW機能があることを思い出した。しかし、今回のインシデントでは、FW1が、マルウェアによる通信を不正な通信として検出した形跡はなく、通過させていた。この件について、R課長はP君に調査を指示した。
 P君が、プロキシサーバ のログを分析したところ、4月10日の10:00以降、問合せ用PCが発信元であるHTTPSと思われる通信が、通常よりも大幅に増加していた。これらの通信の大半は、表3のC&CサーバのIPアドレスを含む不審なIPアドレスへの通信であったことから、マルウェアによるものと推測された。一方、問合せ用PCが発信元であるHTTP通信は、ほとんどなかった。
 続いてP君が、FW1の機能の設定状態を確認したところ、L7FW機能は有効化されていたが、HTTPS通信によって送受信されるデータを復号する機能(以下、HTTPS復号機能という)はライセンスがないので有効化されていなかった。この状態では、HTTPS通信に対してL7FW機能は効果がないことが分かった。P君は、これら一連の内容をR課長に報告した。
 R課長は、インシデントの調査を終了し、W-APのIEEE802.1X認証の方式をEAP-TLSに変更する案と、イントラポータルサーバへのアクセスをHTTPSに変更する案を実施するとともに、残りの対策の検討に移ることにした。

④について、TCP/IPパケットの特徴を、40字以内で述べよ。:IPヘッダ部及びTCPヘッダ部は、同一のバイト列であることが多いこと

 同一端末間の異なるパケットで、同一となる情報とは何かを考えます。
 TCP/IPパケットは、データに下記のようなIPヘッダ(20バイト)とTCPヘッダ(20バイト)を付加した形で通信します。

  1. (IPヘッダ)バージョン、サービスタイプ、IPパケット長、フラグ、フラグメントオフセット、TTL、プロトコルなど:12バイト(96ビット)
  2. (IPヘッダ)送信元IPアドレス:4バイト(32ビット)
  3. (IPヘッダ)宛先IPアドレス:4バイト(32ビット)
  4. (TCPヘッダ)送信元ポート番号:2バイト(16ビット)
  5. (TCPヘッダ)宛先ポート番号:2バイト(16ビット)
  6. (TCPヘッダ)シーケンス番号::4バイト(32ビット)
  7. (TCPヘッダ)確認応答番号::4バイト(32ビット)
  8. (TCPヘッダ)フラグ、ウィンドウサイズ、チェックサムなど:8バイト(64ビット)

 このうち、2〜4項については同一端末間でのやり取りの場合は同一のビット列になることが多くなります。
 IPヘッダとTCPヘッダのサイズは40バイト(320ビット)で、ブロック暗号のブロック長の64〜128ビット程度に比べて、大きいサイズとなります。
 したがって同一端末間の異なるパケットであっても、ヘッダ部分は同一の平文ブロックとして繰り返して現れることが想定されます。

c:同一の暗号ブロック

 図3のECBモードの処理を確認します。
 m1、m2、m3は平文ブロックで、そのまま暗号化処理をしてe1、e2、e3の暗号ブロックを生成しています。
 前問の通り、TCP/IPパケットでは同一の平文ブロックが繰り返し現れることが多いため、その場合は暗号ブロックも同一となって生成されてくることになります。

d:平文ブロック、e:カウンタ値を暗号化した値

 図3のCTRモードの処理を確認します。
 暗号ブロックは、1ずつ加算されたカウンタ値を暗号化処理した値と、平文ブロックを排他的論理和演算したものです。
 問題文は難しい表現となっていますが、「カウンタ値を暗号化処理した値」と「平文ブロック」の2択です。
 後半の文章にある、「初期カウンタ値の再利用の強制によって」できるものを考えると、暗号化処理後の値、つまり「カウンタ値を暗号化処理した値」になります。

モバイルバージョンを終了