2008年2月27日水曜日

IPsec

「IPsec」とは?
・SSLなどの特定のアプリケーションでの暗号化ではなく、通信を暗号化するために考えられた仕組み。
・暗号化をIPプロトコルレベルで実装し、ホストごとのセキュリティを確保することを目的とする。
・インターネットを使用したVPNの構築に使われている。

■「暗号化」とは?
・暗号鍵を通信相手同士で交換し、送信側にて暗号鍵を使って暗号化し、受信側にて暗号鍵を使って複合化を行う。
・暗号鍵の計算方式の違いによって各種暗号化方式のバリエーションが存在している。

■暗号通信の種類
「共有鍵暗号方式」
 ・暗号化と復号化で同じ暗号鍵を使用する。
 ・鍵の生成は送信側/受信側どちらでもよい。
 ・鍵を通信相手同士で共有するため、鍵の受け渡しの途中で外部に漏れた場合は秘密が守れなくなる。
 ・DES(Data Encryption Standard)
「公開鍵暗号方式」
 ・暗号化と復号化で別々の暗号鍵を使用する。
 ・受信側で「秘密鍵」と「公開鍵」生成し、公開鍵を相手側へ渡す。
  送信側は公開鍵を使用して暗号化を行い受信側へ送信する。
  受信側で「秘密鍵」にて復号化を行う。
  (公開鍵で暗号化されたものは、秘密鍵でないと復号化できない)
 ・RSA

■暗号化の問題点
・暗号化は「機密性」を満たすだけで、通信内容を隠すだけの役割しかない。
 セキュリティを考えると、「完全性の確保」と「認証」という条件を満たす必要がある。
・「完全性の確保」とは通信内容が通信途中で改変されることなく、通信相手に届く事が保障される事。
・「認証」とは通信相手が確かに意図した相手本人であるかが保障される事。
・暗号鍵が第三者に漏れてしまうと暗号化の意味がなくなってしまう。

■IPsecの仕組み
・暗号化通信方式の標準規格である。
 →利用する暗号化アルゴリズムは特定せず、あらゆる暗号を利用できるような柔軟な枠組みを提供。
・暗号化方式として共有鍵暗号化方式を採用している。
 →公開鍵より暗号化、復号化の速度が高速なため。

①通信時に使用する暗号化アルゴリズムと暗号鍵は事前に手動で設定する。
 (もしくは、通信相手との事前折衝の段階で決定する。)
 →こられの決定をSA(Security Association)という。
SPI(Security Pointer Index)の32ビット整数値の割り当ての実施。
 →通信内容がどのような暗号化アルゴリズムで、どの暗号鍵を使うかといったガイドラインとなる情報。
 →複数の相手とそれぞれ異なる暗号化アルゴリズム、暗号鍵による通信を実施する場合に、SPIの検索キーを使って必要な情報を引き出す。

■鍵交換に使用するプロトコル「IKE(Internet Key Exchange)
・SAの合意を自動的に行うことが可能な鍵交換プロトコル。
・鍵交換の段階で内容が漏れては意味がないので、IKE自体で暗号化通信をサポートしてる。
 鍵生成に「Diffie―Hellman」という方式を利用し、IKEの暗号通信を実施。

■データ転送に利用するプロトコル「ESP(Encapsulating Security Payload)
・暗号化された通信内容にSPI、シーケンス番号、認証データの3つの情報を付加しESPと呼ばれる入れものにパックする。
「トランスポート・モード」
 IPパケットで運ぶデータ部分のみを暗号化し、宛先情報のIPヘッダをつけて送信する。
「トンネル・モード」
IPヘッダとデータ部分をまとめて暗号化したうえで、新たにIPヘッダを再度つけ直して送信する。

■認証データ「MAC(Message Authentication Code)
・通信内容とパスワードを合わせたものに対して、ハッシュ関数と呼ばれる計算方法による演算を施した計算結果の事。
 (IPsecでは、ハッシュ関数としてMD5アルゴリズムを使用したメッセージ・ダイジェストを使用している)
・パスワードは事前に通信相手同士にて交換を行う。
・MAC内のデータと、事前のパスワードにより受信側でも計算を実施し、受け取ったMACと比較して相違があれば改ざんされている事になる。

■完全性の保証と認証のためのプトロコル「AH(Authentication Header)
・データの暗号化は行わず、SPI、シーケンス番号、認証データのみをパックして通常のIPパケットの中に加える。(ESPと同じ役割)
・暗号化通信が使えないというケースのために使われている仕組み。

0 件のコメント: