Netzwerksicherheit - Transportschicht
Bei der Netzwerksicherheit werden Daten vor Angriffen geschützt, während sie in einem Netzwerk übertragen werden. Um dieses Ziel zu erreichen, wurden viele Echtzeit-Sicherheitsprotokolle entwickelt. Es gibt beliebte Standards für Echtzeit-Netzwerksicherheitsprotokolle wie S / MIME, SSL / TLS, SSH und IPsec. Wie bereits erwähnt, arbeiten diese Protokolle auf verschiedenen Ebenen des Netzwerkmodells.
Im letzten Kapitel haben wir einige gängige Protokolle besprochen, die Sicherheit auf Anwendungsebene bieten sollen. In diesem Kapitel werden wir den Prozess zum Erreichen der Netzwerksicherheit auf der Transportschicht und die zugehörigen Sicherheitsprotokolle erörtern.
Für ein auf dem TCP / IP-Protokoll basierendes Netzwerk werden in der Regel physische und Datenverbindungsschichten in der Hardware des Benutzerterminals und der Netzwerkkarte implementiert. TCP- und IP-Schichten sind im Betriebssystem implementiert. Alles über TCP / IP wird als Benutzerprozess implementiert.
Notwendigkeit der Sicherheit der Transportschicht
Lassen Sie uns einen typischen internetbasierten Geschäftsvorgang diskutieren.
Bob besucht Alices Website, um Waren zu verkaufen. In einem Formular auf der Website gibt Bob die Art der gewünschten Ware und Menge, seine Adresse und die Zahlungskartendaten ein. Bob klickt auf Senden und wartet auf die Lieferung von Waren mit Abbuchung des Preisbetrags von seinem Konto. Das klingt alles gut, aber ohne Netzwerksicherheit könnte Bob einige Überraschungen erleben.
Wenn bei Transaktionen keine Vertraulichkeit (Verschlüsselung) verwendet wurde, konnte ein Angreifer seine Zahlungskarteninformationen abrufen. Der Angreifer kann dann auf Kosten von Bob Einkäufe tätigen.
Wenn kein Maß für die Datenintegrität verwendet wird, kann ein Angreifer die Bestellung von Bob in Bezug auf Art oder Menge der Waren ändern.
Wenn keine Serverauthentifizierung verwendet wird, kann ein Server das berühmte Alice-Logo anzeigen, aber die Site kann eine böswillige Site sein, die von einem Angreifer verwaltet wird, der sich als Alice tarnt. Nachdem er Bobs Befehl erhalten hatte, konnte er Bobs Geld nehmen und fliehen. Oder er könnte einen Identitätsdiebstahl durchführen, indem er Bobs Namen und Kreditkartendaten sammelt.
Sicherheitsschemata der Transportschicht können diese Probleme lösen, indem sie die TCP / IP-basierte Netzwerkkommunikation mit Vertraulichkeit, Datenintegrität, Serverauthentifizierung und Clientauthentifizierung verbessern.
Die Sicherheit auf dieser Ebene wird hauptsächlich zum Sichern von HTTP-basierten Webtransaktionen in einem Netzwerk verwendet. Es kann jedoch von jeder Anwendung verwendet werden, die über TCP ausgeführt wird.
Philosophie des TLS-Designs
TLS-Protokolle (Transport Layer Security) arbeiten über der TCP-Schicht. Beim Entwurf dieser Protokolle werden beliebte APIs (Application Program Interfaces) für TCP verwendet, die als "Sockets" für die Schnittstelle mit der TCP-Schicht bezeichnet werden.
Anwendungen sind jetzt direkt mit TCP verbunden, anstatt direkt mit TCP. Transport Security Layer bietet eine einfache API mit Sockets, die der TCP-API ähnlich und analog ist.
Im obigen Diagramm befindet sich TLS zwar technisch zwischen Anwendung und Transportschicht, aus der allgemeinen Perspektive handelt es sich jedoch um ein Transportprotokoll, das als TCP-Schicht fungiert, die mit Sicherheitsdiensten erweitert wurde.
TLS wurde für den Betrieb über TCP entwickelt, das zuverlässige Layer 4-Protokoll (nicht für das UDP-Protokoll), um das Design von TLS erheblich zu vereinfachen, da es sich nicht um Zeitüberschreitung und erneute Übertragung verlorener Daten kümmern muss. Die TCP-Schicht macht das wie gewohnt weiter, was den Anforderungen von TLS entspricht.
Warum ist TLS beliebt?
Der Grund für die Beliebtheit der Verwendung einer Sicherheit bei Transport Layer ist die Einfachheit. Das Entwerfen und Bereitstellen der Sicherheit auf dieser Ebene erfordert keine Änderung der TCP / IP-Protokolle, die in einem Betriebssystem implementiert sind. Es müssen nur Benutzerprozesse und -anwendungen entworfen / geändert werden, was weniger komplex ist.
Secure Socket Layer (SSL)
In diesem Abschnitt wird die Familie der für TLS entwickelten Protokolle erläutert. Die Familie umfasst die SSL-Versionen 2 und 3 sowie das TLS-Protokoll. SSLv2 wurde jetzt durch SSLv3 ersetzt, daher konzentrieren wir uns auf SSL v3 und TLS.
Kurze Geschichte von SSL
Im Jahr 1995 entwickelte Netscape SSLv2 und verwendete es in Netscape Navigator 1.1. Die SSL-Version1 wurde nie veröffentlicht und verwendet. Später verbesserte Microsoft SSLv2 und führte ein weiteres ähnliches Protokoll mit dem Namen Private Communications Technology (PCT) ein.
Netscape verbesserte SSLv2 in verschiedenen Sicherheitsproblemen erheblich und stellte 1999 SSLv3 bereit. Die Internet Engineering Task Force (IETF) führte anschließend ein ähnliches TLS-Protokoll (Transport Layer Security) als offenen Standard ein. Das TLS-Protokoll ist mit SSLv3 nicht interoperabel.
TLS hat die kryptografischen Algorithmen für die Schlüsselerweiterung und -authentifizierung geändert. Außerdem schlug TLS die Verwendung der offenen Krypto Diffie-Hellman (DH) und des Digital Signature Standard (DSS) anstelle der patentierten RSA-Krypto vor, die in SSL verwendet wird. Aufgrund des Ablaufs des RSA-Patents im Jahr 2000 gab es jedoch keine triftigen Gründe für Benutzer, von dem weit verbreiteten SSLv3 auf TLS umzusteigen.
Hauptmerkmale von SSL
Die wichtigsten Merkmale des SSL-Protokolls sind:
SSL bietet Netzwerkverbindungssicherheit durch -
Confidentiality - Informationen werden verschlüsselt ausgetauscht.
Authentication- Kommunikationseinheiten identifizieren sich durch die Verwendung digitaler Zertifikate. Die Webserverauthentifizierung ist obligatorisch, während die Clientauthentifizierung optional bleibt.
Reliability - Behält die Nachrichtenintegritätsprüfungen bei.
SSL ist für alle TCP-Anwendungen verfügbar.
Unterstützt von fast allen Webbrowsern.
Erleichtert die Geschäftsabwicklung mit neuen Online-Unternehmen.
Entwickelt hauptsächlich für den Web-E-Commerce.
Architektur von SSL
SSL ist TCP-spezifisch und funktioniert nicht mit UDP. SSL bietet Anwendungen eine Anwendungsprogrammierschnittstelle (Application Programming Interface, API). C- und Java-SSL-Bibliotheken / -Klassen sind leicht verfügbar.
Das SSL-Protokoll ist für die Zusammenarbeit zwischen Anwendung und Transportschicht ausgelegt, wie in der folgenden Abbildung dargestellt.
SSL selbst ist kein Single-Layer-Protokoll, wie im Bild dargestellt. Tatsächlich besteht es aus zwei Unterschichten.
Die untere Unterschicht besteht aus der einen Komponente des SSL-Protokolls, die als SSL-Aufzeichnungsprotokoll bezeichnet wird. Diese Komponente bietet Integritäts- und Vertraulichkeitsdienste.
Die obere Unterschicht besteht aus drei SSL-bezogenen Protokollkomponenten und einem Anwendungsprotokoll. Die Anwendungskomponente stellt den Informationsübertragungsdienst zwischen Client / Server-Interaktionen bereit. Technisch kann es auch auf der SSL-Schicht betrieben werden. Drei SSL-bezogene Protokollkomponenten sind -
- SSL-Handshake-Protokoll
- Ändern Sie das Cipher Spec-Protokoll
- Alarmprotokoll.
Diese drei Protokolle verwalten den gesamten SSL-Nachrichtenaustausch und werden später in diesem Abschnitt erläutert.
Funktionen von SSL-Protokollkomponenten
Die vier Unterkomponenten des SSL-Protokolls übernehmen verschiedene Aufgaben für die sichere Kommunikation zwischen dem Clientcomputer und dem Server.
Protokoll aufzeichnen
Die Datensatzschicht formatiert die Protokollnachrichten der oberen Schicht.
Es fragmentiert die Daten in verwaltbare Blöcke (maximale Länge 16 KB). Optional werden die Daten komprimiert.
Verschlüsselt die Daten.
Stellt einen Header für jede Nachricht und einen Hash (Message Authentication Code (MAC)) am Ende bereit.
Übergibt die formatierten Blöcke zur Übertragung an die TCP-Schicht.
SSL-Handshake-Protokoll
Es ist der komplexeste Teil von SSL. Es wird aufgerufen, bevor Anwendungsdaten übertragen werden. Es werden SSL-Sitzungen zwischen dem Client und dem Server erstellt.
Der Aufbau der Sitzung umfasst die Serverauthentifizierung, die Aushandlung von Schlüsseln und Algorithmen, das Einrichten von Schlüsseln und die Clientauthentifizierung (optional).
Eine Sitzung wird durch einen eindeutigen Satz kryptografischer Sicherheitsparameter identifiziert.
Mehrere sichere TCP-Verbindungen zwischen einem Client und einem Server können dieselbe Sitzung gemeinsam nutzen.
Handshake-Protokollaktionen in vier Phasen. Diese werden im nächsten Abschnitt erläutert.
ChangeCipherSpec-Protokoll
Einfachster Teil des SSL-Protokolls. Es besteht aus einer einzelnen Nachricht, die zwischen zwei kommunizierenden Einheiten, dem Client und dem Server, ausgetauscht wird.
Wenn jede Entität die ChangeCipherSpec-Nachricht sendet, wechselt sie wie vereinbart ihre Seite der Verbindung in den sicheren Zustand.
Der ausstehende Status der Verschlüsselungsparameter wird in den aktuellen Status kopiert.
Der Austausch dieser Nachricht zeigt an, dass alle zukünftigen Datenaustausche verschlüsselt und die Integrität geschützt sind.
SSL-Warnprotokoll
Dieses Protokoll wird verwendet, um Fehler zu melden, z. B. unerwartete Nachrichten, fehlerhafte MAC-Daten, fehlgeschlagene Aushandlung von Sicherheitsparametern usw.
Es wird auch für andere Zwecke verwendet - z. B. zum Benachrichtigen über das Schließen der TCP-Verbindung, zum Benachrichtigen über den Erhalt eines fehlerhaften oder unbekannten Zertifikats usw.
Einrichtung einer SSL-Sitzung
Wie oben erläutert, gibt es vier Phasen des SSL-Sitzungsaufbaus. Diese werden hauptsächlich vom SSL-Handshake-Protokoll verarbeitet.
Phase 1 - Einrichtung von Sicherheitsfunktionen.
Diese Phase umfasst den Austausch von zwei Nachrichten - Client_hello und Server_hello .
Client_hello enthält eine Liste der vom Client unterstützten kryptografischen Algorithmen in absteigender Reihenfolge der Präferenzen.
Server_hello enthält die ausgewählte Cipher Specification (CipherSpec) und eine neue session_id .
Die CipherSpec enthält Felder wie -
Verschlüsselungsalgorithmus (DES, 3DES, RC2 und RC4)
MAC-Algorithmus (basierend auf MD5, SHA-1)
Public-Key-Algorithmus (RSA)
Beide Nachrichten haben "nonce", um einen Wiederholungsangriff zu verhindern.
Phase 2 - Serverauthentifizierung und Schlüsselaustausch.
Server sendet Zertifikat. Die Client-Software wird mit öffentlichen Schlüsseln verschiedener „vertrauenswürdiger“ Organisationen (CAs) konfiguriert, um das Zertifikat zu überprüfen.
Der Server sendet die ausgewählte Cipher Suite.
Der Server kann ein Client-Zertifikat anfordern. Normalerweise wird es nicht gemacht.
Server zeigt das Ende von Server_hello an .
Phase 3 - Clientauthentifizierung und Schlüsselaustausch.
Der Client sendet ein Zertifikat nur auf Anforderung des Servers.
Außerdem wird das mit dem öffentlichen Schlüssel des Servers verschlüsselte Pre-Master Secret (PMS) gesendet.
Der Client sendet auch eine Certificate_verify- Nachricht, wenn er ein Zertifikat sendet , um zu beweisen, dass ihm der private Schlüssel mit diesem Zertifikat zugeordnet ist. Grundsätzlich signiert der Client einen Hash der vorherigen Nachrichten.
Phase 4 - Beenden.
Client und Server senden untereinander Change_cipher_spec- Nachrichten, damit der ausstehende Verschlüsselungsstatus in den aktuellen Status kopiert wird.
Von nun an sind alle Daten verschlüsselt und integer geschützt.
Die Nachricht "Fertig" von jedem Ende bestätigt, dass die Schlüsselaustausch- und Authentifizierungsprozesse erfolgreich waren.
Alle vier oben diskutierten Phasen finden im Rahmen der Einrichtung einer TCP-Sitzung statt. Der Aufbau der SSL-Sitzung beginnt nach TCP SYN / SYNACK und endet vor TCP Fin.
Fortsetzen einer getrennten Sitzung
Es ist möglich , eine getrennte Sitzung (bis zur Wiederaufnahme Alarm - Meldung), wenn der Client einen sendet hello_request an den Server mit den verschlüsselten Sitzungs_ID Informationen.
Der Server bestimmt dann, ob die Sitzungs-ID gültig ist. Nach der Validierung werden ChangeCipherSpec und fertige Nachrichten mit dem Client ausgetauscht und die sichere Kommunikation fortgesetzt .
Dies vermeidet eine Neuberechnung der Sitzungsverschlüsselungsparameter und spart Rechenleistung auf Server- und Client-Seite.
SSL-Sitzungsschlüssel
Wir haben gesehen, dass während der Phase 3 des SSL-Sitzungsaufbaus ein Pre-Master-Geheimnis vom Client an den Server gesendet wird, der mit dem öffentlichen Schlüssel des Servers verschlüsselt ist. Das Hauptgeheimnis und verschiedene Sitzungsschlüssel werden wie folgt generiert:
Das Hauptgeheimnis wird (über einen Pseudozufallszahlengenerator) mit - erzeugt
Das Pre-Master-Geheimnis.
Zwei Nonces (RA und RB) wurden in den Nachrichten client_hello und server_hello ausgetauscht.
Aus diesem Hauptgeheimnis werden dann sechs geheime Werte abgeleitet als -
Mit MAC verwendeter geheimer Schlüssel (für vom Server gesendete Daten)
Mit MAC verwendeter geheimer Schlüssel (für vom Client gesendete Daten)
Geheimschlüssel und IV für die Verschlüsselung (vom Server)
Geheimschlüssel und IV für die Verschlüsselung (vom Client)
TLS-Protokoll
Um einen offenen Internetstandard für SSL bereitzustellen, veröffentlichte die IETF im Januar 1999 das TLS-Protokoll (Transport Layer Security). TLS wird in RFC 5246 als vorgeschlagener Internetstandard definiert.
Hauptmerkmale
Das TLS-Protokoll hat dieselben Ziele wie SSL.
Es ermöglicht Client / Server-Anwendungen eine sichere Kommunikation durch Authentifizierung, verhindert das Abhören und widersteht der Änderung von Nachrichten.
Das TLS-Protokoll befindet sich über der zuverlässigen verbindungsorientierten Transport-TCP-Schicht im Netzwerkschichtstapel.
Die Architektur des TLS-Protokolls ähnelt dem SSLv3-Protokoll. Es gibt zwei Unterprotokolle: das TLS-Aufzeichnungsprotokoll und das TLS-Handshake-Protokoll.
Obwohl das SSLv3- und das TLS-Protokoll eine ähnliche Architektur aufweisen, wurden einige Änderungen an der Architektur und Funktion vorgenommen, insbesondere für das Handshake-Protokoll.
Vergleich von TLS- und SSL-Protokollen
Es gibt acht Hauptunterschiede zwischen TLS- und SSLv3-Protokollen. Diese sind wie folgt -
Protocol Version - Der Header des TLS-Protokollsegments trägt die Versionsnummer 3.1, um zwischen der Nummer 3 des SSL-Protokollsegment-Headers zu unterscheiden.
Message Authentication- TLS verwendet einen Keyed-Hash-Nachrichtenauthentifizierungscode (H-MAC). Der Vorteil ist, dass H-MAC mit jeder Hash-Funktion arbeitet, nicht nur mit MD5 oder SHA, wie im SSL-Protokoll ausdrücklich angegeben.
Session Key Generation - Es gibt zwei Unterschiede zwischen dem TLS- und dem SSL-Protokoll für die Generierung von Schlüsselmaterial.
Die Methode zur Berechnung von Pre-Master- und Master-Geheimnissen ist ähnlich. Im TLS-Protokoll verwendet die Berechnung des Hauptgeheimnisses jedoch die Ausgabe des HMAC-Standards und der Pseudozufallsfunktion (PRF) anstelle des Ad-hoc-MAC.
Der Algorithmus zum Berechnen von Sitzungsschlüsseln und Initiierungswerten (IV) unterscheidet sich in TLS vom SSL-Protokoll.
Alarmprotokollnachricht -
Das TLS-Protokoll unterstützt alle vom Alert-Protokoll von SSL verwendeten Nachrichten, außer dass keine Zertifikat- Alert-Nachricht redundant gemacht wird. Der Client sendet ein leeres Zertifikat, falls keine Clientauthentifizierung erforderlich ist.
Das TLS-Protokoll enthält viele zusätzliche Warnmeldungen für andere Fehlerzustände wie record_overflow, decode_error usw.
Supported Cipher Suites- SSL unterstützt RSA-, Diffie-Hellman- und Fortezza-Chiffresuiten. Das TLS-Protokoll unterstützt alle Anzüge außer Fortezza.
Client Certificate Types- TLS definiert Zertifikatstypen, die in einer certificate_request- Nachricht angefordert werden sollen . SSLv3 unterstützt all dies. Darüber hinaus unterstützt SSL bestimmte andere Zertifikatstypen wie Fortezza.
CertificateVerify und fertige Nachrichten -
In SSL wird eine komplexe Nachrichtenprozedur für die certificate_verify- Nachricht verwendet. Bei TLS sind die verifizierten Informationen in den Handshake-Nachrichten selbst enthalten, wodurch diese komplexe Prozedur vermieden wird.
Die fertige Nachricht wird in TLS und SSLv3 auf unterschiedliche Weise berechnet.
Padding of Data- Im SSL-Protokoll ist die Auffüllung, die den Benutzerdaten vor der Verschlüsselung hinzugefügt wird, die Mindestmenge, die erforderlich ist, damit die Gesamtdatengröße einem Vielfachen der Blocklänge der Verschlüsselung entspricht. In TLS kann das Auffüllen eine beliebige Menge sein, die zu einer Datengröße führt, die ein Vielfaches der Blocklänge der Verschlüsselung beträgt, bis zu maximal 255 Byte.
Die obigen Unterschiede zwischen TLS- und SSLv3-Protokollen sind in der folgenden Tabelle zusammengefasst.
Sicheres Surfen - HTTPS
In diesem Abschnitt wird die Verwendung des SSL / TLS-Protokolls für die Durchführung eines sicheren Webbrowsings erläutert.
HTTPS definiert
Das HTTP-Protokoll (Hyper Text Transfer Protocol) wird zum Surfen im Internet verwendet. Die Funktion von HTTPS ähnelt HTTP. Der einzige Unterschied besteht darin, dass HTTPS "sicheres" Surfen im Internet bietet. HTTPS steht für HTTP over SSL. Dieses Protokoll wird verwendet, um die verschlüsselte und authentifizierte Verbindung zwischen dem Client-Webbrowser und dem Website-Server bereitzustellen.
Das sichere Durchsuchen von HTTPS stellt sicher, dass die folgenden Inhalte verschlüsselt sind:
- URL der angeforderten Webseite.
- Vom Server dem Benutzerclient bereitgestellte Webseiteninhalte.
- Inhalt der vom Benutzer ausgefüllten Formulare.
- Cookies in beide Richtungen erstellt.
Arbeiten von HTTPS
Das HTTPS-Anwendungsprotokoll verwendet normalerweise eines von zwei gängigen Sicherheitsprotokollen für die Transportschicht - SSL oder TLS. Der Prozess des sicheren Browsens wird in den folgenden Punkten beschrieben.
Sie fordern eine HTTPS-Verbindung zu einer Webseite an, indem Sie https: // gefolgt von einer URL in die Adressleiste des Browsers eingeben.
Der Webbrowser stellt eine Verbindung zum Webserver her. Die Verwendung von https ruft die Verwendung des SSL-Protokolls auf.
Eine Anwendung, in diesem Fall der Browser, verwendet den Systemport 443 anstelle von Port 80 (wird im Fall von http verwendet).
Das SSL-Protokoll durchläuft ein Handshake-Protokoll zum Einrichten einer sicheren Sitzung, wie in früheren Abschnitten erläutert.
Die Website sendet zunächst ihr SSL Digital-Zertifikat an Ihren Browser. Nach Überprüfung des Zertifikats tauscht der SSL-Handshake die gemeinsam genutzten Geheimnisse für die Sitzung aus.
Wenn der Server ein vertrauenswürdiges digitales SSL-Zertifikat verwendet, sehen Benutzer ein Vorhängeschlosssymbol in der Adressleiste des Browsers. Wenn ein erweitertes Validierungszertifikat auf einer Website installiert ist, wird die Adressleiste grün.
Einmal eingerichtet, besteht diese Sitzung aus vielen sicheren Verbindungen zwischen dem Webserver und dem Browser.
Verwendung von HTTPS
Die Verwendung von HTTPS bietet dem Benutzer Vertraulichkeit, Serverauthentifizierung und Nachrichtenintegrität. Es ermöglicht die sichere Durchführung von E-Commerce im Internet.
Verhindert das Abhören von Daten und verweigert Identitätsdiebstahl, bei dem es sich häufig um Angriffe auf HTTP handelt.
Heutige Webbrowser und Webserver sind mit HTTPS-Unterstützung ausgestattet. Die Verwendung von HTTPS über HTTP erfordert jedoch mehr Rechenleistung auf Client- und Serverseite, um die Verschlüsselung und den SSL-Handshake durchzuführen.
Secure Shell Protocol (SSH)
Die hervorstechenden Merkmale von SSH sind wie folgt:
SSH ist ein Netzwerkprotokoll, das auf der TCP / IP-Schicht ausgeführt wird. Es soll das TELNET ersetzen, das unsichere Mittel für die Remote-Anmeldung bietet.
SSH bietet eine sichere Client / Server-Kommunikation und kann für Aufgaben wie Dateiübertragung und E-Mail verwendet werden.
SSH2 ist ein weit verbreitetes Protokoll, das gegenüber der früheren Version von SSH1 eine verbesserte Sicherheit der Netzwerkkommunikation bietet.
SSH definiert
SSH ist in drei Unterprotokolle unterteilt.
Transport Layer Protocol- Dieser Teil des SSH-Protokolls bietet Datenvertraulichkeit, Server- (Host-) Authentifizierung und Datenintegrität. Optional kann auch eine Datenkomprimierung bereitgestellt werden.
Server Authentication- Hostschlüssel sind asymmetrisch wie öffentliche / private Schlüssel. Ein Server verwendet einen öffentlichen Schlüssel, um einem Client seine Identität zu beweisen. Der Client überprüft, ob der kontaktierte Server ein "bekannter" Host aus der von ihm verwalteten Datenbank ist. Sobald der Server authentifiziert ist, werden Sitzungsschlüssel generiert.
Session Key Establishment- Nach der Authentifizierung vereinbaren der Server und der Client die Verwendung der Verschlüsselung. Sitzungsschlüssel werden sowohl vom Client als auch vom Server generiert. Sitzungsschlüssel werden vor der Benutzerauthentifizierung generiert, damit Benutzernamen und Kennwörter verschlüsselt gesendet werden können. Diese Schlüssel werden in der Regel in regelmäßigen Abständen (z. B. jede Stunde) während der Sitzung ausgetauscht und sofort nach Gebrauch zerstört.
Data Integrity- SSH verwendet MAC-Algorithmen (Message Authentication Code) zur Überprüfung der Datenintegrität. Dies ist eine Verbesserung gegenüber der von SSH1 verwendeten 32-Bit-CRC.
User Authentication Protocol- Dieser Teil von SSH authentifiziert den Benutzer beim Server. Der Server überprüft, ob der Zugriff nur für beabsichtigte Benutzer gewährt wird. Derzeit werden viele Authentifizierungsmethoden verwendet, z. B. eingegebene Kennwörter, Kerberos, Authentifizierung mit öffentlichem Schlüssel usw.
Connection Protocol - Dies bietet mehrere logische Kanäle über eine einzige zugrunde liegende SSH-Verbindung.
SSH-Dienste
SSH bietet drei Hauptdienste, die die Bereitstellung vieler sicherer Lösungen ermöglichen. Diese Dienste werden kurz wie folgt beschrieben:
Secure Command-Shell (Remote Logon)- Der Benutzer kann Dateien bearbeiten, den Inhalt von Verzeichnissen anzeigen und auf Anwendungen auf dem angeschlossenen Gerät zugreifen. Systemadministratoren können Dienste und Prozesse remote starten / anzeigen / stoppen, Benutzerkonten erstellen und Datei- / Verzeichnisberechtigungen ändern usw. Alle Aufgaben, die an der Eingabeaufforderung eines Computers ausgeführt werden können, können jetzt mithilfe der sicheren Remote-Anmeldung sicher vom Remote-Computer aus ausgeführt werden.
Secure File Transfer- Das SSH File Transfer Protocol (SFTP) ist als Erweiterung für SSH-2 für die sichere Dateiübertragung konzipiert. Im Wesentlichen handelt es sich um ein separates Protokoll, das über das Secure Shell-Protokoll gelegt wird, um Dateiübertragungen durchzuführen. SFTP verschlüsselt sowohl den Benutzernamen / das Passwort als auch die übertragenen Dateidaten. Es verwendet denselben Port wie der Secure Shell-Server, dh den Systemport Nr. 22.
Port Forwarding (Tunneling)- Damit können Daten von ungesicherten TCP / IP-basierten Anwendungen gesichert werden. Nachdem die Portweiterleitung eingerichtet wurde, leitet Secure Shell den Datenverkehr von einem Programm (normalerweise einem Client) um und sendet ihn über den verschlüsselten Tunnel an das Programm auf der anderen Seite (normalerweise einen Server). Mehrere Anwendungen können Daten über einen einzigen gemultiplexten sicheren Kanal übertragen, sodass nicht mehr viele Ports an einer Firewall oder einem Router geöffnet werden müssen.
Vorteile und Einschränkungen
Die Vorteile und Einschränkungen des Einsatzes von Kommunikationssicherheit auf Transportebene sind folgende:
Leistungen
Die Sicherheit der Transportschicht ist für Anwendungen transparent.
Server ist authentifiziert.
Header der Anwendungsschicht sind ausgeblendet.
Es ist feinkörniger als Sicherheitsmechanismen auf Schicht 3 (IPsec), da es auf der Ebene der Transportverbindung funktioniert.
Einschränkungen
Gilt nur für TCP-basierte Anwendungen (nicht für UDP).
TCP / IP-Header sind klar.
Geeignet für die direkte Kommunikation zwischen Client und Server. Gilt nicht für sichere Anwendungen mit Serverkette (z. B. E-Mail)
SSL bietet keine Ablehnung, da die Clientauthentifizierung optional ist.
Bei Bedarf muss die Clientauthentifizierung über SSL implementiert werden.
Zusammenfassung
In den letzten zehn Jahren ist eine große Anzahl von Webanwendungen im Internet aufgetaucht. Viele E-Governance- und E-Commerce-Portale sind online gegangen. Diese Anwendungen erfordern, dass die Sitzung zwischen dem Server und dem Client sicher ist und Vertraulichkeit, Authentifizierung und Integrität der Sitzungen gewährleistet.
Eine Möglichkeit, einen potenziellen Angriff während der Sitzung eines Benutzers abzuschwächen, besteht in der Verwendung eines sicheren Kommunikationsprotokolls. Zwei dieser Kommunikationsprotokolle, Secure Sockets Layer (SSL) und Transport Layer Security (TLS), werden in diesem Kapitel behandelt. Beide Protokolle funktionieren auf der Transportschicht.
Ein weiteres Transportschichtprotokoll, Secure Shell (SSH), das TELNET ersetzen soll, bietet sichere Mittel für die Remote-Anmeldung. Es kann verschiedene Dienste wie Secure Command Shell und SFTP bereitstellen.
Der Einsatz von Sicherheit auf Transportschicht hat viele Vorteile. Das auf dieser Ebene entwickelte Sicherheitsprotokoll kann jedoch nur mit TCP verwendet werden. Sie bieten keine Sicherheit für die über UDP implementierte Kommunikation.