From: Sergey Matveev
Date: 2020-12-20 08:36:02Z
*** kmeaw [2020-12-20 03:15]:
>А как это можно было бы реализовать? Дать пользователю браузер с пустым
>хранилищем сертификатов CA, и пусть у него не работает веб, пока он его
>самостоятельно (и осознанно) не заполнит?
0) Броузер не должен заниматься тем, что делает ОС и так: транспортные
протоколы (слышал что в WebRTC есть реализации на SCTP over UDP, но на
прикладном уровне броузера), DNS (уже обсуждали эту тему) самостоятельный,
CA management. Он может иметь дополнительное хранилище и правила, а не
полностью независимые.
1) ОС при этом человек может получить по более аутентичному каналу связи
чем Интернет -- Microsoft даёт диски со всякими голографическими
наклейками, или же это ПК с предустановленной ОС, но которая всё равно
автоматизированно с завода прошилась, поместилась в коробку, приехала в
магазин. Как минимум это второй независимый канал связи, после которого
можно и хэши для целостности/аутентичности через Интернет проверить.
Броузер же... предполагается ставить только поверх Интернета, без
аутентификации (не берём PGP подписи, про которые обычный человек ничего
не знает), добавляя к себе какой то набор доверенных CA.
2) Вариант с полностью пустым хранилищем... мне нравится. Рядом можно в
дистрибутиве подложить CA сертификаты, но пускай сам пользователь решает
доверяет ли он им или нет. Верю что это просто вынудит людей делать
команду типа ca-storage-import /.../*.pem, но они делают точно такой же
осознанный шаг и подтверждение что понимают что творят и это под их
ответственность. А в идеале предупреждать и "учить" как можно получить
хэши (какие-либо аутентифицирующие данные) по сторонним каналам (Интернет).
3) Насколько понимаю, сертификат Казахстана вообще hard-coded до
неюзабельного состояния? То есть пользователь, как раз таки, лишён
возможности использовать web в этой стране, где этот CA наверное может
быть использован для правительственных сайтов вполне себе. Может
пользователь доверяет своему правительству и хочет поставить этот CA? С
какой стати он менее доверенный чем Let's Encrypt? Это его дело как
управлять своим доверием.
Ведь с PGP мы имеем как-раз таки тоже пустой keyring изначально, который
на протяжении "жизни" наращиваем и таскаем с собой. Изначально в нём
могут быть ключи шедшие касающиеся аутентификации дистрибутива. С каждой
новой программой могут появлятся PGP-ключи которые находятся в
tarball-ах -- но помечаются они как "на свой страх и риск", пока
пользователь осознанно как-то ещё не проверит аутентичность (возможно
спустя месяцы, после поездок на какие-нибудь конференции, где можно
расширять web-of-trust).
А текущая ситуация с CA в Интернете... просто фарс. Люди хоть
кого-нибудь знают из списка CA его ОС/броузера? Я знаю парочку: или по
новостям о том что этот CA скомпрометирован и он выпускал сертификаты
кому не надо (но кто ж его уберёт из доверенных? он слишком популярен
584463be1b8e3cbc0bd47314e90196cfd6b9996e) или же это Let's Encrypt, к
которому доверие под вопросом. А остальные... для меня и для большинства
это просто yet another какие-то noname компании. Не приходится говорить
о доверии. И мне нравится тут TOFU подход (+certificate pinning), при
котором будет сохраняться состояние аутентификации на диске. Так я хотя
бы могу замечать смену сертификата, которому доверял потому что из самых
разных точек планеты (VPN, Tor например или через других людей) он один
и тот же хотя бы. А короткое время жизни сертификата как-раз нивелирует
полезность TOFU.