I’m trying to create a web app that involves sharing of user-generated content, but one of the goals is that the service host operator should be blind to the content. Only authorized users should be able to see the content shared with them. This implies the content must be encrypted at rest, and users must hold custody of their private signing key.

I figure the situation requires an open source browser extension to hold onto a user’s keys and decrypt content for them. The web app would still be able to browse all of the site’s metadata, but any plaintext content must be siloed in the extension. The reason for using an extension is that the source code would be open source and independently verifiable, while building the same functionality into the web app would require trusting the host to serve the code you expect.

Do you think that’s a reasonable tradeoff or is this asking too much from users?

The other option would be just requiring users to download an open source app for content viewing.

EDIT: Perhaps an important followup: are you OK placing trust in the host to never access your confidential data if it means you don’t have to install additional client software or worry about verifying that client software’s authenticity?

  • HeHoXa@lemmy.zip
    link
    fedilink
    arrow-up
    1
    arrow-down
    1
    ·
    edit-2
    1 day ago

    Extensions can have more access.

    They can snoop / manipulate across tabs or even scan the local drive and execute system commands… when given the access.

    I had to make one for work once to let a web app run a legacy command prompt system. The web app’s search was better, but the users wanted to edit with the old tool.

    It was kind of interesting the way it worked. Not remembering the full details, I created an extension and a batch script and had to register the batch script with a group policy and declare the extension’s permission to run that batch script

    Then the users could search a client in the web app and press a button to bring up their profile in the prompt app.

    Not a recommended approach for public facing apps.

    *Edit: No! It wasn’t a batch script… exactly… it was a C# app compiled to .dll that accepted client id as an argument

    • lawks@aussie.zone
      link
      fedilink
      arrow-up
      0
      ·
      1 day ago

      When was the last time you wrote an extension? Long gone are the days when they could run system commands, and permissions must be declared in the manifest or they cannot be used, so if they aren’t in there, they’re not being used.

      • HeHoXa@lemmy.zip
        link
        fedilink
        arrow-up
        0
        ·
        1 day ago

        … 3 years ago ish?

        I tried to clarify with the edit, you’re sorta right, it wasn’t a system command. It was “native messaging”

        But you’re sort of full of it too, as you can use this native messaging to execute arbitrary logic. Nobody said you don’t need a manifest, and someone did say you needed a group policy entry too

        • lawks@aussie.zone
          link
          fedilink
          arrow-up
          1
          ·
          1 day ago

          I know what native messaging is, and I’m not “full of it” because native messaging does exactly nothing at all unless the user explicitly installs software at the system level to receive those messages and act upon them. If the user doesn’t know the difference between installing an extension in a browser and downloading & executing local programs, that’s an education problem, but having to do some separate installation step is a useful security obstacle. It’s much safer compared to old school extensions.

          Also, Firefox Quantum came out in 2017, which used the manifest permissions system (wasn’t Chrome ahead of them?), so the tech you were originally talking about is older than 9 years, not 3.

          • HeHoXa@lemmy.zip
            link
            fedilink
            arrow-up
            0
            arrow-down
            1
            ·
            1 day ago

            💩 semantic distinctions, extensions can run whatever when you register the logic in advance, as suggested in my first comment

            • lawks@aussie.zone
              link
              fedilink
              arrow-up
              1
              ·
              1 day ago

              If you think installing a downloaded program alongside your browser is a “💩 semantic distinction” from a bit of script running inside your browsers sandboxing, then it’s clear you either don’t know what you’re talking about, or you’d rather continue to to spread FUD than concede on basic facts.

              • HeHoXa@lemmy.zip
                link
                fedilink
                arrow-up
                0
                arrow-down
                2
                ·
                1 day ago

                It is he thing I suggested from the start.

                I already get you’re full of it. You don’t have to jeep selling me

                • lawks@aussie.zone
                  link
                  fedilink
                  arrow-up
                  1
                  ·
                  1 day ago

                  > Says they wrote an extension 3 years ago but doesn’t seem to know about decade-old isolation.
                  > Tries to tell everyone that extensions like OP’s can run system commands, despite their use case not having any need to do so.
                  > Accuses others of being full of it.

                  Jog on, mate.

                  • HeHoXa@lemmy.zip
                    link
                    fedilink
                    arrow-up
                    0
                    arrow-down
                    2
                    ·
                    1 day ago

                    All nonsense aside I recognize you were trying to be helpful in your own way.

                    I don’t much care for that way but bear you no genuine ill will and wish you the best.

                    💩

                  • HeHoXa@lemmy.zip
                    link
                    fedilink
                    arrow-up
                    0
                    arrow-down
                    2
                    ·
                    1 day ago

                    💩

                    For posterity, my original edit was in before his first comment.

                    So full of it