ペネトレーションテストと共通鍵暗号方式

ペネトレーションテストと共通鍵暗号方式

ペネトレーションテスト

攻撃側が圧倒的に有利なゲーム?

サイバーセキュリティにおいて、攻撃側と防御側では攻撃側が圧倒的に有利といわれます。そういわれるのには次のような理由があります。

(1)攻撃側はクラッカー同士で常に攻撃手段やツールの情報共有をしているのに防御側はできていない

(2)防御側は攻撃者がどのような手段で攻めてくるかを予測するのが困難。つまり、あらゆる攻撃に耐えうるように備えなければならない

(3)今までに知られていない攻撃をされた場合、防御はほぼ不可能

上記の(3)に対応するのはかなり難しいですが、(1) (2) であれば、防御側も攻撃者と少なくとも同じ立場に立つことができます。そのためには、これまでに侵入に使われた既知の攻撃手段の情報を収集し、それを一通り自分のシステムに試してみて、侵入に成功するかどうかを確認すればよいのです。これが「ペネトレーションテスト」です。もしも既知の侵入手段で侵入に成功してしまったら、その攻撃に対してしっかりと防御をしておく必要があります。このペネトレーションテストはシステムを稼動させる前に行います。いくら十分に対処したと思っていても、漏れがあるかもしれません。対処漏れを発見するためにペネトレーションテストを行います。

ペネトレーションテストのやり方

ペネトレーションテストでは数多くの侵入手段を試すため、テスト用のツールを活用して行います。代表的なペネトレーションテストツールには、metasploit やnmap、OWASP ZAP、Burp Suite があります。具体的にどのような段取りをふむかについては、 The Penetration Testing Standards (http://www.pentest-standard.org/index.php/Pre-engagement) などで定められています。

共通鍵暗号方式

古典暗号と現代暗号

みなさんは「暗号」と聞くと、どのようなイメージを思い浮かべるでしょうか。文字を別の文字に置き換える方式や、文字の順番を規則に従って入れ替える方式でしょうか。実はこれはどちらも「古典暗号」と呼ばれるもので、今はほとんど使われていません。今使われている暗号は「現代暗号」と呼ばれるものです。古典暗号が、暗号のやり方(アルゴリズム)を秘匿することで成立していたのに対して、現代暗号では暗号のやり方は公開されています。その代わりに、秘匿の対象になるのが、「鍵」と呼ばれるものです。情報を隠して送信したい人は、秘密をやりとりする人たちだけで共有する「鍵」を使い、公開されているアルゴリズムを用いて暗号化や復号(暗号化されたデータを元に戻すこと)を行います。

共通鍵暗号方式と公開鍵暗号方式

現代暗号の方式には、共通鍵暗号方式と公開鍵暗号方式 の2種類があります。このうち、本項で解説する共通鍵暗号方式では、暗号化に使う鍵と復号に使う鍵に同じものを使います。このため、共通鍵暗号方式ではこの鍵の長さ(複雑さ)がセキュリティの強度(破られにくさ)のバロメーターになります。現時点での最低限安全な鍵の長さは112ビット(2の112乗)とされています。また、総当たり攻撃(鍵の組み合わせをすべて試す攻撃方法)以外の方法で、第三者が鍵を推測できないようにする必要があります。代表的な共通鍵暗号方式には、DES(Data Encryption Standard)や AES(Advanced Encryption Standard) があります。

上記のように、共通鍵暗号方式では暗号化と復号には同じ鍵を用いるため、送る側(暗号化する側)と受け取る側(復号する側)で、事前に鍵を共有しておくことが必要です。ネットワークを経由して事前に鍵を送るとすると、途中で鍵が漏れてしまっては困るので、鍵を暗号化するとすると、その暗号化用に別の鍵が必要ということになってしまいます。この問題を鍵配送問題といいます。

セキュリティカテゴリの最新記事