• 7 Posts
  • 46 Comments
Joined 7 months ago
cake
Cake day: February 10th, 2024

help-circle
  • Discord’s audio and video end-to-end encryption (“E2EE A/V” or “E2EE” for short)

    That last bit is a little concerning. E2EE is widely understood to mean full end-to-end encryption of communications, not selective encryption of just the audio/video bits while passing the text around in the clear. If Discord starts writing “E2EE” for short when describing their partial solution, it is likely to mislead people into thinking their text chats are protected, or thinking that Discord is comparable to real E2EE systems. They aren’t, and it isn’t.

    We want an E2EE A/V protocol that is publicly auditable

    Their use of the word “auditable” here is also concerning. What does it mean for a protocol to be auditable? Sure, it’s nice that they’re publishing their design, but that doesn’t allow independent audit of the implementation that actually runs on their servers and (importantly) people’s devices. Without publicly auditable code that can be independently, built, run, and used instead of the binaries they provide, there’s no practical way to know that it matches the design that was reviewed. And even if code is made available, without a way to verify that the code being run is the code that was inspected, any claim giving the impression that the system was audited is misleading at best.

    During the rollout phase, a single non-supporting member being present forces the call to transport-only encryption. The call will automatically “upgrade” to E2EE if that member disconnects.

    This sort of thing has historically been ripe for abuse. (See also: downgrade attack.) I hope they are very careful about how they implement it.

    The protocol uses Messaging Layer Security (MLS) for group key exchange

    Interesting. This makes me wonder if their motivation might be eventual compliance with the European Digital Markets Act. If that is the case, perhaps they also have a plan in the works for protecting text chats?

    My early impression, based on what they wrote:

    This won’t fix Discord’s major fundamental flaws. However, if their E2EE A/V design holds up to scrutiny, and if they were to fix their problematic language and provide truly auditable client code, the protection offered for audio & video could at least reduce Discord users’ exposure to unwanted harvesting of voice & face samples. A step in the right direction, and a timely one, given that biometric data collection and AI impersonation are on the rise.





  • https://en.wikipedia.org/wiki/Internet_Draft

    I think it’s pretty clear that IETF drafts are not what author meant when he wrote draft, and I’m pretty sure the IETF doesn’t have much to do with C++ standards.

    Are you under the impression that there is no other sense of the word?

    It might help you in the future when you are discussing things like drafts, specifications, and proposals.

    As it turns out, I have done more than a little of that. Thankfully, I don’t usually see such condescending remarks in the process, nor such insistence on misunderstanding. Good luck to you, too.




  • mox@lemmy.sdf.orgOPtoProgramming@programming.devSafe C++
    link
    fedilink
    arrow-up
    8
    arrow-down
    9
    ·
    edit-2
    6 days ago

    this is yet another competing standard of static analysis.

    No, it isn’t.

    Those are linters. They might or might not discover problematic use of unsafe language features lurking in existing code.

    This proposal is a new iteration of the language and standard library. It would provide safe language features for preventing such problems existing in the first place.




  • That number is a single manufacturer’s performance target. It is not a guarantee of results. You might be able to get Intel to replace an SSD if it corrupts data in under 52 weeks (assuming you notice it) but your data will still be gone.

    Hardware performance can and does vary by manufacturer, model, and production run. Even the nominally identical cores within a single CPU have slightly different operating limits. YMMV.

    Note also: the 52 week target you quoted is halved for every 5° rise in temperature.


  • I explained that they ought to be recipes to new media every N number of years or risk deteriorating or becoming unreadable

    This is important, and for some media, it should be more often than that.

    People forget that flash memory uses electrical charge to store data. It’s not durable. If left unpowered for too long, that data will get corrupted. A failure might not even be visible without examining every bit of every file.

    Keep backups. Include recovery data (e.g. PAR2). Store them on multiple media. Keep them well-maintained (e.g. give flash drives power). Mind their environment. Copy them to new storage devices before the old ones become obsolete.

    It’s funny that with all our technology, paper is still the most durable storage medium (under normal conditions) that doesn’t cost an arm and a leg.






  • An SD card lasts for years, and the amount of plastic in one is negligible. It’s just not an issue.

    Hark! The ghosts of countless generations of short-sighted polluters cry out in complacent, rationalizing unison!

    It’s not about expecting one model of memory card to save the Earth. It’s about moving away from needless production of toxic materials, everywhere.

    And if you don’t care, nobody’s going to force you to read The Lorax, but please don’t go around shitting on people’s appreciation for even the small things.






  • Control+F: VMS

    Phrase not found

    Disappointing that the author didn’t seem aware of Windows NT’s connections to VMS. Some fun facts:

    • Dave Cutler, the WNT lead architect, previously worked on VMS.
    • Several of WNT’s internal systems bear similarity to those in VMS.
    • VMS is a closer contemporary of Unix than WNT is.
    • Advancing each letter in “VMS” yields “WNT”. (It has long been speculated that this was no accident.)

  • I’m trying to understand Git, but it’s a giant conceptual leap.

    In that case, I suggest learning Mercurial first. Its underlying design is very similar to Git, but the interface is more consistent and does a much better job of presenting the concepts to humans (especially those already familiar with traditional version control). Then, once you’re comfortable with the concepts and commands in Mercurial, learn Git, since it’s everywhere nowadays.

    Consider learning at least one new language, if not immediately (since you’re in a hurry) then in your free time. Java is only one of many (and not even a particularly nice one IMHO). Try to find a language that you enjoy using; your programming life will be better for it. If you want something flexible and productive, consider Python. For more structure than that, maybe Go. If mobile apps interest you, there are Kotlin (Android), Swift (iOS), and Dart (both). If web development appeals to you, along with lots of job openings and lots of competition for those jobs, JavaScript. If you fancy the esoteric (and well-paying), Elixir and Erlang are worth a look. Lower level languages are in demand as well (e.g. C++, Rust) but they come with various kinds of pain that I wouldn’t recommend to someone in your situation.

    Above all, please make sure you’re reserving time for things that make you happy, sleep, and (if still possible) some kind of exercise. Your own physical and mental health are important. If you endure a bad working environment or wear yourself thin for too long, you will burn out, which won’t help you provide for yourself or anyone else.

    Take care, OP.