УстарСваниС ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠ³ΠΎ сСртификата AddTrust ΠΏΡ€ΠΈΠ²Π΅Π»ΠΎ ΠΊ сбоям Π² систСмах с OpenSSL ΠΈ GnuTLS

30 мая истёк 20-Π»Π΅Ρ‚Π½ΠΈΠΉ срок дСйствия ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠ³ΠΎ сСртификата AddTrust, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ примСнялся для формирования пСрСкрёстной подписи (cross-signed) Π² сСртификатах ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΠΊΡ€ΡƒΠΏΠ½Π΅ΠΉΡˆΠΈΡ… ΡƒΠ΄ΠΎΡΡ‚ΠΎΠ²Π΅Ρ€ΡΡŽΡ‰ΠΈΡ… Ρ†Π΅Π½Ρ‚Ρ€ΠΎΠ² Sectigo (Comodo). ΠŸΠ΅Ρ€Π΅ΠΊΡ€Ρ‘ΡΡ‚Π½Π°Ρ подпись позволяла ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΌΠΈ устройствами, Π² Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ΠΊΠΎΡ€Π½Π΅Π²Ρ‹Ρ… сСртификатов ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅ Π±Ρ‹Π» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ сСртификат USERTRust.

УстарСваниС ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠ³ΠΎ сСртификата AddTrust ΠΏΡ€ΠΈΠ²Π΅Π»ΠΎ ΠΊ сбоям Π² систСмах с OpenSSL ΠΈ GnuTLS

ВСорСтичСски ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π΅Π½ΠΈΠ΅ дСйствия ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠ³ΠΎ сСртификата AddTrust Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ привСсти лишь ΠΊ Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΡŽ совмСстимости с ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΌΠΈ систСмами (Android 2.3, Windows XP, Mac OS X 10.11, iOS 9 ΠΈ Ρ‚.ΠΏ.), Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ сСртификат, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Π² пСрСкрёстной подписи остаётся Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΈ соврСмСнныС Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ Π΅Π³ΠΎ ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ΅ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ довСрия. На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ»ΠΈΡΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ пСрСкрёстной подписи Π² Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹ TLS-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°Ρ…, Π² Ρ‚ΠΎΠΌ числС Π½Π° Π±Π°Π·Π΅ OpenSSL 1.0.x ΠΈ GnuTLS. БСзопасноС соСдинСниС пСрСстало ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒΡΡ с Π²Ρ‹Π²ΠΎΠ΄ΠΎΠΌ ошибки ΠΎΠ± устарСвании сСртификата, Ссли Π½Π° сСрвСрС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ сСртификат Sectigo, связанный Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΎΠΉ довСрия с ΠΊΠΎΡ€Π½Π΅Π²Ρ‹ΠΌ сСртификатом AddTrust.

Если ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ соврСмСнных Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ² Π½Π΅ Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ»ΠΈ устарСвания ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠ³ΠΎ сСртификата AddTrust ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ пСрСкрёстно подписанных сСртификатов Sectigo, Ρ‚ΠΎ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… сторонних прилоТСниях ΠΈ сСрвСрных ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°Ρ… Π½Π°Ρ‡Π°Π»ΠΈ Π²ΡΠΏΠ»Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π»ΠΎ ΠΊ Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΡŽ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠ½ΠΎΠ³ΠΈΡ… инфраструктур, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΊΠ°Π½Π°Π»Ρ‹ связи для взаимодСйствия ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ.

НапримСр, Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с доступом ΠΊ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ рСпозиториям ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π² Debian ΠΈ Ubuntu (apt стал Π²Ρ‹Π΄Π°Π²Π°Ρ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ сСртификата), стали Π·Π°Π²Π΅Ρ€ΡˆΠ°Ρ‚ΡŒΡΡ сбоСм обращСния ΠΈΠ· скриптов ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ «curl» ΠΈ «wget», Π½Π°Π±Π»ΡŽΠ΄Π°ΡŽΡ‚ΡΡ ошибки ΠΏΡ€ΠΈ использовании Git, Π½Π°Ρ€ΡƒΡˆΠΈΠ»Π°ΡΡŒ Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²ΠΎΠ³ΠΎ вСщания Roku, пСрСстали Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Stripe ΠΈ DataDog, Π½Π°Ρ‡Π°Π»ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Ρ‚ΡŒ ΠΊΡ€Π°Ρ…ΠΈ Π² прилоТСниях Heroku, пСрСстали ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ OpenLDAP, фиксирутся ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΎΠΉ ΠΏΠΎΡ‡Ρ‚Ρ‹ Π½Π° сСрвСры SMTPS ΠΈ SMTP со STARTTLS. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ Π½Π°Π±Π»ΡŽΠ΄Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ruby-, PHP- ΠΈ Python-скриптах, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… ΠΌΠΎΠ΄ΡƒΠ»ΡŒ с http-ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ. Из Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ² ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π·Π°Ρ‚Ρ€Π°Π³ΠΈΠ²Π°Π΅Ρ‚ Epiphany, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ пСрСстали Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒΡΡ списки Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ Ρ€Π΅ΠΊΠ»Π°ΠΌΡ‹.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° языкС Go ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ΅ Π½Π΅ ΠΏΠΎΠ΄Π²Π΅Ρ€ΠΆΠ΅Π½Ρ‹, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π² Go прСдлагаСтся собствСнная рСализация TLS.

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π»ΠΎΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π·Π°Ρ‚Ρ€Π°Π³ΠΈΠ²Π°Π΅Ρ‚ старыС выпуски дистрибутивов (Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Debian 9, Ubuntu 16.04, RHEL 6/7) Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½Ρ‹Π΅ Π²Π΅Ρ‚ΠΊΠΈ OpenSSL, Π½ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΡ€ΠΎΡΠ²ΠΈΠ»Π°ΡΡŒ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° APT Π² Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… выпусках Debian 10 ΠΈ Ubuntu 18.04/20.04, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ APT ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ GnuTLS. Π‘ΡƒΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ TLS/SSL-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Ρ€Π°Π·Π±ΠΈΡ€Π°ΡŽΡ‚ сСртификат ΠΊΠ°ΠΊ Π»ΠΈΠ½Π΅ΠΉΠ½ΡƒΡŽ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ Π² соотвСтствии с RFC 4158 сСртификат ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ распрСдСлённый цикличСский Π³Ρ€Π°Ρ„ с нСсколькими якорями довСрия, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ. О Π΄Π°Π½Π½ΠΎΠΉ Π½Π΅Π΄ΠΎΡ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π² OpenSSL ΠΈ GnuTLS Π±Ρ‹Π»ΠΎ извСстно ΡƒΠΆΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ Π»Π΅Ρ‚. Π’ OpenSSL ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π±Ρ‹Π»Π° устранСна Π² Π²Π΅Ρ‚ΠΊΠ΅ 1.1.1, Π° Π² GnuTLS остаётся нСисправлСнной.

Π’ качСствС ΠΎΠ±Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡƒΡ‚ΠΈ устранСния сбоя прСдлагаСтся ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΈΠ· систСмного Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° сСртификат «AddTrust External CA Root» (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΈΠ· /etc/ca-certificates.conf ΠΈ /etc/ssl/certs, Π° Π·Π°Ρ‚Π΅ΠΌ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ «update-ca-certificates -f -v»), послС Ρ‡Π΅Π³ΠΎ OpenSSL Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ пСрСкрёстно подписанныС сСртификаты с Π΅Π³ΠΎ участиСм. ΠŸΡ€ΠΈ использовании ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° APT Π½Π° свой страх ΠΈ риск ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ для ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… запросов ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ сСртификатов (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, «apt-get update -o Acquire::https::download.jitsi.org::Verify-Peer=false»).

Для блокирования ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π² Fedora ΠΈ RHEL прСдлагаСтся Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ сСртификат AddTrust Π² Ρ‡Ρ‘Ρ€Π½Ρ‹ΠΉ список:

trust dump —filter «pkcs11:id=%AD%BD%98%7A%34%B4%26%F7%FA%C4%26%54%EF%03%BD%E0%24%CB%54%1A;type=cert» \
> /etc/pki/ca-trust/source/blacklist/addtrust-external-root.p11-kit
update-ca-trust extract

Но Π΄Π°Π½Π½Ρ‹ΠΉ способ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ для GnuTLS (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ Π²Ρ‹Π΄Π°Π²Π°Ρ‚ΡŒΡΡ ошибка ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ сСртификата ΠΏΡ€ΠΈ запускС ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ wget).

На сторонС сСрвСра ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ порядок пСрСчислСния сСртификатов Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅ довСрия, отправляСмых сСрвСром ΠΊ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ (Ссли связанный с «AddTrust External CA Root» сСртификат Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ±Ρ€Π°Π½ ΠΈΠ· списка, Ρ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ ΠΏΡ€ΠΎΠΉΠ΄Ρ‘Ρ‚ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ). Для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΈ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ Π½ΠΎΠ²ΠΎΠΉ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ довСрия ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ сСрвис whatsmychaincert.com. Компания Sectigo Ρ‚Π°ΠΊΠΆΠ΅ прСдоставила Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ пСрСкрёстно подписанный ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹ΠΉ сСртификат «AAA Certificate Services«, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΎ 2028 Π³ΠΎΠ΄Π° ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ со старыми вСрсиями ОБ.

Π”ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅: ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Ρ‚Π°ΠΊΠΆΠ΅ проявляСтся Π² LibreSSL.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru