blob: b1b6c55e7a23991da65edd495095364ad4f63516 [file] [log] [blame]
Here is a nice list of things to do to improve tlsdate:
1) hack the client handshake to not leak the clock to the server
set it to all zeros or something cute or something random
3) add HTTP GET request to avoid network fingerprinting
6) skew the clock rather than slamming it
7) drop privs earlier
11) verification of remote certificate for Tor nodes
13) account for servers that do not send UTC (Microsoft sends local time)
14) port to nss, gnutls, yassl, polarssl and other libraries
15) starttls support (smtp, pop, imap, ftp, xmpp)
16) ensure that 32bit time isn't near wrapping time on 32bit systems
17) find others to audit it - we need more eyes!
20) Add verification of remote servers by DANE/CAA DNSSEC protected records
21) Integrate Chrome's CRL list into tlsdate
22) Block revoked or bad certs such as MD5 inc. and others.
24) Add OCSP check option
25) Block weak signature algorithms
26) Hard code block list of known horrible certs (extract from Chrome/FF)
28) Check that extended key usage is empty, or includes TLS Server Auth
29) extract the SubjectPublicKeyInfo from the certificates; match against
public keys
31) Fetch HTTP over TLS to parse date field and confirm sync with the tls date
32) Integrate tack support https://github.com/tack/tackc
33) Implement checking of RFC 2818 style wildcards:
http://wiki.cacert.org/WildcardCertificates
34) Clear the environment for tlsdated and related utils before execve()
35) seatbelt profile for Mac OS X
36) SELinux policy for GNU/Linux platforms
37) Port to some Windows operating system that anyone actually uses
38) Add seccomp suport
39) Add file loading of CA list
40) Add tlsdated support for machines without a RTC
Explicitly support Raspberry pi use case
41) Port to Mac OS X 10.8.2
This work has started in a private branch
42) Unit-test everything
45) Drop root from tlsdated
46) Support multiple fetch hosts
Patches welcome!