public inbox for development@lists.ipfire.org
 help / color / mirror / Atom feed
From: Michael Tremer <michael.tremer@ipfire.org>
To: development@lists.ipfire.org
Subject: Re: OpenVPN/IPsec - Sweet32: Birthday attacks
Date: Thu, 15 Sep 2016 12:13:31 +0100	[thread overview]
Message-ID: <1473938011.2757.196.camel@ipfire.org> (raw)
In-Reply-To: <79F11CDE-1805-4EE3-8CF2-44A37BA39AE4@ipfire.org>

[-- Attachment #1: Type: text/plain, Size: 20989 bytes --]

Hi,

On Thu, 2016-09-15 at 12:23 +0200, ummeegge wrote:
> Hi all,
> what are you thinking then to arrange the optgroup (thanks Michael for
> pointing this formatting possibility out) with the following assignments and
> in e.g. 3 different sections named for example

We had a similar discussion over here if it was a good idea to mark something as
"strong" over here:

  http://lists.ipfire.org/pipermail/development/2015-December/001236.html

What if something suddenly becomes "weak"?

But generally I think this is better than what we have now.

> Ciphers:
> 
> Strong algorithms
> 
> 	With 256 bit (keylenght) <--> 128 Bit block ciphers
> 	With 192 bit (keylenght) <--> 		"
> 
> Medium algorithms
> 
> 	With 128 bit (keylenght) <--> 128 bit block ciphers
> 
> Weak algorithms
> 	
> 	With 192 bit (keylenght) <--> 64 bit block ciphers
> 	With 128 bit (keylenght) <--> 64 bit block ciphers
> 
> 
> HMACs:
> 
> Strong algorithms
> 
> 	512 bit Whirlpool, SHA2
> 	384 bit SHA2
> 
> Medium algorithms
> 
> 	256 bit SHA2
> 
> Weak algorithms
> 
> 	160 bit SHA1 and md5
> 
> 
> Diffie-Hellman parameter:
> 
> Strong algorithms
> 
> 	4096, 3072
> 
> Medium algorithms
> 
> 	2048
> 
> Weak algorithm
> 
> 	1024
> 
> May too much but as an first idea for the naming and structure of the
> optgroups in OpenVPN.

Let's start with that one then and do IPsec later.

> Causing the defaults for the HMAC:
> SHA1 is really no good choice in OpenVPN but in the time when we´ve added the
> the selection of the auth algorithm, a lot of configurations have used already
> 'auth SHA1' in their configs so the problems comes up if the server
> configuration will be stored again via the WUI or new clients are generated
> with new parameters all existing clients with the old defaults (SHA1 in that
> case) won´t work anymore until they have been changed appropriately.

Changing the default to SHA256 has some implications that may cause major
difficulties later. See my other email for this.

> The Diffie-Hellman parameter needs, on weak boards or boards with less entropy
> a lot of time so an security/usability question comes up again.
> 
> OpenVPN delivers also the possibility for 'reneg-sec' or 'reneg-bytes' but
> this needs to be configured as far as i remember on both sides (client/server)
> and may too much/complicated to configure over the WUI, even if 2.4.x delivers
> it per default ?

Can we assume that we have a reasonably recent version on the clients?

> 
> Some ideas from here.
> 
> Greetings,
> 
> Erik
> 
> 
> 
> Am 14.09.2016 um 21:04 schrieb IT Superhack <itsuperhack(a)web.de>:
> 
> > Hello Michael,
> > 
> > Michael Tremer:
> > > Hey,
> > > 
> > > apologies for jumping in on this so late, but time is rare for me at the
> > > moment.
> > > 
> > > I agree that we need to do something here, but with crypto we always end
> > > up with
> > > the same problem. That is: How do we offer a good migration path?
> > > 
> > > Some ciphers we support are clearly broken. If we would disable those
> > > probably
> > > the majority of IPsec tunnels and OpenVPN connections would not work any
> > > more
> > > since lots of hardware that you buy today still only does RC4, (3)DES,
> > > SHA1 or
> > > MD5. That's terrible.
> > Indeed, it is. :-(
> > > 
> > > If we would kick out all of those, we would have people ask to get these
> > > back
> > > in. They have some reasons to use those. AFAIK does lots of Cisco stuff
> > > implement 3DES in hardware which is therefore much faster than AES.
> > Yes, some earlier versions of the Cisco ASA series don't even support AES,
> > and
> > in some cases, there is a bug preventing a successful VPN connection (that
> > applies
> > to the AVM Fritz!Boxes, too).
> > > 
> > > That's not convincing to me, but in those businesses out there, they need
> > > throughput and prioritize that over security.
> > > 
> > > Then there is the big lack of a migration path for OpenVPN. If you change
> > > the
> > > cipher on the server side, no client would be able to connect any more
> > > unless
> > > you update the configuration. Completely unfeasible to do with probably
> > > more
> > > than 5 connections. If OpenVPN would negotiate the ciphers like IPsec does
> > > there
> > > would be a good chance. Unfortunately it does not and is not even very
> > > user-
> > > friendly when you have a configuration mismatch.
> > > 
> > > Hence I am with Rod. People will only touch that if they have to and that
> > > is
> > > very often when the hardware dies.
> > > 
> > > So I think there is no chance that we just remove all the "broken" ciphers
> > > here.
> > > That will break too many systems. People would probably avoid updating
> > > then and
> > > get new security issues in other components.
> > I agree with this and it's a very common behavior. (In fact, more than a
> > third of
> > the security incidents the customers of my company encounter can be tracked
> > down
> > to this behavior.)
> > > 
> > > So could someone work on a patch to mark these as "weak". We had this
> > > discussion
> > > earlier on this list but a final solution was never implemented.
> > > 
> > > We could just modify the dropdown on the OpenVPN page like this:
> > > 
> > > CAMELLIA-CBC (256 bit)
> > > CAMELLIA-CBC (192 bit)
> > > ...
> > > Weak Ciphers
> > >  BF-CBC
> > >  ...
> > > 
> > > The <optgroup> tag can be used for that:
> > >  http://www.w3schools.com/tags/tag_optgroup.asp
> > > 
> > > Additionally we can show a flag next to it if a weak cipher is in use.
> > That's a good idea. Maybe we can also display a notification on the main
> > page
> > (similar to the "there is a new update available" notice) since usually you
> > don't touch the VPN configuration sites if everything works.
> > > 
> > > The IPsec dropdown can be modified in just the same way.
> > Yep.
> > > 
> > > So we will keep supporting those ciphers, but we make it crystal clear
> > > that it
> > > is not recommended to use them.
> > > 
> > > Would that be okay with you? Did I get everything discussed here baked
> > > into the
> > > proposed solution?
> > I'm happy with this.
> > > 
> > > Are we proposing any insecure defaults? We should adjust these then.
> > Yes:
> > OpenVPN (advanced server options): SHA1 is set as default
> > IPSec (advanced connection options): SHA1 is enabled by default
> > 
> > I am not sure about the "Grouptype" options in IPSec, since I would disable
> > anything weaker than 2048 Bits (RSA/MODP) or 256 Bits (ECDSA/ECP).
> > 
> > Neither am I sure about the "Diffie-Hellman parameters". 1024 Bits - which
> > is set as default currently, is awfully short; 2048 is the minimum
> > recommended
> > length. Needless to say, this may take ages on slow hardware, so I'm not
> > sure how to deal with this.
> > 
> > Similar problems occur within Apache:
> > * Logjam/Weak DH params, which cannot be fixed easily at the moment
> > * current configuration supports SHA1. But if we'd disable that, clients
> > must
> > use TLS 1.2 which is better, but not always possible (IE6-8 on
> > WinXP/Vista/7).
> > 
> > Best regards,
> > Timmothy Wilson
> > > 
> > > Best,
> > > -Michael
> > > 
> > > On Sat, 2016-09-10 at 01:49 -0500, R. W. Rodolico wrote:
> > > > From what I understand, existing configurations will stay the same and
> > > > still be able to connect. The only effect this will have is to keep
> > > > people from creating new certs with the insecure ciphers. In that
> > > > case, I think they could be killed with no problem.
> > > > 
> > > > If you decide to do this, all we need to do is document it so we don't
> > > > get people asking "where is blowfish; I always use that!" Putting it
> > > > in the forum is cool, but I want to put it in the documentation
> > > > (wiki.ipfire.org), mainly in
> > > > http://wiki.ipfire.org/en/configuration/services/openvpn. Again, I'm
> > > > not coding, so I am happy to document.
> > > > 
> > > > I was concerned you were talking about pulling the ciphers completely
> > > > out of OpenVPN, so the server would not be able to respond when an old
> > > > connection was made using one of the insecure ciphers. Pulling it from
> > > > the list of available ciphers for new connections should not be an
> > > > issue at all.
> > > > 
> > > > Happy to help whatever you need with the wiki. I'm on the
> > > > documentation(a)lists.ipfire.org list. Is that the one you're talking
> > > > about? I use OpenVPN quite a bit, so just let me know what you want me
> > > > to do.
> > > > 
> > > > Rod
> > > > 
> > > > On 09/05/2016 03:30 AM, ummeegge wrote:
> > > > > 
> > > > > Hi,
> > > > > 
> > > > > Am 01.09.2016 um 21:29 schrieb R. W. Rodolico <rodo(a)dailydata.net 
> > > > > <mailto:rodo(a)dailydata.net>>:
> > > > > 
> > > > > > 
> > > > > > Signierter PGP-Teil No matter which way you decide to go, we
> > > > > > need to document as soon as possible. Is there any way we could
> > > > > > modify release 104 to highlight insecure ciphers and insert a
> > > > > > link to an article? I volunteer to write
> > > > > > 
> > > > > the decision needs to made by the core developers, may also in 
> > > > > conjunction with an update of the OpenSSL library to version 1.1 
> > > > > cause as you could read in the OpenSSL announcement, if the 
> > > > > 'enable-weak-cipher" option won´t be set DES (and his variations) 
> > > > > won´t work anymore ? But i´am not sure about that may there are 
> > > > > other ways around. I wanted only to point this specific problem
> > > > > out and as far as i can see the half of the OpenVPN ciphers are 64
> > > > > bit block ciphers and are affected. Exception are Camellia, AES and
> > > > > the Seed ciphers. Have also made some smaller changes in the
> > > > > OpenVPN wiki (it definitely needs some updates/fixes) and i will
> > > > > make some more in the next days and it would be great if you go
> > > > > also for some extensions (may we can meet in the wiki mailinglist
> > > > > for coordination).
> > > > > 
> > > > > > 
> > > > > > the article.
> > > > > > 
> > > > > > What I'm thinking is, in 104 (I'm assuming dropping the insecure
> > > > > > ciphers would not happen until 105), whey they view the OpenVPN
> > > > > > screen, if they are using an insecure cipher, the text would
> > > > > > show up in red or something. It seems a simple fix (but I've not 
> > > > > > looked at the code, so it may not be).
> > > > > > 
> > > > > Since Core 104 is currently in testing tree, this could be a
> > > > > chance and as you mentioned it is a simple text formatting patch
> > > > > but as i wrote it before, the core developers needs to decide
> > > > > that.
> > > > > 
> > > > > > 
> > > > > > 
> > > > > > I disagree with "the sooner people throw old systems away" idea, 
> > > > > > as my basic philosophy is to use equipment until it won't boot. 
> > > > > > One of the advantages to FOSS. But, in this case, we're looking 
> > > > > > at the possibility of having to force outdated options in 
> > > > > > multiple packages which would be a fairly good sized effort.
> > > > > > 
> > > > > There are configuration possibilities between "throw old systems 
> > > > > away" or "disable this ciphers", but in would in anyways needs 
> > > > > knowledge and activities from the user side in that case.
> > > > > 
> > > > > > 
> > > > > > 
> > > > > > Whatever happens, it needs to be documented, and I'd like to get 
> > > > > > it out there as soon as possible. And very visible even to users 
> > > > > > who don't read mailing lists or even visit the Planet.
> > > > > > 
> > > > > I did some announcements also in the IPFire forum, may i should
> > > > > pin it to the top...
> > > > > 
> > > > > > 
> > > > > > 
> > > > > > I'm still not clear on one thing. If Blowfish (for example) is 
> > > > > > used in one of my connections and it was removed, I'm assuming 
> > > > > > that connection would no longer work. Correct? It sounds like we 
> > > > > > have the option of removing it from the list of available 
> > > > > > options, but also removing support completely from OpenVPN. Am I 
> > > > > > missing something.
> > > > > > 
> > > > > This connection will work further even if Blowfish has been
> > > > > deleted from the WUIs cipher list it will further appear in the
> > > > > server.conf and it is furthermore present in the OpenSSL library
> > > > > but the problem will be to change things in the WUI or even to add
> > > > > more clients cause by pressing the next time 'save' the
> > > > > configuration will be changed (if no other cipher will be set to 
> > > > > 'CAMELLIA-256-CBC' will be written to server.conf cause it is
> > > > > first in the list) and all other client configurations needs then
> > > > > to be adjusted accordingly.
> > > > > 
> > > > > 
> > > > > > 
> > > > > > 
> > > > > > Rod
> > > > > > 
> > > > > > P.S. Sorry about the misunderstanding. Blowfish is fixed at 64. 
> > > > > > It is only the key length that is variable. My bad.
> > > > > > 
> > > > > No problem good that we clear things like that.
> > > > > 
> > > > > 
> > > > > > 
> > > > > > 
> > > > > > Rod
> > > > > > 
> > > > > > On 08/31/2016 06:01 AM, ummeegge wrote:
> > > > > > > 
> > > > > > > Hi all,
> > > > > > > > 
> > > > > > > > 
> > > > > > > > You say "disable in the list." Would systems currently 
> > > > > > > > running these ciphers have to rebuild their certificates? Or 
> > > > > > > > would their system continue to run as is, but new 
> > > > > > > > configurations would only have the better options available.
> > > > > > > the systems would run further with these ciphers but it won´t 
> > > > > > > be possible to add new clients via WUI without changing the 
> > > > > > > cipher and regarding to OpenVPN this means to change all 
> > > > > > > configurations cause a OpenVPN instance have no variability 
> > > > > > > with ciphers per client.
> > > > > > > 
> > > > > > > > 
> > > > > > > > 
> > > > > > > > If it would break any existing systems, I would prefer to not
> > > > > > > > disable it. If there was a way to change the tags in OpenVPN
> > > > > > > > to add a DANGER to the label, that would be sufficent. Maybe
> > > > > > > > even a link between Encyption: and the dropdown pointing to
> > > > > > > > the articles describing the issu e.
> > > > > > > > 
> > > > > > > > I never like to disallow someone from doing something, 
> > > > > > > > especially if it can cause their system to not work after an 
> > > > > > > > upgrade. I prefer to warn them, and let them make informed 
> > > > > > > > decisions.
> > > > > > > 
> > > > > > > I think this is also a good idea but as far as i can see 
> > > > > > > OpenSSL for example will treat DES (triple-des) with version 
> > > > > > > 1.1  like RC4 (haven´t seen a similar note with e.g. Blowfish 
> > > > > > > ?) --> https://www.openssl.org/blog/blog/2016/08/24/sweet32/ . 
> > > > > > > So it won´t be compiled by default but you need to activate 
> > > > > > > "enable-weak-ssl-ciphers in config options in the new OpenSSL 
> > > > > > > version. Whereby OpenSSLs new version might fill another 
> > > > > > > discussion round i think cause it seems pretty problematic 
> > > > > > > without patching a lot of other software which are linked 
> > > > > > > against OpenSSL (e.g. failed builds with OpenSSL-1.1 on Debian 
> > > > > > > --> 
> > > > > > > https://breakpoint.cc/openssl-1.1-rebuild-2016-08-26/failed/ ),
> > > > > > > there seems also to be some strange changes in the API but this
> > > > > > > only as a beneath info…
> > > > > > > 
> > > > > > > > 
> > > > > > > > 
> > > > > > > > In my release 104, I see 128 bit as the lowest option. This 
> > > > > > > > vulnerability specifically shows that for 64 bit blocks, the
> > > > > > > > problem exists. To successfully attack a 64 bit block, you 
> > > > > > > > would only need to generate 32 gig of traffic; definitely 
> > > > > > > > reasonable. However, to successfully attack 128 bit blocks 
> > > > > > > > requires reading 256 Exobytes, which is unreasonable to
> > > > > > > > worry about at this time. I'm assuming I'm reading this
> > > > > > > > correctly and BF-CBS (128 bit) actually means it is using 128
> > > > > > > > bit blocks.
> > > > > > > 
> > > > > > > I don´t think so, this problem addresses not the key lenght, it
> > > > > > > means the fixed-lenght group of bits in the 'block' for these
> > > > > > > ciphers e.g. --> 
> > > > > > > https://en.wikipedia.org/wiki/Blowfish_(cipher) under 'Cipher 
> > > > > > > detail' .
> > > > > > > 
> > > > > > > > 
> > > > > > > > 
> > > > > > > > Finally, OpenVPN 2.4 (still very much in alpha) will support
> > > > > > > > cipher negotiation, where the client and server will 
> > > > > > > > dynamically negotiate which cipher to use. Within a short 
> > > > > > > > time of its release, the problem will no longer exist since 
> > > > > > > > both servers and clients will be able to do behind the
> > > > > > > > scenes negotiation.
> > > > > > > Yes, 2.4. brings some hope per default in that manner beneath 
> > > > > > > some other things (ECDH support, …) but who knows when they 
> > > > > > > will release it. Longer time ago i integrated the
> > > > > > > '--reneg-sec' directive into the WUI for testing purposes which
> > > > > > > is pretty similar to '--reneg-bytes' but i left it behind cause
> > > > > > > IPFire serves also the "Additional configuration" possibility
> > > > > > > so a individual way to adjust both configurations
> > > > > > > (client/server) is possible.
> > > > > > > 
> > > > > > > > 
> > > > > > > > 
> > > > > > > > In this case, mainly Windows XP-systems are affected since 
> > > > > > > > 3DES was the only "safe" cipher suite they are able to use. 
> > > > > > > > Others (RC4, DES) went down the drain a long time ago.
> > > > > > > > 
> > > > > > > > With Sweet32, it became impossible to use such a system for 
> > > > > > > > _any_ secure connection, no matter if its HTTPS, VPN or 
> > > > > > > > something else.
> > > > > > > Not sure about this cause a lot of software ships their own 
> > > > > > > crypto libs and do not use the system crypto, for example
> > > > > > > while the OpenVPN development time for Core 79 we tested also
> > > > > > > Windows XP systems positive with the Camellia cipher (AES too
> > > > > > > but also SHA2-512 was ok) --> 
> > > > > > > http://forum.ipfire.org/viewtopic.php?f=17&t=10008&start=90#p69221
> > > > > > > 
> > > > > > > 
> > > > > > > 
> > > > > .
> > > > > > 
> > > > > > > 
> > > > > > > 
> > > > > > > > 
> > > > > > > > Back to the VPN: It seems like there is a similar problem 
> > > > > > > > here, because the (at least in Germany) very popular 
> > > > > > > > Fritz!Box by AVM cannot handle IPSec VPNs with AES ciphers 
> > > > > > > > (source: 
> > > > > > > > http://wiki.ipfire.org/en/configuration/services/ipsec/avm-fritz
> > > > > > > > box
> > > > ).
> > > > > 
> > > > > > 
> > > > > > 
> > > > > > > 
> > > > > > > > 
> > > > > > > > 
> > > > > > > > 
> > > > > > 
> > > > > > > 
> > > > > > > > 
> > > > > > > > 
> > > > > > > Indeed, this is a problem and there are for sure more other 
> > > > > > > problematic constellations out there…
> > > > > > > 
> > > > > > > > 
> > > > > > > > In my humble opinion, removing the 3DES cipher is better. 
> > > > > > > > First because it improves the transport security situation, 
> > > > > > > > although it cannot be easily exploited. Second, the more
> > > > > > > > weak techniques and broken ciphers a legacy system supports
> > > > > > > > are disabled on the majority of the servers, the sooner
> > > > > > > > people throw the old systems away.
> > > > > > > I think this is not completely wide of the mark and it does 
> > > > > > > remind me a little on the RC4, MD5, SHA1 discussions. In fact 
> > > > > > > this problem is known since long time but anyways this ciphers 
> > > > > > > are nowadays nevertheless widely used…
> > > > > > > 
> > > > > > > Another good overview causing this topic can be found also
> > > > > > > here --> https://sweet32.info/SWEET32_CCS16.pdf .
> > > > > > > 
> > > > > > > Some thoughts from here.
> > > > > > > 
> > > > > > > Greetings,
> > > > > > > 
> > > > > > > Erik
> > > > > > > 
> > > > > > > 
> > > > > > > 
> > > > > > > 
> > > > > > -- Rod Rodolico Daily Data, Inc. POB 140465 Dallas TX 75214-0465
> > > > > > 214.827.2170 http://www.dailydata.net
> > > > > > 
> > > > > > 
> > 
> 

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

       reply	other threads:[~2016-09-15 11:13 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <79F11CDE-1805-4EE3-8CF2-44A37BA39AE4@ipfire.org>
2016-09-15 11:13 ` Michael Tremer [this message]
2016-09-16  9:55   ` ummeegge
2016-11-12 10:04     ` ummeegge
     [not found] <EC575481-4F11-4DB6-800E-E2E46E3A1AD0@ipfire.org>
2016-09-10  6:49 ` R. W. Rodolico
2016-09-13 15:00   ` Michael Tremer
2016-09-14 19:04     ` IT Superhack
2016-09-15 11:06       ` Michael Tremer
     [not found] <90CA43F8-EDD0-4D1B-963F-5E66CCBD3212@ipfire.org>
2016-09-01 19:29 ` R. W. Rodolico
2016-08-29 15:50 ummeegge
2016-08-30  6:11 ` IT Superhack

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1473938011.2757.196.camel@ipfire.org \
    --to=michael.tremer@ipfire.org \
    --cc=development@lists.ipfire.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox