Newsgroup: it.comp.sicurezza.pgp
Titolo: Perchè RSA/DSA per cifrare un file?

  Perchè i sistemi di cifratura asimmetrica vengono usati anche per cifrare,
oltre che per firmare?
  Invece di applicare RSA, per esempio, alla cifratura di un file di una
certa dimensione, perchè non si cifra con RSA una chiave monouso simmetrica
(magari di lunghezza random) con cui cifrare il file (per es. con semplice
XOR)?
  Se non sbaglio sarebbe un po' quello che fa SSL: si concorda una chiave
simmetrica tramite cifratura asimmetrica, e poi si comunica con quella
chiave (monouso per ogni sessione). Perchè non si usa lo stesso principio
per cifrare i files, oltre che per comunicare?
  Forse l'utilizzo in SSL di una cifratura simmetrica potrebbe essere essere
addirittura "rischioso" anche per la singola sessione: magari l'attaccante
(in mitm) conosce un pezzo di messaggio in chiaro (es. gli header http
della pagina richiesta) e per confronto potrebbe ottenere un pezzo di
chiave simmetrica. Nella cifratura di un singolo file, il rischio lo vedo
inferiore: si potrebbe nascondere al di fuori della cifratura il tipo di
file (quindi l'header sarebbe sconosciuto), oppure aggiungere all'inizio ed
alla fine stringhe random di lunghezza random... etc...
  Nei miei esperimenti utilizzo KGPG, ma magari le mie considerazioni sono
frutto di confusione nella mia testa. Per caso si usa già una chiave
simmetrica per cifrare i files? (per intenderci quando KGPG, tramite
integrazione in Konqueror, appare nelle azioni possibili di un file
come "cifra")
-- 
  Narcolessico
 
http://binaryunit.blogspot.com

 XOR)?
PGP/GPG funziona esattamente così: genera una chiave casuale, ogni volta
diversa, chiamata "chiave di sessione", la usa per cifrare il file
(ovviamente non con uno XOR ma con un crittosistema simmetrico avanzato
come AES256) ed in seguito cifra la chiave di sessione con lo'algoritmo
asimmetrico.

Tarapia Tapioco ha scritto:

Ah, quindi fanno già così... Bene =)
Ma il file così cifrato non dovrebbe constare di due parti (la chiave
cifrata e il contenuto)?
Se cifro un file (con KGPG, chiave DSA), il corrispondente .asc è del tipo:
-----BEGIN PGP MESSAGE-----
Version: GnuPG v1.4.6 (GNU/Linux)
seRGk45R34lk23fregw/UXfXO2ergwergbzw/OQsdfGREGXriRLdv/73NWlym1vZ
KfbO4CTvx8QPh6HRQw6wRGEtrgKcVoF39AR/tWZDERGergbRWoYigmd8Ne7NoFHH
(...)
Nl6uXA+dAGPasdf345ervdvdvrggghHjsSfbHPQbyqbX+nrnAjoFrfr1gLsKcrqw
OaIby4XzltqzFkHDpZ3rfRfgG6h=
=jhJR
-----END PGP MESSAGE-----
E' una stringa unica, senza interruzioni. Se la chiave simmetrica
sta "dentro" questa stringa, con cosa si decritta il tutto se non con
quella asimmetrica?
Non so se ho reso bene la domanda...
-- 
  Narcolessico
 
http://binaryunit.blogspot.com

 quella asimmetrica?
La stringa è in realtà la codifica in base64[1] di una struttura dati
complessa, definita dallo standard OpenPGP[2][3], che contiene vari
header, flag e campi tra i quali la chiave di sessione cifrata ed il
testo cifrato. Il programma che deve decifrare il testo prende la
stringa, la converte in binario e la "spacchetta" nei vari componenti
(chiamati "packets").
[1] 
http://it.wikipedia.org/wiki/Base64
[2] 
http://it.wikipedia.org/wiki/OpenPGP
[3] 
http://tools.ietf.org/html/rfc2440

XOR)?
È esattamente quello che si fa (a parte che l'algoritmo simmetrico deve
essere sicuro).
-- 
ciao, |
Marco | The Internet is full. Go away.  -- Joel Furr

Grazie delle risposte, è chiarissimo.
Dove posso trovare informazioni sul formato dei file firma (.sig)?
Ho notato che la firma dello stesso file varia ogni volta che la faccio, e
questo mi fa intuire che la data (con ora, minuti e secondi) sia inclusa
nelle intestazioni.
-- 
  Narcolessico
 
http://binaryunit.blogspot.com


Ciao,
un TJL73 che non ha ancora capito se è già "operativa"...
[X-Post e Followup-To impostati]
-- 
"Riesco a trovare ogni parola sul dizionario
 molto piu` velocemente da quando ho scoperto
 che sono in ordine alfabetico."
                                                     -- Leopold Fechtner