- From: Evan Prodromou <evan@status.net>
- Date: Wed, 12 Sep 2012 16:36:44 -0400
- To: public-fedsocweb@w3.org
- Message-ID: <5050F25C.7010303@status.net>
On 12-09-07 01:55 AM, Michiel de Jong wrote: > Cool stuff! some remarks - > > 1) The Date field seems to introduce a one-second granularity which > seems quite arbitrary. For instance, if a client is continuously > sending one request every 10ms with the same token, then this would > cause the server to have to check its validity once every 100 > requests. Also the other way around, if a client sends a request every > 10s, then each request needs to trigger a check, even though maybe you > would want the token to have a validity of say 5 minutes. The "token" field makes it possible to send as many requests as you want. You can only have one request with the same (host | webfinger, endpoint URL, token, date) tuple. This makes the token carry the weight both for sub-second granularity /and/ for sufficient randomness to provide brute-force attacks, but it seems to work OK for OAuth, so I think it should be OK here. Since it's of arbitrary size, you can fine-tune as needed. > 2) about 7.6 DoS, you mention caching of host-meta and webfinger, but > what if the client sends many different tokens? then the server would > still have to do many requests to the third party, right? the client > would still have the same work to attack the third party, but it would > be harder for the third party to block the attacker (other than taking > down its whole dialback auth service for any IP address, which was the > presumed purpose of the attack anyway). i don't see how a sysadmin > could defend against that, other than making sure it has a lightweight > method to distinguish its own tokens from the attacker's tokens, and > then just try to sustain the attack by adding enough server power > while it lasts. Right. I think that the correct way to handle this, on the server side, is to do exponential backoff if you're getting too many errors from a dialback endpoint. I think the typical thing to say in specifications is "take appropriate action" or "consider very seriously the ramifications". I think this is an issue, but it can be dealt with. > > 3) the client's original http request stays open while verification is > taking place, right? so maybe an extra remark about timeouts would be > in place. If the verification service takes longer than say 3000ms to > answer, then the server is allowed to treat that as a 'no', even if a > 'yes' would still have arrived after waiting longer. Hmm. > > 4) on that note, say i vote up some blogpost. it's not vital to know > whether my vote counts, i just want my client to get a quick response > from the server. Could the server respond with a 202 Accepted and deal > with the decision (e.g. whether to publish a comment that was posted > or discard it) afterwards? just a thought in the 'someone might want > to' category. ;) I think that makes total sense. > > 5) does this deprecate the From: header in a way? (section 14.22 of rfc2616) I'm going to punt on this. The From: header is pretty rarely used, and it's explicitly not for authentication (" It SHOULD NOT be used as an insecure form of access protection."). That said, Blaine's an advocate. > 6) the big open issue now seems to be per-host vs per-user. You > started by saying webfinger but Mart argued a good point that per-user > granularity is maybe not so useful, and Blaine also mentioned (iiuc) > separating the question of which hosts trust each other in > server-to-server comms from the question of which user can do what > where. > I think the important point to make is that this protocol only > introduces a sort of trustable From: header, and what the server does > with that verified information is i think out of scope. So even if > announcing the verification service can probably be announced > per-host, i think we would typically use it to send verifiable > webfinger identities along with our http requests. Being able to do > that is a really cool feature with many possible applications. > I agree. Thanks for the feedback! I'm going to try to capture these on the Github page, https://github.com/evanp/dialback/issues -Evan
Received on Wednesday, 12 September 2012 20:37:07 UTC