Проблемы безопасности при передаче токена Google Pay Payment по сети - PullRequest
0 голосов
/ 28 марта 2019

Я работаю над созданием нашей серверной системы, чтобы пользователи могли покупать продукт через Google Pay.

В нашем случае использования наши пользователи отправят запрос платежа (объект PaymentDataRequest) на платежный сервер Google из мобильного приложения, чтобы получить токен платежа (объект PaymentMethodTokenizationData в ответе), и мобильное приложение отправит его на наш внутренний сервер и наш сервер перенаправит этот токен на платежный шлюз для дальнейшего процесса оплаты.

Справочник по API: https://developers.google.com/pay/api/web/reference/object#PaymentMethodTokenizationData

Тип токенизации установлен на PAYMENT_GATEWAY

Однако у нас есть некоторые проблемы безопасности при передаче данных PaymentMethodTokenizationData в нашей серверной системе.

Поскольку я не могу найти какое-либо объяснение по этим вопросам в официальном документе API Google Pay, может кто-нибудь помочь мне уточнить следующие вопросы?

(1) Представляет ли токен оплаты Google (объект PaymentMethodTokenizationData) «одну токенизированную кредитную карту» или «информацию об одноразовой транзакции»?

(2) Можно ли повторно использовать один и тот же токен для покупки продукта несколько раз без запроса нового токена?

(3) Этот токен оплаты ограничен для использования только для одного конкретного идентификатора транзакции? Например, если токен утек, возможно ли, что кто-то может использовать его для совершения другой покупки?

(4) Может ли этот платежный токен использоваться только платежным шлюзом для сбора денег? Другими словами, кроме шлюза оплаты, никто не может извлечь из токена какую-либо платежную информацию (номер кредита, информация о транзакции ...), поэтому нам не нужен какой-либо дополнительный безопасный механизм для передачи этого токена в сети. .

Спасибо

1 Ответ

1 голос
/ 13 июля 2019

Извинения, если это не натолкнулось на четкое чтение документов. Подробнее об этих деталях вы можете узнать из видео-объяснения API или из раздела криптографии с данными о платежах в документации. Если вы считаете, что есть более очевидные области, в которые следует включить эту информацию, мы будем рады выслушать ваши мысли.

На ваши вопросы:

  1. A PaymentMethodTokenizationData полезная нагрузка содержит информацию о способе оплаты, выбранном пользователем для завершения транзакции (например, карта).
  2. Как указано в условиях обслуживания , информация, возвращаемая этими API, может использоваться только для выполнения одной транзакции, инициированной пользователем.
  3. (& 4) Полезная нагрузка, полученная от Google Pay, не может использоваться за пределами доменов вашего платежного процессора. Перед тем как покинуть серверы Google, полезная нагрузка шифруется асимметрично, причем пара ключей, в которой только ваш процессор хранит закрытый ключ, необходимый для расшифровки содержимого сообщения, или ваших собственных серверов, если ваш бизнес обрабатывает платежи. Следовательно, если зашифрованная полезная нагрузка утечка, это не что иное, как случайная последовательность символов без конкретного приложения.
  4. Нет необходимости в дополнительном механизме безопасности, кроме проверки того, что вы передаете зашифрованную полезную нагрузку на серверы / системы, обрабатывающие платеж, и удаляете / очищаете любые данные, возвращаемые этими API, как только транзакция будет завершена.

Надеюсь, это поможет.

...