Unicode正規化とセキュリティ — 紛らわしい文字

Unicode正規化のセキュリティとの関連を理解します:紛らわしい文字(ホモグリフ)、スプーフィング攻撃、NFKCがユーザー名やURLのスプーフィングを防ぐ方法。

Security

詳細な説明

Unicode正規化とセキュリティ

適切な正規化なしでは、攻撃者は視覚的に類似した文字を悪用してセキュリティチェックをバイパスできます。

紛らわしい文字(ホモグリフ)

異なるスクリプトの一部の文字は同一または非常に類似して見えます。これらは異なるスクリプトに属するため、どの正規化形式でも等価ではありません。

正規化で検出できるもの

NFKC正規化は以下に対応:

  • 全角攻撃: 全角文字 → ASCII
  • 合字スプーフィング: 合字 → 個別の文字
  • 互換等価: 記号 → 標準文字

正規化で検出できないもの

  • クロススクリプトホモグリフ
  • 類似文字の置換(rn vs m
  • ゼロ幅文字

PRECISフレームワーク(RFC 8264)

モダンなプロトコルのユーザー名とパスワードに使用されるIETF PRECISフレームワークは、準備ステップの一部としてNFKC正規化を義務付けています。

ユースケース

認証システム、ユーザー名登録、メールアドレス検証、URLフィルタリング、セキュリティに敏感なテキスト比較にとって不可欠です。正規化なしでは、攻撃者は正当なものと同じに見えるが一意性チェックをバイパスするユーザー名やドメインを登録できます。

試してみる — Unicode Normalizer

フルツールを開く