2015-06-07 5 views
0

Im using System.Security.Cryptography.ProtectedData для защиты данных лицензии перед записью в реестр.Как работает System.Security.Cryptography.ProtectedData Уникальный идентификатор

ProtectData.Protect(Byte[], Byte[], DataProtectionScope.LocalMachine) 

The Dataprotection scope - LocalMachine.

Каковы параметры, которые ProtectData использует для шифрования строки? Если я скопирую зашифрованную строку на другую машину, она будет работать?

Некоторые пользователи сообщают о проблемах с лицензированием, является ли ProtectedData согласованным?

+0

Его оболочка для функции DPAPI CryptProtectData, много документации; https://msdn.microsoft.com/en-us/library/windows/desktop/aa380261%28v=vs.85%29.aspx –

+0

@AlexK. я посмотрел. Если я использую локальную область машины, изменится ли ключ, если пользователь изменит свой пароль или изменит оборудование или что-то еще? – techno

ответ

0

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

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

Зашифрованные данные могут быть дешифрованы только на том же компьютере, на котором он зашифрован.

DPAPI использует MasterKey (512 бит случайных данных) для генерации ключа сеанса для шифрования и дешифрования. Это означает, что он останется неповрежденным до переустановки ОС.

https://msdn.microsoft.com/en-us/library/ms995355.aspx

+0

Спасибо. Но я ищу более подробную информацию. Как этот метод учитывает аппаратные параметры аппаратных средств при шифровании? Если аппаратное обеспечение изменится, будет ли оно работать? – techno

+0

@techno Главный ключ и ключи сеанса представляют собой случайные сгенерированные ключи, что означает, что они не зависят от аппаратного обеспечения. Проверьте обновленный ответ. –

+0

okay.So, если я использую локальную область Масштаба, данные будут правильно дешифрованы, если ОС не будет переустановлена, если пользователь изменит пароль, это будет проблемой? – techno

0

отражатель показывает, что ProtectData.Protect в основном обертка для функции Crypt32.dll в CryptProtectData().

Из MSDN: (https://msdn.microsoft.com/en-us/library/windows/desktop/aa380261%28v=vs.85%29.aspx)

Функция CryptProtectData выполняет шифрование на данных в структуре с DATA_BLOB. Как правило, только пользователь с тем же именем входа , что и пользователь, который зашифровал данные, может расшифровать данные. В дополнении шифрование и дешифрование обычно должны выполняться на одном компьютере .

+0

Область LocalMachine связывает данные, зашифрованные с помощью текущего компьютера, а не с отдельным пользователем. Любой пользователь на компьютере, на котором вызывается CryptProtectData, может использовать CryptUnprotectData для дешифрования данных. –

Смежные вопросы