Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
Sinn und UnsinnSinn und Unsinn
von SSLvon SSL
PHP Usergroup FrankfurtPHP Usergroup Frankfurt
18.09.201418.09.2014
https://...
Mehr Sicherheit
Mehr Sicherheit
Mehr besser?
https://www.owasp.org/index.php/Transport_Layer_Protection_Cheat_Sheet#SSL_vs._TLShttps://www.owasp.org/index.php/Transpor...
Verschlüsselung
n
Identitätsprüfung
g
wQ
Q
)
w
http://www.golem.de/1108/86079.htmlhttp://www.golem.de/1108/86079.html
Google I/O 2014: HTTPS Everywhere
„Data delivered over an unencrypted channel is
insecure, untrustworthy, and trivially in...
https://developers.google.com/speed/spdy/
http://caniuse.com/#feat=spdy
https://twitter.com/mnot/status/400564763559620608https://twitter.com/mnot/status/400564763559620608
http://googlewebmastercentral.blogspot.de/2014/08/https-as-ranking-signal.htmlhttp://googlewebmastercentral.blogspot.de/20...
https://twitter.com/Souders/status/349214019070078977https://twitter.com/Souders/status/349214019070078977
https://www.eff.org/https-everywherehttps://www.eff.org/https-everywhere
https://www.drupal.org/node/1866974https://www.drupal.org/node/1866974
https://twitter.com/jquery/status/494922194351181824https://twitter.com/jquery/status/494922194351181824
http://heartbleed.com/http://heartbleed.com/
https://www.ssllabs.com/ssltest/
http://www.webpagetest.org/result/130616_3E_A0H/1/details/
Ladezeiten
HTTP(S)
<script src="//connect.facebook.net/de_DE/all.js"></script>
HTTP(S)
<script src="//connect.facebook.net/de_DE/all.js" async defer></script>
https://www.igvita.com/2014/05/20/script-i...
Content Security Policy (CSP)
# Apache
Header set Content-Security-Policy "default-src https:"
# Nginx
add_header Content-...
HTTP Strict Transport Security
(HSTS)
# Apache
Header always set Strict-Transport-Security "max-age=31536000; includeSubDo...
Lokale Entwicklungsumgebung
http://dev.walterebert.de/
-
https://dev.walterebert.de/
HSTS
# Apache
Header always set Strict-Transport-Security "max-age=31536000"
# Nginx
add_header Strict-Transport-Security ...
Public Key Pinning
Header set Public-Key-Pins "max-age=2592000; 
pin-sha256=E9CZ9INDbd+2eRQozYqqbQ2yXLVKB9+xcprMF+44U1g=; ...
Server Name Indication (SNI)
Mehrere Domains unter einer IP-Adresse
https://de.wikipedia.org/wiki/Server_Name_Indication
https://www.ssllabs.com/ssltest/analyze.html?d=walterebert.de&hideResults=on
Android 2.3
Internet Explorer
auf Windows XP
$ php -r "echo file_get_contents('https://s.walterebert.com/');"
$ php -a
Interactive mode enabled
php > echo file_get_con...
Fehlermeldung für veraltete Clients
SSLStrictSNIVHostCheck on
ErrorDocument 403 "TLS SNI Required."
Listen 443
<VirtualHos...
Perfect Forward Secrecy
https://de.wikipedia.org/wiki/Perfect_Forward_Secrecy
https://community.qualys.com/blogs/securityl...
PHP Sessions
ini_set('session.cookie_httponly', 1);
ini_set('session.cookie_secure', 1);
http://de.php.net/manual/de/sessi...
PHP Cookies
setcookie(
$name,
$value,
0, // expire
'/',
'', // domain
true, // secure
true // httponly
);
http://de.php.ne...
PHP cURL
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_USERAGENT, 'PHP ' . PHP_VERSION)...
PHP cURL
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_USERAGENT, 'PHP ' . PHP_VERSION)...
PHP cURL
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_USERAGENT, 'PHP ' . PHP_VERSION)...
PHP Streams
$uri = 'https://walterebert.de/';
$ctx = stream_context_create(array('ssl' => array(
'verify_peer' => true,
'c...
PHP 5.6
$uri = 'https://walterebert.de/';
$cafile = '/etc/ssl/ca-bundle.pem';
ini_set('openssl.cafile', $cafile);
$data = ...
Links
https://www.owasp.org/index.php/SSL_TLS_Knowledge_Center
https://www.owasp.org/index.php/Transport_Layer_Protection_...
Walter Ebert
@wltrd
walterebert.de
slideshare.net/walterebert
Sinn und Unsinn von SSL
Sinn und Unsinn von SSL
Sinn und Unsinn von SSL
Sinn und Unsinn von SSL
Sinn und Unsinn von SSL
Sinn und Unsinn von SSL
Sinn und Unsinn von SSL
Sinn und Unsinn von SSL
Nächste SlideShare
Wird geladen in …5
×

von

Sinn und Unsinn von SSL Slide 1 Sinn und Unsinn von SSL Slide 2 Sinn und Unsinn von SSL Slide 3 Sinn und Unsinn von SSL Slide 4 Sinn und Unsinn von SSL Slide 5 Sinn und Unsinn von SSL Slide 6 Sinn und Unsinn von SSL Slide 7 Sinn und Unsinn von SSL Slide 8 Sinn und Unsinn von SSL Slide 9 Sinn und Unsinn von SSL Slide 10 Sinn und Unsinn von SSL Slide 11 Sinn und Unsinn von SSL Slide 12 Sinn und Unsinn von SSL Slide 13 Sinn und Unsinn von SSL Slide 14 Sinn und Unsinn von SSL Slide 15 Sinn und Unsinn von SSL Slide 16 Sinn und Unsinn von SSL Slide 17 Sinn und Unsinn von SSL Slide 18 Sinn und Unsinn von SSL Slide 19 Sinn und Unsinn von SSL Slide 20 Sinn und Unsinn von SSL Slide 21 Sinn und Unsinn von SSL Slide 22 Sinn und Unsinn von SSL Slide 23 Sinn und Unsinn von SSL Slide 24 Sinn und Unsinn von SSL Slide 25 Sinn und Unsinn von SSL Slide 26 Sinn und Unsinn von SSL Slide 27 Sinn und Unsinn von SSL Slide 28 Sinn und Unsinn von SSL Slide 29 Sinn und Unsinn von SSL Slide 30 Sinn und Unsinn von SSL Slide 31 Sinn und Unsinn von SSL Slide 32 Sinn und Unsinn von SSL Slide 33 Sinn und Unsinn von SSL Slide 34 Sinn und Unsinn von SSL Slide 35 Sinn und Unsinn von SSL Slide 36 Sinn und Unsinn von SSL Slide 37 Sinn und Unsinn von SSL Slide 38 Sinn und Unsinn von SSL Slide 39 Sinn und Unsinn von SSL Slide 40 Sinn und Unsinn von SSL Slide 41 Sinn und Unsinn von SSL Slide 42 Sinn und Unsinn von SSL Slide 43 Sinn und Unsinn von SSL Slide 44 Sinn und Unsinn von SSL Slide 45 Sinn und Unsinn von SSL Slide 46 Sinn und Unsinn von SSL Slide 47 Sinn und Unsinn von SSL Slide 48
Nächste SlideShare
Bilder einbinden ist kein Thema, oder?
Weiter
Herunterladen, um offline zu lesen und im Vollbildmodus anzuzeigen.

0 Gefällt mir

Teilen

Herunterladen, um offline zu lesen

Sinn und Unsinn von SSL

Herunterladen, um offline zu lesen

Vortrag für die PHP Usergroup Frankfurt

Ähnliche Bücher

Kostenlos mit einer 30-tägigen Testversion von Scribd

Alle anzeigen
  • Gehören Sie zu den Ersten, denen das gefällt!

Sinn und Unsinn von SSL

  1. 1. Sinn und UnsinnSinn und Unsinn von SSLvon SSL PHP Usergroup FrankfurtPHP Usergroup Frankfurt 18.09.201418.09.2014 https://www.flickr.com/photos/vonderauvisuals/9778832892https://www.flickr.com/photos/vonderauvisuals/9778832892 Walter EbertWalter Ebert
  2. 2. Mehr Sicherheit
  3. 3. Mehr Sicherheit Mehr besser?
  4. 4. https://www.owasp.org/index.php/Transport_Layer_Protection_Cheat_Sheet#SSL_vs._TLShttps://www.owasp.org/index.php/Transport_Layer_Protection_Cheat_Sheet#SSL_vs._TLS
  5. 5. Verschlüsselung n Identitätsprüfung g
  6. 6. wQ
  7. 7. Q ) w
  8. 8. http://www.golem.de/1108/86079.htmlhttp://www.golem.de/1108/86079.html
  9. 9. Google I/O 2014: HTTPS Everywhere „Data delivered over an unencrypted channel is insecure, untrustworthy, and trivially intercepted. We must protect the security, privacy, and integrity of our users data. In this session we will take a hands-on tour of how to make your websites secure by default: the required technology, configuration and performance best practices, how to migrate your sites to HTTPS and make them user and search friendly, and more. Your users will thank you.“ https://www.youtube.com/watch?v=cBhZ6S0PFCY
  10. 10. https://developers.google.com/speed/spdy/ http://caniuse.com/#feat=spdy
  11. 11. https://twitter.com/mnot/status/400564763559620608https://twitter.com/mnot/status/400564763559620608
  12. 12. http://googlewebmastercentral.blogspot.de/2014/08/https-as-ranking-signal.htmlhttp://googlewebmastercentral.blogspot.de/2014/08/https-as-ranking-signal.html
  13. 13. https://twitter.com/Souders/status/349214019070078977https://twitter.com/Souders/status/349214019070078977
  14. 14. https://www.eff.org/https-everywherehttps://www.eff.org/https-everywhere
  15. 15. https://www.drupal.org/node/1866974https://www.drupal.org/node/1866974
  16. 16. https://twitter.com/jquery/status/494922194351181824https://twitter.com/jquery/status/494922194351181824
  17. 17. http://heartbleed.com/http://heartbleed.com/
  18. 18. https://www.ssllabs.com/ssltest/
  19. 19. http://www.webpagetest.org/result/130616_3E_A0H/1/details/ Ladezeiten
  20. 20. HTTP(S) <script src="//connect.facebook.net/de_DE/all.js"></script>
  21. 21. HTTP(S) <script src="//connect.facebook.net/de_DE/all.js" async defer></script> https://www.igvita.com/2014/05/20/script-injected-async-scripts-considered-harmful/
  22. 22. Content Security Policy (CSP) # Apache Header set Content-Security-Policy "default-src https:" # Nginx add_header Content-Security-Policy "default-src https:"; https://www.owasp.org/index.php/Content_Security_Policy
  23. 23. HTTP Strict Transport Security (HSTS) # Apache Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains" # Nginx add_header Strict-Transport-Security "max-age=31536000; includeSubDomains"; https://www.owasp.org/index.php/HTTP_Strict_Transport_Security
  24. 24. Lokale Entwicklungsumgebung http://dev.walterebert.de/ - https://dev.walterebert.de/
  25. 25. HSTS # Apache Header always set Strict-Transport-Security "max-age=31536000" # Nginx add_header Strict-Transport-Security "max-age=31536000"; https://www.owasp.org/index.php/HTTP_Strict_Transport_Security#Excessively_Strict_STS
  26. 26. Public Key Pinning Header set Public-Key-Pins "max-age=2592000; pin-sha256=E9CZ9INDbd+2eRQozYqqbQ2yXLVKB9+xcprMF+44U1g=; pin-sha256=LPJNul+wow4m6DsqxbninhsWHlwfp0JecwQzYpOLmCQ=; includeSubDomains; report-uri=http://example.com/pkp-report.php" https://www.owasp.org/index.php/Certificate_and_Public_Key_Pinning
  27. 27. Server Name Indication (SNI) Mehrere Domains unter einer IP-Adresse https://de.wikipedia.org/wiki/Server_Name_Indication
  28. 28. https://www.ssllabs.com/ssltest/analyze.html?d=walterebert.de&hideResults=on Android 2.3 Internet Explorer auf Windows XP
  29. 29. $ php -r "echo file_get_contents('https://s.walterebert.com/');" $ php -a Interactive mode enabled php > echo file_get_contents("https://s.walterebert.com/"); <?php $client = new SoapClient("some.wsdl"); $ http https://s.walterebert.com/ http: error: SSLError: hostname 's.walterebert.com' doesn't match either of 'www.walterebert.de', 'walterebert.de' Nicht nur Browser https://www.mnot.net/blog/2014/05/09/if_you_can_read_this_youre_sniing PHP 5.3.2: Added SNI_enabled and SNI_server_name Webservices, RSS-Reader, Webcrawler, Monitoring, ...
  30. 30. Fehlermeldung für veraltete Clients SSLStrictSNIVHostCheck on ErrorDocument 403 "TLS SNI Required." Listen 443 <VirtualHost *:443> ... SSLStrictSNIVHostCheck on <Directory ...> ErrorDocument 403 default SSLRequireSSL SSLOptions +StrictRequire </Directory> </VirtualHost> https://wiki.apache.org/httpd/NameBasedSSLVHostsWithSNI
  31. 31. Perfect Forward Secrecy https://de.wikipedia.org/wiki/Perfect_Forward_Secrecy https://community.qualys.com/blogs/securitylabs/2013/08/05/configuring-apache-nginx-and-openssl-for-forward-secrecy Langzeitschlüssel -> Sitzungsschlüssel
  32. 32. PHP Sessions ini_set('session.cookie_httponly', 1); ini_set('session.cookie_secure', 1); http://de.php.net/manual/de/session.configuration.php
  33. 33. PHP Cookies setcookie( $name, $value, 0, // expire '/', '', // domain true, // secure true // httponly ); http://de.php.net/manual/de/function.setcookie.php
  34. 34. PHP cURL $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_USERAGENT, 'PHP ' . PHP_VERSION); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $data = curl_exec($ch); curl_close($ch); http://de.php.net/manual/de/book.curl.php
  35. 35. PHP cURL $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_USERAGENT, 'PHP ' . PHP_VERSION); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); $data = curl_exec($ch); curl_close($ch); http://de.php.net/manual/de/function.curl-setopt.php :-S
  36. 36. PHP cURL $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_USERAGENT, 'PHP ' . PHP_VERSION); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true); curl_setopt($ch, CURLOPT_CAINFO, '/etc/ssl/ca-bundle.pem'); $data = curl_exec($ch); curl_close($ch); http://de.php.net/manual/de/function.curl-setopt.php
  37. 37. PHP Streams $uri = 'https://walterebert.de/'; $ctx = stream_context_create(array('ssl' => array( 'verify_peer' => true, 'cafile' => '/etc/ssl/ca-bundle.pem', 'CN_match' => 'walterebert.de' ))); $data = file_get_contents($uri, FALSE, $ctx); https://wiki.php.net/rfc/tls-peer-verification
  38. 38. PHP 5.6 $uri = 'https://walterebert.de/'; $cafile = '/etc/ssl/ca-bundle.pem'; ini_set('openssl.cafile', $cafile); $data = file_get_contents($uri); // oder $ctx = stream_context_create(['ssl'=>['cafile'=>$cafile]]); $data = file_get_contents($uri, FALSE, $ctx); https://wiki.php.net/rfc/tls-peer-verification
  39. 39. Links https://www.owasp.org/index.php/SSL_TLS_Knowledge_Center https://www.owasp.org/index.php/Transport_Layer_Protection_Cheat_Sheet https://www.eff.org/https-everywhere/deploying-https https://www.ssllabs.com/ssltest/ https://www.ssllabs.com/projects/best-practices/ https://istlsfastyet.com/ http://chimera.labs.oreilly.com/books/1230000000545/ch04.html https://httpd.apache.org/docs/current/ssl/ssl_howto.html http://nginx.com/blog/nginx-ssl/
  40. 40. Walter Ebert @wltrd walterebert.de slideshare.net/walterebert

Vortrag für die PHP Usergroup Frankfurt

Aufrufe

Aufrufe insgesamt

2.390

Auf Slideshare

0

Aus Einbettungen

0

Anzahl der Einbettungen

4

Befehle

Downloads

7

Geteilt

0

Kommentare

0

Likes

0

×