Merge branch 'master' of github.com:BetterCrypto/Applied-Crypto-Hardening
authorAaron Kaplan <aaron@lo-res.org>
Sun, 29 Mar 2015 20:18:44 +0000 (22:18 +0200)
committerAaron Kaplan <aaron@lo-res.org>
Sun, 29 Mar 2015 20:18:44 +0000 (22:18 +0200)
1  2 
presentations/org-training/agenda.md

@@@ -377,16 -377,17 +377,17 @@@ We still recommend perfect forward secr
      * Disable SSL 2.0 (weak algorithms)
      * Disable SSL 3.0 (BEAST vs IE/XP)
      * [Disable RC4 cipher](https://www.ietf.org/rfc/rfc7465.txt) (RFC7465)
+     * Disable EXPORT suites (FREAK Attack)
      * Enable TLS 1.0 or better
      * Disable TLS-Compression (SSL-CRIME Attack)
      * Implement HSTS (HTTP Strict Transport Security)
+     * Implement OCSP stapling (Security and performance improvement)
    * Variant A: fewer supported clients
    * Variant B: more clients, weaker settings
  
    Attacks only get better.
  
  
  # Variant **A**
  
      EECDH+aRSA+AES256:EDH+aRSA+AES256:!SSLv3
@@@ -515,43 -516,7 +516,43 @@@ _WISHLIST_
  ![ssllabs.com](img/ssllabs3.png)
  
  
 +# Tools: masscan
  
 +[masscan](https://github.com/robertdavidgraham/masscan)
 +
 +"TCP port scanner, spews SYN packets asynchronously, scanning entire Internet in under 5 minutes."
 +
 +* Idea: if you have a very large network range, use masscan (***be sure to rate-limit!***) to discover all 
 +open ports 443, 993, 143, 25
 +* Now you have an inventory of SSL-speaking ports
 +* Use SSLyze to test these internally
 +
 +# Tools: SSLyze
 +
 +[SSLyze](https://github.com/nabla-c0d3/sslyze/releases) is a "Fast and full-featured SSL scanner"
 +
 +A tool to test internally which cipherstrings are supported.
 +The tool offers these features (amonst others):
 +  * get a list of targets (ip:port) from a file
 +  * XML output
 +  * heartbleed test
 +  * OCSP stapling test
 +  * SSLv2-TLS1.2 testing
 +  * finding preferred and supported cipherstrings
 +  * STARTTLS testing (IMAP, pop, ...)
 +  * XMPP testing
 +  * SNI support
 +  * HSTS testing
 +etc.
 +
 +# Tools: SSLyze (1)
 +
 +![sslyze-screenshot1](img/sslyze-scan-sample1.png)
 +
 +
 +# Tools: SSLyze (2)
 +
 +![sslyze-screenshot2](img/sslyze-scan-sample2.png)
  
  # Wrap-up
  
    * OK: Solid basis with Variant (A) and (B)
    * Public draft was presented at the CCC Dec 2013. 
  Well received. Good feedback (Dan Bernstein, ...)
 -
 -# What's still needed?
 -
 -  * Need to convert to HTML/restructured text (RST) and have the whole guide on the web
 -  * fix the \texttt{@@@CIPHERSTRINGB@@@} macro in the configuration/ dir
 -  * re-review  the configuration/\* files. Maybe crap slipped in 
 -due to large commits :(
 -  * _WISHLIST_: config generator
 -  * _WISHLIST_: automatic compatibility testing
 -  * _WISHLIST_: automatic internet-wide measurement (massscan, zmap, ...)
 -  * long term maintenance / upkeep strategy
 -
 -
 -# How to participate?
 -
 -1. We need: cryptologists, sysadmins, hackers
 -1. Read the document, find bugs!
 -1. Master git repo (git.bettercrypto.org) is world-readable. 
 -1. Subscribe to the mailing list
 -1. look at the TODO.md file
 -1. Understand the cipher strings Variant (A) and (B) before proposing some changes
 -
 -# How to participate? (2)
 -1. If you add content to a subsection, make a sample config with variant (B)
 -1. **use the \texttt{@@@CIPHERSTRINGB@@@} macro !** :
 -  * edit config snippets in \texttt{configuration/\*}
 -  * \texttt{make config} to copy over the template from \texttt{configuration/} to \texttt{stage/}
 -  * \texttt{make config} basically does: \texttt{sed -i "s/@@@CIPHERSTRINGB@@@/\$cipherstringB/g"}
 -1. Use the github.com repo for pull requests
 -1. **important:** please do many smaller commits! It's easier to review and merge.
 -
 -# How to participate? (3)
 -We need: 
 -  * Add content to an subsection from the TODO list -> send us diffs
 -  * Reviewers!
 -
 -Accept that  your commit might be under quite some scrutiny, that's the game.
 -  * **C**ompletely
 -  * **O**pen
 -  * **S**ource
 -  * **H**eaders
 -  * **E**ngineering and
 -  * **R**esearch
 -
 -
 +  * more work needs to be done:
 +   * certificate pinning
 +   * Dane
 +   * SPDY
 +   * etc.
 +  * This is a process which should be done regularly
  
  
  # Links