Защитите конфиденциальные данные в памяти с использованием C#C#

Место общения программистов C#
Ответить
Anonymous
 Защитите конфиденциальные данные в памяти с использованием C#

Сообщение Anonymous »

У меня есть приложение C#, которое инициализирует некоторые переменные с конфиденциальными данными. Они не пароль, но мы считаем их чувствительными. Значения переменных, которые я хочу защитить, - это все типа строки. < /P>
Я пытаюсь найти механизм (я знаю, что нет 100% механизма), который позволяет мне защищать значения переменных в памяти или, по крайней мере, чтобы злоумышленники были немного сложнее читать их. Таким образом, я могу защитить конфиденциальные данные в памяти моего приложения и сделать их более «нечитаемым» любым другим приложением, которое может проследить, сбрасывать или читать мое приложение во время выполнения. < /P>
Я вижу, что существует API Microsoft Data Protection API (DPAPI), который имеет класс, называемый ProtectectMemory, который предлагает два метода защиты и неконтролируемость, вот пример. Говорит здесь, так как это не полезно.
Другие люди здесь вместо этого предлагают хэшировать их с хорошей функцией (например, SHA1/2) и сохраните дайджест.
Как ниже: < /p>
public static MyClass
{
private string MyVariable
{
get
{
return Encoding.UTF8.GetString(ProtectedMemory.Unprotect(_myVariable, MemoryProtectionScope.SameLogon));
}
set
{
_myVariable = Encoding.UTF8.GetBytes(value);
ProtectedMemory.Protect(_myVariable, MemoryProtectionScope.SameLogon);
}
}

private byte[] _myVariable;
}
< /code>
и то же самое для остальной части моих строковых переменных. < /p>
Я хотел сделать то же самое, что и этот парень в его посте, но некоторые люди там говорят Перемещение защищенной памяти из частного поля поддержки в свойство не поможет (я не уверен, на что он ссылается, если использование свойства не защищено еде?). Не могли бы вы также подтвердить меня, если использование частного свойства для моих переменных будет защищено в памяти или нет? < /P>
Так как же я могу это сделать? Может ли кто -нибудь предоставить простой фрагмент кода? Процесс шифрования/дешифрования должен быть относительно быстрым.
Я не хочу использовать какую-либо стороннюю помощь, только справка ОС и .NET Framework.

Подробнее здесь: https://stackoverflow.com/questions/759 ... ng-c-sharp
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»