From 1b96b5d043db6fa62ef90354a771298e067faa30 Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Mon, 7 Oct 2019 23:19:26 +0300 Subject: [PATCH] =?utf8?q?=D0=92=D1=8B=D0=B4=D0=B5=D1=80=D0=B6=D0=BA=D0=B0?= =?utf8?q?=20=D0=B8=D0=B7=20=D0=BC=D0=BE=D0=B5=D0=B3=D0=BE=20=D0=BF=D0=B8?= =?utf8?q?=D1=81=D1=8C=D0=BC=D0=B0=20=D0=BF=D1=80=D0=BE=20TLS=20=D1=81?= =?utf8?q?=D0=B5=D1=80=D1=82=D0=B8=D1=84=D0=B8=D0=BA=D0=B0=D1=82=20=D0=BD?= =?utf8?q?=D0=B0=20go.cypherpunks.ru?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Безусловно я ожидал что мне напишут по поводу сертификата, куда деваться. package go.cypherpunks.ru/gogost: unrecognized import path "go.cypherpunks.ru/gogost" (https fetch: Get https://go.cypherpunks.ru/gogost?go-get=1: x509: certificate signed by unknown authority) Нет, cypherpunks.ru использует не самоподписанный, а выданный CACert.org CA. Просто среди сертификатов отдаваемых HTTPS сервером и сам CA суётся тоже, а он, конечно, самоподписанный: % gnutls-cli -V go.cypherpunks.ru | grep Subject: Subject: CN=go.cypherpunks.ru Subject: EMAIL=support@cacert.org,CN=CA Cert Signing Authority,OU=http://www.cacert.org,O=Root CA http://www.cypherpunks.ru/FAQ.html#TLSCA Он один из первых CA который был бесплатен, кто рулится community, а не бизнесом. Лично я принципиально не собираюсь платить деньги за псевдобезопасность PKI-инфраструктуры: ибо она полагается на третью сторону, к которой в любом случае могут прийти спецслужбы стран и выпустить сертификат для осуществления MitM-а. Я не против PKI как такового -- считаю что он вполне себе безопасно и успешно может работать в пределах enterprise систем, предприятий, но не в глобальном масштабе, где CA компании всё-равно вынуждены подчиняться силовым структурам. Я, опять же, ничуть не против силовиков, но я против бизнесменов/корпораций, врущих и говорящих о безопасности. Раньше из бесплатных когда-то были StartSSL, StartCom, WoSign, ещё вроде кто-то, но, так как это всё бизнес, деньги, то автоматом и политика. Разработка ПО это очень дорого, и ею поэтому рулят бизнесмены. Из-за полунадуманных (по моему мнению) причин распространённые броузеры и операционные системы, базирующиеся в США, решили не доверять StartSSL, WoSign, StartCom, которые китайские, под предлогом их ошибок и нелегальной выдаче сертификатов. Ибо США не может прийти к китайским CA для осуществления MitM-а. Хотя у некитайских были проблемы и пострашнее: https://www.eff.org/deeplinks/2015/09/symantec-issues-rogue-ev-certificate-googlecom https://en.wikipedia.org/wiki/Symantec#Sustaining_digital_certificate_security https://threatpost.com/fraudulent-certificate-google-domains-found-after-mistake-turkish-ca-010313/77361/ https://defcon.org/images/defcon-17/dc-17-presentations/defcon-17-zusman-hacking_pki.pdf https://www.cnet.com/news/microsoft-warns-of-hijacked-certificates/ https://en.wikipedia.org/wiki/Diginotar#Issuance_of_fraudulent_certificates https://en.wikipedia.org/wiki/Comodo_Group#2011_breach_incident но им ничего не было особо за это. CACert.org сертификат много лет присутствовал в Mozilla Firefox (как минимум), но они решили что не особо теперь им доверяют и убрали его, ибо это потеря прибыли и отсутствие рычагов управления со стороны спецслужб. В итоге, *все* бесплатные CA убраны из распространённых ОС/броузеров, и недавно, внезапно появился Let's Encrypt, созданный/поддерживаемый этими же всеми самыми броузерными/ОС компаниями. И активно рекомендуется и рекламируется везде. Что было не так с прошлыми бесплатными? Одни -- китайцы, а другие тоже не шибко подконтрольные и даже денег не зарабатывающие. Технические проблемы более серьёзные были и не у бесплатных и ничего за это им не было. А Let's Encrypt все эти корпорации удовлетворяет. Это одна из причин почему Let's Encrypt мне не хотелось бы рассматривать -- не может быть такого, что ни с того, ни с сего взял и появился святой Грааль бесплатных сертификатов. Вторая причина это то, что они выпускают сертификаты на относительно короткий срок в 90 дней, делая крайне сложным использование certificate pinning. Если бы я получил сертификат выпущенный Let's Encrypt-ом и убедился от владельца сайта в его достоверности (что буквально именно вот он действительно выпущен), то я делаю pinning и не боюсь MitM-а незамеченного. А 90 дней... огромное количество сайтов я посещаю прям вот не чаще чем 90 дней и каждый заход на такой сайт у меня вызывает в броузере alert о том, что сертификат сменён, вынуждая меня или снова как-то выяснять действительно ли это ожидаемый штатный сертификат (по сторонним каналам связи, вне TLS) или забить и просто его принять. Третья причина: management hell Let's Encrypt сертификатов. Если раньше десятилетиями люди просто генерировали приватный ключ, затем PKCS#10 (или там CRMF/CMC/CMS) запрос, получали сертификат, то LE хочет чтобы был установлен софт, работающий по cron-у, по умолчанию самостоятельно влезающий в настройки HTTPS-серверов (кстати, обязуя их использовать). Также я видел что не одна реализация ещё и автоматически себя может обновлять: скачивать код, подменять себя им, что абсолютно неприемлемо в терминах безопасности, с моей точки зрения. Чтобы запустить у себя LE, я вынужден прочитать сотни строк кода какого-нибудь ACME клиента, чтобы убедиться что он не скачает для исполнения какой-то код извне, что он не испортит мои конфиги или ещё что-нибудь неположенное сделает. А короткий срок жизни сертификата подталкивает к использованию этих автоматизированных решений. Плюс LE я не смогу использовать для выпуска TLS сертификата для своего SMTP-сервера например. Придётся настраивать и HTTPS для него. В итоге LE я не рассматриваю по политическим причинам (поддерживаю USA-controlled huge MitM-able CA) и по техническим (колоссальная сложность и недоверие ко всему что делают (а они делают по умолчанию неприемлемо) все эти LE ACME клиенты). Так как WoSign, StartSSL, StartCom закрылись, то остаётся только CACert.org CA. Который не в малом количестве ОС есть из коробки или имеется в виде пакета штатного (не со сторонних репозиториев скачиваемый, а с родных дистрибутива): https://wiki.cacert.org/InclusionStatus >будет ли меняться сертификат для домена cypherpunks.ru? Я бы советовал установить сертификат далеко не самого маленького CA CACert.org, особенно учитывая что он в пакетах зачастую доступен самой ОС. Лично я так и делаю у себя везде. Обновлять не планирую, так как, повторюсь, платить за воздух и имитацию безопасности не собираюсь принципиально, Let's Encrypt по сильным политическим и техническим причинам не рассматриваю, других бесплатных, кроме CACert.org, я не знаю. Я понимаю что многие посчитают, что я поднасираю удобству пользователей этим самым выбором, но я человек принципиальный и хочу как можно меньше поддерживать то, что решения о том, чем могут пользоваться люди, диктуется и решается бизнесменами софта из США. -- 2.48.1