## Fragen **Was bedeutet Integrität und Authentizität, bzgl. Verschlüsselung?** Integrität: Nachrichten bleiben unverändert Authentizität: Der Sender kann verifiziert werden **Was sind Hash-based Message Authentication Codes (HMAC)?** HMAC ist eine Methode zur Überprüfung der Integrität und Authentizität von Nachrichten mithilfe eines Hash-Algorithmus und eines Secret-Keys. Durch reine Verschlüsselung könnte die Nachricht abgefangen und verändert werden, auch wenn man die Verschlüsselung nicht kennt. Durch das Hinzufügen eins Hash-Wertes der Nachricht kann versichert werden, dass dies nicht passiert **Was ist der Unterschied zwischen Hashing und Encryption?** Hashing ist eine Einweg-/Falltürfunktion, welche z.B. aus beliebigem Text einen Hash generieren kann, allerdings kann man nicht von einem Hash-Wert auf die Nachricht schließen. Gegenteilig zur Encryption, welche immer eine eindeutige Decrypt-Funktion benötigt, da man die Nachricht sonst nicht mehr entschlüsseln könnte. **Beschreiben Sie ein hybrid public encryption scheme via RSA und AES!** Client generiert einen symmetrischen Schlüssel (AES) Client verschlüsselt den Schlüssel mit dem Public Key des Servers (RSA) Client schickt verschlüsselten Schlüssel an den Server Server entschlüsselt den Schlüssel mit seinem Secret Key (RSA) Durch den sicheren Schlüsselaustausch kann nun symmetrische Verschlüsselung verwendet werden, welche wesentlich effizienter ist als immer auf RSA zurückzugreifen. **Was ist synchrone und asynchrone Verschlüsselung und welche alternativen gibt es noch?** Synchron: Server und Client haben den gleichen Schlüssel, um zu Ver-/Entschlüsseln Asynchron: Client holt sich Public Key vom Server verschlüsselt und sendet es an ihn. Der Server kann die Nachricht mit seinem Secret Key entschlüsseln. Alternative: Diffie-Hellman-Schlüsselaustausch, Elgamal-Verschlüsselungsverfahren **Wieso wird Base64 Codierung verwendet?** Da es sich bei uns um ein Plain-Text-Protocol handelt, verschlüsselte Nachrichten aber binary data erzeugt, muss es vor der Übertragung noch Base64 binary-to-text codiert werden. **Was ist eine "Man in the Middle Attack" und wie wird sie verhindert?** Man in the Middle Attack: Angreifer dringt erfolgreich in die Kommunikation zwischen zwei Parteien ein um Nachrichten zu manipuliert, oder abzufangen Kann via Verschlüsselung und Authentifizierung verhindert werden, z.B. durch HMACs, SSL/TLS-Zertifikate oder Public-Key-Infrastruktur **Wie funktioniert das Handshake-Protokol und wofür ist die ClientChallenge?** Protocol: 1. Client sends (plain): startsecure 2. Server sends (plain): ok 3. Client sends (RSA): ok 4. Server sends (AES): ok 5. Client sends (AES): ok ClientChallenge: Eine mit dem Public Key des Servers verschlüsselte 32 byte Zahl, welche der Client benutzen kann, um zu versichern, dass tatsächlich mit dem Server kommuniziert wird **Wie funktioniert der Inbox Command?** Via des List-Commands (und durch parsing der Antwort) erhält man die IDs aller Mails. Daraufhin muss jede Mail mittels Show-Commad samt ID angefordert werden. Aus diesen Informationen wird die Inbox Antwort generiert. **Was ist der Unterschied zwischen rekursiv und iterativ bezogen auf den Nameserver?** Domain Lookup (Iterativ): Iterative (nacheinander) das remote object des Nameservers aufrufen, bis der gewünschte Nameserver erreicht wurde Registration Mailboxserver/Nameserver (Recursive): Rekursiv (verschachtelt) dieselbe Registrierungsmethode des Child-Servers aufrufen, bis der gewünschte Nameserver erreicht wurde **Was ist eine Remote Method Invocation (RMI)?** RMIs ermöglichen es, Methodenaufrufe von einem Java-Programm auf einem entfernten Computer auszuführen. In unserem Fall kann man auf das RMI Registry des Root Nameserver zugreifen. Die darunterliegenden Zonen werden lediglich im Programmspeicher gespeichert. **Was sind Callback Methoden?** Methoden, bei welchen der Server eine Anfrage an den Client stellt, z.B. durch einen Interrupt.