W3C внедряет стандарт для хранения реквизитов банковских карт в браузерах (как пароли)



    Консорциум W3C постепенно доводит до финальной стадии новый стандарт Payment Request API, который должен упростить пользователям процесс покупок товаров в интернет-магазинах. Больше не придётся вручную вводить платёжные данные при каждой покупке, потому что реквизиты банковских карточек хранятся в браузере и вводятся в форму автоматически (кроме кода CVV).

    Это очень удобно: оплата карточкой совершается буквально в несколько нажатий кнопки. Ну и схемы мошенничества изменятся. Если раньше злоумышленники искали базы с кредитками на серверах магазинов, то теперь зловреды будут добывать карточки непосредственно из браузеров на локальных машинах пользователей.

    4 октября опубликован черновик Candidate Recommendation, комментарии для которого принимают до 31 октября 2017 года.

    Хотя стандарт Payment Request API ещё окончательно не утверждён, он уже включен по умолчанию в следующих браузерах:

    • Chrome 61 в десктопной версии
    • Chrome для Android с версии 53
    • Chrome для iOS с версии 62
    • Opera 48
    • Opera для Android с версии 48

    Новые интерфейсы уже реализованы в браузере Edge, а в Firefox и Safari он находится на стадии разработки. Правда, чтобы использовать автооплату в Edge, нужно зарегистрировать аккаунт Microsoft Wallet, так что в реальности не у многих пользователей она работает. Другое дело — Chrome, который начал хранить реквизиты банковских карт самым первым среди всех браузеров. В версии для Android эта функция активирована в августе 2016 года, а в десктопной версии её включили по умолчанию в сентябре 2017-го, с выходом Chrome 61.

    Когда пользователь делает заказ в интернет-магазине (нажимает кнопку «Купить»), магазин отправляет вызов API к браузеру пользователя, сообщая информацию о заказе. Браузер выводит всплывающее окно, в котором уже заполнены все поля с реквизитами платежа и адресом доставки (если они раньше уже вводились и хранятся в браузере). Если пользователь подтверждает информацию, то браузер, а не веб-сайт, связывается с платёжным оператором типа Visa и Mastercard, чтобы провести транзакцию. Когда получено подтверждение, браузер сообщает об успешном проведении платежа веб-сайту магазина, который прислал запрос — и тот может приступать к оформлению заказа, упаковке и отправке товара, зная при этом, что деньги уже перечислены на его банковский счёт.


    Поддержку хранения банковских реквизитов в своих реализациях браузеров собираются внедриить Samsung и Facebook, поскольку обе компании крайне заинтересованы в упрощении платежей в интернете.

    На GitHub открыт репозиторий с образцами кода, как внедрить на веб-сайте разные виды автоматических платежей через Payment Request API. Есть страница с демками. Там показан реальный процесс оплаты со стороны пользователя, примеры клиентского и серверного кода.



    На первый взгляд схема с хранением платёжных реквизитов в браузере кажется опасной. Но она придумана как раз чтобы улучшить защиту конфиденциальных данных. Ведь теперь магазин не получает информации о номерах банковских карт клиентов. Соответственно, эти базы с карточками теперь не будут храниться в каждом магазине, что в прошлом неоднократно приводило к утечкам данных. Сейчас всё в руках пользователя — и он сам несёт за сохранность своих банковских карточек, которые хранятся в его личном браузере.

    Исчезает необходимость в платёжных системах вроде PayPal, которые выполняли роль посредника. Теперь таким посредником будет технология Payment Request API и браузер.

    Хотя во многих отношениях Payment Request API повышает общую безопасность электронной коммерции, но появляются и новые риски. Получается, что браузер знает слишком много: не только ваши сохранённые пароли, но ещё и финансовую информацию. Получив доступ к браузеру, теперь посторонний человек может совершить покупки в магазинах от вашего имени. Более того, у разработчиков браузеров есть соблазн использовать историю покупок в своих целях. Например, для точного таргетинга интернет-рекламы.

    Вопрос в следующем: доверяют ли пользователи браузеру настолько, чтобы хранить в нём информацию о своих банковских карточках?
    Поделиться публикацией
    Комментарии 42
      +2

      Нет. W3C внедряет стандарт JS API для процессинга информации для заказа и оплаты продуктов. Хранение информации о кредитных картах уже было в браузерах давно.


      Советую посмотреть https://www.youtube.com/watch?v=U0LkQijSeko

        +1
        Разработчики стиллеров уже потирают руки в предвкушении профита.
          +1
          Не понял в чем проблема с безопасностью. Мы ведь доверяем данные своих карт системам Apple Pay или Android pay.
            +10
            Нет, не доверяем.
              0
              В смысле не пользуетесь или там принципиально нет данных карты?
                0
                Что значит не доверяем, у меня apple требует ввод карты, без этого не скачивается и не обновляется софт из магазина apple
                  +1
                  Не повезло Вам. На моем Android нормально все ставится без карт
                    +1
                    Виртуальная карта с парой баксов на счету да и всё. Я переживаю не столько за взлом магазина эпл (проще уже слить карты с какого-нибудь инет магазина попроще), а за то, что случайно заплачу за какую-то in-app хрень.
                      +1
                      Раньше был вариант «другое» в вариантах оплаты и позволял нормально пользоваться без карты.
                  +4
                  Это очень удобно: оплата карточкой совершается буквально в несколько нажатий кнопки.

                  Как правило, всё что наиболее удобно — наименее безопасно.

                  Ну и схемы мошенничества изменятся. Если раньше злоумышленники искали базы с кредитками на серверах магазинов, то теперь зловреды будут добывать карточки непосредственно из браузеров на локальных машинах пользователей.

                  Вот это верно, будет удобно.
                    +5
                    >>… базы с кредитками на серверах магазинов…
                    За это разработчику магазина обычно полагается бить по рукам. Магазину эти данные нужны только в момент совершения покупки и то, только для того, чтобы переслать их в платежный шлюз. Хранить их — это подставлять себя и клиентов.
                      +2
                      Магазин вообще не должен запрашивать данные карты, а клиент не должен их давать магазину. Для этого есть эквайринг и платежные агрегаторы.

                      Если я в неизвестном интернет-магазине вижу, что именно магазин просит данные карты, я попробую найти другой магазин.
                        0
                        Но если взять тот же Steam или GOG, то у них нет посредников, магазины сами запрашивают данные. Разве не так?
                          0
                          Да, но и тот и другой — сильно известный сервис. А стали бы вы отдавать данные карты какому-нибудь vasya-lavka.ru? Я думаю лучше не стоит.
                        0
                        Даже если магазину нужно хранить всю информацию о пользователе, то можно создать отдельно writeonly сервер, который будет эти данные только принимать. Во время введения данных, они будут отсылатся на этот сервер, но возможности ее читать с production сервера не будет
                          +1
                          Для этого не нужен сервер, по такой схеме надёжнее в /dev/null сразу писать :-) А если где-то что-то сохраняется, то по-любому эту информацию можно прочитать. Так что не вариант.
                      –2
                      Пытаются залочить платежи на карты (древнее говно), пока криптовалюты только развиваются.

                      Втрице вообще конкретненько продается последнее время. Сначала ДРМо, теперь карточки сделали стандартом, скоро сделают стандарт логгинга данных пользователя браузера.
                      • НЛО прилетело и опубликовало эту надпись здесь
                          0
                          У ДРМ в браузере есть и другая сторона, сейчас для просмотра сериальчика в какой-нибудь Италии нужно поставить на ПК их приложение, иначе не посмотреть. С дрм в браузере этих проблем уже не должно быть. Те, кто ДРМят контент будут делать это не зависимо от w3c, но степень геморойности для пользователя, вот вопрос.
                            0
                            >Сначала ДРМо, теперь карточки сделали стандартом, скоро сделают.
                            DRM сначала для текста, а потом вообще для всей страницы.
                            +1
                            Другое дело — Chrome, который начал хранить реквизиты банковских карт самым первым среди всех браузеров. В версии для Android эта функция активирована в августе 2016 года, а в десктопной версии её включили по умолчанию в сентябре 2017-го, с выходом Chrome 61.
                            В Сафари данные моей кредитки хранятся уже пару лет.
                              +1
                              Да и в десктопном хроме уж точно не с сентября 2017.
                                +1
                                Тут дело не в хранении, а о API для платежей.

                                Да, браузеры могли хранить данные и раньше, но их функционал был в том, что они заполняли формы на сайтах этими данными.
                                Теперь же есть api, с помощью которого сайты могут попросить сделать платёж туда-то, и сайты не получают информацию о карте.
                            +1
                            Лучше бы внедрили стандартный API для ЭЦП.
                              +1
                              На первый взгляд схема с хранением платёжных реквизитов в браузере кажется опасной. Но она придумана как раз чтобы улучшить защиту конфиденциальных данных. Ведь теперь магазин не получает информации о номерах банковских карт клиентов.
                              Вот этого не понял, как проходит оплата если магазин не получает данные карты?
                              Причем на видео на 21й секунде приводят json с данными карты. Если эти данные уходят не в магазин то куда?
                                0
                                Скорее всего так же как и оплата через платежного агрегатора. Магазин только получает запросы на «такую-то сумму» и т.п.
                                  0
                                  Сразу в банк или в платежную систему.
                                  +1
                                  Немного не понятно одно.
                                  За примеры спасибо, посмотрел первый пример — googlechrome.github.io/samples/paymentrequest/credit-cards
                                  да, все красиво, мои кредитки показывает и дает платить, но не понятно что потом.
                                  Вот сделал я такую оплату у себя на сайте, а КУДА потом деньги приходят от юзеров что делали покупки?
                                  На мою кредитку/счет в банке?
                                  Спасибо.
                                  +1
                                  Звучит как очередная дыра, усложняющая итак перегруженные интерфейсы веба.
                                    +1
                                    Как верно подметили выше — а куда уходят платежи то? Полюбому ведь есть какой-то агрегатор всего этого добра за некоторый (кстати, какой?) процент от суммы платежа.

                                    Налоги? Онлайн-кассы?

                                    Без третьей стороны невозможно будет «подписать» данные о платеже. Грубо говоря, та же Я.Касса использует секретный ключ для хеширования параметров запроса. Тут как магазин узнает подлинность платежа без «выписки» по счету?
                                      +1
                                      Плюс без третьей стороны как верить магазину?
                                      Например, когда я вижу известного платежного агрегатора, да тот же банк — я знаю, что мои деньги, как минимум, не пропадут бесследно. А тут… по крайней мере пока непонятно.
                                    • НЛО прилетело и опубликовало эту надпись здесь
                                        –2
                                        Да уж забили все на этот PayPal лет 5 назад. Сейчас большинство оплат напрямую с карты.
                                          +1
                                          Каждый месяц плачу за VPS через PayPal. Ну и деньги с Upwork тоже на него выводил раньше.
                                          • НЛО прилетело и опубликовало эту надпись здесь
                                        • НЛО прилетело и опубликовало эту надпись здесь
                                            +2
                                            Самого главного и не рассказали…

                                            Payment Request API это интерфейс браузера. А вот браузер сам (на мобильном устройстве) лезет за данными карт и токенами в приложение (по другому API).

                                            Да Payment Request API может работать с данными сохраненными в самом браузере, но это только частный случай. На андроиде с установленным приложением AndroidPay карточки или их токены берутся браузером из него. А там вам и шифрование и все дела.

                                            Именно в такой цепочке (Payment Request API — Chrome for Android — AndroidPay App) сейчас работают платежи AndroidPay на сайте HeadHanter (например) и ешё некоторых других (платежи идут через Assist на стороне которого и реализована поддержка платежей AndroinPay и SamsungPay).
                                              0
                                              Почему бы не использовать токены с данными карты для оплаты?
                                              Вставил — оплатил — вынул — закрыл в сейф. Зачем хранить в браузере такую информацию?
                                              • НЛО прилетело и опубликовало эту надпись здесь
                                                • НЛО прилетело и опубликовало эту надпись здесь

                                                  Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                  Самое читаемое