用于公钥认证的 Web 服务器中介

用于公钥认证的 Web 服务器中介

我的家庭网络目前位于 DD-WRT 路由器后面,我可以使用公钥身份验证进行访问。每当我需要从家庭网络访问某些内容时,我都可以从 DD-WRT 路由器简单地创建 SSH 隧道。

只要我的私钥保持安全并且没有被泄露,我认为这是一个非常安全的设置。

但是,即使我没有可用的 ssh 客户端并且只有可用的 Web 浏览器,我也希望能够访问路由器。

是否可以构建一个安全的解决方案(或者是否有现有的服务可用),以便我可以使用 Web 应用程序(可通过 HTTPS 访问)来访问我的路由器?

我认为 Web 应用程序需要能够与我的 DD-WRT 路由器建立 SSH 连接。为此,Web 应用程序需要访问我的私钥,因此必须将其发送给 Web 应用程序。

我可以想象几个场景

  • 我的私钥通过 https 使用 Web 表单发送到 Web 应用程序,以便 Web 应用程序可以创建 SSH 连接。Web 应用程序接收 SSH 密钥,不会将密钥保存到磁盘,而是将其保存在内存中以创建 SSH 连接。

  • 为 Web 应用程序专门生成了一个新的密钥对。Web 应用程序将私钥存储在其数据库中,并将公钥发送给我。Web 应用程序使用它来创建与我的路由器的安全连接。Web 应用程序需要确保私钥的安全。

这些情况都让我感到不舒服,但我对安全性了解不够,无法做出适当的评估,我想知道是否有更合适的解决方案来解决这个问题。(让 Web 应用程序充当代表用户进行此类 SSH 通信的中介?)

或者这只是一件“未完成”的事情。

答案1

您基本上可以选择以下两种方法之一:

  1. 建立通常所说的SSL VPN- 一个通往你最需要的服务的 Web 网关,它将通过 TLS 加密,并使服务可以通过 HTTP 访问

  2. 使用一个即使你坐在一台陌生的电脑前也能“使用”的 SSH 客户端 - 例如 Java 小程序思维术语

从不受信任的计算机登录时,你总是会遇到身份验证问题,可以通过运行双因素身份验证或一次性密码(或两者)来解决 - 请查看欧佩克看看如何做到这一点。

答案2

有几家公司通过 WebSSH 进行管理,例如塞尔菲什转到SSHSSHD.org。有些会让您使用私钥,有些则只使用用户名和密码。但是,如果您不想交出私钥,这些都不适合。

另一种选择是在系统上设置 Web 服务器并使用可以在系统上安装的 WebSSH 客户端,例如Ajax终端或者网页外壳这些给您带来额外的好处,即您不必向任何人提供您的私钥,并允许您完全控制安全性,然而,缺点是要求您在网络服务器上设置额外的安全性。

相关内容