Avete aggiornato la chiave RSA SSH pubblica di GitHub? E sapete perché avete dovuto farlo? Esatto, la chiave privata non era poi così privata.

0

Se vie è capitato recentemente di effettuare un push nel vostro repository GitHub utilizzando SSH non vi sarà certamente sfuggito il messaggio relativo al cambiamento chiave pubblica:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
SHA256:uNiVztksCsDhcc0u9e8BujQXVUpKZIDTMczCvj3tD2s.
Please contact your system administrator.
Add correct host key in ~/.ssh/known_hosts to get rid of this message.
Host key for github.com has changed and you have requested strict checking.
Host key verification failed.

Ora, qualcuno non si sarà posto il problema ed avrà semplicemente rimpiazzato la chiave con quella aggiornata, nella fattispecie eliminando la vecchia:

$ ssh-keygen -R github.com

E rifacendo la connessione mediante l’utente git@github.com (accettando conseguentemente la chiave proposta), oppure aggiungendo la nuova chiave:

github.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCj7ndNxQowgcQnjshcLrqPEiiphnt+VTTvDP6mHBL9j1aNUkY4Ue1gvwnGLVlOhGeYrnZaMgRK6+PKCUXaDbC7qtbW8gIkhL7aGCsOr/C56SJMy/BCZfxd1nWzAOxSDPgVsmerOBYfNqltV9/hWCqBywINIR+5dIg6JTJ72pcEpEjcYgXkE2YEFXV1JHnsKgbLWNlhScqb2UmyRkQyytRLtL+38TGxkxCflmO+5Z8CSSNY7GidjMIZ7Q4zMjA2n1nGrlTDkzwDCsw+wqFPGQA179cnfGWOWRVruj16z6XyvxvjJwbz0wQZ75XK5tKSb7FNyeIEs4TT4jk+S4dhPeAUC5y+bDYirYgM4GC7uEnztnZyaVWQ7B381AK4Qdrwt51ZqExKbQpTUNn+EjqoTwvqNj4kqx5QUCI0ThS/YkOxJCXmPUWZbhjpCg56i+2aB6CmK2JGhn57K5mj0MNdBXA4/WnwH6XoPWJzK5Nyu2zB3nAZp+S5hpQs+p1vN1/wsjk=

All’interno del file ~/.ssh/known_hosts.

Fin qui la problematica tecnica, ma le ragioni invece quali sono?

Le ha spiegate GitHub stessa racconta nel blog post We updated our RSA SSH host key, giustificando la questione in questo modo:

We did this to protect our users from any chance of an adversary impersonating GitHub or eavesdropping on their Git operations over SSH. This key does not grant access to GitHub’s infrastructure or customer data. This change only impacts Git operations over SSH using RSA. Web traffic to GitHub.com and HTTPS Git operations are not affected.

Lo abbiamo fatto per proteggere i nostri utenti dalla possibilità che qualcuno impersoni GitHub o intercetti le operazioni Git mediante SSH. Questa chiave non garantisce l’accesso all’infrastruttura GitHub o dati dei clienti. Questo cambiamento impatta le operazioni Git mediante SSH via RSA. Il traffico Web verso GitHub.com e le operazioni Git via HTTPS non sono impattate.

Sembra tutto normale, ma subito sotto arriva la bomba:

This week, we discovered that GitHub.com’s RSA SSH private key was briefly exposed in a public GitHub repository.

Questa settimana abbiamo scoperto che la chiave RSA privata è stata per poco esposta in un repository GitHub pubblico.

Sottolineiamo: la chiave RSA privata di GitHub è stata esposta pubblicamente.

Cosa si potrebbe fare con la chiave privata? Praticamente tutto, è solo una questione di fantasia, ad esempio esplorare repository privati. Oltretutto non si sa per quanto tempo la chiave sia stata esposta e quindi potenzialmente in possesso di altri.

Ora la situazione è rientrata, ma è bene ricordarsi che, come ricorda l’articolo GitHub private repos considered private-­ish citando Jeff Goldblum in Jurassic Park, “la vita trova sempre una via”.

Quindi se pensavate che conservare secret nel vostro repository GitHub fosse una cosa sicura solo perché era privato, beh, è ora di ricredervi.

Da sempre appassionato del mondo open-source e di Linux nel 2009 ho fondato il portale Mia Mamma Usa Linux! per condividere articoli, notizie ed in generale tutto quello che riguarda il mondo del pinguino, con particolare attenzione alle tematiche di interoperabilità, HA e cloud.
E, sì, mia mamma usa Linux dal 2009.