我正在用 Java 构建一个服务器应用程序,它为使用 AS3 在 Flash 中构建的客户端提供服务。as3crypto库需要 RSA 密钥的模数才能进行加密,所以我想将密钥的模数从服务器传递给客户端。在不加密密钥的情况下这样做是否安全?
问问题
285 次
1 回答
1
首先,SSL/TLS 将是一个更好的选择,因为它已经是一个健壮的 (TLS 1.1) 协议,而不是虚构的。其次,通过模数是可以的。至少,它应该是。如果您正确使用 RSA,您的模数应该由两个素数组成,每个素数至少 1024 位长。你只需要非常小心你到底通过了什么。RSA(公共加密系统)密钥有两个部分。一公一私。在 RSA 中,您只能通过开放通道传递素数的乘积(这根本不提供任何身份验证)。不是指数。你不能加密你的模数,因为那样你将不得不破解第二个信封并且仍然会得到你的模数,这只会将问题转移到知道外部模数上。
我不得不承认,使用 TLS 层会让你更安全。使用已经存在的东西,如果你真的想拥有自己的协议,是的,你可以安全地通过 Modulus。(在大多数情况下。尽管在密码学中,永远不能保证任何协议都是健壮的)
于 2011-11-09T03:12:31.297 回答