Jacob Appelbaum | 30118bb | 2012-01-29 22:58:34 -0800 | [diff] [blame] | 1 | |
| 2 | Here is a nice list of things to do to improve tlsdate: |
| 3 | |
Jacob Appelbaum | 30118bb | 2012-01-29 22:58:34 -0800 | [diff] [blame] | 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 | |
Jacob Appelbaum | 051dd5c | 2012-01-30 03:10:22 -0800 | [diff] [blame] | 8 | 3) add HTTP GET request to avoid network fingerprinting |
Jacob Appelbaum | 30118bb | 2012-01-29 22:58:34 -0800 | [diff] [blame] | 9 | 6) skew the clock rather than slamming it |
| 10 | 7) drop privs earlier |
Jacob Appelbaum | f693292 | 2012-01-30 00:28:57 -0800 | [diff] [blame] | 11 | 11) verification of remote certificate for Tor nodes |
Jacob Appelbaum | b3990fb | 2012-01-31 17:24:43 -0800 | [diff] [blame] | 12 | 13) account for servers that do not send UTC (Microsoft sends local time) |
Jacob Appelbaum | bfc1813 | 2012-11-05 17:35:44 -0500 | [diff] [blame] | 13 | 14) port to nss, gnutls, yassl, polarssl and other libraries |
Jacob Appelbaum | c27a8e6 | 2012-02-02 00:06:48 +0100 | [diff] [blame] | 14 | 15) starttls support (smtp, pop, imap, ftp, xmpp) |
Jacob Appelbaum | 43b2885 | 2012-02-07 09:42:53 +0100 | [diff] [blame] | 15 | 16) ensure that 32bit time isn't near wrapping time on 32bit systems |
Jacob Appelbaum | 30fed8f | 2012-02-07 10:10:04 +0100 | [diff] [blame] | 16 | 17) find others to audit it - we need more eyes! |
Jacob Appelbaum | 278801c | 2012-07-15 23:16:35 -0400 | [diff] [blame] | 17 | 20) Add verification of remote servers by DANE/CAA DNSSEC protected records |
Jacob Appelbaum | bc33d2a | 2012-07-17 10:11:03 -0700 | [diff] [blame] | 18 | 21) Integrate Chrome's CRL list into tlsdate |
| 19 | 22) Block revoked or bad certs such as MD5 inc. and others. |
Jacob Appelbaum | a9e9833 | 2012-07-17 10:47:18 -0700 | [diff] [blame] | 20 | 24) Add OCSP check option |
| 21 | 25) Block weak signature algorithms |
| 22 | 26) Hard code block list of known horrible certs (extract from Chrome/FF) |
Jacob Appelbaum | 7a072e6 | 2012-07-17 15:15:26 -0700 | [diff] [blame] | 23 | 28) Check that extended key usage is empty, or includes TLS Server Auth |
| 24 | 29) extract the SubjectPublicKeyInfo from the certificates; match against |
| 25 | public keys |
Jacob Appelbaum | 9a61fcb | 2012-07-30 03:04:57 -0700 | [diff] [blame] | 26 | 31) Fetch HTTP over TLS to parse date field and confirm sync with the tls date |
Jacob Appelbaum | 5024a21 | 2012-08-02 16:41:09 -0700 | [diff] [blame] | 27 | 32) Integrate tack support https://github.com/tack/tackc |
Jacob Appelbaum | ee69d3f | 2012-08-03 00:41:43 -0700 | [diff] [blame] | 28 | 33) Implement checking of RFC 2818 style wildcards: |
| 29 | http://wiki.cacert.org/WildcardCertificates |
Jacob Appelbaum | bba6c92 | 2012-10-31 14:56:00 +0000 | [diff] [blame] | 30 | 34) Clear the environment for tlsdated and related utils before execve() |
Jacob Appelbaum | 716bb61 | 2012-11-05 17:27:48 -0500 | [diff] [blame] | 31 | 35) seatbelt profile for Mac OS X |
| 32 | 36) SELinux policy for GNU/Linux platforms |
| 33 | 37) Port to some Windows operating system that anyone actually uses |
| 34 | 38) Add seccomp suport |
Jacob Appelbaum | 7e9d0eb | 2013-01-06 14:01:52 -0800 | [diff] [blame] | 35 | 39) Add file loading of CA list |
| 36 | 40) Add tlsdated support for machines without a RTC |
| 37 | Explicitly support Raspberry pi use case |
| 38 | 41) Port to Mac OS X 10.8.2 |
| 39 | This work has started in a private branch |
Elly Fong-Jones | a5e7fbb | 2013-01-08 14:08:33 -0500 | [diff] [blame] | 40 | 42) Unit-test everything |
elly | 8c6b0b8 | 2013-01-10 18:23:07 -0500 | [diff] [blame] | 41 | 45) Drop root from tlsdated |
| 42 | 46) Support multiple fetch hosts |
Jacob Appelbaum | e95b090 | 2012-07-31 03:29:01 -0700 | [diff] [blame] | 43 | |
Jacob Appelbaum | 30118bb | 2012-01-29 22:58:34 -0800 | [diff] [blame] | 44 | Patches welcome! |
Jacob Appelbaum | bba6c92 | 2012-10-31 14:56:00 +0000 | [diff] [blame] | 45 | |