SSL und Perl

Überblick

was ist überhaupt SSL?

was sind Zertifikate?

Überprüfung von Zertifikaten

Hintergrund dieses Vortrages

Warum überhaupt überprüfen?

was ist Man-In-The-Middle?

ist das wirklich eine Gefahr?

Überprüfung der Identität

Zertifikate checken hilft nicht immer

SSL und Perl

Crypt::SSLeay/Net::SSL

IO::Socket::SSL

IO::Socket::SSL Client

     # ohne Verifikation
     $cl = IO::Socket::SSL->new( 'signin.ebay.de:443' );

     # mit Verifikation
     $cl = IO::Socket::SSL->new(
       PeerAddr => 'signin.ebay.de:443',
       SSL_verify_mode => 1, 
       SSL_ca_path => '/etc/ssl/certs',
       SSL_verifycn_scheme => 'www',
     );
     print $cl "GET / HTTP/1.1\r\n...."

IO::Socket::SSL Server

     $srv = IO::Socket::SSL->new(
       LocalAddr => 'signin.ebay.de:443',
       Listen => 10,
       SSL_cert_file => ...,
       SSL_key_file => ...,
     );
     $cl = $srv->accept;
     <$cl>

weiterhin

LWP (https)

Net::SSLGlue::LWP - Beispiel

    use Net::SSLGlue::LWP SSL_ca_path => '/etc/ssl/certs';
    use LWP::Simple;
    get( 'https://signin.ebay.de' );

LWP und https Proxy

SSL und SMTP

Net::SSLGlue::SMTP Beispiel

    use Net::SSLGlue::SMTP;
    $smtp_ssl = Net::SMTP->new( 
      'mail.gmx.net', SSL => 1 ); # SSL Port 465
    $smtp = Net::SMTP->new( 
       'mail.gmx.net' ); # Plain Port 25
    $smtp->startssl; # switch to SSL

Net::LDAP

weitere Module

noch offene Fragen

Perl im Vergleich

Ruby

Python

Java

weitere Features von IO::Socket::SSL

Danke!