2024年11月18日月曜日

続々々)リンク可能性、リンク不可能性の話

こんにちは、富士榮です。

引き続きWalletモデルを考える時のクレデンシャルのリンクの件についてみていきましょう。

元記事はSpruce IDのWayneのこの記事です。

なんだかんだで長くなってしまいましたが、ようやく中身の話です。



前回、RP同士の結託の話をしましたが、課題についてこのように続きます。
To maximize privacy, these pieces of data presented using a VDC should be “unlinkable.” For instance, if the same user who’d proven their age at a content website later went to a bank and proved their name, no one should be able to connect those two data points to the same ID holder, not even if the content website and the bank work together. We wouldn’t want the bank to make unfair financial credit decisions based on the perceived web browsing habits of the user.

プライバシーを最大化するために、VDCを使って提示されるこれらのデータは 「リンク不可能 」であるべきだ。例えば、コンテンツ・ウェブサイトで年齢を証明した同じユーザーが、その後銀行に行って名前を証明した場合、コンテンツ・ウェブサイトと銀行が連携していたとしても、この2つのデータを同じID保持者に結びつけることは誰にもできないはずだ。たとえコンテンツサイトと銀行が連携していたとしてもだ。私たちは、銀行がユーザーのウェブ閲覧の習慣に基づいて、不公正な金融上の信用判断を下すことを望まない。

However, VDCs are sometimes built on a single digital signature, a unique value that can be used to track or collate information about a user if shared repeatedly with one or more parties. If the content website in our example retains the single digital signature created by the issuing authority, and that same digital signature was also shared with the bank, then the content website and the bank could collude to discover more information about the user than what was intended.

しかし、VDCは、1つまたは複数の当事者と繰り返し共有された場合、ユーザーに関する情報を追跡または照合するために使用することができる一意の値である単一のデジタル署名に基づいて構築されることがあります。この例のコンテンツ・ウェブサイトが、発行機関によって作成された単一のデジタル署名を保持し、その同じデジタル署名が銀行とも共有された場合、コンテンツ・ウェブサイトと銀行が結託して、意図された以上のユーザーに関する情報を発見する可能性がある。

The case where two or more verifiers of information can collude to learn more about the user is known as verifier-verifier collusion and can violate user privacy. While a name-age combination may seem innocuous, a third-party data collector could, over time, assemble a variety of data about a user simply by tracking their usage of unique values across many different verifiers, whether online or in-person. At scale, these issues can compound into dystopian surveillance schemes by allowing every digital interaction to be tracked and made available to the highest bidders or an unchecked central authority.

2つ以上の情報検証者が結託してユーザーについてより多くのことを知ることができるケースは、検証者と検証者の結託として知られ、ユーザーのプライバシーを侵害する可能性がある。名前と年齢の組み合わせは無害に見えるかもしれないが、第三者のデータ収集者は、オンラインであれ対面であれ、多くの異なる検証者間でユニークな値の使用状況を追跡するだけで、時間の経過とともに、ユーザーに関するさまざまなデータを組み立てることができる。規模が大きくなれば、このような問題は、あらゆるデジタル交流が追跡され、最も高い入札者やチェックされていない中央当局が利用できるようになることで、ディストピア的な監視スキームへと複雑化する可能性がある。

書いてあることとしては、フェデレーションモデルでも課題となっていた一つまたは複数の事業者への複数回ID情報を同一の識別子で渡す場合に意図しない属性のLookupができてしまう可能性がある、ということです。Verifiable Credentials(最近のNISTの資料ではVerifiable Digital Credentials/VDCと記載されていることが多い)だとデジタル署名が共通であることで同じことが起きてしまう、ということについて問題視されています。

まさに上記の図に記載されていることですね。

で、どうするの?という話ですが、フェデレーションの時と同じようにPairwiseな値をVerifier単位で渡してあげるということです。


Fortunately, a simple solution exists to help prevent verifier-verifier collusion by cycling digital signatures so that each is used only once. When a new VDC is issued by a post office, DMV, or other issuer, it can be provisioned not with a single signature from the issuing authority that produces linkable usage, but with many different signatures from the issuing authority. If user device keys are necessary for using the VDC, as in the case of mobile driver’s licenses, several different keys can be used as well. A properly configured digital wallet would then use a fresh signature (and potentially a fresh key) every time an ID holder uses their VDC to attest to particular pieces of information, ideally preventing linkage to the user through the signatures.

幸いなことに、デジタル署名を循環させ、各署名が一度しか使用されないようにすることで、 検証者と検証者の癒着を防ぐシンプルなソリューションが存在する。新しいVDCが郵便局、陸運局、またはその他の発行者から発行される場合、リンク可能な使用法を生成する発行機関の単一の署名ではなく、発行機関の多くの異なる署名でプロビジョニングすることができる。モバイル運転免許証の場合のように、VDCを使用するためにユーザーデバイスキーが必要な場合、複数の異なるキーを使用することもできる。適切に構成されたデジタル・ウォレットは、ID保有者がVDCを使用して特定の情報を証明するたびに、新しい署名(および潜在的に新しい鍵)を使用し、理想的には署名を通じてユーザーへのリンクを防止する。

Using our earlier example of a user who goes to a content website and uses their VDC to prove they are over 18, the digital wallet presents a signature for this interaction, and doesn’t use that signature again. When the user then visits their bank and uses a VDC to prove their name for account verification purposes, the digital wallet uses a new signature for that interaction.

コンテンツ・ウェブサイトにアクセスし、18歳以上であることを証明するためにVDCを使用するユーザーを例にとると、デジタルウォレットはこのインタラクションのために署名を提示し、その署名を再度使用することはありません。その後、ユーザが銀行を訪れ、口座確認のために自分の名前を証明するためにVDCを使用すると、デジタルウォレットはそのインタラクションのために新しい署名を使用します。

Because the signatures are different across each presentation, the content website and the bank cannot collude to link these two interactions back to the same user without additional information. The user can even use different signatures every time they visit the same content website, so that the content website cannot even tell how often the user visits from repeated use of their digital ID.

署名は各プレゼンテーションで異なるため、コンテンツ・ウェブサイトと銀行は結託して、追加情報なしにこれら2つのインタラクションを同じユーザーに結びつけることはできない。ユーザーは、同じコンテンツ・ウェブサイトを訪問するたびに異なる署名を使用することもできるため、コンテンツ・ウェブサイトは、デジタルIDの繰り返し使用からユーザーの訪問頻度を知ることさえできない。 


要はキーローテーションで鍵が一度しか使われないようにすればいいじゃん、って話ですね。まぁ、Transientにするにはこの方法でも良さそうですが、結構実装コスト高そうです。過去の署名に使った公開鍵をひたすら公開し続ける(もしくはクレデンシャル自体に含める)ことになるような気もしますし、同一VerifierでPersistentにすることができません。もう少し工夫も必要になりそうな気がします。


次回はIssuer/Verifierの結託のケースをみていきましょう。

 

0 件のコメント: