Suggestion: Add SSL/TLS versions supported by MS IIS
[ach-master.git] / TODO.md
1 Bug Fixes
2 =========
3 Reported by: @Wims80 http://twitter.com/wims80/status/425770704693239808
4 Section Apache 2.1.1 recommends Rewrite instead of Redirect. Should be 301! (We correctly recommend 301 in the nginx section.)
5
6
7 2014-02-11 19:41
8 OpenVPN cipher string doesn't work with 2.3.2 according to: @bong0.
9 tlc-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-AES-256-CBC-SHA256:TLS-DHE-RSA-WITH-AES-128-GCM-SHA256:TLS-DHE-RSA-WITH-AES-128-CBC-SHA256:TLS-DHE-RSA-WITH-CAMELLIA-256-CBC-SHA:TLS-DHE-RSA-WITH-AES-256-CBC-SHA:TLS-DHE-RSA-WITH-CAMELLIA-128-CBC-SHA:TLS-DHE-RSA-WITH-AES-128-CBC-SHA:TLS-RSA-WITH-CAMELLIA-256-CBC-SHA:TLS-RSA-WITH-AES-256-CBC-SHA:TLS-RSA-WITH-CAMELLIA-128-CBC-SHA:TLS-RSA-WITH-AES-128-CBC-SHA
10 http://twitter.com/bong0/status/433306823001526272
11 http://twitter.com/bong0/status/433307537375387648
12 http://nopaste.info/d194fdaa78.html
13 guid string produces deprecated warning, no errors.
14 user's OpenVPN linked against OpenSSL 1.0.0. on Wheezy backport.
15 http://packages.debian.org/wheezy-backports/openvpn
16
17
18 2014-02-27 22:59
19 I think we should add the supported SSL / TLS versions from Microsoft IIS.
20 http://twitter.com/gegch/status/439156512599322625
21
22
23
24
25
26
27 BIG TOPICS
28 ==========
29
30
31 * be consistent: 2048 RSA < 128 bit symmetric cipher strength. We should aim at 128+ bits symmetric strength. --> fix RSA 2048 in the document. Upgrade to 3072
32
33 * clean up 9.5 "chossing your own cipher"
34
35 * DDOS possibilities when we increase cyrpto security?? What about that? (--> LATER)
36
37 * write a Justification section to every setting, maybe have that later in the document. 
38
39 * more focus on these sections:
40   - GPG
41   - SSH : do we need a client subsection? 
42
43 DONE * move the explanations to a later part of the document. Code snippets go *first* . The target group is sysadmins, must be easily copy & paste-able. Or find a different way so that they can easily use/read the document
44
45 DONE * Decide/Discuss recommended ciphers:
46   - DH parameters: what is our recommendation? >2048? >=2048? leave default (aka 1024)?
47   --> answer: we trust IETF/IKE  as described in ECRYPT2
48
49 * comments from IAIK integrate (--> Aaron, check again if it was done)
50 DONE * SHA-1 section: write why it is a problem (--> Florian Mendel)
51 * PKI section (--> Thomas Schreck)
52 DONE * include OpenSSL names/IANA names into appendix (--> cm)
53 * Document RNG problem in Apache (--> Pepi)
54 DONE * Oracle ?? (--> Berg?? maybe . Or aaron: ask nic.at. Or link to T-Systems paper) --> T-Systems paper
55 DONE * DB2 (--> Berg. Or ask MLeyrer)
56 * Add AES128 to cipherStringA ?
57 * re-work chapter 2 (practical settings). Add lots of references to chapter 3 to get people interested in reading the theory.
58 * Document : add license
59
60 * compare gv.at Richtlinien with our recommendations.
61
62 Website
63 =======
64 People with outdated browsers (winXP) etc can't see our webpage. --> make a landing page explaining 
65 how to updated the browser :)
66
67 Improve the wording on the cert.at Mailing list website so people don't get confused and know that they ended up on the correct site and list.
68
69 LANGUAGES
70 =========
71 * translate to french and other european languages
72
73 Formatting
74 ==========
75
76 * check all http:// URLs that we reference - check if they are also reachable via httpS:// and if so, change our reference
77 * make style guide
78 DONE * one-column layout: make page margins smaller
79 DONE * add large "DRAFT" letters on top of every page.
80 DONE  make the git version number part of the document
81 DONE * Layout of sample code (lstisting format) : make it pretty!
82 Rendering in Firefox (inline) on Windows seems to be really messed up. What happenened?
83
84 * make every section like the Apache section (--> Aaron)
85
86 * make a HTML Version of the document. It is much easier to copy & paste from than from PDFs.
87 * Add Timestamp and git shorthash, not only date, to the title page of the document. Easier to check if you version of the document is current!
88
89 * \usepackage[utf8]{inputencoding} and all the other \usepackage things in applied-crypto-hardening.tex should be reviewed and we should take a look if it should't all be in common/\*.tex
90
91 * check epigraph: why is the "---" gone? Is it gone?
92
93
94 Formats to export
95 =================
96 Requested by many people on Twitter
97     * Plain TXT version for use on headless servers
98     * HTML version for better reading in browsers and always up-to-date
99     * EPUB version for comfortable reading on tablets and ebook readers
100
101
102 Workflow
103 ========
104
105 * how to keep things up to date?
106 * how to automatically test  compatibility?
107 * how to make sure that this document has the latest information on cipher strengths?
108 * !! GPG sign every PDF !!
109 * store the keys in DNS: see RFC 4398
110
111
112 Contents
113 ========
114
115 * disclaimer.tex:
116   add "we don't deal with ICS devices. Nonono"
117  
118 * CipherStringB: 
119   src/commons/cipherstringb.tex --> remove the "!SRP"
120
121 * Mailserver.tex:
122   Add "Dovecot" in front of 2.0.19apple1 
123   Postfix section: smtpd_tls_loglevel = 1 instead of = 0
124
125 * DBs:
126   Postgresql: put in \%*\cipherstringB*) in the config!
127   Mysql: put in \%*\cipherstringB*) in the config!
128   Oracle: mark this as "we do not test this here, since we only reference other papers for Oracle so far"
129   DB2: mark this as "we do not test this here, since we only reference other papers for Oracle so far"
130   sed -i /IMB Db2/IBM DB2/g
131
132 * theory/PKI.tex line 120: "a previously created certificate" --> "a previously created key"!
133
134
135 * Webservers:
136   Header Strict-Transport-Security "... includeSubDomains": we need to meed to mention that this can be a big pitfall.
137   Also do some more research on this!
138   For example: https://tools.ietf.org/html/draft-ietf-websec-strict-transport-sec#section-6.1
139   fix lighttpd HTTP redirection and env vars
140   lighthttpd: ssl.ec-curve = "secp384"
141     ssl.dh-file = "/etc/lighttpd/dhparams-group16.pem"
142         ssl.ec-curve = "secp384r1"
143
144 * GPG.tex:
145   keep it "Howto" not "How-to"
146
147 * IM:
148   fix the subsubsection{XMPP/ Jabber} part. There seems to be a mix up here ? Maybe? --> check again
149
150 * SSH:
151   openssh - remark that ServerKeyBits  might still be useful. Add a note that sometimes old keys are very very old and 1024 bits. 
152
153 * Tools: 
154   mention that sslscan (the tool) does not understand all cipherstrings! For example SHA2-\* is missing
155   --> recommend something better
156
157   - tools -> section SSL \& TLS: "lever your https" --> that's not a sentence. Fix it
158   - make this more uniform: the \url in the itemized list should always be either always at the beginnig or always at the end. 
159
160 * theory/DH.tex
161   check the formatting of \cite[chapter16]{ii2011ecrypt}
162   same section: group 19-21 (256--521 bit ECC )... we need to mention it! We can not ignore it!
163
164 * cipher\_suites/architecture.tex:
165    IANA nomencalture part: make a reference to the appendix here
166
167 * .gitignore: add title.log
168
169
170 * epigraph balance between freedom and security is a delicate one --> remove this epigraph. It's not so fitting.
171
172
173 * re-write PKI section: make it *much* shorter. Reference: https://www.cs.auckland.ac.nz/~pgut001/pubs/pkitutorial.pdf and 
174   https://en.wikipedia.org/wiki/X.509#Problems_with_certificate_authorities.
175
176 * scan our local region of the internet for https/smtp/imaps/pop3s
177
178 * Common Pitfalls: 
179   - key generation
180   - key management , key life cycle
181   - cloning of VMs
182   - common / default passphrases
183 * DH parameter?
184 * Further research
185  - mysql, SMB, 
186 * Wish List for software vendors?
187 * sweet spot, wo koennen wir was sinnvoll machen, was waere zu viel (8192 bit keys...)
188
189
190 1. document the abstract needs that we have for the cipher settings (HSTS etc)
191    Then find the best cipher setting strings per se
192    Only then put it to all servers and keep it rather uniformely (as much as possible)
193
194 2. Test all settings 
195
196 * Test especially with non-Debian-OS!
197
198 * Test with more clients and other OSes than OSX / iPhone!!
199 --> clients? 
200   - thunderbird
201   - Apple Mail?
202   - Outlook *
203   - Playstation und XBox? --> LATER!
204   - Lotus Notes
205   - Blackberry\*
206   - Windows Phone 7 ???
207   How to Test?
208   - chapter owner makes a test setup
209   - tested by: XXX , on: $date. Screenshot of SSLlabs/ $testtool. (checktls.com)
210
211 * document (cite) EVERYTHING! Why we chose certain values. References, references, references. Otherwise it does not count!
212   Srsly!!
213 DONE * .bib file is completely wrong. Make good citations/references. Add books: Schneier, ...
214 * !! important: add the version string to everything that we tested!!
215
216 * two target groups:
217   - security specialists / freaks who want the very best settings
218   - should as many clients work with the settings as possible
219 * look at TLS1.2 specs and really check if we want all of these settings
220
221
222 Practical settings section
223 ----------
224 Definitely still missing these subsubsections:
225 * Exchange Server ??  (--> bei M$ angefragt, Evtl. Beitrag von A-Trust)
226   - SMTP, POP, IMAP
227 DONE * Exim4 (-> Adi & Wolfgang Breya)
228 DONE * Checkpoint (-> cm)
229 * Asa / Palo Alto (-> Azet)
230 * Terminal Server (VNC ), ??
231 DONE * Squid
232 DONE * XMPP
233   --> verweise auf die xmpp community bzw. auf xmpp.net verweisen.
234   Empfehlung: unbedingt ejabberd updaten!!  
235
236
237 ----- snip ---- all protocols that we looked at --- snip ----
238 * whatsapp --> man kann nichts machen, out of scope
239 * Lync: == SIP von M$. 
240 * Skype: man kann ncihts machen, out of scope.
241 * Wi-Fi APs, 802.1X, ... ???? --> out of scope
242 * Tomcats/...????
243 * VPNs          ???
244   * PPTP
245   * Cisco IPSec
246   * Juniper VPN
247   * L2TP over IPSec -> egal
248 * SIP   -> Klaus
249 * SRTP  -> Klaus???
250 * DNSSec ??     Verweis auf BCPxxx      --> out of scope
251    - DANE
252 What happens at the IETF at the moment?
253 * TOR?? --> out of scope
254 * S/Mime --> nachsehen, gibt es BCPs? (--> Ramin)
255 * TrueCrypt, LUKS, FileVault, etc ---> out of scope
256 * AFS -> out of scope
257 * Kerberos --> out of scope
258 * NNTP -> out of scope
259 * NTPs tlsdate -> out of scope
260 * BGP / OSPF --> out of scope
261 * irc,silc --> out of scope
262 !! * IPMI/ILO/RAC: Java --> important. Empfehlung: nie ins Internet, nur in ein eigenes mgmt VLAN, das via VPN erreichbar ist!!
263 * LDAP -> out of scope
264 * RADIUS? -> maybe later...
265 * Moxa , APC, und co... ICS . Ethernet to serial --> out of scope
266 * telnet -> DON't!!! 
267 * rsyslog --> out of scope
268 * ARP bei v6 spoofing -> out of scope
269 * tinc?? -> out of scope
270 * rsync -> nur ueber ssh fahren ausser public web mirrors
271 * telnets -> out of scope
272 * ftps -> out of scope
273 !! * seclayer-tcp --> review von Posch & co.
274 seclayer-tcp    3495/udp    # securitylayer over tcp
275 seclayer-tcp    3495/tcp    # securitylayer over tcp
276 * webmin -> maybe
277 * plesk -> out of scope
278 * phpmyadmin --> haengt am apache, out of scope
279 * DSL modems -> out of scope
280 * UPnP, natPmp --> out of scope
281 * SAML federated auth providers (e.g., all the REFEDS folks (https://refeds.org/)), including InCommon (http://www.incommon.org/federation/metadata.html)
282   https://wiki.shibboleth.net/confluence/display/SHIB2/TrustManagement (idea by Joe St. Sauver)
283
284 ----- snip ---- all protocols that we looked at --- snip ----
285
286
287
288
289
290
291 RNG section
292 ------------
293 DONE - add two, three sentences
294 DONE - mention HaveGED 
295 DONE - embedded devices are a problem
296
297
298
299 Contacting / who?
300 =================
301 * Juniper
302 * Cisco
303
304 LATER / further 
305 ================
306 * OpenLDAP (-> Adi)
307 * Radius
308 * Windows Active Directory
309 DONE * SRP: not part of this document. But we did not exclude it in our cipher string :)
310 DONE * \cipherA , \cipherB setting ---> does not work in our \begin{listing} environment --> maybe there is a different listing environment or use awk/sed/make/perl/python
311 * What about 3270 terminal emulation? How to do crypto there? Can we? ( --> IBM sec. Stammtisch. Aaron)
312
313
314 * client/users-guide:
315   * PGP 
316   * ssh client settings
317   * OTR ?
318   * public key infrastructure
319   * certificate handling
320