0

我对可验证的凭据以及它们如何工作以及最近阅读它感兴趣。在阅读时,我有一个问题,我似乎无法找到答案(或者不知道我应该问谁,抱歉我缺乏知识)。

我的问题:

由于允许可验证的证书颁发者在去中心化(分布式)账本中注册一个或多个 DID,验证者如何确保其正在验证的证书实际上是由合法的颁发者颁发的?

下面是一个澄清问题的例子:

假设一个机动车驾驶执照颁发机构 (MDLA) 将自己注册到一个去中心化(分布式)账本中,其 DID 值为“did:example:mdla1”。他们还注册了驾驶执照模式以及如下所示的 DID(简化示例):

"schema_json":{
  "id":"mdla:drivinglicence:schema:v:1.0",
  "name":"Driving Licence",
  "attrNames":["full_name", "credential_created_date", "start_date", "end_date"],
  ....
}

现在,假设我(一个人/组织/黑客等)想要篡改可验证的驾驶执照凭证。为此,我确实将自己注册在一个分散的(分布式)分类帐中,其 DID 为“did:example:mdla2”以及与上述相同的凭证模式(仅将 ID 更改为我的首选 ID)。然后使用它填充伪造的可验证驾驶执照。

现在,当我将证书(我自己创建的)呈现给一个人(比如警察)进行验证时,验证者如何知道证书是由我颁发的(因此它是假的)而不是由实际权限(MDLA)?

根据我目前的理解,我的 DID (did:example:mdla2) 将与我的公钥相关联,并且我已经使用我的私钥对我的可验证驾驶执照凭证进行了数字签名,因此应该验证签名没有任何问题。

请帮助我澄清这种困惑或指出我可以更好地理解的一些资源。谢谢。

4

1 回答 1

1

建立发行人信任的主要方式有三种。

第一个是在钱包或验证器中使用静态信任。这在钱包由发行者维护的第一方用例中很常见(这并不理想,因为我们不希望用户对每个发行者或凭证类型都有不同的钱包)。验证者可以与在带外建立信任的发行者建立业务关系。

第二种是使用众所周知的 URL 将 DID 绑定到域(此模式与许多协议一起使用,包括证书颁发):https://identity.foundation/.well-known/resources/did-configuration/。结合 DNSSEC 和多跳解析,这可以根据组织的公共 Web 域提供一定程度的信任。

另一种方法是使用信任列表或信任框架。钱包或联盟可以提供受信任的发行者 DID 列表作为钱包可以隐式或用户选择使用的信任框架的一部分。一个例子是美国机动车管理员协会维护一份美国驾驶执照颁发者(州)的信任列表,作为信任框架的一部分。验证组织,如酒吧、银行和政府机构将评估此信任框架并在 VC 验证期间使用信任列表。

于 2021-11-18T22:32:10.790 回答