Information Systems Security Management Gerald Quirchmayr, Edgar Weippl, Oliver Jorns Fakultät für Wirtschaftswissenschaften und Informatik Liebiggasse 4/3-4, 1010 Wien Tel. +43-1-4277-38431 Fax +43-1-4277-38449 Gerald.Quirchmay@univie.ac.at 1
Modus Organisation: Vorlesung mit Praktikum in teilweise geblockter Form. Benotung: Praktische Umsetzung des im Volesungsteil vermittelten Stoffes. 2
Vortragende Univ.-Prof. Dr. Dr. Gerald Quirchmayr Mag. Oliver Jorns Dr. Edgar Weippl 3
Inhaltliche Schwerpunkte Business Continuity Management IT Security Administration The Technological Basis of System Defence Design Principles Access Control Mechanisms Information Flow Assurance Evaluating Systems (very brief overview) Auditing Securing Mobile and Wireless Infrastructures 4
Repetition: Security Services Data Confidentiality Authentication Integrity Access Control Non Repudiation Availability 5
Symmetric Cryptography sender: plaintext: Hello, world! 010010101010 shared key: cipher: DES âé~ìú à!c : U)xJ confidentiality? receiver: cipher: âé~ìú à!c : U)xJ 010010101010 shared key: DES Hello, world! 6
Symmetric Cryptography plaintext: Hello, world! 010010101010 shared key: HMAC MAC confidentiality Hello, world! MAC Hello, world!? 010010101010 shared key: HMAC MAC 7
Asymmetric Cryptography plaintext: Hello, world! 010010101010 receiver public key asym. algorithm I~u É~ÌiÚ]!Cg : o)x key confidentiality I~u É~ÌiÚ]!Cg : o)x 010010101010 receiver private key asym. algorithm Hello, world! 8
Encryption shared key: 010010101010 plaintext: Hello, world! 010010101010 asym. algorithm DES receiver public key encrypted shared key 110110101010 cipher: âé~ìú à!c : U)xJ encrypted shared key 110110101010 cipher: I~u É~ÌiÚ]!Cg : o)x 010010101010 asym. algorithm DES -1 receiver private key shared key: 010010101010 Hello, world! 9
Digital Signatures (creation) sender: Plaintext: Hello, world! MD5 hash: 6cd3556deb0da54bca060b4c39479839 010010101010 private key: signature: asym. algorithm 18832896790BF2EA Hello, world! to receiver 10
Digital Signatures (verification) receiver: signature: 18832896790BF2EA from sender Hello, world! 010010101010 public key: hash: asym. algorithm 6cd3556d MD5 6cd3556d? 11
Questions concerning PKI (Public Key Infrastructure) What is a PKI? What constitutes a digital signature? What is a certificate? Wat is certification revocation? What is a Certification Authority (CA)? 12
PKI defined Certification Authority Certificate Repository Certificate Revocation Key Backup and Recovery Key update or Certificate update Key history Key escrow Cross-Certification support for Non-repudiation Time stamping Client software 13
?PKI (Public Key Infrastructure)? Functional roles: Policy Authority Certificate Issuer Certificate Manufacturer Revocation Manufacturer Registration Authority Authentication Service Repository Related Roles: Subscriber Relying Party Applications 14
PKI (structure) IPRA PCA A PCA B CA Aa CA Ab CA Ba CA Bb Bob Alice IPRA Internet PCA Registration Authority (MIT) PCA Policy Certification Authority CA Certification Authority 15
Certificates Public key Certificates are used: bind an entity s name (and possibly additional attrubutes associated with that entity) with the corresponding public key. assure: Integrity of the public key and any other associated information The public key and any other associated information has been bound to the claimed owner in a trust manner Source: Understanding Public-Key Infrastructure, Adams,C.;Lloyd,S. 16
Purpose of certificates Privacy and confidentiality (message encode and decode) Integrity (transfer interference) Authentication (sender verification) Non-repudiation (no possibility to deny) 17
Certificates X.509 Public-key certificates Simple Public Key Infrastructure (SPKI) certificates Pretty Good Privacy (PGP) certificates Attribute certificates 18
Appointments of certificates Certification Practice Statement (CPS) (e.g. http://www.a-trust.at/html/download_area_show_pub.asp?dir=cps) Release, administration and usage of certificates Policies and practices of certification sites Certificate Policy (CP) (e.g. http://www.a-trust.at/html/download_area_show_pub.asp?dir=cp) A set of provisions for a specific certificate 19
LDAP directory 20
Client certificate Applications Encryption and Decryption of emails E-commerce Access control Web servers Facilities Intranets Proof of document transmission Identification and privileges (license) 21
Server certificate Application Server authentication Proof of a Domain Name (Identity, Owner, IP) Secure Connection with TLS (Transport Layer Security) or SSL (Secure Socket Layer) Data exchange Web email account Online banking E-commerce 22
Object certificate (developer certificate) Digital signed source-code (Code protection) Authenticates the developer Security-request before download Proof of integrity 23
Smartcard Higher secure-level Contains private key Processor for cryptological operations Cardreader necessary Source: a-trust.at 24
Certificate Structure (ASN.1) Certificate ::=SEQUENCE { version [0] EXPLICIT Version DEFAULT v1, serialnumber CertificateSerialNumber, signature AlgorithmIdentifier, issuer Name, validity Validity, subject Name, subjectpublickeyinfo SubjectPublicKeyInfo, issueruniqueid [1] IMPLICIT UniqueIdentifier OPTIONAL, subjectuniqueid [2] IMPLICIT UniqueIdentifier OPTIONAL, extensions [3] EXPLICIT Extensions OPTIONAL } 25
Components of a PKI CA (Certification Authority) bind an entity s name (and possibly additional attriubutes associated with that entity) with the corresponding public key. RA (Registration Authority): Integrity of the public key and any other associated information The public key and any other associated information has been bound to the claimed owner in a trust manner 26
RA Establishes and confirms the identity of an individual as part of the initialization process Distributes shared secrets to end-users for subsequent authentication during an on-line initialization process Initiates the certification process with a CA on behalf of individual end-users Generates keying meterial on behalf of an end-user Performs certain key/certificate life cycle management functions, such as to initiate a revocation request or a key recovery operation on behalf of an end-entity 27
Certificate Validation Process a trusted CA has signed the certificate integrity of the certificate ifself validity period revocation correct use of certificate 28
Certificate chain verification Each certificate signed by another certificate Entire certificate chain is needed Verification with the public key of the signer Root certificate Self-signed Intermediate CA certificate Signed by root User certificate Signed by intermediate CA 29
Key/certificate life cycle management overview initialization Registration Key pair generation Certificate creation and Key/Certificate distribution (owner) Certificate dissemination (publ. rep.) Key backup (if appropriate) issued cancellation Certificate retrieval Certificate validation Key Revocery Key Update Certificate expiration Certificate revocation Key History Key Archive 30
Initialization scenario 1. Registration Form request 2. Registration Form reply 3. Registration Form submission 4. Registration Setup request End-entity 6. Registration results 7. Certificate request RA 5. Registration Setup results CA 8. Certificate response 31
Certification process Certificate request (user) Registration Authority (RA) verifies client identity Registration Authority generates key pair on behalf of client RA sends certificate-request to Certification Authority (CA) (PKCS #10) CA signs certificate-request (PKCS #7) Certificate Dissemination (LDAP) RA returns password protected key/certificate to user (PKCS #12) 32
Certification process Key pair generation 1. Certificate request (form) 4. Certificate + priv. key (PKCS#12) RA 2. Certificate request (PKCS#10) 3. signed Certificate (PKCS#7) CA 5. Certificate (X.509) 5. Certificate (X.509) LDAP directory 33
Certificate revocation 1. Certificate Revocation Request Out-of-band Request 2. Certificate Revocation Response 1. Certificate Revocation Request End-entity RA CA 2. Certificate Revocation Response Certificate requests are directed to the RA or CA directly 34
Certificate Revocation List (ASN.1) CertificateList ::=SEQUENCE { version Version OPTIONAL, --if present, version must be v2 signature AlgorithmIdentifier, issuer Name, thisupdate Time, nextupdate Time OPTIONAL, revokedcertificates SEQUENCE OF SEQUENCE { usercertificate CertificateSerialNumber, revocationdate Time, crlentryextensions Extensions OPTIONAL } OPTIONAL, crlextensions [0] Extensions OPTIONAL }} reaoncode: unsecified: unknown keycompromise: the private key has been compromised in some way; cacompromise: like keycompromise, but the certificate subject is a CA; affiliationchanged: some fields in the certificate have changed (e.g. subject name); superseded: the certificate has been replaced by another; cessationofoperation: the certificate is no longer needed; certificatehold: the certificate is temporarily deemed invalid until either final revocation of hold release; removefromcrl: an existing CRL entry should be removed owing to certificate expiration or hold release (for delta-crl only) 35
Certificate Revocation List (CRL) 36
Example: simple CA with OpenSSL /usr/local/ssl/lib/openssl.cnf - master config file./democa - main CA directory./democa/cacert.pem - CA certificate./democa/private/cakey.pem - CA private key./democa/serial - CA serial number file./democa/serial.old - CA serial number backup file./democa/index.txt - CA text database file./democa/index.txt.old - CA text database backup file./democa/certs - certificate output file./democa/.rnd - CA random seed information Source: http://www.openssl.org/docs/apps/ca.html 37
creating self signed certificate user@:~> openssl req config /<path>/openssl.cnf new x509 days 1460 newkey rsa:2048 keyout private/cakey.pem out cacert.pem Generating a 2048 bit RSA private key......+++...+++ writing new private key to 'private/cakey.pem' Enter PEM pass phrase:rootca Verifying password - Enter PEM pass phrase:rootca ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]:AT State or Province Name (full name) [Some-State]:Austria Locality Name (eg, city) []:Vienna Organization Name (eg, company) [Internet Widgits Pty Ltd]:testCA Organizational Unit Name (eg, section) []:Organizational unit of testca Common Name (eg, YOUR name) []:Administrator of testca Email Address []:administrator@testca.org 38
creating self signed certificate user@:~> openssl req config /<path>/openssl.cnf new x509 days 1460 newkey rsa:2048 keyout private/cakey.pem out cacert.pem -----BEGIN CERTIFICATE----- MIIE/DCCA+SgAwIBAgIBADANBgkqhkiG9w0BAQQFADCBtDELMAkGA1UEBhMCQVQx EDAOBgNVBAgTB0F1c3RyaWExDzANBgNVBAcTBlZpZW5uYTEPMA0GA1UEChMGdGVz wgpp/apgrajdr+jfx4bdzew4g3/joqhmlmwlmf9nvllxakvpa+gvsiz3g+ddnzac 6UVXbCPbe15r7JGK9BvS1xmVWDvqL5dL4j/whEMg0tI= -----END CERTIFICATE----- -----BEGIN RSA PRIVATE KEY----- Proc-Type: 4,ENCRYPTED DEK-Info: DES-EDE3-CBC,18FEBA6DB48660E4 01 t5nsiwukdq8cl4e3tid+1yp8vmp2k4m2jegiarrmtgshuiftb8wftzww4ujsbgoj S0z9C3hIhSDfnyq4iXoSjLvhH1DYi514M10aVQlyaNL7u7Yg2NOMGyExfGOwczB7 pz0xe4t/3lax9g8s4f2qxmnowce7h7a23gsmcz65shzcjudbtovs3jqm489ffrje -----END RSA PRIVATE KEY---- 39
certificate details 40
certificate details 41
creating sender certificate (request) user@:~> openssl req config /<path>/openssl.cnf newkey rsa:1024 keyout private/sender_private_key.pem out sender_request.pem Using configuration from /usr/share/ssl/openssl.cnf Generating a 1024 bit RSA private key...++++++...++++++ writing new private key to 'private/sender_private_key.pem' Enter PEM pass phrase: Verifying password - Enter PEM pass phrase: ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]:AT State or Province Name (full name) [Some-State]:Austria Locality Name (eg, city) []:Vienna Organization Name (eg, company) [Internet Widgits Pty Ltd]:testCA Organizational Unit Name (eg, section) []:Organizational Unit of sender Common Name (eg, YOUR name) []:sender Email Address []:sender@testorg.org Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []: 42
creating sender certificate (request) user@:~> openssl req config /<path>/openssl.cnf newkey rsa:1024 keyout private/sender_private_key.pem out sender_request.pem -----BEGIN RSA PRIVATE KEY----- Proc-Type: 4,ENCRYPTED DEK-Info: DES-EDE3-CBC,B2B068A74B57AC08 RM6naIBwCxeoqg+QG5wOSGrfIuFq7YEopNTzMyO+067adhbRjCJm1JmhEUKlcA7i TVFmjuxUmZaGGjkPNZxcIfQhyfmX6yB+fJwuvGb2I9uQDJ9uciuXLFoBgmG3s3p1 c3xevo5wzq5ne0rekl9zaxr1grulnyd3sxqzvs7a3exarlg9l6xzdhioswbchom+ JvYTyEN5xEaBkggeCw8FdzGkP+EakmM5IFfK2zTzTbhAAYlt9veLuJDkk+jc5YnM YcOIfmbDez0dKeAhm9UJFjp8i6sAzjQWolq6i9vyivEAw9t5ssrL+avU9mYrrVbf Ng35qxhg3SlvfUooCt2AfxxnQ3XbaWiWWxI74q7oZR9pHX9LZwZV4ftfz74QPb+O wtbwyxsm8xrdepsyk2m+hfn0rwuft8joay4/trx6adhbscpjtrnwp/cexhq3f4ml ztrkafsvs5hcn5oqzy2jb1kjgxzkml1eydriv/hxn9n/zyepigfpthem2jnbqnte qh9vb+dmdw6d4dg3ln1o+vx9o1b90vdoqrz324ylawer7fmoywvoltqyvu7wy0qh i7naq/b1u72d3q88vzs6avitlwjryyvbc5m+e411r8u1/x0hllqlbrbomta3n4wm 8OwdRsrtSASwzY9IagKyV9qYFmbmNm0aVsL2wZV478z4FZGWkRinbPxCGqDbgHCT EU31eB6flSG3op15DbSKtTu/LY8lJGC/qNjnuonDt1FffwhS4dNRr9aS6m2uszKe L16eY82VWpHXdz3AWFh9za30cmvZlkWRvXTJkPAI+QnI9Ovubd3/gQ== -----END RSA PRIVATE KEY----- -----BEGIN CERTIFICATE REQUEST----- MIIB3TCCAUYCAQAwgZwxCzAJBgNVBAYTAkFUMRAwDgYDVQQIEwdBdXN0cmlhMQ8w DQYDVQQHEwZWaWVubmExDzANBgNVBAoTBnRlc3RDQTEmMCQGA1UECxMdT3JnYW5p emf0aw9uywwgvw5pdcbvzibzzw5kzxixdzanbgnvbamtbnnlbmrlcjegmb4gcsqg SIb3DQEJARYRc2VuZGVyQHRlc3RDQS5vcmcwgZ8wDQYJKoZIhvcNAQEBBQADgY0A MIGJAoGBAL4HmaZLAW8Mzy26YUTI4IdVFWkafn+vE7LvQq75rbK/fCRtloAkn6FD yauxc+bkpcdxf3fpo+ed5bpcfqlug2hj1jjmxhj1/2cmexdpazrdifoje9qfa1r9 +A7+tCxsjAtoNMhu2eai4Bl8mQGajuNLfNZAwo6QGbZeRgZk1t+XAgMBAAGgADAN BgkqhkiG9w0BAQQFAAOBgQCMiTmmp0wwHvUyGIE7ShQUPV/0ElS36K3Iyk/cGaym SbZ04Draf9vcZYI5vQn+6MtLJ4CztFqIABfw7p7SFM9QyiSfm8WDYey4igzYjYKA EpnWgOFLpe+Ots9tgp2qO/cW2KhcgpEABsXNb4xzHUmNFDXbeSsc5n1OS44bdP16 cq== -----END CERTIFICATE REQUEST----- 43
CA certifies sender certificate user@:~> openssl ca config /<path>/openssl.cnf name CA_default in democa/sender_request.pem out democa/certs/certified_sender_certificate_request.pem Using configuration from /usr/share/ssl/openssl.cnf Enter PEM pass phrase:rootca Check that the request matches the signature Signature ok The Subjects Distinguished Name is as follows countryname :PRINTABLE:'AT' stateorprovincename :PRINTABLE:'Austria' localityname :PRINTABLE:'Vienna' organizationname :PRINTABLE:'testCA' organizationalunitname:printable:'organizational Unit of sender' commonname :PRINTABLE:'sender' emailaddress :IA5STRING:'sender@testCA.org' Certificate is to be certified until May 8 16:44:54 2005 GMT (365 days) Sign the certificate? [y/n]:y 1 out of 1 certificate requests certified, commit? [y/n]y Write out database with 1 new entries Data Base Updated 44
CA certifies sender certificate user@:~> openssl ca config /<path>/openssl.cnf name CA_default in democa/sender_request.pem out democa/certs/certified_sender_certificate_request.pem Certificate: Data: Version: 3 (0x2) Serial Number: 1 (0x1) Signature Algorithm: md5withrsaencryption Issuer: C=AT, ST=Austria, L=Vienna, O=testCA, OU=Organizational unit of testca, CN=Administrator of testca/email=administrator@testca.org Validity Not Before: May 8 16:44:54 2004 GMT Not After : May 8 16:44:54 2005 GMT Subject: C=AT, ST=Austria, O=testCA, OU=Organizational Unit of sender, CN=sender/Email=sender@testCA.org Subject Public Key Info: Public Key Algorithm: rsaencryption RSA Public Key: (1024 bit) Modulus (1024 bit): 00:be:07:99:a6:4b:01:6f:0c:cf:2d:ba:61:44:c8: 02 01 CRL V 050508164454Z 01 unknown /C=AT/ST=Austria/O=testCA/OU=Organizational Unit of sender/cn=sender/email=sender@testca.org 45
PKCS#12 creation (user sender ) user@:~> openssl pkcs12 export inkey democa/private/sender_private_key.pem name sender@testca.org in democa/certs/certified_sender_certificate_request.pem out democa/sender.p12 Enter PEM pass phrase:sender Enter Export Password:export Verfying password - Enter Export Password:export X.509 Certificate of Certification Authority certified X.509 Certificate and password protected private key of user sender 46
CA certificate installation 47
CA certificate installation 48
CA certificate installation check this! 49
CA certificate verification 50
CA certificate installation completed 51
sender certificate installation 52
sender certificate installation Export Password:export 53
sender certificate installation 54
sender certificate installation completed Enter PEM pass phrase:sender 55
sender certificate verifiation 56
sender certificate verification 57
Certificate revocation user requests for revocation (phone, fax or email) reason for revocation necessary e.g. private key has been compromised revocation released within 3 hours each certificate can be revoked only once 58
Certificate revocation Certificate Revocation Lists (CRLs) Lists all revoked certificates Delta CRLs only differences to previous CRL Online Certificate Status Protocol (OCSP) 59
OCSP (Online Certificate Status Protocol) OCSP Request OCSP Response OCSP Request OCSP Server CRL, SQL, LDAP, OCSP Response http://<address>:62/ocsp 60
OCSP Response Source: Security in Telecommunication Project (Forschungszentrum Telekommunikation Wien) 61
Example: OpenSSL certificate revocation (database) V 050508164454Z 01 unknown /C=AT/ST=Austria/O=testCA/OU=Organizational Unit of sender/cn=sender/email=sender@testca.org V 050508164454Z R (revoked), E (expired), V (valid) valid to YYMMDDHHMMSSZ 01 Serial number (hex) unknown where to find the certificate (at present always unknown ) Name of owner of certificate (DN and Email) /C=AT/ST=Austria/O=testCA/OU=Organizational Unit of sender/cn=sender/email=sender@testca.org 62
OpenSSL certificate revocation (database) user@:~> openssl ca revoke./democa/certs/certified_sender_certificate_request.pem user@:~> openssl ca gencrl out./democa/crl/crl.pem user@:-> openssl crl in./democa/crl/crl.pem outform der out./democa/crl/crl.der date of revocation R 050508164454Z 040509095323Z 01 unknown /C=AT/ST=Austria/O=testCA/OU=Organizational Unit of sender/ CN=sender/Email=sender@testCA.org V 050508164454Z 01 unknown /C=AT/ST=Austria/O=testCA/OU=Organizational Unit of sender/ CN=sender/Email=sender@testCA.org 63
Further reading Apache + SSL: http://www.apache-ssl.org/ download: http://gd.tuwien.ac.at/infosys/servers/http/apache-ssl/ https with midlets: http://developers.sun.com/techtopics/mobility/midp/article s/https/ Exploring RSA Encryption in OpenSSL: http://www.linuxjournal.com/article.php?sid=6826 64
References Matt Bishopp, Computer Security Understanding Public-Key Infrastructure, Adams,C.;Lloyd,S. Security Fundamentals for E-commerce, Vesna Hassler OpenSSL: http://www.openssl.org Das OpenSSL Handbuch: http://www.dfn-pca.de/certify/ssl/handbuch/ossl095/ LDAP Browser: http://www.iit.edu/~gawojar/ldap/ Security in Telecommunication Project 2002, Forschungszentrum Telekommunikation Wien ftw. 65