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