Information Systems Security
Management
Gerald Quirchmayr, Edgar Weippl, Oliver Jorns
Fakultät für Wirtschaftswissenschaften und Informatik
Institut für Informatik und Wirtschaftsinformatik
Liebiggasse 4/3-4, 1010 Wien
Tel. +43-1-4277-38431 Fax +43-1-4277-38449
[email protected]
Modus
¾
Organisation:
Vorlesung mit Praktikum in
teilweise geblockter Form.
¾
Benotung:
Praktische Umsetzung des im
Vortragende
¾
Univ.-Prof. Dr. Dr. Gerald Quirchmayr
¾
Mag. Oliver Jorns
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
Repetition: Security Services
Data Confidentiality
Authentication
Integrity
Access Control
Non Repudiation
Availability
Symmetric Cryptography
sender:
Hello, world!
âÉ~ÌÚ□à!C“:´U)xJ
DES
plaintext:
cipher:
Hello, world!
010010101010…
shared key:
âÉ~ÌÚ□à!C“:´U)xJ
receiver:
cipher:
DES
010010101010…
shared key:
confidentiality?
Symmetric Cryptography
Hello, world!
Hello, world!
MAC
HMAC
plaintext:
010010101010…
shared key:
HMAC
010010101010…
shared key:
confidentiality
MAC
Hello, world!
MAC
Asymmetric Cryptography
Hello, world!
I~u´É~ÌiÚ]!Cg“:´o)x
asym. algorithm
plaintext:
Hello, world!
010010101010…
receiver public key
I~u´É~ÌiÚ]!Cg“:´o)x
asym. algorithm
010010101010…
receiver private key
Encryption
Hello, world!
asym. algorithm
plaintext:
Hello, world!
010010101010…
receiver public key
I~u´É~ÌiÚ]!Cg“:´o)x
DES
-1010010101010…
receiver private key
âÉ~ÌÚ□à!C“:´U)xJ
DES
010010101010…
cipher:
110110101010…
shared key:
encrypted shared key
110110101010…
asym. algorithm
010010101010…
cipher:
encrypted shared key
Digital Signatures
(creation)
sender:
Hello, world!
6cd3556deb0da54bca060b4c39479839
MD5
asym.
algorithm
Plaintext:
010010101010…
private key:
hash:
18832896790BF2EA…
to receiver
Hello, world!
signature:
Digital Signatures
(verification)
receiver:
signature:
6cd3556d…
asym.
algorithm
010010101010…
public key:
hash:
from sender
Hello, world!
18832896790BF2EA…
MD5
6cd3556d…
?
Questions concerning
PKI (Public Key Infrastructure)
What is a PKI?
What constitutes a digital signature?
What is a certificate?
Wat is certification revocation?
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
?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
PKI
(structure)
IPRA PCAA PCAB CAAa CAAb CABa CABb Alice BobIPRA … Internet PCA Registration Authority (MIT)
PCA … Policy Certification Authority
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
Purpose of certificates
Privacy and confidentiality
(message encode and decode)
Integrity (transfer interference)
Authentication (sender verification)
Certificates
X.509 Public-key certificates
Simple Public Key Infrastructure (SPKI) certificates
Pretty Good Privacy (PGP) certificates
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)
Client certificate
Applications
Encryption and Decryption of emails
E-commerce
Access control
Web servers
Facilities
Intranets
Proof of document transmission
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
Object certificate
(developer certificate)
Digital signed source-code
(Code protection)
Authenticates the developer
Security-request before download
Proof of integrity
Smartcard
Higher secure-level
Contains private key
Processor for cryptological operations
Cardreader necessary
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,
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
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
Certificate Validation Process
a trusted CA has signed the certificate
integrity of the certificate ifself
validity period
revocation
Certificate chain verification
Each certificate signed by another certificate
Entire certificate chain is needed
Verification with the public key of the signer
Root certificate
Intermediate CA
certificate
User certificate
Self-signed
Signed by root
Signed by
intermediate CA
Key/certificate life cycle management
overview
Registration
Key pair generation
Certificate creation and
Key/Certificate distribution (owner)
Certificate dissemination (publ. rep.)
Key backup (if appropriate)
initialization
issued
cancellation
Certificate retrieval
Certificate validation
Key Revocery
Key Update
Certificate expiration
Certificate revocation
Key History
Key Archive
Initialization scenario
1.
Registration
Form request
2.
Registration
Form reply
3.
Registration
Form submission
4.
Registration
Setup request
5.
Registration
Setup results
End-entity
RA
6.
Registration
results
CA
7.
Certificate request
8.
Certificate response
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)
Certification process
Key pair generation
1. Certificate request
(form)
RA
2. Certificate request
(PKCS#10)
3. signed Certificate
(PKCS#7)
5. Certificate (X.509)
CA
4. Certificate + priv. key
(PKCS#12)
Certificate revocation
1.
Certificate
Revocation
Request
End-entity
RA
CA
1.
Certificate
Revocation
Request
Out-of-band Request
2.
Certificate
Revocation
Response
2.
Certificate
Revocation
Response
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;
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
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
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---01
---BEGIN RSA PRIVATE KEY---Proc-Type: 4,ENCRYPTED DEK-Info: DES-EDE3-CBC,18FEBA6DB48660E4 t5nSIWukdQ8CL4E3tID+1Yp8VMP2k4m2JegIArRmtGSHUIFtB8WFTzWw4UjSBGOJ S0z9C3hIhSDfnyq4iXoSjLvhH1DYi514M10aVQlyaNL7u7Yg2NOMGyExfGOwczB7 … pz0xE4T/3laX9G8s4f2QxmnoWcE7H7A23gSmcz65shzCJUdbtOVs3JqM489ffRjE ---END RSA PRIVATE
creating sender certificate (request)
user@:~> openssl req –config /<path>/openssl.cnf –newkey rsa:1024 –keyoutprivate/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 []:[email protected]
Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []:
creating sender certificate (request)
user@:~> openssl req –config /<path>/openssl.cnf –newkey rsa:1024 –keyoutprivate/sender_private_key.pem –out sender_request.pem
---BEGIN CERTIFICATE
REQUEST---MIIB3TCCAUYCAQAwgZwxCzAJBgNVBAYTAkFUMRAwDgYDVQQIEwdBdXN0cmlhMQ8w DQYDVQQHEwZWaWVubmExDzANBgNVBAoTBnRlc3RDQTEmMCQGA1UECxMdT3JnYW5p emF0aW9uYWwgVW5pdCBvZiBzZW5kZXIxDzANBgNVBAMTBnNlbmRlcjEgMB4GCSqG SIb3DQEJARYRc2VuZGVyQHRlc3RDQS5vcmcwgZ8wDQYJKoZIhvcNAQEBBQADgY0A MIGJAoGBAL4HmaZLAW8Mzy26YUTI4IdVFWkafn+vE7LvQq75rbK/fCRtloAkn6FD yaUXc+bkpCDxf3FPO+ed5bPcFqLUg2Hj1JjMxHJ1/2cMeXDpaZRdIfoje9QFA1R9 +A7+tCxsjAtoNMhu2eai4Bl8mQGajuNLfNZAwo6QGbZeRgZk1t+XAgMBAAGgADAN BgkqhkiG9w0BAQQFAAOBgQCMiTmmp0wwHvUyGIE7ShQUPV/0ElS36K3Iyk/cGaym SbZ04Draf9vcZYI5vQn+6MtLJ4CztFqIABfw7p7SFM9QyiSfm8WDYey4igzYjYKA
---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==
KEY---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:'[email protected]'
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
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 protected]
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 protected]
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: … 01 02 CRL
PKCS#12 creation
(user „sender“)
user@:~> openssl pkcs12 –export –inkey demoCA/private/sender_private_key.pem –name “[email protected]” –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
CA certificate installation
sender certificate installation
sender certificate installation completed
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
Certificate revocation
Certificate Revocation Lists (CRLs)
Lists all revoked certificates
Delta CRLs
only differences to previous CRL
Online Certificate Status Protocol (OCSP)
OCSP (Online Certificate Status Protocol)
OCSP
Request
OCSP
Response
OCSP
Request
OCSP
Response
OCSP
Server
CRL, SQL, LDAP,…
http://<address>:62/ocsp
Example: OpenSSL certificate revocation
(database)
V 050508164454Z 01 unknown
/C=AT/ST=Austria/O=testCA/OU=Organizational Unit of sender/CN=sender/[email protected]
V
R (revoked), E (expired), V (valid)
050508164454Z
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 protected]
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
R 050508164454Z 040509095323Z 01 unknown /C=AT/ST=Austria/O=testCA/OU=Organizational Unit of sender/
CN=sender/[email protected]
V 050508164454Z 01 unknown /C=AT/ST=Austria/O=testCA/OU=Organizational Unit of sender/ CN=sender/[email protected]