5. Software Engineering¶
5.1. Anti Hacker Tool (SE/HACK)¶
Aufgabenstellung
- Erstellen Sie ein Programm, mit dem man feststellen kann, wie schnell kurze Passwörter mit kleinem Zeichenvorrat „geknackt“ werden können.
- Erstellen Sie eine Tabelle der Messdaten (abhängig von Stellenanzahl und Zeichenvorrat).
- Führen Sie einen DNS Test durch.
- Führen Sie eine Netzwerkanalyse durch und interpretieren Sie die Ergebnisse (z.B. mit dem Network Monitor).
Kolloquium
- Erklären Sie Nutzen und Funktionsweise von Firewalls und VPN. Was bedeutet Spyware?
- Welche Empfehlungen gibt es vom BSI (Bundesamt für Sicherheit in der Informationstechnik) für den Grundschutz?
- Welche Empfehlung gibt es für die Wahl von Passwörtern?
- Was versteht man unter Honeypot?
- Was versteht man unter Botnetz?
- Erklären Sie einen Spam-Filter
- Erklären Sie DNS
Literatur
Zugang über VPN oder Shibboleth:
Weitere Links:
5.2. Komprimierung (SE/KOMP)¶
Aufgabenstellung
Entwickeln Sie ein Programm, das Daten komprimieren (packen) und dekomprimieren (entpacken) kann. Das Programm soll zwei Komprimierungstechniken ausnutzen.
Kolloquium
- Erklären Sie die Grundlagen ihrer Programmierung, das benutzte Komprimierungsverfahren und die Einsparungen der verwendeten Kompressionstechnik.
- Nennen Sie Anwendungen von verlustfreier und verlustbehafteter Komprimierung.
- Erklären Sie weitere Komprimierungstechniken wie LZSS, LZW, Huffmann oder Lauflängencodierung.
- Überlegen Sie sich 2 Aufgaben, mit denen Sie Ihren Komprimierer mit mindestens 2 (Standard)-Komprimierern oder Freeware-Komprimierern vergleichen.
- Erstellen Sie ein Bewertungsschema für Packer (z.B. Bedienung, Kompression, Rechenaufwand, …)
- Erklären sie die Kompressionstechniken JPEG und MPEG (z.B. I-, B- und P-Frames) sowie PNG und GIF.
- Was versteht man unter der Wavelet-Transformation?
Hinweis: Das Programm soll keine verlängerten Dateien erzeugen. Insbesondere soll eine Komprimierung einer komprimierten Datei möglich sein.
Literatur
Zugang über VPN oder Shibboleth:
- hsa-bibliothek-a-z
- link.springer.com (z.B. Wilfried Dankmeier, Grundkurs Kodierung, 2017; Tilo Strutz, Bilddatenkompression, 2009)
- hanser-eLibrary.html
Weitere Links:
- `http://www.winzip.de <http://www.winzip.de >`_
- `pkware.com/pkzip <https://www.pkware.com/pkzip >`_
- `http://www.winrar.de <http://www.winrar.de >`_
- `http://winace.de <http://winace.de >`_
- http://www.iti.fh-flensburg.de/lang/algorithmen/code/huffman/huffman.htm
- http://www.luraech.de
- https://de.wikibooks.org/wiki/Datenkompression:_Verlustfreie_Verfahren:_Statistische_Verfahren
5.3. Processing (SE/PROC)¶
Aufgabenstellung
- Arbeiten Sie sich in Processing ein und testen Sie zwei bis drei Beispiele.
- Experimentieren Sie mit den Video und Capture Bibliotheken von Processing. Schreiben Sie eine Anwendung, die eine Webcam als Datenquelle benutzt.
- Schreiben Sie ein Programm, das grobe Bewegungen im Blickfeld erkennen kann (Art Objektverfolgung).
- Auf der Suche nach einem geeigneten Algorithmus lernt man automatisch eine Reihe von Algorithmen kennen und nach
- Aspekten wie Performance, Genauigkeit und Zuverlässigkeit zu beurteilen.
Kolloquium
- Beschreiben Sie ein besonderes Feature von Processing.
Literatur
Zugang über VPN oder Shibboleth:
Weitere Links:
5.4. Verschlüsselung (SE/CRYPT)¶
Aufgabenstellung
- Entwicklen Sie ein einfaches Programm, das Daten verschlüsseln und entschlüsseln kann. Überlegen Sie sich dazu einen eigenen
- Erstellen Sie eine Art RSA-Code zur Verschlüsselung und Entschlüsselung der Daten.
- Sonderaufgabe: Ein Gruppenmitglied entwickelt ein einfaches Verschlüsselungsverfahren
- das zweite Mitglied der Gruppe entwickelt ein Programm, das versucht, die Verschlüsselung zu “knacken”.
- Testen Sie das Programm CrypTool http://www.CrypTool.de
Kolloquium
- Erklären Sie die Grundlagen Ihrer Programmierung, das benutzte Verschlüsselungssverfahren, die Sicherheitsaspekte und die Unterschiede zwischen symmetrischen und asymmetrischen Verfahren.
- Erklären Sie die Verfahren RSA, IDEA und DES bzw. ihre Nachfolger.
- Beschreiben Sie Stärken und Schwächen einzelner Verfahren und praktische Anwendungen wie z.B. Pretty Good Privacy und Festplattenverschlüsselung.
- Erklären Sie die Begriffe “Steganographie” und “digitale Unterschrift”.
Literatur
Zugang über VPN oder Shibboleth:
Weitere Links:
- http://www.schuelerakademie.de/kurse/krypto/rsa.html
- http://www.strongsec.com/de/tutorials/security.htm
- http://www.pgpi.org
- http://www.rsa.com
- http://www.gnupp.de/start.html
- http://www.rsasecurity.com
- http://www.semper.org/sirene/outsideworld/security.html
- http://www.utm.edu/research/primes
- http://www.csr.unibo.it/research/biolab
- http://www.bioapi.org
- http://www.linslernet.de/crypt.htm
- www.utimaco.de
- Arbeitsgruppe Kryptografie
- CrypTool.de
5.5. Versionsverwaltung (SE/VC)¶
Aufgabenstellung
- Machen Sie sich mit dem System GIT vertraut.
- Entwickeln Sie ein Beispiel welches einen Master Branche und einen Feature Branche enthält.
- Zeigen Sie wie aus dem Feature Branche Inhalte in den Master Branche übernommen werden können.
- Clonen Sie ein Repository auf zwei verschiedene PCs und nehmen Sie jetzt folgende Veränderungen vor:
- Unterschiedliche Zeilen eines Dokumentes ändern
- Änderungen in der selben Zeile vornehmen, so daß Git nicht mehr in der Lage ist selbständig zu mergen.
- Wie zeigt Git an, wenn Probleme beim Merge-Vorgang entstehen
Kolloquium
- Was ist GIT?
- Was ist ein Repository und was ist ein Working-Directory?
- Welche Umgebungsvariablen sollten minimal gesetzt werden (UNIX, Linux, Windows)? (z.B. SVNROOT)
- Was sind Revisions und wie nutzt man sie?
- Was bedeutet Head im Zusammenhang mit GIT?
- Wie granular funktioniert das Merging zweier Versionen?
- Erklären Sie im Zusammenhang mit dem Branching Model GitFlow: Branche, Release, Development, Feature Branche, Hotfix Branche
- Berichten Sie über Trends/Szenen von Teamwork
- Wie erfolgt bei GIT der Datenabgleich zwischen den Teilnehmern
- Gibt es Schwachstellen von GIT?
Literatur
Zugang über VPN oder Shibboleth:
Weitere Links: