- Obvezna uveljavitev je trajna: Razvijalcem, ki ne konfigurirajo 2FA do določenega roka, je onemogočeno izvajanje spletnih dejanj in odvzet dostop do repozitorijev organizacije.
- Kode za obnovitev so vaš rešilni jopič: 16 ustvarjenih kod za obnovitev je za enkratno uporabo. Takoj jih shranite v šifrirano shrambo ali v fizično tiskano obliko brez povezave.
- Gesla za Git ne delujejo več: Potiski Git prek HTTPS ne morejo sprejeti interaktivnih 6-mestnih kod. Uporabiti morate ključe SSH ali osebne dostopne žetone (PAT) z ustreznim obsegom dovoljenj.
- Kriptografska zadnja možnost: Če izgubite telefon in kode, lahko dokažete lastništvo tako, da podpišete identifikacijski izziv z uporabo svojega predhodno registriranega lokalnega zasebnega ključa SSH.
Pregled politike obvezne 2FA na GitHubu in varnostna utemeljitev
V preteklosti so ogrožene poverilnice razvijalcev povzročile katastrofalne ranljivosti v dobavni verigi programske opreme. Odmevni incidenti – kot je bil prevzem paketov event-stream, ua-parser-js, ctx in colors.js v ekosistemih npm in PyPI – so dokazali, da lahko en sam ukraden račun ogrozi več sto tisoč povezanih komercialnih projektov in kritičnih infrastruktur.
Napadalci zbirajo poverilnice z uporabo globalnih seznamov ukradenih gesel (credential stuffing), lažnega predstavljanja (phishing) in trojanskih odvisnosti razvijalcev. Ker programski inženirji redno delajo s skrbniškim dostopom do izvorne kode in cevovodov CI/CD, je zaščita avtorjev kode postala vprašanje mednarodne varnosti infrastrukture.
V odgovor na to je GitHub uvedel večfazno univerzalno zahtevo po dvofaktorski avtentikaciji za vse razvijalce, izdajatelje paketov, poslovne uporabnike in člane organizacij:
- Spletni vmesnik GitHub preide v način zapore, ki prepoveduje pregledovanje zahtevkov za združitev (pull request), komentiranje težav in upravljanje repozitorijev, dokler nastavitev 2FA ni končana.
- Poslovne organizacije, ki uveljavljajo 2FA, samodejno izključijo neskladne člane, s čimer jim takoj odvzamejo pravice do pisanja in privilegije repozitorija.
- Avtomatizirani cevovodi, ključi za objavo paketov npm in podrobna dovoljenja za repozitorije so zamrznjeni, dokler ni potrjena varnostna skladnost računa.
Postopek seznanjanja avtentikatorja TOTP po korakih
Čeprav GitHub podpira SMS, potisna obvestila in varnostne ključe, aplikacija TOTP avtentikatorja po standardu RFC 6238 (npr. Google Authenticator, Bitwarden, 2FA-Tool) predstavlja zlati standard glede neodvisnosti od ponudnika in zanesljivosti brez povezave:
1. korak: Odprite nastavitve preverjanja pristnosti
Prijavite se v GitHub. Kliknite sliko svojega profila v zgornjem desnem kotu ➔ Settings. V levem navigacijskem meniju pod razdelkom »Access« izberite Password and authentication.
2. korak: Skenirajte kodo QR in shranite neobdelani tajni ključ Base32
GitHub prikaže optično kodo QR skupaj z besedilno povezavo: »enter this text code instead«.
A3J5N2O9...). Shranite ga v svoj šifrirani upravitelj gesel. To alfanumerično seme vam omogoča ponovno izpeljavo avtentikacijskih žetonov na kateri koli napravi, če se vaš telefon uniči.
3. korak: Vnesite 6-mestno kodo za potrditev
Skenirajte kodo z mobilnim avtentikatorjem. Vnesite vrtečo se 6-mestno številko, prikazano na zaslonu, v potrditveno polje na GitHubu in kliknite »Continue«.
Standardi arhiviranja kod za obnovitev in kriptografska higiena
Po uspešnem seznanjanju TOTP GitHub takoj prikaže modalno okno s 16 šestnajstiškimi žetoni z vezaji (npr. d4a2b-98f12). Zaprtje tega okna brez trajne varnostne kopije je najpogostejši razlog za trajno izgubo dostopa do razvijalskih računov.
1. Samo za enkratno uporabo: Vsaka koda za obnovitev se po prvi uporabi namesto kode TOTP nepovratno razveljavi.
2. Glavna avtoriteta: Koda za obnovitev zaobide manjkajočo strojno opremo in omogoči takojšen dostop do računa.
3. Zgoščevanje na strežniku brez poznavanja vsebine (Zero-Knowledge): GitHub hrani te kode kot enosmerne kriptografske zgoščene vrednosti. Inženirji podpore GitHub pod nobenim pogojem ne morejo obnoviti ali prebrati vaših izvirnih kod!
Priporočena tristopenjska strategija hrambe na hladnem (Cold Storage):
Prenesite datoteko github-recovery-codes.txt in jo priložite svojemu vnosu za GitHub v orodjih 1Password, Bitwarden ali KeePassXC z uporabo glavnih ključev, izpeljanih z Argon2id.
Shranite besedilno datoteko na pogon USB, šifriran z VeraCrypt, ki je odklopljen iz lokalnih omrežij in orodij za sinhronizacijo v oblaku.
Natisnite fizični izvod na papir, ga laminirajte za zaščito pred vlago in shranite v domači sef ter se tako zavarujte pred zlonamerno programsko opremo na daljavo.
Nadomestne metode preverjanja pristnosti: SMS v primerjavi s Passkeys in GitHub Mobile
GitHub omogoča nastavitev sekundarnih nadomestnih mehanizmov. Preglejte našo varnostno primerjavo trenutnih overitvenih vektorjev:
| Metoda | Odpornost proti ribarjenju (Phishing) | Ranljivost za zamenjavo kartice SIM | Ocena in praktična uporaba |
|---|---|---|---|
| Passkeys / varnostni ključi FIDO2 | Popolna (WebAuthn vezava na izvor preprečuje proxy ribarjenje) | Imuna | ⭐⭐⭐⭐⭐ Najboljše priporočilo (YubiKey / Touch ID) |
| Aplikacija avtentikatorja TOTP | Zmerna (Ranljiva za povratne posrednike v realnem času) | Imuna | ⭐⭐⭐⭐ Univerzalno izhodišče (Brez odvisnosti od omrežja) |
| Potrditev s potisnim obvestilom v GitHub Mobile | Zmerna (Zahteva preverjanje z dvomestno številko) | Imuna | ⭐⭐⭐⭐ Izjemno priročno za vsakodnevno rabo |
| Nadomestno preverjanje prek SMS | Nična (Nešifrirano signaliziranje SS7, enostavno prestrezanje) | Visoko tveganje | ⭐ Ni priporočljivo za vzdrževalce pomembnih projektov |
Poteki dela v terminalu Git: Ključi SSH, PAT in interakcija z 2FA
Po aktivaciji 2FA razvijalci pri običajnih potiskih kode v terminalu pogosto naletijo na napako:
fatal: Authentication failed for 'https://github.com/username/repo.git/'
Tehnična utemeljitev: Protokol Git ne more obdelati interaktivnega dialoga za 6-mestno kodo TOTP. Zato je GitHub trajno ukinil avtentikacijo z geslom računa za zahteve Git prek HTTPS, ko je aktivirana 2FA.
Uporablja kriptografijo javnih ključev (priporočeno: ed25519). Povezave SSH se avtenticirajo prek lokalnih zasebnih ključev in v celoti zaobidejo spletni 2FA brez ponavljajočih se zahtev po geslih.
Če je protokol HTTPS obvezen, odprite Settings ➔ Developer settings ➔ Personal access tokens in ustvarite žeton z ustreznimi dovoljenji. Ko vas terminal pozove k vnosu gesla, prilepite žeton PAT namesto gesla svojega računa.
Podpisovanje objav s ključi SSH v primerjavi s preverjanjem pristnosti: Uporaba ključa SSH za kloniranje in potiskanje repozitorijev se razlikuje od kriptografskega podpisovanja objav (commit signing). Isti par ključev Ed25519 lahko uporabite za podpisovanje objav z ukazoma git config commit.gpgsign true in git config gpg.format ssh, s čimer pridobite preverjene značke avtorja na GitHubu skupaj s strogim nadzorom dostopa 2FA.
Obnovitev po nesreči: Odklepanje zaklenjenih računov brez 2FA
V primeru katastrofalne izgube telefona z 2FA in dokumenta s kodami za obnovitev GitHub ponuja zadnjo kriptografsko rešilno bilko: Izziv s podpisom ključa SSH (SSH Key Signature Challenge).
Preizkusite svoj tajni ključ GitHub TOTP lokalno
Preden zaključite nastavitev, preizkusite svoj neobdelani niz Base32 v orodju 2FA-Tool. Vse zgoščene vrednosti se računajo lokalno v brskalniku prek Web Crypto API brez prenosa podatkov na strežnik.
📚 Sorodni varnostni vodniki
Varen prenos računov 2FA med pametnimi telefoni z uporabo kod QR brez povezave in sinhronizacije v oblaku.
Kako obnoviti dostop do računov Google, Microsoft, Steam, Binance, Apple in Discord.
Od RFC 4226 do RFC 6238: Matematično krajšanje zgoščenih vrednosti, desinhronizacija in spletni standardi.