代码之家  ›  专栏  ›  技术社区  ›  Mark Pim

安全问题-允许无密码授权身份验证

  •  0
  • Mark Pim  · 技术社区  · 15 年前

    这是我们的设置-我们的客户将有一个数据库服务器和我们的数据库和多个客户端运行我们的前端。我们有一些WCF服务,允许客户端从数据库请求信息,每个WCF会话都使用存储(加密)在数据库中的用户名/密码进行身份验证。这一切都很好,已经使用了两年。

    我们现在添加了使用连接到客户端PC的USB指纹读取器登录的功能。为此,我们将每个用户的指纹模板存储在数据库中,然后将它们全部上载到设备。然后,该设备可以告诉我们哪个用户展示了他们的手指。

    我的第一个想法是定义一个客户机和服务器都知道的密钥,在客户机上用时间戳和登录的用户id对其进行加密,并将其发送到服务器,然后服务器可以确认请求来自我们的客户机。

    这是个好主意吗?攻击者是否可以转发相同的消息以启动未经授权的会话?

    我不是一个安全专家,所以我更喜欢现有的解决方案,而不是我自己的,原因很明显。

    我们使用的是C#,只针对Windows。

    1 回复  |  直到 15 年前
        1
  •  1
  •   Tanner    15 年前

    您可以使用存储在客户端上的x509证书来提供WCF服务所需的客户端凭据。这与通过SSL证书提供服务器安全性的方式相同。

    有关使用证书的一些信息:

    有关使用Windows帐户的某些信息: