zlacker

[parent] [thread] 14 comments
1. Syonyk+(OP)[view] [source] 2021-07-20 20:46:03
... against nihilism? They're just sort of handwaving and saying, "Well, uh... we should do better, somehow... and expect Apple to do better, and... uh..." How's that any different from saying "The problem is basically impossible"?

The core of the problem is complexity. Our modern computing stack can be broadly described as:

- Complexity to add features. - Complexity to add performance. - Complexity to solve problems with the features. - Complexity to solve problems created from the performance complexity. - Complexity added to solve the issues the previous complexity created.

And this has been iterating over, and over, and over... and over. The code gets more complex, so the processors have to be faster, which adds side channel issues, so the processors get more complex to solve that, as does the software, hurting performance, and around you go again.

At no point does anyone in the tech industry seem to step back and say, "Wait. What if we simplify instead?" Delete code. Delete features. I would rather have an iPhone without iMessage zero click remote exploits than one with animated cartoons based on me sticking my tongue out and waggling my eyebrows, to pick on a particularly complex feature.

I've made a habit of trying to run as much as I can on low power computers, simply to see how it works, and ideally help figure out the choke points. Chat has gotten comically absurd over the years, so I'll pick on it as an example of what seems, to me, to be needless complexity.

Decades ago, I could chat with other people via AIM, Yahoo, MSN, IRC, etc. Those clients were thin, light, and ran on a single core 486 without anything that I recall as being performance issues.

Today, Google Chat (having replaced Hangouts, which was its own bloated pig in some ways) struggles to keep up with typing on a quad core, 1.5GHz ARM system (Pi 4). It pulls down nearly 15MB of resources - or roughly 30% of a Windows 95 install. To chat with someone person to person, in the same way AIM did decades ago. I'm more used to lagged typing in 2021 than I was in 1998.

Yes, it's got some new features, and... I'm sure someone could tell me what they are, but in terms of sending text back and forth to people across the internet, along with images, it's fundamentally doing the exact same thing that I did 20 years ago, just using massively more resources, which means there are massively more places for vulnerabilities, exploits, bugs, etc, to hide. Does it have to be that huge? No idea, I didn't write it. But it's larger and slower than Hangouts, to accomplish, as far as I'm concerned, the same things.

We can't just keep piling complexity on top of complexity forever and expect things to work out.

Now, if I wanted to do something like IRC, which is substantially unchanged from the 90s, I can use a lightweight native client that uses basically no CPU and almost no memory to accomplish this, on an old Pi3 that has an in-order CPU with no speculation, and can run a rather stripped down kernel, no browser, etc. That's going to be a lot harder to find bugs in than the modern bloated code that is most of modern computing.

But nobody gets promoted for stripping out code and making things smaller these days, it seems.

As long as the focus is on adding features, that require more performance, we're simply not going to get ahead of the security bugs. And, if everyone writing the code has decided that memojis are more important than security iMessage against remote zero click exploits, well... OK. But the lives of journalists are the collateral damage of those decisions.

These days, I regularly find myself wondering why I bother with computers at all outside work. I'd free up a ton of "overhead maintenance time" I spend maintaining computers, and that's before I get into the fact that even with aggressive attempts to tamp down privacy invasions, I'm sure lots of my data is happily being aggregated for... whatever it is people do with that, send ads I block, I suppose.

replies(3): >>tptace+v >>ngneer+S4 >>3gg+0y
2. tptace+v[view] [source] 2021-07-20 20:48:13
>>Syonyk+(OP)
The bugs we're talking about have almost nothing to do with the underlying message transport, but rather the features built on top of it. Replacing iMessage with IRC wouldn't solve anything.
replies(1): >>Syonyk+p1
◧◩
3. Syonyk+p1[view] [source] [discussion] 2021-07-20 20:52:56
>>tptace+v
No, but my point is about complexity.

If all iMessage allowed were ASCII text strings, do you think it would have nearly the same attack surface as it does now, allowing all the various things it supports (including, if I recall properly, some tap based patterns that end up on the watch)?

In a very real sense, complexity (which is what features are) is at odds with security. You increase the attack surface, and you increase the number of pieces you can put together into weird ways that were never intended, but still work and get the attacker something they want.

If there were some toggle to disable parsing everything but ASCII text and images in iMessage, I'd turn it on in a heartbeat.

replies(3): >>tptace+a2 >>philip+c2 >>notrid+Iz
◧◩◪
4. tptace+a2[view] [source] [discussion] 2021-07-20 20:57:05
>>Syonyk+p1
Virtually no one wants to use a messaging platform that just sends ASCII strings.

It's true that if you constrain the problems enough, ratcheting them down to approximately what we were doing with the Internet in 1994 when we were getting access to it from X.25 gateways, you can plausibly ship secure software --- with the engineering budgets of 2021 (we sure as shit couldn't do it in 1994). The problem is that there is no market to support those engineering budgets for the feature set we had in 1994.

replies(1): >>Syonyk+y6
◧◩◪
5. philip+c2[view] [source] [discussion] 2021-07-20 20:57:23
>>Syonyk+p1
The "and images" part has historically been a rich source of software exploits. I would guess that chat with full Unicode support but no images would be easier to implement to a high degree of security than ASCII text plus images.
6. ngneer+S4[view] [source] 2021-07-20 21:09:30
>>Syonyk+(OP)
Well put. The market values features. With present system engineering approaches, the path of least resistance is to add complexity to enable said features and reap the financial rewards. It takes more effort to build smaller attack surfaces, so nature tends to avoid that path. Regulation helps little. Security is not additive, it is subtractive. Less is more. There is very little incentive to simplify, except in niche segments. So, zero surprise commodity systems fail so horrendously.
◧◩◪◨
7. Syonyk+y6[view] [source] [discussion] 2021-07-20 21:18:27
>>tptace+a2
> Virtually no one wants to use a messaging platform that just sends ASCII strings.

That's just about all I use for messages. Some images, but it's not critical. And if I had the option to turn off "all advanced gizamawhatchit parsing" in iMessage to reduce the attack surface, I absolutely would - and you can bet any journalist in a hostile country would like the option as well.

The whole "zero click" thing is the concerning bit - if I can remotely compromise someone's phone with just their phone # or email address, well... that's kind of a big deal, and this is hardly the first time it's been the case for iMessage.

If software complexity is at a point that it's considered unreasonable to have a secure device, then it's long past time to put an icepick through the phones and simply stop using them. Though, as I noted above, I feel this way about most of modern computing these days.

replies(2): >>tptace+e7 >>pixl97+yc
◧◩◪◨⬒
8. tptace+e7[view] [source] [discussion] 2021-07-20 21:21:22
>>Syonyk+y6
I 100% believe that this is all you do with messages. In the 1990s, my cool friends did lots of their work on Wyse dumb terminals hooked up to FreeBSD boxes. Everything they did worked fine on dumb terminals! They were neat, you could have a bunch of them hooked up to one box! But nobody else in the whole world worked that way; even the bank data entry people who were the original market for those stupid terminals had moved on from them.

The issue here is that we aren't saying anything about the real problem. You can radically scope software down. That will indeed make it more secure. But you will stop making money. When you stop making money, you will stop being able to afford the developers who can write secure software (the track record on messaging software written by amateurs for love is not great). Now we're back where we're started, just with shittier software.

It's a hard problem. You aren't wrong to observe it; it's just that you haven't gotten us an inch closer to a solution.

◧◩◪◨⬒
9. pixl97+yc[view] [source] [discussion] 2021-07-20 21:52:08
>>Syonyk+y6
So you speak English? And the rest of the world should do what?
replies(1): >>Syonyk+Zd
◧◩◪◨⬒⬓
10. Syonyk+Zd[view] [source] [discussion] 2021-07-20 22:03:12
>>pixl97+yc
I suppose I should have gone with "Unicode without emoji" instead of ASCII. I don't mind unicode, but I question the emoji parsing engines as they're doing all sorts of crazy stuff with modifiers, and even unicode rendering is oddly complex and likely has bugs in some corner case or another.

From a "I would like it as simple and secure as possible," ASCII does tick quite a few boxes.

replies(1): >>tptace+5f
◧◩◪◨⬒⬓⬔
11. tptace+5f[view] [source] [discussion] 2021-07-20 22:11:59
>>Syonyk+Zd
I think it's been single-digit months since the last UTF-8 parsing vulnerability.
replies(1): >>3gg+px
◧◩◪◨⬒⬓⬔⧯
12. 3gg+px[view] [source] [discussion] 2021-07-21 01:08:09
>>tptace+5f
Syonyk still has a point even though this thread has gone sideways.

Plot twist: extended ASCII?

13. 3gg+0y[view] [source] 2021-07-21 01:13:42
>>Syonyk+(OP)
This is a really good point here. Most corporate development that I have experienced is centered around "features" and speed. "I'm working on a new feature", "there has been a feature request", "the feature has a bug." The only time the complexity of the project is considered is by the time it fails and the team is canned.
◧◩◪
14. notrid+Iz[view] [source] [discussion] 2021-07-21 01:31:13
>>Syonyk+p1
First of all, getting rid of Unicode is not going to happen. Don’t ask.

Getting rid of images might be doable, but still difficult. Talking features away from people is politically difficult.

replies(1): >>Syonyk+NN
◧◩◪◨
15. Syonyk+NN[view] [source] [discussion] 2021-07-21 03:57:12
>>notrid+Iz
You know what else is "politically difficult"? Getting journalists and such killed because they're in a hostile nation, and your phone is vulnerable to remote zero-click exploits with full pwnage.

Give users the option. If you're not 100% confident in your parsing (and nobody should be), allow users the option to restrict parsing to something that's limited, tested, fuzzed, and generally trusted. People who care can turn it on. People who want touch memojis on their watch can leave it off.

[go to top]