htw saar
Zurück zur Hauptseite

Version des Moduls auswählen:

Einführung in sichere Programmierung

Modulbezeichnung: Einführung in sichere Programmierung
Studiengang: Kommunikationsinformatik, Bachelor, ASPO 01.10.2017
Code: KIB-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 2020
[Tue May 26 20:36:38 CEST 2020, CKEY=keisp, BKEY=ki2, CID=KIB-EISP, LANGUAGE=de, DATE=26.05.2020]