Hjälpmedel
Denna sida kan bara redigeras av inloggade användare pga upprepad länkspam,
Protokollanalys
- Detta gäller i huvudsak gamla BankID, som fasas ut nu under slutet av 2014. För info om nya BankID version "Cava", se denna sida.
Alla webbsidor som använder BankID skickar all data krypterad via SSL/HTTPS. För att se vad som skickas kan du t.ex. använda mitmproxy:
http://mitmproxy.org/
http://github.com/hno/mitmproxy (innehåller en buggfix som behövs i vissa fall)
Det går även att använda Firefox-tillägget Tamper Data:
https://addons.mozilla.org/sv-SE/firefox/addon/966/
Ofta går det också att använda "Visa källkod"-funktionen i webbläsaren, men tyvärr låser den officiella klienten upp webbläsaren när någon dialogruta visas och då fungerar inte detta (om man inte är snabbt med att avbryta laddningen av sidan). Det går troligtvis också att använda tillägg till Firefox såsom Live HTTP Headers (som även loggar formulär/POST-data) eller dylikt (någon som testat detta?).
Det fungerar fint att använda Firebug i Firefox, tricket är att öppna Firebug i ett eget fönster. / JKAbrams
Som ett mindre känt men väldigt smidigt alternativ till Tamper Data kan HttpFox rekommenderas:
https://addons.mozilla.org/en-US/firefox/addon/6647/
Testning
Det finns ett par testsidor för BankID i tests/-katalogen i källkoden. Lägg dessa på en server med SSL, eller ta bort https-kontrollen i FriBID i client/main.c
Ett tips är att openssl har en inbyggd https webb server som duger utmärkt för ändamålet
cd tests openssl req -x509 -out server.pem -keyout server.pem -nodes openssl s_server -cert server.pem -WWW
öppna sedan t.ex. https://localhost:4433/test-authsig.html för att testa login & signering.
Kontroll av säkerhetshål
Minneskontroll med valgrind
Du kan köra din webbläsare under valgrind för att kontrollera att FriBID allokerar och använder minnet på ett korrekt sätt:
valgrind --trace-children=yes /usr/bin/firefox
Man kan stänga av visning av minnesläckor och copyright-information:
valgrind --trace-children=yes --leak-check=no -q /usr/bin/firefox
Fuzzing
Det finns också en s.k. fuzzer i form av en webbsida. Lägg filen tests/fuzzer.html på en server med SSL eller ta bort https-kontrollen i client/main.c.
Denna fuzzer är väldigt simpel och kör helt enkelt slumpmässigt valda funktioner med felaktig indata. Vi behöver en bättre fuzzer som testar mer sofistikerade flöden av funktionsanrop, med delvis korrekt indata.
Statisk analys
Med Sparse:
sudo apt-get install sparse CC=cgcc make -s 2>&1 | grep -vE '^/usr/include/'
Med nyare versioner av clang:
make clean scan-build make
Med äldre versioner av clang. I Ubuntu behöver man skapa en länk till /usr/include/asm-generic:
mkdir ~/clang-includes ln -s /usr/include/asm-generic ~/clang-includes/asm CC=clang CFLAGS="-O2 -g -I$HOME/clang-includes --analyze" make -s
För hand, med grep, kan man upptäcka möjliga problem:
grep -F '[' *.c -- array-problem grep -F '+' *.c -- integer overflows grep -E ' (strcat|strcpy|sprintf)' *.c -- rasprintf är säkrare!