Есть ли способ отличить две машины по серийному номеру процессора или другому уникальному идентификатору, доступному в пространстве пользователя?
Ответ нет .И подумайте о важном аспекте: ядро - это свободное программное обеспечение .Если он каким-то образом выводит серийный идентификатор (например, 0123456789
) (для пользователя, это означает, что через некоторые из syscalls (2) ) и если я знаю, что ваше приложение ожидает, чтоid на компьютере A, я мог бы взломать мое ядро, работающее на компьютере B, чтобы вывести именно то, что 0123456789
в той же ситуации.
Другими словами, не только ответ отрицательный, но и любой умный пользователь Linux (способныйизменения нескольких строк в исходном коде ядра) может взломать и перекомпилировать его ядро, чтобы получить тот же эффект, какой вы хотите.
Так что вам нужно отказаться от своих глупых мечтаний или отказаться от использования Linux..
Подробнее о Trusted Computing Base и Модуль аппаратного обеспечения безопасности (вам может потребоваться один и предоставить такое оборудование своим клиентам; оно может быть настолько дешевым, как некоторые смарт-карта ).Этот HSM - это какое-то активное аппаратное устройство, которое может вести себя следующим образом: ваше приложение отправляет случайное 12865
число, оно возвращает некоторое 89621
число от HSM, поэтому оно может проверить, что HSM являетсяподлинный (поскольку вычисления в HSM совпадают с вычислениями в вашем приложении) с использованием некоторой криптографии с открытым ключом .
Возможно, вам нужен какой-то способ аутентификации юзабилити вашего программного обеспечения.Вы можете купить и использовать сервер лицензий на программное обеспечение .
На практике, на профессиональных заседаниях (например, во всех корпорациях), которые могут оказаться не очень полезными.Для этого есть социальная причина: у (не крошечной) корпорации X есть сотрудники.Они могли бы выйти.Затем они могли бы написать в какой-либо орган (или поставщика программного обеспечения) о том, что X не уважает лицензии на программное обеспечение.Это может повлечь за собой некоторые судебные преследования (которые являются дорогостоящими для корпораций), или какой-то огромный штраф против корпорации X, или очень плохую репутацию для X (например, квалифицированные специалисты не захотят работать на X).Таких социальных причин достаточно, чтобы компании серьезно относились к лицензиям на программное обеспечение.Таким образом, технические средства для обеспечения соблюдения лицензий на программное обеспечение не очень полезны (часто достаточно правовых и социальных средств).