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