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