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

如何使用Delphi创建一个可视化的质询/响应来恢复对应用程序的访问?

  •  5
  • Mick  · 技术社区  · 15 年前

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

    用户被锁定在某个程序之外,为了获得1次访问权限,我希望:

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

    现在,怎么做是我的问题?我有两份申请 彼此有网络连接。Windows中是否有任何功能可以帮助我完成此任务?

    我相信我可以在 CryptoAPI ,但我真的不知道从哪里开始。如果你能提供帮助,我将不胜感激。

    2 回复  |  直到 15 年前
        1
  •  8
  •   PA.    15 年前

    我将实现基于MD5的质询-响应身份验证。

    维基百科 http://en.wikipedia.org/wiki/CRAM-MD5

    协议

    1. 挑战:在CRAM-MD5身份验证中,服务器首先发送 对客户端的质询字符串。
    2. 响应:客户机用用户名和空格进行响应 字符,然后是16字节摘要 十六进制表示法。摘要是 HMAC-MD5的输出与用户的 密码作为密钥 服务器最初的挑战是 信息。
    3. 比较:服务器使用相同的方法计算预期的 回应。如果给定的响应和 则预期的响应匹配 身份验证成功。

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

    1. 首先,其他人不知道密码就不能复制散列。 这提供了身份验证。
    2. 第二,其他人不能重放依赖于 不可预测的挑战。这是 各种各样的称为新鲜或重播 预防。
    3. 第三,观察者不知道密码。这叫保密。

    它的两个重要特征 提供这三项的协议 安全好处是单向散列 以及新的随机挑战。

    此外,您可以在质询字符串中添加一些应用程序标识,以便对质询的发件人进行双重检查。

    重要提示:它有一些缺点,请仔细评估它们可能对您的影响。

        2
  •  7
  •   RobertFrank Picarus    15 年前

    关于口头挑战/回应策略:我们使用这种方法在全球5000个工作站上授权一个利基应用程序超过10年。我们的支持团队称之为“导弹发射代码”,因为它类似于老电影中的经典导弹发射认证过程。

    这是一种非常耗时的保护程序的方法。它耗费了我们的员工和客户大量的时间来阅读用户之间的代码。他们都讨厌。

    你的情况/背景可能不同。也许你不会像我们那样频繁地使用它。但这里有一些建议:

    1. 仔细考虑代码的长度和内容:大多数用户(和支持人员)都讨厌键入大量字符。许多用户是不好的打字员。考虑与增加的安全性相比,长字符串(包括标点符号和大小写敏感度)是否给它们带来了不适当的负担。

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

    基本上,我们使用FTP文件来完成以前在电话上完成的交换。服务器在FTP服务器上放置包含质询短语的文件。文件名就是客户的名字。我们的支持人员有一个程序可以在我们的ftp站点上自动创建这个文件。

    我们的工作人员指示客户按热键读取FTP文件,对其进行身份验证,并将响应文件放回服务器。

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

    当然,为了实现您的目标,您可以在给定会话中按需要在任意方向多次进行此交换。

    文件中的数据可以具有与您口头使用的相同的MD5密钥,因此它可以像您希望的那样安全。

    该系统的一个弱点是用户必须具有FTP访问权限。我们发现大多数用户(所有企业)都可以使用FTP访问。(当然,您的客户群可能不会……)如果我们在现场的应用程序无法访问我们的FTP站点,它会清楚地宣布问题,以便我们的客户可以向他们的it人员请求他们打开访问。同时,我们又回到了语言规则上来。

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

    毫无疑问,这种方法有一些缺点(可能包括一些我们没有想到的),但是,对于我们的需要,它是非常棒的。我们的支持人员和客户都喜欢它。

    对不起,如果这些都与你无关。希望这对你有所帮助。

    推荐文章