证明信任
国家数字签字信任根和中间体的独立公共镜像。 hash-probed,版本控制,git历史是审计线索.
浏览当前目录 信任. attestto.org ——每个镜像的根和中间点,每个国家,都有其SHA-256指纹,有效性窗口,密钥算法,CRL/OCSP端点,并一击 .pem 下载.
@attestto/trust 关键的信任基础设施 尝试打开 生态系统。 大部分国家PKI寄存器被部分打碎了——错误的内容类型,半部署的HTTPS,混合式的URL突起,缺失分支,死链接. 每个集成一个国家数字签名堆栈的开发商都撞上同一面墙. 这回波镜像了每个国家的发行当局公布的二进制字节作为-is,hash-propt,以及版本控制. 真相的合法来源仍然是每个国家的签发当局。 我们不是一个证书管理局——我们不签发、重新签发、签署或担保任何证书. 随时核对SHA-256与发证机关的存放处,当你能到达时.
建筑
graph LR
A["National PKI<br/>Authorities"] -->|publish certs| B["attestto-trust<br/>mirror"]
B -->|hash-pinned<br/>version-controlled| C["Git history<br/>audit trail"]
B -->|CA chains| D["attestto-verify"]
B -->|CA chains| E["attestto-desktop"]
B -->|trust roots| F["@attestto/verify<br/>web component"]
快开始
安装
git clone https://github.com/Attestto-com/attestto-trust.git
cd attestto-trust
pnpm install # for script dependencies
在应用程序中使用
将证书复制到您的信任仓库 :
cp attestto-trust/countries/cr/current/*.pem your-app/trust-store/cr/
对照捆绑校验 :
openssl verify -CAfile attestto-trust/countries/cr/current/chain.pem your-signed-doc.pem
验证证书的散列 :
sha256sum attestto-trust/countries/cr/current/root-ca.pem
# compare against attestto-trust/countries/cr/current/manifest.json
国家
| 国家 | 导出软件包 | 实时页面 | 权力 |
|---|---|---|---|
| 哥斯达黎加 | cr/ | 信任. attestto.org/cr | BCR / SINPE / MICITT 数字公司 |
| 联合国 | br/ | / br 个 | ITI——国际比较方案-布拉西尔 |
| 联合国 | ar/ | 阿尔 | AC 阿根廷共和国 |
| 页:1 | es/ | /过去 | FNMT-RCM(计算机) |
| 奥地利 | at/ | 时间 | RTR / Telekom- Control- Kommission (TKK) eIDAS 信任列表 |
| 比利时 | be/ | /成为 | FPS 经济(联邦公共服务经济) |
| 捷克共和国 | cz/ | /cz 时间 | DIA(Digitální a informationační agentura) eIDAS 信托列表 |
| 丹麦 | dk/ | 页:1 | Digitaliseringstyrelsen(丹麦数字政府机构) eIDAS信托名单 |
| 爱沙尼亚 | ee/ | 用户 | RIA - SK ID解决方案/Zetes(eIDAS) |
| 芬兰 | fi/ | /无 | Traficom (Liikenne- ja viestintävirasto) eIDAS信任列表 / DVV FINEID |
| 法国 | fr/ | /fr (英语) | ANSI eIDAS 信任列表(~20 QTSP) |
| 德国 | de/ | 减 | Bundesnetzagentur (BNetzA) eIDAS 信托名单 |
| 希腊 | gr/ | (单位:千美元) | EETT(希腊电信和邮政委员会) eIDAS信托名单 |
| 匈牙利 | hu/ | 嘘 | NMHH(国家媒体和信息和通信管理局) eIDAS 信托名单 |
| 意大利 | it/ | 开始 | AGID eIDAS 信任列表 (~25 QTSPs) + CIE 国家 eID |
| 拉脱维亚 | lv/ | /lv 数据 | DDUK (Digitālās derošības uzraudzības komiteja) eIDAS信托列表 / LVRTC ePARaksts |
| 立陶宛 | lt/ | 编号 | RRT(Ryšių reguliavimo tarnyba) eIDAS 信托名单 |
| 荷兰 | nl/ | 没有 | RDI( Rijksinspectie Digitale Inforstructuur) eIDAS 信任列表 |
| 挪威 | no/ | 没有 | Nkom (Nasjonal kommunikasjonsmyndighet) eIDAS 信任列表 |
| 秘鲁 | pe/ | /pe | INDECOPI-IOFE (RENIEC,ONPE,ECERNEP) 互联网档案馆的存檔,存档日期2013-12-11 |
| 波兰 | pl/ | /时间 | NCCert (Narodowe Centrum Certyfikacji) / NBP eIDAS 信托列表 |
| 葡萄牙 | pt/ | 备注 | GNS — Autoridade Credenciadora / SCEE eIDAS 信托名单 |
| 瑞典 | se/ | 内容 | PTS (后- och telestyrelsen) eIDAS 信任列表 |
更多的国家经过每个国家的促进审查后进行舞台和土地开发:墨西哥、哥伦比亚、智利、厄瓜多尔、乌拉圭、巴拿马和其他欧洲信任的名单。 意大利的完全合格签字名单(229份认证-QTSP CA),德国的(101份认证-QTSP CA),希腊的(105份认证-QTSP CA),法国的(79份认证-QTSP CA),荷兰的(30份认证-QTSP CA),比利时的(52份认证-QTSP CA),奥地利的(39份认证-QTSP CA),葡萄牙的(30份认证-QTSP CA),波兰的(29份认证-QTSP CA),匈牙利的(62份认证-QTSP CA),捷克共和国的(34份认证-QTSP CA),挪威的(26份认证-QTSP CA),芬兰的(12份DV/VRK FINEID CA),立陶宛的(11份认证-QTSP CA),瑞典的(8份认证-QTSP CA),丹麦的(5份认证-QTSP CA),以及拉脱维亚的(5份认证-QTSP CACA),现在的(通过欧盟的 scripts/monitors/verify-eu-tsl.mjs) (中文(简体) ).
全球/组织主播
除了国家公用钥匙基础结构之外,目录还反映了全球组织认同的根源 anchors/。 。 。 .
第一个 格莱夫·维莱 (单位:千美元)anchors/gleif-vlei/),GLEIF信任根及其授权
合格 vLEI 发行商, hash-probed和版本控制. vLEI是KERI/ACDC(不是X.509),被钉住
作为 AID 密钥状态而不是 CA 证书。 我们照着GLEIF出版的 而不是
签发或担保任何证书。 见 信任.atestto.org/gleif。 。 。 .
关键概念
证书清单
每个国家有一个 manifest.json 列出所有证书及其散列和元数据:
[
{
"filename": "root-ca.pem",
"sha256": "a1b2c3...",
"subject": "CN=CA RAIZ NACIONAL - COSTA RICA v2, ...",
"issuer": "CN=CA RAIZ NACIONAL - COSTA RICA v2, ...",
"validFrom": "2015-07-09",
"validTo": "2035-07-09",
"role": "root"
},
...
]
用这个来审核所安装的内容,并对照发证机关公布的存储库进行核查.
审计线索
每一个加入、旋转或退休的证书都是一种git承诺,并附有明确的信息,说明变化和原因。 完整的git历史是证书生命周期的真相来源.
git log --follow countries/cr/current/
仓库布局
attestto-trust/
├── README.md ← you are here
├── scripts/
│ ├── extract-chain-from-pdf.mjs ← extract certs from signed PDFs
│ ├── generate-exports.mjs ← regenerate JS/TS exports from PEM files
│ └── refresh-manifest.mjs ← regenerate manifest.json + chain.pem
├── countries/
│ └── <iso2>/
│ ├── README.md ← country-specific notes + CA hierarchy
│ ├── current/ ← certs currently active
│ │ ├── *.pem
│ │ ├── chain.pem ← all-in-one bundle
│ │ └── manifest.json ← sha256, subject, issuer, valid dates
│ ├── archive/ ← superseded certs, kept forever
│ └── samples/ ← signed docs (when redistributable)
└── .github/workflows/verify.yml ← CI: verify all cert hashes on every push
使用证书
滚入你的信托店
git clone https://github.com/Attestto-com/attestto-trust.git
cp attestto-trust/countries/cr/current/*.pem your-app/trust-store/cr/
对照捆绑校验
openssl verify -CAfile attestto-trust/countries/cr/current/chain.pem some-signer.pem
在使用前验证证书的散列
sha256sum attestto-trust/countries/cr/current/root-ca.pem
# compare against attestto-trust/countries/cr/current/manifest.json sha256 field
更新现有国家
当发证机关旋转一个证书(根或中间)时:
- 移动旧 PEM 从
countries/<iso2>/current/输入countries/<iso2>/archive/<year>/ - 将新的 PEM 投入
countries/<iso2>/current/ - 运行
node scripts/refresh-manifest.mjs——重建manifest.json+ 键chain.pem - 运行
node scripts/generate-exports.mjs——再生JS出口+.d.ts类型 - 提交明确消息 : "克:旋转 CA SINPE Personsona FISICA v2 → v3, 过期2032"
- 推开
添加一个国家
mkdir -p countries/<iso2>/{current,archive,samples}
# Extract intermediates from any signed sample document for that country
node scripts/extract-chain-from-pdf.mjs ~/Downloads/some-signed.pdf /tmp/out
# Inspect, then move the relevant intermediates into countries/<iso2>/current/
cp /tmp/out/*.pem countries/<iso2>/current/
# Generate manifest + chain.pem + JS exports
node scripts/refresh-manifest.mjs
node scripts/generate-exports.mjs
# Write country-specific notes + CA hierarchy diagram
vi countries/<iso2>/README.md
# Commit
git add countries/<iso2> index.js
git commit -m "<iso2>: initial trust mirror — N certs"
更新此 README 中的国别表格并打开拉动请求 。 线人会核实所有的散乱.
出版发行
软件包以 npm 的形式发布 @attestto/trust。当证书设定更改时公布(添加了一个国家,或者换了证书).
- 启用证书更改
main并证实CI是绿色的. - 跳出这个版本
npm version patch # or: npm version minor - 出版(范围包要求公众查阅);
prepublishOnly首先运行测试套房 :npm publish --access public - 按下版本承诺并标记 :
git push --follow-tags
永远不要重现已有的版本——先突起. 这个 files 允许列表 package.json 只有JS出口、PEM和清单(没有脚本、样本或档案).
限制
我们是 没有 a 证书管理局——我们不签发、重新签发、签署或担保任何证书。 我们是 没有 a OCSP/CRL响应器——撤销具有时间敏感性,直接从签发当局获得。 我们故意不照CRL,因为一个呆板的CRL比没有更糟糕. 如果我们的镜像不同意发证机关公布的寄存器,权威来源就会取胜——打开一个问题,我们会解决.
生态系统
| 还原 | 作用 | 关系 |
|---|---|---|
attestto-verify | 网络校验组件 | 使用这些信任根进行签名验证 |
attestto-desktop | 桌面签名人/核查人 | 对照这些根来验证文件 |
attestto-anchor | 索拉纳散列锚地 | 锁定身份和签名元数据 |
cr-vc-schemas | 哥斯达黎加证书计划 | 定义 vLEI/ Firma 数字签名机制 |
用 LLM 构建
这回转船a llms.txt 上下文文件——由AI编码助理阅读的API,数据结构,和集成模式的机器可读摘要.
建议设置
使用 attestto-dev-mcp 给您的 LLM 主动访问生态系统的服务器 :
cd ../attestto-dev-mcp
npm install && npm run build
然后把它加入你的克洛德 / Cursor / Windsurf 配置并问:
探索生态系统,帮助我建立[这个组成部分]
哪个模特儿?
我们建议 克劳德 赞成 (5×用法与免费)或更高. 长的上下文和强的TypeScript推理很好地处理这个代码库. MCP服务器与任何支持工具使用的LLM合作.
快速开始 : 请您读 LLM
llms.txt中,然后描述您想要构建的东西。 它会找到合适的型号, 生成锅炉板, 并带你穿过第一次运行.
捐款
我们欢迎各方的贡献。 要添加一个国家, 请按照上面的布局打开 PR 。 CI 将自动验证所有证书散列 。 关于信任根或公用钥匙基础结构等级的问题,请在打开一个问题时参考发证当局已公布的存储处.
许可证
证书是国家签发当局公布的公用钥匙X.509;可自由再分配。 脚本和文档为Apache-2.0. 见 自由主义。 。 。 .
证明: 维护者 证明 作为国家数字身份基础设施公益工作的一部分。 见 https://attestto.org/ark (中文(简体) )。 。 。 .
如果你找到一个丢失、过期或错失的证书, 用一个签名文件样本打开一个问题, 我们可以从中提取, 我们会把它弄进去.