TLS provides confidentiality, identity, and integrity for internet communication. It is used for HTTPS web pages and applications on computers and phones. TLS is based on SSL and uses asymmetric encryption where the server sends a public key to set up the secure connection. The client then challenges the server, which responds using its private key to prove its identity. Certificates bind a public key to an identity and are signed by a Certification Authority. They contain information like the key, owner identity, and validity period.
3. #MoreCrypto
TLS is an important tool
TLS
Transport
Layer
Security
TLS provides confidentiality, identity
and integrity to Internet communication.
TLS is used in HTTPS:// web pages, but can also be
used from applications on a computer as well as a cell
phone.
TLS is based on SSL, that was a provider-specific
technology. TLS is maintained by the IETF and is still
being improved.
4. TLS basics in a minute
• TLS use a keypair to set up a secure connection
• Assymetric encryption
• The server sends the public key at connection
• The client challenges the server
• The server responds to the challenge using the
server private key
• Now the client knows that the server has the
private key that matches the public key
private
5. TLS Usage
• TLS is used for
• authentication of servers and
clients
• initiating encryption of a session
• digital signatures on messages to
ensure integrity and provide
authentication
Authentication
Who are you? Prove it!
Encryption
Providing confidentiality
Integrity
Making sure that the
receiver get what the
sender sent
6. Adding a certificate to the
mix
• A certificate is nothing more complicated than a
passport or an ID card
• It contains the public key and some administrative
data
• And is signed (electronically) by someone you
might trust ... or not.
• This is part of the complex structure called PKI,
which you might want or just disregard
• A PKI is not needed to get encryption for the
signalling path!
• You can however use a PKI to only set up
connections that you trust
7. The X.509v3 certificate
• An X.509 certificate is the standardised way to
bind a public key to an identity
• The certificate is issued by a
Certification Authority (CA)
• The most important component of the PKI?
• An X.509 certificate is an
electronic document with a specific layout
!
• Standard: documented in IETF PKIX RFC:s
Version
Serial number
Issuer identity
Validity period
User identity
Public key
Extension fields
8. X509.v3
contents
• Version number
• Certificate serial number
Used for validation
• Identity of the issuer
• Validity period
• Identity of the public key owner
• Public key
• Extension fields
• A digital signature, created by the issuer
Internet
Explorer
Certificate
Manager
9. SIP certificates
• SubjectAltName contains a list of identities that
are valid for this certificate
• draft-ietf-certs outlines a SIP event package to
distribute and manage certificates
• This is based on the Authentication Service in SIP
identity (RFC 4474)
• The domain cert is used to sign the NOTIFY
payload
11. Process for a server
Generate
Keys
Pack public key
in CSR
Send CSR
to CA
CA validate
process
CA issues
Certificate
Install cert
in server with
private key
12. Client connection
Open TCP
connection
Server sends
certificate
Client
challenge server
Server answers
challenge
Client validates
certificate
Server can issue
cert request
Client and server
produce session key
Symmetric encryption
starts
13. Protocol specifics
• Given a protocol request - how do we match the
request address to a certificate
• SIP Uri, E-mail address, HTTPS uri
14. User specifics
• Which CAs do we trust?
• How do we check validity of certificate, even if
we trust the CA?
• Do we have time for validation?
15. New solutions
• Anchoring the certificate in DNS
• Validating the certificate in DNS
• No certificate - bare keys
• Oppurtunistic Security with TLS