Föreläsning 7. DD2390 Internetprogrammering 6 hp



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

Kryptering HEMLIG SKRIFT SUBSTITUTION STEGANOGRAFI KRYPTOGRAFI

2I1073 Föreläsning 3. Säkerhet. Kryptering

Krypteringteknologier. Sidorna ( ) i boken

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

Föreläsning 10. Grundbegrepp (1/5) Grundbegrepp (2/5) Datasäkerhet. olika former av säkerhet. Hot (threat) Svaghet (vulnerability)

SSL/TLS-protokollet och

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

Kryptering. Krypteringsmetoder

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

Modul 3 Föreläsningsinnehåll

Metoder för sekretess, integritet och autenticering

Lösningar för tenta 2 DAT043,

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

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

Designprinciper för säkerhet och Epilog. Marcus Bendtsen Institutionen för Datavetenskap (IDA) Avdelningen för Databas- och Informationsteknik (ADIT)

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

Föreläsning 10 Datasäkerhet grundbegrepp datasäkerhet i nätet. Säkerhet. Grundbegrepp (1/5) Modern telekommunikation

Avancerad SSL-programmering III

Probably the best PKI in the world

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

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

Skydd för känsliga data

Objektorienterad Programkonstruktion. Föreläsning 16 8 feb 2016

Grundfrågor för kryptosystem

RIV Tekniska Anvisningar Kryptografi. Version ARK_

256bit Security AB Offentligt dokument

Hämta data mha URLer Föreläsning 2b. Innehåll Klassen URL

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

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

Specifikation av CA-certifikat för SITHS

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?

Fakulteten för ekonomi, kommunikation och IT. Corba. Datum: Mathias Andersson

Säker e-kommunikation

SSL. Kristoffer Silverhav Robin Silverhav

Säkerhet. Olika former av säkerhet (företagsperspektiv [1])

Introduktion till protokoll för nätverkssäkerhet

Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2

Föreläsning 3: Abstrakta datastrukturer, kö, stack, lista

Kryptoteknik. Marcus Bendtsen Institutionen för Datavetenskap (IDA) Avdelningen för Databas- och Informationsteknik (ADIT)

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

19/5-05 Datakommunikation - Jonny Pettersson, UmU 2. 19/5-05 Datakommunikation - Jonny Pettersson, UmU 4

Grundläggande krypto och kryptering

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

10 Kommunikation i Java

Föreläsning 14. Filhantering

Datasäkerhet och integritet

Språkkonventioner och redigering av tal.

LABORATIONSRAPPORT Säkerhet & Sårbarhet VPN

Föreläsnings 9 - Exceptions, I/O

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

Tentamen Nätverksprogrammering Lösningsförslag

SSEK Säkra webbtjänster för affärskritisk kommunikation

Kryptering. Av: Johan Westerlund Kurs: Utveckling av webbapplicationer Termin: VT2015 Lärare: Per Sahlin

Dagens föreläsning. Datasäkerhet. Tidig historik. Kryptografi

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

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

Elektroniska signaturer - säker identifiering?

2I1073 Lektion 2. Lektion 2a. Lektion 2a. Servlets, säkerhet, och filhantering. import java.io.*; import javax.servlet.*; import javax.servlet.http.

4 13 / %.; 8 </" '': " / //&' " " ' * TelefonKostnad +,-%&. #!" $% " &' . > / ' 5 /' * 13/ &' static Math 1+" &'/ % 12 "" static "' * 1 /") %& &

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

Datakommunikation och Internet

Input. Programmering. Andra källor

DNSSEC och säkerheten på Internet

Tentamen Nätverksprogrammering Lösningsförslag

JAVAUTVECKLING LEKTION 7

Protokollbeskrivning av OKI

Gesäll provet Internetprogrammering I. Författare: Henrik Fridström. Personnummer: Skola: DSV

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

WEB SERVICES-FÖRBINDELSE

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

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.

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

Driftsättning av DKIM med DNSSEC. Rickard Bondesson Examensarbete

Certifikattjänsten - testbädd. Anläggningsprojekt för ett nationellt inkomstregister

Identity Management i ett nätverkssäkerhetsperspektiv. Martin Fredriksson

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

Certifikat. svensk vård och omsorg HCC

Identifiering och autentisering. Marcus Bendtsen Institutionen för Datavetenskap (IDA) Avdelningen för Databas- och Informationsteknik (ADIT)

Parsing med Recursive Descent, Avbildningsklasser. Syntaxdiagram. Syntaxdiagram och kodning expression. Betrakta följande uttryck

PGP & S/MIME En översikt

Instuderingsuppgifter läsvecka 6 - LÖSNINGAR

PROG2 Tenta Gäller SP:PROG2, DSK2:PROG2, FK:PROG2, FK:OOP, DSV1:P2 och ITK:P2

Reguljära uttryck. Reguljära uttryck. Nu kommer en siffra78 och en till SIFFRA(78) men utan 7kstuga SIFFRA(89)

Laborationer, moment 4 5

TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P

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

Fördjupad Java. Undantagshantering. Fel

Moderna krypteringssystem

MA2047 Algebra och diskret matematik

Tentamen ITK:P2. Inga hjälpmedel tillåtna förutom penna och papper. Skriv tydligt och texta gärna. 14 st frågor, 70 poäng.

DUGGA: Objektorienterade applikationer. Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad.

Riktlinjer och anvisningar avseende säkerhet. vid informationsutbyte via EDI. Version

Switch- och WAN- teknik. F7: ACL och Teleworker Services

Skicka och hämta filer med automatik

Laborationer, moment 4 5

Försättsblad till skriftlig tentamen vid Linköpings Universitet

Krypteringstjänster. LADOK + SUNET Inkubator dagarna GU, Göteborg, 6-7 oktober Joakim Nyberg ITS Umeå universitet

Transkript:

Föreläsning 7 DD2390 Internetprogrammering 6 hp

Innehåll Krypteringsöversikt (PKI) Java Secure Socket Extension (JSSE)

Säkerhetsproblem 1. Vem är det man kommunicerar med Autentisering 2. Data kan avläsas Interception 3. Data kan ändras Dataintegritet

Public Key Infrastructure (PKI) Erbjuder ett sätt att lösa dessa problem 1. Certifikat 2. Kryptering 3. Hash

Assymmetrisk kryptering Två nycklar, privat / publik Löser autentisering Beräkningsintensiv olämplig för kryptering av större datamängder Används för kryptering av den symmetriska nyckeln Algoritmer Rivest Shamir Adleman (RSA) Diffie-Hellman (DH)

Symmetrisk kryptering En gemensam nyckel Snabbt => för större datamängder Vanliga algoritmer Data Encryption Standard (DES) Triple-strength DES (3DES) Advanced Encryption Standard (AES) Rivest Cipher 2 (RC2) Rivest Cipher 4 (RC4).

Hash Funktioner HMAC (Hash Message Authentication Code) Hash kod adderat till ändelsen av symmetrisk krypterat data Alogritmer SHA (Secure Hash Algoritm) MD5 (Message Digest 5) Digital signatur Hash krypterat med avsändarens privata nyckel

Certifikat Certificate Authority (CA). Symantec är idag störst med c:a 40% av marknaden. Över 100 rotcertifikat finns installerade i de vanligaste webläsarna X.509 är en standard för att specificera ett certifikats format (1988) Innehåller bl a Issuer Period of validity Subject Subject's publika nyckel Signatur krypterad med CA:s privata nyckel

Digital signatur

Transport Layer Security (TLS) Är ett protokoll Ligger mellan Transportlagret / Applikationslagret Specificerar ej krypteringsalgoritmer utan en metod att generellt inbädda PKI SSL 3.0 => TLS 1.2 HTTPS använder port 443 PKI i java => JSSE

Handshake

Klasser

Server.java (1/2) import javax.net.ssl.*; import java.io.*; public class Server{ public static void main(string[] args){ SSLServerSocketFactory ssf = (SSLServerSocketFactory)SSLServerSocketFactory.getDefault(); System.out.println("Stöder:"); for(int i = 0; i < ssf.getsupportedciphersuites().length; i++) System.out.println(ssf.getSupportedCipherSuites()[i]); SSLServerSocket ss = null; try{ ss = (SSLServerSocket)ssf.createServerSocket(1234); String[] cipher = {"SSL_DH_anon_WITH_RC4_128_MD5"; ss.setenabledciphersuites(cipher);

Server.java (2/2) System.out.println("Vald:"); for(int i = 0; i < ss.getenabledciphersuites().length; i++) System.out.println(ss.getEnabledCipherSuites()[i]); SSLSocket s = (SSLSocket)ss.accept(); BufferedReader infil = new BufferedReader(new InputStreamReader(s.getInputStream())); String rad = null; while( (rad=infil.readline())!= null) System.out.println(rad); infil.close(); catch(ioexception e){

Client.java (1/2) import java.io.*; import java.net.*; import javax.net.ssl.*; public class Client{ public static void main(string[] args){ SSLSocketFactory sf = (SSLSocketFactory)SSLSocketFactory.getDefault(); for(int i = 0; i < sf.getsupportedciphersuites().length; i++) System.out.println(sf.getSupportedCipherSuites()[i]); HttpsURLConnection.setDefaultSSLSocketFactory(sf); SSLSocket s = null; try{ s = (SSLSocket)sf.createSocket("my.nada.kth.se",1234); catch(malformedurlexception e){ catch(ioexception e){

Client.java (2/2) for(int i = 0; i < s.getsupportedciphersuites().length; i++) System.out.println(s.getSupportedCipherSuites()[i]); String[] cipher = {"SSL_DH_anon_WITH_RC4_128_MD5"; s.setenabledciphersuites(cipher); for(int i = 0; i < s.getenabledciphersuites().length; i++) System.out.println(s.getEnabledCipherSuites()[i]); PrintWriter utfil = null; try{ utfil = new PrintWriter(s.getOutputStream()); catch(ioexception e){ utfil.println("hej"); utfil.close();

keytool #!/bin/sh rm $home/.keystore keytool -genkey -keyalg "RSA" -storepass rootroot -validity 365 -alias SSLCertificate keytool -list -storepass rootroot keytool -export -alias SSLCertificate -storepass rootroot -file server.cer

Certifikat 1/2 try{ InputStream infil = new FileInputStream("server.cer"); CertificateFactory cf = CertificateFactory.getInstance("X.509"); X509Certificate cert = (X509Certificate)cf.generateCertificate(infil); infil.close(); catch(certificateexception e){ catch(ioexception e){ KeyStore ks = null; try{ ks = KeyStore.getInstance("JKS", "SUN"); catch(keystoreexception e){ catch(nosuchproviderexception e){

Certifikat 2 / 2 InputStream is = null; try{ is = new FileInputStream(new File("./keystore")); catch(filenotfoundexception e){ try{ ks.load(is,"rootroot".tochararray()); catch(ioexception e){ catch(nosuchalgorithmexception e){ catch(certificateexception e){