Trusted URLs via Cryptographic Signatures

(blog.certisfy.com)

21 points | by Edmond 7 hours ago ago

12 comments

  • Edmond 7 hours ago ago

    SDK: https://github.com/CipherTrustee/certisfy-js

    Web of trust use case example: https://bsky.app/profile/bitlooter.bsky.social

    Experimenting with Keybase key holders as CAs:

    https://www.reddit.com/r/Keybase/comments/1q5ys71/using_keyb...

    Cryptographic Implementation of Exclusivity Agreements: https://github.com/CipherTrustee/certisfy-claim-recipes/tree...

    Build Your Own Trust Chain: https://blog.certisfy.com/2026/04/build-your-own-trust-chain...

    Some other examples of how you could leverage it: https://blog.certisfy.com/

    Happy to answer questions.

    • AtHeartEngineer 6 hours ago ago

      Just emailed you, I'm working on something similar https://github.com/MinistryofMany

      it's basically an OIDC provider as an identity wallet using verifiable credentials, but I've got a "share link" system built in where you can share specific credentials/proofs with others.

    • __MatrixMan__ 4 hours ago ago

      This is cool. I'm glad to see others working in this space (you're further along than I am, nice work!)

      If I've understood it, certisfy makes it possible to do something like this:

          I-was-there-and-saw-this-happen(https://site.com/some-page-with-an-image)
      
      So maybe I follow the link and I see an image and since I trust you, I have reason to believe that the events depicted in the image are not AI generated.

      I'm building something similar. I've been avoiding URLs though because the above arrangement depends on site.com reliably serving the same image to all users. If you end up with a different image when you browse there, and you can falsify the claim, you don't know if I'm a liar, or if the underlying site changed.

      So my plan is to gossip fuzzy hashes around and use patterns in the data (rabin fingerpints, perceptual hashes, etc) to then go look up whether there are any claims about that data, attaching them after the DOM has rendered. Or maybe there's no DOM, maybe you're looking at a physical page of a book or something.

      Do you have any thoughts about what it would take to support claims about a site's content in addition to claims about its URL? I'm imagining something like:

          contains-an-image-with-hash(https://site.com/some-page-with-an-image, 0xabc123456def)
          I-was-there-and-saw-this-happen(0xabc123456def)
      
      That way it decomposes into separate claims which we can then verify or falsify separately, and I don't have to look like a liar when actually the site is the unreliable one. Also, if the site takes the image down, I might be able to use the hash in the claim to find whatever the claims refer to independently of where it's hosted.
      • bobbiechen 4 hours ago ago

        It looks like this is a project for nicer signed attestations. But it doesn't seem very opinionated about:

        1. What is the attester (signer) attesting to, exactly?

        This URL example is exactly this problem. And if you're really precise about it, they get less and less useful: "I attest that when I accessed this site at XYZ timestamp, it contained ABC content, and I saw ABC happen in person." or maybe alternatively to get away from the URL control, "I attest that these three non-malicious archives of this URL at this timestamp..."

        And 2. Why should I trust the attester?

    • pluto_modadic 6 hours ago ago

      what was the hardest part about this project?

      • Edmond 6 hours ago ago

        Everything :)

        But I wouldn't characterize it in terms of being hard.

        It's been a work in progress for many years,... so more of a problem solving and exploratory endeavor.

    • canadiantim 6 hours ago ago

      How do you foresee this being implemented or made popularly available?

  • tgma 5 hours ago ago

    Google AMP had the concept of Signed Exchanges so that you can host content on a third party server while proving its integrity https://developer.chrome.com/blog/signed-exchanges

    Unfortunately, AMP itself was controversial and the system was not really adopted elsewhere, but it is something.

  • Retr0id 5 hours ago ago

    What happens if the destination/contents of the URL changes after I sign it?

  • mahemm 6 hours ago ago

    How does this differ from e.g. S3 pre-signed URLs?

  • skinfaxi 4 hours ago ago

    What does this add over message signing?

  • westurner 5 hours ago ago

    How to implement signed URLs with W3C DID keys and W3C Verifiable Credentials?