2022-09-29 19:21:40
У LockPicking’а, как направления, есть много общего с другими дисциплинами из мира хакинга. Не все параллели сразу очевидны и понятны, но они есть.
Мы любим использовать LockPick для того, чтобы объяснять абстрактные принципы атак, защиты, расследования инцидентов и т.д. Объяснение этих принципов на физическом объекте в разы лучше доходит до аудитории, которая никогда в жизни не слышала про модели угроз и не знает, чем отличается атака от уязвимости или чем отличается защищенность от безопасности.
Так почему вообще возможно открыть замок без ключа?
Комбинаторная сложность 5-ти пинового замка, если упростить, будет 4 в степени 5 (комбинаций может быть больше, но все зависит от конкретного производителя и модели замка), у нас получается 1024 комбинации, которые сложно перебирать и нерентабельно изготавливать под каждую модель замка.
Тут стоит вспомнить выступление одного из создателей RSA (Rivest–Shamir–Adleman) Adi Shamir’а на Turing Award где он озвучил три "закона" защищенности:
- Absolutely secure systems do not exist
- To halve your vulnerability, you have to double your expenditure
- Cryptography is typically bypassed, not penetrated
Так же и с замками, настоящий злоумышленник будет искать способы обойти защиту максимально простым путем.
Продолжая параллели с криптографией, атаки на замки можно разделить на две категории:
- атаки на модели
- атаки на имплементацию
К атакам на модели можно отнести все bypass’ы, которые позволяют не взаимодействовать с секретом замка, а напрямую манипулировать запорным механизмом. Это ошибки проектирования как самого замка, так и его окружения.
Атаки на имплементацию напрямую связаны с процессом фабричного производства и его погрешностями. Если рассматривать цилиндрический пиновый замок, то в процессе производства просверленные отверстия не полностью соответствуют модели и имеют небольшие погрешности (смещения, углы, размеры).
Эта маленькая мелочь позволяет нам уменьшить комбинаторную сложность замка на два порядка, до 20. Но что более интересно, мы может подбирать состояние отдельных пинов по очереди, двигаясь постепенно от одного к другому. Эта возможность появляется благодаря обратной связи с пинами, которые зажимаются между цилиндром и корпусом. Таким образом, в моменте нужно найти только один ключевой пин, который был зажат и аккуратно протолкнуть им замочный пин. Повторяя этот процесс столько раз, сколько у нас пинов, мы открываем замок.
830 viewsedited 16:21