30 June

Почему разработчики отказываются от авторизации через Apple с фейковым email

Information SecurityDevelopment for iOSDevelopment of mobile applications


Начиная с 30 июня вступило в силу новое правило в App Store, требующее, чтобы многие приложения поддерживали вход в систему с помощью Apple (Sign in with Apple). AnyList — это одно из приложений, на которое влияет это новое правило, то есть они должны либо реализовать вход в систему с помощью Apple, либо внести другие изменения в приложение. Рассмотрев достоинства входа в систему с помощью Apple, разработчики решили отказаться от него. В своём блоге они подробно объясняют, почему приняли это решение.

Они пишут, что сторонние системы авторизации вызывают головную боль у пользователей и службы поддержки. Люди не помнят, какую систему входа они использовали для создания своей учётной записи («Хм, я создал этот аккаунт пару лет назад. Использовал ли я свой адрес электронной почты? Аккаунт в Facebook? Вход с помощью Apple?»). На простые вопросы типа «Как сбросить пароль?» больше нет простых ответов, и всё зависит от того, какую систему вы использовали для создания учётной записи, если вы можете вспомнить.

В дополнение к этим проблемам взаимодействия с клиентами, вход в систему с помощью Apple вводит ещё несколько уникальных проблем.

Одна из них заключается в том, что большинство идентификаторов Apple ID привязаны к адресу электронной почты iCloud. Таким образом, большинство учётных записей, созданных с помощью системы Sign in with Apple, будут использовать адрес электронной почты iCloud. Но многие из этих адресов электронной почты iCloud не используются и не проверяются, потому что «реальный» адрес электронной почты клиента — это его адрес Gmail, Yahoo или Hotmail. Если попытаться связаться с клиентом, используя его адрес электронной почты iCloud, он может так и не увидеть сообщение. «Мы постоянно сталкивались с этой проблемой в службе поддержки клиентов, — пишут разработчики, — когда AnyList использовал встроенный интерфейс iOS для отправки запросов в службу поддержки. Этот интерфейс часто по умолчанию использует учётную запись электронной почты iCloud. Поэтому люди просили о помощи, мы отвечали, и они связывались с нами позже, сердясь, что мы так и не ответили. Наш ответ отправлялся на их адрес электронной почты iCloud, но они его не видели, потому что они всегда смотрели только на свой ящик Gmail в приложении Gmail».

Ещё одна проблема — это вход в систему с помощью функции Apple «Скрыть мою электронную почту». С помощью этой функции, если вы создадите учётную запись в приложении, Apple сгенерирует специальный адрес электронной почты только для этой учётной записи. Так что вместо реального адреса электронной почты приложение увидит что-то вроде dpdcnf87nu@privaterelay.appleid.com. Хотя это интересная идея, которая обеспечивает определённую степень конфиденциальности, на практике она создаёт многочисленные сложности для поддержки и удобства пользователей.

Разработчики AnyList перечисляют некоторые из проблем:

  • Если клиент обращается с просьбой о поддержке и нужно что-то найти в его аккаунте, как правило, техподдержка может просто спросить у него адрес электронной почты от его аккаунта. Но с функцией «Скрыть мою электронную почту» это нелегко, потому что клиенту пришлось бы выяснять свой фейковый адрес.
  • Если есть платформы, где AnyList не поддерживает вход в систему с помощью Apple, например Android, и кто-то хочет войти в свою учётную запись, он должен знать свой фейковый адрес в домене privaterelay.appleid.com. И тогда ему придётся заново генерировать пароль, так как он не может войти в систему с помощью «входа Apple».
  • Наконец, для такого сервиса, как AnyList, который в значительной степени ориентирован на совместное использование списков с другими людьми, опция «Скрыть мою электронную почту» значительно усложняет совместную работу. Как правило, клиенты делятся списками, введя адрес электронной почты человека, с которым они хотят поделиться. Если у этого человека уже есть учётная запись, список мгновенно становится общим. Но с опцией «Скрыть мою электронную почту» ваши коллеги или родственники не будут знать ваш адрес privaterelay.appleid.com. А если введут реальный адрес, система будет считать, что у вас нет учётной записи. В этот момент вы получите электронное письмо от сервиса с просьбой создать учетную запись. Если вы случайно создадите новую учетную запись, она не будет включать в себя работу, выполненную в существующей учётной записи, созданной с помощью «входа Apple».

Разработчики AnyList согласны с Apple, что конфиденциальность — это фундаментальное право человека, и понимают, что опция «Скрыть мою электронную почту» при входе в систему Apple имеет благие намерения, но похоже, что Apple действительно не продумала все последствия для базового пользовательского опыта, поддержки клиентов и совместной работы. «В любом случае, мы уважаем вашу частную жизнь. Мы небольшая компания, которая зарабатывает деньги, когда людям нравится наше приложение и они платят за него. Мы не зарабатываем деньги на жутком отслеживании или продаже вашей информации. Когда вы предоставляете нам свой адрес электронной почты, он никогда не продаётся, не передается и не используется для вторжения в вашу частную жизнь», — пишут они.

Но из-за проблем для пользователей, техподдержки и разработчиков компания AnyList приняла решение отказаться от системы 'Sign in with Apple'. Кроме всех этих проблем, ещё неизвестно воздействие новой технологии на общую систему безопасности: «Как разработчики, мы всегда должны проявлять должную осмотрительность при оценке последствий нашей работы для безопасности. В прошлом месяце в системе входа в систему Apple был обнаружена серьёзная уязвимость, настолько серьёзная, что Apple заплатила 100 000 долларов тому, кто её нашел. Если вы прочтёте соответствующий отчёт, то увидите, что эта серьёзная уязвимость также очень простая, что не даёт большой уверенности. Для чего-то столь важного, как служба для входа в учётные записи, не кажется разумным использовать незрелую службу (менее года), которая недавно была подвержены столь серьёзной уязвимости».

Еще одним признаком незрелости службы 'Sign in with Apple' является печальное состояние документации для неё, считают разработчики: «Хорошая документация имеет решающее значение для облегчения принятия разработчиком любой службы. Поскольку Apple ожидает, что разработчики примут эту услугу к 30 июня, кажется разумным ожидать достойной документации. К сожалению, как и большая часть последней документации для разработчиков от Apple, её катастрофически не хватает. Например, Apple туманно заявляет, что вы можете реализовать вход с помощью Apple на Android, но нет прямой документации о том, как это сделать. Мы понимаем, что Apple, вероятно, не очень заботится об Android, но если они собираются предоставить систему входа и собираются заставить разработчиков мультиплатформенных приложений принять её, то отсутствие реальной поддержки для основной платформы, на которой работают эти мультиплатформенные приложения, неприемлемо».

Наконец, Apple прямо заявляет в своих рекомендациях по использованию: «Apple оставляет за собой право отключить вход в систему Apple на веб-сайте или в приложении по любой причине в любое время». Если клиенты не могут войти в свои учётные записи, то они не могут использовать сервис. Предоставление третьей стороне такого мощного контроля над основной частью нашего сервиса, когда это абсолютно не требуется, по мнению AnyList, неоправданно рискованно.

Нужно сказать, что точку зрения AnyList поддерживают многие другие разработчики, как видно из комментариев на HN.

Некоторые из приведенных выше аргументов применимы к созданию учётной записи через Facebook, поэтому авторизацию через Facebook они тоже удаляют со своих сайтов.

См. также: «Apple заплатила хакеру $100 000 за обнаруженный 0day в системе авторизации „Вход с Apple“»
Tags:Sign in with Appleконфиденциальностьфейковый email
Hubs: Information Security Development for iOS Development of mobile applications
+21
11.5k 16
Comments 79
Popular right now
Dart / Flutter Engineer (remote)
from 2,300 $Petrosoft LLCRemote job
Lead Mobile Developer (Android)
from 200,000 to 250,000 ₽UpTeam Inc.Санкт-Петербург
Node.js Developer
from 1,600 to 4,200 $AWWCOR Inc.Remote job
Senior Mobile Developer
from 210,000 to 300,000 ₽ТензорRemote job
Full-stack web developer
from 150,000 to 300,000 ₽Rubrain.comRemote job
Top of the last 24 hours