bitpay / bitauth

Authenticate with web services utilizing the same strategy as Bitcoin.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Http-Signatures

adrianhopebailie opened this issue · comments

Did you consider just using HTTP-Signatures:
https://web-payments.org/specs/source/http-signatures/

If you were aware of it I am interested to know why you felt it was insufficient?

Some more feedback from Manu on this issue:

On 07/03/2014 02:58 PM, Adrian Hope-Bailie wrote:
Am I missing something or is this HTTP-Signatures with a small
twist?

If you're missing something, I'm missing it too. It seems like a really
restricted subset of HTTP-Signatures with a lock-in to the crypto
algorithm and "things that you can sign" with a few major security holes
thrown in.

Features that are missing from the solution that HTTP Signatures has:

  • Ability to digitally sign HTTP headers (because you can do a lot of
    nasty things by modifying important headers... like 'Location:' ).
  • Ability to not sign the body if that doesn't make sense (like when
    you're streaming GBs of data or using trailers or ...)
  • Ability to sign the HTTP method, which is really important:
    GET /me/accounts/life-savings
    DELETE /me/accounts/life-savings
  • Ability to identify keys in a greater variety of ways
    (URL, fingerprint, etc.)
  • The server can specify when it expects a digital signature when
    accessing a resource.
  • Easy to share keys between clusters of clients.
  • HMAC support, because there are legitimate uses of it even though
    it's bad in general.
  • Ability to select the key format and signing algorithm

I'm going to stop there, but the solution seems questionable. There's
nothing in there that I can see that the HTTP Signatures spec doesn't
already do.

The only thing that makes it similar in any way to BitCoin is the
use of a ECDSA secp256k1 keypair

Bitcoin is great so this must be great if it even uses a fraction of
Bitcoin technology, right? Marketing, marketing, marketing! :P

-- manu

Manu Sporny (skype: msporny, twitter: manusporny, G+: +Manu Sporny)
Founder/CEO - Digital Bazaar, Inc.
blog: The Marathonic Dawn of Web Payments
http://manu.sporny.org/2014/dawn-of-web-payments/

It does not seem to be Http-Signatures as the focus appears to be primarily on the data transported. There appears to be the presumption that you are tunnelling data (an underlying protocol) sufficiently able to handle issues related to message replay and MITM. e.g. the protocol being tunnelled includes a nonce and other protections.

On the plus side it is much closer to transport independence. You can argue whether it is positive or negative to keep HTTP metadata out of the security envelope.