SlideShare a Scribd company logo
DANE/DNSSEC/TLS
Testing in the Go6lab
Jan Žorž, ISOC/Go6 Institute, Slovenia
jan@go6.si
zorz@isoc.org
Acknowledgement
I would like to thank Internet Society to let me
spend some of my ISOC working time in go6lab
and test all this new and exciting protocols and
mechanisms that makes Internet a bit better
and more secure place…
DNSSEC implementation in go6lab
• Powerdns server (used as primary for non-
signed domains) as “hidden” primary DNS
server
• OpenDNSSEC platform for signing domains
• BIND9 DNS servers as secondaries to
OpenDNSSEC to serve signed zones
• Virtualization used: PROXMOX 3.4
• OS templates: fedora-20, Centos6/7
DNSSEC implementation in go6lab
• “Bump in a wire”
• Two public “primary” servers
• Concept:
DNSSEC in go6lab
• That was fairly easy and it works very well.
• Implementation document used from Matthijs
Mekking:
http://go6.si/docs/opendnssec-start-guide-draft.pdf
DANE experiment
• When DNSSEC was set up and functioning we
started to experiment with DANE (DNS
Authenticated Name Entities).
• Requirements:
– DNSSEC signed domains
– Postfix server with TLS support > 2.11
• We decided on Postfix 3.0.1
DANE
• TLSA record for mx.go6lab.si
_25._tcp.mx.go6lab.si. IN TLSA 3 0 1
B4B7A46F9F0DFEA0151C2E07A5AD7908F4C8B0050E7CC
25908DA05E2 A84748ED
It’s basically a hash of TLS certificate on mx.go6lab.si
More about DANE:
http://www.internetsociety.org/deploy360/resources/da
ne/
What is DANE and how does it work
DANE verification
• Mx.go6lab.si was able to verify TLS cert to T-2
mail server and nlnet-labs and some others…
mx postfix/smtp[31332]: Verified TLS connection established to
smtp-good-in-2.t-2.si[2a01:260:1:4::24]:25: TLSv1 with cipher
DHE-RSA-AES256-SHA (256/256 bits)
dicht postfix/smtp[29540]: Verified TLS connection established to
mx.go6lab.si[2001:67c:27e4::23]:25: TLSv1.2 with cipher
ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)
Postfix config
smtpd_use_tls = yes
smtpd_tls_security_level = may
smtpd_tls_key_file = /etc/postfix/ssl/server.pem
smtpd_tls_cert_file = /etc/postfix/ssl/server.pem
smtpd_tls_auth_only = no
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
smtp_tls_security_level = dane
smtp_use_tls = yes
smtp_tls_note_starttls_offer = yes
smtp_tls_loglevel = 1
tls_random_exchange_name = /var/run/prng_exch
tls_random_source = dev:/dev/urandom
tls_smtp_use_tls = yes
Malformed TLSA record
• We created a TLSA record with a bad hash (one
character changed)
• Postfix failed to verify it and refused to send a message
mx postfix/smtp[1765]: Untrusted TLS connection established to
mail-bad.go6lab.si[2001:67c:27e4::beee]:25: TLSv1.2 with
cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)
mx postfix/smtp[1765]: 3A4BE8EE5C: Server certificate not
trusted
1M top Alexa domains and DANE
• We fetched top 1 million Alexa domains and
created a script that sent an email to each of
them ( test-dnssec-dane@[domain] )
• After some tweaking of the script we got
some good results
• Then we built a script that parsed mail log file
and here are the results:
Results
• Out of 1 million domains, 992,232 of them had
MX record and mail server.
• Nearly 70% (687,897) of all attempted SMTP
sessions to Alexa top 1 million domains MX
records were encrypted with TLS
• Majority of TLS connections (60%) were
established with trusted certificate
• 1,382 connections where remote mail server
announced TLS capability failed with "Cannot
start TLS: handshake failure"
More results
TLS established connections ratios are:
Anonymous: 109.753
Untrusted: 167.063
Trusted: 410.953
Verified: 128
Quick guide: Anonymous (opportunistic TLS with no
signature), Untrusted (peer certificate not signed by trusted
CA), Trusted (peer certificate signed by trusted CA) and
Verified (verified with TLSA by DANE).
DANE Verified
Verified: 128 !!!
Mail distribution
Mail Servers # Domains Handled TLS State
google.com 125,422 Trusted
secureserver.net 35,759 Some Trusted, some
no TLS at all
qq.com 11,254 No TLS
Yandex.ru 9,268 Trusted
Ovh.net 8.531 Most Trusted, with
redirect servers
having no TLS at all
Mail distribution
Mail Servers # Domains Handled TLS State
Emailsrvr.com 8,262 Trusted
Zohomail.com 2.981 Trusted
Lolipop.jp 1.685 No TLS
Kundenserver.de 2,834 Trusted
Gandi.net 2,200 Anonymous
DNSSEC? DANE?
None of these “big” mail servers (and
their domains) are DNSSEC signed
(that meant no DANE for them
possible up to January 2016).
• Of course, with wrong certificate hash in TLSA
record (refuses to send mail)
• If domain where MX record resides is not
DNSSEC signed (can’t trust the data in MX, so
no verification)
• If TLSA record published in non-DNSSEC zone
(can’t trust the data in TLSA, so no
verification)
When do DANE things fail?
• go6lab.si zone is signed, so is mx.go6lab.si
• there is TLSA for mx.go6lab.si, also signed
• Domain signed.si is signed and MX points to
mx.go6lab.si
• Domain not-signed.si is not signed and MX
points to mx.go6lab.si
• We send email to jan@signed.si and jan@not-
signed.si (signed.si and not-signed.si are used
just as examples)
When do things fail? (example)
When I send email to jan@signed.si (signed domain):
Verified TLS connection established to
mx.go6lab.si[2001:67c:27e4::23]:25:
When I send email to jan@not-signed.si (not signed
domain):
Anonymous TLS connection established to
mx.go6lab.si[2001:67c:27e4::23]:25:
When do things fail? (example)
• Let’s try to point MX record from signed domain to
A/AAAA record in not-signed domain with TLSA that
is also not signed (obviously) – mail.not-signed.si
Send mail to jan@signed.si when MX for signed.si
points to mail.not-signed.si – DANE verification is not
even started as chain of trust is broken
When do DANE verification also fail?
postfix-3.1-20160103/HISTORY:
20160103
Feature: enable DANE policies when an MX host has a secure
TLSA DNS record, even if the MX DNS record was obtained
with insecure lookups. The existence of a secure TLSA record
implies that the host wants to talk TLS and not plaintext.
This behavior is controlled with smtp_tls_dane_insecure_mx_policy
(default: "dane", other settings: "encrypt" and "may"; the
latter is backwards-compatible with earlier Postfix releases).
Viktor Dukhovni.
Postfix latest improvements 
Let’s Encrypt, DANE and mail
• Let’s Encrypt recommends using ‘2 1 1’ and ‘3 1 1’ records
• Validity of LE cert is 90 days
• By default the underlying key is changed when renewing
• …so also cert hash is changed
• So, lots of work if you plan to publish 3 1 1 TLSA
• Using the ‘2 1 1’ method leads to another issue – namely
lack of an DST Root CA X3 certificate in the fullchain.pem file
provided by the Let’s Encrypt client
• So we need to fetch the DST Root CA X3 certificate and add it
to fullchain.pem file and verify that it did not change from
previous time we renewed…
Script to add DST Root CA X3
lynx --source
https://www.identrust.com/certificates/trustid/
root-download-x3.html | grep -v "/textarea" |
awk '/textarea/{x=NR+18;next}(NR<=x){print}' |
sed -e '1i-----BEGIN CERTIFICATE-----' | sed -e
'$a-----END CERTIFICATE-----' >>
/etc/letsencrypt/live/mx.go6lab.si/fullchain.pem
Valid 3 1 1 and 2 1 1 TLSA records
But…
• At next certificate renewal, by default the
underlying key will change and 3 1 1 TLSA
record will become invalid…
• Labor-wise, we need to keep the underlying
key through the renewals
• --csr option in letsencrypt-auto client
• In directory “examples” there is “generate-
csr.sh” file
Stable underlying key…
./generate-csr.sh mx.go6lab.si
Generating a 2048 bit RSA private key
................+++
..+++
writing new private key to 'key.pem'
-----
You can now run: letsencrypt auth --csr csr.der
Renewals and hashes…
• Now we are using the same underlying key for
automatic renewals of certificate, so hash
does not change and 3 1 1 TLSA record works.
• We’ll rotate the underlying key when we
decide to, and being driven by human
intervention (and also change the TLSA).
• ./letsencrypt-auto certonly -t --debug --renew
-a standalone --csr ./mx.go6lab.si.der –keep
• Of course, we add DST Root CA X3 certificate
to fullchain.pem
More reading:
http://www.internetsociety.org/deploy360/blog
/2016/01/lets-encrypt-certificates-for-mail-
servers-and-dane-part-1-of-2/
http://www.internetsociety.org/deploy360/blog
/2016/03/lets-encrypt-certificates-for-mail-
servers-and-dane-part-2-of-2/
Conclusions
• 70% of email can be encrypted in some way,
you just need to enable TLS on your server
• Low number of DNSSEC signed
domains/servers
• Even lower number of DANE/TLSA verified
servers/connections
• It’s easy, go and do it – it’s not the end of the
world and it helps with verifying who are you
sending emails to – and vice versa ;)
Conclusions II.
• DANE verification failed (or was aborted) if
DNSSEC chain of trust is not fully established and
complete along the whole way.
• TLSA in not-signed DNS zones would not help you
much preventing your correspondents sending
emails to server-in-the-middle (if you are not
running latest bleeding edge development
version of Postfix)
• DNSSEC/DANE is easy, but please understand
what are you doing before implementing it in
production…
Q&A
Questions? Protests? Suggestions?
Complaints?
jan@go6.si
zorz@isoc.org

More Related Content

What's hot

DoH, DoT and ESNI
DoH, DoT and ESNIDoH, DoT and ESNI
DoH, DoT and ESNI
Jisc
 
Introduction DNSSec
Introduction DNSSecIntroduction DNSSec
Introduction DNSSec
AFRINIC
 
DNSSEC Tutorial; USENIX LISA 2013
DNSSEC Tutorial; USENIX LISA 2013DNSSEC Tutorial; USENIX LISA 2013
DNSSEC Tutorial; USENIX LISA 2013
Shumon Huque
 
Rolling the Root KSK
Rolling the Root KSKRolling the Root KSK
Rolling the Root KSK
APNIC
 
2017 DNSSEC KSK Rollover
2017 DNSSEC KSK Rollover2017 DNSSEC KSK Rollover
2017 DNSSEC KSK Rollover
APNIC
 
Debugging Network Issues
Debugging Network IssuesDebugging Network Issues
Debugging Network Issues
Apcera
 
The DNSSEC KSK of the root rolls
The DNSSEC KSK of the root rollsThe DNSSEC KSK of the root rolls
The DNSSEC KSK of the root rolls
Men and Mice
 
Domain Name System (DNS)
Domain Name System (DNS)Domain Name System (DNS)
Domain Name System (DNS)
Venkatesh Jambulingam
 
Dns
DnsDns
Dns
ARYA TM
 
Dnssec tutorial-crypto-defs
Dnssec tutorial-crypto-defsDnssec tutorial-crypto-defs
Dnssec tutorial-crypto-defs
AFRINIC
 
getdns PyCon presentation
getdns PyCon presentationgetdns PyCon presentation
getdns PyCon presentation
Melinda Shore
 
Dns protocol design attacks and security
Dns protocol design attacks and securityDns protocol design attacks and security
Dns protocol design attacks and security
Michael Earls
 
Mens jan piet_dnssec-in-practice
Mens jan piet_dnssec-in-practiceMens jan piet_dnssec-in-practice
Mens jan piet_dnssec-in-practice
kuchinskaya
 
DNSSEC signing Tutorial
DNSSEC signing Tutorial DNSSEC signing Tutorial
DNSSEC signing Tutorial
Men and Mice
 
DNSSEC - WHAT IS IT ? INSTALL AND CONFIGURE IN CHROOT JAIL
DNSSEC - WHAT IS IT ? INSTALL AND CONFIGURE IN CHROOT JAILDNSSEC - WHAT IS IT ? INSTALL AND CONFIGURE IN CHROOT JAIL
DNSSEC - WHAT IS IT ? INSTALL AND CONFIGURE IN CHROOT JAIL
Utah Networxs Consultoria e Treinamento
 
The Zen of High Performance Messaging with NATS (Strange Loop 2016)
The Zen of High Performance Messaging with NATS (Strange Loop 2016)The Zen of High Performance Messaging with NATS (Strange Loop 2016)
The Zen of High Performance Messaging with NATS (Strange Loop 2016)
wallyqs
 
Network Security Best Practice (BCP38 & 140)
Network Security Best Practice (BCP38 & 140) Network Security Best Practice (BCP38 & 140)
Network Security Best Practice (BCP38 & 140)
Bangladesh Network Operators Group
 
Passive DNS Collection -- the 'dnstap' approach, by Paul Vixie [APNIC 38 / AP...
Passive DNS Collection -- the 'dnstap' approach, by Paul Vixie [APNIC 38 / AP...Passive DNS Collection -- the 'dnstap' approach, by Paul Vixie [APNIC 38 / AP...
Passive DNS Collection -- the 'dnstap' approach, by Paul Vixie [APNIC 38 / AP...
APNIC
 
DNS Security
DNS SecurityDNS Security
DNS Security
inbroker
 
Dns
DnsDns

What's hot (20)

DoH, DoT and ESNI
DoH, DoT and ESNIDoH, DoT and ESNI
DoH, DoT and ESNI
 
Introduction DNSSec
Introduction DNSSecIntroduction DNSSec
Introduction DNSSec
 
DNSSEC Tutorial; USENIX LISA 2013
DNSSEC Tutorial; USENIX LISA 2013DNSSEC Tutorial; USENIX LISA 2013
DNSSEC Tutorial; USENIX LISA 2013
 
Rolling the Root KSK
Rolling the Root KSKRolling the Root KSK
Rolling the Root KSK
 
2017 DNSSEC KSK Rollover
2017 DNSSEC KSK Rollover2017 DNSSEC KSK Rollover
2017 DNSSEC KSK Rollover
 
Debugging Network Issues
Debugging Network IssuesDebugging Network Issues
Debugging Network Issues
 
The DNSSEC KSK of the root rolls
The DNSSEC KSK of the root rollsThe DNSSEC KSK of the root rolls
The DNSSEC KSK of the root rolls
 
Domain Name System (DNS)
Domain Name System (DNS)Domain Name System (DNS)
Domain Name System (DNS)
 
Dns
DnsDns
Dns
 
Dnssec tutorial-crypto-defs
Dnssec tutorial-crypto-defsDnssec tutorial-crypto-defs
Dnssec tutorial-crypto-defs
 
getdns PyCon presentation
getdns PyCon presentationgetdns PyCon presentation
getdns PyCon presentation
 
Dns protocol design attacks and security
Dns protocol design attacks and securityDns protocol design attacks and security
Dns protocol design attacks and security
 
Mens jan piet_dnssec-in-practice
Mens jan piet_dnssec-in-practiceMens jan piet_dnssec-in-practice
Mens jan piet_dnssec-in-practice
 
DNSSEC signing Tutorial
DNSSEC signing Tutorial DNSSEC signing Tutorial
DNSSEC signing Tutorial
 
DNSSEC - WHAT IS IT ? INSTALL AND CONFIGURE IN CHROOT JAIL
DNSSEC - WHAT IS IT ? INSTALL AND CONFIGURE IN CHROOT JAILDNSSEC - WHAT IS IT ? INSTALL AND CONFIGURE IN CHROOT JAIL
DNSSEC - WHAT IS IT ? INSTALL AND CONFIGURE IN CHROOT JAIL
 
The Zen of High Performance Messaging with NATS (Strange Loop 2016)
The Zen of High Performance Messaging with NATS (Strange Loop 2016)The Zen of High Performance Messaging with NATS (Strange Loop 2016)
The Zen of High Performance Messaging with NATS (Strange Loop 2016)
 
Network Security Best Practice (BCP38 & 140)
Network Security Best Practice (BCP38 & 140) Network Security Best Practice (BCP38 & 140)
Network Security Best Practice (BCP38 & 140)
 
Passive DNS Collection -- the 'dnstap' approach, by Paul Vixie [APNIC 38 / AP...
Passive DNS Collection -- the 'dnstap' approach, by Paul Vixie [APNIC 38 / AP...Passive DNS Collection -- the 'dnstap' approach, by Paul Vixie [APNIC 38 / AP...
Passive DNS Collection -- the 'dnstap' approach, by Paul Vixie [APNIC 38 / AP...
 
DNS Security
DNS SecurityDNS Security
DNS Security
 
Dns
DnsDns
Dns
 

Viewers also liked

DNSSEC in UA Domain (ENOG2)
DNSSEC in UA Domain (ENOG2)DNSSEC in UA Domain (ENOG2)
DNSSEC in UA Domain (ENOG2)
Dmitry Kohmanyuk
 
Dnssec
DnssecDnssec
Dnssec
guest3131f85
 
Windows 2012 and DNSSEC
Windows 2012 and DNSSECWindows 2012 and DNSSEC
Windows 2012 and DNSSEC
Men and Mice
 
IPv6
IPv6IPv6
EtherChannel
EtherChannelEtherChannel
EtherChannel
Thomas Moegli
 
Services IP
Services IPServices IP
Services IP
Thomas Moegli
 
JunOS - Fondamentaux
JunOS - FondamentauxJunOS - Fondamentaux
JunOS - Fondamentaux
Thomas Moegli
 
Simple Mail Transfer Protocol
Simple Mail Transfer ProtocolSimple Mail Transfer Protocol
Simple Mail Transfer Protocol
Rajan Pandey
 
Cisco ASA
Cisco ASACisco ASA
Cisco ASA
Thomas Moegli
 

Viewers also liked (9)

DNSSEC in UA Domain (ENOG2)
DNSSEC in UA Domain (ENOG2)DNSSEC in UA Domain (ENOG2)
DNSSEC in UA Domain (ENOG2)
 
Dnssec
DnssecDnssec
Dnssec
 
Windows 2012 and DNSSEC
Windows 2012 and DNSSECWindows 2012 and DNSSEC
Windows 2012 and DNSSEC
 
IPv6
IPv6IPv6
IPv6
 
EtherChannel
EtherChannelEtherChannel
EtherChannel
 
Services IP
Services IPServices IP
Services IP
 
JunOS - Fondamentaux
JunOS - FondamentauxJunOS - Fondamentaux
JunOS - Fondamentaux
 
Simple Mail Transfer Protocol
Simple Mail Transfer ProtocolSimple Mail Transfer Protocol
Simple Mail Transfer Protocol
 
Cisco ASA
Cisco ASACisco ASA
Cisco ASA
 

Similar to ION Bangladesh - DANE, DNSSEC, and TLS Testing in the Go6lab

ION Santiago - DNSSEC and DANE Based Security for TLS
ION Santiago - DNSSEC and DANE Based Security for TLSION Santiago - DNSSEC and DANE Based Security for TLS
ION Santiago - DNSSEC and DANE Based Security for TLS
Deploy360 Programme (Internet Society)
 
Training Slides: 302 - Securing Your Cluster With SSL
Training Slides: 302 - Securing Your Cluster With SSLTraining Slides: 302 - Securing Your Cluster With SSL
Training Slides: 302 - Securing Your Cluster With SSL
Continuent
 
An Introduction to DANE - Securing TLS using DNSSEC
An Introduction to DANE - Securing TLS using DNSSECAn Introduction to DANE - Securing TLS using DNSSEC
An Introduction to DANE - Securing TLS using DNSSEC
Carlos Martinez Cagnazzo
 
1086: The SSL Problem and How to Deploy SHA2 Certificates (with Mark Myers)
1086: The SSL Problem and How to Deploy SHA2 Certificates (with Mark Myers)1086: The SSL Problem and How to Deploy SHA2 Certificates (with Mark Myers)
1086: The SSL Problem and How to Deploy SHA2 Certificates (with Mark Myers)
Gabriella Davis
 
Recover A RSA Private key from a TLS session with perfect forward secrecy
Recover A RSA Private key from a TLS session with perfect forward secrecyRecover A RSA Private key from a TLS session with perfect forward secrecy
Recover A RSA Private key from a TLS session with perfect forward secrecy
Priyanka Aash
 
DANE and DNSSEC Authentication Chain Extension for TLS
DANE and DNSSEC Authentication Chain Extension for TLSDANE and DNSSEC Authentication Chain Extension for TLS
DANE and DNSSEC Authentication Chain Extension for TLS
Shumon Huque
 
8 technical-dns-workshop-day4
8 technical-dns-workshop-day48 technical-dns-workshop-day4
8 technical-dns-workshop-day4
DNS Entrepreneurship Center
 
Understanding DNS Security
Understanding DNS SecurityUnderstanding DNS Security
Understanding DNS Security
Nihal Pasham, CISSP
 
ION Cape Town - DANE: The Future of Transport Layer Security (TLS)
ION Cape Town - DANE: The Future of Transport Layer Security (TLS)ION Cape Town - DANE: The Future of Transport Layer Security (TLS)
ION Cape Town - DANE: The Future of Transport Layer Security (TLS)
Deploy360 Programme (Internet Society)
 
SSL Checklist for Pentesters (BSides MCR 2014)
SSL Checklist for Pentesters (BSides MCR 2014)SSL Checklist for Pentesters (BSides MCR 2014)
SSL Checklist for Pentesters (BSides MCR 2014)
Jerome Smith
 
ION Bucharest - Deploying DNSSEC
ION Bucharest - Deploying DNSSECION Bucharest - Deploying DNSSEC
ION Bucharest - Deploying DNSSEC
Deploy360 Programme (Internet Society)
 
TLS/SSL - Study of Secured Communications
TLS/SSL - Study of Secured  CommunicationsTLS/SSL - Study of Secured  Communications
TLS/SSL - Study of Secured Communications
Nitin Ramesh
 
All you need to know about transport layer security
All you need to know about transport layer securityAll you need to know about transport layer security
All you need to know about transport layer security
Maarten Smeets
 
Pulsar Summit Asia - Running a secure pulsar cluster
Pulsar Summit Asia -  Running a secure pulsar clusterPulsar Summit Asia -  Running a secure pulsar cluster
Pulsar Summit Asia - Running a secure pulsar cluster
Shivji Kumar Jha
 
Let's Encrypt + DANE
Let's Encrypt + DANELet's Encrypt + DANE
DANE and Application Uses of DNSSEC
DANE and Application Uses of DNSSECDANE and Application Uses of DNSSEC
DANE and Application Uses of DNSSEC
Shumon Huque
 
Reinventing anon email
Reinventing anon emailReinventing anon email
Reinventing anon email
antitree
 
CNIT 40: 6: DNSSEC and beyond
CNIT 40: 6: DNSSEC and beyondCNIT 40: 6: DNSSEC and beyond
CNIT 40: 6: DNSSEC and beyond
Sam Bowne
 
SSL overview
SSL overviewSSL overview
Webinar SSL English
Webinar SSL EnglishWebinar SSL English
Webinar SSL English
SSL247®
 

Similar to ION Bangladesh - DANE, DNSSEC, and TLS Testing in the Go6lab (20)

ION Santiago - DNSSEC and DANE Based Security for TLS
ION Santiago - DNSSEC and DANE Based Security for TLSION Santiago - DNSSEC and DANE Based Security for TLS
ION Santiago - DNSSEC and DANE Based Security for TLS
 
Training Slides: 302 - Securing Your Cluster With SSL
Training Slides: 302 - Securing Your Cluster With SSLTraining Slides: 302 - Securing Your Cluster With SSL
Training Slides: 302 - Securing Your Cluster With SSL
 
An Introduction to DANE - Securing TLS using DNSSEC
An Introduction to DANE - Securing TLS using DNSSECAn Introduction to DANE - Securing TLS using DNSSEC
An Introduction to DANE - Securing TLS using DNSSEC
 
1086: The SSL Problem and How to Deploy SHA2 Certificates (with Mark Myers)
1086: The SSL Problem and How to Deploy SHA2 Certificates (with Mark Myers)1086: The SSL Problem and How to Deploy SHA2 Certificates (with Mark Myers)
1086: The SSL Problem and How to Deploy SHA2 Certificates (with Mark Myers)
 
Recover A RSA Private key from a TLS session with perfect forward secrecy
Recover A RSA Private key from a TLS session with perfect forward secrecyRecover A RSA Private key from a TLS session with perfect forward secrecy
Recover A RSA Private key from a TLS session with perfect forward secrecy
 
DANE and DNSSEC Authentication Chain Extension for TLS
DANE and DNSSEC Authentication Chain Extension for TLSDANE and DNSSEC Authentication Chain Extension for TLS
DANE and DNSSEC Authentication Chain Extension for TLS
 
8 technical-dns-workshop-day4
8 technical-dns-workshop-day48 technical-dns-workshop-day4
8 technical-dns-workshop-day4
 
Understanding DNS Security
Understanding DNS SecurityUnderstanding DNS Security
Understanding DNS Security
 
ION Cape Town - DANE: The Future of Transport Layer Security (TLS)
ION Cape Town - DANE: The Future of Transport Layer Security (TLS)ION Cape Town - DANE: The Future of Transport Layer Security (TLS)
ION Cape Town - DANE: The Future of Transport Layer Security (TLS)
 
SSL Checklist for Pentesters (BSides MCR 2014)
SSL Checklist for Pentesters (BSides MCR 2014)SSL Checklist for Pentesters (BSides MCR 2014)
SSL Checklist for Pentesters (BSides MCR 2014)
 
ION Bucharest - Deploying DNSSEC
ION Bucharest - Deploying DNSSECION Bucharest - Deploying DNSSEC
ION Bucharest - Deploying DNSSEC
 
TLS/SSL - Study of Secured Communications
TLS/SSL - Study of Secured  CommunicationsTLS/SSL - Study of Secured  Communications
TLS/SSL - Study of Secured Communications
 
All you need to know about transport layer security
All you need to know about transport layer securityAll you need to know about transport layer security
All you need to know about transport layer security
 
Pulsar Summit Asia - Running a secure pulsar cluster
Pulsar Summit Asia -  Running a secure pulsar clusterPulsar Summit Asia -  Running a secure pulsar cluster
Pulsar Summit Asia - Running a secure pulsar cluster
 
Let's Encrypt + DANE
Let's Encrypt + DANELet's Encrypt + DANE
Let's Encrypt + DANE
 
DANE and Application Uses of DNSSEC
DANE and Application Uses of DNSSECDANE and Application Uses of DNSSEC
DANE and Application Uses of DNSSEC
 
Reinventing anon email
Reinventing anon emailReinventing anon email
Reinventing anon email
 
CNIT 40: 6: DNSSEC and beyond
CNIT 40: 6: DNSSEC and beyondCNIT 40: 6: DNSSEC and beyond
CNIT 40: 6: DNSSEC and beyond
 
SSL overview
SSL overviewSSL overview
SSL overview
 
Webinar SSL English
Webinar SSL EnglishWebinar SSL English
Webinar SSL English
 

More from Deploy360 Programme (Internet Society)

ION Belgrade - Jordi Palet Martinez IPv6 Success Stories
ION Belgrade - Jordi Palet Martinez IPv6 Success StoriesION Belgrade - Jordi Palet Martinez IPv6 Success Stories
ION Belgrade - Jordi Palet Martinez IPv6 Success Stories
Deploy360 Programme (Internet Society)
 
ION Belgrade - ISOC Serbia Belgrade Chapter Presentation
ION Belgrade - ISOC Serbia Belgrade Chapter PresentationION Belgrade - ISOC Serbia Belgrade Chapter Presentation
ION Belgrade - ISOC Serbia Belgrade Chapter Presentation
Deploy360 Programme (Internet Society)
 
ION Belgrade - IETF Update
ION Belgrade - IETF UpdateION Belgrade - IETF Update
ION Belgrade - IETF Update
Deploy360 Programme (Internet Society)
 
ION Belgrade - Opening Slides
ION Belgrade - Opening SlidesION Belgrade - Opening Slides
ION Belgrade - Opening Slides
Deploy360 Programme (Internet Society)
 
ION Belgrade - MANRS by Serbian Open eXchange (SOX)
ION Belgrade - MANRS by Serbian Open eXchange (SOX)ION Belgrade - MANRS by Serbian Open eXchange (SOX)
ION Belgrade - MANRS by Serbian Open eXchange (SOX)
Deploy360 Programme (Internet Society)
 
ION Belgrade - Closing Slides
ION Belgrade - Closing SlidesION Belgrade - Closing Slides
ION Belgrade - Closing Slides
Deploy360 Programme (Internet Society)
 
AusNOG - Two Years of Good MANRS
AusNOG - Two Years of Good MANRSAusNOG - Two Years of Good MANRS
AusNOG - Two Years of Good MANRS
Deploy360 Programme (Internet Society)
 
ION Malta - IETF Update
ION Malta - IETF UpdateION Malta - IETF Update
ION Malta - MANRS Introduction
ION Malta - MANRS IntroductionION Malta - MANRS Introduction
ION Malta - MANRS Introduction
Deploy360 Programme (Internet Society)
 
ION Malta - Introduction to DNSSEC
ION Malta - Introduction to DNSSECION Malta - Introduction to DNSSEC
ION Malta - Introduction to DNSSEC
Deploy360 Programme (Internet Society)
 
ION Malta - DANE: The Future of TLS
ION Malta - DANE: The Future of TLSION Malta - DANE: The Future of TLS
ION Malta - DANE: The Future of TLS
Deploy360 Programme (Internet Society)
 
ION Malta - IANA Transition Roles & Accountability
ION Malta - IANA Transition Roles & AccountabilityION Malta - IANA Transition Roles & Accountability
ION Malta - IANA Transition Roles & Accountability
Deploy360 Programme (Internet Society)
 
ION Malta - IPv6 Case Study: Finland
ION Malta - IPv6 Case Study: FinlandION Malta - IPv6 Case Study: Finland
ION Malta - IPv6 Case Study: Finland
Deploy360 Programme (Internet Society)
 
ION Malta - Seeweb Thoughts on IPv6 Transition
ION Malta - Seeweb Thoughts on IPv6 TransitionION Malta - Seeweb Thoughts on IPv6 Transition
ION Malta - Seeweb Thoughts on IPv6 Transition
Deploy360 Programme (Internet Society)
 
ION Malta - Seeweb Why MANRS is good for you
ION Malta - Seeweb Why MANRS is good for youION Malta - Seeweb Why MANRS is good for you
ION Malta - Seeweb Why MANRS is good for you
Deploy360 Programme (Internet Society)
 
ION Malta - Opening Slides
ION Malta - Opening SlidesION Malta - Opening Slides
ION Malta - Opening Slides
Deploy360 Programme (Internet Society)
 
ION Malta - Closing Slides
ION Malta - Closing SlidesION Malta - Closing Slides
ION Malta - Closing Slides
Deploy360 Programme (Internet Society)
 
ION Durban - How peering behaviour affects growth of the internet
ION Durban - How peering behaviour affects growth of the internetION Durban - How peering behaviour affects growth of the internet
ION Durban - How peering behaviour affects growth of the internet
Deploy360 Programme (Internet Society)
 
ION Durban - Introduction to ISOC Gauteng Chapter
ION Durban - Introduction to ISOC Gauteng ChapterION Durban - Introduction to ISOC Gauteng Chapter
ION Durban - Introduction to ISOC Gauteng Chapter
Deploy360 Programme (Internet Society)
 
ION Durban - What's Happening at the IETF?
ION Durban - What's Happening at the IETF?ION Durban - What's Happening at the IETF?
ION Durban - What's Happening at the IETF?
Deploy360 Programme (Internet Society)
 

More from Deploy360 Programme (Internet Society) (20)

ION Belgrade - Jordi Palet Martinez IPv6 Success Stories
ION Belgrade - Jordi Palet Martinez IPv6 Success StoriesION Belgrade - Jordi Palet Martinez IPv6 Success Stories
ION Belgrade - Jordi Palet Martinez IPv6 Success Stories
 
ION Belgrade - ISOC Serbia Belgrade Chapter Presentation
ION Belgrade - ISOC Serbia Belgrade Chapter PresentationION Belgrade - ISOC Serbia Belgrade Chapter Presentation
ION Belgrade - ISOC Serbia Belgrade Chapter Presentation
 
ION Belgrade - IETF Update
ION Belgrade - IETF UpdateION Belgrade - IETF Update
ION Belgrade - IETF Update
 
ION Belgrade - Opening Slides
ION Belgrade - Opening SlidesION Belgrade - Opening Slides
ION Belgrade - Opening Slides
 
ION Belgrade - MANRS by Serbian Open eXchange (SOX)
ION Belgrade - MANRS by Serbian Open eXchange (SOX)ION Belgrade - MANRS by Serbian Open eXchange (SOX)
ION Belgrade - MANRS by Serbian Open eXchange (SOX)
 
ION Belgrade - Closing Slides
ION Belgrade - Closing SlidesION Belgrade - Closing Slides
ION Belgrade - Closing Slides
 
AusNOG - Two Years of Good MANRS
AusNOG - Two Years of Good MANRSAusNOG - Two Years of Good MANRS
AusNOG - Two Years of Good MANRS
 
ION Malta - IETF Update
ION Malta - IETF UpdateION Malta - IETF Update
ION Malta - IETF Update
 
ION Malta - MANRS Introduction
ION Malta - MANRS IntroductionION Malta - MANRS Introduction
ION Malta - MANRS Introduction
 
ION Malta - Introduction to DNSSEC
ION Malta - Introduction to DNSSECION Malta - Introduction to DNSSEC
ION Malta - Introduction to DNSSEC
 
ION Malta - DANE: The Future of TLS
ION Malta - DANE: The Future of TLSION Malta - DANE: The Future of TLS
ION Malta - DANE: The Future of TLS
 
ION Malta - IANA Transition Roles & Accountability
ION Malta - IANA Transition Roles & AccountabilityION Malta - IANA Transition Roles & Accountability
ION Malta - IANA Transition Roles & Accountability
 
ION Malta - IPv6 Case Study: Finland
ION Malta - IPv6 Case Study: FinlandION Malta - IPv6 Case Study: Finland
ION Malta - IPv6 Case Study: Finland
 
ION Malta - Seeweb Thoughts on IPv6 Transition
ION Malta - Seeweb Thoughts on IPv6 TransitionION Malta - Seeweb Thoughts on IPv6 Transition
ION Malta - Seeweb Thoughts on IPv6 Transition
 
ION Malta - Seeweb Why MANRS is good for you
ION Malta - Seeweb Why MANRS is good for youION Malta - Seeweb Why MANRS is good for you
ION Malta - Seeweb Why MANRS is good for you
 
ION Malta - Opening Slides
ION Malta - Opening SlidesION Malta - Opening Slides
ION Malta - Opening Slides
 
ION Malta - Closing Slides
ION Malta - Closing SlidesION Malta - Closing Slides
ION Malta - Closing Slides
 
ION Durban - How peering behaviour affects growth of the internet
ION Durban - How peering behaviour affects growth of the internetION Durban - How peering behaviour affects growth of the internet
ION Durban - How peering behaviour affects growth of the internet
 
ION Durban - Introduction to ISOC Gauteng Chapter
ION Durban - Introduction to ISOC Gauteng ChapterION Durban - Introduction to ISOC Gauteng Chapter
ION Durban - Introduction to ISOC Gauteng Chapter
 
ION Durban - What's Happening at the IETF?
ION Durban - What's Happening at the IETF?ION Durban - What's Happening at the IETF?
ION Durban - What's Happening at the IETF?
 

Recently uploaded

AppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSFAppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSF
Ajin Abraham
 
Christine's Product Research Presentation.pptx
Christine's Product Research Presentation.pptxChristine's Product Research Presentation.pptx
Christine's Product Research Presentation.pptx
christinelarrosa
 
Essentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation ParametersEssentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation Parameters
Safe Software
 
Y-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PPY-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PP
c5vrf27qcz
 
Demystifying Knowledge Management through Storytelling
Demystifying Knowledge Management through StorytellingDemystifying Knowledge Management through Storytelling
Demystifying Knowledge Management through Storytelling
Enterprise Knowledge
 
Apps Break Data
Apps Break DataApps Break Data
Apps Break Data
Ivo Velitchkov
 
MySQL InnoDB Storage Engine: Deep Dive - Mydbops
MySQL InnoDB Storage Engine: Deep Dive - MydbopsMySQL InnoDB Storage Engine: Deep Dive - Mydbops
MySQL InnoDB Storage Engine: Deep Dive - Mydbops
Mydbops
 
From Natural Language to Structured Solr Queries using LLMs
From Natural Language to Structured Solr Queries using LLMsFrom Natural Language to Structured Solr Queries using LLMs
From Natural Language to Structured Solr Queries using LLMs
Sease
 
ScyllaDB Tablets: Rethinking Replication
ScyllaDB Tablets: Rethinking ReplicationScyllaDB Tablets: Rethinking Replication
ScyllaDB Tablets: Rethinking Replication
ScyllaDB
 
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance PanelsNorthern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving
 
Introducing BoxLang : A new JVM language for productivity and modularity!
Introducing BoxLang : A new JVM language for productivity and modularity!Introducing BoxLang : A new JVM language for productivity and modularity!
Introducing BoxLang : A new JVM language for productivity and modularity!
Ortus Solutions, Corp
 
Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
AstuteBusiness
 
PRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
PRODUCT LISTING OPTIMIZATION PRESENTATION.pptxPRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
PRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
christinelarrosa
 
"Scaling RAG Applications to serve millions of users", Kevin Goedecke
"Scaling RAG Applications to serve millions of users",  Kevin Goedecke"Scaling RAG Applications to serve millions of users",  Kevin Goedecke
"Scaling RAG Applications to serve millions of users", Kevin Goedecke
Fwdays
 
"NATO Hackathon Winner: AI-Powered Drug Search", Taras Kloba
"NATO Hackathon Winner: AI-Powered Drug Search",  Taras Kloba"NATO Hackathon Winner: AI-Powered Drug Search",  Taras Kloba
"NATO Hackathon Winner: AI-Powered Drug Search", Taras Kloba
Fwdays
 
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving
 
Mutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented ChatbotsMutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented Chatbots
Pablo Gómez Abajo
 
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
Fwdays
 
Poznań ACE event - 19.06.2024 Team 24 Wrapup slidedeck
Poznań ACE event - 19.06.2024 Team 24 Wrapup slidedeckPoznań ACE event - 19.06.2024 Team 24 Wrapup slidedeck
Poznań ACE event - 19.06.2024 Team 24 Wrapup slidedeck
FilipTomaszewski5
 
Session 1 - Intro to Robotic Process Automation.pdf
Session 1 - Intro to Robotic Process Automation.pdfSession 1 - Intro to Robotic Process Automation.pdf
Session 1 - Intro to Robotic Process Automation.pdf
UiPathCommunity
 

Recently uploaded (20)

AppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSFAppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSF
 
Christine's Product Research Presentation.pptx
Christine's Product Research Presentation.pptxChristine's Product Research Presentation.pptx
Christine's Product Research Presentation.pptx
 
Essentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation ParametersEssentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation Parameters
 
Y-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PPY-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PP
 
Demystifying Knowledge Management through Storytelling
Demystifying Knowledge Management through StorytellingDemystifying Knowledge Management through Storytelling
Demystifying Knowledge Management through Storytelling
 
Apps Break Data
Apps Break DataApps Break Data
Apps Break Data
 
MySQL InnoDB Storage Engine: Deep Dive - Mydbops
MySQL InnoDB Storage Engine: Deep Dive - MydbopsMySQL InnoDB Storage Engine: Deep Dive - Mydbops
MySQL InnoDB Storage Engine: Deep Dive - Mydbops
 
From Natural Language to Structured Solr Queries using LLMs
From Natural Language to Structured Solr Queries using LLMsFrom Natural Language to Structured Solr Queries using LLMs
From Natural Language to Structured Solr Queries using LLMs
 
ScyllaDB Tablets: Rethinking Replication
ScyllaDB Tablets: Rethinking ReplicationScyllaDB Tablets: Rethinking Replication
ScyllaDB Tablets: Rethinking Replication
 
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance PanelsNorthern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
 
Introducing BoxLang : A new JVM language for productivity and modularity!
Introducing BoxLang : A new JVM language for productivity and modularity!Introducing BoxLang : A new JVM language for productivity and modularity!
Introducing BoxLang : A new JVM language for productivity and modularity!
 
Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
 
PRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
PRODUCT LISTING OPTIMIZATION PRESENTATION.pptxPRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
PRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
 
"Scaling RAG Applications to serve millions of users", Kevin Goedecke
"Scaling RAG Applications to serve millions of users",  Kevin Goedecke"Scaling RAG Applications to serve millions of users",  Kevin Goedecke
"Scaling RAG Applications to serve millions of users", Kevin Goedecke
 
"NATO Hackathon Winner: AI-Powered Drug Search", Taras Kloba
"NATO Hackathon Winner: AI-Powered Drug Search",  Taras Kloba"NATO Hackathon Winner: AI-Powered Drug Search",  Taras Kloba
"NATO Hackathon Winner: AI-Powered Drug Search", Taras Kloba
 
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024
 
Mutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented ChatbotsMutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented Chatbots
 
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
 
Poznań ACE event - 19.06.2024 Team 24 Wrapup slidedeck
Poznań ACE event - 19.06.2024 Team 24 Wrapup slidedeckPoznań ACE event - 19.06.2024 Team 24 Wrapup slidedeck
Poznań ACE event - 19.06.2024 Team 24 Wrapup slidedeck
 
Session 1 - Intro to Robotic Process Automation.pdf
Session 1 - Intro to Robotic Process Automation.pdfSession 1 - Intro to Robotic Process Automation.pdf
Session 1 - Intro to Robotic Process Automation.pdf
 

ION Bangladesh - DANE, DNSSEC, and TLS Testing in the Go6lab

  • 1. DANE/DNSSEC/TLS Testing in the Go6lab Jan Žorž, ISOC/Go6 Institute, Slovenia jan@go6.si zorz@isoc.org
  • 2. Acknowledgement I would like to thank Internet Society to let me spend some of my ISOC working time in go6lab and test all this new and exciting protocols and mechanisms that makes Internet a bit better and more secure place…
  • 3. DNSSEC implementation in go6lab • Powerdns server (used as primary for non- signed domains) as “hidden” primary DNS server • OpenDNSSEC platform for signing domains • BIND9 DNS servers as secondaries to OpenDNSSEC to serve signed zones • Virtualization used: PROXMOX 3.4 • OS templates: fedora-20, Centos6/7
  • 4. DNSSEC implementation in go6lab • “Bump in a wire” • Two public “primary” servers • Concept:
  • 5. DNSSEC in go6lab • That was fairly easy and it works very well. • Implementation document used from Matthijs Mekking: http://go6.si/docs/opendnssec-start-guide-draft.pdf
  • 6. DANE experiment • When DNSSEC was set up and functioning we started to experiment with DANE (DNS Authenticated Name Entities). • Requirements: – DNSSEC signed domains – Postfix server with TLS support > 2.11 • We decided on Postfix 3.0.1
  • 7. DANE • TLSA record for mx.go6lab.si _25._tcp.mx.go6lab.si. IN TLSA 3 0 1 B4B7A46F9F0DFEA0151C2E07A5AD7908F4C8B0050E7CC 25908DA05E2 A84748ED It’s basically a hash of TLS certificate on mx.go6lab.si More about DANE: http://www.internetsociety.org/deploy360/resources/da ne/
  • 8. What is DANE and how does it work
  • 9.
  • 10.
  • 11. DANE verification • Mx.go6lab.si was able to verify TLS cert to T-2 mail server and nlnet-labs and some others… mx postfix/smtp[31332]: Verified TLS connection established to smtp-good-in-2.t-2.si[2a01:260:1:4::24]:25: TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits) dicht postfix/smtp[29540]: Verified TLS connection established to mx.go6lab.si[2001:67c:27e4::23]:25: TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)
  • 12. Postfix config smtpd_use_tls = yes smtpd_tls_security_level = may smtpd_tls_key_file = /etc/postfix/ssl/server.pem smtpd_tls_cert_file = /etc/postfix/ssl/server.pem smtpd_tls_auth_only = no smtpd_tls_loglevel = 1 smtpd_tls_received_header = yes smtpd_tls_session_cache_timeout = 3600s smtp_tls_security_level = dane smtp_use_tls = yes smtp_tls_note_starttls_offer = yes smtp_tls_loglevel = 1 tls_random_exchange_name = /var/run/prng_exch tls_random_source = dev:/dev/urandom tls_smtp_use_tls = yes
  • 13. Malformed TLSA record • We created a TLSA record with a bad hash (one character changed) • Postfix failed to verify it and refused to send a message mx postfix/smtp[1765]: Untrusted TLS connection established to mail-bad.go6lab.si[2001:67c:27e4::beee]:25: TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits) mx postfix/smtp[1765]: 3A4BE8EE5C: Server certificate not trusted
  • 14. 1M top Alexa domains and DANE • We fetched top 1 million Alexa domains and created a script that sent an email to each of them ( test-dnssec-dane@[domain] ) • After some tweaking of the script we got some good results • Then we built a script that parsed mail log file and here are the results:
  • 15. Results • Out of 1 million domains, 992,232 of them had MX record and mail server. • Nearly 70% (687,897) of all attempted SMTP sessions to Alexa top 1 million domains MX records were encrypted with TLS • Majority of TLS connections (60%) were established with trusted certificate • 1,382 connections where remote mail server announced TLS capability failed with "Cannot start TLS: handshake failure"
  • 16. More results TLS established connections ratios are: Anonymous: 109.753 Untrusted: 167.063 Trusted: 410.953 Verified: 128 Quick guide: Anonymous (opportunistic TLS with no signature), Untrusted (peer certificate not signed by trusted CA), Trusted (peer certificate signed by trusted CA) and Verified (verified with TLSA by DANE).
  • 18. Mail distribution Mail Servers # Domains Handled TLS State google.com 125,422 Trusted secureserver.net 35,759 Some Trusted, some no TLS at all qq.com 11,254 No TLS Yandex.ru 9,268 Trusted Ovh.net 8.531 Most Trusted, with redirect servers having no TLS at all
  • 19. Mail distribution Mail Servers # Domains Handled TLS State Emailsrvr.com 8,262 Trusted Zohomail.com 2.981 Trusted Lolipop.jp 1.685 No TLS Kundenserver.de 2,834 Trusted Gandi.net 2,200 Anonymous
  • 20. DNSSEC? DANE? None of these “big” mail servers (and their domains) are DNSSEC signed (that meant no DANE for them possible up to January 2016).
  • 21. • Of course, with wrong certificate hash in TLSA record (refuses to send mail) • If domain where MX record resides is not DNSSEC signed (can’t trust the data in MX, so no verification) • If TLSA record published in non-DNSSEC zone (can’t trust the data in TLSA, so no verification) When do DANE things fail?
  • 22. • go6lab.si zone is signed, so is mx.go6lab.si • there is TLSA for mx.go6lab.si, also signed • Domain signed.si is signed and MX points to mx.go6lab.si • Domain not-signed.si is not signed and MX points to mx.go6lab.si • We send email to jan@signed.si and jan@not- signed.si (signed.si and not-signed.si are used just as examples) When do things fail? (example)
  • 23. When I send email to jan@signed.si (signed domain): Verified TLS connection established to mx.go6lab.si[2001:67c:27e4::23]:25: When I send email to jan@not-signed.si (not signed domain): Anonymous TLS connection established to mx.go6lab.si[2001:67c:27e4::23]:25: When do things fail? (example)
  • 24. • Let’s try to point MX record from signed domain to A/AAAA record in not-signed domain with TLSA that is also not signed (obviously) – mail.not-signed.si Send mail to jan@signed.si when MX for signed.si points to mail.not-signed.si – DANE verification is not even started as chain of trust is broken When do DANE verification also fail?
  • 25. postfix-3.1-20160103/HISTORY: 20160103 Feature: enable DANE policies when an MX host has a secure TLSA DNS record, even if the MX DNS record was obtained with insecure lookups. The existence of a secure TLSA record implies that the host wants to talk TLS and not plaintext. This behavior is controlled with smtp_tls_dane_insecure_mx_policy (default: "dane", other settings: "encrypt" and "may"; the latter is backwards-compatible with earlier Postfix releases). Viktor Dukhovni. Postfix latest improvements 
  • 26. Let’s Encrypt, DANE and mail • Let’s Encrypt recommends using ‘2 1 1’ and ‘3 1 1’ records • Validity of LE cert is 90 days • By default the underlying key is changed when renewing • …so also cert hash is changed • So, lots of work if you plan to publish 3 1 1 TLSA • Using the ‘2 1 1’ method leads to another issue – namely lack of an DST Root CA X3 certificate in the fullchain.pem file provided by the Let’s Encrypt client • So we need to fetch the DST Root CA X3 certificate and add it to fullchain.pem file and verify that it did not change from previous time we renewed…
  • 27. Script to add DST Root CA X3 lynx --source https://www.identrust.com/certificates/trustid/ root-download-x3.html | grep -v "/textarea" | awk '/textarea/{x=NR+18;next}(NR<=x){print}' | sed -e '1i-----BEGIN CERTIFICATE-----' | sed -e '$a-----END CERTIFICATE-----' >> /etc/letsencrypt/live/mx.go6lab.si/fullchain.pem
  • 28. Valid 3 1 1 and 2 1 1 TLSA records
  • 29. But… • At next certificate renewal, by default the underlying key will change and 3 1 1 TLSA record will become invalid… • Labor-wise, we need to keep the underlying key through the renewals • --csr option in letsencrypt-auto client • In directory “examples” there is “generate- csr.sh” file
  • 30. Stable underlying key… ./generate-csr.sh mx.go6lab.si Generating a 2048 bit RSA private key ................+++ ..+++ writing new private key to 'key.pem' ----- You can now run: letsencrypt auth --csr csr.der
  • 31. Renewals and hashes… • Now we are using the same underlying key for automatic renewals of certificate, so hash does not change and 3 1 1 TLSA record works. • We’ll rotate the underlying key when we decide to, and being driven by human intervention (and also change the TLSA). • ./letsencrypt-auto certonly -t --debug --renew -a standalone --csr ./mx.go6lab.si.der –keep • Of course, we add DST Root CA X3 certificate to fullchain.pem
  • 32.
  • 34. Conclusions • 70% of email can be encrypted in some way, you just need to enable TLS on your server • Low number of DNSSEC signed domains/servers • Even lower number of DANE/TLSA verified servers/connections • It’s easy, go and do it – it’s not the end of the world and it helps with verifying who are you sending emails to – and vice versa ;)
  • 35. Conclusions II. • DANE verification failed (or was aborted) if DNSSEC chain of trust is not fully established and complete along the whole way. • TLSA in not-signed DNS zones would not help you much preventing your correspondents sending emails to server-in-the-middle (if you are not running latest bleeding edge development version of Postfix) • DNSSEC/DANE is easy, but please understand what are you doing before implementing it in production…