我有兴趣在Delphi中创建挑战 /响应类型过程。场景是这样的...我们有2台计算机... 1属于用户,而1个属于支持技术人员。

用户被锁定在某个程序之外,为了获得1个时间访问,我想要:

  1. 用户将带有挑战短语,例如“ 28394LDJA9281DHQ”或某种合理唯一的价值
  2. 用户将致电支持人员并阅读此挑战(在支持人员验证其身份之后)
  3. 支持人员将将此挑战值键入其系统上的程序,该程序将产生响应,与响应一样独特,例如“ 9232KLSDF92SD”
  4. 响应中的用户类型,程序确定这是否是有效的响应。
  5. 如果是这样,则将授予用户1次访问该应用程序。

现在,如何做这是我的问题?我将有2个应用程序 不是 已经联网访问彼此。 Windows中是否有任何功能可以帮助我完成此任务?

我相信我可以在内部使用一些功能 加密, ,但我真的不确定从哪里开始。感谢您提供的任何帮助。

有帮助吗?

解决方案

我将实施基于MD5的挑战 - 响应身份验证。

维基百科 http://en.wikipedia.org/wiki/cram-md5

协议

  1. 挑战:在CRAM-MD5身份验证中,服务器首先向客户端发送挑战字符串。
  2. 回应:客户以用户名的响应,然后是空间角色,然后是十六进制符号中的16字节摘要。 Digest是HMAC-MD5的输出,将用户的密码作为秘密密钥,而服务器的原始挑战作为消息。
  3. 比较:服务器使用相同的方法计算预期响应。如果给定的响应和预期响应匹配,则身份验证成功。

这提供了三种重要类型的安全性。

  1. 首先,其他人在不知道密码的情况下无法复制哈希。这提供了身份验证。
  2. 其次,其他人无法重播哈希,这取决于无法预测的挑战。这被称为新鲜度或预防重播。
  3. 第三,观察者不学习密码。这称为保密。

该协议提供这三个安全性好处的两个重要功能是单向哈希和新的随机挑战。

此外,您可以在挑战字符串中添加一些应用程序识别,以便对挑战的发件人进行仔细检查。

重要的是:它有一些弱点,仔细评估它们如何影响您。

其他提示

关于口头挑战/响应策略:我们使用这种方法来许可在全球五千个工作站上的利基申请,持续了十多年。我们的支持团队称其为“导弹发射代码”,因为它与旧电影中经典的导弹发射身份验证过程相似。

这是一种保护您的程序的极具耗时的方式。它消耗了大量的员工和客户的时间来阅读用户和用户的代码。他们都讨厌它。

您的情况/环境可能有所不同。也许您不会像我们一样频繁地使用它。但是这里有一些建议:

  1. 仔细考虑代码的长度和内容:大多数用户(和支持人员)对许多字符的键入。许多用户是不好的打字员。考虑与添加的安全量相比,考虑长串和包括标点符号和病例敏感性是否会不适当地负担它们。

  2. 经过多年的口头挑战/响应实施,我们将其放置在适当的位置(作为后退),但添加了一个简单的自动化系统。我们选择使用FTP而不是更复杂的网络方法,这样我们就不必在内部服务器上运行任何软件(或与我们的IT人员打交道!)

基本上,我们使用FTP文件来执行以前在电话上完成的交换。该服务器将文件放在包含挑战短语的FTP服务器上。文件的名称是客户的名称。我们的支持人员拥有一个程序,可以在我们的FTP网站上自动创建此文件。

我们的员工指示客户敲击一个热键,该热键读取FTP文件,对其进行身份验证并将响应文件放回服务器上。

我们的支持人员的软件一直在调查等待客户的软件创建响应文件。当它看到文件时,它将下载并确认其内容,并将其从服务器中删除。

当然,您可以在给定的会话中尽可能多地进行这种交流,以实现您的目标。

文件中的数据可以具有相同的MD5键,您可以口头使用,因此它可以根据需要使用。

该系统的一个弱点是用户必须具有FTP访问。我们发现,大多数用户(所有企业)都有FTP访问。 (当然,您的客户群可能不会...)如果我们在该领域的应用程序无法访问我们的FTP网站,它清楚地宣布了该问题,以便我们的客户可以向他们的IT员工求助,以要求他们打开访问权限。同时,我们只是回到了口头代码。

我们使用普通的香草Indy FTP工具没有任何问题。

毫无疑问,这种方法存在一些弱点(可能包括一些我们没有想到的。)但是,根据我们的需求,这真是太棒了。我们的支持人员和客户喜欢它。

抱歉,如果这些都与您无关。希望这对您有所帮助。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top