🐙 Manual de seguretat per a desenvolupadors ✓ Compliment obligatori

Configuració de 2FA a GitHub i gestió de codis de recuperació: Bones pràctiques

Amb l'augment constant dels atacs a la cadena de subministrament de programari de codi obert arreu del món, GitHub exigeix l'autenticació en dos passos (2FA) per a tots els desenvolupadors que hi col·laboren. Malauradament, milers d'enginyers perden completament l'accés a les seves organitzacions i repositoris privats cada mes per haver desatès els seus codis de recuperació. Aquesta guia tècnica cobreix la configuració de TOTP, l'arxiu en fred dels codis de recuperació, la interacció amb claus SSH i el rescat criptogràfic davant bloquejos d'emergència.

2FA
Equip de seguretat de 2FA-Tool
Actualitzat l'octubre de 2026
Temps estimat de lectura: 10 min de lectura (més de 2.400 paraules)
2FA a GitHub Codis de recuperació Cadena de subministrament
💡 Conclusions clau per a desenvolupadors (TL;DR)
  • L'obligatorietat és permanent: Els desenvolupadors que no configurin el 2FA abans de la data límit assignada veuran bloquejades les seves accions web i se'ls revocaran els permisos als repositoris de les organitzacions.
  • Els codis de recuperació són la vostra armilla salvavides: Els 16 codis de recuperació generats són d'un sol ús. Deseu-los immediatament en una caixa forta xifrada o en una impressió física en fred fora de línia.
  • Les contrasenyes tradicionals de Git ja no funcionen: Els enviaments (git push) per HTTPS no admeten codis interactius de 6 dígits. Heu d'utilitzar claus SSH o testimonis d'accés personal (PAT) amb permisos limitats.
  • Últim recurs criptogràfic: Si perdeu el telèfon i els codis, podeu demostrar la propietat del compte signant un desafiament d'identitat amb la vostra clau privada SSH local registrada prèviament.
01

Visió general de la política de 2FA obligatori de GitHub i justificació de seguretat

Històricament, les credencials de desenvolupadors compromeses provocaven vulnerabilitats catastròfiques a la cadena de subministrament de programari. Incidents de gran repercussió —com el segrest de paquets com event-stream, ua-parser-js, ctx i colors.js a npm i PyPI— van demostrar que un sol compte sostret podia posar en perill centenars de milers de projectes comercials i infraestructures crítiques dependents.

Els atacants recopilen credencials mitjançant llistes mundials de farciment de credencials (credential stuffing), infraestructures de pesca (phishing) i dependències de desenvolupament amb troians. Com que els enginyers de programari treballen habitualment amb accés arrel o administratiu al codi font i a les cadenes d'integració i desplegament continu (CI/CD), protegir els autors dels canvis (committers) va esdevenir una qüestió de seguretat internacional de la infraestructura.

Com a resposta, GitHub va establir un mandat universal per fases que requereix l'autenticació en dos passos per a tots els autors de codi, publicadors de paquets, usuaris empresarials i membres d'organitzacions:

📌 Conseqüències de superar la data límit d'inscripció al 2FA
  • La interfície web de GitHub mostra un modal de bloqueig permanent que impedeix revisar sol·licituds d'extracció (pull requests), comentar incidències (issues) i administrar repositoris fins que es completi la configuració del 2FA.
  • Les organitzacions empresarials que apliquen 2FA expulsaran automàticament els membres no conformes, retirant l'accés d'escriptura i revocant els privilegis dels repositoris a l'instant.
  • Les cadenes de flux de treball automatitzades, les claus de publicació de paquets npm i els permisos granulars de repositoris queden congelats fins que es verifiqui el compliment de la seguretat del compte.
02

Tutorial pas a pas: Vinculació de l'autenticador TOTP

Tot i que GitHub admet SMS, notificacions mòbils i claus de maquinari, l'aplicació d'autenticació TOTP RFC 6238 (com ara Google Authenticator, Bitwarden o 2FA-Tool) representa l'estàndard d'or per independència de proveïdors i fiabilitat fora de línia:

1

Pas 1: Anar a la configuració d'autenticació

Inicieu sessió a GitHub. Feu clic a la vostra imatge de perfil a la cantonada superior dreta ➔ Settings (Configuració). A la barra lateral de navegació esquerra, sota «Access» (Accés), seleccioneu Password and authentication (Contrasenya i autenticació).

Ruta: Settings ➔ Password and authentication ➔ Two-factor methods ➔ Set up authenticator app
2

Pas 2: Escanejar el codi QR i desar la clau secreta Base32 en brut

GitHub mostra un codi QR òptic juntament amb un enllaç de text que diu: «enter this text code instead» (introdueix aquest codi de text en el seu lloc).

💡 Consell professional de seguretat: Feu clic a l'enllaç de text i copieu la cadena secreta en Base32 de 32 caràcters (p. ex., A3J5N2O9...). Guardeu-la al vostre gestor de contrasenyes xifrat. Aquesta llavor alfanumèrica us permetrà tornar a derivar testimonis d'autenticació a qualsevol dispositiu si el vostre telèfon queda destruït.
3

Pas 3: Introduir el codi de 6 dígits per confirmar

Escanegeu el codi amb el vostre autenticador mòbil. Introduïu el número rotatiu de 6 dígits que apareix a la pantalla al camp de verificació de GitHub i feu clic a «Continue» (Continua).

03

Estàndards d'arxiu dels codis de recuperació i higiene criptogràfica

Un cop vinculat correctament el TOTP, GitHub mostra immediatament un quadre de diàleg amb 16 testimonis hexadecimals amb guió (p. ex., d4a2b-98f12). Tancar aquest quadre sense desar una còpia persistent és la causa més comuna de bloqueig permanent de comptes de desenvolupador.

🚨 Característiques criptogràfiques dels codis de recuperació

1. D'un sol ús exclusiu: Cada codi de recuperació s'invalida irreversiblement després del primer ús en substitució d'un codi TOTP.
2. Autoritat màxima: Un codi de recuperació anul·la la manca de maquinari i concedeix accés instantani al compte.
3. Hash al servidor amb coneixement zero: GitHub emmagatzema aquests codis com a hash criptogràfics irreversibles d'un sol sentit. L'equip d'assistència de GitHub no pot recuperar ni llegir els vostres codis originals sota cap circumstància!

Estratègia recomanada d'emmagatzematge en fred de tres nivells:

🥇 Fitxer adjunt al gestor de contrasenyes

Baixeu github-recovery-codes.txt i adjunteu-lo a la vostra entrada de GitHub a 1Password, Bitwarden o KeePassXC mitjançant claus mestres derivades amb Argon2id.

🥈 Caixa forta de maquinari aïllada

Deseu el fitxer de text en una unitat USB fora de línia xifrada amb VeraCrypt, mantinguda desconnectada de xarxes locals i sincronitzadors d'emmagatzematge al núvol.

🥉 Impressió física resistent a l'aigua

Imprimiu una còpia en paper, plastifiqueu-la contra la humitat i guardeu-la dins d'una caixa forta de seguretat domèstica per protegir-vos contra programari maliciós d'extracció d'informació remota.

Avís de prevenció de filtracions del porta-retalls: Quan copieu els vostres 16 codis de recuperació, aneu amb compte amb els gestors d'historial del porta-retalls (com ara Alfred, Raycast o l'historial del porta-retalls de Windows). Els codis sensibles desats en text pla a les bases de dades del porta-retalls poden ser extrets per programari maliciós de baixos privilegis. Buideu sempre el porta-retalls immediatament després d'enganxar les credencials a la vostra caixa forta xifrada.
04

Mètodes d'autenticació alternatius: SMS vs. claus d'accés (Passkeys) vs. GitHub Mobile

GitHub permet configurar mecanismes alternatius de seguretat secundaris. Reviseu la nostra anàlisi de seguretat dels vectors d'autenticació actuals:

Mètode Resistència a la pesca (Phishing) Vulnerabilitat a duplicació de SIM (SIM-Swap) Avaluació i cas d'ús pràctic
Claus d'accés / Claus de seguretat FIDO2 Absoluta (la vinculació d'origen de WebAuthn impedeix la pesca per intermediari) Immune ⭐⭐⭐⭐⭐ Recomanació principal (YubiKey / Touch ID)
Aplicació autenticadora TOTP Moderada (vulnerable a servidors intermediaris inversos en temps real) Immune ⭐⭐⭐⭐ Línia base universal (zero dependència de connectivitat)
Aprovació per notificació de GitHub Mobile Moderada (requereix sol·licitud de verificació de número de 2 dígits) Immune ⭐⭐⭐⭐ Excel·lent comoditat diària
Verificació alternativa per SMS Nul·la (senyalització SS7 sense xifrar, fàcilment interceptable) Alt risc ⭐ No recomanat per a mantenidors de projectes rellevants
05

Fluxos de Git al terminal: Claus SSH, PAT i la seva interacció amb el 2FA

Després d'activar el 2FA, els desenvolupadors es troben sovint amb errors immediats al terminal durant les pujades rutinàries de codi:

remote: Support for password authentication was removed on August 13, 2021.
fatal: Authentication failed for 'https://github.com/username/repo.git/'

Justificació tècnica: El protocol de transmissió de Git no pot gestionar diàlegs interactius de TOTP de 6 dígits. Per aquest motiu, GitHub va desactivar de manera permanent l'autenticació amb contrasenya de compte en brut per a peticions Git mitjançant HTTPS quan el 2FA està en vigor.

🔑 Opció A: Autenticació amb clau SSH (Recomanat)

Utilitza criptografia de clau pública (recomanat: ed25519). Les connexions SSH s'autentiquen mitjançant claus privades criptogràfiques locals i eludeixen completament el 2FA web sense sol·licituds freqüents de credencials.

ssh-keygen -t ed25519 -C "[email protected]"
🎫 Opció B: Testimonis d'accés personal (PAT)

Si el transport per HTTPS és obligatori, aneu a Settings ➔ Developer settings ➔ Personal access tokens per generar un testimoni amb permisos limitats. Quan el terminal us demani una contrasenya a la línia d'ordres, enganxeu el PAT en lloc de la vostra contrasenya de compte.

Signatura de canvis (commits) per SSH vs. Autenticació: Tingueu en compte que utilitzar una clau SSH per clonar i pujar canvis a repositoris és un procés diferent de la signatura criptogràfica de canvis. Podeu utilitzar el mateix parell de claus Ed25519 per signar canvis amb git config commit.gpgsign true i git config gpg.format ssh, generant insígnies d'autor verificat a GitHub juntament amb un control d'accés estricte amb 2FA.

06

Recuperació davant desastres: Desbloqueig de comptes sense 2FA

En cas d'una fallada catastròfica on hàgiu perdut el telèfon 2FA i el document de codis de recuperació, GitHub ofereix una última armilla salvavides criptogràfica: El desafiament de signatura amb clau SSH.

1
Iniciar la sol·licitud de desbloqueig de compte A la pantalla de 2FA durant l'inici de sessió, feu clic a «Unable to verify via 2FA?» (No podeu verificar mitjançant 2FA?) ➔ seleccioneu «Use emergency recovery code» (Utilitza un codi de recuperació d'emergència) ➔ si no en teniu cap, feu clic a «Request two-factor authentication reset» (Sol·licita el restabliment de l'autenticació en dos passos).
2
Verificar el codi d'un sol ús del correu de seguretat GitHub envia un PIN de confirmació de 6 dígits a la vostra adreça electrònica principal verificada. Introduïu el codi per passar a la verificació d'identitat.
3
Executar el desafiament de clau SSH al terminal local GitHub genera un valor d'un sol ús (nonce) únic per al desafiament i us indica que el signeu mitjançant el terminal del vostre equip de treball habitual de desenvolupament:
echo "UniqueChallengeString" | ssh-keygen -Y sign -n "github" -f ~/.ssh/id_ed25519
Enganxeu el bloc de signatura blindat al portal web. GitHub valida matemàticament que la signatura coincideix amb la vostra clau pública SSH registrada, establint la propietat definitiva del compte i desbloquejant el vostre perfil després d'un període de revisió.
🔒 Àmbit criptogràfic al client

Proveu la vostra clau secreta TOTP de GitHub localment

Abans de confirmar la configuració, proveu la vostra cadena secreta Base32 en brut a 2FA-Tool. Tots els hash es calculen localment mitjançant la Web Crypto API del navegador sense cap transmissió a servidors.

Obrir el generador en línia