AAA ist ein Framework welches genutzt wird. AAA steht für "Authentication", "Authorization" und "Accounting".
Authentication
Definition: Der Prozess der Überprüfung der Identität eines Benutzers oder eines Geräts.
Methoden: Passwörter, Biometrische Methoden (Fingerabdruck, Gesichtserkennung, IRIS-Scan), MFA (Verwendung von zwei oder mehr Authentication-Methoden (z. B. ein Passwort + ein Mobilgerät mit SMS oder TOTP), Digitale Zertifikate (Public Key Infrastructure z. B.)
Authorization
Definition: Der Prozess in dem festgestellt wird, ob ein Nutzer auf eine Aktion oder Ressource berechtigt ist oder nicht.
Dafür gibts einige Modelle: RBAC (Berechtigungen auf Gruppen, nicht auf User), ABAC (Attribute wie z. B. die Abteilung werden berechtigt), DAC (Der Ressourcen-Owner bestimmt wer berechtigt ist) und MAC (Zentrale Steuerung).
Accounting
Definition: Der Prozess in welchem Nutzeraktivität getracked wird, also Logging usw. um historische Daten bei Audits und für Compliance vorlegen kann oder eben wenn es einen Sicherheitsvorfall gibt.
Zusammenfassung AAA
Authentication: Verifiziert die Identität eines Benutzers oder Geräts.
Authorization: Bestimmt die Berechtigungen eines authentifizierten Benutzers.
Accounting: Verfolgt und zeichnet Benutzeraktivitäten zur Überwachung und Überprüfung auf.
Verschlüsslungsverfahren
Symmetrisch
Beschreibung: Nutzt den selben Schlüssel für die Encryption und für die Decryption.
Beispiele: AES (Advanced Encryption Standard) und DES (Data Encryption Standard).
Nutzung: Verschlüsselung von Daten im Ruhezustand, sichere Kommunikationskanäle, bei denen beide Parteien einen geheimen Schlüssel teilen. (AES wird verwendet für: Datenübertragung im WLAN und VPNs, VoIP-Telefonie, Verschlüsslung von Dateien (bei RAR, 7-Zip, PHP, ...) und Passwörter sowie PINs bei Online-Banking verwendet auch AES)
Asymmetrisch
Beschreibung: Nutzt ein Schlüsselpaar, einen privaten und einne öffentlichen Schlüssel.
Beispiele: RSA (Rivest-Shamir-Adleman) und ECC (Elliptic Curve Cryptography)
Nutzung: Sicherer Schlüsselaustausch, digitale Signaturen, Encryption von kleinen Datenmengen. RSA wird bspw. verwendet für SSH-Schlüssel und TLS-Zertifikate.
Hash
Beschreibung: Eine Hash-Funktion nimmt eine Eingabe (also eine Nachricht) und gibt eine fixe Anzahl an Zeichen zurück. Die Ausgabe ist typischerweise ein "Digest" das einzigartig zu jedem Input sein sollte.
Funktionalität:
Deterministisch: Der gleiche Input wird immer den gleichen Output ausgeben.
Schnell: Hashes können sehr schnell verarbeitet werden.
Robust gegen Reverse Engineering
Schon die kleinste Änderung am Input erzeugt ein völlig anderes Ergebnis.
Schutz vor Kollision: Es wird versucht, dass eine Ausgabe immer Einzigartig bleibt.
Beispiele:
MD5 (Message Digest Algorithm 5): Wird nicht mehr verwendet. (Es kam häufiger zu Kollisionen)
SHA-1 (Secure Hash Algorithm 1): Auch deprecated wegen Schwachstellen.
SHA-256: Teil der SHA-2 Familie, wird weit verwendet und als sicher angesehen.
Anwendungsbeispiele:
Erstellung von Passwort-Hashes, damit die nicht im Klartext in der DB stehen. Reverse Engineering geht ja nicht, deshalb müsste man nen Brute Force starten und hoffen einen Hash zu erwischen. Daher sinnvoll ein automatisch generiertes Passwort zu verwenden das nicht geläufig ist und nicht in einem Wörterbuch zu finden ist.
Sicherstellung von Datenintegrität: Mit Tools wie shasum kann sich die Checksum der Hashes einer File ausgegeben werden. Die lässt sich dann mit der File von einem Download-Portal vergleichen wodurch sichergestellt werden kann, dass das tatsächlich die Datei ist, die man herunterladen wollte.
Zertifikate
Digitale Dokumente zur Authentifizierung und Verschlüsselung, ausgestellt von einer CA.
TLS
Definition: TLS (Transport Layer Security) ist ein Protokoll, das Privatsphäre und Datenintegrität zwischen zwei mit einander kommunizierenden Applikationen garantiert.
Vorgänger: Der Vorgänger von TLS war SSL (Secure Socket Layer)
Versionen: TLS 1.0 und TLS 1.1 sind deprecated wegen Schwachstellen. TLS 1.2 ist weit verbreitet und wird als sicher anerkannt. TLS 1.3 ist die neuste Version mit verbesserter Security und besserer Performance.
Nutzung: HTTPS (Absichern von Web Traffic), Email (Absichern von Protokollen wie IMAP, POP3 und SMTP) sowie für VPNs um den Tunnel-Netzwerk-Traffic abzusichern.