- Obvezna primjena je trajna: Programeri koji ne konfiguriraju 2FA do zadanog roka gube mogućnost izvođenja radnji na web sučelju i bit će uklonjeni iz repozitorija organizacije.
- Kodovi za oporavak su vaš pojas za spašavanje: 16 generiranih kodova za oporavak su jednokratni. Odmah ih pohranite u šifrirani trezor ili u izvanmrežni fizički ispis.
- Lozinke za Git više ne rade: HTTPS Git slanje koda (git push) ne može prihvatiti interaktivne 6-znamenkaste kodove. Morate koristiti SSH ključeve ili tokene za osobni pristup (PAT) s ograničenim opsegom.
- Posljednje kriptografsko utočište: Ako izgubite telefon i kodove, vlasništvo možete dokazati potpisivanjem identifikacijskog izazova pomoću svog prethodno registriranog lokalnog privatnog SSH ključa.
Pregled obveznih 2FA pravila na GitHubu i sigurnosno obrazloženje
Kroz povijest, kompromitirane vjerodajnice programera izazvale su katastrofalne ranjivosti u lancu opskrbe softverom. Zvučni incidenti — poput preuzimanja paketa event-stream, ua-parser-js, ctx i colors.js na npm-u i PyPI-ju — pokazali su da samo jedan ukradeni račun može ugroziti stotine tisuća komercijalnih i kritičnih infrastrukturnih projekata.
Napadači prikupljaju vjerodajnice pomoću globalnih popisa za napade ubacivanjem vjerodajnica (credential-stuffing), phishing infrastrukture i trojaniziranih programerskih ovisnosti. Budući da softverski inženjeri rutinski rade s root ili administrativnim pristupom izvornom kodu i CI/CD cjevovodima isporuke, osiguravanje autora koda postalo je pitanje međunarodne infrastrukturne sigurnosti.
Kao odgovor na to, GitHub je uspostavio višefazni univerzalni mandat koji zahtijeva dvofaktorsku autentifikaciju za sve autore koda, izdavače paketa, korisnike poslovnih paketa i članove organizacija:
- GitHub web sučelje ulazi u obvezni modalni prozor koji blokira pregledavanje pull requestova, komentiranje problema (issues) i administraciju repozitorija dok se ne dovrši postavljanje 2FA.
- Poslovne organizacije koje provode 2FA automatski će izbaciti neusklađene članove, odmah im oduzimajući pravo pisanja i pristup repozitorijima.
- Cjevovodi automatiziranih radnih tijeka, ključevi za objavu npm paketa i granularne dozvole repozitorija zamrzavaju se dok se ne potvrdi sigurnosna usklađenost računa.
Vodič korak po korak: Uparivanje TOTP autentifikatora
Iako GitHub podržava SMS, mobilne obavijesti i hardverske ključeve, aplikacija za autentifikaciju temeljena na RFC 6238 TOTP standardu (npr. Google Authenticator, Bitwarden, 2FA-Tool) predstavlja zlatni standard neovisnosti o dobavljaču i pouzdanosti bez pristupa internetu:
1. korak: Idite na sigurnosne postavke autentifikacije
Prijavite se na GitHub. Kliknite svoju profilnu sliku u gornjem desnom kutu ➔ Settings (Postavke). Na lijevoj navigacijskoj traci pod "Access" odaberite Password and authentication (Lozinka i autentifikacija).
2. korak: Skenirajte QR kod i sačuvajte izvorni Base32 tajni ključ
GitHub prikazuje optički QR kod uz tekstualnu poveznicu: "enter this text code instead" (unesite ovaj tekstualni kod umjesto toga).
A3J5N2O9...). Spremite ga unutar svog šifriranog upravitelja lozinki. Ovaj alfanumerički ključ omogućuje vam ponovno generiranje autentifikacijskih tokena na bilo kojem uređaju ako vam telefon bude uništen.
3. korak: Unesite 6-znamenkasti kod za potvrdu
Skenirajte kod svojim mobilnim autentifikatorom. Unesite trenutni 6-znamenkasti broj prikazan na vašem zaslonu u GitHubovo polje za provjeru i kliknite "Continue" (Nastavi).
Standardi arhiviranja kodova za oporavak i kriptografska higijena
Nakon uspješnog uparivanja TOTP-a, GitHub odmah prikazuje modalni prozor sa 16 heksadecimalnih tokena odvojenih crticom (npr. d4a2b-98f12). Zatvaranje ovog prozora bez trajnog spremanja sigurnosne kopije najčešći je uzrok trajnog zaključavanja programerskih računa.
1. Isključivo jednokratna upotreba: Svaki kod za oporavak nepovratno se poništava nakon prve upotrebe umjesto TOTP koda.
2. Glavni autoritet: Kod za oporavak zaobilazi izgubljeni hardver i pruža trenutačni pristup računu.
3. Kriptografsko raspršivanje nultog znanja na poslužitelju: GitHub pohranjuje ove kodove kao nepovratne jednosmjerne kriptografske sažetke. Inženjeri GitHub podrške ni pod kojim okolnostima ne mogu oporaviti niti pročitati vaše izvorne kodove!
Preporučena trostupanjska strategija hladnog skladištenja:
Preuzmite datoteku github-recovery-codes.txt i priložite je svom GitHub unosu u 1Passwordu, Bitwardenu ili KeePassXC-u koristeći glavne ključeve izvedene putem algoritma Argon2id.
Spremite tekstualnu datoteku na izvanmrežni USB pogon šifriran VeraCryptom koji je isključen iz lokalnih mreža i sinkronizatora u oblaku.
Ispišite fizički primjerak na papir, plastificirajte ga radi zaštite od vlage i osigurajte unutar kućnog sefa kao zaštitu od zlonamjernih programa za krađu podataka (info-stealera).
Rezervne metode autentifikacije: SMS u odnosu na pristupne ključeve (Passkeys) i GitHub Mobile
GitHub dopušta konfiguriranje sekundarnih rezervnih mehanizama. Pregledajte našu sigurnosnu analizu trenutnih autentifikacijskih metoda:
| Metoda | Otpornost na phishing | Ranjivost na zamjenu SIM kartice (SIM-Swap) | Ocjena i praktična primjena |
|---|---|---|---|
| Pristupni ključevi / FIDO2 sigurnosni ključevi | Apsolutna (WebAuthn vezanje uz domenu sprječava proxy phishing) | Imuni | ⭐⭐⭐⭐⭐ Najbolja preporuka (YubiKey / Touch ID) |
| Aplikacija za TOTP autentifikaciju | Umjerena (Ranjiva na obrnute proxy poslužitelje u stvarnom vremenu) | Imuna | ⭐⭐⭐⭐ Univerzalna osnova (Nula ovisnosti o povezivosti) |
| GitHub Mobile Push odobrenje | Umjerena (Zahtijeva potvrdu 2-znamenkastog broja) | Imuna | ⭐⭐⭐⭐ Izvrsna svakodnevna praktičnost |
| Rezervna provjera putem SMS-a | Nula (Nešifrirana SS7 signalizacija, lako se presreće) | Visok rizik | ⭐ Ne preporučuje se autorima važnih projekata |
Git tijekovi rada u terminalu: SSH ključevi, PAT tokeni i interakcija s 2FA
Nakon aktivacije 2FA, programeri se često susreću s pogreškama u terminalu tijekom uobičajenog slanja koda:
fatal: Authentication failed for 'https://github.com/username/repo.git/'
Tehničko obrazloženje: Git protokol ne može obrađivati interaktivne dijaloge za unos 6-znamenkastog TOTP koda. Kao rezultat toga, GitHub je trajno ukinuo autentifikaciju lozinkom računa za HTTPS Git zahtjeve kada je 2FA aktivan.
Koristi kriptografiju javnog ključa (preporučeno: ed25519). SSH veze autentificiraju se putem lokalnih kriptografskih privatnih ključeva i u potpunosti zaobilaze web 2FA bez čestih upita za unos vjerodajnica.
Ako je prijenos putem HTTPS-a obvezan, idite na Settings ➔ Developer settings ➔ Personal access tokens kako biste generirali token sa specifičnim opsegom. Kada se u terminalu zatraži lozinka, zalijepite PAT umjesto lozinke svog računa.
Potpisivanje SSH predaja u odnosu na autentifikaciju: Imajte na umu da se upotreba SSH ključa za kloniranje i slanje repozitorija razlikuje od kriptografskog potpisivanja predaja (commitova). Možete upotrijebiti isti par Ed25519 ključeva za potpisivanje predaja pomoću git config commit.gpgsign true i git config gpg.format ssh, čime dobivate oznaku provjerenog autora na GitHubu uz strogu kontrolu pristupa putem 2FA.
Oporavak od katastrofe: Otključavanje zaključanih računa bez 2FA
U slučaju katastrofalnog kvara kada izgubite telefon s 2FA i dokument s kodovima za oporavak, GitHub nudi posljednji kriptografski pojas za spašavanje: Izazov s potpisom SSH ključa.
Lokalno testirajte svoj GitHub TOTP tajni ključ
Prije dovršetka postavljanja, testirajte svoj izvorni Base32 tajni niz u 2FA-Toolu. Svi se sažeci izračunavaju lokalno putem Web Crypto API-ja u pregledniku bez ikakvog slanja na poslužitelj.
📚 Povezani sigurnosni vodiči
Siguran prijenos 2FA računa između pametnih telefona pomoću izvanmrežnih QR kodova i sinkronizacije u oblaku.
Kako povratiti pristup računima na uslugama Google, Microsoft, Steam, Binance, Apple i Discord.
Od RFC-a 4226 do RFC-a 6238: Matematičko skraćivanje sažetka, desinkronizacija i primjena na webu.