Avancerad SSL-programmering III



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

Protokollbeskrivning av OKI

Avancerad SSL-programmering II

Introduktion till protokoll för nätverkssäkerhet

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

Föreläsning 7. DD2390 Internetprogrammering 6 hp

Krypteringteknologier. Sidorna ( ) i boken

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

Kryptering HEMLIG SKRIFT SUBSTITUTION STEGANOGRAFI KRYPTOGRAFI

Modul 3 Föreläsningsinnehåll

SSL/TLS-protokollet och

Säker e-kommunikation

Beställning av certifikat v 2

256bit Security AB Offentligt dokument

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

Beställning av certifikat v 3.0

Probably the best PKI in the world

1 Exempel på att kontrollera XML-signatur manuellt

Metoder för sekretess, integritet och autenticering

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

Testning av Sambi. Testplan. Version PA5. Fil namn: SAMBI_TP.docx Senast sparad: Copyright (c) 2014 IIS

Kapitel 10 , 11 o 12: Nätdrift, Säkerhet

E-legitimationsdagen. Metadata Underskriftstjänst Praktisk implementering och demo. Stefan Santesson

Jakob Schlyter

UTFÄRDARDEKLARATION (CPS) SJÖFARTSVERKET

Dnr 2011/ FILFORMAT VERSION 1.2

Användningen av elektronisk identifiering.

Driftsättning av DKIM med DNSSEC. Rickard Bondesson Examensarbete

Chapter 3: Using Classes and Objects

DROGHANDELN PÅ DARKNET

MVK SSO 2.0 Mina vårdkontakter

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

WEB SERVICES-FÖRBINDELSE

PHP-klassbibliotek för automatisering av penningtransaktioner. Jonne Sundell

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

TJÄNSTEBESKRIVNING FÖR PROGRAMVARUGHUS SAMLINK CERTIFIKATTJÄNST

Skicka och hämta filer med automatik

Krypteringsprogrammet Kryptogamen

Kryptering. Krypteringsmetoder

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

i Android och MeeGo? Översikt Ben Smeets Android och MeeGo: vad är r det?

PGP & S/MIME En översikt

Acrobat version Du behöver ha Acrobat Pro installerat på din dator för att signera planer i Atlas. Däri finns funktion för certifiering/signering.

Elektroniska signaturer - säker identifiering?

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

Net id OEM Användarhandbok för Windows

Säkerhetsbrister & intrång

Version Datum Kommentar Etablering av dokumentet Efter första genomgång av Cygate och SITHS PA

PGP håller posten hemlig

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

Rutinbeskrivning för beställning av certifikat

Teknisk guide för brevlådeoperatörer

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

Ändringar i utfärdande av HCC Funktion

Internetdagarna NIC-SE Network Information Centre Sweden AB

Digitalt källskydd en introduktion. Sus Andersson Lär dig kryptering

Försöksnomineringssystem 2013

Sätta upp e-post server Ubuntu 14.04, del 1 installation av programvara, konfiguration av mysql och Postfix

Användarbeskrivning för Metadatatjänsten

Riksgäldskontorets författningssamling

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

SITHS Anslutningsavtal RA Policy

Säkerhet. Vad är det vi pratar om??

Hämta hem 2005 års installationspaket från Skatteverkets hemsida:

Testning av Sambi. Testplan. Version PA12. Fil namn: SAMBI_TP.docx Senast sparad: Copyright (c) 2014 IIS

Innehållsförteckning:

Avancerad SSL-programmering I

Testa ditt SITHS-kort

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

SAMBI Test specification. Jan Säll

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

Datasäkerhet och integritet

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

Kundverifiering av SPs digitala signaturer

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

Certifikatspecifikation för Sveriges kommuner och landsting med samarbetspartners HCC

DNSSEC och säkerheten på Internet

Skicka och hämta filer med automatik till och från Försäkringskassan

Ladda på nya certifikat på reservkort så medarbetaren kan ha kvar kortet längre tid Författare:

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

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

Identitetsfederering etapp II Höga och låga observationer

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

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

Telia Centrex Avancerad Svarsgrupp - administratörswebb. Handbok

DNSSEC implementation & test

Undersökning och design av en säkerhetslösning för en molnlagringstjänst

Agenda. Kort om Datacenter. Våra erfarenheter av 27001:2013. Summering

Ansökningsanvisning för SUNET TCS-certifikat via SLU CA.

Lathund för Elektronisk signatur digitalt ID

Skydd för känsliga data

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

Bakgrund Avgränsningar Begreppsförklaring Kortfattade anvisningar... 2

Undersökning och design av en säkerhetslösning för en molnlagringstjänst

E-post på ett säkrare sätt

BILAGA 1 Tekniska krav Version 1.0

E-legitimationsutredningen SOU 2010:104

Användarhandledning. Procapita Vård och Omsorg Konvertering av worddokument till PDF/A

Telias Utfärdardeklaration, CPS, för Telia e-legitimation Version 1.3. Datum:

Transkript:

Tekn.dr. Göran Pulkkis Överlärare i Datateknik Avancerad SSL-programmering III 9.2.2012 1 Innehåll Dataformatet PKCS#7 och S/MIMEstandarden Signering av S/MIME-meddelanden och verifiering av signaturer Kryptering och avkryptering av S/MIME-meddelanden PKCS#12-standarden 9.2.2012 2

Dataformatet PKCS#7 och S/MIMEstandarden PKCS#7 är ett dataformat för S/MIME (Secure Multi-purpose Internet Mail Extensions). S/MIME är en specifik kodning av data i PKCS#7- format. E-postprogram förutsätter att e- postmeddelanden har denna kodning. OpenSSL stöder S/MIMEv2 och PKCS#7v1.5 9.2.2012 3 Skapa signerad PKCS#7-post PKCS7 *PKCS7_sign(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, BIO *data, int flags); signcert pekare på signeringscertifikat pkey pekare på privat signeringsnyckel certs pekare på stack av certifikat, som tas med i den PKCS7-post som skapas av PKCS7_sign data härifrån hämtas data för signering, t.ex. från stdin eller från en fil flags flaggor för inställning av egenskaper hos den PKCS7-post som skapas av PKCS7_sign 9.2.2012 4

Skapa S/MIME-meddelande från PKCS7-post int SMIME_write_PKCS7(BIO *bio, PKC7 *p7, BIO *data, int flags); bio hit skickas S/MIME-meddelandet, t.ex. till en fil eller till stdout p7 pekare på post med PKCS7-data data härifrån hämta usprunglig, osignerad/okrypterad data, t.ex. från en fil eller från stdin flags flaggor för hantering av egenskaper hos p7 och bio 9.2.2012 5 Skapa PKCS7-post från SMIME-meddelande PKCS7 *SMIME_read_PKCS7(BIO *bio, BIO **bcont); bio härifrån hämtas ett S/MIME-meddelande, t.ex. Från stdin eller från en fil bcont pekare på adressen till den data, som finns i den PKCS7-post, som skapas av funktionen och utpekas av funktionens returvärde 9.2.2012 6

Verifiera signatur i PKCS7-post int PKCS7_verify(PKSC7 *p7, STACK OF(X509) *certs, X509_STORE *store, BIO *indata, BIO *out, int flags); p7 pekare på PKCS7-post som innehåller signerad data certs pekare på stack med de(t) certifikat, som används att verifiera signeringen store pekare på den X509_STORE-post, via vilken görs åtkomliga de CA-certifikat och den spärrlista, vilka används för att validera certifikaten i certs indata adressen till (=pekare på) den data, som finns i p7, dvs den adress som blir utpekad vid anrop av SMIME_read_PKCS7 out hit skickas signaturverifierat meddelande, t.ex. till en fil eller till stdout flags flaggor för hantering av egenskaper hos p7 9.2.2012 7 Signering av S/MIME-meddelanden och verifiering av signaturer Se exempelprogram EX10-8 i OpenSSL-boken 9.2.2012 8

Skapa krypterad PKCS#7-post PKCS7 *PKCS7_encrypt(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, int flags); certs stack med certifikat, med vilkas publika nycklar data från in krypteras in härifrån hämtas data för kryptering, t.ex. från stdin eller från en fil cipher specifierar symmetrisk krypteringsalgoritm flags flaggor för inställning av egenskaper hos den PKCS7-post som skapas av PKCS7_encrypt 9.2.2012 9 Skapa S/MIME-meddelande från PKCS7-post int SMIME_write_PKCS7(BIO *bio, PKC7 *p7, BIO *data, int flags); bio hit skickas S/MIME-meddelandet, t.ex. till en fil eller till stdout p7 pekare på post med PKCS7-data data härifrån hämta usprunglig, osignerad/okrypterad data, t.ex. från en fil eller från stdin flags flaggor för hantering av egenskaper hos p7 och bio 9.2.2012 10

Skapa PKCS7-post från SMIME-meddelande PKCS7 *SMIME_read_PKCS7(BIO *bio, BIO **bcont); bio härifrån hämtas ett S/MIME-meddelande, t.ex. Från stdin eller från en fil bcont pekare på adressen till den data, som finns i den PKCS7-post, som skapas av funktionen och utpekas av funktionens returvärde 9.2.2012 11 Avkryptera data i PKCS7-post int PKCS7_decrypt(PKCS7 *p7, EVP_PKEY *pkey, X509 *cert, BIO *data, int flags); p7 pekare på PKCS7-post som innehåller krypterad data pkey pekare på post med privat avkrypteringsnyckel cert pekare på certifikat för public nyckel, som är par med pkey data hit skickas avkrypterat meddelande, t.ex. till en fil eller till stdout flags flaggor för hantering av egenskaper hos p7 9.2.2012 12

Kryptering och avkryptering av S/MIMEmeddelanden Se exempelprogram EX10-9 i OpenSSL-boken 9.2.2012 13 Användning av exempelprogrammen EX10-8 och EX10-9 Signering och kryptering: cat msg.txt EX10-8 sign sendkey.pem sendcert pem \ > EX10-9 encrypt recvcert.pem > msg.smime Skicka som e-post Inför i början av msg.smime följande tre textrader From: sender.name@domain1.fi To: receiver.name@domain2.fi Subject: Signed and encrypted message Från UNIX-dator med sendmail installerat cat msg.smime sendmail receiver.name@domain2.fi 9.2.2012 14

Användning av exempelprogrammen EX10-8 och EX10-9 Kommandoradhantering av mottaget signerat och krypterat meddelande cat msg.smime EX10-9 decrypt recvkey.pem recvcert.pem \ EX10-8 verify sendcert.pem klartextmeddelandet visas på skärmen 9.2.2012 15 PKCS7-flaggor Kan kombineras med bitvis or i heltalsvariabler PKCS7_NOINTERN signaturverifiering använder inte certifikat inbäddade i PKCS7-poster PKCS7_NOVERIFY signeringscertifikatet verifieras inte vid signaturverifiering PKCS7_NOCERTS inga extra certifikat införs i en skapad PKCS7-post PKCS7_DETACHED signeringscertifikatet tar ej med i PKCS7-post skapad vid signering PKCS7_NOSIGS verifiera inte signaturen i en PKCS7-post Notera datasäkerhetsriskerna förknippade med dessa flaggor! 9.2.2012 16

Skapa PKCS12-post PKCS12 *PKCS12_create(char *pass, char *name, EVP_PKEY *pkey, X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, int iter, int mac_iter, int keytype); pass lösenfras för PKCS12-post name namn på certifierat nyckelpar i PKCS12-post ckey, cert pekare på poster med privat nyckel och certifikat för motsvarande publika nyckel ca pekare på stack av CA-certifikat övriga parametrar kan ha värdet 0 returvärdet utpekar en skapad PKCS12-post 9.2.2012 17 Spara PKCS12-post i DER-format int i2d_pkcs12_fp(file *fp, PKCS12 *p12); fp pekare på fil, som öppnats för inskrivning av data p12 pekare på PKCS12-post 9.2.2012 18

Skapa PKCS12-post från DER-fil PKCS12 *d2i_pkcs12_fp(file *fp, PKCS12 **p12); fp pekare på DER-fil, som öppnats för avläsning av data p12 kan ha värdet NULL, eftersom funktionen returnerar en pekare på skapad PKCS12-post. 9.2.2012 19 Skapa poster med privat nyckel, certifikat och CAcertifikatstack från PKCS12-post int PKCS12_parse(PKCS12 *p12, const char pass, EVP_PKEY **pkey, X509 **cert, STACK_OF(X509) **ca); Lösenfras behövs Adresser till skapade poster utpekas 9.2.2012 20