1 2 Here is a nice list of things to do to improve tlsdate: 3 4 5 1) hack the client handshake to not leak the clock to the server 6 set it to all zeros or something cute or something random 7 8 3) add HTTP GET request to avoid network fingerprinting 9 6) skew the clock rather than slamming it 10 11) verification of remote certificate for Tor nodes 11 13) account for servers that do not send UTC (Microsoft sends local time) 12 14) port to bssl, nss, gnutls, yassl, and other libraries 13 15) starttls support (smtp, pop, imap, ftp, xmpp) 14 16) ensure that 32bit time isn't near wrapping time on 32bit systems 15 17) find others to audit it - we need more eyes! 16 20) Add verification of remote servers by DANE/CAA DNSSEC protected records 17 21) Integrate Chrome's CRL list into tlsdate 18 22) Block revoked or bad certs such as MD5 inc. and others. 19 24) Add OCSP check option 20 25) Block weak signature algorithms 21 26) Hard code block list of known horrible certs (extract from Chrome/FF) 22 28) Check that extended key usage is empty, or includes TLS Server Auth 23 29) extract the SubjectPublicKeyInfo from the certificates; match against 24 public keys 25 31) Confirm HTTP and TLS date is within a sane range 26 32) Integrate tack support https://github.com/tack/tackc 27 33) Implement checking of RFC 2818 style wildcards: 28 http://wiki.cacert.org/WildcardCertificates 29 35) seatbelt profile for Mac OS X 30 36) SELinux policy for GNU/Linux platforms 31 37) Port to some Windows operating system that anyone actually uses 32 42) Unit-test everything 33 47) Review cert validation and compare it with Chrome: 34 https://code.google.com/p/chromium/codesearch#chrome/src/net/base/x509_certificate.cc&l=500 35 48) Complain when server uses very weak DH group parameters 36 example weak server: https://demo.cmrg.net/ 37 49) Add seccomp tlsdate and tlsdate-helper 38 50) Add AppArmor fixes for Tails 39 52) Port tlsdated to FreeBSD and other non GNU/Linux systems 40 41 Patches welcome! 42 43