Medium Weekly Digest #5 (9 – 16 Aug 2019)

    Мы постоянно слышим фразу «национальная безопасность», но когда государство начинает следить за нашим общением, фиксируя его без веских подозрений, юридического основания и без какой-либо видимой цели, мы должны задать себе вопрос: они и в самом деле защищают национальную безопасность или они защищают свою собственную?

    Эдвард Сноуден

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

    На повестке дня:

           Энтузиасты сообщества децентрализованного интернет-провайдера «Medium» создают собственный поисковой движок
           «Medium» учредил новый удостоверяющий центр «Medium Global Root CA». Кого затронут изменения?
           Сертификаты безопасности в каждый дом — как создать свой сервис в сети Yggdrasil и выпустить для него валидный SSL-сертификат



    Напомните мне — что такое «Medium»?


    Medium (англ. Medium — «посредник», оригинальный слоган — Don't ask for your privacy. Take it back; также в английском слово medium значит «промежуточный») — российский децентрализованный интернет-провайдер, предоставляющий услуги доступа к сети Yggdrasil на безвозмездной основе.

    Полное наименование — Medium Internet Service Provider. Изначально проект задумывался как Mesh-сеть в Коломенском городском округе.

    Образован в апреле 2019 года в рамках создания независимой телекоммуникационной среды путём предоставления конечным пользователям доступа к ресурсам сети Yggdrasil посредством использования технологии беспроводной передачи данных Wi-Fi.

    Больше информации по теме: «Всё, что вы хотели знать о децентрализованном интернет-провайдере «Medium», но боялись спросить»

    Энтузиасты сообщества децентрализованного интернет-провайдера «Medium» создают собственный поисковой движок


    Изначально в сети Yggdrasil, которую децентрализованный интернет-провайдер «Medium» использует в качестве транспорта, не было ни своего DNS-сервера, ни инфраструктуры открытых ключей — однако потребность в выпуске сертификатов безопасности для сервисов сети «Medium» решила эти две проблемы.

    Зачем нужен PKI, если Yggdrasil «из коробки» предоставляет возможность шифрования трафика между пирами?
    Нет никакой необходимости использовать протокол HTTPS для соединения с веб-сервисами в сети Yggdrasil, если вы подключаетесь к ним через локально работающий роутер сети Yggdrasil.

    Действительно: транспорт Yggdrasil на уровне протокола позволяет безопасно использовать ресурсы внутри сети Yggdrasil — возможность проведения MITM-атаки полностью исключена.

    Ситуация в корне меняется, если вы получаете доступ к внутрисетевым ресурсам Yggdarsil не напрямую, а через промежуточный узел — точку доступа сети «Medium», которую администрирует её оператор.

    Кто в таком случае может скомпрометировать данные, которые вы передаёте:

    1. Оператор точки доступа. Очевидно, что действующий оператор точки доступа сети «Medium» может прослушивать незашифрованный трафик, который проходит через его оборудование.
    2. Злоумышленник (человек посередине). «Medium» имеет проблему, схожую с проблемой сети Tor, только в отношении входных и промежуточных узлов.

    Вот так это дело выглядит


    Решение: для доступа к веб-сервисам внутри сети Yggdrasil использовать протокол HTTPS (7 уровень модели OSI). Проблема заключается в том, что для сервисов сети Yggdrasil невозможно выпустить подлинный сертификат безопасности обычными средствами, такими как Let's Encrypt.

    Поэтому мы учредили собственный центр сертификации — «Medium Global Root CA». Подавляющее большинство сервисов сети «Medium» подписаны корневым сертификатом безопасности промежуточного центра сертификации «Medium Domain Validation Secure Server CA».



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

    Сервисы сети «Medium» от разных операторов имеют разные сертификаты безопасности, так или иначе подписанные корневым удостоверяющим центром. Однако операторы корневого удостоверяющего центра не имеют возможности прослушивать зашифрованный трафик сервисов, которым они подписали сертификаты безопасности (см. «Что такое CSR?»).

    Те, кто особо печётся о своей безопасности, может использовать в качестве дополнительной защиты такие средства, как PGP и подобные.

    В данный момент инфраструктура открытых ключей сети «Medium» имеет возможность проверки статуса сертификата по протоколу OCSP или посредством использования CRL.

    Ближе к делу

    Пользователь @NXShock начал разработку поискового движка для веб-сервисов, расположенных в сети Yggdrasil. Важным аспектом является тот факт, что определение IPv6-адресов сервисов при произведении поиска осуществляется путём направления запроса на DNS-сервер, расположенный внутри сети «Medium».

    Основным TLD является .ygg. Большинство доменных имён обладают этим TLD, за исключением двух: .isp и .gg.

    Поисковой движок находится в стадии разработки, но его использование уже возможно сегодня — достаточно посетить веб-сайт search.medium.isp.

    Вы можете помочь развитию проекта, присоединившись к разработке на GitHub.



    «Medium» учредил новый удостоверяющий центр «Medium Global Root CA». Кого затронут изменения?


    Вчера завершилось публичное тестирование функционала удостоверяющего центра «Medium Root CA». По окончании тестирования были исправлены ошибки в работе сервисов инфраструктуры открытых ключей и было произведено создание нового корневого сертификата удостоверяющего центра «Medium Global Root CA».

    Были учтены все нюансы и особенности PKI — теперь новый сертификат УЦ «Medium Global Root CA» будет выпущен только спустя десять лет (по истечении его срока действия). Теперь сертификаты безопасности выдаются только промежуточными сертификационными центрами — например, «Medium Domain Validation Secure Server CA».

    Как теперь выглядит цепочка доверия сертификатов?




    Что необходимо сделать, чтобы всё заработало, если вы — пользователь:

    Так как некоторые сервисы используют HSTS, перед началом использования ресурсов сети «Medium» необходимо удалить данные внутрисетевых ресурсов «Medium». Сделать это можно на вкладке «История» вашего браузера.

    Также необходимо установить новый сертификат удостоверяющего центра «Medium Global Root CA».

    Что необходимо сделать, чтобы всё заработало, если вы — системный оператор:

    Вам необходимо перевыпустить сертификат для вашего сервиса на странице pki.medium.isp (сервис доступен только в сети «Medium»).

    Сертификаты безопасности в каждый дом — как создать свой сервис в сети Yggdrasil и выпустить для него валидный SSL-сертификат


    В связи с ростом количества внутрисетевых сервисов сети «Medium» возросла потребность в выпуске новых сертификатов безопасности и настройка своих сервисов таким образом, чтобы они поддерживали SSL.

    Так как Хабр является техническим ресурсом, в каждом новом дайджесте один из пунктов повестки будет раскрывать технические особенности инфраструктуры сети «Medium». Например, ниже представлена исчерпывающая инструкция по выпуску SSL-сертификата для своего сервиса.

    В примерах будет указываться доменное имя domain.ygg, которое необходимо заменить на доменное имя вашего сервиса.

    Шаг 1. Сгенерируйте приватный ключ и параметры Диффи-Хеллмана

    openssl genrsa -out domain.ygg.key 2048

    Затем:

    openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

    Шаг 2. Создайте запрос на подпись сертификата

    openssl req -new -key domain.ygg.key -out domain.ygg.csr -config domain.ygg.conf

    Содержимое файла domain.ygg.conf:

    [ req ]
    default_bits                = 2048
    distinguished_name          = req_distinguished_name
    x509_extensions             = v3_req
    
    [ req_distinguished_name ]
    countryName                 = Country Name (2 letter code)
    countryName_default         = RU
    stateOrProvinceName         = State or Province Name (full name)
    stateOrProvinceName_default = Moscow Oblast
    localityName                = Locality Name (eg, city)
    localityName_default        = Kolomna
    organizationName            = Organization Name (eg, company)
    organizationName_default    = ACME, Inc.
    commonName                  = Common Name (eg, YOUR name)
    commonName_max              = 64
    commonName_default          = *.domain.ygg
    
    [ v3_req ]
    subjectKeyIdentifier        = hash
    keyUsage                    = critical, digitalSignature, keyEncipherment
    extendedKeyUsage            = serverAuth
    basicConstraints            = CA:FALSE
    nsCertType                  = server
    authorityKeyIdentifier      = keyid,issuer:always
    crlDistributionPoints       = URI:http://crl.medium.isp/Medium_Global_Root_CA.crl
    authorityInfoAccess         = OCSP;URI:http://ocsp.medium.isp
    

    Шаг 3. Отправьте запрос на получение сертификата

    Для этого скопируйте содержимое файла domain.ygg.csr и вставьте его в текстовое поле на сайте pki.medium.isp.

    Следуйте инструкциям, указанным на сайте, затем нажмите «Отправить». На указанный вами адрес электронной почты в случае успеха придёт сообщение, содержащее в себе вложение в виде подписанного промежуточным удостоверяющим центром сертификата.



    Шаг 4. Настройте ваш веб-сервер

    Если вы используете nginx в качестве веб-сервера, используйте следующую конфигурацию:

    Файл domain.ygg.conf в директории /etc/nginx/sites-available/

    server {
        listen [::]:80;
        listen [::]:443 ssl;
    
        root /var/www/domain.ygg;
        index index.php index.html index.htm index.nginx-debian.html;
    
        server_name domain.ygg;
    
        include snippets/domain.ygg.conf;
        include snippets/ssl-params.conf;
    
        location = /favicon.ico { log_not_found off; access_log off; }
        location = /robots.txt { log_not_found off; access_log off; allow all; }
        location ~* \.(css|gif|ico|jpeg|jpg|js|png)$ {
            expires max;
            log_not_found off;
        }
    
        location / {
            try_files $uri $uri/ /index.php$is_args$args;
        }
    
        location ~ \.php$ {
            include snippets/fastcgi-php.conf;
            fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        }
    
        location ~ /\.ht {
            deny all;
        }
    }
    

    Файл ssl-params.conf в директории /etc/nginx/snippets/

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
    ssl_ecdh_curve secp384r1;
    ssl_session_cache shared:SSL:10m;
    ssl_session_tickets off;
    
    add_header Strict-Transport-Security "max-age=15552000; preload";
    add_header X-Frame-Options DENY;
    add_header X-Content-Type-Options nosniff;
    
    ssl_dhparam /etc/ssl/certs/dhparam.pem;
    

    Файл domain.ygg.conf в директории /etc/nginx/snippets/

    ssl_certificate /etc/ssl/certs/domain.ygg.crt;
    ssl_certificate_key /etc/ssl/private/domain.ygg.key;
    

    Сертификат, полученный вами по электронной почте, необходимо скопировать по адресу /etc/ssl/certs/domain.ygg.crt. Приватный ключ (domain.ygg.key) поместите в директорию /etc/ssl/private/.

    Шаг 5. Перезапустите ваш веб-сервер

    sudo service nginx restart




    Предыдущие выпуски:

       Medium Weekly Digest #1 (12 – 19 Jul 2019)
       Medium Weekly Digest #2 (19 – 26 Jul 2019)
       Medium Weekly Digest #3 (26 Jul – 2 Aug 2019)
       Medium Weekly Digest #4 (2 – 9 Aug 2019)



    Читайте также:

    Всё, что вы хотели знать о децентрализованном интернет-провайдере «Medium», но боялись спросить
    Дорогая, мы убиваем Интернет
    Децентрализованный интернет-провайдер «Medium» — три месяца спустя

    Мы в Telegram: @medium_isp

    Only registered users can participate in poll. Log in, please.

    Альтернативное голосование: нам важно знать мнение тех, кто не имеет полноправного аккаунта на Хабре

    • 50%4
    • 50%4
    Medium
    52.42
    Go Medium!
    Share post
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 0

    Only users with full accounts can post comments. Log in, please.