Hi all,

I'm working with financial APIs - APIs to initiate payments and APIs to
retrieve balances and transactions.

May of these APIs are protected by OAuth 2.0 profiles, however there is a
requirement to support the signing of API requests and responses for
non-repudiation purposes.

For example a bank may want to record an API request from a third party
that is used to set-up the details for a payment. If there is a dispute
with the payment, the bank can retrieve the signed API request as proof
that the third party set-up the payment.

On the response side, a third party may want to record an API response from
a bank that contains a list of transactions. Eventually such a signed
payload could be used as part of a loan application (rather than the
existing method of scanned in paper statements).

In Europe we have a number of standards groups who are defining these APIs
on behalf of banks. Unfortunately they are all taking different approaches
to this problem - including the use of a draft that I understand isn't on a
standards track.

Berlin Group (https://www.berlin-group.org/nextgenpsd2-downloads) requires
the use of the individual "Signing HTTP Messages" draft -
https://datatracker.ietf.org/doc/draft-cavage-http-signatures/

STET (https://www.stet.eu/en/psd2/) also requires the use of the same
"Signing HTTP Messages" draft.

OpenBanking UK specifies the use of RFC7515 (JWS) & RFC7797 (JWS Unencoded
Payload Option) - specifically with the detached payload option. However
they require a custom header: `x-jws-signature` and custom private header
parameter names that replicate `iat` and `iss` keys that are normally in
the JWT body. (
https://openbanking.atlassian.net/wiki/spaces/DZ/pages/5785171/Account+and+Transaction+API+Specification+-+v1.1.0#AccountandTransactionAPISpecification-v1.1.0-Non-repudiation
)

I have a number of questions that it would be great to hear your views on:

1. Does anyone have further information about
the draft-cavage-http-signatures spec - I am concerned about an individual
draft being used for these high value APIs?

2. Are there any views on a better way to solve this problem, for example:
https://tools.ietf.org/html/draft-erdtman-jose-cleartext-jws-00

The reason I've heard against just returning a JWT is that it means that
APIs are essentially just serving blobs of encoded data which could make
them harder to develop against or debug.

I don't like the idea of a detached signature in the header as it makes the
process of storing the data for later non-repudiation purposes harder and
more error prone (when compared to a message with a self-contained
signature).

While in some ways tangential to OAuth, I believe that this working group
is well placed to solve this problem. I am concerned that as things stand
we will end up without any interoperability for this problem due to the
lack of appropriate standards.

Thanks

Dave
_______________________________________________
OAuth mailing list
OAuth@ietf.org
https://www.ietf.org/mailman/listinfo/oauth

Reply via email to