Addressing Visibility Challenges with TLS 1.3 Within the Enterprise
nist.gov
nist.gov
This is an odd euphemism. A network that uses plaintext isn't "visible" - I'd use a word like "readable" or "inspectable".
For encrypted networks, MITMing the encryption breaks the security. That's what it's for. TLS1.3 is supposed to prevent that; circumventing that (as NIST proposes) increases the attack surface. NIST's proposals seem to amount to generating and distributing ephemeral keys over the internal network; but I thought best practice was to keep keys and cryptographic operations inside a HSM.
Isn't the proper solution to remove MITMing from the compliance rules, stop trying to detect C2 and malware at the router, and instead secure the target servers?
If they work in high-castle mode, they can as well have their network traffic unencrypted.
Otherwise, as the parent said, they should secure the endpoints rather than rely on COTS to inspect traffic in the hope of detecting malicious patterns.
P.S. This reminded me of an Intrusion Detection System that silently dropped all traffic to what looked like requests to Spring Boot's /actuator* unless it contained a cookie. Any cookie would suffice, it was just a match on the string "Cookie: " in the headers. It took many hours and a dozen of people across the organisation to figure this out. All but productive work.
P.P.S. It's Fortiguard and they proudly advertise this feature here https://www.fortiguard.com/encyclopedia/ips/49620
The reality is many if not most devices are malicious now. You're protecting against one threat while enabling another.
It’s not mutually exclusive with your approach, but it’s definitely the new industry gold standard, rather than trusting vetted devices. Seems they gave up on the vetting.
So I'm saying they should not be required to monitor at the boundary (and discard the benefits of TLS1.3); it's dumb to require diminished security. They should be required to monitor; but it's their network, they get to decide how to do it. I guess that means you need compliance rules written by serious people, rather than box-tickers.
That would make verifying compliance harder; you can't just check that they have blackbox X at the boundary. I can see that the existing setup is cheap-and-cheerful.
That's much harder than buying off-the-shelf "security" solutions from the likes of Bluecoat.
What security, specifically. Security from who/what.
Let's say a network owned by C comprises computer A and computer B, A is connected to B and B is connected to the internet.
Computer A runs "apps" controlled by D and not trusted by C. B runs only programs trusted by C.
Both A and B, i.e., the programs runing on them, are each capable of encrypting traffic.
Let's say the approach C takes on C's network is to let B handle encryption. Not A.
The apps running on Computer A want to encrypt traffic but, in C's opinion, that "security" is for the benefit of D not C.
Computer B encrypts all traffic bound for the internet and decrypts all traffic received from the internet. C does not need D's apps to perform encryption.
It is C's network. Is there a reason C should not control encryption on C's own network.
Is there a reason D should be able to run its "apps" on C's network and encrypt traffic that D cannot inspect.
Would D allow C to run programs on D's network that encrypt traffic so that D cannot inspect it. (Reciprocity.)
One could imagine the encryption by D's apps running on Computer A is security against D, the owner of the network.
Any other "security" provided by D's apps encrypting traffic on A is already provided by B.
(Given the existence of B, encryption by A is unnecessary and redundant.)
https://news.ycombinator.com/item?id=39860486
Why does it need this "network visibility"
All of this seems to assume you always own the server side, which you pretty much don't. Even on page 5 with the summary of the solution it doesn't touch that subject.
You'd think that if you own the server and the client anyway, you'd just capture it right there if you need to.
As for just the DH 'server' doing key distribution, that's something we already know how to do and doesn't require "we install nginx on a random server and call it an appliance" style vendors.
It seems to be intentional exfiltration of key material (either bounded DH keypairs rather than ephemeral or, more likely, exfil of the symmetric channel key).
TLS also allows a so-called "tech" company to send and receive data over someone else's private, local network that is connected to the internet with the confidence that computer users and the network owner on that local network cannot see the contents of the traffic. In order to properly consent to sending data to a so-called "tech" company, it is arguable that the consent should be informed, i.e., the computer user should be able to see what data is being sent. Was the concealment of unconsented data exfiltration the intended purpose of TLS. These so-called "tech" companies have a record of breaching public trust, hiding their surreptitious data collection from public view, in order to generate revenue and profit. This is often made the subject of civil lawsuits and regulatory fines that are rarely if ever successfully challenged. The companies almost invariably give in and pay up.
Can't enterprises just MITM the traffic and sign it with a CA the clients trust? What's the benefit of the previous solutions?
> Can't enterprises just MITM the traffic and sign it with a CA the clients trust? What's the benefit of the previous solutions?
This wont work with cert pinning and also is a lot more expensive
If it's not your endpoint then it's not yours to intercept and analyze?
I don't really understand the full picture / use case here. Is it only for internal traffic, or is it used in combination with some other more active mitm method to act as the server even for e.g gmail.com?
This is what Zscaler is doing. I know because my company was (unfortunately) using this.
Awful company with 0 protections against being abused. They can't handle stopping a DDoS originating from their service I can't imagine them being trustworthy for a full MiTM.
Yes, the purpose is to be able to scan incoming or outgoing packets for malware, data exfiltration, etc.
Specifically, they would use RSA kex, which makes Forward Secrecy impossible and in TLS 1.3 they can't any more.
e.g. You might own a fibre splitter, take the real data going back and forth between clients and your servers, and just copy it - you can't change the data, those photons left, but you get the same data, and with RSA you could just give an inspection device your private key and it can decrypt all that traffic no problem.
But without RSA that won't work, and this NIST standard I think specifies how to do it "correctly" with ephemeral keys, which means having a system that is tracking all those keys.
This means the NIST recommended solution costs more to do than the "old way". But, the banks and similar institutions which demand this are the ones paying for that, not you. And in exchange for that higher cost, this enables Forward Secrecy (data I stole from this system on Tuesday can't be used to decrypt a session on Thursday) and it also significantly bloats the data needed to compromise the whole system - want to read every transaction? You're going to need a lot of space for that whereas with RSA it was a single 4096-bit RSA key.
(I tried eying through the OP but my eyes started bleeding from all the corporate IT jargon.)
However with DNS increasingly being encrypted with DoH and DoT, the TLS handshake was one of the only places you could eavesdrop on the destination hostname, until it was removed in 1.3.
Of course network monitoring will still give you the destination IP, but those are increasingly overwhelmingly destined for a major cloud or CDN provider which doesn't provide much context about the actual destination.
If you'll forgive the shameless self-promo, I covered a decent amount of this in my Blackhat talk about encrypted DNS a few years back: https://www.youtube.com/watch?v=XCnE2o2pfxs
https://datatracker.ietf.org/doc/draft-ietf-tls-esni/
As you can see this ID currently has "WG state In WG Last Call" which means the Working Group were asked if they have any final stuff that needs changing. After this it could enter a state where it needs word smithing, or it could even just get sent to the IESG and then there's an opportunity for the wider community to chime in.
[Keep in mind though, the IETF's RFCs don't dictate what gets done, we're agreeing engineering documents here, the implementations do in fact already exist and are in use for some systems, they might change to adopt any hypothetical change in the final RFC, or equally the RFC might be wrong, there's one for how HTTP Cookies should work and it describes how a working group decided they should work - but they just kept working the way they had before anyway]
All TLS 1.3 key agreements will thus be based on information chosen by both parties, which enables Forward Secrecy.
The people this work is addressing (like big banks) are often part of EDCO (Enterprise Data Center Operators) who tried to get RSA kex put back into TLS 1.3. They failed largely because the IETF isn't a democracy. We aren't a government, we do not believe in Kings, or Presidents, or Voting. We do engineering here, we believe in rough consensus and running code. They also failed because of IETF Best Common Pratice #188, "RFC 7258 : Pervasive Monitoring Is an Attack" which says the IETF should design protocols to resist this stuff.
Harm minimisation is why you'd have a place where junkies can get clean needles rather than sharing used needles. If you don't like the junk example, how about booze? Americans tried making it outright illegal, didn't go well, but now they have a lot of rules. The rules make the booze not safe - booze is poisonous, but at least less dangerous than it might have been, with fewer inadvertent casualties, less associated crimes, and so on.
Reading through the RFC you referenced ends with this interesting conclusion:
Making networks unmanageable to mitigate PM is not an acceptable outcome,
but ignoring PM would go against the consensus documented here. An
appropriate balance will emerge over time as real instances of this
tension are considered.
Perhaps this is one of the first instances of this tension, at least re: tls1.3? It also doesn't seem that the IETF is quite as uninterested in considering provisions around network management...I find that a bit unfortunate as network management has a long history of think-of-the-children harm mgmt style abuses. Hopefully this mainly means that they're willing to design protocols in a way that facilitate management without weakening them to PM attacks.
But I'm not talking conspiracy here, I just feel like providing a 5 volume tech manual on how to do pervasive monitoring under TLS1.3, no matter their stated justification, is antithetical to their purported mission.
"Addressing Visibility Challenges" is a masterpiece of bloviating Orwellian sophistry to describe the bare, brute contradiction now at the heart of "Enterprise"; that we want confidentially but we don't want confidentiality.
It's encrypted so you don't get visibility. End of. Sort out your trust models, Sort out your end points. Sort of the principles behind your endpoints (viz. loyalty, training etc).
The solution: a "five volume" guide to how you can have something and not have it at the same time. This is an industry openly at war with itself.
MITM of network traffic historically was the easiest way to monitor what goes in and out of ones network. It's still pretty easy. It's a corporate resource, the ethics aren't that bad.
People say to inspect the endpoint. I'm simply not sure the technology is there to inspect data destined to leave an endpoint in clear text. The next step would be for apps to encrypt data before they let the operating system know they want to send data outbound.
Then the next step is to only allow applications that comply with some sort of framework for content inspection prior to sending stuff over the network. I don't know if there's any thing like that currently.
I work for a telecom company registered in NJ. What law says web-developers employee traffic should be intercepted?
Perhaps if a network were highly segmented, one could find a way to get away from intercepting all employees. Anyone with access to business data, though? That's the way it is.
Citation needed. Why do they need to compromise network security instead of doing it on the endpoints? Because they paid for expensive, crappy, software that can't do that? Sounds like their problem.
> The latest internet security protocol, known as TLS 1.3, makes it more challenging to comply with these requirements while maintaining web traffic security.
Good! This is important. Far more important than some orgs needing to buy new software licenses.
I'm wondering as well. My guess: these practices are not mandated by law, but by industry "standards" that are part of contractual agreements, and required by a customer or an insure company, for example. Some of those standards are good, some are a pure product of bad bureaucracy...
Better to monitor all devices for unusual network behaviour, and monitor the endpoints themselves with antivirus.
That last is one of the reasons why I think enterprise ad blocking is an important security measure, and a likely outcome for sensitive jobs will be separating sessions - e.g. if you have general purpose browsing happening on a separate computer, some kind of remote session, etc. you will have a much easier time being able to restrict the network connectivity of the system with more sensitive data.
The law requires certain things. If your protocol doesn't account for those things, then your protocol will be broken to bend to the law's will. It would often be much better to have some small compromise in privacy, rather than lose it all. "All or nothing" has some extreme outcomes.
Yes, some people do want privacy at all costs. But what about the rest of us? We send postal mail in envelopes and leave them sitting in boxes open to the street. Our phone calls traverse networks unencrypted and are overhead nearby. Our credit cards and secret PINs can be input at public facilities that enable stealing. Our laptops sit at home or work and can be broken into and memory dumped for encryption keys. In practice, 99% of us are completely fine with an acceptable risk of a possible loss of privacy. We help bolster this with laws and punishments should someone violate our privacy. But what we don't do is engineer our lives as if we're all spies hiding from an execution.
There are practical changes that could be made to allow for better functionality, whilst not having absolute privacy at every conceivable technical level, but still more than enough privacy that what we care about most is still reasonably private. Then there might be enough mild privacy lost to enable organizations the functionality they need, and we would lose less to the "all or nothing" consequences.
The thing is, there is an extremely small number of people who have the privilege and power to change things, because they're in the room and we're not. Like the generals carving up Africa because they happen to be in the right room. Personally, I think these decisions have fallen to a few people in a room for far too long. I think we should have public, wide ranging discussions about the nature of how we build the underpinnings of our world. If we don't, the consequences could be more "all-or-nothing" that ends up harming more than otherwise.
Which rooms? In a lot of cases the situation is that you didn't bother to show up. Not always, but probably more often than you realise.
The IETF Working Group where TLS 1.3 was designed for example is just an IETF activity. You can literally just do that, it's actually probably harder to participate in Hacker News.
The "Root Trust Stores" are notionally controlled by a handful of tech businesses. Google, Apple, Microsoft. But, wait, Mozilla also controls one of these "Root Trust Stores" for Firefox and in practice for the Free Unix systems and most Free Software, and what do you know, since they decide behind closed doors we don't know how Google, Apple and Microsoft decide what to do - maybe they each have a thousand smart people deciding - but it sure does seem like they watch what Mozilla does and largely do the same thing. And how does Mozilla decide? An entirely public discussion m.d.s.policy. You could participate in that discussion today.