it-swarm.dev

Quali sono le differenze tra le cifre arcfour, arcfour128 e arcfour256 in OpenSSH?

Quali sono le differenze tra arcfour, arcfour128 e arcfour256 cifre in OpenSSH?

Sono interessato a: implicazioni sulla velocità e sulla sicurezza.

So che arcfour è veloce per i trasferimenti di file, ma non so quale scegliere.

23
sorin

La cifra "arcfour" è definita in RFC 425 ; è semplice RC4 con una chiave a 128 bit.

"arcfour128" e "arcfour256" sono definiti in RFC 4345 . Usano una chiave di 128-bit o 256-bit, rispettivamente. Inoltre, e contrariamente al semplice "arcfour", includono anche un passaggio di "scarto": vengono eliminati i primi 1536 byte prodotti dal codice. Questo perché i primi byte dell'output RC4 tendono a presentare distorsioni, che raramente sono fatali per la tua sicurezza, ma comunque preoccupanti. "arcfour128" e "arcfour256" sono quindi "più sicuri" del semplice "arcfour".

Nota che la dimensione della chiave estesa di arcfour256 non ti compra molto : una chiave a 128 bit è già più che sufficiente per sconfiggere il cracking della chiave attraverso la forza bruta. Una chiave a 256 bit è più per ragioni estetiche che razionali (esiste una convinzione diffusa tra i revisori che le chiavi più grandi sono sempre migliori, proprio come c'è una credenza diffusa tra le persone in generale che le macchine più grandi sono sempre migliori).

Si noti inoltre che mentre si eliminano i primi 1536 byte di output risolve i problemi con i bias nei primi 1536 byte (ovviamente ...), non fa nulla contro i altro bias nell'output RC4 (RC4 l'output può essere distinto dalla casualità dopo circa un gigabyte). Anche in questo caso, questi pregiudizi non si sono mai rivelati fatali in nessun protocollo schierato; tuttavia, "sembrano cattivi" in condizioni di audit.

Per quanto riguarda le prestazioni, non ci deve essere alcuna differenza, poiché la velocità RC4 non dipende dalla dimensione della chiave. I 1536 byte extra implicati da arcfour128 e arcfour256 inducono teoricamente un piccolo costo aggiuntivo una tantum, ma questo è molto al di sotto del millisecondo di CPU anche su un asmatico incorporato ARM o Mips, quindi questo sarebbe molto difficile persino rilevare in pratica.

Riepilogo: usa arcfour128 quando possibile, fallback a arcfour. Usa arcfour256 se hai bisogno di impressionare i burocrati vomitando enormi numeri che non capiranno, ma che li lasceranno sottomessi.

Comunque, la rete è di solito il collo di bottiglia, quindi anche su Ethernet gigabit, le cifre basate su AES dovrebbero fornire la stessa velocità effettiva di RC4 e con una sicurezza probabilmente migliore (anche nella visione distorta degli auditor) . In caso di dubbi, misurare; non credere che un codice sia più veloce di un altro perché lo leggi come una vecchia tradizione che è stata pensata in un momento in cui un PentiumPro era il vertice della tecnologia basata sulla Terra.

27
Thomas Pornin