ラベル Linkability の投稿を表示しています。 すべての投稿を表示
ラベル Linkability の投稿を表示しています。 すべての投稿を表示

2024年11月23日土曜日

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

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

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

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

https://blog.spruceid.com/provably-forgotten-signatures-adding-privacy-to-digital-identity/


前回はリンク可能性についてTEEを使うアプローチについてでしたが、その方式に関しても考慮点はあるようです。

However, as with all new approaches, there are some considerations when using this one as well. We will explore a few of them, but this is not an exhaustive list.

The first consideration is that TEEs have been compromised in the past, and so they are not foolproof. Therefore, this approach is best incorporated as part of a defense-in-depth strategy, where there are many layered safeguards against a system failure. Many of the critical TEE failures have resulted from multiple things that go wrong, such as giving untrusted hosts access to low-level system APIs in the case of blockchain networks, or allowing arbitrary code running on the same systems in the case of mobile devices.

しかし、新しいアプローチにはすべて言えることですが、このアプローチを使用する際にも考慮すべき点がいくつかあります。ここではそのいくつかを取り上げますが、これは網羅的なリストではありません。

まず、TEEsは過去に問題があったため、完璧なものではないという点が挙げられます。したがって、このアプローチは、システム障害に対する多くの層状の安全対策を講じる「多重防御戦略」の一部として組み込むのが最適です。TEEの重大な障害の多くは、複数の要因が重なって発生しており、例えばブロックチェーンネットワークの場合、信頼できないホストに低レベルのシステムAPIへのアクセスを許可したり、モバイルデバイスの場合、同じシステム上で任意のコードの実行を許可したりすることが挙げられます。

まぁ、そりゃそうですけど、TEEに頼りすぎるのもね、って話ですね。完璧なものはないですから。

One benefit of implementing this approach within credential issuer infrastructures is that the environment can be better controlled, and so more forms of isolation are possible to prevent these kinds of vulnerability chaining. Issuing authorities are not likely to allow untrusted hosts to federate into their networks, nor would they allow arbitrary software to be uploaded and executed on their machines. There are many more environmental controls possible, such as intrusion detection systems, regular patching firmware, software supply chain policies, and physical security perimeters.

We are solving the problem by shifting the trust model: the wallet trusts the hardware (TEE manufacturer) instead of the issuing authority.

このアプローチを認証発行者のインフラストラクチャに導入する利点のひとつは、環境をより適切に制御できるため、こうした脆弱性連鎖を防ぐための分離形態をより多く実現できることです。発行機関は、信頼できないホストがネットワークに統合することを許可しないでしょうし、任意のソフトウェアがアップロードされ、そのマシン上で実行されることも許可しないでしょう。侵入検知システム、定期的なファームウェアのパッチ適用、ソフトウェアのサプライチェーンポリシー、物理的なセキュリティ境界など、他にも多くの環境制御が可能です。

私たちは、信頼モデルを変更することで問題を解決しています。つまり、ウォレットは発行機関ではなく、ハードウェア(TEEメーカー)を信頼するのです。

それは解決になるのか?というか比較問題ってことですね。

この手の話をすると誰をどこまで信じるのか?ってところに帰結してしまうんですが、結局のところ、ソフトウェアを認定するのか、さらにハードウェアメーカやOSベンダを信じるのか、、ってところまで行きますね。

Another consideration is that certain implementation guidelines for digital credentials recommend retention periods for unique values for issuing authorities. For example, AAMVA’s implementation guidelines include the following recommendations for minimum retention periods: 

もう一つの考慮事項として、デジタル資格証明書の特定の実装ガイドラインでは、発行機関の固有の値の保存期間を推奨しているものもあります。例えば、AAMVAの実装ガイドラインには、最小保存期間に関する以下の推奨事項が含まれています。 

こういうガイドがあったんですね。

Validなものはできるだけ長く、Invalidになったものはなるべく早く消す、ログは長期に、という感じでデータを保持していくことが求められる感じでしょうか。

結構いいガイドっぽいので今度ちゃんと読んでみようと思います。

https://www.aamva.org/assets/best-practices,-guides,-standards,-manuals,-whitepapers/mobile-driver-s-license-implementation-guidelines-1-2

ちなみにURL上は1.2に見えますがダウンロードすると1.3です。


To navigate these requirements, it is possible to ensure that the retention periods are enforced within the TEE by allowing for deterministic regeneration of the materials only during a fixed window when requested by the right authority. The request itself can create an auditable trail to ensure legitimate usage. Alternatively, some implementers may choose to override (or update) the recommendations to prioritize creating unlinkability over auditability of certain values that may be of limited business use.

これらの要件に対応するため、権限のある当局から要求があった場合のみ、一定の期間に限定して資料の決定論的な再生成を許可することで、TEE内で保存期間が確実に守られるようにすることができます。この要求自体が監査証跡を作成し、正当な利用を確保することができます。あるいは、実装者によっては、限定的な業務利用にしかならない特定の値の監査可能性よりも、非関連付け可能性の作成を優先させるために、推奨事項を上書き(または更新)することを選択する場合もあります。

A third consideration is increased difficulty for the issuing authority to detect compromise of key material if they do not retain the signatures in plaintext. To mitigate this downside, it is possible to use data structures that are able to prove set membership status (e.g., was this digital signature issued by this system?) without linking to source data records or enumeration of signatures, such as Merkle trees and cryptographic accumulators. This allows for the detection of authorized signatures without creating linkability. It is also possible to encrypt the signatures so that only the duly authorized entities, potentially involving judicial processes, can unlock the contents.

3つ目の考慮事項は、署名を平文で保持しない場合、発行機関が鍵の侵害を検出するのがより困難になることです。この欠点を緩和するために、メルクレツリーや暗号集約器などの署名の列挙やソースデータレコードにリンクすることなく、セットのメンバーシップの状態(例えば、このデジタル署名は、このシステムによって発行されたか?)を証明できるデータ構造を使用することが可能です。これにより、リンク可能性を作成することなく、認証された署名を検出することができます。また、署名を暗号化して、正式に認証されたエンティティのみが、場合によっては司法手続きに関与しながら、その内容を解読できるようにすることも可能です。

結局のところ、TEEに暗号化してリンクに使える署名の値を保存したりすると保存と閲覧の要件への対応ができなくなるのでうまくやらないとダメ、ってところですね。


もろもろ考慮点があることも見えてきましたね。 

 


 




 

 

 


 

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の結託のケースをみていきましょう。