14 января 2014 г.

Если кому вдруг интересно, как работают универсальные домофонные ключи…
Кратко, на пальцах, по–обывательски.



У каждого ключа есть уникальный идентификатор (несколько байт).
У каждого домофонного замка есть таблица доступа, в которую прописываются друг за другом идентификаторы ключей, которые должны открывать данный замок.
Т.е. ключ не знает, к каким замкам он подходит, он хранит только свой идентификатор. А замок хранит список идентификаторов всех ключей, которые к нему подходят.
По мере заселения в подъезд новых жильцов им выдаются ключи и добавляются в таблице доступа замка от данного подъезда.

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

Таблица доступа у каждого замка фиксированной длины (например, максимум на 100 ключей). А квартир в одном подъезде обычно меньше, чем 100. Поэтому оставшееся свободное место таблицы доступа, не занятое списокм ключей, заполнено байтами 0xFF, 0xFF, 0xFF… до конца всей таблицы.

Так вот хитрость универсального ключа заключалась в том. что ему искусственно генерировался идентификатор, состоящий как раз целиком из байт 0xFF, …, 0xFF. Задумка как раз в том, что таблица доступа замка почти всегда не целиком забита реальными ключами, а остаток этой таблицы заполнен байтами 0xFF. И когда замок считает идентификатор ключа и пойдёт последовательно по таблице от начала до конца, чтобы сравнить его с записанными в таблицу идентификаторами реальных ключей, он пройдёт список реальных ключей и начнёт сравнивать идентификатор до конца таблицы с заглушкой из байт 0xFF. И этот универсальный ключ как раз совпадёт с заглушкой и будет опознан, как присутствующий в ьаблице доступа, поэтому замок откроется.

И это действительно работало, причём с замками разных фирм. Но только это было давно, когда замки на домофонах были старыми и глупыми. Потом они стали умнее и такие ключи не стали воспринимать, как подходящие. Например, при считывании стали игнорироваться ключи, состоящие из 0xFF, или кроме списка доступа замок стал хранить счётчик записанных в него ключей, чтобы при проверке приложенного ключа пробегать не по всей таблице доступа, а только до указанного в счётчике значения; или в таблице доступа после списка ключей стала храниться последовательность, означающая конец списка, чтобы опять же не пробегаться по всему списку до конца.
Т.е. такой универсальный ключ–таблетка с современными замками домофонов уже не работает.

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

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

Поскольку производителей замков много, то и таких "инженерных ключей" несколько. У одного производителя могут быть даже несколько разных "инженерных ключей" для разных моделей замков. Но в рамках одной модели (или модельного ряда) каждый такой ключ является универсальным, т.к. он изначально прописан в таблицу доступа каждого экземпляра замка данной модели.
Для полной универсальности нужно иметь целый набор таких ключей для разных типов домофонных замков (для замков разных производителей).

© интернет.

Комментариев нет: