Re: TLS over TLS for https proxy

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2024-12-02 05:22, Thomas K wrote:
Not sure how the Squid GET https:// can help me, as I want to talk bidirectionally betwen client and server after the handshake and keep that connection alive. GET https:// sounds a lot like the connection will be closed after one request. Perhaps my question was not clear in this regard in the first place or I currently cannot yet make sense of the solution.

I assumed that your origin server application speaks HTTP(S). If it does not, then sending Squid "GET https://"; requests is _not_ going to work. Instead, if you want to encrypt client-Squid communication _and_ client-origin communication, then the client has to send an encrypted HTTP CONNECT request to Squid's https_port. Upon receiving that CONNECT, Squid will establish a blind TCP tunnel to origin server. Your client will have to implement TLS-inside-TLS to use that tunnel to talk to origin server securely, just as you expected.

I will leave you in Viktor's expert hands with regard to BIO handling, but if you want more real-world examples in well-known software, I know that curl implements TLS-inside-TLS.


Good luck,

Alex.


I am still in the process of understanding how the network_biopair_interop() works exactly, but I think I got the general idea and how to transfer it.

Is there any literature you can recommend that explains the difference between BIO_push, BIO_make_bio_pair and manually reading and writing to mem BIOs? Also, I am not entirely sure I understood when to use which BIO. If I create two BIO_new_SSL and chain/make_pair them together, the data should be "double encrypted" when I SSL_read from the chain, right? Or do I need a memory BIO in-between for some reason?
Sorry, looks like I am overall a bit confused...

Thomas
Viktor Dukhovni schrieb am Samstag, 30. November 2024 um 05:08:20 UTC+1:

    On Thu, Nov 28, 2024 at 11:11:46PM -0800, Thomas K wrote:

     > Any suggestions and advice on how to do this properly is very
    welcome (also
     > something like "Configure your proxy to open the second TLS
    connection" or
     > similar, if you think that's the most reasonable way).

    You can use the biopair API to extract ciphertext from the inner SSL,
    and write it into the outer SSL, and conversely read from the outer
    SSL and inject ciphertext into the inner SSL.

    Though Postfix no longer uses this approach to move data between SSL
    and "vstream" sockets, you can still find it in the source of
    older releases:

    https://github.com/vdukhovni/postfix/blob/postfix-2.3/postfix/src/tls/tls_bio_ops.c <https://github.com/vdukhovni/postfix/blob/postfix-2.3/postfix/src/tls/tls_bio_ops.c>

    See the embedded nroff docs and network_biopair_interop().

-- Viktor.

--
You received this message because you are subscribed to the Google Groups "openssl-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to openssl-users+unsubscribe@xxxxxxxxxxx <mailto:openssl-users+unsubscribe@xxxxxxxxxxx>. To view this discussion visit https://groups.google.com/a/openssl.org/d/msgid/openssl-users/2c92a03c-ef04-4a74-a397-80619a08f5e3n%40openssl.org <https://groups.google.com/a/openssl.org/d/msgid/openssl-users/2c92a03c-ef04-4a74-a397-80619a08f5e3n%40openssl.org?utm_medium=email&utm_source=footer>.

--
You received this message because you are subscribed to the Google Groups "openssl-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to openssl-users+unsubscribe@xxxxxxxxxxx.
To view this discussion visit https://groups.google.com/a/openssl.org/d/msgid/openssl-users/f5bcac98-8a28-49c7-9005-12f249a91447%40measurement-factory.com.




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux