Mic*_*ick 5 delphi authentication cryptography challenge-response
我有兴趣在Delphi中创建挑战/响应类型过程.场景是这样的...我们有2台计算机...... 1属于用户,1属于支持技术人员.
用户被锁定在某个程序之外,为了获得1次访问权限,我希望:
现在,如何做到这一点是我的问题?我将有2个应用程序无法相互进行网络访问.Windows中是否有任何功能可以帮助我完成此任务?
我相信我可以在CryptoAPI中使用一些功能,但我真的不知道从哪里开始.我很感激您提供的任何帮助.
我将实现基于MD5的质询 - 响应身份验证.
来自维基百科 http://en.wikipedia.org/wiki/CRAM-MD5
协议
- 挑战:在CRAM-MD5身份验证中,服务器首先向客户端发送质询字符串.
- 响应:客户端使用用户名后跟空格字符进行响应,然后使用十六进制表示法进行16字节摘要.摘要是HMAC-MD5的输出,用户的密码作为密钥,服务器的原始质询作为消息.
- 比较:服务器使用相同的方法计算预期响应.如果给定的响应和预期的响应匹配,则认证成功.
这提供了三种重要的安全类型.
- 首先,其他人不能在不知道密码的情况下复制哈希.这提供了身份验证
- 其次,其他人不能重播哈希 - 它取决于不可预测的挑战.这被称为新鲜或重放预防.
- 第三,观察者不学习密码.这称为保密.
提供这三种安全优势的该协议的两个重要特性是单向散列和新的随机挑战.
此外,您可以在挑战字符串中添加一些应用程序标识,以便对挑战的发件人进行双重检查.
重要提示:它有一些缺点,请仔细评估它们对您的影响.
关于口头质疑/响应策略:我们使用这种方法在全球五千个工作站上许可一个利基应用程序超过十年.我们的支持团队将其称为"导弹发射代码",因为它与旧电影上看到的经典导弹发射认证过程相似.
这是一种非常耗时的保护程序的方法.它耗费了大量的员工和客户的时间来读取用户的代码.他们都讨厌它.
您的情况/背景可能会有所不同.也许你不会像我们那样经常使用它.但这里有一些建议:
仔细考虑代码的长度和内容:大多数用户(和支持人员)重新输入大量的字符.许多用户都是坏打字员.考虑一个长字符串,包括标点符号和区分大小写是否与安全添加量相比过度负担.
经过多年使用口头质疑/响应实施后,我们将其留在原地(作为后备),但增加了一个简单的自动化系统.我们选择使用FTP而不是更复杂的Web方法,这样我们就不必在我们的内部服务器上运行任何软件(或者与我们的IT人员打交道!)
基本上,我们使用FTP文件进行以前在手机上完成的交换.服务器将文件放在包含质询短语的FTP服务器上.文件的名称是客户的名称.我们的支持人员有一个程序可以在我们的ftp站点上自动创建该文件.
我们的工作人员指示客户点击读取FTP文件的热键,对其进行身份验证,然后将响应文件放回服务器上.
我们的支持人员的软件一直在轮询等待客户的软件来创建响应文件.当它看到文件时,它会下载并确认其内容,并从服务器中删除它.
当然,您可以根据需要在给定的会话中进行多次此类交换,以实现您的目标.
文件中的数据可以具有您将口头使用的相同MD5密钥,因此它可以像您一样安全.
该系统的一个缺点是用户必须具有FTP访问权限.我们发现大多数用户(所有商家)都可以使用FTP访问.(当然,您的客户群可能不会......)如果我们在现场的应用程序无法访问我们的FTP站点,它会清楚地宣布问题,以便我们的客户可以请他们的IT人员请求他们打开访问权限.与此同时,我们只是回到口头代码.
我们使用普通的Indy FTP工具没有问题.
毫无疑问,这种方法存在一些缺点(可能包括一些我们没有想过的方法.)但是,对于我们的需求,它一直很棒.我们的支持人员和客户都喜欢它.
对不起,如果这些都与您无关.希望这对你有所帮助.
| 归档时间: |
|
| 查看次数: |
361 次 |
| 最近记录: |