G-Sign¶
Production · 第 2 层 — 签名 ·
仓库:sso-gerege-mn(gsign.gerege.mn/) · gsign.gerege.mn
为文件加盖具法律效力的电子签名的网关。以 Go 编写,构建在 eID Mongolia 的签名服务之上。
它做什么?¶
- PAdES 签名——在服务端为 PDF 文件签名。
- 时间戳——通过 RFC 3161 TSA 证明签署时刻。
- Sign-relay——让第三方 RP 借助平台自身的 eID 凭据完成文件签署。
- Document-Signer 证书——用于以机构名义签署的长期证书。
两类签名¶
| 类型 | 签署人 | PIN | 适用场景 |
|---|---|---|---|
| 公民签名 | 公民本人 | PIN2 | 合同、申请、请求——表达个人意愿 |
| Document-Signer | 机构(系统) | — | 证明、说明——确认文件的出具来源 |
两者不可混用
Document-Signer 证书并不表达公民的意愿。凡需公民同意的文件,都必须由 公民以 PIN2 亲自签名。把系统自动加盖的签名解释为公民的同意,违反 不可否认性原则。
签名流程¶
sequenceDiagram
participant RP as RP 应用
participant GS as G-Sign
participant EID as eID Mongolia
participant U as 公民手机
participant TSA as TSA
RP->>GS: PDF + 签名请求
GS->>EID: 发起签名会话
EID->>U: 推送 / 二维码 —— 请求 PIN2
U-->>EID: PIN2 确认
Note over EID,U: 2-of-2 门限 ECDSA ——<br/>双方共同生成签名
EID-->>GS: 签名值
GS->>TSA: 请求时间戳
TSA-->>GS: RFC 3161 令牌
GS-->>RP: 已签名的 PDF(PAdES)
验证¶
验证一个签名,须同时检查以下三项:
- 签名在数学上的有效性——文件未被篡改。
- 证书的有效性——按签署当时的状态,经 OCSP/CRL 校验。
- 时间戳——通过 TSA 证明签名是何时作出的。
第三项尤为关键:即便证书日后被吊销,在其仍有效期间作出的签名依然有效。 没有时间戳就无法证明这一点。
谁在使用?¶
- Gerege Platform 与 Template Platform——用于各自的文档流转;
- 第三方 RP——通过 sign-relay。
详细文档¶
实现文档位于 sso-gerege-mn 仓库的 gsign.gerege.mn/ 目录中。