Генерация пары ключей RSA в JavaScript - PullRequest
11 голосов
/ 15 июля 2009

Я недавно нашел эту библиотеку RSA JavaScript: http://www.ohdave.com/rsa/. Однако для этого необходимо предварительно сгенерировать ключ. Вот мои вопросы / проблемы:

  1. Я хотел бы создать пару ключей RSA в JavaScript (чтобы мне не приходилось менять код каждый раз, когда я хочу новую пару ключей.)

  2. Хотя я понимаю, как это можно использовать для отправки защищенных данных, если я не ошибаюсь, эту библиотеку нельзя использовать для получения клиентом защищенных данных с сервера (поскольку открытые и частные показатели модуль, передаются в виде простого текста с сервера). Я ошибаюсь?

Мне бы хотелось немного поговорить об этом. Я не эксперт по безопасности, но я довольно твердо разбираюсь в асимметричном шифровании.

1 Ответ

1 голос
/ 22 июля 2009

Генерация пары ключей требует сильного генератора случайных чисел (я не думаю, что он у вас есть в JavaScript) и немало вычислений (для проверки простоты). Затем, когда у вас есть пара, когда вы передаете свой открытый ключ на другую сторону, появляется возможность для атаки «человек посередине», так как при передаче открытого ключа не выполняется проверка целостности.

Вы получите защищенную передачу тому, кто имеет закрытый ключ. Из вашего вопроса не ясно, клиент это или сервер. Вы можете инициализировать общий секрет, если тот, кто имеет только открытый ключ, сгенерирует общий секрет, зашифрует его и отправит тому, кто имеет открытый ключ.

Вы можете получить аналогичный набор функций (зависимость от генератора случайных чисел, уязвимость к MITM, возможность создавать общий секрет для использования в качестве ключа сеанса), но с гораздо меньшими вычислениями, выполнив вместо этого обмен ключами Диффи-Хеллмана.

Возможно, вам лучше понять, как настроить SSL на вашем сервере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...