У сайта domain.com есть Thawte SSL сертификат.
Обычная схема - у клиента сертификата нет, он просто заходит на сайт и если сертификат поддельный видит что этому сайту нельзя доверять.
Браузер клиента запрашивает IP домена domain.com у DNS, устанавливает соединение с этим IP и получает открытый ключ и сертификат, а далее браузер проверяет подлинность сертификата... объясните пожалуйста как?
> Браузер клиента запрашивает IP домена domain.com у DNS, устанавливает соединение с этим
> IP и получает открытый ключ и сертификат, а далее браузер проверяет
> подлинность сертификата... объясните пожалуйста как?https://developer.mozilla.org/en/Introduction_to_SSL Читаем и объясняем для себя - как и что.
>> Браузер клиента запрашивает IP домена domain.com у DNS, устанавливает соединение с этим
>> IP и получает открытый ключ и сертификат, а далее браузер проверяет
>> подлинность сертификата... объясните пожалуйста как?
> https://developer.mozilla.org/en/Introduction_to_SSL Читаем и объясняем для себя -
> как и что.спасибо. а можно в двух словах суть? верно ли что сертификаты от центров нужны только чтобы удостовериться что DNS выдал верный IP и мы попали на реальный сайт, а не фишинговый?
> спасибо. а можно в двух словах суть? верно ли что сертификаты от
> центров нужны только чтобы удостовериться что DNS выдал верный IP и
> мы попали на реальный сайт, а не фишинговый?Cертификат выдает не Центр. Сертификат выдает сервер (который ДО этого получил сертификат у CA - за определенные деньги), клиент же, получив сертификат, шлет запрос одному из CA (который указана в сертификате) на получение подтверждения, что сервер, который выдал сертификат является именно тем, за кого себя выдает. Собственно, на этом построен бизнес этих самых CA. На одном из таких (Thawte) небезызвестный Шаттлворт сделал очень большие деньги. Потом он продал бизнес не менее известной VeriSign. Простите за оффтоп.
Думаю, так. :) Или надо еще подробнее? Более подробнее - не интересовался. На всякий случай замечу, что есть еще самоподписанные сертификаты. Сгенерированные на самом сервере и не подписанные CA. Доверять им или нет - личное дело пользователя.
>[оверквотинг удален]
> сертификат у CA - за определенные деньги), клиент же, получив сертификат,
> шлет запрос одному из CA (который указана в сертификате) на получение
> подтверждения, что сервер, который выдал сертификат является именно тем, за кого
> себя выдает. Собственно, на этом построен бизнес этих самых CA. На
> одном из таких (Thawte) небезызвестный Шаттлворт сделал очень большие деньги. Потом
> он продал бизнес не менее известной VeriSign. Простите за оффтоп.
> Думаю, так. :) Или надо еще подробнее? Более подробнее - не интересовался.
> На всякий случай замечу, что есть еще самоподписанные сертификаты. Сгенерированные на
> самом сервере и не подписанные CA. Доверять им или нет -
> личное дело пользователя.это я все знаю, это и так понятно. вопрос как технически это происходит? в чем защита? ведь клиент не получает закрытого ключа, он получает данные доступные любому, кто зашел на сайт, и если сайт поддельный то он даст те же данные сертификата, и браузер запросив подтверждение у CA так же получит положительный ответ.
В же чем защита?
>[оверквотинг удален]
>> Думаю, так. :) Или надо еще подробнее? Более подробнее - не интересовался.
>> На всякий случай замечу, что есть еще самоподписанные сертификаты. Сгенерированные на
>> самом сервере и не подписанные CA. Доверять им или нет -
>> личное дело пользователя.
> это я все знаю, это и так понятно. вопрос как технически это
> происходит? в чем защита? ведь клиент не получает закрытого ключа, он
> получает данные доступные любому, кто зашел на сайт, и если сайт
> поддельный то он даст те же данные сертификата, и браузер запросив
> подтверждение у CA так же получит положительный ответ.
> В же чем защита?в сертификате указан публичный ключ который и будет использовать клиент и что бы им что-то правильно расшифровать, нужно что бы сервер шифровал правильным закрытым ключом
>[оверквотинг удален]
>>> личное дело пользователя.
>> это я все знаю, это и так понятно. вопрос как технически это
>> происходит? в чем защита? ведь клиент не получает закрытого ключа, он
>> получает данные доступные любому, кто зашел на сайт, и если сайт
>> поддельный то он даст те же данные сертификата, и браузер запросив
>> подтверждение у CA так же получит положительный ответ.
>> В же чем защита?
> в сертификате указан публичный ключ который и будет использовать клиент и что
> бы им что-то правильно расшифровать, нужно что бы сервер шифровал правильным
> закрытым ключом.... т.е. поддельному сайту нужно иметь приватный(закрытый) ключ, соответствующий сертификату. А закрытый ключ, как уже было выше замечено, "клиент не получает", т.е. по сети не передается.
Да вот тут описаны все 5 этапов сего действа - https://developer.mozilla.org/en/Introduction_to_SSL#Server_... В более подробном виде.
> это я все знаю, это и так понятно. вопрос как технически это
> происходит? в чем защита? ведь клиент не получает закрытого ключа, он
> получает данные доступные любому, кто зашел на сайт, и если сайт
> поддельный то он даст те же данные сертификата, и браузер запросив
> подтверждение у CA так же получит положительный ответ.
> В же чем защита?Уже всё разъяснили, попробую ещё проще.
Сервер присылает свой сертификат, в котором помимо своего открытого ключа есть цифровая подпсь CA, где закрытым ключем CA зашифровано: "Верь, Вася. Это в самом деле ключ сайта pupkin.ru"
Клиент в своей базе находит открытый ключ CA и расшифровывает эту сигнатуру.
>> спасибо. а можно в двух словах суть? верно ли что сертификаты от
>> центров нужны только чтобы удостовериться что DNS выдал верный IP и
>> мы попали на реальный сайт, а не фишинговый?
> Cертификат выдает не Центр. Сертификат выдает сервер (который ДО этого получил
> сертификат у CA - за определенные деньги), клиент же, получив сертификат,
> шлет запрос одному из CA (который указана в сертификате) на получение
> подтверждения, что сервер, который выдал сертификат является именно тем, за кого
> себя выдает.ну и зачем вводить в заблуждение?
Клиент, получив сертификат, используя имеющуюся у себя базу корневых сертификатов, проверяет валидность сертификата. Валидность - это степень доверия, определяется, действительно ли подписан ли полученный сертификат корневым или нет. Если подписан, то тогда "типа да, доверяем".
Кроме этой проверки, есть еще проверка на отозванность сертификата, которая да, осуществляется путем отправки запроса на получение списка CRL - certificate revocation list-а, т.е. списка отзыва сертификатов. При этом полученный сертификат не должен быть отозван, отозван - значит не действителен, не доверяем.
> Собственно, на этом построен бизнес этих самых CA.
Кроме денег за выдачу, ЦА может брать деньги за отзыв сертификата (за размещение в CRL) =)
> На одном из таких (Thawte) небезызвестный Шаттлворт сделал очень большие деньги. Потом
> он продал бизнес не менее известной VeriSign. Простите за оффтоп.
> Думаю, так. :) Или надо еще подробнее? Более подробнее - не интересовался.
> На всякий случай замечу, что есть еще самоподписанные сертификаты. Сгенерированные на
> самом сервере и не подписанные CA. Доверять им или нет -
> личное дело пользователя.
> ну и зачем вводить в заблуждение?
> Клиент, получив сертификат, используя имеющуюся у себя базу корневых сертификатов, проверяет
> валидность сертификата. Валидность - это степень доверия, определяется, действительно
> ли подписан ли полученный сертификат корневым или нет. Если подписан, то
> тогда "типа да, доверяем".Я правильно понял Вашу мысль? То есть - клиент ВООБЩЕ не обращается к CA, у которого запрашивает достоверность полученного сертификата? А сравнивает с некой своей базой сертфикатов, хранящихся у самого клиента (в браузере)? По-моему, Вы не правы. Но спорить не буду - просто не интересовался подробностями.
>> ну и зачем вводить в заблуждение?
>> Клиент, получив сертификат, используя имеющуюся у себя базу корневых сертификатов, проверяет
>> валидность сертификата. Валидность - это степень доверия, определяется, действительно
>> ли подписан ли полученный сертификат корневым или нет. Если подписан, то
>> тогда "типа да, доверяем".
> Я правильно понял Вашу мысль? То есть - клиент ВООБЩЕ не
> обращается к CA, у которого запрашивает достоверность полученного сертификата? А сравнивает
> с некой своей базой сертфикатов, хранящихся у самого клиента (в браузере)?
> По-моему, Вы не правы.сначала проверяет по внутренней базе.
а иначе откуда он будет знать, как обратиться к СА ?> Но спорить не буду - просто не интересовался подробностями.
обращается за проверкой по CRL.
> сначала проверяет по внутренней базе.
> а иначе откуда он будет знать, как обратиться к СА ?Список CA есть в каждом браузере - называются CTL - Certificate Trust Lists. Оттуда и знает. Кроме того - имя CA есть в самом сертификате, который посылает сервер на этапе хэндшейкинга (первичной фазы SSL-сеанса).
> обращается за проверкой по CRL.
CRL - проверка не действенность (неотозванность) сертификата - всего лишь одна из фаз проверки. В описании выше я о ней не указал - согласен. :) Просто забыл.
Дядь Федор.
Открытые ключи CA общеизвестны и хранятся локально в браузере и/или ОС, поэтому для проверки подписи CA обращаться к нему лично нет необходимости и браузеры обычно этого не делают. Тобиш, SSL будет работать, даже если сам CA недоступен.
Остается упомянутый выше механизм CRL. ;) Вот тут уж никуда без запроса.
> Остается упомянутый выше механизм CRL. ;) Вот тут уж никуда без запроса.Вот уж я сомневаюсь, что CRL засасывается Вашим компом у CA всякий раз, когда Вы открываете https-ный сайт. Читайте, как обновляется CRL в Windows.
> Вот уж я сомневаюсь, что CRL засасывается Вашим компом у CA всякий
> раз, когда Вы открываете https-ный сайт. Читайте, как обновляется CRL в
> Windows.Не всякий. Но засасывается. http://blogs.technet.com/b/pki/archive/2007/09/13/how-to-ref...