2011-01-16 10 views
0

Ich habe die folgende Frage zu SSL/TLS.
Nach dem Server Hallo, startet die Authentifizierungsphase des Servers.
Aus verschiedenen Artikeln/Büchern scheint diese Phase optional zu sein. Z.B. in dem WikiJava-Sicherheitskonfiguration für ssl

Der Server sendet seine Certificate Nachricht (abhängig von der gewählten Cipher Suite, wird dies durch den Server verzichtet werden kann).

Aber ich verstehe nicht, was es bedeutet zu sagen, dass es auf der Verschlüsselungssuite abhängt.
Also mein Verständnis ist entweder ein ServerKeyExchange oder ein Certificate folgt ein ServerHello.
Also meine Frage ist, kann die Server-Authentifizierung alle zusammen weggelassen werden?
Wenn Sie beispielsweise die Client-Aunthentifizierung in Tomcat auslassen, konfigurieren Sie den Connector einfach so, dass er ihn nicht anfordert.
Wie kann die Server-Authentifizierung weggelassen werden? Kommt es auf das Java-Framework an, das ich verwende, wenn es das unterstützt?
Und was bedeutet es, die Server-Authentifizierung wegzulassen? Wenn das Zertifikat nicht gesendet wird, wird die obligatorisch, oder in der Regel erlauben Frameworks die Bereitstellung eines lokalen öffentlichen Schlüssels statt dessen, wenn man die Authentifizierungsphase für die Performance umgehen möchte oder weil es keinen Sinn ergibt?
Oder hängt das irgendwie von der Verschlüsselungssuite ab, wie Wiki zu implizieren scheint?
HINWEIS:
Ich verstehe, dass Server immer authentifiziert werden sollte. Der Kontext meines Problems ist jedoch eine Client-App und ein Server, die auf demselben Computer laufen (und Java Runtime, denke ich), so dass es als sicher angesehen werden kann, die Server-Authentifizierung zu umgehen (denke ich).

Jeder Eingang ist sehr willkommen!
Danke!

Antwort

1

In TLS/SSL ist die Serverauthentifizierung optional. Wenn Sie TLS/SSL-Verschlüsselungssuite ohne Authn auswählen (z. B. TLS_NULL_WITH_NULL_NULL (deaktiviert authn und Verschlüsselung) oder TLS_DH_anon_XXXX (nur Verschlüsselung verwenden) in der TLS-Spezifikation), wird das Serverzertifikat nicht gesendet.

TLS/SSL ohne Authn scheint nicht pure-Java-Connector unterstützt werden. Aber ich denke, der native-Connector mit SSLCipherSuite=aNULL unterstützt es.

Ich weiß nicht, es ist sicher, authn zu deaktivieren, d. H. Angriffe wie DNS-Spoofing könnten Bedrohungen sein. Ich denke, Sie sollten Server-Authn besser verwenden, wenn die Leistung kein Problem ist. Oder das Ausschalten von TLS/SSL selbst könnte eine Wahl sein. (Encrypting-Server-Client-Kommunikation könnte bedeutungslos sein, weil Administrator des Computers Zertifikatsdateien stehlen und JVM-Heap Dump.)

+0

@habe: Vielen Dank für die Antwort. Also ist die Nicht-Authentifizierung nur möglich, wenn der Client anonyme DH unterstützt? Wenn nicht, ist es obligatorisch? Das ist die Bedeutung in Wiki-Zitat? Auch wenn Sie den nativen Connector erwähnen, welche Klasse sprechen Sie? – Cratylus

+1

@ user384706: DH-Anon-Unterstützung ist für TLS ohne Authn erforderlich. Es ist nicht zwingend in der Spezifikation. (vgl. § 9 RFC 2246). Als "abhängig von der ausgewählten Cipher Suite" in Wikipedia sollte es das gleiche sein, was ich sage. Und native-Connector ist in http://tomcat.apache.org/native-doc/. – habe

+0

@habe: Eine letzte Frage: Denkst du, dns Spoofing könnte eine Bedrohung sein, selbst wenn der Client und der Server in derselben Maschine sind? – Cratylus

1

Authentifizierung und Verschlüsselung wichtig sind, wenn Daten bewegt sich über eine nicht vertrauenswürdigen Netzwerk oder wenn einer der Endpunkte nicht ist Vertrauenswürdige. Wenn Ihre Anwendung nur Verbindungen auf localhost herstellt, sind Authentifizierung und Verschlüsselung nicht wichtig (die Tatsache, dass Ihre Daten und Anwendungen auf locahost stehen, setzt eine Vertrauensstellung in localhost voraus).

+0

Was ist jedoch mit DNS-Spoofing? – Cratylus

+1

"localhost" befindet sich in Ihrer Hosts-Datei; Es wird kein DNS verwendet und kann daher nicht gefälscht werden. Oder verwenden Sie 127.0.0.1 – Jumbogram

+0

Ok. Aber was ist, wenn auch ein anderer Name zu 127.0.0.1 auflösen soll? – Cratylus

0

Sie können für tomcat 6 ssl Konfiguration erhalten von

http://nayanmali.blogspot.com/

bekam man ganze Konfiguration und wie keytool erstellen und wie Zertifikatform zu erzeugen, dass