Почему мой браузер считает, что https://1.1.1.1 безопасен?

133

Когда я захожу на https://1.1.1.1 , любой веб-браузер, который я использую, считает URL-адрес безопасным.

Вот что показывает Google Chrome:

В адресной строке Google Chrome 65.0.3325.181 отображается https://1.1.1.1

Обычно, когда я пытаюсь зайти на сайт HTTPS через его IP-адрес, я получаю предупреждение системы безопасности, подобное этому:

В адресной строке Google Chrome 65.0.3325.181 отображается https://192.168.0.2

Насколько я понимаю, сертификат сайта должен соответствовать домену, но средство просмотра сертификатов Google Chrome не показывает 1.1.1.1:

Просмотр сертификата: * .cloudflare-dns.com

Статья базы знаний GoDaddy «Могу ли я запросить сертификат для имени в интрасети или IP-адреса?» говорит:

Нет - мы больше не принимаем запросы на сертификаты для имен в интрасети или IP-адресов. Это отраслевой стандарт , а не специфичный для GoDaddy.

( акцент мой)

А также:

В результате с 1 октября 2016 года центры сертификации (ЦС) должны отзывать сертификаты SSL, использующие имена интрасети или IP-адреса .

( акцент мой)

А также:

Вместо того чтобы защищать IP-адреса и имена в интрасети, вам следует перенастроить серверы для использования полных доменных имен (FQDN), таких как www.coolexample.com .

( акцент мой)

Это произошло после обязательной даты отзыва 01 октября 2016 года, но сертификат 1.1.1.1был выпущен 29 марта 2018 года (показано на скриншоте выше).


Как это возможно, что все основные браузеры считают, что https://1.1.1.1 является доверенным веб-сайтом HTTPS?

Deltik
источник
10
Стоит отметить, что между 192.168.0.2 и 1.1.1.1 существует огромная разница. Один 192.168.0.2не существует за пределами вашей локальной сети. Если бы вы создали свой собственный самозаверяющий сертификат 192.168.0.2, вам доверяли бы, и вы могли бы использовать тот же подход для SAN, например, в домене fake.domain. Стоит отметить, что 1.1.1.1это не зарезервированный IP-адрес, поэтому, похоже, любой ЦС выпустил бы сертификат.
Ramhound
12
blog.cloudflare.com/announcing-1111 «Сегодня мы рады сделать еще один шаг к этой миссии, запустив 1.1.1.1 - самую быструю и
11
Я думаю, что вы ошибаетесь в предложении. Вероятно, они имели в виду «должны отзывать сертификаты SSL, которые используют интрасеть (имена или IP-адреса)», а не «должны отзывать сертификаты SSL, которые используют (имена интрасети) или IP-адреса».
Мацей Пехотка
1
@MaciejPiechotka правильно, это означает, что «должен отзывать сертификаты SSL, которые используют имена в интрасети или IP-адреса в интрасети»
Бен
2
Кстати ... нет такой вещи, как обязательный отзыв. Буквально ни одна организация на Земле не обладает такой властью. Самое близкое, что вы получите - это группа СА, согласившихся что-то сделать.
cHao

Ответы:

95

Английский неоднозначен . Вы анализировали это так:

(intranet names) or (IP addresses)

т.е. запретить использование числовых IP-адресов полностью. Значение, которое соответствует тому, что вы видите:

intranet (names or IP addresses)

т.е. запретить сертификаты для частных диапазонов IP-адресов, таких как 10.0.0.0/8, 172.16.0.0/12 и 192.168.0.0/16, а также для частных имен, которые не отображаются в общедоступном DNS.

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


Это утверждение является советом, а не утверждением, что вы не можете защитить (публичный) IP-адрес.

Вместо того, чтобы защищать IP-адреса и имена в интрасети, вы должны перенастроить серверы для использования полных доменных имен (FQDN), таких как www.coolexample.com

Может быть, кто-то в GoDaddy неверно истолковал формулировку, но, скорее всего, он хотел, чтобы их советы были простыми, и хотел рекомендовать использовать публичные DNS-имена в сертификатах.

Большинство людей не используют стабильный статический IP для своих услуг. Предоставление услуг DNS - это единственный случай, когда действительно необходимо иметь стабильный общеизвестный IP-адрес, а не просто имя. В остальных случаях включение вашего текущего IP-адреса в ваш сертификат SSL ограничит ваши будущие возможности, потому что вы не можете позволить кому-то другому начать использовать этот IP-адрес. Они могут выдать себя за ваш сайт.

Cloudflare.com имеет контроль в 1.1.1.1 IP - адрес себя, и не собирается делать ничего другого с ним в обозримом будущем, так что имеет смысл для них , чтобы поместить их IP в их серт. Особенно в качестве поставщика DNS , более вероятно, что клиенты HTTPS будут посещать их URL по номеру, чем для любого другого сайта.

Питер Кордес
источник
5
Это точно отвечает, почему я был смущен. Я отправил предложение в GoDaddy, чтобы улучшить формулировку статьи . Надеемся, что они исправят это, чтобы уточнить «(внутреннее имя сервера) или (зарезервированный IP-адрес)», как описано на CAB Forum .
Дельтик
14
Педантично, Cloudflare не «владеет» адресом 1.1.1.1. Он принадлежит APNIC Labs , которая дала Cloudflare разрешение на работу там DNS-распознавателя в обмен на помощь Cloudflare в изучении большого количества мусорных пакетов, которые по ошибке адресованы этому IP .
Кевин
12
Педантически @Kevin, APNIC тоже не владеет. В этой статье упоминается вопрос о праве собственности и используется фраза «выделено». IANA, часть ICANN, выделил диапазон адресов APNIC, который выделил такие адреса для Cloudflare. Адреса IPv4 - это просто причудливый способ записи числа от 0-4294967296 (если вы пингуете 16843009 во многих операционных системах, вы обнаружите, что получаете ответ от 1.1.1.1), и США не признают, что владеют номером (следовательно, почему название "Pentium" было сделано)
TOOGAM
5
Дело в Intel было товарным знаком, а не владельцем ...
StarWeaver
3
@TOOGAM: я имею в виду, что в системе whois, которую я специально связал, 1.1.1.1 выделена для APNIC Labs. Если вы собираетесь выбирать между распределением и владением, не переворачивайте значение «выделено».
Кевин
102

Документация GoDaddy ошибочна. Неверно, что центры сертификации (CA) должны отзывать сертификаты для всех IP-адресов ... только зарезервированные IP-адреса .

Источник: https://cabforum.org/internal-names/

Центром сертификации для https://1.1.1.1 был DigiCert , который на момент написания этого ответа позволял покупать сертификаты сайта для публичных IP-адресов.

В DigiCert есть статья об этом, которая называется « Выпуск сертификата SSL имени внутреннего сервера после 2015 года» :

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

( акцент мой)

Cloudflare просто получил сертификат для своего IP-адреса 1.1.1.1от этого доверенного CA.

Анализ сертификата для https://1.1.1.1 показывает, что сертификат использует альтернативные имена субъектов (SAN) для охвата некоторых IP-адресов и обычных доменных имен:

deltik@node51 [~]$ openssl s_client -showcerts -connect 1.1.1.1:443 < /dev/null 2>&1 | openssl x509 -noout -text | grep -A1 'Subject Alternative Name:'
            X509v3 Subject Alternative Name: 
                DNS:*.cloudflare-dns.com, IP Address:1.1.1.1, IP Address:1.0.0.1, DNS:cloudflare-dns.com, IP Address:2606:4700:4700:0:0:0:0:1111, IP Address:2606:4700:4700:0:0:0:0:1001

Эта информация также находится в средстве просмотра сертификатов Google Chrome на вкладке «Сведения»:

Просмотр сертификата: Подробности: * .cloudflare-dns.com

Этот сертификат действителен для всех перечисленных доменов (включая подстановочный знак *) и IP-адресов.

Deltik
источник
Ваша ссылка на статью не работает. Лучше всего процитировать соответствующую информацию.
Ramhound
11
Я думаю, что это не так сильно, как заблуждение. Он должен быть заключен в скобки: «должен отзывать сертификаты SSL, которые используют интрасеть (имена или IP-адреса)», а не «должен отзывать сертификаты SSL, которые используют (имена интрасети) или IP-адреса».
Maciej Piechotka
3
Ну, это же сказать «имена в интрасети или IP - адрес». Имена интрасети или IP-адреса интрасети. Это не так, просто ОП только выборочно читает.
Гонки
45

Похоже, что имя субъекта сертификата включает в себя IP-адрес:

Not Critical
DNS Name: *.cloudflare-dns.com
IP Address: 1.1.1.1
IP Address: 1.0.0.1
DNS Name: cloudflare-dns.com
IP Address: 2606:4700:4700::1111
IP Address: 2606:4700:4700::1001

Традиционно я полагаю, что вы бы указали здесь только DNS-имена, но Cloudflare также включил их IP-адреса.

https://1.0.0.1/ также считается безопасным для браузеров.

Майкл Фрэнк
источник
1
Я не понимаю, как это отвечает на вопрос. Размещение содержимого сертификата не объясняет, почему такой сертификат может быть доставлен.
Дмитрий Григорьев
18
@DmitryGrigoryev: Но это доказывает, что такой сертификат был доставлен, что было главной путаницей в вопросе (ОП не смог найти 1.1.1.1, указанный в сертификате)
Гонки
3
Этот ответ действительно отвечает на вопрос автора. Хотя автор более подробно рассказал об их путанице, это свидетельствует о том, что данный сертификат действительно действителен. Поскольку автор вопроса так и не предоставил нам то, что на самом деле сказал GoDaddy, сложно ответить на вопрос с кем-либо еще.
Ramhound
4
@DmitryGrigoryev - Если вопрос «Почему мой браузер считает, что 1.1.1.1 безопасен?» (заголовок этой страницы) или «Как это возможно, что все основные браузеры считают, что 1.1.1.1 является доверенным HTTPS-сайтом?» (единственный фактический вопрос в теле), а затем, «поскольку 1.1.1.1 указан в сертификате как SAN», четко отвечает на этот вопрос.
Дейв Шерохман
@DmitryGrigoryev « не объясняет, почему такой сертификат мог быть доставлен », тогда вопрос неясен, поскольку он даже не содержит полную информацию о сертификате и не является ни техническим вопросом о реализации TLS в браузерах, ни вопросом политики о CA, но сочетание обоих
любопытный парень