Size: a a a

2021 June 12

SZ

Slava Zolotov in .NET Talks🎄
источник

AS

Andrew Shurunov in .NET Talks🎄
Попытались предоставить возможность безопасно хранить строки
Потом поняли что получилось так себе
источник

λР

λетучая Рыба... in .NET Talks🎄
источник

λР

λетучая Рыба... in .NET Talks🎄
А безопасно — это как?
источник

λР

λетучая Рыба... in .NET Talks🎄
источник

AS

Andrew Shurunov in .NET Talks🎄
Чтобы строка явно не хранилась в оперативке
источник

λР

λетучая Рыба... in .NET Talks🎄
RtlEncryptMemory and RtlDecryptMemory
источник

λР

λетучая Рыба... in .NET Talks🎄
источник

λР

λетучая Рыба... in .NET Talks🎄
слушай, а ведь это неплохая идея? как минимум, такая реализация усложнит атакующим жизнь, как, например, это делает обфускация — почему такой подход решили депрекейтнуть?
источник

AS

Andrew Shurunov in .NET Talks🎄
У меня ощущение, что микрософт не советует использовать это потому что она создаёт ложное ощущение безопасности. Хотя это все ещё немного лучше чем просто стринг
Вообще, в доке ссылка на такое описание: https://github.com/dotnet/platform-compat/blob/master/docs/DE0001.md
источник

IC

Ilya L Che in .NET Talks🎄
Разве сейчас нельзя подобное через обычные конфиги реализовать?
источник

λР

λетучая Рыба... in .NET Talks🎄
Конфиги?
источник

VZ

Vladimir Zenin in .NET Talks🎄
Ээ? Ну допустим у тебя менеджер паролей. Ты по запросу вытаскиваешь пароль и передаешь в буфер обмена. Допустим в ту же наносек пользователь его использовал.
Но он все еще висит в памяти
источник

λР

λетучая Рыба... in .NET Talks🎄
Don't use SecureString for new code. When porting code to .NET Core, consider that the contents of the array are not encrypted in memory. The general approach of dealing with credentials is to avoid them and instead rely on other means to authenticate, such as certificates or Windows authentication.

Понятно, они просто не доделали SecureString в .NET Core. И поэтому в security-critical сценариях рекомендуют отказываться от паролей вообще.
источник

IC

Ilya L Che in .NET Talks🎄
Securestring тоже не особо от такого защищает. Просто окно существования строки в plain text меньше.
источник

λР

λетучая Рыба... in .NET Talks🎄
When data is not needed anymore SecureString clears the memory used, by zeroing it. This means that data in not kept in memory space managed by dotnet, which is good since GarbageCollector doesn’t get to it.
источник

Lr

Larymar r.sorokin in .NET Talks🎄
Они чистят буфер
источник

IC

Ilya L Che in .NET Talks🎄
Открою страшную тайну, но большинство менеджеров паролей тоже не особо запаривается.
источник

O

Ortofax in .NET Talks🎄
уже порекомендовали отказаться от thread.abort
источник

O

Ortofax in .NET Talks🎄
и от использования доменов
источник