Отпечатки устройств - сложная тема, если вы хотите охватить множество крайних случаев (например, обновления оборудования, обновления ОС и т. Д.) И если вы беспокоитесь о людях, которые тратят энергию, чтобы подделать заведомо хороший отпечаток устройства (хорошее значение отпечаток пальца известен вам и получает некоторую выгоду, такую как права на использование программного обеспечения), или создайте новый отпечаток пальца, о котором вы не знаете (например, отпечаток пальца был в каком-то черном списке, и пользователь хочет создать новое устройство Идентификатор устройства, которого нет в черном списке).
Некоторые вещи довольно статичны и являются разумной основой для простого отпечатка пальца. MAC-адрес лучше всего подходит для этой категории, но его также очень легко изменить. Кроме того, некоторые компьютеры имеют несколько MAC-адресов (в том числе MAC-адреса виртуальных машин), поэтому вам необходимо справиться с этой сложностью. Некоторые сетевые устройства эфемерны, например привязанный сотовый телефон.
Другие аспекты компьютера сложнее (но отнюдь не невозможно) подделать, такие как информация о процессоре, контрольная сумма BIOS, серийные номера жесткого диска и т. Д. Однако, такие вещи, как правило, сложнее подделать может измениться (обновление BIOS, новый жесткий диск, съемные жесткие диски и т. д.).
Вам также необходимо тщательно защитить код, который фактически генерирует отпечаток пальца. Если этот код легко (достаточно) взломать, кто-то, пытающийся победить ваше решение, просто вставит любой желаемый отпечаток пальца непосредственно в код, который собирает и оценивает компоненты.