Modulbezeichnung: Einführung in sichere Programmierung |
Studiengang: Praktische Informatik, Bachelor, ASPO 01.10.2017 |
Code: PIB-EISP |
SWS/Lehrform: 2V+2PA (4 Semesterwochenstunden) |
ECTS-Punkte: 5 |
Studiensemester: 5 |
Pflichtfach: nein |
Arbeitssprache: Deutsch |
Prüfungsart: Projektarbeit, Ausarbeitung, Präsentation |
Zuordnung zum Curriculum: KI568 Kommunikationsinformatik, Bachelor, ASPO 01.10.2014, 6. Semester, Wahlpflichtfach, technisch KIB-EISP Kommunikationsinformatik, Bachelor, ASPO 01.10.2017, 5. Semester, Wahlpflichtfach, technisch PIBWI12 Praktische Informatik, Bachelor, ASPO 01.10.2011, 6. Semester, Wahlpflichtfach, informatikspezifisch PIB-EISP Praktische Informatik, Bachelor, ASPO 01.10.2017, 5. Semester, Wahlpflichtfach, technisch |
Arbeitsaufwand: 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): Keine. |
Als Vorkenntnis empfohlen für Module: |
Modulverantwortung: Prof. Dr. Peter Birkner |
Dozent: Prof. Dr. Peter Birkner [letzte Änderung 08.05.2019] |
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 2021 (voraussichtlich), SS 2020 |
[Tue Mar 2 21:07:04 CET 2021, CKEY=keisp, BKEY=pi2, CID=PIB-EISP, LANGUAGE=de, DATE=02.03.2021]