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