Вопрос про SSL

Тема в разделе "WASM.BEGINNERS", создана пользователем waxman2, 12 апр 2008.

  1. waxman2

    waxman2 New Member

    Публикаций:
    0
    Регистрация:
    2 апр 2008
    Сообщения:
    4
    Пару сетевых вопросов.

    1. Есть некий бинарный протокол, который стабильно и хорошо работает для связи клиент-сервер через интернет. Если его обернуть в SSL соединение, то какие могут возникнуть трудности? Может быть так что в результате чего-то SSL соединения на компьютере какого-то пользователя не будут работать?

    2. Если злоумышленник изменит адрес SSL соединения в программе-клиенте на свой, что это даст злоумышленнику; Можно ли будет узнать входящий и исходящий траффик, путем например постепенного анализа: изменить адрес SSL сервера на свой, законнектится к нему, - на сервере посмотреть какие данные клиент отправляет серверу. Потом делать свое SSL соединение, отдавать серверу данные полученные в прошлом шаге, посмотреть что ответит сервер и т.д.? Как SSL клиент проверяет что его коннект идет с доверенным сервером, а не с подделкой?

    Спасибо.
     
  2. Scratch

    Scratch New Member

    Публикаций:
    0
    Регистрация:
    1 янв 2005
    Сообщения:
    161
    Если использовать сертификаты, то клиент и сервер могут идентифицировать друг друга по ним (ищи с гугле авторизацию по клиентским ssl сертификатам), но ведь ничто не мешает злоумышленнику подменить сертификат на свой и дальше творить свои злодеяния. Можно сильно осложнить ему задачу, выполняя критичный код на сервере, тогда ему придется сильно потрудиться чтобы понять что к чему.
     
  3. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    Ему тогда придётся ещё и пропатчить клиентскую проверку сертификата.
     
  4. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    Если сервер не поддерживает https. На стороне клиента только одно может помешать - сертификаты.
    Тут длинная песня. Например, клиент желает использовать только подписанные сертификаты, а покупать их не хочет :)
     
  5. waxman2

    waxman2 New Member

    Публикаций:
    0
    Регистрация:
    2 апр 2008
    Сообщения:
    4
    Спасибо. Я попробую почитать про сертификаты.

    Но если мы имем допустим веб браузер, открваем в нем https://google.com. Каким образом конечный пользователь браузера может быть уверен в том, что это реальный google.com, а не подмененый где-то в пути с его компьютера?

    Можно ли в таком случае вообще подменить данные в SSL и получить ситуацию обмана?
     
  6. Scratch

    Scratch New Member

    Публикаций:
    0
    Регистрация:
    1 янв 2005
    Сообщения:
    161
    waxman2
    Когда ты открываешь https://какой нибудь сайт, и браузер не ругается, это значит что сертификат, по коророму работает этот сайт (и внутри которого в поле common name жестко прописано его доменное имя) подписан доверенным издателем, в случае с google это Thawte. Корневые сертификаты таких контор как Thawte, Verisign помещаются в виндовое хранилище, браузер при получении сертификата от сервера ищет в хранилище корневик, которым он подписан, проверяет цифровую подпись и если все ок, то не бухтит и пускает дальше. Если же корневого сертификата, которым подписан тот, что выдает браузер нет в хранилище, то увы и ах.
    Можно сгенерить свой самоподписанный сертификат, установить его в хранилище винды, и тогда он будет корневым доверенным.
     
  7. Scratch

    Scratch New Member

    Публикаций:
    0
    Регистрация:
    1 янв 2005
    Сообщения:
    161
    Поэтому, кстати, при заходе на https://google.com он ругается. потому что в сертификате прописано www.google.com, а это две разные вещи. Конечно же можно приобрести сертификат типа *.google.com, такие сертификаты называются wildcard
     
  8. Scratch

    Scratch New Member

    Публикаций:
    0
    Регистрация:
    1 янв 2005
    Сообщения:
    161
    не обязательно, если на его сервере будет его корневик, которым этот сертификат подписан )
     
  9. KeSqueer

    KeSqueer Сергей

    Публикаций:
    0
    Регистрация:
    19 июл 2007
    Сообщения:
    1.183
    Адрес:
    Москва
    На васме так же))
     
  10. waxman2

    waxman2 New Member

    Публикаций:
    0
    Регистрация:
    2 апр 2008
    Сообщения:
    4
    Scratch, спасибо за объяснение.

    Но опять я не понял: браузер посылает запрос на https google, а я где-то в это время перенаправляю этот запрос и своим сервером отдаю сертификат, который отдает google.com. В результате этого получится подмена или это как-то контроллируется?
     
  11. Scratch

    Scratch New Member

    Публикаций:
    0
    Регистрация:
    1 янв 2005
    Сообщения:
    161
    waxman2
    нифига не получится. Ты отдашь чей сертификат? Свой, потому что гугловский ты отдать не можешь. Помимо сертификата, который ты видишь, есть еще закрытый ключ, которым гугл расшифровывает заросы, зашифрованные по открытому ключу, хранящимуся в сертификате. А раз ключа у тебя нет, то ты обламаешься. Если же ты подсунешь самосгенеренный сертификат, то его подпись будет далека от подписи thawte, и браузер ругнется. Что и требовалось доказать