Итак, я разработал приложение, которое связывается со смарт-картами Mifare Classic (бесконтактными).
Приложение будет использоваться для идентификации члена.
Текущий способ — просто записать 16-байтовое значение в блок 4 карты. Я оставил все клавиши по умолчанию (FF FF FF FF FF).
Но как правильно разработать такую систему, чтобы она была более безопасной? Должны ли мы использовать UID карты вместо записи нашего собственного идентификатора пользователя в блоки данных?
Также кто-то может объяснить, как используются ключи и т. Д.
Спасибо
Если вы хотите идентифицировать кого-то, возможно, вы захотите сохранить идентификационные данные, а также личные данные, такие как имя человека. Другие данные также могут быть интересны в зависимости от цели вашего приложения.
Плохая вещь в записи персональных данных заключается в том, что эта карта может быть потеряна, подвергая эту информацию лицу, которое может прочитать данные карты. Вот почему вы должны изменить ключи карты для повышения безопасности. Таким образом, третьему субъекту, который хочет проверить содержимое вашей карты, придется сначала выяснить значение ключа, и это, помимо возможного, не так тривиально.
Чтобы защитить значение ключа вместо его жесткого кодирования, вы можете работать с таблицами, загруженными в устройство чтения. У некоторых читателей есть область памяти (например, EEPROM), предназначенная для хранения значений ключей, и все, что вам нужно сделать, — это передать индекс нужного ключа.
Я не думаю, что использование UID карты — это хороший вариант, если вы думаете об обслуживании вашей системы. Если кто-то должен поменять карту, вам придется обновить базу данных. Преимущество вашего решения в том, что вам не нужно делать абсолютно никаких настроек для карты …
Поэтому, если вы не хотите записывать какие-либо данные на карту и хотите использовать ее UID для идентификации, даже не пытайтесь изменить ключ.
Надеюсь, это поможет!
Других решений пока нет …