【问题标题】:HTTPS or other clever authentication methodsHTTPS 或其他巧妙的身份验证方法
【发布时间】:2015-11-29 18:20:14
【问题描述】:

一点背景知识:我将构建一个网络服务器,当我开始着手时,它可能是最新版本的 apache。它将使用我拥有的临时安全系统的感官信息进行更新。

作为同行,我正在设计一个与之配套的应用程序,它将自动联系网络服务器并每 1.5 分钟提取一次感官信息。

我希望有一种身份验证方法,以便普通 Bob 看不到这些信息,这主要是因为服务器中也会有一些命令和控制。

问题:我觉得简单的用户名和密码是错误的方法,因为它不是动态的,理论上看到频繁发送的相同凭据可能很危险,所以有没有其他身份验证方法可以减轻这种情况?

问题pt。 2:显然我想要一个加密通道,如果它每分半钟都尝试重新协商,https会不会自己绊倒?

我还没有开始这个项目,更不用说选择任何语言来编写它了,这意味着我对建议非常开放,非常感谢任何帮助。

【问题讨论】:

  • 1.对于http服务器来说,每隔一分半钟根本没有负载,那里的https没有问题。 2. 如果您想让事情真正安全(昂贵),或者您可以通过配置的 IP 地址限制请求,您可以在客户端证书上获取 llok,但这仅适用于静态地址。但最重要的是:你所描述的是一个相当大的项目。确定您意识到等待您的工作量有多大?
  • 感谢您的回复。我想我已经掌握了这个项目的范围。我当然愿意付出努力,以尽可能少的成本确保它的安全。我之前做过一个类似的项目,但没有身份验证和安全性。
  • 我考虑过从受信任的 IP 领域接近它,但由于它将在我的 android 上,这根本行不通。我能想到的唯一另一种方法可能是在同一台机器上设置一个 VPN 并通过本地主机联系网络服务器,但这肯定会变得很麻烦,坦率地说,我不知道如何从安卓客户端。我还没考虑过客户端证书,为什么说贵呢?
  • 问得好,我不得不承认我的经验有限。我写了“昂贵的”,因为需要对证书进行签名才能有意义,并由受信任的机构签名。这就是为什么您通常需要付费才能正确设置 https 服务器的原因。我假设您还必须为每个客户端证书付费,因为每个客户端证书都必须在创建后进行签名。但是我越想越同意这不是真的:您可以创建自己的 CA 并自己签名。由于您了解 CA,因此您可以信任它。这与 https 示例不同...
  • 但是,这样的客户端证书应该是唯一的身份验证方式,因为证书可以被复制和窃取而不会引起注意。所以是的,它们提供了一个优雅的选择来提高安全性和识别客户,但它们不应该被高估。

标签: security authentication web-applications https


【解决方案1】:

问题:我觉得一个简单的用户名和密码是错误的 解决这个问题的方法,因为它不是动态的和理论上的 频繁发送的相同凭据可能很危险,因此也是 还有其他身份验证方法可以缓解这种情况吗?

您可以使用Google Sign-In 允许通过 Google 帐户登录。

或者您可以使用Google Authenticator 或通过短信实现两因素身份验证,以证明登录的用户具有多个身份验证因素。这些因素可能是:

  • 您知道的信息(例如密码)
  • 您拥有的东西(例如提供一次性密码的手机)

编辑:重新阅读您的问题 - 是的,您可以使用用户名和密码(通过 HTTPS)进行身份验证,但是您应该在客户端存储会话标识符并简单地将其发送未来而不是每次的用户名/密码。这更安全,因为它可以安全地存储在客户端,并且如果暴露,标识符可以很容易地被撤销。

问题pt。 2:显然我想要一个加密通道,将https 如果它试图每隔一分半钟重新谈判一次,就会绊倒自己?

不,这就是它的设计目的。浏览器将在一段时间内保持打开 HTTPS 连接。此外,在需要建立新连接的情况下,他们将使用会话恢复而不是执行完整的 HTTPS 握手。会话恢复比建立一个全新的会话要快得多。请参阅this article on the CloudFlare blog 了解更多信息。

【讨论】:

  • 好资源。谢谢你。出于好奇,您是否熟悉任何适用于 Android 设备的 VPN api?我还与上面的某个人谈论过将客户端证书作为您自己的 CA 颁发。当与 HTTP 身份验证结合使用时(以防证书被盗),这是确保某人身份的好方法吗?
猜你喜欢
  • 2018-10-31
  • 1970-01-01
  • 2010-10-24
  • 2022-01-18
  • 1970-01-01
  • 1970-01-01
  • 2010-10-05
  • 2015-11-11
  • 2013-02-21
相关资源
最近更新 更多