Re: Show: blog about http signatures

Hello, Marcus.

Think about the following scenario:

There are two ActivityPub server implementations, A (and actor a), B 
(and actor b), and malicious attacker M.

M sends an Activity to server B's inbox with an object that claims it 
originated from server A's actor a, and its to or cc does not include 
"https://www.w3.org/ns/activitystreams#Public".

Without the HTTP signature, since the object is not public, there is no 
way to validate it by requesting the original object from server A. 
Server A  can't validate the requester's identity, so it cannot give the 
original object. TLS can't help here because there is no way to 
distinguish M and B apart. (Let's not talk about TLS client cert. It is 
hard on ActivityPub and will not work well when the server administrator 
cannot control TLS termination such as CDN)

The HTTP signature or JSON-LD signature solves this problem. Server B 
asks for Actor a's public key to server A and validates the HTTP request 
or object against the retrieved key. M cannot spoof the signature 
without tampering with server B, so this effectively prevents M from 
masquerading as an Actor on server A.

If there is any alternative idea, please let us know. Unfortunately, 
your blog article does not describe alternative methods to solve this 
problem except "TLS", so I don't have any idea about how you are going 
to improve this signature madness.


On 08/10/2024 16:20, Marcus Rohrmoser wrote:
> 
> Dear fellow swicglers,
> 
> recently I came across http signatures again and wrote down what I found this time.
> 
> In the meantime, Johannes pointed me to a w3c report on the topic, which confirmed my suspicion that it serves no usecase and is possibly a cargo cult.
> 
> I'm eager to hear your take on it.
> 
> https://blog.mro.name/2024/10/http-signing/
> 
> Your,
> Marcus
> 

Received on Tuesday, 8 October 2024 17:43:17 UTC