Tinc una base de dades (MySQL) en un servidor en què em connecto a través d’un túnel SSH, per xarxa local o a través d’internet. Les màquines fan servir FreeBSD.
He buscat informació sobre quins algorismes de xifratge es recomanaven, i si era avantatjós comprimir les comunicacions. Com s’esdevé sovint en temes semblants no hi ha solucions úniques, així que he decidit fer les meves proves.
Metodologia
Defineixo dues proves:
- Prova 1: select a base de dades que retorna uns 558 registres, i recuperació de tots els registres amb un cursor.
- Prova 2: Recuperació dels 80 primers registres, però amb 80 select independents que retornen 1 registre cada una.
Executo les dues proves amb 6 algorismes de xifratge, primer sense compressió i després amb compressió. I repeteixo tot el cicle 10 vegades. Al final tinc 10 temps amb compressió i 10 sense per cada algorisme i per cada prova.
Codifico totes les proves amb Python.
Resultats
Amb accés a través d’internet (t1=prova 1, t2=prova 2, temps mínim, mitjana de les 10 proves i temps màxim; False i True fan referència a la compressió).
Amb accés a través de xarxa local:
Amb això trio:
- Per internet: blowfish-cbc amb compressió. Era previsible que la compressió ajudaria.
- Per xarxa local: chacha20-poly1305@openssh.com sense compressió.
Les conclusions són vàlides per la prova descrita, orientada a l’ús que faig d’aquesta connexió. Per un sistema que hagués de transmetre grans volums de text, per exemple, la compressió en xarxa local podria ser útil.
En tot cas, sempre que sigui possible, és recomanable provar diferents alternatives abans de decidir.