Security 如何在本地托管服务器和客户端之间提供加密通道?

Security 如何在本地托管服务器和客户端之间提供加密通道?,security,ssl,encryption,ssh,Security,Ssl,Encryption,Ssh,我正在创建一个Android应用程序,让设备充当服务器,以便同一子网上的其他客户端可以从中发送/检索文件(目前支持HTTP和SSH(仅通过SCP命令) 我的首要任务是对文件传输进行加密。显而易见的解决方案是HTTPS传输,但我的普通用户可能会因为他们的浏览器显示连接“不完全安全”而感到不快,因为我没有本地托管服务器的证书 我的第二个想法是从浏览器中使用SCP,它本质上是安全的,但我发现如果没有插件,浏览器真的无法打开SSH/SCP连接,我希望我的解决方案只需要应用程序本身 我的第三个想法是有一个

我正在创建一个Android应用程序,让设备充当服务器,以便同一子网上的其他客户端可以从中发送/检索文件(目前支持HTTP和SSH(仅通过SCP命令)

我的首要任务是对文件传输进行加密。显而易见的解决方案是HTTPS传输,但我的普通用户可能会因为他们的浏览器显示连接“不完全安全”而感到不快,因为我没有本地托管服务器的证书

我的第二个想法是从浏览器中使用SCP,它本质上是安全的,但我发现如果没有插件,浏览器真的无法打开SSH/SCP连接,我希望我的解决方案只需要应用程序本身

我的第三个想法是有一个不安全的通道,但是要对文件进行端到端的加密,这样文件只有在加密后才会接触到电线。我会使用Java(用于Android服务器)和Javascript(用于基于web的客户端)中预先存在的库

但是我觉得对于发送许多小文件来说,这个解决方案会非常慢,因为在发送之前,您需要对每个文件进行完全加密,而不是对流进行加密

要确保此问题对于堆栈溢出足够具体,请执行以下操作:


如何在基于web浏览器的客户端和本地托管服务器之间安全地发送文件?

您可以尝试设置ssh隧道来包装流量,但我怀疑您是否会找到令人满意的解决方案。如果我理解正确,那么用户只能通过浏览器使用该服务。在这种情况下,所有不使用https的内容都将被标记为不安全。这有一个很好的理由。一个问题:如果该服务只在专用网络上使用,那么为什么需要加密?是文件的内容如此敏感,还是您担心身份验证凭据?