Битый RSA токен, рисование и теория вероятности

Сегодня утром обнаружил, что разбит дисплей на RSA-токене от одного из наших клиентов. Без него не заведется их vpn, что очень-очень усложняет работу. Ума не приложу, как это получилось. Такой же брелок от другого клиента прожил весь спрок своей эксплуатации и бывал в гораздо более жестких условиях, чем этот. А тут я даже вспомнить не могу, где мог его приложить.

SID700

Само-собой брелок понадобился уже сегодня – клиент попросил посмотреть проблему в их внутреннем трекере. Новый брелок приедет, в лучшем случае через, пару недель. А попрошайничать каждый раз у заграничных коллег вообще неудобно. Решил попробовать, может можно что-то выжать из разбитого брелка.

На брелке повреждены последние 3 цифры из 6. При этом некоторые сегменты все таки работают, пусть некоторые и не целиком. Но нам же ехать, а не шашечки. Итого доступны такие сегменты:
– четвертая цифра: a, b, d, e, f
– пятая цифра: a, b
– шестая цифра: a

Нехитрый кривой рисунок помог выяснить, что этих сегментов достаточно, чтобы однозначно идетифицировать следующие цифры:
– четвертая цифра: 1, 4, 6, 7, 9
– пятая цифра: 1, 4

С шестой цифрой сложнее. Наличие сегмента ‘а’, а вернее его отсутствие, дает нам знать, что в данный момент в этой позиции отображается цифра 1 или цифра 4. Неидеально, но могло быть и хуже (например, только нижний сегмент).

Если считать, что цифры генерируются независимо одна от другой, то имеем следующую вероятность появления на дисплее читабельного числа:
0.5 (4-я цифра) * 0.2 (5-я цифра) * 0.2 (6-я цифра) * 0.5 (вероятность угадать шестую цифру – 1 или 4) = 0.01

1 из 100. Не так уж и плохо 🙂 Самое интересное, что как только я выяснил какие цифры могу увидеть, сменились цифры на дисплее и появилась подходящая комбинация )) Тут же залогинился в vpn и угадал последнюю цифру! Правда, я тогда думал, что отсутствие верхнего сегмента однозначно означает 4. Тем лучше )) Ведь угадал же.

Битый RSA токен, рисование и теория вероятности