🗝️ Perché la chiave pubblica si può ricavare da quella privata (ma non il contrario)

  

Molti utenti SSH credono che chiave pubblica e privata siano entità indipendenti.
In realtà la chiave pubblica è contenuta matematicamente nella privata, e può sempre essere ricostruita se la privata è disponibile.

Questo articolo spiega:

  • perché è possibile (teoria crittografica)
  • come farlo concretamente (OpenSSH e PuTTY)
  • cosa NON è possibile fare (limiti e sicurezza)
🔗 Ti piace Techelopment? Dai un'occhiata al sito per tutti i dettagli!

1️⃣ Fondamenti teorici (senza formule pesanti)

Crittografia asimmetrica: un riassunto corretto

Un sistema a chiave pubblica si basa su:

  • una chiave privata → segreta
  • una chiave pubblica → distribuibile

Ma non sono generate separatamente.

👉 La chiave privata contiene i parametri matematici da cui deriva quella pubblica.

Esempio concettuale: RSA

Per RSA:

  • la chiave privata include:
    • i numeri primi segreti
    • il modulo n
    • l’esponente privato
  • la chiave pubblica è composta solo da:
    • n (modulo)
    • e (esponente pubblico)

📌 Quindi:
la chiave pubblica è un sottoinsieme delle informazioni contenute nella privata

E con ED25519?

Ancora più chiaro:

  • la chiave privata è un seed
  • la chiave pubblica è ottenuta applicando una funzione deterministica (curve ellittiche)

👉 Nessuna informazione esterna è necessaria

Asimmetria vera

Operazione Possibile
Privata → Pubblica ✅ sempre
Pubblica → Privata ❌ computazionalmente impossibile

Questa è la base della sicurezza.


2️⃣ Cosa contiene davvero una chiave privata SSH

Un file come:

-----BEGIN OPENSSH PRIVATE KEY-----

contiene:

  • parametri segreti
  • parametri pubblici
  • metadata (algoritmo, commento, KDF)

📌 La chiave pubblica non è persa finché la privata esiste.


3️⃣ Recuperare la chiave pubblica: pratica con OpenSSH

Caso 1: Linux / macOS / WSL

ssh-keygen -y -f ~/.ssh/id_rsa > id_rsa.pub

Spiegazione:

  • -y → estrae la chiave pubblica
  • -f → file della privata
  • > → salva in formato OpenSSH
🔖 NOTA: id_rsa si riferisce al nome predefinito del file della chiave privata utilizzata nell'autenticazione SSH (Secure Shell), generata con l'algoritmo RSA, che lavora in coppia con un file id_rsa.pub (la chiave pubblica).

Caso 2: Windows con file .ppk (PuTTY)

Metodo GUI (universale)

  1. Aprire PuTTYgen
  2. Load → file .ppk
  3. Copiare il contenuto subito dopo la frase:
    Public key for pasting into OpenSSH authorized_keys file

Metodo CLI (versioni legacy)

puttygen chiave.ppk -L > chiave.pub
🔖 NOTA: Un file .ppk (PuTTY Private Key) è un formato proprietario di file chiave privata utilizzato da PuTTY, uno strumento per connessioni SSH; contiene la tua chiave privata generata tramite l'utilità PuTTYgen.

4️⃣ Verifica crittografica (fingerprint)

Dimostrare che le chiavi corrispondono:

ssh-keygen -lf id_rsa
ssh-keygen -lf id_rsa.pub

✔ Stessa impronta → stessa coppia crittografica


5️⃣ Cosa NON si può fare (importante chiarirlo)

  • ❌ Recuperare la chiave privata dalla pubblica
  • ❌ Ricostruire la chiave se la privata è persa
  • ❌ “Indovinare” una privata da authorized_keys

📌 Questo rimane vero anche con computer molto potenti.


6️⃣ Implicazioni pratiche (perché è utile saperlo)

  • backup incompleti → nessun problema
  • migrazione sistemi → recupero immediato
  • .pub cancellata per errore → ripristinabile
  • auditing → verifica di corrispondenza

7️⃣ Sicurezza: il vero rischio

Il fatto che la pubblica sia ricavabile non riduce la sicurezza.

Il vero rischio è:

  • perdere il controllo della chiave privata
  • permessi errati (chmod 600)
  • passphrase assente
    • Ricorda: 
Una chiave privata senza passphrase equivale a una password memorizzata in chiaro: finché resta segreta funziona, ma al primo leak il compromesso è totale.

Conclusione

La chiave pubblica non è un segreto,
la chiave privata contiene tutto ciò che serve per generarla.

Conoscere questo meccanismo:

  • evita reinstallazioni inutili
  • chiarisce la natura della crittografia asimmetrica
  • migliora la consapevolezza sulla sicurezza


Follow me #techelopment

Official site: www.techelopment.it
facebook: Techelopment
instagram: @techelopment
X: techelopment
Bluesky: @techelopment
telegram: @techelopment_channel
whatsapp: Techelopment
youtube: @techelopment