Об актуальной теме утвержденных недавно как обязательные дополнительных средств усиления валидности сертификатов безопасности (SSL/TSL) рассказывают специалисты Qualis, облачного провайдера, оказывающего широкий спектр услуг в области интернет-безопасности.

CAA (Certification Authority Authorization – авторизация центров сертификации), определенная в RFC 6844 в 2013 г., была предложена, чтобы усилить экосистему PKI (Public Key Infrastructure) при помощи нового средства контроля за тем, какой именно центр сертификации может выдавать сертификат данному конкретному домену.

Несмотря на то, что САА введена уже более 4 лет назад, она все еще мало известна сегодня, и на данный момент только 100 или, может быть, около 200 сайтов ее используют. Однако предстоят значительные перемены, потому что форум центров сертификации и разработчиков браузеров (форум CA/Browser) утвердил CAA в качестве обязательной – в рамках стандартного набора базовых условий для выпуска сертификата безопасности. Новая норма начнет действовать с сентября 2017 года.

Возможность выпуска сертификата безопасности любым сертификационным центром (СА) для любого домена неоднократно указывалась как наиболее слабое место экосистемы PKI. Несмотря на то, что центры сертификации должны действовать не нарушая неких общих правил, до сих пор нет средств технического контроля за тем, что они делают. Отсюда возникает некое слабое звено в системе, а при наличии сотен CA – таких звеньев, соответственно, сотни.

САА создает механизм, позволяющий владельцам доменов создавать на уровне DNS-записей белые списки центров, которым они разрешают выдавать сертификаты для своего домена. Для этого вводится новая ресурсная DNS-запись, САА (тип 257). Владелец домена ограничивает выдачу сертификатов, указывая явно адрес центра сертификации в этой записи.
Например, вот таким образом:
example.org. CAA 128 issue "letsencrypt.org"

И это всё. Перед тем как выпустить сертификат для какого-нибудь домена, СА проверяет его ресурсную DNS-запись CAA, и выпускает сертификат только в том случае, если находит там свой адрес. В дополнение к директиве «issue» из вышеприведенного примера, есть еще директива «issuewild», ограничивающая выпуск расширенных wildcard-сертификатов, и директива «iodef», которая содержит URL, по которому СА может обратиться, если что-то происходит неправильно – в смысле политики сертификации или технических проблем. (128 – это контрольный байт с установленным старшим битом, указывающий на то, что данная директива критически важна и должна исполняться безусловно).

С некоторой точки зрения САА выполняет почти ту же функцию, что и HPKP (HTTP Public Key Pinning — прикрепление публичных ключей HTTP), но несколько иным образом. Во-первых, САА предотвращает выпуск сертификата, в то время как HPKP осуществляет проверку на стороне клиента во время исполнения, определяя уже выпущенные сертификаты как валидные или не валидные.

Во-вторых, HPKP – для браузеров, а CAA – для центров сертификации. HPKP, дающая список ключей, средство технического контроля, в то время как САА осуществляет, скорее, административный контроль. Да, ожидается, что при несоответствии САА-записи центр сертификации прекращает выдачу сертификата, но ведь центр сертификации может переключиться в ручной режим и принять решение о выпуске, если запрос будет признан все-таки подлинным. И да, это опять сложность – центров сертификации много, и самая главная проблема для них – противостоять неким «социальным» факторам давления и все же выполнять некие формальные правила в случае несоответствия САА-записей.

Но говорить, что САА бесполезна или пересекается с HPKP – не стоит. Тут есть определенные преимущества, в частности, по сравнению с HPKP у САА меньше возможностей для злоупотребления и нарушения прав собственности в онлайн-пространстве.

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

И кроме того, «прикрепление публичных ключей для подтверждения владения веб-ресурсом» пугает потенциальных пользователей HPKP своей сложностью и громоздкостью, по сравнению с простотой DNS-записи CAA.

Проверить наличие САА-записи можно при помощи любого онлайн-сервиса, анализирующего состав записей DNS для публичных доменов.
Поделиться с друзьями
-->

Комментарии (13)


  1. Caravus
    23.05.2017 14:06

    Да, ожидается, что при несоответствии САА-записи центр сертификации прекращает выдачу сертификата, но ведь центр сертификации может переключиться в ручной режим и принять решение о выпуске


    То есть «может выдать, а может не выдать»? В чём тогда смысл?


  1. navion
    23.05.2017 15:51
    +2

    Генератор CAA-записей, но не все провайдеры их поддерживают. Кто-нибудь в курсе почему не сделали валидацию через обычные TXT?


    1. Stalker_RED
      23.05.2017 18:43

      Простите мое невежество, но что такое «валидация через обычные TXT»?


      1. navion
        23.05.2017 19:11
        +1

        Писать разрешенные CA в TXT-запись (как сделано для SPF), а не созавать новый тип ради которого хостерам придётся дорабатывать панели.


        1. kilgur
          23.05.2017 19:14
          +2

          Не только панели :) еще и клиенты с серверами DNS


          1. navion
            23.05.2017 20:27

            В RHEL7 бэкпортировали поддержку CAA для BIND 9.9.4, так что на линуксе проблем быть не должно.


      1. kilgur
        23.05.2017 19:12
        +3

        Наверное, имеется в виду что-то типа:
        _caa IN TXT issue "letsencrypt.org".
        Т.е. без введения нового типа записей (CAA).


        1. kinoz
          23.05.2017 22:11

          Нет, если верить генератору из комментария выше, это именно новый тип.
          Если верить этому генератору, то список dns серверов довольно обширен, а панели, я думаю не так много работы по внедрению нового типа записей.


  1. alkoro
    23.05.2017 22:11

    Странно, что для клиентов (браузеров) не указан очевидный путь для дополнительной проверки надёжности — сверять соответствие CAA-записи и издателя сертификата.


  1. NaHCO3
    23.05.2017 23:09

    Ок. Будем ещё подменять DNS.


    1. sunnybear
      23.05.2017 23:17

      DNSSEC пока не научились подделывать. Ждем волны взломов корневых DNS.


      1. NaHCO3
        24.05.2017 07:07

        DNSSEC весьма опциональный. И вряд ли это изменится. Так что можно рассчитывать, что в целевом браузере он будет отключён.


      1. amarao
        24.05.2017 11:44

        DNSSEC обладает безопасностью неуловимого Джо. С практической точки зрения мы просто делаем DNS downgrade attack и все широкоиспользуемые клиенты соглашаются с тем, что «так и надо».