暗号学において、ロン・リヴェストとアディ・シャミアによって記述された拡張ロックプロトコルは、匿名鍵交換プロトコルを用いて会話の安全性を確保している二者間に対する盗聴攻撃を阻止するために設計されたプロトコルである。別の論文では、これを認証プロトコルとして使用することが提案されたが、後に破られた。
ほとんどの暗号プロトコルは、秘密鍵または公開鍵、あるいはパスワードを事前に確立することを前提としている。しかし、ディフィー・ヘルマン鍵交換プロトコルは、事前の合意なしに、2者間で安全なチャネル(少なくとも望ましいセキュリティ特性を備えたチャネル)を確立するという概念を導入した。匿名鍵合意プロトコルである非認証ディフィー・ヘルマンは、中間者攻撃の標的になりやすいことが以前から知られていた。しかし、「zipless」相互認証された安全なチャネルという夢は依然として残っていた。
インターロックプロトコルは[ 1 ]、匿名鍵合意を使用して会話を安全に行う2つの当事者を侵害しようとする可能性のある中間者を明らかにする方法として説明されました。
インターロックプロトコルは、おおよそ次のように機能します。
このプロトコルの強みは、暗号化されたメッセージの半分は復号できないという点にある。したがって、マロリーが攻撃を開始し、ボブとアリスの鍵を傍受したとしても、アリスの半分のメッセージ(アリスの鍵で暗号化されたもの)を復号してボブの鍵で再暗号化することはできない。メッセージの両方の半分が受信されるまで読まなければならず、完全に新しいメッセージを作成しない限り、どちらか一方を騙すことは不可能である。
デイビスとプライスは、『コンピュータネットワークのセキュリティ』という本の中で、認証にインターロックプロトコルを使用することを提案した。 [ 2 ]しかし、スティーブン・M・ベロビンとマイケル・メリットは、これに対する攻撃について説明した。[ 3 ]その後、エリソンが改良版を提案した。[ 4 ]
ベロビン/メリット攻撃とは、偽のメッセージを作成して第一当事者に送信する攻撃です。パスワードは、AとBの間でインターロックプロトコルを使用して次のように送信される可能性があります。
AB Ea,b(Pa)<1>-------> <-------Ea,b(Pb)<1> Ea,b(Pa)<2>-------> <-------Ea,b(Pb)<2>
ここで、Ea,b(M)はAとB間のDiffie–Hellman交換から得られた鍵で暗号化されたメッセージMであり、<1>/<2>は前半と後半を表し、Pa/PbはAとBのパスワードである。
攻撃者Zは、偽のメッセージの半分であるP?を送信して、AからPaを引き出すことができる。
AZB Ea,z(Pa)<1>------> <------Ea,z(P?)<1> Ea,z(Pa)<2>------> Ez,b(Pa)<1>------> <------Ez,b(Pb)<1> Ez,b(Pa)<2>------> <------Ez,b(Pb)<2>
この時点で、Z は Pa と Pb の両方を侵害しています。攻撃は、パスワードを部分的に検証することで阻止できます。つまり、Ea,z(P?)<1> が送信された場合、それが無効であることがわかり、Ea,z(Pa)<2> は決して送信されません (Davies が提案)。ただし、Bellovin によると、ハッシュの半分は役に立たないため、パスワードがハッシュ化されている場合はこの方法は機能しません。[ 3 ]また、[ 5 ] [ 6 ] [ 7 ] [ 8 ]では、パスワードに加えて共有シークレットを使用するなど、他のいくつかの方法も提案されています。強制遅延強化も、特定の攻撃を防ぐことができます。
修正されたインターロックプロトコルでは、B(サーバー)がすべての応答を既知の期間遅延させることを要求できる。
AB カ-------------> <-------------Kb Ea,b(Ma)<1>----> <----Ea,b(Mb)<1> (Bは応答を一定時間Tだけ遅延させる) Ea,b(Ma)<2>----> <----Ea,b(Mb)<2> (再び遅延) <----------データ
ここで「データ」とは、インターロックプロトコルの交換直後に続く暗号化されたデータ(何でもあり得る)であり、メッセージの転送中の変更を防ぐために、全か無かの変換を使用してエンコードされます。Ma<1>には、暗号化されたリクエストとKaのコピーが含まれる可能性があります。Ma<2>には、Ma<1>の復号鍵が含まれる可能性があります。Mb<1>には、Kbの暗号化されたコピーが含まれ、Mb<2>には、Mb<1>の復号鍵と、OKやNOT FOUNDなどの応答、およびデータのハッシュダイジェストが含まれる可能性があります。
中間者攻撃(MITM)は、Bellovinの論文で説明されている攻撃手法(Zは中間者攻撃者)を用いて試みることができる。
AZB カ------------->カズ---------------> <---------------Kz<-----------Kb Ea,z(Ma)<1>----> <----Ea,z(Mz)<1> (遅延応答) Ea,z(Ma)<2>----> Ez,b(Ma)<1>-----> <-----Ez,b(Mb)<1> (遅延応答) <----Ea,z(Mz)<2> Ez,b(Ma)<2>-----> <-----Ez,b(Mb)<2> (遅延応答) <------------データ <----------データ
この場合、ZがBとの相互接続を行う必要があるため、Aはおよそ3*T後にデータを受信する。したがって、試みられた中間者攻撃を検出してセッションを中止することができる。
もちろん、ZはBとのインターロックプロトコルを実行しないことを選択することもできます(代わりに自身のMbを送信することを選択する)。しかし、その場合、セッションはAとZの間で行われ、A、Z、Bの間では行われません。つまり、Zは中間者にはならないのです。このため、インターロックプロトコルは認証を提供するのに効果的に使用することはできませんが、第三者が転送中のメッセージを検知されずに改ざんできないようにすることはできます。