跳转至

G-Sign

Production · 第 2 层 — 签名 · 仓库:sso-gerege-mngsign.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)

验证

验证一个签名,须同时检查以下三项:

  1. 签名在数学上的有效性——文件未被篡改。
  2. 证书的有效性——按签署当时的状态,经 OCSP/CRL 校验。
  3. 时间戳——通过 TSA 证明签名是何时作出的。

第三项尤为关键:即便证书日后被吊销,在其仍有效期间作出的签名依然有效。 没有时间戳就无法证明这一点。

谁在使用?

详细文档

实现文档位于 sso-gerege-mn 仓库的 gsign.gerege.mn/ 目录中。