Защита данных в рамках одной программы - PullRequest
1 голос
/ 08 марта 2011

В Windows возможно ли защитить данные в рамках одной программы?Я смотрел в CryptProtectData, но я хотел бы что-то симулятивное, но на основе программы, на основе пользователя.В моей программе будет несколько пользователей, которым требуется доступ к одним и тем же данным, но данные являются отправительными, и я не хочу, чтобы кто-либо их читал.

Ответы [ 3 ]

0 голосов
/ 09 марта 2011

Прежде всего, если у вашего пользователя есть права администратора, нет определенного способа их отменить.

Во-вторых, даже если бы они этого не сделали, вам пришлось бы реализовать часть своего программного обеспечения по адресу ring 0 , так что он имел бы более высокие привилегии, чем пользователь, что усложняло бы его получить доступ к памяти процесса или исполняемым файлам. Затем вы можете зашифровать свои данные и расшифровать их, когда будете передавать их пользователю.

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

Обычно это сводится к предотвращению отладки или исправлений. Несколько советов здесь: http://www.woodmann.com/crackz/Tutorials/Protect.htm

0 голосов
/ 18 августа 2015

Если ваши пользователи не имеют прав администратора, то я бы сделал так, чтобы ваша программа создала учетную запись для своих собственных целей.Когда ваша программа создает свои файлы данных, она устанавливает ACL для этих файлов так, чтобы созданная ею учетная запись была единственной, у которой есть доступ к этим файлам.Всякий раз, когда вашей программе нужно было читать / записывать эти файлы, она должна была бы временно войти в систему, используя свою специальную учетную запись.Проблема заключается в том, чтобы сохранить учетные данные для этой учетной записи в секрете.Это совсем другая проблема.

0 голосов
/ 08 марта 2011

CryptProtectData (косвенно) использует учетные данные пользователя для шифрования данных.

В Windows (как и на большинстве других компьютерных платформ общего назначения) невозможно зашифровать данные для каждого отдельного приложения, поскольку компьютер принадлежит пользователям, а пользователь является главным, а не приложение,

Если вы не хотите, чтобы данные были доступны для пользователя (и других приложений, запущенных под учетной записью пользователя), вам необходимо переместить эти данные с компьютера, сохранить их в удаленной системе и контролировать пользователя.доступ к этим данным.

...