Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Войти
 
Страницы: 1
RSS
Защита веб-сервиса с помощью HTTPS, Теоретический вопрос
 
Доброго времени суток.

Теоретический вопрос о работе протокола HTTPS и достаточности защиты веб-сервиса.

Диспозиция:
Сервер под управлением Windows Server 2008 R2 находится вне корпоративной сети и используется для передачи данных между нами и поставщиками. На сервере запущен SOAP 1.2 веб-сервис, созданный на платформе WCF и крутящийся под IIS 7.5. Сервис оперирует конфиденциальными данными, поэтому решено было использовать протокол HTTPS для защиты от перехвата трафика.

Сомнения:
Пусть сервер использует сертификат, заверенный ЦС (CA). Если я правильно понял механизм работы HTTPS, то сертификат сервера содержит закрытый и открытый ключи. При соединении клиент получает открытый ключ и использует его для шифрования данных, которые он отправляет на сервер. При этом расшифровать сообщение, зашифрованное открытым ключом, можно только секретным ключом, который хранится на сервере в сейфе и охраняется ротой солдат.

Вопрос 1:
Хорошо, с исходящим трафиком от клиента к серверу все ясно - зашифрован.
А что насчет трафика в обратном направлении? Каким образом защищены сообщения от сервера к клиенту (т.е. ответ сервиса на запрос клиента)?
Что если сервис возвращает клиенту конфиденциальные данные - будут ли они защищены? Ведь у клиента нет сертификата, нет пары секретный-открытый ключ для шифрования и расшифровки.
Вопрос 2:
Правильно ли я понимаю, что HTTPS решает две проблемы:
- Клиент, благодаря тому, что открытый ключ сервера подписан ЦС (CA), точно знает, что он соединяется с нашим сервером, а не со злоумышленником.
- Весь трафик (в том числе и от сервера к клиенту - см. 1 вопрос) шифруется на транспортном уровне, что защищает нас от атак вида man-in-the-middle.

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


Сервер     Пользователь
Открытый_Сервера      Открытый_Пользователя
Закрытый_Сервера      Закрытый Пользователя
Открытый_Пользователя      Открытый_Сервера

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

Теоритическая атаки mim для https:

Сервер      Злоумышленник      Пользователь

Открытый_Сервера      Открытый_Злоумышленника      Открытый_Пользователя
Закрытый_Сервера      Закрытый_Злоумышленника      Закрытый Пользователя
Открытый_Злоумышленника Открытый_Сервера      Открытый_Злоумышленника
Пусто                                             Открытый_Клиента      Пусто

Злоумышленник сведёт все соединения на себя: будет расшифровывать все сообщения от пользователя своим закрытым ключом и потом шифровать открытым сервера и отдавать серверу. аналогично от сервера расшифровывает своим закрытым ключом и потом шифровать открытым клиента и отдавать клиенту.
но скорее всего тут возникнут проблемы при получении сертификата от сервера для клиента: он будет не подписан CA, но обычному пользователю на это пофиг.
Изменено: [mad]Mega - 07.02.2013 09:43:02
 
Спасибо за ответ.
Если кому интересно нашел ответ на свой вопрос в сети:
Вот последовательность работы сервера и клиента при установке SSL соединения:

1 The user's Web browser contacts the server using a secure URL.
2 The IIS server sends the browser its public key and server certificate.
3 The client and server negotiate the level of encryption to use for the secure communications.
4 The client browser encrypts a session key with the server's public key and sends the encrypted data back to the server.
5 The IIS Server decrypts the message sent by the client using its private key, and the session is established.
6 Both the client and the server use the session key to encrypt and decrypt transmitted data.


Т.е. клиент создает ключ сессии и отправляет его серверу, предварительно зашифровав открытым ключом. Далее защита сообщений происходит с помощью этого ключа. Следовательно данные защищены в обоих направлениях - от сервера к клиенту и от клиента к серверу.
 
Ну и как дополнительный совет- отключите возможность передачи данных по HTTP протоколу. Ssl strip довольно простой, и крайне действенный метод, в условиях изначального mitm траффик можно редактировать, а следовательно подменить https, на простой http и отдать для затравки бдительности favicon с логотипом замочка, вы то на такое может и не купитесь - а вот ваши клиенты с большой вероятностью могут.
 
полезная инфа спс, у меня у знакомых взломали, хоть и не мой сайт но переживания были
Страницы: 1
Читают тему