Added "Absicherung der Transportschicht (auf dem Webserver - Teil1)": TLS/SSL, Cipher, Zertifikate und Test; Die Seite ist inzwischen recht umfangreich => ggf später teilen!
← Older revision
Revision as of 15:38, 14 February 2014
Line 215:
Line 215:
Weitere Hinweise im [https://www.owasp.org/index.php/Transport_Layer_Protection_Cheat_Sheet Transport Layer Protection Cheat Sheet]
Weitere Hinweise im [https://www.owasp.org/index.php/Transport_Layer_Protection_Cheat_Sheet Transport Layer Protection Cheat Sheet]
{{Top_10_2010:SubsectionAdvancedTemplate|type={{Top_10_2010:StyleTemplate}}|subsection=defOp|position=left|title=2a|risk=6|year=2013|language=de}}
{{Top_10_2010:SubsectionAdvancedTemplate|type={{Top_10_2010:StyleTemplate}}|subsection=defOp|position=left|title=2a|risk=6|year=2013|language=de}}
−
;Absicherung der Transportschicht (auf dem Webserver)
+
;Absicherung der Transportschicht (auf dem Webserver
- Teil 1
)
−
Sichere Verschlüsselung
und sichere Zertifikate
+
<b>
Sichere Verschlüsselung
</b>
−
* Nutzen Sie sichere Verschlüsselungsprotokolle (TLS1.2, TLS1.1, ggf auch
TLS 1
.0)
+
* Nutzen Sie
aktuelle Empfehlungen zur SSL/TLS-Sicherheit, das Thema ist derzeit sehr(!) dynamisch. Z.B.:
−
*
Nutzen Sie
sichere Verschlüsselungsverfahren (Cipher-Suites), die 'Forward Secrecy' unterstützen
+
:* [https://www.ssllabs.com/projects/best-practices/index.html SSL LABS: 'SSL/TLS Deployment Best Practices']
−
*
Legen Sie eine Priorisierung der Verschlüsselungsverfahren auf dem Server fest
+
:* [https://www.bsi.bund.de/DE/Publikationen/TechnischeRichtlinien/tr02102/index_htm.html BSI TR-02102-2 Teil 2]
−
* Prüfen Sie, welche Browser und Betriebsysteme,
sie
unterstützen wollen und welche Protokolle und welche Cipher für die verschlüsselte Verbindung jeweils ausgewählt werden.
+
* Nur
sichere Verschlüsselungsprotokolle
unterstützen
(TLS1.2, TLS1.1, ggf auch
TLS1
.0)
−
...
TBD
... (
in Arbeit
)
+
*
Die Verschlüsselungsverfahren auf dem Server priorisieren
−
Weitere Hinweise im
[https://www.
owasp
.org/
index
.
php
/Transport_Layer_Protection_Cheat_Sheet Transport Layer Protection Cheat Sheet]
+
*
sichere
, ephemerale
Verschlüsselungsverfahren (Cipher-Suites), die 'Forward Secrecy' unterstützen
(z.B. DHE_RSA, ECDHE_RSA) mit hoher Prio versehen.
+
*
RC4 und andere schwache Cipher <u>vermeiden</u>, <u>ohne</u> den Zugriff von (noch) unterstützten Browsern, oder Suchmaschinen-Bots (Webcrawlern) zu verlieren.
+
* Prüfen Sie, welche Browser und Betriebsysteme,
Sie
unterstützen wollen und welche Protokolle und welche Cipher für die verschlüsselte Verbindung jeweils ausgewählt werden
(z.B. noch SSLv3, TLS_RSA_WITH_3DES_EDE_CBC_SHA)
.
+
* TLS/SSL-Konfiguration des Webservers härten:
+
:* nur sichere Server-initiierte Renegotiation
+
:* <u>keine</u> Komprimierung
+
:* Einstellungen aller virtuellen Server (virtualHosts) prüfen
+
:* Bei Einsatz von Server Name Indication (SNI), prüfen, welcher Server der Default-Server ist
.
Alte Browser bzw
.
Betriebssysteme, ohne SNI-Unterstützung erreichen nur diesen!
+
* Konfigurations-Beispiel für Apache:
+
{{Top_10_2010:ExampleBeginTemplate|year=2013}}
+
SSLProtocol +TLSv1
.
2 +TLSv1
.
1 +TLSv1<br>
+
SSLCompression off <br>
+
SSLHonorCipherOrder on <br>
+
SSLCipherSuite <
..
.To Be Done....> <br>
+
{{Top_10_2010:ExampleEndTemplate}}
+
<br/>
+
<b>sichere Zertifikate</b><br/>
+
* Nutzen Sie eine vertrauenswürdige Zertifizierungsstelle
(
CA
)
für öffentlich erreichbare, verschlüsselte Webserver; Prüfen Sie die Vergabe-Politik der CA.
+
* zeitgemäße, starke Verfahren mit sicheren Schlüssellängen (vgl.
[https://www.
bsi.bund.de/DE/Publikationen/TechnischeRichtlinien/tr02102/index_htm.html BSI TR-02102-2 Teil 2]: 2000 bits bzw. (nach 2015:) 3000 bits für RSA), auch für alle Zwischenzertifikate und das Root-Zertifikat der CA.
+
* Angabe der 'Fully Qualified Names' und bei 'www' auch des Domänennamens im Zertifikat, damit ein Redirekt möglich ist (<nowiki>z.B. von 'https://example.com' zu 'https://www.example.com'</nowiki>).
+
* Dedizierte Zuertifikate, je Server; <u>keine</u> 'Sammelzertifikate' (Wildcard-Zertifikate, z.B. <span style="color:red;">*.example.com</span>)
+
* Überwachung der Gültigkeit der Zertifikate
+
* IP-Adressen in Zertifikaten <u>vermeiden</u>, <u>keine</u> [https://tools.ietf
.org/
html/rfc1918 RFC 1918]-Adressen (z
.
B. <span style="color:red;">192.168.1.1<
/
span>)<br/>
+
* stellen Sie die, zum Verifizieren benötigte Zertifikats-Kette auf dem Webserver zur Verfügung (auch die Zwischenzertifikate)
+
<br/>
+
<b>Testen der Einstellungen und des Zertifikats:</b>
+
* [[Testing_for_SSL-TLS_%28OWASP-CM-001%29 | OWASP Testing Guide: Chapter on SSL/TLS Testing]]
+
* [[O-Saft|OWASP 'O-Saft' (OWASP SSL audit for testers / OWASP SSL advanced forensic tool)]]
+
* [https://www.ssllabs.com/ssltest SSL LABS Server Test]
+
<br/>
+
Weitere Hinweise im [[
Transport_Layer_Protection_Cheat_Sheet
|
Transport Layer Protection Cheat Sheet
]] und
+
[[Testing_for_SSL-TLS|OWASP Testing Guide: Chapter on SSL/TLS Testing]
]
{{Top_10_2010:SubsectionAdvancedTemplate|type={{Top_10_2010:StyleTemplate}}|subsection=defOp|position=right|title=2b|risk=6|year=2013|language=de}}
{{Top_10_2010:SubsectionAdvancedTemplate|type={{Top_10_2010:StyleTemplate}}|subsection=defOp|position=right|title=2b|risk=6|year=2013|language=de}}
+
;Absicherung der Transportschicht (auf dem Webserver - Teil 2)
+
<b>Wirksamer Schutz gegen Man In The Middle-Angriffe</b>
Die Sicherheitskonfiguration unter Option 2a hat noch eine Schwachstelle, so das MITM (Man In The Middle attack) nicht zuverlässig verhindert wird. MITM erzeugt einen Zertifikatsfehler am Client, der üblicherweise aber (durch den Anwender) ignoriert wird. Deshalb wurde der HTTP-Header "HTTP Strict Transport Security (HSTS)" eingeführt. Damit werden kompatible Browser (Firefox, Chrome, Opera aber bisher NICHT IE) angewiesen, dass
Die Sicherheitskonfiguration unter Option 2a hat noch eine Schwachstelle, so das MITM (Man In The Middle attack) nicht zuverlässig verhindert wird. MITM erzeugt einen Zertifikatsfehler am Client, der üblicherweise aber (durch den Anwender) ignoriert wird. Deshalb wurde der HTTP-Header "HTTP Strict Transport Security (HSTS)" eingeführt. Damit werden kompatible Browser (Firefox, Chrome, Opera aber bisher NICHT IE) angewiesen, dass
* der Browser den http-Request ausschließlich über https verschickt (auch falls die Seite mit http aufgerufen wird).
* der Browser den http-Request ausschließlich über https verschickt (auch falls die Seite mit http aufgerufen wird).
Line 245:
Line 278:
;Quellen:
;Quellen:
−
[
https://www.owasp.org/index.php/HTTP_Strict_Transport_Security
HTTP_Strict_Transport_Security ]
+
[
[
HTTP_Strict_Transport_Security
|HTTP Strict Transport Security]
]
<br>
−
+
[http://www.youtube.com/watch?v=zEV3HOuM_Vw&feature=youtube_gdata AppSecTutorial Series - Episode 4]
[http://www.youtube.com/watch?v=zEV3HOuM_Vw&feature=youtube_gdata AppSecTutorial Series - Episode 4]
Line 255:
Line 287:
* [[Top_10_2007-Insecure_Cryptographic_Storage | OWASP Top 10-2007 on Insecure Cryptographic Storage]]
* [[Top_10_2007-Insecure_Cryptographic_Storage | OWASP Top 10-2007 on Insecure Cryptographic Storage]]
* [http://owasp-esapi-java.googlecode.com/svn/trunk_doc/latest/org/owasp/esapi/Encryptor.html ESAPI Encryptor API]
* [http://owasp-esapi-java.googlecode.com/svn/trunk_doc/latest/org/owasp/esapi/Encryptor.html ESAPI Encryptor API]
−
* [
http://www.owasp.org/index.php/
Guide_to_Cryptography#Insecure_transmission_of_secrets OWASP Development Guide: Chapter on Cryptography]
+
* [
[
Guide_to_Cryptography#Insecure_transmission_of_secrets
|
OWASP Development Guide: Chapter on Cryptography
]
]
* [[Codereview-Cryptography | OWASP Code Review Guide: Chapter on Cryptography]]
* [[Codereview-Cryptography | OWASP Code Review Guide: Chapter on Cryptography]]
+
* [[Cryptographic_Storage_Cheat_Sheet | OWASP Cryptographic Storage Cheat Sheet]]
+
* [[Password_Storage_Cheat_Sheet | OWASP Password Storage Cheat Sheet]]
+
* [[Transport_Layer_Protection_Cheat_Sheet|OWASP Transport Layer Protection Cheat Sheet]]
+
* [[Testing_for_SSL-TLS|OWASP Testing Guide: Chapter on SSL/TLS Testing]]
{{Top_10_2010:SubSubsectionExternalReferencesTemplate|language=de}}
{{Top_10_2010:SubSubsectionExternalReferencesTemplate|language=de}}
* [http://cwe.mitre.org/data/definitions/310.html CWE Entry 310 on Cryptographic Issues]
* [http://cwe.mitre.org/data/definitions/310.html CWE Entry 310 on Cryptographic Issues]
Line 263:
Line 299:
* [http://www.mindrot.org/projects/jBCrypt Reine Java Implementierung von BCrypt]
* [http://www.mindrot.org/projects/jBCrypt Reine Java Implementierung von BCrypt]
* [https://github.com/wg/scrypt Beispielimplementierung von SCrypt]
* [https://github.com/wg/scrypt Beispielimplementierung von SCrypt]
+
* [https://www.bsi.bund.de/DE/Publikationen/TechnischeRichtlinien/tr02102/index_htm.html BSI TR-02102-2 Teil 2]
{{Top_10:SubsectionTableEndTemplate}}{{Top 10 DeveloperEdition:NavigationByHeadertab
{{Top_10:SubsectionTableEndTemplate}}{{Top 10 DeveloperEdition:NavigationByHeadertab
|headertab=JAVA
|headertab=JAVA