#java #sockets #rsa #modulus
#java #сокеты #rsa #модуль
Вопрос:
Я создаю серверное приложение на Java, которое обслуживает клиенты, встроенные во Flash, с использованием AS3. Библиотеке as3crypto требуется модуль ключа RSA для выполнения шифрования, поэтому я подумал передать модуль ключа с сервера клиенту. Безопасно ли это делать без шифрования ключа?
Комментарии:
1. Это возможно, но для сервера это было бы более утомительно; более того, разве соединение SSL / TLS не работает таким же образом?
Ответ №1:
Во-первых, SSL / TLS был бы лучшим выбором, поскольку это уже надежный протокол (TLS 1.1), а не что-то выдуманное. Во-вторых, передача модуля в порядке. По крайней мере, так и должно быть. Если вы используете RSA должным образом, ваш модуль должен состоять из двух простых чисел, каждое длиной не менее 1024 бит. Вам нужно только быть действительно осторожным с тем, что именно вы передаете. Ключ RSA (публичной криптосистемы) состоит из двух частей. Один общедоступный, один частный. В RSA вы можете передавать произведение ваших простых чисел только по открытому каналу (это вообще не обеспечивает аутентификацию). Не показатель степени. Вы не можете зашифровать свой модуль, потому что тогда вам пришлось бы взломать второй конверт и все равно добраться до вашего модуля, что только переносит проблему на знание внешнего модуля.
Я должен признать, что использование уровня TLS сделало бы вас намного безопаснее. Используйте что-то, что уже есть, и если вы действительно хотите иметь свой собственный протокол, да, вы можете безопасно передавать модуль. (В большинстве случаев. Хотя в криптографии никогда не гарантируется надежность какого-либо протокола)
Комментарии:
1. Также я должен добавить, что RSA сам по себе, в том виде, в котором он описан в Википедии, НЕБЕЗОПАСЕН. Вы должны выполнять дополнение и поворот ключа aso.