Доброго времени суток.
Теоретический вопрос о работе протокола HTTPS и достаточности защиты веб-сервиса.
Диспозиция:
Сервер под управлением Windows Server 2008 R2 находится вне корпоративной сети и используется для передачи данных между нами и поставщиками. На сервере запущен SOAP 1.2 веб-сервис, созданный на платформе WCF и крутящийся под IIS 7.5. Сервис оперирует конфиденциальными данными, поэтому решено было использовать протокол HTTPS для защиты от перехвата трафика.
Сомнения:
Пусть сервер использует сертификат, заверенный ЦС (CA). Если я правильно понял механизм работы HTTPS, то сертификат сервера содержит закрытый и открытый ключи. При соединении клиент получает открытый ключ и использует его для шифрования данных, которые он отправляет на сервер. При этом расшифровать сообщение, зашифрованное открытым ключом, можно только секретным ключом, который хранится на сервере в сейфе и охраняется ротой солдат.
Вопрос 1:
Хорошо, с исходящим трафиком от клиента к серверу все ясно - зашифрован.
А что насчет трафика в обратном направлении? Каким образом защищены сообщения от сервера к клиенту (т.е. ответ сервиса на запрос клиента)?
Что если сервис возвращает клиенту конфиденциальные данные - будут ли они защищены? Ведь у клиента нет сертификата, нет пары секретный-открытый ключ для шифрования и расшифровки.
Вопрос 2:
Правильно ли я понимаю, что HTTPS решает две проблемы:
- Клиент, благодаря тому, что открытый ключ сервера подписан ЦС (CA), точно знает, что он соединяется с нашим сервером, а не со злоумышленником.
- Весь трафик (в том числе и от сервера к клиенту - см. 1 вопрос) шифруется на транспортном уровне, что защищает нас от атак вида man-in-the-middle.
Спасибо за Ваши ответы.
Теоретический вопрос о работе протокола HTTPS и достаточности защиты веб-сервиса.
Диспозиция:
Сервер под управлением Windows Server 2008 R2 находится вне корпоративной сети и используется для передачи данных между нами и поставщиками. На сервере запущен SOAP 1.2 веб-сервис, созданный на платформе WCF и крутящийся под IIS 7.5. Сервис оперирует конфиденциальными данными, поэтому решено было использовать протокол HTTPS для защиты от перехвата трафика.
Сомнения:
Пусть сервер использует сертификат, заверенный ЦС (CA). Если я правильно понял механизм работы HTTPS, то сертификат сервера содержит закрытый и открытый ключи. При соединении клиент получает открытый ключ и использует его для шифрования данных, которые он отправляет на сервер. При этом расшифровать сообщение, зашифрованное открытым ключом, можно только секретным ключом, который хранится на сервере в сейфе и охраняется ротой солдат.
Вопрос 1:
Хорошо, с исходящим трафиком от клиента к серверу все ясно - зашифрован.
А что насчет трафика в обратном направлении? Каким образом защищены сообщения от сервера к клиенту (т.е. ответ сервиса на запрос клиента)?
Что если сервис возвращает клиенту конфиденциальные данные - будут ли они защищены? Ведь у клиента нет сертификата, нет пары секретный-открытый ключ для шифрования и расшифровки.
Вопрос 2:
Правильно ли я понимаю, что HTTPS решает две проблемы:
- Клиент, благодаря тому, что открытый ключ сервера подписан ЦС (CA), точно знает, что он соединяется с нашим сервером, а не со злоумышленником.
- Весь трафик (в том числе и от сервера к клиенту - см. 1 вопрос) шифруется на транспортном уровне, что защищает нас от атак вида man-in-the-middle.
Спасибо за Ваши ответы.