«Клавиатуры смартфонов Honor, OPPO, Samsung, Vivo и Xiaomi позволяют подсматривать по Сети за нажатием каждой клавиши». Примерно такие тревожные заголовки обошли СМИ за последние недели. Их первоисточником стало довольно серьезное исследование об уязвимостях в шифровании трафика клавиатур. Злоумышленники, способные наблюдать за сетевым трафиком, например через зараженный домашний роутер, действительно могут перехватывать нажатие каждой клавиши и узнать все пароли и секреты. Но не торопитесь менять свой Android на iPhone — речь только про ввод на китайском языке при помощи системы пиньинь и при условии, что активирована функция «облачных предсказаний». Тем не менее стоит разобраться в том, какова ситуация с другими языками и клавиатурами других производителей.
Оглавление
Почему многие клавиатуры пиньинь уязвимы к прослушиванию
Система записи пиньинь (pinyin), также называемая китайским фонетическим алфавитом, позволяет передавать слова китайского языка с помощью латиницы и диакритических символов. Это официальная система романизации китайского, принятая в том числе в ООН. Для смартфонов, на которых рисовать иероглифы не слишком удобно, пиньинь является очень популярным способом ввода, которым, по некоторым оценкам, пользуется более миллиарда человек. В отличие от многих других языков, система предсказания слов для китайского, да еще в записи пиньинь с трудом реализуема прямо на смартфоне — это вычислительно сложная задача. Поэтому практически все клавиатуры (или, более точно, методы ввода — IME) применяют облачные предсказания, то есть отправляют введенные пользователем символы пиньинь на сервер прямо в момент нажатия и получают рекомендации по завершению слова. Иногда облачную функцию можно отключить, но скорость и качество ввода на китайском от этого снижаются.
Разумеется, все вводимые символы из-за системы облачного предсказания доступны разработчикам клавиатуры. Но не только им! Посимвольный обмен данными требует специфического шифрования, которое многие разработчики реализуют некорректно. В результате все нажатия и ответные предсказания легко расшифровать посторонним.
Подробности о каждой из обнаруженных ошибок можно узнать в первоисточнике, но в целом из девяти проанализированных клавиатур только метод ввода пиньинь (pinyin IME) в смартфонах Huawei использовал корректно воплощенное шифрование TLS и устоял перед атаками. А вот методы ввода Baidu (Baidu IME), Honor, iFlytek, OPPO, Samsung, Tencent, Vivo и Xiaomi оказались в разной степени уязвимы, причем стандартная пиньинь-клавиатура Honor (Baidu 3.1) и пиньинь QQ не получили обновления даже после того, как авторы исследования связались с разработчиками. Пользователям пиньинь рекомендовано обновить свой метод ввода (IME) до новейшей версии, а при отсутствии обновлений — скачать другой метод ввода пиньинь.
Отправляют ли нажатия клавиш другие клавиатуры?
Прямой технической необходимости в этом нет. Предсказывать окончания слов и предложений для большинства языков можно прямо на устройстве, поэтому побуквенной передачи данных в популярных клавиатурах не ведется. Тем не менее данные о введенных текстах могут отправляться на сервер для синхронизации личного словаря между устройствами, для машинного обучения, а также в иных целях, никак не связанных с прямым назначением клавиатуры, например для рекламной аналитики.
Хотите ли вы, чтобы такие данные хранились на серверах Google и Microsoft — вопрос личного выбора. Но вряд ли кто-то заинтересован делиться ими с посторонними людьми. Как минимум один такой инцидент был предан огласке в 2016 году: клавиатура SwiftKey «отличилась», предсказывая e-mail и другие элементы личного словаря других пользователей. После инцидента Microsoft временно отключила сервис синхронизации, вероятно, для устранения ошибок. Если вы не хотите хранить личный словарь на серверах Microsoft, не создавайте аккаунт SwiftKey, а если он у вас уже есть — отключите его и удалите сохраненные в облаке данные по этой инструкции.
Других широко известных случаев, когда утекали именно введенные тексты, отмечено не было. Зато исследования показали, что популярные клавиатуры активно следят за метаданными во время ввода. Так, клавиатуры Gboard от Google и SwiftKey от Microsoft отправляют данные про каждое введенное слово: язык, длину слова, точное время начала ввода и приложение, в котором это слово было введено. SwiftKey также отправляет статистику по экономии ваших усилий: сколько слов было введено целиком, сколько автоматически предсказано, сколько прочерчено движениями (swipe/flow). Учитывая, что обе клавиатуры отправляют «на базу» уникальный рекламный идентификатор пользователя, это создает широкие возможности для профилирования — например, позволяет определить, какие пользователи ведут переписку между собой в любом мессенджере.
Если создать аккаунт SwiftKey и не отключить опцию «Помочь Microsoft улучшать продукты», то, судя по политике конфиденциальности, на сервер могут отправляться и «небольшие фрагменты набранного текста». Как это работает и насколько велики эти «небольшие фрагменты» — неизвестно.
Google позволяет отключить опцию Share Usage Statistics в Gboard, что значительно сокращает объем передаваемой информации: в ней не указываются приложения, в которых использовалась клавиатура, и длины слов.
С точки зрения криптографии обмен данными в Gboard и SwiftKey не вызвал претензий исследователей, оба приложения опираются на стандартную реализацию TLS в операционной системе и устойчивы к распространенным криптографическим атакам. Поэтому перехват трафика для этих приложений маловероятен.
Наряду с Gboard и SwiftKey авторы проанализировали и популярное приложение AnySoftKeyboard. Оно полностью оправдало свою репутацию клавиатуры для поклонников приватности и не передает на серверы никакой телеметрии.
Возможны ли утечки паролей и других конфиденциальных данных со смартфона
Чтобы перехватывать важные данные, приложение не обязано быть клавиатурой. Например, TikTok следит за всеми данными, копируемыми через буфер обмена (clipboard), хотя соцсети эта функция, казалось бы, не нужна. Зловреды на Android очень часто активируют на смартфоне специальные возможности и права администратора, чтобы захватывать данные из полей ввода и напрямую из файлов «интересных» приложений.
С другой стороны, Android-клавиатура может сливать не только набранные тексты. Например, клавиатура ai.type стала причиной утечки данных 31 миллиона своих пользователей. Она зачем-то собирала о них такие данные, как номер телефона, точная геолокация и даже содержимое адресной книги.
Как защититься от слежки через клавиатуру и поля ввода
По возможности используйте клавиатуру, не передающую избыточных данных на сервер. Перед установкой нового приложения-клавиатуры поищите в Сети информацию о ней по названию — если с ней были связаны какие-то скандалы, они сразу всплывут.
Если удобство клавиатуры важнее ее конфиденциальности (мы не осуждаем, клавиатура — это важно), пройдитесь по всем ее настройкам и отключите все возможные способы синхронизации и передачи данных и статистики. Они могут скрываться под разными названиями, в том числе: «Учетная запись» («Account»), «Облако» («Cloud»), «Помочь улучшить продукты…» («Help to improve…») и даже «Отправка аудиосообщений» («Audio donations»).
Проверьте, какие разрешения Android требует клавиатура и отзовите все, что ей не нужно. Доступ к контактам или камере для клавиатуры точно не нужны.
Устанавливайте приложения только из доверенных источников, проверяйте репутацию приложения и, опять же, не давайте ему избыточных разрешений.
Используйте полноценную защиту всех своих смартфонов на Android и iOS, например Kaspersky Premium.
Блог Касперского