Протоколы Internet

         

PReq представляет собой наиболее сложное


PReq представляет собой наиболее сложное сообщение в протоколе. Оно состоит из двух частей: инструкции-заказа OI (Order Instruction) для продавца и платежной инструкции PI (Payment Instruction), которая проходит транзитом через продавца в расчетный центр. Эти две части принципиально должны подписываться независимо. Продавец получает описание заказа OD (Order Description) и PurchAmt. В PI включаются хэши OD и PurchAmt (HODINput). Расчетный центр проверяет, что хэш передан покупателем (владельцем карты) через продавца и равен хэшу, выданному продавцом в AuthReq. Некоторые владельцы карт могут не иметь сертификатов. Сообщения от таких владельцев не будут подписаны, вместо этого PIHead связывается с OIData. Целостность таких сообщений обеспечивается следующими мерами:

  • C PI используется OAEP


  • В блок OAEP включается H(PIHead) (вместе с PANData)


  • С PIHead используется H(OIData)


  • Расчетным центром производится сравнение H(OIData), присланного продавцом, с H(OIData) из PIHead.


  • Владелец карты формирует сообщение PReq следующим образом (эти действия предпринимаются как для PReqUnsigned так и для PreqDualSigned).



































































































































    Шаг



    Действие



    1



    Извлечь PurchAmt и OD



    2

    Сформировать OIData следующим образом:
    a)

    Если имел место обмен PInitReq/ PInitRes:



    Скопировать TransIDs из PInitRes



    В противном случае:



    Для формирования TransIDs владелец карты сгенерирует PreqDate (текущие дата/время), LID-C и XID

    b)

    Сформировать новый RRPID, запомнить его значение для сверки с откликом продавца



    Если имел место обмен PInitReq/PInitRes:



    Скопировать Chall-c из PInitRes



    В противном случае:



    Сформировать новый Chall-C

    c)

    Сформировать новый ODSalt

    d)

    Сформировать HODInput посредством следующей процедуры:


    • Скопировать OD из данных процесса инициализации SET


    • Записать PurchAmt cо значением, одобренным владельцем карты на фазе инициации SET.


    • Скопировать ODSalt из пункта 2 с)


    • Если владелец карты намерен выполнить инсталляцию или последовательные платежи, то записать InstallRecurData


    • Опционно: добавить любые ODExtensions


    e)

    Сформировать HOD с HODInput из пункта 2 d

    f)

    Если имел место обмен PInitReq/ PInitRes:



    Скопировать Chall-M из PInitRes и не заполнять BrandID



    В противном случае:



    Не заполнять Chall-M

    Записать BrandID, указав предпочтительный тип карты

    g)

    Произвести записьв поле BIN с HODInput из пункта 2d

    h)

    Если HODInput из шага 2.d имеет какие-то расширения OIExtensions, внести ODExtOIDs со всеми OID в ODExtensions. ODExtOIDs будут перечислены в том же порядке, что и расширения ODExtensions, таким образом продавец сможет вычислить тот же самый хэш

    i)

    Опционно: добавить любые расширения OIExtensions.



    3

    Сформировать PIHead следующим образом:
    a)

    Скопировать TransIDs, вычисленные в пункте 2.а

    b)

    Сгенерировать Inputs согласно процедуре:

    • Скопировать HOD из пункта 2.е


    • Скопировать PurchAmt из шага 2.d.2


    c)

    Скопировать MerchandID из сертификата продавца в PInitRes, или из CD-ROM-каталога

    d)

    Скопировать InstallRecurData из пункта 2.d.4 (если имеется)

    e)

    Сформировать TransStain, как HMAC, используя XID в качестве данных и CardSecret - в качестве ключа. Если владелец карты не имеет сертификата, использовать CardSecret, заполненный нулями.

    f)

    Записать SWIdent, который получен из локальных данных. Это значение будет соответствовать коду в цифровом конверте сообщения

    g)

    Если присутствует туннельное расширение Cert_PE, сформировать AcqBackInfo следующим образом:

  • Найти туннельное расширение для алгоритма шифрования, приемлемое для владельца карты. Если такое найдено, заполнить AcqBackAlg, в противном случае, не формировать AcqBackInfo и перейти к пункту f.


  • Сформировать новый AcqBackKey (приемлемый для AcqBackAlg)


  • h)

    Опционно добавить любые PIExtensions



    4



    Сформировать PANData



    5



    Сгенерировать PU-OIData c L-оператором, используя PIHead из пункта 3 (параметр t1) и OIData из пункта 2 (параметр t2)



    6



    Используя результат пунктов 2, 3 и 4, сгенерировать PreqDualSigned, если владелец карты имеет сертификат или PreqUnsigned, если сертификата нет.

    <

    Содержание  Назад  Вперед







    Forekc.ru
    Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий