opened image

Sertifikāta atslēga izrādījās skaitlis 4: kas jāatjaunina serverī

 

 

 

Viena no sertifikācijas iestādēm — eMudhra — glabāja tik vājas privātās atslēgas, ka tās varēja uzminēt vienas sekundes laikā. Viena atslēga burtiski bija skaitlis 4. Ar šādām atslēgām iespējams viltot bankas, maksājumu sistēmas vai jebkuras citas vietnes „drošības” sertifikātu.

Pārlūkprogrammas savus lietotājus jau ir pasargājušas. Savukārt serveri — ne vienmēr. Ja jūsu serverī darbojas skripti, vietnes vai programmas, kas sazinās ar citiem pakalpojumiem, atjauniniet uzticamo sertifikātu sarakstu. Tas aizņems aptuveni 5 minūtes.

 

 

Kas ir sertifikāts?

 

Atverot bankas vietni, blakus tās adresei redzat slēdzenes ikonu. Tā norāda, ka vietne ir īsta, nevis viltojums. Bet kā pārlūkprogramma to zina?

Iedomājieties notāru. Jūs atnesat dokumentu, notārs to pārbauda un uzliek zīmogu. Visi šim zīmogam uzticas. Ja uz dokumenta ir pazīstama notāra zīmogs, dokumentu uzskata par autentisku.

Internetā notāru lomu pilda sertifikācijas iestādes. Pasaulē to ir aptuveni 140. Tās izsniedz vietnēm sertifikātus — sava veida „apliecinātus dokumentus”. Pārlūkprogrammas, tālruņi un serveri glabā sarakstu ar iestādēm, kurām uzticas.

Katram notāram ir savs zīmogs — privātā atslēga. Kamēr šis zīmogs tiek droši glabāts, dokumentu nav iespējams viltot.

 

 

Kas notika?

 

 

eMudhra ir Indijas sertifikācijas iestāde, kurai uzticas Chrome, Firefox, Apple un Microsoft.

2025. gada aprīlī eMudhra izveidoja astoņus jaunus „zīmogus” sertifikātu izsniegšanai: sešus vietnēm un divus programmatūras parakstīšanai. Skripta kļūdas dēļ atslēgas izrādījās ārkārtīgi īsas.

Parasta atslēga ir skaitlis ar vairāk nekā simt cipariem. To nebūtu iespējams uzminēt pat miljoniem gadu laikā. Visas astoņas eMudhra atslēgas bija mazākas par 256. Viena bija 4, otra — 56, trešā — 115.

Tas ir kā seifs ar kodu „0004”. Uzbrucējam nav vajadzīgi nekādi īpaši rīki — pietiek izmēģināt dažus variantus. Drošības pētnieks Skots Helms (Scott Helme) atrada visas astoņas atslēgas mazāk nekā sekundes laikā.

Kļūda tika atklāta tikai 2026. gada 17. oktobrī. Tas nozīmē, ka pusotru gadu ikviens potenciāli varēja viltot sertifikātus. 18. oktobrī eMudhra atsauca visus astoņus „zīmogus”. Nav zināms, vai kāds tos paspēja izmantot.

 

 

Kādi ir riski?

 

 

Ar nozagtu zīmogu var uzdoties par jebkuru citu — piemēram, banku, maksājumu sistēmu vai e-pasta pakalpojumu.

Lūk, vienkāršs piemērs. Jūsu interneta veikals nosūta pasūtījuma datus maksājumu sistēmai. Uzbrucējs nostājas pa vidu un uzrāda viltotu sertifikātu. Jūsu serveris ierauga „notāra”, kuram uzticas, zīmogu un bez iebildumiem nodod datus. Tas ir kā atdot aploksni ar naudu cilvēkam kurjera formastērpā, nepārbaudot, vai viņš tiešām ir kurjers.

Tā nav tikai teorija. Skots Helms viltoja maksājumu pakalpojuma Stripe sertifikātu. Populārie rīki curl, Python un Node.js pieņēma viltojumu bez neviena brīdinājuma.

 

 

Uz ko tas attiecas?

 

Pārlūkprogrammas jau ir aizsargātas. Chrome, Firefox un Safari ir automātiski atjauninātas. Ja jūs tikai apmeklējat vietnes, nekas nav jādara.

Serveri ne vienmēr atjauninās automātiski. Serverim ir savs uzticamo „notāru” saraksts. Tas tiek atjaunināts kopā ar operētājsistēmu. Turklāt dažas programmas glabā atsevišķu sarakstu, kas jāatjaunina neatkarīgi.

 

Atjauninājumi ir vajadzīgi, ja jūsu serverī:

  • darbojas vietne vai interneta veikals, kas pieslēdzas maksājumu sistēmām, API vai e-pasta pakalpojumiem;
  • tiek palaisti Python, Node.js, Go vai Java skripti un programmas;
  • cron uzdevumos tiek izmantoti curl vai wget;
  • darbojas Docker konteineri.

 

Vienkārši sakot, tas attiecas gandrīz uz katru serveri.

 

 

Atjauniniet sistēmas sertifikātus

 

Uzticamo „notāru” saraksts atrodas pakotnē ca-certificates. To var atjaunināt ar vienkāršu komandu.

 

Ubuntu un Debian:

sudo apt update
sudo apt install --only-upgrade ca-certificates

Debian 13 gadījumā labotā pakotnes versija ir 20250419+deb13u1 vai jaunāka.

 

AlmaLinux, Rocky Linux, CentOS Stream:

sudo dnf upgrade ca-certificates

 

Alpine Linux:

apk upgrade ca-certificates

Alpine labotā versija ir 20261020-r0 vai jaunāka.

Serveris nav jāpārstartē. Tomēr ieteicams restartēt pakalpojumus, kas darbojas jau ilgu laiku. Tie palaišanas brīdī varēja saglabāt atmiņā veco sarakstu.

 

 

Atjauniniet Python, Node.js, Go un Java

 

Dažas programmas neizmanto sistēmas sertifikātu sarakstu. Tām ir savs. Tas ir kā darbinieks, kurš kabatā nēsā vecu tālruņu grāmatiņu. Jūs birojā atjaunināt kontaktu sarakstu, bet viņš joprojām zvana uz vecajiem numuriem.

PHP, curl un wget parasti izmanto sistēmas sarakstu. Tiem pietiek ar pirmo soli. Taču tālāk minētie komponenti jāpārbauda un jāatjaunina atsevišķi.

 

KomponentsKā pārbaudīt versijuDrošā versija
Python (pakotne certifi)

pip show certifi

2026.10.19 vai jaunāka

Node.js

node -v

22.23.4, 24.22.1 vai 26.12.1 un jaunākas

Go

go version

1.27.3 vai 1.26.10 un jaunākas

Java

java -version

Jaunākais atjauninājums jūsu izmantotajai versijai

 

Python. Atjauniniet pakotni ar komandu:

pip install --upgrade certifi

 

Node.js. Tas ir tas pats atjauninājums, kas novērš bīstamu Brotli ievainojamību. Tāpēc Node.js ir vērts atjaunināt jebkurā gadījumā.

Go. Atjauniniet Go un no jauna kompilējiet savas programmas. Iepriekš kompilēta programma turpinās uzticēties vecajiem „zīmogiem”.

Node.js 20 un vecākas versijas labojumu nesaņems. Šīs versijas vairs netiek atbalstītas. Ir jāpāriet uz jaunāku versiju.

 

 

Izveidojiet Docker attēlus no jauna

 

Katrs Docker konteiners ir atsevišķa maza sistēma ar savu sertifikātu sarakstu. Servera atjaunināšana to nemaina. Konteiners ir kā koferis, kuru sakravājāt pirms mēneša: tajā joprojām ir viss, ko toreiz ielikāt.

 

Kas jādara:

  1. Atjauniniet bāzes attēlu. Piemēram, iegūstiet jaunāko node:24, python:3.13 vai debian:13 versiju.

  2. Izveidojiet attēlus no jauna:

docker compose build --pull
  1. Restartējiet konteinerus:
docker compose up -d

 

Parametrs --pull ir svarīgs. Bez tā Docker var izmantot vecu bāzes attēlu no kešatmiņas, un nekas nemainīsies.

 

 

Ko darīt, ja pēc atjaunināšanas kaut kas pārstāj darboties?

 

Kopā ar nederīgajiem „zīmogiem” no uzticamo saraksta tika izņemta arī pati eMudhra — „notāru birojs”, kam tie piederēja. Tāpēc aptuveni 30 tūkstoši parastu sertifikātu arī vairs netika uzskatīti par uzticamiem. To īpašniekiem būs jāsaņem jauni sertifikāti citā sertifikācijas iestādē.

Tādēļ pēc atjaunināšanas jūsu skripts vai vietne var pārstāt pieslēgties kādam pakalpojumam. Žurnālos var parādīties šādas kļūdas:

certificate verify failed
unable to get local issuer certificate

 

Visticamāk, attiecīgā pakalpojuma sertifikātu izdevusi eMudhra. Jūsu serveris tam vairs neuzticas. Un tā tam arī jābūt.

 

Ko darīt:

  1. Noskaidrojiet adresi, ar kuru savienojumu vairs nevar izveidot.
  2. Paziņojiet pakalpojuma īpašniekam. Viņam ir jānomaina sertifikāts.
  3. Sagaidiet nomaiņu vai īslaicīgi izmantojiet citu pakalpojumu.

Ko nedrīkst darīt: neatslēdziet sertifikātu pārbaudi, piemēram, izmantojot verify=False Python vai -k curl. Tas ir kā noņemt durvju slēdzeni tāpēc, ka atslēga vairs neder. Problēma it kā pazudīs, bet durvis paliks atvērtas ikvienam.

 

Pārbaudes saraksts

  • Atjaunināta pakotne ca-certificates
  • Restartēti ilgstoši darbojošies pakalpojumi
  • Atjaunināta Python pakotne certifi
  • Node.js atjaunināts uz 22.23.4, 24.22.1 vai 26.12.1
  • Atjaunināts Go un programmas kompilētas no jauna
  • Atjaunināta Java
  • Docker attēli izveidoti no jauna ar --pull
  • Pārbaudīti žurnāli, vai tajos nav sertifikātu kļūdu
  • Nekur nav atslēgta sertifikātu pārbaude

 

Nevēlaties ar to nodarboties paši?

 

Katru nedēļu tiek atklātas jaunas ievainojamības. Ar Premium jums tās nebūs jārisina vienatnē.

 

Atjaunināt vienu pakotni nav sarežģīti. Grūtāk ir atrast visas vietas serverī, kur programmas glabā savus sertifikātu sarakstus. Python vienā vietā, Node.js citā, bet trīs Docker konteineri — vēl citur. Ja pēc atjaunināšanas jūsu vietnē pārstāj darboties maksājumi, katra minūte maksā naudu.

Šādiem gadījumiem Zomro piedāvā divas iespējas.

 

SOD: visu izdarīsim jūsu vietā

 

Mūsu sistēmas administrators:

  • atjauninās sistēmas sertifikātus;
  • atradīs un atjauninās Python, Node.js, Go un Java instalācijas, kurām ir savi sertifikātu saraksti;
  • no jauna izveidos Docker attēlus;
  • pārbaudīs, vai vietne un integrācijas darbojas.

Cena: €12.50 par katrām 15 darba minūtēm.

Pasūtīt servera pārbaudi

 

 

Premium: ātra palīdzība, kad tā nepieciešama

 

Atbilde uz parastu tehniskā atbalsta pieprasījumu var aizņemt līdz 10 stundām. Ar Premium mēs atbildam 5–30 minūšu laikā. Ja pēc atjaunināšanas pārstāj darboties maksājumi vai integrācija, jums nebūs jāgaida pusi dienas.

Pieslēgt Premium