Skip to content

Instantly share code, notes, and snippets.

@Darksecond
Created October 4, 2012 12:30
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Darksecond/3833277 to your computer and use it in GitHub Desktop.
Save Darksecond/3833277 to your computer and use it in GitHub Desktop.
Benchmark hoofdstuk
Benchmark
3. Ontwerp een faciliteit om de tijd benodigd voor transport van een file van 1 MB over de
verbinding met OpenSSL te meten. Ga na welke tijd je precies meet!
4. Implementeer deze faciliteit en test hem.
5. Vergelijk de benodigde transporttijd van een file van 1 MB bij gebruik van minstens drie
verschillende cryptografische algoritmen in OpenSSL. Doe de meting minimaal 50 keer.
6. Analyseer en evalueer de uitkomst van de metingen.
<!-- zet dit in een bijlage -->
======Benchmark script======
#!/bin/bash
echo Please make sure the server is running
echo the command is:
echo openssl s_server -WWW
echo and make sure the 1mb file is in the same directory
echo to make the 1mbrf file do:
echo dd if=/dev/urandom of=1mbrf bs=1024 count=1024
echo
echo the following benchmarks each will have run 50 times
echo
function benchmark {
echo Cipher: $1
openssl ciphers -v $1
time for i in {1..50}
do
echo GET /1mbrf HTTP/1.0 | openssl s_client -quiet -cipher $1 >/dev/null 2>&1
done
}
benchmark AES256-SHA
benchmark AES128-SHA
benchmark DES-CBC3-SHA
benchmark EDH-RSA-DES-CBC-SHA
benchmark RC4-SHA
============================
We hebben de tijd gemeten om een bestand van 1 megabyte over te sturen met behulp van 5 verschillende encryptiealgoritmen.
Deze algoritmen hebben we gekozen omdat dit de meest bekende en veel gebruikte zijn.
Hierbij is de key exchange en message authentication code steeds hetzelfde om de tijd die het kost om een verbinding op te zetten gelijk te houden.
We hebben de totale tijd gemeten voor het overzenden van een bestand van 1 megabyte. Hierbij word steeds opnieuw een verbinding opgezet.
Omdat die tijd gelijk is bij elk algoritme maakt dit niet uit voor de verschillen.
<!-- MAAK HIER EVEN EEN ECHT TABEL VAN XD -->
Algoritme & Totaal & Per verbinding
RC4(128) & 1.296s & 0.02592s
AES(128) & 1.617s & 0.03234s
AES(256) & 1.906s & 0.03812s
DES(56) & 2.383s & 0.04766s
3DES(168) & 4.181s & 0.08362s
Hierbij is te zien dat er wel degelijk verschillen zitten in de tijden voor de verschillende algoritmen.
RC4 is het snelste, maar teven onveilig bewezen. AES(128) en AES(256) zijn ook erg snel en nog steeds veilig bewezen. DES en 3DES zijn erg langzaam en redelijk onveilig. Hierdoor is dus te zeggen dan AES aan te raden valt voor een goede balans van veiligheid en snelheid.
Er moet gezegt worden dat het verstandiger is om de server te laten kiezen. Zo is het SSL protocol bedacht en dit is een veiligere manier omdat de server een meer geinformeerde keuze kan maken voor een algoritme. Dit is omdat de server weet wat voor data er verzonden wordt en hoe goed dit beveiligd dient te worden.
De server is meestal beter op de hoogte van de meest veilige keuze dan een client. De kans dat een client outdated is, is aanzienlijk groter
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment