htw saar Piktogramm QR-encoded URL
Zurück zur Hauptseite Version des Moduls auswählen:
Lernziele hervorheben XML-Code



Einführung in sichere Programmierung

Modulbezeichnung:
Bezeichnung des Moduls innerhalb des Studiengangs. Sie soll eine präzise und verständliche Überschrift des Modulinhalts darstellen.
Einführung in sichere Programmierung
Studiengang:
Studiengang mit Beginn der Gültigkeit der betreffenden ASPO-Anlage/Studienordnung des Studiengangs, in dem dieses Modul zum Studienprogramm gehört (=Start der ersten Erstsemester-Kohorte, die nach dieser Ordnung studiert).
Praktische Informatik, Bachelor, ASPO 01.10.2022
Code: PIB-EISP
SAP-Submodul-Nr.:
Die Prüfungsverwaltung mittels SAP-SLCM vergibt für jede Prüfungsart in einem Modul eine SAP-Submodul-Nr (= P-Nummer). Gleiche Module in unterschiedlichen Studiengängen haben bei gleicher Prüfungsart die gleiche SAP-Submodul-Nr..
P221-0072
SWS/Lehrform:
Die Anzahl der Semesterwochenstunden (SWS) wird als Zusammensetzung von Vorlesungsstunden (V), Übungsstunden (U), Praktikumsstunden (P) oder Projektarbeitsstunden (PA) angegeben. Beispielsweise besteht eine Veranstaltung der Form 2V+2U aus 2 Vorlesungsstunden und 2 Übungsstunden pro Woche.
2V+2PA (4 Semesterwochenstunden)
ECTS-Punkte:
Die Anzahl der Punkte nach ECTS (Leistungspunkte, Kreditpunkte), die dem Studierenden bei erfolgreicher Ableistung des Moduls gutgeschrieben werden. Die ECTS-Punkte entscheiden über die Gewichtung des Fachs bei der Berechnung der Durchschnittsnote im Abschlusszeugnis. Jedem ECTS-Punkt entsprechen 30 studentische Arbeitsstunden (Anwesenheit, Vor- und Nachbereitung, Prüfungsvorbereitung, ggfs. Zeit zur Bearbeitung eines Projekts), verteilt über die gesamte Zeit des Semesters (26 Wochen).
5
Studiensemester: 5
Pflichtfach: nein
Arbeitssprache:
Deutsch
Prüfungsart:
Projektarbeit, Ausarbeitung, Präsentation

[letzte Änderung 29.03.2018]
Verwendbarkeit / Zuordnung zum Curriculum:
Alle Studienprogramme, die das Modul enthalten mit Jahresangabe der entsprechenden Studienordnung / ASPO-Anlage.

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
Arbeitsaufwand:
Der Arbeitsaufwand des Studierenden, der für das erfolgreiche Absolvieren eines Moduls notwendig ist, ergibt sich aus den ECTS-Punkten. Jeder ECTS-Punkt steht in der Regel für 30 Arbeitsstunden. Die Arbeitsstunden umfassen Präsenzzeit (in den Vorlesungswochen), Vor- und Nachbereitung der Vorlesung, ggfs. Abfassung einer Projektarbeit und die Vorbereitung auf die Prüfung.

Die ECTS beziehen sich auf die gesamte formale Semesterdauer (01.04.-30.09. im Sommersemester, 01.10.-31.03. im Wintersemester).
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/innen: 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 2024, SS 2023, SS 2022, SS 2021, SS 2020
[Sun Dec 22 22:47:54 CET 2024, CKEY=keisp, BKEY=pi2, CID=PIB-EISP, LANGUAGE=de, DATE=22.12.2024]