我的公司为医院开发了一个ERP,并且由于本周末的一些法规变化,我一直在阅读很多数字签名,因为我需要解决以下情况:
Each doctor will receive from the ministry of health a certificate (so there's no escape from it... government said so...) and all of his reports sent/stored in digital format must be signed with this certificate.
The certificates will be valid for one year. Each year upon renewing of the medical license, the certificate will be renewed.
我们主要关注的是保证文件的来源(发件人是他声称的人),但我们也必须“改变文件的内容”(至少是不可能的)(或者至少是不可行的)如果它改变了,我们必须能够告诉你发生了修改)并“提取并复制”签名......
我的问题是:我如何处理这整件事?我该怎么办?
PS:在你的回答中请考虑:
答案 0 :(得分:2)
简而言之,必须使用CAdES,PAdES或XAdES(取决于数据格式)标准对文档进行签名,其中应用时间戳并采取其他措施。这些标准专门针对与您类似的任务而设计,因此可以解决您的问题。我建议你阅读一些关于这些格式的文章。很遗憾,我现在没有与您分享的链接,但您可以根据这些缩写找到很多。
CAdES基于PKCS#7 / CMS(基于证书的包装签名通用数据签名)。
PAdES是PDF签名的扩展,专门用于PDF文档。
XAdES类似于CAdES,可用于签署XML文档和(更少见)二进制数据。
答案 1 :(得分:1)
[披露:我为ARX的CoSign工作。]
你的情况很常见。你提出了很多问题。我的回答:
以数字格式发送/存储的所有报告都必须使用此证书进行签名。
您可以对任何内容(任意位数据包)进行数字签名。真正的问题是收件人或审计员如何轻松验证该文档:
机读数据,例如表格数据,中间数据等
签名:对于旨在稍后进行机器读取的信息(例如表单提交),将信息存储为XML并使用XML签名标准对其进行签名:XAdES CoSign Signature API (SAPI)直接支持签署XML文档。
验证 Google为他们提供了许多在线XML数字签名验证服务。 SAPI api还支持验证XML文档。
人类可读文件
签名:对于将由人类阅读的“最终”文档(但以数字形式存储,可以包含在搜索中等),PDF文档是可行的方法。 PDF格式非常支持数字签名。有许多方法可以将数字签名添加到PDF文档中。对于开发人员,CoSign Signature Web Agent是一个Web服务(HTTPS + XML参数文档),可以处理签名的所有UI问题。
验证:验证pdf数字签名的最常用方法是使用免费的Adobe Reader。 (不是昂贵的Adobe Acrobat。)Adobe Reader知道如何检查数字签名的有效性,然后告诉读者/签名者/审核员签名是否有效,文档自签名后是否更改等等。
您的其他问题:
文档将持续远远超出证书有效期。
是的,没关系。就像“湿签名”一样,一旦您对文档进行了有效的数字签名,该文档仍然由您签名。 - 即使您的签名证书稍后到期。作为验证过程的一部分,将签名日期与证书上的有效日期进行比较。
证书可能已被撤销。撤销前签署的文件仍必须有效
是的,这就是标准数字签名的工作方式。即使证书被撤销,证书有效时签署的文档仍将保持签名。由于日期/时间戳在验证过程中起着如此重要的作用,因此可以使用第三方时间戳服务。但它们并不适用于大多数数字签名。相反,创建显式管理过程以确保时间服务器正确设置NTP到一个良好的源,并定期检查和验证系统。
使用防篡改的hw设备进行CoSign标志。它的时钟使用NTP进行同步。
第三方如何验证信息的完整性(文件+认证)
正如我上面所讨论的,整个验证问题很重要。这就是为什么我建议使用XML或PDF作为您的文档类型。例如,您可以对用于表示信息的系统内部数据结构进行数字签名。在这种情况下,数字签名将在单独的数据结构中携带。这是“外部签名”方案。一切正常,但审核员需要构建自己的sw来验证或信任你的sw正在进行验证。更好的选择是使用直接支持数字签名的格式,并且可以轻松验证。
是否没有安全原则声明使用过期证书签署的信息无效或是什么?
正确的数字签名系统不允许使用过期的证书对任何内容进行签名。签名后,使用在签名时有效的证书,除非文档随后被更改,否则它将保持签名。
我是这个领域的新手,我可能会问错误的问题......
要问的其他问题:如何将签名者的图形签名添加到文档(XML或PDF) - 人们希望看到它。您如何管理/管理证书?基于服务器的签名是一个很好的解决方案。请记住,任何生产系统都不应将证书存储在sw中。相反,必须使用安全签名创建设备(基于hw)。
答案 2 :(得分:0)
您还需要阅读基线配置文件,其中包含长期签名的配置文件。 Eugene已经提到过每种格式的配置文件。 例如,如果您的文档是PDF,则可以使用PAdES签名和“PAdES基线配置文件”文档中指定的LTA级别。
所有这些文件都是您可以在http://pda.etsi.org/pda/queryform.asp
搜索的ETSI标准