Вопрос, о котором я хотел бы обсудить.Клиент C# - защита маркеров аутентификации REST на клиентской машине
У нас есть службы REST (WCF), которые после входа в систему - маркер получен и отправлен клиенту. HTTPS, конечно, определен.
каждый запрос отправляет этот токен в заголовке «Авторизация».
Дело в том, что если кто-то сбрасывает память, он сможет получить токен и использовать его по своему усмотрению.
мы можем защитить этот токен только до отправки, так как нам нужно преобразовать его в строку C#, которая не может быть явно удалена.
так, есть 2 проблемы с этим подходом:
- мусорным перемещается коллектор управляемых объектов, и эта строка может быть продублирована в памяти
- строки управляется с внутренней таблицей. они являются неизменными и не могут быть очищены по запросу.
Есть ли рекомендованный способ крепления токена? возможно, буферизация заголовков каждый запрос 1 символ за раз?
Хотел бы услышать ваши мысли.
Привет, я обновлю - я клиент. HTTPS уже определен по умолчанию. поэтому я боюсь, что кто-то сбросит память. защищенная строка не поможет, поскольку она зашифрована локально и не может быть отправлена на сервер ... – ArielB
и о вашем втором решении DAPI - как только секрет хранится в строке C#, он уязвим для дампов памяти – ArielB
As Я сказал, что если вы скомпрометированы сервером, то меньше всего вы беспокоитесь о дампах памяти, это часть Microsoft Data Protection API, поэтому технически это не мое решение. Большинство этих файлов cookie, которые вы видите в обратном направлении из решений ASP.NET, сводятся к DPAPI. Как клиент, вы не можете многое сделать. Если пользовательская машина скомпрометирована, то это действительно ее конец, независимо от того, что вы попробуете, кто-то определил достаточно, найдет его. То есть если у меня достаточно контроля над машиной, чтобы сделать дамп памяти, мне будет достаточно, чтобы отменить прокси-сервер с помощью поддельных сертификатов и по-прежнему сделать SSL бесполезным. –