[squid-users] Fwd: Squid 4.8 with OpenSSL 1.1.1d

Alex Rousskov rousskov at measurement-factory.com
Mon Jan 6 14:52:45 UTC 2020


On 1/3/20 8:40 AM, Yaroslav Pushko wrote:

> During establishing TLSv1.3 handshake after successfully send our Client
> Hello, the server answers us with Hello Retry Request.

HelloRetryRequest is a TLS v1.3 feature that tells the client to restart
the negotiation (with additional info). Please keep in mind that:

1. If Squid peeks at TLS v1.3 data from the server, bumping the
connection is likely to be impossible. Since plain text TLS v1.3 server
bytes should not contain useful information, and encrypted TLS v1.3
server bytes are useless for a peeking transaction (and deadly for a
bumping transaction), the decision to bump such a transaction has to be
done no later than step2 (i.e. no later than after receiving TLS Client
Hello).

2. Squid TLS parser does not know about TLS v1.3 HelloRetryRequest
messages yet. Thus, if Squid is asked to parse from-server traffic
containing that message, Squid may not do what it should do (whatever
that is).

The changes discussed earlier in this email thread do not include adding
support for HelloRetryRequest, but they may help with the overall
situation by correctly identifying TLS v1.3 traffic. I think we are very
close to submitting an official pull request with these changes.

HTH,

Alex.


> In Squid this behavior interprets next Client Hello peek
> successfully and Hello Retry Request peeks as Server Hello.
> After that, we splice it and send to OpenSSL and fail handshake
> establishing.
> 
> Did you already notice such behavior? 
> Did you have some investigation on this issue, any advice will be pleasant?
> 
> Best regards,
> Yaroslav.
> 
> 
> On Tue, Dec 17, 2019 at 4:39 PM Alex Rousskov wrote:
> 
>     On 12/17/19 9:00 AM, Yaroslav Pushko wrote:
>     > Hi All
>     >
>     > We use Squid 4.8 with OpenSSL 1.1.1d in a transparent mode for
>     peek and
>     > splice interception.
>     >
>     > With this version, we lost the possibility to connect to any HTTPS
>     site.
>     >
>     > There are a few issues: 
>     >
>     >   * support TLSv1.2 sites (already discussed in
>     >   
>      thread http://squid-web-proxy-cache.1019090.n4.nabble.com/Problem-with-ssl-choose-client-version-inappropriate-fallback-on-some-sites-when-using-TLS1-2-td4688258.html )
>     >   * support TLSv1.3 sites.
> 
>     Please see
>     http://lists.squid-cache.org/pipermail/squid-users/2019-December/021435.html
>     for several alternative fixes. AFAICT, those fixes are more flexible
>     and, after polishing, appropriate for the official inclusion because
>     they make fewer assumptions about the values sent via the supported
>     versions extension.
> 
>     It is possible that your SSL_MODE_SEND_FALLBACK_SCSV change needs to be
>     integrated with the other fixes. Thank you for sharing that idea!
> 
>     Alex.
> 
> 
>     > Support TLSv1.2.
>     >
>     >     OpenSSL 1.1.1d adds support of TLSv1.3. These changes added some
>     >     kind of guard if we perform a handshake with a lower version
>     of the
>     >     TLS protocol than we support. In this scenario, we receive
>     downgrade
>     >     fallback error.
>     >     Handshake version TLSv1.2 vs. max support TLSv1.3.
>     >
>     >     In such case, we have the next error:
>     >
>     >         ERROR: negotiating TLS on FD 19: error:1425F175:SSL
>     >         routines:ssl_choose_client_version:inappropriate fallback
>     (1/-1/0)
>     >
>     >
>     >     OpenSSL already provided a fix for it. You can configure SSL
>     session
>     >     to use option SSL_MODE_SEND_FALLBACK_SCSV and setting SSL max
>     proto
>     >     version for current SSL session, but squid not yet supported these
>     >     features.
>     >
>     >     You can find a patch in the attachments, will be grateful for the
>     >     review.
>     >
>     >
>     > The issue with TLS 1.3 support, we are still investigating, any advice
>     > will be pleasant.
>     >
>     > Best regards,
>     > Yaroslav Pushko.
>     > -- 
>     > Best Regards,
>     > Yaroslav Pushko | Senior *Software Engineer*
>     > GlobalLogic
>     > P +380971842774  M +380634232226 S dithard
>     > www.globallogic.com <http://www.globallogic.com>
>     <http://www.globallogic.com/>
>     > http://www.globallogic.com/email_disclaimer.txt
>     >
>     > _______________________________________________
>     > squid-users mailing list
>     > squid-users at lists.squid-cache.org
>     <mailto:squid-users at lists.squid-cache.org>
>     > http://lists.squid-cache.org/listinfo/squid-users
>     >
> 
> 
> 
> -- 
> Best Regards,
> Yaroslav Pushko | Senior *Software Engineer*
> GlobalLogic
> P +380971842774  M +380634232226 S dithard
> www.globallogic.com <http://www.globallogic.com/>
> <http://www.globallogic.com/>
> http://www.globallogic.com/email_disclaimer.txt



More information about the squid-users mailing list