GitHub ha recentemente introdotto due nuove funzionalità volte a potenziare la sicurezza degli sviluppatori e migliorare l’esperienza di sviluppo sulla piattaforma. Nella sua versione beta pubblica, la piattaforma ha annunciato l’introduzione delle “passkey” come metodo sicuro e senza password per accedere agli account degli utenti. Le passkey sostituiscono le tradizionali password e i metodi di autenticazione a due fattori (2FA), offrendo un livello di sicurezza superiore e riducendo il rischio di violazioni degli account.

Hirsch Sighal, product manager presso GitHub, ha dichiarato: “Le passkey rappresentano il miglior mix di sicurezza e affidabilità, rendendo gli account notevolmente più sicuri senza compromettere l’accesso. Questo risolve un problema che persiste in altri metodi 2FA, come gli SMS, TOTP e le chiavi di sicurezza per dispositivi singoli. Con il nostro nuovo aggiornamento, gli sviluppatori possono registrare facilmente una passkey sul proprio account GitHub e dire addio alle password per sempre.”

Inoltre, GitHub ha introdotto una nuova funzionalità chiamata “coda di unione” per la gestione automatizzata delle branch. Questa funzionalità consente a diversi sviluppatori di eseguire il commit del codice, mentre gestisce in modo efficiente le richieste pull che si allineano alle modifiche effettuate. Nel caso si verifichino problemi, gli sviluppatori vengono tempestivamente avvisati.

Gli ingegneri hanno affrontato la sfida di unire direttamente una branch occupata, che può causare conflitti di codice e un ciclo frustrante di ri-lavorazione.

La coda di unione di GitHub risolve questo problema creando una branch temporanea. Questa branch incorpora le modifiche più recenti dalla branch principale, le modifiche provenienti da altre richieste pull già in coda e le modifiche provenienti dalle nuove richieste pull.

Secondo la società, questi aggiornamenti mettono al primo posto la sicurezza degli sviluppatori e semplificano il processo di sviluppo, contribuendo a consolidare la reputazione di GitHub come piattaforma affidabile e user-friendly.

Prima dell’introduzione della coda di unione, gli sviluppatori spesso si trovavano in un ciclo di aggiornamento delle branch delle richieste pull prima di poter effettuare l’unione. Questo passaggio era necessario per garantire che le loro modifiche non interferissero con la branch principale durante l’unione.

Ad ogni aggiornamento, era necessario completare un nuovo ciclo di controlli di integrazione continua (CI) prima che lo sviluppatore potesse procedere con l’unione. Inoltre, se veniva unita un’altra richiesta pull, ogni sviluppatore doveva ripetere l’intero processo.

Per semplificare e automatizzare questo flusso di lavoro, la coda di unione gestisce sistematicamente l’unione delle richieste pull del codice. Ogni richiesta pull nella coda viene creata insieme alle richieste pull precedenti.

Quando un utente indirizza una richiesta pull verso una branch utilizzando la coda di unione, può aggiungerla alla coda facendo clic su “Unisci quando pronto” nella pagina della richiesta pull o tramite GitHub Mobile, una volta soddisfatti i requisiti per l’unione.

Questa azione crea una branch temporanea all’interno della coda, che comprende le modifiche più recenti dalla branch principale, le modifiche provenienti dalle altre richieste pull già presenti nella coda e le modifiche dalla richiesta pull dell’utente.

Se una richiesta pull nella coda incontra dei conflitti di unione o non supera i controlli di stato obbligatori, viene automaticamente rimossa dalla coda quando raggiunge la parte anteriore della coda.

Contemporaneamente, viene inviata una notifica all’utente. Una volta risolto il problema, la richiesta pull può essere aggiunta nuovamente alla coda.

Gli sviluppatori possono accedere alla pagina dei dettagli della coda tramite le branch o la pagina delle richieste pull per ottenere una panoramica completa dello stato della coda. Questa pagina fornisce una visione d’insieme delle richieste pull in coda, inclusi il loro stato, i controlli di stato richiesti e un tempo stimato per l’unione.

Inoltre, offre informazioni dettagliate sul numero di richieste pull unite e tiene traccia delle tendenze degli ultimi 30 giorni.

Secondo Singhal di GitHub, la maggior parte delle violazioni della sicurezza deriva da attacchi poco costosi e comuni, come l’ingegneria sociale, il furto di credenziali e le perdite. Ha affermato che oltre l’80% delle violazioni dei dati sono attribuibili alle password.

La funzione passkey è stata introdotta in risposta a questi problemi. Rafforza la sicurezza degli account degli sviluppatori, garantendo al contempo un’esperienza utente priva di interruzioni. GitHub aveva precedentemente implementato l’autenticazione a due fattori (2FA) e ora sta ampliando ulteriormente i suoi sforzi con l’introduzione dell’autenticazione passkey su GitHub.com.

“Le password o i token rubati sono la principale causa di accesso non autorizzato agli account (ATO). GitHub offre la scansione dei segreti per rilevare eventuali segreti trapelati, come password o token, al fine di ridurre i furti e aumentare la sicurezza delle passkey. Questa nuova funzionalità offre un modo efficace per prevenire il furto di password e gli ATO”, ha affermato Singhal.

Singhal ha sottolineato che le passkey offrono una maggiore resistenza agli attacchi di phishing rispetto alle tradizionali password e sono significativamente più difficili da indovinare.

“Inoltre, non è necessario ricordare nulla: i dispositivi lo fanno per te e verificano la tua identità prima di autenticarti su qualsiasi sito web a cui stai accedendo. Quindi, le passkey sono generalmente più sicure, più facili da usare e più difficili da smarrire”, ha aggiunto.

Ha spiegato che una situazione comune che può portare alla perdita dell’accesso a un account GitHub è il danneggiamento o la sostituzione di un telefono. Questo problema si verifica quando un utente configura il 2FA su un dispositivo che successivamente smette di funzionare correttamente, lasciando l’utente incapace di utilizzare i metodi di 2FA rimanenti e di fatto bloccando l’account.

Le passkey offrono una soluzione, consentendo la sincronizzazione tra dispositivi facilitata da provider di passkey affidabili come iCloud, Dashlane, 1Password, Google e Microsoft.

Questi provider e altri hanno stabilito sistemi sicuri che garantiscono il trasferimento senza interruzioni delle passkey tra i dispositivi e nel cloud. Di conseguenza, la perdita o il danneggiamento di un singolo dispositivo non comporta più la perdita permanente della passkey.

“A livello tecnico, le passkey sono una coppia di chiavi pubblica-privata generate in base al dominio. Questo garantisce tre cose: non ci sono due passkey uguali, resistenza al phishing e credenziali al riparo dagli hacker”, ha spiegato Singhal. “Il vantaggio principale è la facilità di accesso ai nuovi dispositivi senza compromettere la sicurezza dell’account. Ad esempio, puoi avere una passkey sul tuo telefono e usarla per accedere alla libreria senza dover ricorrere a credenziali di backup o alla tua password.”

La classica autenticazione cross-device (CDA) in OAuth2 si basa sul flusso di codice del dispositivo, che può essere vulnerabile agli attacchi di ripetizione. In tali attacchi, un utente malintenzionato manipola la situazione inviando un codice QR o un codice di accesso del dispositivo alla vittima. Se la vittima utilizza questo codice per accedere, autorizza inconsapevolmente la sessione dell’aggressore.

Con le passkey, la CDA adotta un approccio diverso. Stabilisce un canale sicuro e dedicato direttamente tra i due dispositivi coinvolti. Questo canale unico consente a un dispositivo di utilizzare la passkey di un altro dispositivo senza esporsi alle effettive credenziali.

Singhal ha sottolineato che il nuovo aggiornamento aumenta anche la resistenza agli attacchi di phishing. Ciò viene ottenuto tramite il dispositivo di autenticazione, come un telefono, che verifica la prossimità del dispositivo richiedente, come un laptop.

“Questo significa che un utente malintenzionato non può inviare il codice QR della CDA a una vittima e indurla a utilizzarlo per accedere: il telefono scannerizzerà il codice QR e cercherà di connettersi al computer dell’attaccante. Poiché il computer non esiste, l’autenticazione fallirà, insieme all’attacco stesso”, ha affermato.

Di Fantasy