ディープパケットインスペクションとは何か
ディープパケットインスペクション(DPI)は、ネットワークを流れる通信データ(パケット)について、ヘッダー情報だけでなくパケットの中身(ペイロード)側も解析し、種類や状態などを判定する考え方です。目的としては、たとえばトラフィックの分類、ポリシー適用、既知のパターン検出などが挙げられます。
重要なのは「常に通信内容を見ている」と断定できるわけではない点です。実際にどこまで見えるかは、暗号化方式、プロトコルの使い方、検査の実装や設定によって変わります。
仕組みをイメージするための基本モデル
DPIは、一般に次の流れで動作することが多いです。 1つ目はパケットの受け取りです。次に、ヘッダー情報からセッションや宛先、通信の性質の手がかりを得ます。さらに、ペイロードの一部または全体に対して、パターン照合やルール評価などの解析を行い、判定結果を後段の制御(たとえば許可、制限、ログ、アラートなど)に使います。
ただし、解析対象にできるデータには上限があります。たとえば、途中で暗号化されている場合、DPIが読めるのは暗号化前の平文ではなく、暗号化された見え方になります。その結果、判定の精度や判定できる範囲が下がることがあります。
できることと制限・例外
DPIの「強さ」は、見えるデータがどれだけあるかに左右されます。暗号化が普及している環境では、次のような制限が現れやすいです。
- 暗号化によりペイロードが判読できない:ペイロードが暗号化されていると、内容ベースの検査が難しくなります。
- 判定に必要な情報が欠ける:通信の分割、実装のバッファ制限、ストリーム再構成の方式などにより、解析に使える情報が限定されることがあります。
- 既知パターン中心の検出の限界:署名やルールに基づく判定は、新しい手法や変化に弱くなる場合があります。
- 運用上の抑制:過剰な検査は負荷や誤検知を招くため、検査範囲を絞る設定がされることがあります。
また例外として、DPIという言葉が「検査の方向性」を指して使われる一方で、実装は多様です。
