Модификация шифрования для приложения .NET rich client с сообщениями SOAP на внутренний сервер - PullRequest
0 голосов
/ 25 июня 2019

У нас есть старое клиентское приложение .NET, подключающееся к внутренним службам через SOAP с использованием SSL-шифрования. Имитируя атаку, я установил Burpsuite на локальную машину и перехватил трафик, изменил его и отправил в конечную точку (даже если он зашифрован с помощью SSL). Каков наилучший способ (самый быстрый / самый дешевый!) Для защиты приложения от такого рода уязвимостей?

1 Ответ

0 голосов
/ 25 июня 2019

Я думаю, что вы можете перехватить незашифрованный трафик, потому что Burp делает MITM SSL ... если кто-то может использовать burp на машине, это означает, что у него высокие привилегии ... так что это не вопрос безопасности приложения, а безопасности системы: низкая уровень привилегий пользователей, использующих клиент.

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

Вы можете оценить использование асимметричного шифрования: пара ключей с открытым и закрытым ключами. Вы можете зашифровать секреты с помощью открытого ключа в расширенном клиенте, и только сервер сможет расшифровать их с помощью закрытого ключа. Но это зависит от секретов, которые вы хотите защитить.

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

Но если кто-то может декомпилировать ваш богатый клиент, он может переписать ваш код и делать то, что он хочет!

...