cultural reviewer and dabbler in stylistic premonitions

  • 2 Posts
  • 26 Comments
Joined 2 years ago
cake
Cake day: January 17th, 2022

help-circle
  • Mattermost isn’t e2ee, but if the server is run by someone competent and they’re allowed to see everything anyway (eg it’s all group chat, and they’re in all the groups) then e2ee isn’t as important as it would be otherwise as it is only protecting against the server being compromised (a scenario which, if you’re using web-based solutions which do have e2ee, also leads to circumvention of it).

    If you’re OK with not having e2ee, I would recommend Zulip over Mattermost. Mattermost is nice too though.

    edit: oops, i see you also want DMs… Mattermost and Zulip both have them, but without e2ee. 😢

    I could write a book about problems with Matrix, but if you want something relatively easy and full featured with (optional, and non-forward-secret) e2ee then it is probably your best bet today.









  • That’s complicated to do correctly. Normally, for the server to verify the user has the correct password, it needs to know or receive the password, at which point it could decrypt all the user’s files. They’d need to implement something like SRP.

    What I proposed is that the server does not know the password (of course), but that it knows a thing derived from it (lets call it the loginSecret) which the client can send to obtain the encryptedMasterKey. This can be derived in a similar fashion to the keyEncryptionKey (eg, they could be different outputs of an HKDF). The downside to the server knowing something derived from the passphrase is that it enables the server to do an offline brute force of it, but in any system like this where the server is storing something encrypted using [something derived from] the passphrase the server already has that ability.

    Is there any downside to what I suggested, vs the current design?

    And is there some reason I’m missing which would justify adding the complexity of SRP, vs what I proposed above?

    The only reason I can think of would be to protect against a scenario where an attacker has somehow obtained the user’s loginSecret from the server but has not obtained their encryptedMasterKey: in that case they could use it to request the encryptedMasterKey, and then could make offline guesses at the passphrase using that. But, they could also just use the loginSecret for their offline brute-force. And, using SRP, the server still must also store something the user has derived from the password (which is equivalent to the loginSecret in my simpler scheme) and obtaining that thing still gives the adversary an offline brute-force opportunity. So, I don’t think SRP provides any benefit here.


  • edit: the two issues i raised in this comment had both already been addressed.

    this was the developer’s reply on matrix:

    1. We do have a CLA: https://cla-assistant.io/ente-io/ente
    2. We will update the iOS app to offer you an option to point to your self hosted instance (so that you can save yourself the trouble of building it): https://github.com/ente-io/ente/discussions/504
    3. The portion of the document that deals with authentication has been outdated, my bad. We’ve adopted SRP to fix the concerns that were pointed out: https://ente.io/blog/ente-adopts-secure-remote-passwords/
    here is my original comment

    AGPL-3.0

    Nice

    This would be nice, but, this repo includes an iOS app, and AGPL3 binaries cannot be distributed via Apple’s App Store!

    AGPL3 (without a special exception for Apple, like NextCloud’s iOS app has) is incompatible with iOS due to the four paragraphs of the license which mention “Installation Information” (known as the anti-tivoization clause).

    Only the copyright holder(s) are able to grant Apple permission to distribute binaries of AGPL3-licensed software to iOS users under non-AGPL3 terms.

    Every seemingly-(A)GPL3 app on Apple’s App Store has either copyright assignment so that a single entity has the sole right to distribute binaries in the App Store (eg, Signal messenger) or uses a modified license to carve out an Apple-specific exception to the anti-tivoization clause (eg, NextCloud). In my opinion, the first approach is faux free software, because anyone forking the software is not allowed to distribute it via the channel where the vast majority of users get their apps. (In either case, users aren’t allowed to run their own modified versions themselves without agreeing to additional terms from Apple, which is part of what the anti-tivoization clause is meant to prevent.)

    Only really nice when not CLA is required and every contributor retains their copyright. Ente doesn’t seem to require a CLA.

    I definitely agree here! But if it’s true that they’re accepting contributions without a CLA, and they haven’t added any iOS exception to their AGPL3 license, then they themselves would not be allowed to ship their own iOS app with 3rd party contributions to it! 😱 edit: it’s possible this is the case and Apple just hasn’t noticed yet, but that is not a sustainable situation if so.

    If anyone reading this uses this software, especially on iOS, I highly recommend that you send the developers a link to this comment and encourage them to (after getting the consent of all copyright holders) add something akin to NextCloud’s COPYING.iOS to their repository ASAP.

    cc @ioslife@lemmy.ml @baduhai@sopuli.xyz @skariko@feddit.it

    (i’m not a lawyer, this is not legal advice, lol)

    edit: in case a dev actually sees this… skimming your architecture document it looks like when a user’s email is compromised (“after you successfully verify your email”), the attacker is given the encryptedMasterKey (encrypted with keyEncryptionKey, which is derived from a passphrase) which lets them perform an offline brute-force attack on the passphrase. Wouldn’t it make more sense to require the user to demonstrate knowledge of their passphrase to the server prior to giving them the encryptedMasterKey? For instance, when deriving keyEncryptionKey, you could also derive another value which is stored on the server and which the client must present prior to receiving their encryptedMasterKey. The server has the opportunity to do offline attacks on the passphrase either way, so it seems like there wouldn’t be a downside to this change. tldr: you shouldn’t let adversaries who have compromised a user’s email account have the ability to attack the passphrase offline.

    (i’m not a cryptographer, but this is cryptography advice)










  • deviating slightly from pure open source principles

    saying that prohibiting redistribution is just “deviating slightly from pure open source principles” is like saying that a dish with a bit of meat in it is just “deviating slightly” from a vegetarian recipe.

    if you saw a restaurant labeling their food as vegetarian because their dishes were based on vegetarian recipes, but had some meat added, would you say that it seems like their intentions are good?

    to protect their users from scammy clones

    As I said in another comment, the way free open source software projects should (and can, and do) generally do this is using trademark law. He could license it under any free software license but require derivatives to change the name to avoid misleading or confusing users. This is what Firefox and many other projects do.

    TBH we’re not really into strictly following the letter of the law in the pirate community

    In the video announcing the project Louis Rossmann explicitly says he intends to vigorously enforce this license. Since it is a copyright license, the only ways of actually enforcing it are to send DMCA takedowns and/or sue people for copyright infringement.


  • there is no single universally agreed upon definition

    There is an overwhelmingly agreed-upon definition. Look at who agrees with it: https://opensource.org/authority/

    And who doesn’t agree? Historically, a few of the giant software companies who were threatened by the free software movement thought that “open source” was a way for them to talk the talk without walking the walk. However, years ago, even they all eventually agreed about OSI’s definition and today they use terms like source-available software for their products that don’t meet it.

    Today it is only misinformed people like yourself, and grifters trying to profit off of the positive perception of the term. I’m assuming Louis Rossman is in the former category too; we’ll see in the near future if he acknowledges that the FUTO license is not open source and/or relicenses the project under an open source license.

    there are over 80 variations of open source licenses all with different term and conditions. Some are more permissive, some less so. Yet they can all be considered a variation of open source, though I’m anticipating you wouldn’t agree?

    There are many open source licenses, and many non-open-source licenses. there is a list of licenses which OSI has analyzed and found to meet their definition; licenses which aren’t on that list can be open source too… but to see if they are, you would need to read the license and the definition.

    Have you read The Open Source Definition? I’m assuming not.

    I can’t understand why you are acting like the definition police here, it seems very pedantic tbh.

    It’s because (1) FUTO are deceiving their customers by claiming that their product is something which it isn’t, and (2) they’re harming the free and open source software movements by telling people that terms mean things contrary to what they actually mean.