Как ключи открывают замки?

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

A ruler is next to a key. Red arrows show how the key's intendations are evenly spaced.
Расстояние между долинами – ключевой момент. Скотт Крейвер, CC BY-ND

Если вы внимательно посмотрите на ключ, то увидите, что его верхний край имеет множество V-образных впадин. Если вы рассмотрите ключ более внимательно, возможно, с помощью линейки, то заметите, что дно этих долин расположено на одинаковом расстоянии друг от друга. Глубина впадин кодирует последовательность, которая принимается замком, причем каждая впадина вносит одно значение в комбинацию.

Внутри замка находится цилиндр – часть, которая двигается, когда вы вставляете ключ и поворачиваете его. Ключ может повернуться только в том случае, если все его впадины имеют нужную глубину для вашего конкретного замка.

Но как замок может определить, что впадины ключа имеют правильную последовательность глубин?

A lock with its inner-workings exposed. Labeled are the shafts, pins and cylinder.
Взгляд на детали внутри замка. Скотт Крейвер, CC BY-ND

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

Side by side photos showing the inside of a lock. The left image shows pins that are too high and too low. The right image shows the pins aligned.
Чтобы замок открылся, все штифты должны быть выровнены. Скотт Карвер, CC BY-ND

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

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

В компьютерной безопасности мы говорим, что безопасность основывается на “чем-то, что вы знаете, чем-то, что у вас есть, или чем-то, чем вы являетесь”. Пароль – это пример того, что вы знаете. Ключ – это пример того, что у вас есть. Отпечаток пальца – это пример того, чем вы являетесь. Но, как вы видите, ключ тоже очень похож на пароль, за исключением того, что он кодируется путем шлифовки куска металла.

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

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

Чему это учит нас в плане безопасности? Во-первых, мы должны сделать ключи секретными, создав очень большое количество возможных ключей, чтобы нужный было трудно угадать или построить. То же самое относится и к паролям. Во-вторых, важно разработать замок или компьютерную программу, которая требует, чтобы каждый бит ключа или пароля был точно правильным.

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

Перевод статьи Скотта Крейвера из The Conversation