如何使用RFID徽章和PIN码保护访问

ste*_*776 5 .net c# sql-server security sql-server-2008

我有一个类似于门锁的场景,需要双因素身份验证才能获得访问权限:

  • 带GUID的RFID徽章
  • 通过键盘输入的4位PIN密码.

我需要在SQL Server 2008中安全地存储它们.我认为可以正常存储GUID,但是应该采取什么方法来保护数据库和整个系统中的PIN?

一个典型的哈希/盐方法是否足以支持4位数PIN?

保护这类系统的正确方法是什么?

编辑

更多信息......最终,这个系统最有可能需要比标准的"门锁"更安全.用户将使用RFID令牌和PIN码进行身份验证.在获得对系统的访问权限之后,用户将有机会通过链接到其帐户的信用卡浏览和购买项目(使用第三方网关/保险库服务进行存储).这对系统有什么影响?

编辑2

此外,案例是这不是一个基于Web的应用程序.用户只能从专用工作站访问系统.然后,工作站将利用Web服务与后端系统/ DB进行通信.如何将其纳入混合?

我可以使用@Remus建议的系统,其中认证/解密都是RFID卡的功能吗?然后,工作站将使用经过身份验证的用户ID与后端进行通信.有没有办法实现这样的系统?

Rem*_*anu 5

通过在数据库中存储PIN,徽章+ PIN不起作用.PINS实际上是用于访问徽章加密模块本身的加密密钥.徽章存储私钥,使用从PIN派生的密钥加密.身份验证者拥有公钥并使用随机数来挑战徽章.徽章加密模块本身使用私钥(使用PIN在内部解密)对挑战随机数进行签名,并使用随机数签名进行响应.然后,验证者使用公钥验证签名,从而验证用户(徽章持有者).关键点是:

  • 密码认证是使用公钥/私钥对,强RSA密码术建立的
  • 通过拥有私钥来证明身份,私钥永远不会离开徽章加密模块
  • PIN仅用于解密徽章的私钥.PIN完全没用,没有徽章的实际拥有权

坦率地说,你建议的方案,存储在数据库中的GUID和PIN是一个笑话.

  • 问的问题是如何安全地实施特定的(我假设的,现有的)RFID徽章和PIN系统.您描述了一个更安全的系统,但它并没有真正回答这个问题. (2认同)