Распределённый "DNS" на доверии и хешах
Показался небезынтересным материал (рассуждения) http://habrahabr.ru/blogs/domains/104715/
В-общем известные вещи, взгляд под чуть(?) другим углом.
Интересны мнения, замечания и т.д. уважаемого pgpru-сообщества ;)
UPD1: Замечание: речь не идет об анонимности как таковой. Скорее, а распределенности, устойчивости, защищенности от цензуры и т.д.
UPD2, ссылки к теме (все на pgpru):
- Netsukuku – обсудим
- Про Skype
- Сетевая анонимность – сеть Tor
- Подскажите, как работать с I2P
- О нем же (I2P)
- И новость о нем же здесь
- Про PIR-Tor
комментариев: 11558 документов: 1036 редакций: 4118
Попытался погуглить на тему. Судя по всему, certificate pinning — просто add exception с точки зрения интерфейса firefox'а. Чтобы полноценно им пользоваться для pgpru.com, надо удалить все CA из браузера. Если же не идти на такие крайние меры (специальный браузер для какого-то сайта), браузер не будет ругаться, если запиненый сертификат вдруг из-за MITM заменится на подписанный валидным CA. Аддон CP теоретически за этим следит, но de facto он неюзабелен. Есть ли выход?
комментариев: 11558 документов: 1036 редакций: 4118
Потому что то, что Вы описываете, не есть certificate pinning. Реальный cert pinning реализован в Firefox для update-сервера, например: в коде жёстко прописан его отпечаток, т.е. никакой иной сертификат не может быть принят в принципе. Такая же история с гугловскими сертификатами в Chrome.
Тогда объясните как мне его реализовать для конкретного сайта — скажем, для pgpru.com. Ну или ткните в инструкцию, а то гугление для случая firefox мне ничего не дало.
комментариев: 11558 документов: 1036 редакций: 4118
На горизонте замаячил свет: HTTP Public Key Pinning (задает список валидных открытых ключей). Если его сопрячь с HSTS (HTTP Strict Transport Security, который говорит о том, что сайт работает только по HTTPS), то получается совсем хорошо. В firefox фичу добавили 20-го января этого года, поэтому в TBB ещё нету (в TBB 4.0.4 сейчас firefox 31.5.0esr, а нужен минимум 35). Кстати, HTTP STS на сайте Tor'а уже поддерживается.
Технология HTTP PKP имеет все шансы убить PKI — привязка сертификата идёт к первому заходу на сайт, потом все остальные сертификаты должны быть подписаны предыдущими (там всегда их минимум два: основной и запасной на случай фейла основного). Плохо только, что браузер пока не показывает никаких идентификаторов, поддерживает ли сайт PKP, поэтому приходится разбирать заголовки вручную (может быть, со временем сделают). Preload list сертификатов (то, что понималось ранее под certificate pinning), возможно, тоже можно редактировать вручную. PKP для всех браузеров (кроме IE, конечно же) есть в виде расширений.
Ссылка на стандарт.
Как получить base64-строку для заголовка Public-Key_pins:
— это заголовок на основе приватного ключа, а на основе сертификата несколько иначе:
Вариант на основе приватного ключа универсальнее, т.к. сертификата может еще не быть (сертификат всегда можно получить позже, привязка идет только к публичному ключу).
report-uri — это скрипт, куда браузер будет отправлять отчеты об ошибках.
Юзерам ничего добавлять руками не надо, в этом смысл PKP. Всё работает само, абсолютно без участия (но отпечатки первый раз надо будет сверить, чтобы избежать MITMа).