Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

星火链网可信数字证书验证规范 #20

Open
Caict-GuoShiJie opened this issue Mar 23, 2023 · 1 comment
Open

星火链网可信数字证书验证规范 #20

Caict-GuoShiJie opened this issue Mar 23, 2023 · 1 comment

Comments

@Caict-GuoShiJie
Copy link
Collaborator

星火链网可信数字证书验证规范

1. 序言

编号:
类型:标准
标题:星火链网可信数字证书验证规范
作者:金键,jin.jian@caict.ac.cn;谢家贵,xiejiagui@caict.ac.cn;李志平,lizhiping@caict.ac.cn;聂凡杰,niefanjie@caict.ac.cn
发布时间:
状态:
更新时间:2023-03-22
讨论地址:
依赖RFC:

2. 摘要

星火链网可信数字证书在向验证方进行出示时, 此时就需要验证方自行对证书进行验证, 以确认证书的可靠性. 本文旨在提供一个星火链网可信数字证书的验证规范, 用户可根据本规范自行实现对星火链网可信数字证书的验证。

3. 原理

星火链网可信数字证书是 jws 规范(参照JWS RFC文档)的一种实现. 因此只需对证书 jws 进行反解析, 获取证书的模板id, 有效期, 证书id, 颁发方信息, 到星火数字证书可信数据集BID解析查询相关数据进行校验, 并对 jws 进行验签即可。
校验项主要如下:

  • 验证颁发方
  • 验证证书模板
  • 验证证书有效期
  • 验证证书状态
  • 验证颁发方签名
  • 验证 hash

交互图如下:
image

4. 规范

4.1证书校验

证书校验数据结构如下:

{
    "jwsHeader":"",
    "jwsSignature":"",
    "vcContent":"",
}
  • jwsHeader: 证书 jws 头部
  • jwsSignature: 证书 jws 签名部分
  • vcContent: 证书明文内容(选择性行披露需剔除非相关字段 value 值和 salt, 仅保留 hash)证书明文数据结构可参星火链网BID可信证书协议标准

返回数据结构如下:

{
    "result": true
}
  • result: 校验结果

5. 实现示例

实现流程:
image

接口定义:

http请求方式:POST
https://{url}/vc/verify
{
  "jwsHeader":"eyJhbGciOiJTTTIifQ",
 "jwsSignature":"MDFjNzk3N2M5ZmRiNDE5M2Q1NmZhNzBkNGZlZDBhYWI0NWE0ODAzZWVlYTk0NzU4MGJmZjExOWQ0ZWNiNDIzYjg2YTAzYzZmOWQ3NDlhMmY3ZmNiOWEzMzgwOWE3M2MwZmQ3MTdjOWM5N2M5ZGU2MWZmY2FkNzM0ZmRiMDA3MDA",
  "vcContent":"{\"@context\":[\"https://www.w3.org/2018/credentials/v1\"],\"credentialSubject\":{\"businessScope\":{\"hash\":\"ac164515abebd3498b8e924d5e53b40b8c88f309c83c3fc5876c5c60926dd625\"},\"certBid\":{\"hash\":\"3ee74b4cc779f051e6db88d41a9a809158b8e0e40de149f1bb7b729f4bb40bf0\",\"salt\":\"5872438693681184\",\"value\":\"did:bid:ef28fCsZTFXfLtefHQwPkAxsPnXtVaq9F\"},\"companyName\":{\"hash\":\"fc9ccc0ad83c77c83e588e3a22f8058b2eda55d50bfae58c73fb2f7570daa618\",\"salt\":\"5297098312790891\",\"value\":\"营业执照\"},\"establishDate\":{\"hash\":\"7f5ea29c0b3107535e0df5241a36522ed5910720bb863b9e8ca5e131901d0791\"},\"id\":\"did:bid:efEXzqnM255FwNZSmDrZM5KfhhW2iZky\",\"legalPersonName\":{\"hash\":\"e350f9a48a98c27f981b583cd6dc8536102507b59a903f1669cf5ae625b99d01\"},\"qualifieNumber\":{\"hash\":\"b396ad3212c9cc719120034f1b1a534c8c5d2d7f101ef3b111c600a0ffd5503c\"},\"qualifieValidateEnd\":{\"hash\":\"ccd1e18a855b54e5ba743ff853b62414b9cc0f7c2a1fe5646b9f65e265a72981\"},\"qualifieValidateStart\":{\"hash\":\"bc2fca5a34fc588e199cab70a4b3b0d62ed1a844196165b525d79813a0f50551\"},\"registeredAddressDetail\":{\"hash\":\"64095f7fad3c76802fcd97debb38dccee377f4a5375339277b7254031ff0cd19\"}},\"id\":\"did:bid:ef28fCsZTFXfLtefHQwPkAxsPnXtVaq9F\",\"issuanceDate\":\"2023-01-31T02:34:09Z\",\"issuer\":\"did:bid:ef14uPsX7XYLzsU4t2rnRrsK2zfUbFEj\",\"parseType\":\"sel-disclose-SM2\",\"revocationId\":\"did:bid:efKK5cc2iArX3cmxDVmxcUx8QgecM4oD\",\"templateId\":\"did:bid:efvBPiZWCuB89LpynLUpmXCozjGEouhU\",\"type\":[\"VerifiableCredential\",\"identityCertification\"],\"validBefore\":\"2099-01-01T00:00:00Z\"}",
}

实现步骤:
1.解析 jws 证书(参照 JWS RFC文档 ), 拿到证书原文;
2.验证发证方( issuer 字段)是否在数字证书可信数据集进行注册
3.验证凭证模板( templateId 字段)是否在数字证书可信数据集里;
4.校验证书是否在有效期( validBefore 字段)内;
5.通过数字证书可信数据集查询证书( id 字段)状态, 确认证书是否已被吊销;
6.通过BID解析查询发证方( issuer 字段)公钥;
7.剔除证书原文的 value 和 salt 字段,按照 jws 规范(参照JWS RFC文档)生成新的payload字符串;
8.用颁发方公钥对 jws 证书进行验签;
9.验证选择性披露值是否与证书对应 value 值匹配, 选择性披露 value 值与 salt 生成的 hash 与证书里的对应字段的 hash 进行比对。
验证返回结果:

{
  "errorCode": 0,
  "message": "SUCCESS",
  "data": {
    "result": true
  }
}

响应参数说明:

字段名 类型 描述
result boolean 验证结果
@CAICT-DEV
Copy link
Collaborator

CAICT-DEV commented Mar 23, 2023

接受关于“星火链网可信数字证书验证规范”的标准建议,现分配编号RFC-014。RFC-014进入采纳阶段。

生命周期

提出日期:2023-03-22
演示日期:2023-03-22
接受日期:2023-03-22
采纳日期:2023-05-09

编号:RFC-014
类型:标准
标题:星火链网可信数字证书验证规范
作者:金键,jin.jian@caict.ac.cn;谢家贵,xiejiagui@caict.ac.cn;李志平,lizhiping@caict.ac.cn;聂凡杰,niefanjie@caict.ac.cn
发布时间:2023-03-22
状态:采纳
更新时间:2023-05-09
讨论地址:#20
依赖RFC:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants