数字签名证书

数字签名证书用于对数据进行数字签名和验证。

数字签名的私钥被加密后进行存储,因此设置的密码至关重要。若密码遗忘,将无法恢复。在这种情况下,你需要重新创建数据签名证书。请务必妥善保管你的密码。

# 创建数字签名证书

要对实验记录、论文进行定稿以及附加数字签名,首先必须创建属于自己的签名证书。点击“新建数字签名证书”,在弹框中输入用于加密私钥的密码,即可创建成功。

密码强度要求:

  • 8-32个字符;
  • 包括大写字母、小写字母、数字以及特殊符号四种中至少三种;
  • 不能有超过3个的连续字母或数字,如:123、321、111、abc、qwe、qaz、aaa等;
  • 不能包含太常见的密码,如 password, iloveyou;
  • 不能包含用户名;

# 签名使用

在拥有所有权的记录本中,或被授予定稿权限的记录本中,当记录撰写完成后,你可以对该记录使用你的数字签名进行定稿。定稿完成后,系统会自动生成相应的时间戳。

附加数字签名。只要有查看权限的记录本,你都可以在已经定稿的记录上附加你的数字签名,这样一份记录可以存在多份数字签名信息。

附加签名按钮.png

场景3:在项目管理/论文中本地所上传的论文默认未定稿,确认论文相关信息,记录与论文关联完整后,您可将该论文进行定稿。

# 数字签名原理

签名证书使用 RSA 非对称加密算法生成。

RSA 非对称加密分私钥和公钥两部分。私钥部分以密钥加密的方式存储在数据库中,公钥明文存储在数据库中。

签名操作过程:

   a.使用用户输入的密钥解密数据库中存储的私钥,如密码正在,则读取私钥。

   b.对实验记录内容和数据UID组合进行 hash 运算(使用 sha256算法),生成数据的hash值

   c.然后使用用户私钥对hash值进行加密操作,生成签名信息。

签名验证过程:

  a.读取数据库中相应用户的公钥。

  b.对实验记录内容和数据UID组合进行 hash 运算(使用 sha256算法)。

  c.然后与使用公钥解密的签名信息进行比对,如相同,则签名通过,如不同,则签名无效。

## 私钥密码的处理

私钥密码无法重置,也无法找回。所以请记住您的密码。当密码遗忘时,可选择新建数字签名证书,生成新的数字证书,同时作废原有证书。

当生成新的数字证书后,作废的证书依然会保留,作为验证过往使用此证书的签名数据的验证密钥。因为签名的验证过程仅需要读取证书的公钥部分,而公钥是不加密存储的,所以不会影响验证过程。

## 时间戳签名

每条记录签名时,会同时把记录的hash值发送给时间戳服务器,时间戳服务器会用包含此hash值和时间戳的信息生成一个新的签名数据,然后把签名数据和新的含时间戳的hash值返回。服务器会记录两个签名信息,一个是用户的签名信息,另一个是时间戳服务器的签名信息,在验证签名时,这两个签名都会被验证,都能通过并且一致时,签名才算有效。