Почему бы не использовать сертификат клиента внутри хранилища сертификатов авторизованного хоста или внутри криптографического токена, такого как смарт-карта, который можно подключить к любому необходимому компьютеру?
Обновление: Следует принять во внимание, что уникальная идентификация компьютера означает получение чего-либо, находящегося на относительно низком уровне, недоступном для кода, встроенного в HTML-страницу (Javascript, не подписанный апплет или activeX) если вы не установили что-либо на нужный компьютер (или не выполнили что-либо с подписью, например, апплет или activeX).
Одна вещь, которая уникальна для каждого компьютера, - это MAC-адрес карты Ethernet, который почти повсеместен на каждом довольно современном (и не очень современном) компьютере. Однако это не может быть достаточно безопасным, поскольку многие карты позволяют менять свой MAC-адрес.
Раньше Pentium III имел уникальный серийный номер внутри процессора, который идеально подходил для вашего использования. Недостатком является то, что более новые процессоры не поставляются с такой вещью из-за проблем конфиденциальности большинства пользователей.
Вы также можете объединить многие элементы компьютера, такие как идентификатор процессора (модель, скорость и т. Д.), Модель материнской платы, место на жестком диске, установленная память и т. Д. Я думаю, что Windows XP использовала такой тип информации для передачи хеша для уникальной идентификации компьютера в целях активации.
Обновление 2: Жесткие диски также поставляются с серийными номерами, которые можно получить с помощью программного обеспечения. Здесь - пример того, как получить его для активации (ваш случай). Однако это будет работать, если sb переносит HD на другой компьютер. Тем не менее, вы все равно можете комбинировать его с более уникальными данными с компьютера (такими как MAC-адрес, как я уже говорил ранее). Я также добавил бы уникальный ключ, сгенерированный для пользователя и хранящийся в собственной базе данных (которую можно было бы получить в режиме онлайн с сервера) вместе с остальными, чтобы передать хеш-функцию , которая идентифицирует систему.