Re: WolfSSL builds for use with HAProxy

2024-02-12 Thread William Lallemand
On Fri, Feb 09, 2024 at 11:00:24PM +, Tristan wrote:
> Hi Ilya,
> 
> On 09/02/2024 20:31, Илья Шипицин wrote:
> > I run QUIC Interop from time to time, WolfSSL shows the best
> > compatibility compared to LibreSSL and aws-lc.
> > it really looks like a winner today
> 
> And in comparison to current QuicTLS?
> 
> > I'm afraid it practice it works in a different way.
> > First, you install WolfSSL to prod, next INSTALL/wiki got updated :)
> 
> I appreciate the joke... :)

Well, unfortunately they are a lot of unknows with wolfSSL, so we every
new user could discover them :-)

> 
> Either way, for now I'm waiting on OCSP support first (hi William, Rémi);
> hopefully someone else figures out the best build flags by the time that's
> dealt with.

I'll add that to my list but that's not the biggest priority for now :)


-- 
William Lallemand



Re: WolfSSL builds for use with HAProxy

2024-02-12 Thread William Lallemand
On Thu, Feb 08, 2024 at 02:46:46PM +, Tristan wrote:
> Hi all,
> 

Hello,

> With the ever-increasing threat of one day needing to give up on OpenSSL
> 1.1.1 (whenever the next bad CVE is found on QuicTLS 1.1.1w, essentially) I
> was looking at alternatives a bit closer.
> 
> Based on the wiki,
> https://github.com/openssl/openssl/issues/20286#issuecomment-1527869072, and
> that it has support for other features I'm interested in (notably ECH),
> WolfSSL seems by far my best bet at the moment.
> 

I have personnally more hope with aws-lc, given the fact that this is a
fork of a stack we know, and they maintain a stable ABI. But we don't
even have the clienthello callback in it yet, we have to invest some
time on this library too. But WolfSSL could a good alternative for you,
but this is still experimental.

> However, given that almost everything is compile time and defaults focus on
> suitability for constrained embedded environments rather than best
> big-proxy-server oriented performance, does anyone have pointers on what
> flags are important/traps/etc?
> 
> Besides the getrandom thing, HAProxy's INSTALL/wiki only vaguely mention
> that such build-time tuning is required, so I'm hoping someone might have
> gone through that already.
> 

--enable-haproxy is suppose to enable every features we support. you
could be needing --enable-keylog-export for debugging with the keylog
file, but it actually does not support TLS1.3 so that would be useless
for QUIC. You also need --enable-quic.

The other useful flags are optimizations depending on your CPU, for
example --enable-aesni , --enable-intelasm .


> This one is a bit extra, but considering that aiming for bleeding edge with
> WolfSSL is not entirely compatible with how most distros work (ie even if it
> was packaged, it's likely going to be perpetually quite far behind), what
> does the future look like in that regard from the distros' side?
> 

5.6.6 is already in debian testing and will be in the next ubuntu LTS
release, the problem is that it won't be compatible with haproxy... We
are trying to make them enable the haproxy features in --enable-distro
but it seems like it's already too late. At least --enable-quic is now
enable by default.

https://github.com/wolfSSL/wolfssl/issues/6834

So basically we reached a deadlock which will last 2 years. Regarding
Redhat I don't think they are even packaging it.

But yes, wolfssl cycles are not really compatible with LTS distro, so it
would need a PPA which provides the updated lib with the right flags.

-- 
William Lallemand



Re: WolfSSL builds for use with HAProxy

2024-02-10 Thread Илья Шипицин
сб, 10 февр. 2024 г. в 00:00, Tristan :

> Hi Ilya,
>
> On 09/02/2024 20:31, Илья Шипицин wrote:
> > I run QUIC Interop from time to time, WolfSSL shows the best
> > compatibility compared to LibreSSL and aws-lc.
> > it really looks like a winner today
>
> And in comparison to current QuicTLS?
>

QuicTLS

Run took 0:40:46.016826
+-++
| |haproxy |
+-++
| quic-go | HDCLRC20MSRZ3BUAL2C1C2 |
| |  EV2   |
| |  L16   |
+-++
+-+--+
| |   haproxy|
+-+--+
| quic-go | G: 8879 (± 46) kbps  |
| | C: 5504 (± 120) kbps |
+-+--+

wolfSSL

Run took 0:43:09.272822
+-+-+
| |   haproxy   |
+-+-+
| quic-go | HDCLRC20MSR3BUAL2C2 |
| | EV2 |
| |ZL1C16   |
+-+-+
+-+--+
| |   haproxy|
+-+--+
| quic-go | G: 8508 (± 152) kbps |
| | C: 5262 (± 441) kbps |
+-+--+

it is combination of quic-go client and haproxy.
wolfSSL passes all tests except "TestCaseHandshakeLoss" and
"TestCaseZeroRTT"

I configure wolfSSL as "./configure --enable-haproxy --enable-quic", maybe
there are some dedicated flags for 0-RTT, I didn't check yet


>
> > I'm afraid it practice it works in a different way.
> > First, you install WolfSSL to prod, next INSTALL/wiki got updated :)
>
> I appreciate the joke... :) but more seriously I am not very
> knowledgeable when it comes to low-level programming or the associated
> tuning/performance-testing.
> So even if I deployed it, my opinion on that topic is unlikely to be the
> best (besides bug reports anyway).
>
> Either way, for now I'm waiting on OCSP support first (hi William,
> Rémi); hopefully someone else figures out the best build flags by the
> time that's dealt with.
>
> Tristan
>


Re: WolfSSL builds for use with HAProxy

2024-02-09 Thread Tristan

Hi Ilya,

On 09/02/2024 20:31, Илья Шипицин wrote:
I run QUIC Interop from time to time, WolfSSL shows the best 
compatibility compared to LibreSSL and aws-lc.

it really looks like a winner today


And in comparison to current QuicTLS?


I'm afraid it practice it works in a different way.
First, you install WolfSSL to prod, next INSTALL/wiki got updated :)


I appreciate the joke... :) but more seriously I am not very 
knowledgeable when it comes to low-level programming or the associated 
tuning/performance-testing.
So even if I deployed it, my opinion on that topic is unlikely to be the 
best (besides bug reports anyway).


Either way, for now I'm waiting on OCSP support first (hi William, 
Rémi); hopefully someone else figures out the best build flags by the 
time that's dealt with.


Tristan



Re: WolfSSL builds for use with HAProxy

2024-02-09 Thread Илья Шипицин
чт, 8 февр. 2024 г. в 15:49, Tristan :

> Hi all,
>
> With the ever-increasing threat of one day needing to give up on OpenSSL
> 1.1.1 (whenever the next bad CVE is found on QuicTLS 1.1.1w,
> essentially) I was looking at alternatives a bit closer.
>
> Based on the wiki,
> https://github.com/openssl/openssl/issues/20286#issuecomment-1527869072,
> and that it has support for other features I'm interested in (notably
> ECH), WolfSSL seems by far my best bet at the moment.
>

I run QUIC Interop from time to time, WolfSSL shows the best compatibility
compared to LibreSSL and aws-lc.
it really looks like a winner today


>
> However, given that almost everything is compile time and defaults focus
> on suitability for constrained embedded environments rather than best
> big-proxy-server oriented performance, does anyone have pointers on what
> flags are important/traps/etc?
>
> Besides the getrandom thing, HAProxy's INSTALL/wiki only vaguely mention
> that such build-time tuning is required, so I'm hoping someone might
> have gone through that already.
>

I'm afraid it practice it works in a different way.
First, you install WolfSSL to prod, next INSTALL/wiki got updated :)


>
> This one is a bit extra, but considering that aiming for bleeding edge
> with WolfSSL is not entirely compatible with how most distros work (ie
> even if it was packaged, it's likely going to be perpetually quite far
> behind), what does the future look like in that regard from the distros'
> side?
>
> Thanks,
> Tristan
>
>


WolfSSL builds for use with HAProxy

2024-02-08 Thread Tristan

Hi all,

With the ever-increasing threat of one day needing to give up on OpenSSL 
1.1.1 (whenever the next bad CVE is found on QuicTLS 1.1.1w, 
essentially) I was looking at alternatives a bit closer.


Based on the wiki, 
https://github.com/openssl/openssl/issues/20286#issuecomment-1527869072, 
and that it has support for other features I'm interested in (notably 
ECH), WolfSSL seems by far my best bet at the moment.


However, given that almost everything is compile time and defaults focus 
on suitability for constrained embedded environments rather than best 
big-proxy-server oriented performance, does anyone have pointers on what 
flags are important/traps/etc?


Besides the getrandom thing, HAProxy's INSTALL/wiki only vaguely mention 
that such build-time tuning is required, so I'm hoping someone might 
have gone through that already.


This one is a bit extra, but considering that aiming for bleeding edge 
with WolfSSL is not entirely compatible with how most distros work (ie 
even if it was packaged, it's likely going to be perpetually quite far 
behind), what does the future look like in that regard from the distros' 
side?


Thanks,
Tristan