Как использовать шифр AES 256 с HttpWebRequest - PullRequest
3 голосов
/ 12 марта 2011

Мое приложение .net 2.0 использует шифр AES 128 вместо 256 для запроса POST к сайту https, что приводит к сбою последнего.Как использовать шифр AES 256 для HttpWebRequest?

1 Ответ

5 голосов
/ 13 марта 2011

HttpWebRequest заботится о согласовании SSL / TLS, если вы обращаетесь к защищенному URL (https). Набор шифров, согласованный для сеанса, зависит от возможностей как клиента, так и сервера. Проще говоря, это происходит в следующих шагах:

  • Клиент подключается к серверу.
  • Клиент говорит привет и вместе с ним предоставляет свои возможности в виде набора криптографических алгоритмов (например, [RSA + AES128 + SHA1], [RSA + AES256 + SHA1], ...)
  • Сервер выбирает самый сильный «набор алгоритмов», который он поддерживает, и уведомляет клиента о том, что мы будем использовать этот набор для текущего сеанса.

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

Клиентская сторона

Поскольку вы используете HttpWebRequest, который внутренне использует API-интерфейсы Windows, вы зависите от API-интерфейсов Windows. Насколько я знаю, Windows XP и Windows Server 2003 не поддерживают новые вещи, такие как TLS 1.0, TLS 1.2, AES 256, SHA 256, ECC и т. Д. Для этого ваш клиент должен работать в Windows Vista, Windows 7 или Windows 2008

Серверная сторона

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

Совет

Используйте сетевой монитор, чтобы увидеть, что происходит за кулисами. Для этого вы можете использовать Wireshark или Microsoft Network Monitor .

...