情報処理安全確保支援士試験 午後問題から学ぶ【ブロック暗号の暗号モード】

情報処理安全確保支援士試験の午後問題には、情報セキュリティに関する最新の動向を反映した題材が採用されています。

キーワードに加え、設計やインシデント対応能力をシミュレーションできる良い学びの場ですので、情報処理安全確保支援士試験合格はもちろん、情報処理安全確保支援士となった後も能力向上のために学習していきましょう。

今回は、「無線LANを侵入経路としたマルウェアへの感染」を題材にした「ブロック暗号の暗号モード」を解説していきます。

「ブロック暗号の暗号モード」とは

暗号処理の方式には、ブロック暗号とストリーム暗号があります。

1ビットまたは1バイト単位で暗号化を行うストリーム暗号に対して、ブロック暗号では、データを一定の長さに区切ってそれぞれを暗号化します。

具体的には、先頭から64ビット、128ビットなどの固定長のブロックに分割して暗号化処理を行い、暗号文の長さは平文と同じになります。

ブロック暗号のランダム性を高めるための工夫がいくつかあり、これを暗号モードといいます。

最も単純なECBモード(Electronic Codebook Mode)、広く用いられるCBCモード(Cipher Block Chaining Mode)、他にCTRモード(Counter Mode)などがあります。

ECBモードは、各ブロックに暗号鍵のみを用いて暗号文を生成するもので、同じ平文からは常に同じ暗号文が得られます。そのため、パターンの出現頻度によっては解読されやすく、機密度が低いため推奨されない方式です。 

平成31年度春期情報処理安全確保支援士試験での「ブロック暗号の暗号モード」

「無線LANを侵入経路としたマルウェアへの感染」を題材に、マルウェアの調査と対策について出題されました。

それでは「ブロック暗号の暗号モード」の問題となった部分を見ていきましょう。

 〔暗号モード〕

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

 暗号モードのうち、ECBモードとCTRモードの仕組みを図3に示す。

f:id:aolaniengineer:20200103042806p:plain

 一般的なブロック暗号のブロック長は、64〜128ビット程度なので、暗号化のためTCP/IPパケットをヘッダも含めて平文ブロックに分割すると、④パケットがもつある特徴から、同一端末間の異なるパケットにおいて、同一の平文ブロックが繰り返して現れることが想定される。そのため、その平文の内容は高い確率で推測可能である。仮にTCP/IPパケット全体をECBモードで暗号化した場合、(c)が繰り返して現れることになり、暗号の解読が容易になるおそれがある。

 CTRモードでは、暗号ブロックは、(d)と(e)の排他的論理和である。無線LANの場合、攻撃者は暗号化されたパケットを入手可能であるので、その暗号化されたパケットに対する(d)が推測できた場合、(e)は容易に算出できる。これらを踏まえるとCTRモードでは、初期カウンタ値の再利用の強制によって、同一の(e)を使用して異なるパケットの暗号文を作成してしまう可能性がある。

 ここまで調べたP君は、イントラポータルサーバへのアクセスはHTTPであり、かつ、ベーシック認証を使用しているので、WPA2の通信を解読されると利用者IDとパスワードの流出に直結してしまうことに気付いた。

設問4 〔暗号モード〕について、(1)、(2)に答えよ。

 (1)本文中の下線④について、TCP/IPの特徴を40字以内で述べよ。

 (2)本文中の(c)〜(e)に入れる適切な字句を、それぞれ15字以内で答えよ。

正解 

 (1)IPヘッダ部及びTCPヘッダ部は、同一のバイト列であることが多いこと

 (2)c同一の暗号ブロック、d:平文ブロック、e:カウンタ値を暗号化した値

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

設問4(1) 

 同一端末間の異なるパケットで同一となる情報とは何かを考えます。

 TCP/IPパケットは、データにIPヘッダを付加した形で通信します。

 IPヘッダは送信元アドレスや送信先アドレスなどの情報ですので、同一端末間であれば同じIPヘッダとなります。

 また、IPヘッダのサイズは20バイト(160ビット)です。

 ブロック暗号のブロック長の64〜128ビット程度に比べて、大きいサイズとなります。

 したがって同一端末間の異なるパケットであっても、IPヘッダ部分は同一の平文ブロックとして繰り返して現れることが想定されます。

設問4(2)

(c)

 図3のECBモードの処理を確認します。

 m1、m2、m3は平文ブロックで、そのまま暗号化処理をしてe1、e2、e3の暗号ブロックを生成しています。

 前問の通り、TCP/IPパケットでは同一の平文ブロックが繰り返し現れることが多いため、その場合は暗号ブロックも同一となって生成されてくることになります。

(d)(e)

 図3のCTRモードの処理を確認します。

 暗号ブロックは、1ずつ加算されたカウンタ値を暗号化処理した値と、平文ブロックを排他的論理和演算したものです。

 問題文は難しい表現となっていますが、「カウンタ値を暗号化処理した値」と「平文ブロック」の2択です。

 後半の文章にある、「初期カウンタ値の再利用の強制によって」できるものを考えると、暗号化処理後の値、つまり「カウンタ値を暗号化処理した値」になります。