|  | 
|  | 
| Code:  KI568 | 
| 2V+2PA (4 Semesterwochenstunden) | 
| 5 | 
| Studiensemester: 6 | 
| Pflichtfach: nein | 
| Arbeitssprache: Deutsch
 | 
| Prüfungsart: Projektarbeit, Ausarbeitung, Präsentation
 
 [letzte Änderung 29.03.2018]
 
 | 
| KI568 Kommunikationsinformatik, Bachelor, ASPO 01.10.2014
, 6. Semester, Wahlpflichtfach, technisch
 KIB-EISP (P221-0072) Kommunikationsinformatik, Bachelor, ASPO 01.10.2021
, 5. Semester, Wahlpflichtfach, technisch
 KIB-EISP (P221-0072) Kommunikationsinformatik, Bachelor, ASPO 01.10.2022
, 5. Semester, Wahlpflichtfach, technisch
 PIBWI12 Praktische Informatik, Bachelor, ASPO 01.10.2011
, 6. Semester, Wahlpflichtfach, informatikspezifisch
 PIB-EISP (P221-0072) Praktische Informatik, Bachelor, ASPO 01.10.2022
, 5. Semester, Wahlpflichtfach, informatikspezifisch
 
 | 
| Die Präsenzzeit dieses Moduls umfasst bei 15 Semesterwochen 60 Veranstaltungsstunden (= 45 Zeitstunden). Der Gesamtumfang des Moduls beträgt bei 5 Creditpoints 150 Stunden (30 Std/ECTS). Daher stehen für die Vor- und Nachbereitung der Veranstaltung zusammen mit der Prüfungsvorbereitung 105 Stunden zur Verfügung. | 
| Empfohlene Voraussetzungen (Module): KI100 Programmierung 1
 
 
 [letzte Änderung 30.03.2018]
 
 | 
| Als Vorkenntnis empfohlen für Module: 
 | 
| Modulverantwortung: Prof. Dr. Peter Birkner
 | 
| Dozent/innen:  Prof. Dr. Peter Birkner 
 [letzte Änderung 29.03.2018]
 
 | 
| Labor: Labor für IT-Sicherheit (5103/2)
 
 | 
| Lernziele: Die Studierenden sind in der Lage robuste und sichere Softwaresysteme zu erstellen, die vertrauliche Informationen integritätsgeschützt verarbeiten können.
 
 [letzte Änderung 29.03.2018]
 
 | 
| Inhalt: 1. Einführung: Was ist sichere Programmierung und warum ist sie wichtig?
 Beispiele von Software-Sicherheitslücken und deren Auswirkungen. Apples
 "goto fail" bug.
 
 2. Secure programming best practices. Ein Überblick.
 
 3. Validate All Input! Implementierung einer Eingabe-Verifikationsfunktion.
 
 4. Hashfunktionen: Was ist eine Hashfunktion? Was ist eine Hash-Kollision?
 Wozu braucht man diese? Implementierung einer Hashfunktion.
 
 5. Schlüsselableitungen: PBKDF2. Was ist das und wie funktioniert das?
 Implementierung derselben.
 
 6. Sichere Speicherung und Verifikation von Passwörtern: gesalzene und
 gehashte Passwörter. Vermeidung von Wörterbuch-Angriffen.
 Implementierung einer sicheren Passwort-Verwaltung.
 
 7. Schutz gegen Seitenkanalangriffe am Beispiel von double-and-add-ähnlichen
 Algorithmen: Was sind Seitenkanalangriffe? Praktische Experimente mit Timing
 und Statistik, die die Angreifbarkeit zeigen. Implementierung von RSA mit
 constant-time modular exponentiation. Alternative: Implementierung des
 Diffie-Hellman-Protokolls mit zeitkonstanter Exponentiation.
 
 8. One-time-Passwörter: Implementierung einer OTP authentication
 function basierend auf TOTP und HOTP (RFC 2289, RFC 4226 und 6238).
 
 9. Sichere Schlüsselerzeugung und Entropie: Was ist Entropie und wofür
 brauche ich sie? Warum ist Entropie so wichtig für die Schlüsselerzeugung?
 Implementierung eines deterministischen Zufallszahlengenerators (RNG) mit
 Startwert. Implementierung einer Entropieerzeugungsfunktion basierend auf
 Benutzerinteraktion.
 
 
 
 
 [letzte Änderung 30.03.2018]
 
 | 
| Literatur: 
 
 [noch nicht erfasst]
 
 | 
| Modul angeboten in Semester: SS 2020, 
SS 2019, 
SS 2018
 |