aboutsummaryrefslogtreecommitdiff
path: root/sem1-projekt/mifare.md
diff options
context:
space:
mode:
Diffstat (limited to 'sem1-projekt/mifare.md')
-rw-r--r--sem1-projekt/mifare.md58
1 files changed, 58 insertions, 0 deletions
diff --git a/sem1-projekt/mifare.md b/sem1-projekt/mifare.md
new file mode 100644
index 0000000..448292d
--- /dev/null
+++ b/sem1-projekt/mifare.md
@@ -0,0 +1,58 @@
+# Vulnabilites
+
+Using the unsecure propreitary crypto1.
+Companies often do this however custom crypto often ends wrong.
+
+Ting der gør crypto1 usikker.
+
+- Kun 48 bits. Dette er et problem da crypto1 er fuldt reversed.
+- Random generator til 32 bit nounce er kun 16 bit entropy.
+
+ Dette betyder at nouncene vil gentage sig rimelig hurtigt, og eftersom den starter i known state kan man time sig til en nounce man kender.
+
+ Dette er heldigvis fixet i senere versioner hvor man har lavet en bedre random generator.
+- Nested attack hvor man ud med en ud fra en sector key kan udlede 32 bit fra keystreamen.
+
+ Her authentikator man til en sector, og laver derefter en nestet authentification.
+ I denne nestet bliver sendt krypteret, men fordi man kan regne ud hvad den er kan man udlede keystream(du ved fordi xor).
+
+- Parity bits deler en keystream bit med den næste bit. Dette betyder at den kan udledes.
+
+ Denne fejl kan ikke fixes let ligesom den med nouncene.
+
+- Keystream fra fejl
+
+ Hvis man sender et forkert svar ved challenge-response, sender den en fejl **kryperet**.
+
+ Eftersom man kender fejlkoden kan man få 4 bits fra keystream.
+
+ Denne fejl kan heldigvis fixes da læsere alligevel ikke bruger denne fejlbesked(de kan jo ikke læse den når den er krypteret).
+
+- LFSR rollback
+
+ Hvis man kan udlede LFSR på et eller andet tidspunkt kan man regne ud hvad den var fra i starten, hvis man har det data der er puttet ind.
+
+ Eftersom den starter med at være secret key kan man derfor udelede den.
+
+- Ulige bit filter
+
+ Noget med at filtret der feeder tilbage til LFSR kun bruger de ulige bits.
+
+ Dette betyder at man kan lettere kan komme tilbage til starten af LFSR.
+ Forstår ikke helt hvordan.
+
+## Angreb for key
+
+De starter med at hente en masse nounces ind med nestet attack.
+
+Ret avanceret.
+Noget med propability.
+De skriver noget med en sum function jeg ikke helt forstår.
+(edit kan se det står længere nede. Ved ikke helt om jeg læser det, der er ret meget. Vi ved der der).
+
+De får nogle forskellige keys det måske kan være.
+
+De kan tage og prøve at dekode alle nouncene med en key for at test den.
+De ved at key'en er god når parity passer.
+
+Hvis parity ikke passer er der 1/2 change for at keyen er god.