PASETO v2 vs v4 — 何が変わったか
PASETO v2とv4を比較:暗号プリミティブの選択、性能特性、ライブラリの可用性、v2からv4への移行タイミング。
詳細な説明
PASETO v2とv4はどちらも非NIST系の現代的なPASETOバージョンで、概念的な構造(localにXChaCha系、publicにEd25519)を共有しています。v4が現在の推奨デフォルトで、v2はレガシー扱いです。
同じところ:
publicトークンではv2もv4もEd25519署名を使うため、署名サイズ、セキュリティ強度、検証ワークフローは事実上同一です。両方とも非FIPSで、同じ現代的脅威モデル(アルゴリズム交渉なし、AEADのみ)を対象とし、PASETOライブラリで広くサポートされています。
v4で変わったこと:
最大の変更はlocalバリアントです。v2.localは単一のAEAD構成であるXChaCha20-Poly1305を使いますが、v4.localは暗号化にXChaCha20を、認証に別のBLAKE2b鍵付きハッシュを使います。この分離型構成はNaClのsecretboxの設計と同じで、PASETO作者たちに各プリミティブを独立に進化させる柔軟性を与えます。v4はまた、曖昧さを減らすために事前認証エンコーディング(PAE)形式を若干引き締めました。
パフォーマンス:
実際には、BLAKE2bが高度に最適化されているため、ほとんどのプラットフォームでv4.localはv2.localと同等またはわずかに高速です。v4.publicとv2.publicは性能的にはほぼ同一で、どちらの場合もEd25519の署名/検証が支配的です。
移行:
新規システムを始めるならv4を選んでください。既存のv2デプロイメントがある場合、緊急に移行する必要はありません — v2は壊れているわけではなく、置き換えられただけです。典型的な移行パスは、移行期間中はv2とv4の両方のトークンを発行し、検証側ではどちらも受け付け、すべてのクライアントがローテートしたらv2の発行を停止します。トークンをその場で変換しようとせず、通常の認証フローを通じて再発行してください。
v3はその間に位置:
v3はNIST承認プリミティブを必要とする環境(FIPS 140-2/3準拠)のために特別に追加されました。その要件がある場合のみv3を使い、それ以外はv4が良い選択です。
ユースケース
v2ベースのマイクロサービスメッシュを運用するチームがv4移行を計画:1四半期サービスでトークンを両方受け付け、その後発行者をv4専用に切り替え、移行期間終了時にv2鍵を退役させます。