首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >安全代码生成/比较和原子钟

安全代码生成/比较和原子钟
EN

Stack Overflow用户
提问于 2012-05-30 01:42:11
回答 3查看 247关注 0票数 2

我们已经为web应用程序构建了一个双因素身份验证流程。我们已经构建了一个小的独立应用程序,它每分钟生成一个8位数的安全代码。当用户登录时,系统会提示他们输入安全代码。当提交web应用程序时,在其末端生成安全代码,并将其与输入的安全代码进行比较。如果两者相等,则允许用户进入应用程序。它与RSA令牌一样使用。

然而,我使用原子时钟服务器来确保USB应用程序和web应用程序的安全代码生成是相同的,因为时区和时钟同步是一个问题。这不仅是因为服务器有时可能不可靠,而且我们还必须添加防火墙规则,以允许我们命中特定的原子钟。有没有一种安全的方法可以在不使用远程原子钟的情况下做到这一点?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-05-30 01:51:40

您不需要精确的时钟,而是需要相同的值。因此,从同一个web应用程序中公开某种“当前时间”服务(即基本HTTP get "/currenttime“和JSON响应),并从USP应用程序中查询它。在这种情况下,您只需要在为应用程序提供服务的服务器之间同步时间(如果您有多个服务器)。

票数 2
EN

Stack Overflow用户

发布于 2012-05-30 01:52:00

如果您的应用程序不必是完全RSA令牌安全的,您可以修改web应用程序以接受最后2个或3个安全代码。这样,您就不会太依赖于时间一致性了。

如果您必须进行时间同步,则可以运行您自己的时间服务器,web应用程序和USB应用程序都可以访问该服务器。时间必须是一致的,不一定是正确的。

票数 1
EN

Stack Overflow用户

发布于 2012-05-30 02:06:29

依赖外部时间不是一个好主意,因为如果时间源可以被操纵(例如,通过中间人攻击、恶意的上游DNS更改等),那么就可以远程查询设备以收集未来的值。

在使用自己的加密之前,你应该真正评估一下你的安全需求。它很容易成为许多错误的牺牲品,比如意外地使用了不加密安全的PRG,旁路计时攻击,或类似的。

如果您必须为生产环境执行此操作,请确保您开放了您的实现,以便可以对其进行审查。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10804064

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档