5. Software Engineering

5.1. Anti Hacker Tool (SE/HACK)

Aufgabenstellung

  1. Erstellen Sie ein Programm, mit dem man feststellen kann, wie schnell kurze Passwörter mit kleinem Zeichenvorrat „geknackt“ werden können.
  2. Erstellen Sie eine Tabelle der Messdaten (abhängig von Stellenanzahl und Zeichenvorrat).
  3. Führen Sie einen DNS Test durch.
  4. 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:

Weitere Links:

5.3. Processing (SE/PROC)

Aufgabenstellung

  1. Arbeiten Sie sich in Processing ein und testen Sie zwei bis drei Beispiele.
  2. Experimentieren Sie mit den Video und Capture Bibliotheken von Processing. Schreiben Sie eine Anwendung, die eine Webcam als Datenquelle benutzt.
  3. Schreiben Sie ein Programm, das grobe Bewegungen im Blickfeld erkennen kann (Art Objektverfolgung).
  4. Auf der Suche nach einem geeigneten Algorithmus lernt man automatisch eine Reihe von Algorithmen kennen und nach
  5. 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

  1. Entwicklen Sie ein einfaches Programm, das Daten verschlüsseln und entschlüsseln kann. Überlegen Sie sich dazu einen eigenen
  2. 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”.
  1. 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:

5.5. Versionsverwaltung (SE/VC)

Aufgabenstellung

  1. Machen Sie sich mit dem System GIT vertraut.
  2. Entwickeln Sie ein Beispiel welches einen Master Branche und einen Feature Branche enthält.
  3. Zeigen Sie wie aus dem Feature Branche Inhalte in den Master Branche übernommen werden können.
  4. 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: