digitální podpis
Transkript
digitální podpis
digitální podpis 11.5.16 vjj 1 příklad • C: \Program Files \Microsoft Office \Office15 \WinWord.exe 11.5.16 vjj 2 digitální podpis • C: \Program Files \Microsoft Office \Office15 \WinWord.exe 11.5.16 vjj 3 certifikát • C: \Program Files \Microsoft Office \Office15 \WinWord.exe 11.5.16 vjj 4 test • E:\Documents\SECURITY\ testSigned.exe 11.5.16 vjj 5 asymetrické šifrovací algoritmy • autor privátní šifrovací klíč • veřejnost certifikát • 11.5.16 potvrzení, že v certifikátu uvedený veřejný šifrovací klíč a autorova identita patří k sobě vjj 6 digitální podpis • • • • aaa = obsah • • bbb = obsah( zzz ) 11.5.16 xxx = hash( aaa ) yyy = zakódování xxx privátním klíčem zzz = aaa + yyy + certifikát autora hash( bbb ) =? dekódování yyy veřejným klíčem autora vjj 7 proč digitální podpis • záruka bezchybného a/nebo neškodného kódu - NE • autorská práva - NE • záruka integrity obsahu - ANO, ale... • záruka identity zdroje - ANO, ale... • • pokud se budete ptát lháře jestli lže, ... ověření identity zdroje • pokud je certifikát vydán někým komu věříte • • • 11.5.16 - ANO autor (důvěryhodný) certifikační autorita (důvěryhodná) pokud jste si ověřili, že ten konkrétní certifikát skutečně vydal on vjj 8 digitálně podepsaný kód • důležité jsou body s odpovědí ANO • jistota - že kód nebyl, od doby kdy ho (ověřený, tj. dohledatelný) autor (podpisu) podepsal, nikým a ničím pozměněn - pro právníky • jistota - pouze schválených aplikací - secure enterprise environment • důvěra - důvěřuji autorovi, že mi nepodstrčí zákeřný kód - pro (naivní) konzumenty 11.5.16 vjj 9 obsah certifikátu • • • • • • účel – tj. k čemu lze používat příslušné klíče • to celé je digitálně podepsáno privátním klíčem vydavatele certifikátu 11.5.16 identita majitele certifikátu identita vydavatele certifikátu platnost certifikátu (od kdy do kdy) "public key" majitele kde lze ověřit uvedené údaje vjj 10 důvěra • důvěryhodnost certifikátu ? • důvěryhodnost vydavatele certifikátu ? • způsob ověřování 11.5.16 vjj 11 Certifikační Autorita • privátní • podniková • státní • 11.5.16 • • • • elektronické ID karty elektronické volby komunikace s úřady u nás CHYBÍ (?!?!?! Min. vnitra / NBÚ / BIS / ÚOOÚ ) komerční • akreditovaná státem • stát svěřuje důvěryhodnost své komunikace s občany a podniky do rukou soukromému provozovateli CA vjj 12 Certifikační Autorita • komerční • Thawte Consulting • • • VeriSign • • • • founded in 1995 in 1999 VeriSign acquired Thawte in a stock purchase from Shuttleworth for US$575 million in 2000, Verisign acquired Network Solutions, which operated the .com, .net and .org gTLDs (generic top-level domain) Symantec • 11.5.16 certificate authority (CA) for X.509 certificates Thawte was founded in 1995 by Mark Shuttleworth in South Africa and was the second largest public CA on the Internet In 2010, Verisign sold its authentication business unit to Symantec for $1.28 billion vjj 13 Certifikační Autorita • akreditovaná • zákon o elektronickém (digitálním) podpisu (č. 227/2000 Sb, ... ) • 11.5.16 (pod dohledem ÚOOU) komerční zájmy převládají nad zdravým rozumem • akreditovaná CA • kvalifikovaný certifikát • zaručený podpis - I.CA, PostSignum, eIdentity vjj 14 Timestamp Server • http://timestamp.verisign.com/scripts/timestamp.dll • ? offline ? 11.5.16 vjj 15 získání certifikátu • • uživatel • vygeneruje dvojici klíčů + certifikát - HOTOVO • • • vygeneruje jen dvojici klíčů privátní klíč do souboru .PVK nebo do CSP kontejneru připraví žádost o certifikát obsahující veřejný klíč Certifikační autorita (program, instituce) • • • 11.5.16 ověří identitu uživatele vygeneruje a podepíše .CER CA (software) je součást Windows serveru (od W2K) vjj 16 generování klíčů a certifikátu • Certificate Creation Tool: makecert -sv 11.5.16 myPrivKey.pvk myCert.cer vjj 17 typ souboru • • *.spc – Software Publisher's Certificate *.pvk – odpovídající privátní klíč • • *.cer – DER encoded binary X.509 *.p7b – PKCS #7 Cryptographic Message Syntax Standard slouží k ukládání privátního klíče *.pfx – PKCS #12 Personal Information Exchange slouží k ukládání privátního klíče – chráněn heslem *.snk – Strong Name Key Personal Information Exchange slouží k ukládání privátního klíče • • 11.5.16 vjj 18 privátní klíč • v souboru • • *.pvk - bez hesla *.p7b - s heslem • v CSP kontejneru • • 11.5.16 registry smart card, USB token vjj 19 CSP • CSP – Crypto Services Provider – modul pro přístup ke kontejneru s šifrovacími klíči • CSP moduly pro přístup ke kontejnerům v registry jsou součástí Windows • CSP moduly pro přístup ke kontejnerům na čipových kartách a USB tokenech by měly být součástí driverů, protože bez nich nelze tato zařízení použít. Ale většinou jsou dodávány pouze jako součást placených balíků HW + "middleware". Součásti "middleware" bývají i nejjednodušší uživatelské utility. Často bývá "middleware" spolu s administrátorskými utilitami nedílnou součástí rozsáhlých balíků PKI softwaru s astronomickými cenami. 11.5.16 vjj 20 příklad PowerShell cd cert: dir cd .\\CurrentUser ls cd .\My dir | fl 11.5.16 vjj 21 příklad • MMC Certificates Current User + Local Computer • Gemalto MiniDriver Manager 11.5.16 vjj 22 signing 11.5.16 vjj 23 Signing Set Signer = CreateObject ("Scripting.Signer") Signer.SignFile File, myCert.cer, "My" 11.5.16 vjj 24 Signing • • 11.5.16 co • • • • • PE soubor (EXE, DLL, . . .), ale i skript, dokument e-mail jakýkoliv soubor jak • • • • Visual Studio utilita vlastní program skript vjj 25 Signed Exe 11.5.16 vjj 26 11.5.16 vjj 27 1st method - file • • • 11.5.16 EFS requirements • • certifikát uživatele Recovery certifikát doménového administrátora check for certificates in the container • • PowerShell namespace cert: MMC snap-in Certificates file encryption • • Explorer - local menu prompt - cipher /C vjj 28 2nd method - mail • podepsaný mail 11.5.16 • Outlook | File | Options | Trust Center | Trust Center Settings… • • Trust Center | E-mail Security | Settings… • Outlook | Options | Permissions | Sign Change Security Settings | Choose… vjj 29 3rd method - document • podepsaný Word dokument • 11.5.16 File | Protect Document | Add a Digital Signature vjj 30 příprava certifikátu • instalace klíče do kontejneru CSP • rovnou během generování certifikátu • soubor s klíčem a certifikátem • -> token • • -> registry • • • 11.5.16 utilita, midleware mmc.exe snap-in Certificates, My user account Cerificates – Current User | Personal | Certificates Action | All Tasks | Import… vjj 31 4th method - Visual Studio • • .NET aplikace menu Project – Application Properties, záložka Signing • podepsat manifest pro distribuci pomocí ClickOnce • vytvoření testovacího certifikátu (PFX) • načtení existujícího souboru PFX (bez omezení) • použití certifikátu a klíčů z uživatelova CSP uložiště "My" • vytvořit Strong Name pro celou assembly • • • 11.5.16 existující soubor SNK existující soubor PFX (Bare Format – tj. bez jiných certifikátů a bez Extended Properties) New – wizard • • default je SNK– soubor obsahující privátní klíč nebude chráněn heslem explicitní zadání přípony PFX – wizard se zeptá na heslo vjj 32 5th method - SignTool.exe • > SignTool.exe signwizard • Visual Studio SDK \Program Files (x86)\Microsoft Visual Studio 8\SDK\v2.0\Bin už ne, ale VS obsahuje Windows SDK: • Windows SDK – jen "command line" verze C:\Program Files\Microsoft SDKs\Windows\v7.1A\Bin C:\Program Files (x86)\Windows Kits\8.0\bin\x64 i \x86 C:\Program Files (x86)\Windows Kits\8.1\bin\x64 i \x86 a \arm • WDK – už ne C:\WinDDK\7001\bin\SelfSign 11.5.16 vjj 48 11.5.16 vjj 49 11.5.16 vjj 50 11.5.16 vjj 51 6th method - SignTool.exe signtool sign /f myCert.pfx /p password myPgm.exe signtool Timestamp /t URL myPgm.exe signtool Verify /a myPgm.exe 11.5.16 vjj 53 7th method - VB script • soubor s certifikátem k privátnímu klíči nainstalovaném na lokálním počítači • "My" - defaultní uložiště klíčů Set Signer = CreateObject ("Scripting.Signer") Signer.SignFile File, myCert.cer, "My" 11.5.16 vjj 54 VB script • Win32 API LoadLibrary("Mssign32.dll"); ... GetProcAddress("SignerSignEx"); ... GetProcAddress("SignerTimeStampEx"); ... GetProcAddress("WinVerifyTrust"); 11.5.16 vjj 55 VB script • CAPICOM.dll • System.Security.Cryptography.Pkcs • SignedData object, SignedCode object SignedCode.Signer.Load ("pfx file", pswd) SignedCode.FileName = ... SignedCode.Sign(Signer) SignedCode.Timestamp(URL) SignedCode.Verify(true) 11.5.16 vjj 56 8th method - PowerShell • "My" - defaultní uložiště klíčů $file = "file fullname" $cert = @(dir cert:\CurrentUser\My -codesigning)[0] Set-AuthenticodeSignature $file $cert 11.5.16 vjj 57 PowerShell New-SelfSignedCertificate Get-AuthenticodeSignature Set-ExecutionPolicy Get-ExecutionPolicy 11.5.16 vjj 58 Execution Policy • Restricted – nespustí žádný skript (default) • AllSigned – všechny skripty musí být podepsány • kontroluje digitální podpisy • zeptá se, zda je autor důvěryhodný (jednorázově x trvale) • RemoteSigned – jen remote skripty musí být podepsány • kontroluje digitální podpisy • zeptá se, zda je autor důvěryhodný (jednorázově x trvale) • • Unrestricted – nekontroluje podpisy Bypass 11.5.16 vjj 59 verification 11.5.16 vjj 60 ověření podpisu • uživatel • Windows Explorer • File Properties | Digital Signatures • autor (web, tlf, osobně, ... ) • aplikace • Windows Explorer • platný certifikát 11.5.16 x důvěryhodný majitel vjj 61 limited set of CAs for Windows Driver Verification Policy signtool Verify /a myPgm.exe >signtool.exe Verify /a testSigned.exe SignTool Error: A certificate chain processed, but terminated in a root certificate which is not trusted by the trust provider. SignTool Error: File not valid: testSigned.exe Number of errors: 1 11.5.16 vjj 62 Default Authentication Verification Policy signtool Verify /pa myPgm.exe > signtool.exe Verify testSigned.exe /pa Successfully verified: testSigned.exe 11.5.16 vjj 63 X509 verification #using System.Security.Cryptography.X509Certificates; X509Certificate cert = CreateFromSignedFile( "filename" ); DWORD Version; DWORD SerialNumber[4]; ALG_ID SignatureAlgorithm; FILETIME ValidFrom; FILETIME ValidUntil; PSTR pszIssuer; PSTR pszSubject; PctPublicKey *pPublicKey 11.5.16 vjj 65 X509 certificate #using System.Security.Cryptography.X509Certificates; X509Certificate cert = CreateFromCertFile( "filename" ); DWORD Version; DWORD SerialNumber[4]; ALG_ID SignatureAlgorithm; FILETIME ValidFrom; FILETIME ValidUntil; PSTR pszIssuer; PSTR pszSubject; PctPublicKey *pPublicKey 11.5.16 vjj 66 edit + sign / verify + run notepad $fileName Start-Sleep –Seconds 1 $processToWatch = get-process notepad $processToWatch.WaitForExit() $cert = dir cert:\CurrentUser\My -codesign Set-AuthenticodeSignature $fileName -cert $cert $cert = Get-AuthenticodeSignature $fileName [reflection.assembly]::LoadWithPartialName ("System.Management.Automation") if ($cert.Status -eq "Valid") { &$fileName } 11.5.2016 vjj 67 je kód ze zcela spolehlivého zdroje ? je kód digitálně podepsaný ? je v certifikátu jako autor/distributor uveden někdo, komu důvěřuji ? vydala certifikát (obecně/mně) důvěryhodná certifikační autorita nebo ho vygeneroval někdo, komu důvěřuju ? kód není důvěryhodný ověřím si přímo u vydavatele certifikátu (CA, autor,...), jestli je tento certifikát platný kód je důvěryhodný 11.5.16 vjj 68 paranoidní uživatel ? • • • 11.5.16 bázlivý, vystrašený přehnané a nedoložené obavy o vlastní bezpečnost důsledná podniková Bezpečnostní politika vjj 69 PKCS • #1 • #3 • #5 • #6 • #7 • #8 • #10 • #11 • #12 • #13 • #14 • #15 11.5.16 public-key cryptography standards RSA Diffie-Hellman Password-based Encryption Extended-Certificate Syntax Cryptographic Message Syntax Private-Key Information Syntax Certification Request Cryptographic Token Interface Personal Information Exchange Elliptic Curve Cryptography Pseudo-random Number Generation Cryptographic Token Information Format vjj 70 who-is-who • svět: • Whitfield Diffie, Martin Hellman • Ronald Rivest, Adi Shamir, Len Adleman, • Ross Anderson • ČR • Vlastimil Klíma, Tomáš Rosa • Petr Hanáček • Václav "Vashek" Matyáš • Pavel Vondruška 11.5.16 vjj 71 • DSM - Data Security Management • vydavatel: Tate Int., s.r.o. 11.5.16 vjj 72
Podobné dokumenty
TLD
Vedlejší účinky? Trocha spekulace na konec!
„To už bude pomalu jednodušší zapamatovat si IP adresu než
správnou doménu.“
• vliv na domény jako takové?
• co nástup soc. sítí, mobilních aplikací, in...
Impersonation - vjj root page
místo přidělení tohoto privilegia konkrétnímu
uživatelskému účtu je prý vhodnější spustit zastupující
aplikaci pod účtem SYSTEM, který privilegium TCB
standardně má
vjj
Internals - vjj root page
• user-mode asynchronous procedure call (APC) dispatcher
• exception dispatcher
Trigger - vjj root page
Routed events use one of three routing strategies:
Direct: Only the source element itself is given the opportunity to invoke
handlers in response. This is analogous to the "routing" that Windows Fo...