如何在没有 SSL/TLS 的情况下加密数据客户端并在另一个客户端解密?

Posted

技术标签:

【中文标题】如何在没有 SSL/TLS 的情况下加密数据客户端并在另一个客户端解密?【英文标题】:How to encrypt data client side and decrypt on another client side without SSL/TLS? 【发布时间】:2020-02-26 20:07:51 【问题描述】:

如果我有设备 A、设备 B 和服务器,我怎样才能在两个设备之间实现信息的安全传输?

我想在设备 A 上加密纯文本,将其发送到服务器,服务器会将其重新路由到设备 B,设备 B 将解密消息。我在网上没有找到很多这样的例子。我能够摆弄 Node 的 crypto,但这对我来说没用,因为它是服务器端的。我正在使用套接字 io,任何会发送任何密钥的初始连接都是一个漏洞。我无法使用 HTTPS 或 WSS。

我有什么选择?

【问题讨论】:

你可能想看看this answer。它解释了一个名为 Libsodium 的库以及如何使用它 阅读一些密码学书籍,理解 TLS 的精髓,然后您可以借助当前的密码算法设计您的协议。对于javascript来说,有一个非常强大的工具browserify,加密功能已经用纯JS实现了,所以你可以用简单直接的方式与Node.JS加密模块进行通信。 【参考方案1】:

我无法使用 HTTPS 或 WSS。

我有什么选择?

你有no other options,这将实际上是安全的。另见:Login without HTTPS: How to Secure?

【讨论】:

以上是关于如何在没有 SSL/TLS 的情况下加密数据客户端并在另一个客户端解密?的主要内容,如果未能解决你的问题,请参考以下文章

MsSQL使用加密连接SSL/TLS

HTTPS协议之SSL/TLS详解(下)

centos8.5 配置vsftpd的SSL/TLS功能

[翻译]在 Ubuntu 中使用 SSL/TLS 加密 FTP 连接

开源项目SMSS发开指南——SSL/TLS加密通信详解(下)

SSL/TLS协议原理解读