5 ms·
For anyone who's interested in a technical writeup of the implementation, I did one here: https://mjg59.dreamwidth.org/66791.html https://mjg59.dreamwidth.org/6
by mjg59 3y ago
For anyone who's interested in a technical writeup of the implementation, I did one here: https://mjg59.dreamwidth.org/66791.html https://mjg59.dreamwidth.org/66791.html . There's code in the iOS app that would mitigate the MITM issue, but would also restrict users to only being able to read encrypted DMs on a single device, and it seems like they decided functionality was more important than security in this respect (which is not an unreasonable tradeoff, as long as it's well-communicated to users). Group conversations are also unsupported in the deployed codebase, so the concerns I had there may end up handled in some other way (though it's going to be difficult to manage that and also retain reasonable user experience). The perils of reviewing code before you can actually test the feature.
Overall I think my original conclusion still holds. If you're going to use Twitter DMs, turning on encryption is better than not doing so. But right now it's protecting against someone with opportunistic access to the Twitter prod databases, not an advanced attacker or someone with subpoena powers, and if you have to worry about that you should definitely use Signal instead.
(Edit: someone asked whether working on fruitflies would have been more relaxing than reverse engineering weird encryption, and I wrote this reply, but they'd deleted the comment. You get the reply anyway:
Reverse engineering fruitflies means reverse engineering something that's almost entirely undocumented, what documentation does exist is frequently wrong, that has almost 4 billion years of tech debt, that relies on self-modifying code, executed on a series of components that aren't fully deterministic, that can only be bootstrapped from existing fruitflies, that has no debugger, that had no functional specification, that has an instruction set where the behaviour of an instruction can depend on the three dimensional structure of the encoding of those instructions and so be influenced by instructions that are several thousand (if not million) instructions away in what looks like an entirely separate compilation unit, and if you change the temperature or humidity or any number of other apparently irrelevant factors will just behave entirely differently. And, if you fuck up, you suddenly have a room full of fruitflies.
So, yes, reverse engineering Java is definitely more relaxing.)
- deleted 3y ago[deleted]
- NeuroCoder 3y agoThat last bit is how I sometimes feel about figuring out how the brain works compared to casually learning computer science stuff on the side. I love being a part of improving our knowledge of how the brain develops and sometimes goes wrong, but it's way easier to debug obscure source code than the brain.
- canadiantim 3y agoI’d just add that reverse engineering fruit flies (realistically some component thereof) is actually much easier and relaxing than you suggest. Because fruit flies are a model organism, they are therefore one of the most studied organisms in the world. We arguably know more about fruit flies than humans and try to extrapolate what we know about fruit flies to humans (with varying success). I guess my point is that reverse engineering fruit flies is actually very well documented (in the biological literature, and even textbooks, very well established for decades now).
- thaumasiotes 3y agoThere is a lot of documentation on fruit flies. However, the share of fruit fly functionality that is documented is much less than 0.001%. This is fairly described as "undocumented".
- twic 3y agoAn unavoidable pain point when working with fruit flies is that there is no way to store them. A fruit fly is either alive, crawling around in a glass tube eating banana paste, or dead. Once it's dead, you can't do experiments on it, and you can't breed it. Fruit flies are used because it is easy to do genetics on them. Genetics means causing random mutations, selecting for something, then breeding them true to make a mutant strain, then crossbreeding, making further mutants, and doing experiments on all the results. Each of those mutant strains is part of your scientific 'capital', something you've invested in and want to extract returns from. You have to preserve it. And to preserve it, you need to transfer ('flip') flies of that strain to a fresh tube of banana paste every three weeks. For all of your strains. Without ever missing a flip. So i'm not sure that working on fruit flies is relaxing, exactly. Maybe if you can afford a technician to look after them for you!
- dancemethis 3y agoHow to prove Twitter can't tamper with the implementation on their server side?