2012-06-18 6 views
0

Я хочу создать новую службу WCF и клиент. 2 стороны свяжутся с использованием двухстороннего SSL.Использовать SSL только для аутентификации

Я хочу использовать SSL только для фазы аутентификации. После этой аутентификации шифрование не требуется. Могу ли я настроить службу (и клиент) на использование SSL только для аутентификации и оставить соединение незашифрованным (проблема с производительностью)?

ответ

1

Почему вы хотите оставить соединение незашифрованным после аутентификации?

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

Edit: Если вы используете сертификат он должен быть зашифрован все время, так как я знаю, что вы не можете сделать проверку подлинности с помощью сертификата, а затем вернуться к простому HTTP. WCF необходимо аутентифицировать клиента для каждого запроса (если бы не тот клиент, который мог получить сертификат на мгновение, а затем удалить его и использовать вашу службу WCF, как ничего не случилось, потому что больше не потребуется аутентификация, которая является ненормальной в вашей ситуации).

+0

Зачем мне передавать пользователя и передавать его? У нас нет этой информации вообще. Я просто хочу, чтобы сервисы (без пользователей) доверяли друг другу. – Matan

+0

Сертификаты - это учетные данные. – Matan

+0

@Mattan Почему пользователи должны продолжать доверять друг другу после обмена сертификатами, если транспорт не зашифрован? Где защита от MITM? – EJP

1

Если вы хотите выполнить аутентификацию с помощью сертификата клиента (что, я полагаю, вы имеете в виду с помощью «двухстороннего» SSL), вы можете использовать набор шифров с NULL-шифрованием, например. TLS_RSA_WITH_NULL_SHA.

В противном случае, если ваша схема аутентификации является частью прикладного уровня поверх SSL/TLS, вы должны обязательно рассмотреть возможность использования шифрования.

Обратите внимание, что с использованием TLS_RSA_WITH_NULL_SHA по-прежнему выполняется обмен ключами RSA в рукопожатии (даже если в конце концов не используется общий ключ шифрования). Согласование SSL/TLS является наиболее вычислительно интенсивной частью использования SSL/TLS. Фактическое шифрование не должно влиять на производительность почти так же, поэтому вы можете также оставить его.