PSD2 QSealC подписанное сообщение - PullRequest
0 голосов
/ 22 февраля 2019

Я везде искал пример подписанного сообщения QSealC и не смог найти никакой информации.Мне нужно проверить подпись полезной нагрузки со знаком QsealC И мне нужно подписать ответную полезную нагрузку, но я понимаю, что полезная нагрузка вся в json,

Есть ли примеры подписанных полезных нагрузок QSealC?

спасибо

1 Ответ

0 голосов
/ 12 мая 2019

Вы будете выполнять как подпись, так и проверку, как подробно описано в draft-cavage-http-signatures IETF , где вы должны уделить особое внимание разделу 4.1.1 для построения и разделу 2.5 для проверкиSignature header.

На этот проект ссылаются как Руководство по внедрению платформы XS2A NextGenPSD2 Берлинской группы , так и Stet (Франция).Однако обратите внимание, что это нормально, что каждая уникальная реализация предъявляет дополнительные требования к стандарту подписи сообщений HTTP, например, требуя подписи определенных заголовков или используя специально отформатированный идентификатор ключа.Я не уверен, ссылаются ли на него другие стандартизации, такие как Open Banking (Великобритания).

Обратите внимание, что вам не нужны действительные сертификаты QsealC PSD2, чтобы начать работу по внедрению или подписини процесс проверки, так как вы можете создавать свои собственные самостоятельно выданные сертификаты, например, используя OpenSSL, добавляя OID, найденные в профиле ASN.1, описанном в ETSI TS 119 495 .

Однако я настоятельно рекомендую вам найти QTSP в вашем регионе и заказать сертификаты как для разработки и тестирования, так и для использования в производстве, когда придет время.

Я не буду вдаваться в подробностио самом процессе создания самой подписи, как это очень подробно описано в draft-cavage-http-signatures , но рассмотрим следующий пример:

Вы запрашиваете GET https://api.bank.eu/v1/accounts,и после обработки вашего исходящего запроса вы получите следующую строку подписи:

date: Sun, 12 May 2019 17:03:04 GMT
x-request-id: 69df69c1-76d0-4590-8f28-50449a21d0d8
psu-id: 289da2e6-5a01-430d-8075-8f7af71f6d2b
tpp-redirect-uri: https://httpbin.org/get

Получившийся Signature может выглядеть примерно так;

keyId=\"SN=D9EA5432EA92D254,CA=CN=Buypass Class 3 CA 3,O=Buypass AS-983163327,C=NO\",
algorithm=\"rsa-sha256\",
headers=\"date x-request-id psu-id tpp-redirect-uri\",
signature=\"base64(rsa-sha256(signing_string))\"

Приведенная выше подпись привязана к БерлинуСгруппируйте требования, как описано в Разделе 12.2 в их руководствах по внедрению (согласно v1.3), за исключением некоторых разрывов строк, добавленных для удобства чтения, которые кратко обозначают:

  1. keyId должен быть отформатирован как SN={serial},CA={issuer}, но учтите, что, как представляется, решение ASPSP решать, как отформатировать серийный номер и издателя.Однако большинство из них, скорее всего, потребуют, чтобы серийный номер находился в шестнадцатеричном представлении в верхнем регистре, а форматирование издателя соответствовало RFC 2253 или RFC 4514.

  2. Используемый алгоритм должен бытьrsa-sha256 или rsa-sha512

  3. Следующие заголовки должны быть частью строки подписи, если она присутствует в запросе;date, digest, x-request-id, psu-id, psu-corporate-id, tpp-redirect-uri

  4. Подпись должна быть в кодировке base-64

Поскольку разработчики только начали применять этот способ подписи сообщений, вы, вероятно, захотите, чтобы вы реализовали это самостоятельно - но это не так уж сложно, если вы просто внимательно прочитаете вышеупомянутый черновик.

Однако поставщики уже начали поддерживать эту схему, например, Apache CXF в настоящее время поддерживает как подпись, так и проверку с v3.3.0 в их модуле cxf-rt-rs-security-http-signature, как упомянуто в Apache CXF 3.3 Руководство по миграции .Конечно, последуют другие.

Проверка действительной подписи достаточно проста, но проверка действительного сертификата QsealC PSD2 немного сложнее, но вам, вероятно, придется интегрироваться с списком надежных списков ЕС. для синхронизации вашего хранилища доверенных сертификатов, а затем просто пропустите его через какой-нибудь стандартный валидатор, например difi-certvalidator .

Вам также необходимо обратить особое внимание на сертификаты organizationIdentifier (OID: 2.5.4.97) и qcStatements (OID: 1.3.6.1.5.5.7.1.3).Вы должны проверить, что идентификатор организации для сертификата сопоставлен с каталогом Preta , так как могут быть случаи, когда авторизация TPP аннулируется его NCA, но отзыв QRL еще не был опубликован его QTSP.

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Когда дело доходит до всего процесса подписания и проверки сертификата QsealC PSD2, я считаю, что и Berlin Group, и EBA очень разбросаны, поэтому некоторые аспекты открыты для интерпретации.

ЭтоГрубое объяснение, но, надеюсь, оно даст вам достаточно для начала.

...