Центры сертификации ключей и HTTPS

BDFINFO1.9
Оффлайн
Регистрация
12.05.16
Сообщения
1.927
Реакции
523
Репутация
0
А теперь мы поговорим о центрах сертификации ключей и HTTPS. HTTPS полагается на сертификаты для аутентификации, что сайт подлинный, а открытый ключ принадлежит именно этому сайту. Без сертификатов защищенность HTTPS попросту не работает. Она ломается.

Проблема в том, что вся экосистема сертификатов в целом является слабой и уязвимой перед атаками. Защищенность HTTPS лишь настолько сильна, насколько сильным является слабое звено, а в такой огромной экосистеме цепочек сертификатов появление сломанных звеньев неизбежно. Уязвимости внутри этой экосистемы могут привести к появлению фальшивых сертификатов, которым все потом будут доверять. Если кто-либо сможет выпустить фальшивый сертификат, которому ваш браузер будет доверять, то вы не узнаете, что HTTPS перехватывается и читается.

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

Позвольте я приведу вам несколько примеров того, как это возможно, и почему на сертификаты нельзя всецело полагаться, и следовательно, нельзя полностью полагаться и на HTTPS. Пожалуй, самыми тревожными являются действия удостоверяющих центров и уязвимости, возникающие вследствие ошибок этих центров.
You must be registered for see images attach


Давайте посмотрим, сравнительно недавно, читайте заголовок, "Google ставит ультиматум Symantec касаемо неавторизованных HTTPS сертификатов". Что же там произошло? Symantec выпустил сертификаты, объявляющие о своей принадлежности Google, но Google, по факту, никогда не запрашивал этих сертификатов. А Symantec это реально один из лидеров рынка по части удостоверения сертификатов. Это крупнейший игрок на рынке удостоверяющих центров. Эти ребята должны задавать стандарты.

Немного проскроллим вниз, читаем: "Вначале Symantec заявлял, что были выпущены 23 сертификата", и когда речь идет о 23 сертификатах, то это означает, что этих 23 сертификатов не должно было быть вообще. И что же дальше: "Google поставил под сомнение эту цифру, отмечая, что она значительно выше. Проведя дополнительные проверки, в Symantec признали, что были выпущены 164 сертификата для 76 доменов и 2458 сертификатов для даже незарегистрированных доменов".
You must be registered for see images attach


Вот масштабы текущего уровня обеспокоенности по поводу действий центров сертификации и ошибок, которые они допускают. И это Symantec, считающийся лидером рынка. И это не единичный случай.

Теперь другой случай, целая партия фальшивых сертификатов, выпущенных для нескольких доменов Google, включая, и в общем-то, это весь google.com, и некоторые другие домены Google. "Они были выпущены компанией MSC Holdings из Египта, это промежуточный центр сертификации, который работает под контролем Информационного центра сети Интернет Китая".

Можете себе представить, ошибаются как небольшие центры сертификации, так и крупнейшие из них. И эти сертификаты, которые будут выпущены или были выпущены, они будут доверенными для вашего браузера или браузера кого бы то ни было еще. Существует слишком много пользующихся доверием третьих сторон. Давайте я вам покажу это.

You must be registered for see images attach

Это дерево доверия между центрами сертификации. Можно увеличить масштаб и рассмотреть все эти различные цепочки сертификатов и доверительных отношений. Итак, удостоверяющие центры существуют в примерно 50 странах. Есть более 1400 центров, которым доверяет Microsoft и Mozilla, а следовательно и Firefox. Здесь есть даже такие центры, как почта Гонконга. Это обычный центр сертификации. Есть подразделения удостоверяющих центров типа Министерства внутренней безопасности США или военных подрядчиков США, которые являются нижестоящими центрами.

И это приводит нас к следующей слабости ключей: правительства стран будут иметь влияние на центры сертификации, или будут иметь возможность выпускать сертификаты самостоятельно, и будут иметь возможность представляться кем угодно, хоть Facebook, хоть Apple, хоть вашим банком. И ваш браузер будет доверять их сертификатам, поскольку они выпущены доверенными удостоверяющими центрами, или их подразделениями, и они указаны в этих самых сертификатах.

Это означает, что США, Великобритания, Китай, Россия, 14 глаз, все они могут выпускать фальшивые сертификаты, которым ваш браузер будет доверять, и следовательно, могут увидеть зашифрованный HTTPS трафик, который будет выглядеть абсолютно нормальным для вас, но они смогут дешифровать его. Вы будете считать, что у вас работает end-to-end шифрование, а на деле эти ребята могут выпускать фальшивые сертификаты, и HTTPS оказывается полностью бессмысленным.

Другим поводом для беспокойства является стандарт X.509 для сертификатов. Он весьма неудачно спроектирован и чересчур гибок. В документации этого стандарта кто-то случайно скопипастил не то, что нужно, и это привело к отсутствию частей стандарта, которые должны были быть там. В результате у вас есть стандарт, а затем вещей, которые должны быть в нем, их не оказывается. Это была полная катастрофа.

Уязвимости могут появляться и в процессе получения сертификатов. Например, инъекции нулевого байта, когда у вас появляется возможность получать сертификаты для доменов, которыми вы не владеете. И правительства стран определенно будут работать над поиском новых уязвимостей для внедрения в процесс получения сертификатов. Так что если у них нет новых способов делать это сейчас, то вне всякого сомнения, у них будут потенциально новые способы в будущем. И если у вас имеется фальшивый сертификат, есть бесплатные инструменты, которые вы можете использовать для его подстановки.
You must be registered for see images attach

Пожалуйста, вот вам sslsniff. Изначально он был разработан в связи с уязвимостью, обнаруженной в Internet Explorer, но он также мог быть использован для подстановки другого сертификата, если вы находитесь посередине. Очевидно, что если вы правительство, то у вас будет собственная версия подобного программного обеспечения, в котором вы сможете подставлять свой собственный сертификат в трафик.

Как видите, здесь говорится: "Разработан для MITM-атак на все SSL соединения в локальной сети, динамически генерирует сертификаты для доменов, доступные на лету. Новые сертификаты встраиваются в цепочку сертификатов, которая подписывается любым сертификатом, который вы обеспечите".

Есть множество способов борьбы с фальшивыми сертификатами и последующим дешифрованием вашего трафика. Вы можете уменьшить количество сертификатов, которым вы доверяете. Если мы зайдем в "Настройки", "Расширенные", “Сертификаты”, “Посмотреть сертификаты”, мы увидим здесь сотни сертификатов, которым вы непосредственно доверяете.

Вы можете удалить ненужные вам сертификаты. Вы обнаружите, что порядка 95% ресурсов, которые вы посещаете, нуждаются в малом количестве сертификатов. Так что если уменьшение количества сертификатов вас заинтересует, можете погуглить на этот счет и изучить этот вопрос, поэкспериментировать с удалением сертификатов.

Возможно, произойдет ситуация, когда вы наткнетесь на сайты, в которых есть цепочка сертификатов, один из которых вы удалили. Так что с этим стоит поразбираться. Все зависит от того, какие сайты вы посещаете. Закроем это окно.


You must be registered for see images attach

Другая вещь, которую вы можете сделать, это отслеживание изменений сертификатов тех сайтов, которые вы используете. Есть аддон для Firefox под названием "Certificate Patrol".

"Ваш браузер доверяет множеству различных центров сертификации и промежуточным центрам каждый раз, когда вы посещаете HTTPS веб-сайт. Данный аддон выявляет случаи, когда сертификаты обновляются, так чтобы вы смогли убедиться, что это было легитимное изменение". Спустимся ниже. Не знаю, сможете ли вы разглядеть, что тут написано. Этот аддон показывает вам контрольную сумму сертификата во время вашего предыдущего посещения сайта, и контрольную сумму текущего сертификата.


На первый взгляд это может показаться хорошей идеей, не так ли? Но проблема в том, что это не практично. Сертификаты меняются постоянно. Вы будете получать эти всплывающие окна раз за разом, и вы не будете знать, подлинный ли новый сертификат или нет. Понятно, что вы можете догадаться, потому что если меняется центр сертификации с одного на другой, допустим, они перешли от Symantec на почту Гонконга, то, ясное дело, это знак того, что что-то тут нечисто.

Но если вы установите это расширение, то подобные вещи, вы будете получать эти всплывающие окна постоянно. И это станет весьма нецелесообразным. Закроем это окно.

Далее, есть другая опция, если вы владелец сервера или если у вас есть какие-либо связи с тем, куда вы коннектитесь, вы можете использовать так называемое "закрепление сертификата".

Что это такое? Как сказано на сайте проекта OWASP: "Закрепление - это процесс ассоциации хоста с его ожидаемым X.509 сертификатом или открытым ключом". Другими словами, это способ сказать: "Я принимаю только один определенный открытый ключ". Например, вы можете связать сертификат с его контрольной суммой или хешем, так что если кто-либо его поменяет, то вы сразу об этом узнаете.

Например, если вы используете интернет-банкинг, а я работал архитектором в сфере безопасности ряда банковских приложений в Великобритании, одним из средств защиты там является привязка сертификатов, потому что вашему банковскому приложению не нужно посещать множество сайтов. Вы можете сказать: "Разрешить только этот один публичный сертификат или несколько публичных сертификатов". Поэтому если человек посередине попытается подменить эти сертификаты, то это не сработает, потому что вы связали со своим приложением конкретные публичные ключи.

Привязка работает не только для HTTPS. Ее можно использовать с VPN, SSL, TLS и другими протоколами, которые вы используете для работы с сертификатами.

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

Например, если вы используете средства анонимизации, допустим, VPN или Tor, или наподобие этого, и они выпустят фальшивый сертификат и получат возможность считывать трафик, то у них не будет возможности связать этот трафик с вами. Все зависит от того, волнует ли вас или нет, что они прочитают данные, или же вас волнует то, что они могут связать эти данные с вашей личностью. Как бы то ни было, быть анонимным - это один из способов.

You must be registered for see images attach


Также вы можете использовать VPN. Однако, VPN защитит вас до определенной степени. Здесь у нас схема , демонстрирующая VPN. Это маршрут между инициатором VPN туннеля и VPN терминатором, и внутри этого туннеля у нас HTTPS, использующий SSL и TLS, и после того, как он достигает VPN терминатор, трафик снова превращается в обычный HTTPS.

Если атакующий может расположиться лишь посередине между вами и терминатором, то VPN туннелирование предотвратит подмену сертификата. Если атакующий получит доступ к трафику здесь, то конечно, он сможет заменить сертификат.

Пример, где это может пригодиться. Допустим, вы в Китае, и вас волнует, что китайское правительство может заменить сертификат на поддельный. Что вы можете сделать, вы можете выйти по VPN за пределы Китая и затем соединиться с сервером, опять же, сервер должен находиться за пределами Китая. И тогда у вас будет больше гарантии, что ваше соединение защищено от точки до точки, потому что вы знаете, что у них нет возможности подменить сертификат в то время, пока он находится на территории Китая.

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

Это был фрагмент о центрах сертификации и HTTPS, а также вопросах, связанных с ними. Ваш основной подход к защите - это использование эшелонированной защиты. Вы используете многочисленные средства защиты с целью минимизировать риски, и в данном случае средством защиты является VPN. И вам следует добавить дополнительные средства в зависимости от уровня безопасности или приватности, который вам нужен, это средства, которые мы рассмотрим далее в серии статей.
 

Вложения

  • upload_2017-7-3_16-15-0.png
    upload_2017-7-3_16-15-0.png
    50,3 KB · Просмотры: 548
Сверху Снизу