Как работают брелоки RSA? - PullRequest
15 голосов
/ 04 февраля 2009

Может ли кто-нибудь объяснить мне простыми программными терминами, как работают эти ключи RSA? Я знаю, что у Blizzard они есть для WoW и PayPal, а также для некоторых торговых сайтов.

Спасибо!

Ответы [ 3 ]

25 голосов
/ 04 февраля 2009

Брелок имеет часы и серийный номер, который используется в качестве начального числа для PRNG . Когда вы нажимаете кнопку «показать мне код», брелок отображает число, являющееся произведением этой временной метки, и серийный номер, проходящий через PRNG. Сервер знает серийный номер и время вашего брелка и выполняет ту же операцию. Если ваши коды совпадают, вы аутентифицированы.

Вы можете рассчитать предыдущее / следующее значение N на стороне сервера, чтобы учесть перекос часов.

2 голосов
/ 04 февраля 2009

Программные термины не нужны. Представьте себе два аппаратных средства (ваш ключ и что-то в компании), которые генерируют одинаковые числа с одинаковыми регулярными интервалами. Было бы практически невозможно угадать, что это за номер из-за некоторых проприетарных алгоритмов, поэтому, если набираемый вами номер (или автоматически отправляется ключом) совпадает с номером на сервере, ваша личность подтверждается.

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

1 голос
/ 04 февраля 2009

Безопасность сейчас! эпизод 103 рассказывает о том, как они работают. (Это ссылка на заметки к шоу, но в верхней части страницы есть ссылка на аудиоподкаст.)

По сути, брелок синхронизируется с сервером, и они оба сеяны, чтобы генерировать одинаковую последовательность псевдослучайных чисел. Сервер знает, что это вы, если вы ввели правильное число в нужное время.

...