java - 通过Java Socket连接传递RSA key 的模数而不加密是否安全?

标签 java sockets rsa modulus

我正在 Java 中构建一个服务器应用程序,该应用程序为使用 AS3 在 Flash 中构建的客户端提供服务。 as3crypto 库需要 RSA key 的模数才能进行加密,因此我正在考虑将 key 的模数从服务器传递到客户端。在不加密 key 的情况下这样做安全吗?

最佳答案

首先,SSL/TLS 将是更好的选择,因为它已经是一个强大的 (TLS 1.1) 协议(protocol),而不是虚构的协议(protocol)。其次,传递模数就可以了。至少,应该是这样。如果您正确使用 RSA,您的模数应由两个素数组成,每个素数至少有 1024 位长。你只需要非常小心你到底通过了什么。 RSA(公共(public)加密系统) key 有两个部分。一间公立,一间私立。在 RSA 中,您只能通过开放 channel 传递质数的乘积(这根本不提供任何身份验证)。不是指数。您无法加密您的模数,因为那样您就必须破解第二个信封并且仍然可以获得您的模数,这只会将问题转移到了解外部模数。

我必须承认,使用 TLS 层会让您更安全。使用已经存在的东西,如果你真的想有自己的协议(protocol),是的,你可以安全地传递模数。 (在大多数情况下。尽管在密码学中,永远不能保证任何协议(protocol)都是健壮的)

关于java - 通过Java Socket连接传递RSA key 的模数而不加密是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8051742/

相关文章:

java - 如何在 Java 中将 PKCS#8 编码的 RSA key 转换为 PKCS#1?

java - Zk 在 zul 中包含 Richlet

java - (Has-A vs. Is-A) 如何布局我的程序架构? (Java)

java - TCP线程服务器/客户端

python - python中的RSA加密

javascript - RSA 消息太长 Javascript JSBN

java - 当存在命名空间时通过Xpath表达式提取值

java - 当记录器应该停止时应用程序崩溃

python - 通过Python套接字库发出的HTTP请求

python - 从 Electron UI 连接套接字到 python 服务器时出现错误 400(错误请求)