Java Secure Sockets Extension JSSE. F5 Secure Sockets EDA095 Nätverksprogrammering! Roger Henriksson Datavetenskap Lunds universitet

Relevanta dokument
Föreläsning 7. DD2390 Internetprogrammering 6 hp

SSL/TLS-protokollet och

EIT060 Datasäkerhet - Projekt 2. Jacob Ferm, dt08jf0 Johan Paulsson, dt08jp8 Erik Söderqvist, dt08es8 Magnus Johansson, dt08mj9 26 februari 2011

Tentamen Nätverksprogrammering Lösningsförslag

F5 Exchange Elektronikcentrum i Svängsta Utbildning AB

EIT060 Datasäkerhet - Projekt 2. Jacob Ferm, dt08jf0 Johan Paulsson, dt08jp8 Erik Söderqvist, dt08es8 Magnus Johansson, dt08mj9 26 februari 2011

EIT060 Datasäkerhet - Projekt 2. Jacob Ferm, dt08jf0 Johan Paulsson, dt08jp8 Erik Söderqvist, dt08es8 Magnus Johansson, dt08mj9 26 februari 2011

Krypteringteknologier. Sidorna ( ) i boken

Modul 3 Föreläsningsinnehåll

Surfning. Webbklienter och webbservrar. Specialskrivna webbservrar. Kommunikation med sockets

Tentamen Nätverksprogrammering Lösningsförslag

Practical WLAN Security

Att bygga VPN. Agenda. Kenneth Löfstrand, IP-Solutions AB. Olika VPN scenarios. IPsec LAN - LAN. IPsec host - host SSH

Tung bakgrundsaktivitet t.ex. Aktiva objekt t.ex. Animering, simulering. DD2385 Programutvecklingsteknik Några bilder till föreläsning 9 6/5 2013

256bit Security AB Offentligt dokument

Modul 6 Webbsäkerhet

Säkerhet. Säker kommunikation - Nivå. Secure . Alice wants to send secret message, m, to Bob.

Stockholm Skolwebb. Information kring säkerhet och e-legitimation för Stockholm Skolwebb. skolwebb.stockholm.se

Föreläsning 5 Meddelandesändning med TCP

Systemkrav och tekniska förutsättningar

Transport Layer. Transport Layer. F9 Meddelandesändning med UDP EDA095 Nätverksprogrammering. Java och UDP TCP/UDP

Föreläsning 5 Meddelandesändning med TCP

Säker e-kommunikation

Tentamensskrivning Nätverksprogrammering (EDA095 - FED) , kl 8-13

Installationsguide Junos Pulse för MAC OS X

Filleveranser till VINN och KRITA

F5 Meddelandesändning med TCP

F1 Nätverk och meddelandesändning

Probably the best PKI in the world

F8 Meddelandesändning med UDP

Objektorienterad Programkonstruktion. Föreläsning 10 7 dec 2015

Javas Exceptions. DD2385 Programutvecklingsteknik Fler bilder till föreläsning 7 23/ Kort om Javas Exceptions Trådar i Java

IP-baserade program. Telnet

SSL. Kristoffer Silverhav Robin Silverhav

Att använda kryptering. Nyckelhantering och protokoll som bygger på kryptering

Föreläsningens innehåll. Säker kommunikation - Nivå. IPSec. IPSec - VPN. IPSec - Implementation. IPSec - Består av vad?

Cipher Suites. Rekommendationer om transportkryptering i e-tjänster

Tentamen Nätverksprogrammering Lösningsförslag

Piff och Puffs Chatsystem

F1 Nätverk och meddelandesändning

Föreläsning 1. På klientsidan... Allmänt. På serversidan... Och dessutom... DD1389 Internetprogrammering 6 hp

EXTERN ÅTKOMST TILL SOCIALA SYSTEM FÖR UTFÖRARE INOM ÄLDREOMSORGEN OCH OMSORGEN OM FUNKTIONSHINDRADE

5. Internet, TCP/IP och Applikationer

uran: Requesting X11 forwarding with authentication uran: Server refused our rhosts authentication or host

Tekn.dr. Göran Pulkkis Överlärare i Datateknik. Nätverksprotokoll

Elektronisk tullräkning Sid 1(9) Samverkansspecifikation. Version: 1.0 SAMVERKANSSPECIFIKATION. för. e-tullräkning

Checklista för tekniskt ansvarig

F2 Java I/O - strömmar Meddelandesändning med TCP

Datakommunika,on på Internet

XML-produkter. -Registret över verkliga huvudmän (RVH) Teknisk handledning för webbtjänst mot RVH (Web Services) Datum: Version: 1.

Olika slags datornätverk. Föreläsning 5 Internet ARPANET, Internet började med ARPANET

Kryptering. Krypteringsmetoder

Installationsguide Junos Pulse för iphone/ipad

Din guide till IP RFID. Intertex Nu ännu starkare säkerhet för SIP. Snom - marknadens säkraste IP-telefon. Ur innehållet TALK TELECOM

F9 Meddelandesändning med UDP

DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin

F1 Nätverk och meddelandesändning

Kapitel 10, 11 o 12: Nätdrift, Säkerhet. Publika telenätet. Informationsöverföring. Jens A Andersson. Telenäten är digitala.

Microsoft Internet Information Services 7 / 7.5

Att sätta upp en IPsec-förbindelse med RADIUS-autentisering (med SIP) Lisa Hallingström Paul Donald Bogdan Musat Adnan Khalid

F8 Webbteknologier 1. Dynamiska webbsidor

10 Kommunikation i Java

Förra gången. Dagens föreläsning. Digitala Certifikat. Vilka man litar på! X.509. Nyckeldistribution. Säkerhetsprotokoll

DNSSec. Garanterar ett säkert internet

Tentamen i Datorkommunikation den 10 mars 2014

File Transfer Protocol (FTP) Problem och lösningar

Tentamen Nätverksprogrammering Lösningsförslag

Förra gången. Dagens föreläsning. Digitala Certifikat. Nyckeldistribution. Säkerhetsprotokoll

Övningar - Datorkommunikation

Säkerhetsbrister & intrång

Extern åtkomst till Sociala system

Introduktion till protokoll för nätverkssäkerhet

IT för personligt arbete F2

Kryptografi - När är det säkert? Föreläsningens innehåll. Kryptografi - Kryptoanalys. Kryptering - Huvudsyfte. Kryptografi - Viktiga roller

Innehåll. Dokumentet gäller från och med version

Objektorienterad Programkonstruktion. Föreläsning 11 6 dec 2016

Instruktion. Datum (12) Coverage Dokument id Rev Status? Godkänd. Tillhör objekt -

Innehållsförteckning:

Datasäkerhet. Petter Ericson

Att sätta upp en IPsec-förbindelse med mobil klient (med SIP) Lisa Hallingström Paul Donald Bogdan Musat Adnan Khalid

Att sätta upp en IPsec-förbindelse med mobil klient. Lisa Hallingström Paul Donald

DI-institutionen Sid 1 av 5 Hans-Edy Mårtensson Sten Sundin Micael Karlsson

LABORATIONSRAPPORT Säkerhet & Sårbarhet VPN

RIV Tekniska Anvisningar Kryptografi. Version ARK_

Din manual NOKIA C111

Tentamen Nätverksprogrammering Lösningsförslag

Version 1.0 Januari Xerox Phaser 3635MFP Extensible Interface Platform

FÖRSLAG TILL LÖSNINGAR, TENTAMEN I IKB007 INTERNETPROGRAMMERING MED JAVA, 5p för SY2, , kl

SSL-guide. (Secure Socket Layer)

Rutin vid kryptering av e post i Outlook

Nätverksprogrammering. Tekniker för att skriva program som kommunicerar med varandra över ett nätverk. F1 Nätverk och strömmar.

Att sätta upp en IPsec-förbindelse mellan två Ingate-brandväggar/SIParatorer. Lisa Hallingström Paul Donald

TENTAMEN. Objektorienterade applikationer CHALMERS. 2018/2019, lp 3 DAT055. Uno Holmer

BRUKSANVISNING FÖR NÄTVERKSANVÄNDARE

Foto: Björn Abelin, Plainpicture, Folio bildbyrå Illustrationer: Gandini Forma Tryck: Danagårds Grafiska, 2009

F2 Java I/O - strömmar Meddelandesändning med TCP EDA095 Nätverksprogrammering

Biometria Violweb. Installation kundportalaccess - för IT-administratörer. Mars 2019

5. Internet, TCP/IP tillämpningar och säkerhet

x Hur hamnade vi här och vad kan vi göra åt saken

Transkript:

Java Secure Sockets Extension JSSE F5 Secure Sockets EDA095 Roger Henriksson Datavetenskap Lunds universitet Secure Sockets Layer SSL Transport Layer Security - TLS Protokoll och algoritmer för säker kommunikation via TCP. TLS nyare vidareutveckling av SSL. Tillhandahåller krypterade förbindelser samt autentisering. JSSE tillhandahåller klasser som gör det (relativt) enkelt att upprätta säkra förbindelser mellan två javaprogram eller ett javaprogram och en webbserver eller en webbläsare. 2 Säker kommunikation krav Krypterad överföring vi vill inte att någon ska kunna avlyssna vad vi sänder. Autentisering vi vill vara säkra på att den vi kommunicerar med faktiskt är den vi tror. 3 Kryptering Delad-nyckel-kryptering Båda sidor har i förväg enats om en kryptonyckel som används för att kryptera data som överförs. Enkelt och effektivt Besvärligt att dela nyckeln på ett säkert sätt. Öppen-nyckel-kryptering En publik och en privat nyckel. Mottagarens publika nyckel används för kryptering och mottagaren avkodar det med sin privata nyckel. Inga i förväg delade nycklar. Beräkningsintensiva algoritmer. 4

Hybridlösning för kryptering Öppen-nyckel-kryptering används för överföring av en delad nyckel. Den delade nyckeln används för kryptering av den data som ska överföras. Fördelar Ingen i förväg delad nyckel. Snabb och effektiv kryptering av data. 5 Autentisering Hur vet vi att den vi kommunicerar med verkligen är den vi tror? Undvik mannen-i-mitten-attacker 1.Avsändaren krypterar ett meddelande med sin privata nyckel. 2.Meddelandet sänds till mottagaren. 3.Mottagaren avkodar meddelandet med mottagarens publika nyckel. Om klartext erhålles var det ägaren till den publika nyckeln som sände meddelandet. Hur vet vi att ingen har bytt ut nyckeln på vägen? 6 Certifikat Publika nycklar lagras hos en betrodd tredje part en certifikatsutgivare. Mottagaren jämför den mottagna publika nyckeln med nyckeln hos den betrodda tredje parten. Mannen-i-mitten-attack fortfarande teoretisk möjlig, men mycket svårare. Paket javax.net.ssl abstrakt API javax.net abstrakt API java.security.cert certifikat com.sun.net.ssl faktisk implementation Nya klasser för att skapa och konfigurera en krypterad förbindelse. Därefter används de vanliga operationerna för sockets och strömmar. 7 8

Skapar en krypterad socket (SSLSocket). public static getdefault(); public String[] getsupportedciphersuits(); public String[] getdefaultciphersuits(); public Socket createsocket(string host, int port) throws IOException, UnknownHostException; public Socket createsocket(inetaddress host, int port) throws IOException, UnknownHostException; Krypteringsalternativ Olika implementationer stödjer olika kombinationer av kryptoalgoritmer och autentiseringsmetoder. DEMO CipherSuites.java Alla alternativ som stöds är inte aktiverade från början. Vi kan välja vilka alternativ vi vill tillåta. TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 Protokoll, nyckelutbytesmetod, krypterings-algoritm och checksumma. Anses vara säkrast. 9 10 Utvecklingsexempel Utveckla en mycket enkel webbserver som stödjer krypterade HTTP-uppkopplingar (https). Gör så att man kan nå servern via Firefox och https-protokollet. Skriv en enkel klient som kan ladda ner en webbsida från servern. DEMO - WWW Certifikat Vi måste skapa en fil innehållande certifikat (autentiseringsinformation / kryptonycklar). Informationen används för att upprätta en säker förbindelse då en klient ansluter. I JSSE ingår ett verktyg för att skapa en sådan certifikatsfil - keytool. DEMO - keytool Se kurshemsidan för komplett kommando. 11 12

Klasser för att starta/konfigurera servern KeyStore public static KeyStore getinstance(string type) throws KeyStoreException; public void load(inputstream stream,char[] password) throws IOException, NoSuchAlgorithmException, CertificateException; KeyManagerFactory public static KeyManagerFactory getinstance(string algorithm) throws NoSuchAlgorithmException; public KeyManager[] getkeymanagers(); 13 Klasser, fortsättning SSLContext public static SSLContext getinstance(string protocol) throws NoSuchAlgorithmException; public void init(keymanager[] km, TrustManager[] tm, SecureRandom random) throws KeyManagementException; public SSLServerSocketFactory getserversocketfactory() throws IllegalStateException; SSLServerSocketFactory public SSLSocket createserversocket(int port) throws IOException; SSLServerSocket (extends ServerSocket) 14 SecureWWW DEMO SecureWWW med Firefox Klientklasser public static getdefault(); public SSLSocket createsocket(string host,int port) throws IOException, UnknownHostException; SSLSocket (extends Socket) DEMO SslSocketClient 15 16

Ange tillförlitliga certifikat Certifikatet är självsignerat och accepteras inte av klienten. Mha keytool skapar vi en publik version av serverns certifikat och för över det till klienten. Se kurshemsidan för detaljer. Vi startar klienten med: java -Djavax.net.ssl.trustStore=trusted.jks SslSocketClient DEMO SslSocketClient med certifikat 17