代码之家  ›  专栏  ›  技术社区  ›  Bella

普通用户的简单数字签名

  •  2
  • Bella  · 技术社区  · 15 年前

    我有一个系统,这是一个客户关系管理的种类,它基本上是管理客户索赔,他们已经错卖保险。

    这一系统预计将处理相当多的索赔,为此已征集了几个呼叫中心服务台。

    系统的总体工作流程是;呼叫中心接收索赔并将其输入提交审批的系统,总部检查索赔的详细信息,如果符合必要的标准,则批准索赔。一经批准,一个一次性的安全URL将通过电子邮件发送给客户,然后客户可以访问该URL查看5个生成的文档,其中包含其索赔的详细信息。每份文件至少需要一个签名(如果合适的话,来自索赔人和他们的合作伙伴),我们的客户规定,这些文件中只有一个需要一个正确的签名(合法的),必须通过蜗牛邮件从客户那里收到。他们希望数字签名的其他文件(以加快索赔过程、简化索赔程序、减少纸张、邮费等)。

    在这样做时,我必须考虑到大多数索赔人可能没有什么技术知识,因此必须使这一过程尽可能简单(方便用户)。

    如前所述,向每个索赔人发送一个“一次性”URL,当他们查看了他们可以选择签署的文件后,他们可以使用该URL登录以签署该文件;在这一点上,他们被要求一个密码,然后这是散列(连同一些个人数据),并添加到每个文件页的页脚。一个视觉签名是用漂亮的签名字体生成的,并与免责声明一起添加到相关的签名框中“请接受上述电子签名作为接受您的业务条款和继续操作的指示”。

    系统专员似乎认为这是可以接受的,但我不确定,并想知道这是否是正确的方法,如果不是,有没有更好的方法铭记在心,我必须保持这一点尽可能简单。

    谢谢。

    3 回复  |  直到 15 年前
        1
  •  2
  •   rook    15 年前

    这是对消息摘要函数的错误使用。秘密的散列结果可能会提供给用户(或攻击者…),即使它是咸的。哈希对于密码存储非常有用,因为它增加了攻击者必须克服的额外复杂性。添加个人数据会使散列更难破解,但如果攻击者拥有大量计算资源,他们可能会进行大量猜测,然后也会获取某人的个人信息。一个很好的方法是,如果攻击者能够做出足够的猜测,则由此产生的哈希将泄漏有关原始消息的信息。

    有两种方法可以做到这一点。第一种方法是我自己编的,我喜欢。因此,用户登录这个1次的网址,然后出现一个绘图框,在那里他们使用鼠标courser签署自己的名字。然后,这个图像会附加一个只有你知道的秘密( Cryptographic Nonce MAC ,消息“m”将是要签名的整个文档。这是使用密码学将这些重要信息连接在一起的好方法。这也可以用来证明签署的文件没有被篡改。但是,只有在您拥有所提供的机密的情况下,才能验证和创建用作身份验证代码的结果哈希。如果你需要在法庭上证明其真实性,这就起作用了。

    更常见的方法是使用 PDF's Built-In digital signatures . 我在合同协议中用过第一手资料。如果你真的走这条路,并在一个案件,使它向法院可能会更容易为自己辩护说,一个用户签署了文件。但也有一些 这种方法的问题。最重要的是,这对于不懂技术的用户来说是非常困难的,尽管自动地和他们一起唱歌也许是可以的 Adobe's PDF SDK . 仍然可以使用绘图框,并且可以在应用数字签名之前将客户名称的图像写入文档。密钥分发将是一个麻烦。它需要花钱,因为你必须为使用像VeriSign(*在这里插入呕吐物*)这样的人提供的PKI付费。此外,PKI还可以防御不依赖于您的需求的攻击。尽管走这条路意味着任何人都应该能够验证这份文件的真实性。

    你只想证明一个文件是有签名的,没有被篡改。考虑到这个问题的性质,我会让律师仔细检查你提出的解决方案。

        2
  •  1
  •   Angela White    14 年前

    嘿,我知道这个答案有点晚了,但希望它能帮助其他阅读它的人。我也在保险领域工作,了解签署文件时安全的重要性。我知道有几项服务可供您选择 digital signatures

        3
  •  0
  •   thomasfedb    15 年前

    我会生成一个图像(条形码或条形码矩阵),就像在服务器上用一些讨厌的算法生成的校验和(RSA对我来说很好),如果需要的话可以稍后检查。别用签名字体,那太俗气了。