обмен открытым ключом как сериализованным объектом - PullRequest
5 голосов
/ 09 мая 2011

Как обменять открытый ключ на место клиента.я зашифровал документ (текстовый файл) с использованием алгоритма RSA с помощью закрытого ключа, а затем сохранил открытый ключ как объект java.security.Key в файле с использованием сериализации.это безопасный вариант или любой другой доступный вариант.

Ответы [ 2 ]

2 голосов
/ 09 мая 2011

Открытый ключ обычно просто обменивается как фрагмент текста. Затем он импортируется в хранилище ключей. Точный метод выполнения зависит от реализации (я всегда использовал PGP).

Я бы не стал представлять ключ как сериализованную форму java.security.Key, потому что он не совсем стандартный. Ключ в его простой форме - это стандартная форма обмена.

Об открытии ключа для загрузки: он общедоступен, поэтому злоумышленник ничего не сможет сделать, загрузив ваш ключ. Единственное, что может пойти не так, это то, что кто-то может подделать ваш сервер и разместить другой ключ. Затем подпишите с закрытым ключом этого ключа и заявите, что вы. Конечно, у вас может возникнуть та же проблема, если вы отправите ее кому-нибудь по почте. Но тогда, по крайней мере, ты узнаешь, кому это было отправлено.

Самый безопасный подход - распространять ключ за пределы. Как на USB-флешке.

В зависимости от вашей причины, я думаю, вы можете жить с риском.

0 голосов
/ 09 мая 2011

Джоэри ответил на вопросы безопасности - мне нечего добавить по этому поводу.

Основная проблема, с которой вы можете столкнуться, заключается в смене сериализованного представления между версиями библиотеки, что является потенциальной проблемой при любом использовании Javaсериализация.

Конечно, есть и другие способы сделать это.Открытый ключ RSA должен иметь стандартную кодировку, доступ к которой можно получить с помощью метода getEncoded().Это дает вам массив байтов, которые вы можете write до FileOutputStream.Так что это действительно легко.

...