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