- Новый менеджер паролей сделает Android еще более похожим на iOS
- Новый функции Android
- Авторизоваться с Android станет намного удобнее
- Как будут защищены пароли в Android
- Какой будет новая система хранения паролей Android
- Скачать программы Связка ключей APK
- Описание: house-intellect
- Как использовать смартфон Android в качестве электронного ключа безопасности для аккаунта Google
- Смартфон Android в роли электронного ключа безопасности
- Как настроить электронный ключ безопасности для Android смартфона
- Ключи, учетные данные и хранилище на Android
- Диспетчер учётных записей
- Keychain — связка ключей
- KeyStore
- Генерирование нового случайного ключа
- Шифрование данных
- Расшифровка в массив байтов
- Смотрим на примере
- Использование асимметричных ключей RSA для старых устройств
- Заключение
Новый менеджер паролей сделает Android еще более похожим на iOS
Пусть многие критикуют Android или iOS, особенно, если пользуются противоположной системой, но надо быть более рассудительным и понимать, что плюсы есть и там, и там. Если посмотреть на них, то начинаешь представлять, как выглядела бы идеальная операционная система. Именно поэтому разработчики обеих операционных систем периодически заимствуют идеи друг друга, еще больше сближая свои продукты. Это хорошо, ведь это эволюция, к которой стремится все в мире. А этот раз такая эволюция коснулась функции, которая позволит владельцам Android-смартфонов намного проще переходить с одного аппарата на другой. А заодно станет намного проще логиниться в приложениях, которые вы временно удаляли.
Ключи и пароли часто становятся проблемой при покупке нового смартфона.
Новый функции Android
Google постоянно делится информацией с разработчиками. Это что-то вроде небольших презентаций новых функций, которые им хорошо было бы применять в новых приложениях. Это сможет повысить их конкурентоспособность и сделает проще жизнь многих пользователей Android. В таких видео даются ответы на многие вопросы, которые могут возникнуть у тех, кто создает приложения.
В рамках текущих бета-релизов Android 11 компания Google опубликовала новое видео для разработчиков, в котором рассказывается, как компания планирует изменить способ входа в приложения и службы. Это может показаться какими-то сложными техническими данными, но то, что они могут нам принести, действительно очень радует.
Google внедряет совершенно новую систему под названием Block Store, и если разработчики действительно ее используют, войти в систему с вашими приложениями на новом телефоне будет так же просто, как восстановить из резервной копии в процессе установки.
Видео довольно короткое, и в числе прочего оно охватывает новую кроссплатформенную систему входа в систему «One Tap», которая облегчит вход в службы, если вы не знаете, как зарегистрировать учетную запись. Но это еще не все и самое интересное, как это часто бывает, в конце.
Авторизоваться с Android станет намного удобнее
Block Store сможет исправить одну из самых неприятных проблем Android — настройку нового устройства. Когда вы переходите на новый телефон или покупаете телевизор с Android, вход во все ваши сервисы становится настоящей болью. Не все доверяют диспетчеру паролей, и если вы используете разные данные для каждой учетки, как это и положено делать, вам может понадобится некоторое время для настройки параметров при переходе на новое устройство.
На Android появились приложения, которые обманули защиту Google Play
Служба резервного копирования и восстановления Android также не включает данные учетной записи. Хотя, некоторые данные все же хранятся в ней, говорить о том, что так можно обойти все подножные камни, не приходится. Поэтому Block Store стремится исправить все это и теперь главное чтобы разработчики подхватили эту идею и начали использовать ее в своих новых продуктах или готовить обновления для уже существующих.
С новой системой переходить с одного Android-смартфона на другой будет намного проще.
Как будут защищены пароли в Android
Приложения, которые поддерживают новый API-интерфейс Block Store, будут использовать систему на основе токенов для хранения учетных данных на телефоне пользователя. Эти токены могут быть скопированы с использованием сквозного шифрования непосредственно в вашу учетную запись Google.
Проще говоря, приложения и сервисы, которые поддерживают Block Store, позволят вам войти в систему и безопасно хранить эту информацию таким образом, чтобы все ваши устройства могли легко подключиться при восстановлении из резервной копии. Возможно, все упростится настолько, что даже не надо будет подтверждать действие. Вы просто включите телефон, подождете пару минут и получите устройство, на котором все будет настроено, как на старом устройстве.
Какой будет новая система хранения паролей Android
Разработчики могут добавлять все, что им нужно, в этот токен, чтобы приложение или сервис могли подгружать те данные, которые нужны для их работы после выхода из системы. В некотором роде можно сказать, что это будет что-то типа функции ”Связка ключей” или ” Keychain” на iOS. Там эта система работает уже несколько лет и очень хорошо себя зарекомендовала, избавив пользователей от необходимости помнить все пароли, которые у них только есть. А заодно дав возможность более безопасно устанавливать разные пароли для каждой учетной записи. Не секрет, что для взлома аккаунта достаточно знать электронную почту и пароль. Если данные утекли на одном из сервисов, достаточно просто попробовать это на других и с очень большой долей вероятности вас ждет успех. Если у вас такое было, расскажите в нашем Telegram-чате.
Apple уже давно доказала, что хранение паролей в облаке это очень удобно.
Мне кажется, что это одно из самых значительных изменений, которые Google может внести в Android как платформу, и это должно очень серьезно облегчить переключение между телефонами. Однако, надо понимать, что Google просто дала разработчикам инструмент и теперь уже только от них зависит, будут ли они им пользоваться или пустят все на самотек, продолжая делать все так, как есть. Отчасти этому может поспособствовать недоверие к системе шифрования. Но если они это сделают, система резервного копирования и восстановления Android может, наконец, начать конкурировать с Apple. Надо просто признать, что там она действительно лучше.
Источник
Скачать программы Связка ключей APK
Храните пароли в эргономичной базе данных с быстрым поиском и копированием!.
Описание: house-intellect
Этот менеджер паролей предназначен для безопасного и удобного хранения учетных записей. Все данные на виду, и никаких лишних кнопок и настроек!
Мастер-ключ должен быть придуман Вами для защиты базы данных с учетными записями от несанкционированного доступа. Он может содержать буквы, цифры и специальные символы по Вашему выбору. Пожалуйста, не забывайте придуманный Вами мастер ключ во избежание утраты доступа к базе данных учетных записей.
Благодаря эргономичному пользовательскому интерфейсу управление учетными данными стало быстрым и удобным, как никогда ранее! Подробный список учетных записей с соответствующими именами и паролями позволяет пользователю увидеть всю необходимую информацию непосредственно после запуска программы, не совершая никаких лишних действий. Текстовый поиск по содержимому с функцией фильтрации списка позволяет быстро находить нужную учетную запись, а функция копирования содержимого полей учетной записи по длительному касанию на соответствующей строке списка позволяет избавиться от затрат времени на стандартное копирование средствами операционной системы Android.
Вам остается только придумать и запомнить Мастер-Ключ, который будет использоваться программой для шифрования и расшифровки конфиденциальных данных. Мастер-пароль нигде не хранится и используется только для расшифровки предварительно зашифрованной с помощью него информации. Предварительно зашифрованная при помощи одного мастер-пароля база данных не сможет быть расшифрована с применением другого пароля. Пожалуйста, запомните Мастер-Ключ! Для корректного изменения Мастер-Ключа следует использовать команду меню программы «Редактировать Мастер-Ключ».
Источник
Как использовать смартфон Android в качестве электронного ключа безопасности для аккаунта Google
Двухфакторная аутентификация (или двухшаговая аутентификация) – это функция безопасности, которую нужно использовать в аккаунтах всех сервисов, которые мы хотим защитить.
Аккаунты Google являются очень привлекательной мишенью для хакеров, которые хотят завладеть пользовательскими данными. Технологический гигант разработал несколько методов для защиты ваших данных, включая несколько способов для предотвращения попыток взлома аккаунта.
Как известно, лучшим и менее подверженным компрометации способом для защиты аккаунта является использование физического ключа безопасности.
Однако, приобретение и постоянное использование физического ключа создает дополнительные неудобства для пользователей. Поэтому Google применила альтернативный подход и теперь позволяет превратить свои смартфоны в электронные ключи безопасности.
Смартфон Android в роли электронного ключа безопасности
Другими словами, смартфон Android или iPhone выступает в роли ключа безопасности и позволяет пользователям разрешать или отклонять попытки авторизации в свои аккаунты.
Google рекомендует использовать данную опцию в рамках программы «Дополнительная защита», которая будет полезна «журналистам, правозащитникам, бизнесменам, политикам и тем пользователям, которые чаще других подвергаются целенаправленным атакам».
Тем не менее, данную возможность может использовать любой владелец персонального аккаунта Google или рабочего аккаунта Google Cloud.
Чтобы использовать смартфон Android в качестве электронного ключа безопасности, мобильное устройство и ПК должны отвечать следующим требованиям:
- ОС: Android 7.0 или выше.
- В аккаунте должна быть включена двухфакторная аутентификация.
- Вход можно осуществлять на устройствах с операционными системами Chrome OS, iOS, macOS и Windows 10.
- На обоих устройствах должна быть включена функция Bluetooth.
- Службы геолокации на Android-смартфоне должны быть включены.
- Для входа в аккаунт на компьютере нужно использовать браузер Google Chrome. На устройстве iPhone или iPad войдите в аккаунт Google через приложение Google Smart Lock для iPhone.
Конечно, существуют и другие способы для защиты аккаунтов Google, например двухфакторная аутентификация с помощью кодов проверки, которые отправляются на мобильный телефон. Однако, в случае компрометации мобильного устройства хакеры могут перехватить проверочный код.
Ключи безопасности используют шифрование с открытым ключом для проверки вашей личности и URL-адрес страницы входа, чтобы злоумышленник не получил доступ к вашему аккаунту, даже если ему известны логин и пароль. В отличие от методов двухфакторной аутентификации (2FA), которые пытаются выполнить дополнительную проверку авторизации, ключи безопасности соответствуют стандартам FIDO для обеспечения надежной защиты против автоматизированных ботов, массовых фишинг-атак и целенаправленных мошеннических атак.
Как настроить электронный ключ безопасности для Android смартфона
Смартфоны Android уже имеет встроенный ключ безопасности, поэтому нужно только настроить использование аккаунта Google со смартфоном для двухфакторной аутентификации.
Во-первых убедитесь, что ваш смартфон добавлен в аккаунт Google, который вы хотите защитить, и в нем включена двухэтапная аутентификация.
Затем на ПК или мобильном устройстве нужно войти в аккаунт Google. Выберите опцию «Добавить электронный ключ» на странице управления аккаунтом по следующему пути:
Затем вам нужно выбрать устройство, которые вы хотите использовать в качестве ключа безопасности. Вот почему смартфон должен быть привязан к аккаунту Google, в противном случае вы просто не увидите его в списке телефонов, которые можно настроить как электронный ключ.
После завершения настройки, вы получите следующее сообщение:
Готово! Электронный ключ добавлен
Электронные ключи устройства [имя устройства] добавлены в аккаунт.
Теперь для входа в аккаунт с помощью двухэтапной аутентификации вам понадобится пароль и устройство [имя устройства].
Убедитесь, что включены Bluetooth и определение местоположения
В следующий раз при попытке входа в аккаунт Google, вы должны будете подтвердить это действие на своем мобильном телефоне.
После подтверждения входа, вы получите доступ к своему аккаунту.
Руководствуясь данной инструкцией, всегда можете изменить данные параметры, удалять устройства и добавлять новые устройства в качестве электронных ключей. Не забывайте, что ваш компьютер должен иметь Bluetooth-модуль, иначе данные о попытке авторизации не будут отправлены на ваш смартфон. Кроме того, вы должны включить службы геолокации на своем смартфоне.
Источник
Ключи, учетные данные и хранилище на Android
Russian (Pусский) translation by Ellen Nelson (you can also view the original English article)
В предыдущем материале о безопасности пользовательских данных Android мы рассмотрели шифрование данных с помощью предоставленного пользователем кода. В этом уроке перейдём к хранению учётных данных и ключей. Я начну с ознакомления с учётными данными и закончу примером защиты данных с помощью хранилища ключей KeyStore.
Часто, при работе со сторонней службой, требуется какая-то форма авторизации. Она может быть настолько простой, как /login на стороне пользователя, которая принимает имя пользователя и пароль.
Сначала может показаться, что простое решение — это собрать UI, который будет предлагать пользователю войти в систему, а затем записать и сохранить их данные для входа. Однако, это не лучший метод, так как нашему приложению не нужно знать данные для входа в сторонний аккаунт. Вместо этого, мы можем использовать Диспетчер учётных записей (Account Manager), который уполномочен отрабатывать эту конфиденциальную информацию для нас.
Диспетчер учётных записей
Диспетчер учётных записей (Account Manager) — это централизованный помощник для работы с учётными данными пользователя, поэтому вашему приложению, иметь дело с паролями напрямую не нужно. Часто он предоставляет токен вместо реального имени пользователя и пароля, который можно использовать для выполнения аутентифицированных запросов к службе. Например, при запросе токена OAuth2.
Иногда, вся необходимая информация уже хранится на устройстве, а иногда Account Manager придётся обращаться к серверу за новым токеном. Вы, наверное, видели раздел Учётные записи в Настройках вашего устройства для разных приложений. И вот как, мы можем получить список доступных учётных записей:
Этому коду потребуется разрешение android.permission.GET_ACCOUNTS . Если вы ищете определённую учётную запись, вы можете найти её вот так:
Как только найдёте учётную запись, её токен можно получить вызвав метод getAuthToken(Account, String, Bundle, Activity, AccountManagerCallback, Handler) . Затем, таки можно использовать как для авторизированных запросов API к сервису. Это может быть RESTful API, в котором вы передаёте параметр токена во время HTTPS-запроса без необходимости знать детали личной учётной записи пользователя.
Так как, у каждой службы будет свой способ проверки подлинности и хранения личных учётных данных, Диспетчер учётных записей предоставляет модули проверки подлинности для реализации сторонней службой. Хотя Android может выполнять вход на многие популярные сервисы, для вашего приложения, вы можете написать свой собственный обработчик авторизации учётной записи и хранилища учётных данных. Это позволит убедиться, что учётные данные зашифрованы. Имейте также в виду, что учётные данные в Диспетчере учётных записей, которые используются другими службами, могут храниться в виде открытого текста, что делает их видимыми для любого, кто имеет рут-права на своё устройство.
Временами вам нужно будет иметь дело с ключами или сертификатами для отдельного лица или сущности, вместо просто данных для входа. Например, когда стороннее приложение отправляет вам файл сертификата, который вам нужно сохранить. Самый распространённый сценарий — это когда приложению нужно авторизироваться на сервере частной организации.
В следующем уроке, мы рассмотрим использование сертификатов для аутентификации и безопасной связи, ну а пока, я всё же хочу рассмотреть, как хранить эти элементы. Изначально Keychain API был создан для очень конкретного использования — установка закрытого ключа или пары сертификатов из файла PKCS#12.
Keychain — связка ключей
Представленный в Android 4.0 (API Level 14), Keychain API управлял ключами. В частности, это работает с объектами PrivateKey и X509Certificate и обеспечивает более безопасный контейнер, чем использование хранилища данных вашего приложения. Связано это с тем, что разрешения закрытых ключей открывают доступ к ключам только вашему приложению и только после авторизации пользователя. Это означает, что, прежде чем, вы сможете использовать хранилище учётных данных, на устройстве должен быть настроен экран блокировки. Кроме того, объекты в связке ключей можно объединить с защитой от оборудования, если доступно.
Код установки сертификата выглядит следующим образом:
Пользователю будет предложено ввести пароль для доступа к закрытому ключу и указать имя сертификата. Для получения ключа, в следующем коде представлен пользовательский интерфейс, который позволяет пользователю выбирать ключ из списка установленных ключей.
Как только выбор сделан, возвращается строка с названием псевдонима alias(final String alias) , где вы можете напрямую получить доступ к закрытому ключу или цепочке сертификатов.
Вооружившись этими знаниями, теперь давайте посмотрим, как мы можем использовать хранилище учётных данных для сохранения конфиденциальных данных.
KeyStore
В предыдущем уроке, мы рассмотрели защиту данных с помощью предоставляемого пользователем пароля. Такой вариант хорош, но требования к приложениям часто уводят от того, чтобы пользователи каждый раз входили в систему и запоминали дополнительный пароль.
Вот где можно использовать KeyStore API. Начиная с API 1, KeyStore используется системой для хранения учётных данных WiFi и VPN. Начиная с 4.3 (API 18), вы можете работать с асимметричными ключами конкретного приложения, а в Android M (API 23) можно хранить симметричный ключ AES. Таким образом, хотя API не позволяет хранить конфиденциальные строки напрямую, эти ключи можно сохранить, а затем использовать для шифрования строк.
Преимущество хранения ключа в хранилище ключей заключается в том, что он позволяет работать с ключами без раскрытия секретного содержимого этого ключа; данным ключа не место в приложении. Помните, что ключи защищаются разрешениями, так что только ваше приложение может получить к ним доступ, и они могут быть дополнительно защищены аппаратным обеспечением, если устройство поддерживает это. Создаётся контейнер, который усложняет извлечение ключей с устройства.
Генерирование нового случайного ключа
В этом примере вместо генерации ключа AES из предоставленного пользователем пароля мы можем автоматически сгенерировать случайный ключ, который будет защищён в хранилище ключей KeyStore. Мы можем сделать это, создав экземпляр KeyGenerator , настроенного на поставщика «AndroidKeyStore» .
Здесь важно обратить внимание на спецификации .setUserAuthenticationRequired(true) и .setUserAuthenticationValidityDurationSeconds(120) . Для этого, обязательно должна быть включена блокировка экрана и ключ должен быть заблокирован, до тех пор, пока пользователь не аутентифицируется.
Изучив документацию .setUserAuthenticationValidityDurationSeconds() , вы увидите, что это означает, что ключ доступен только через определённое количество секунд после аутентификации по паролю, и что для передачи -1 требуется идентификация по отпечатку пальца каждый раз, когда вы хотите получить доступ к ключу. Включение требования для аутентификации также приводит к отзыву ключа, когда пользователь удаляет или изменяет экран блокировки.
Поскольку хранение незащищённого ключа вместе с зашифрованными данными, это как прятать ключ от дома под половик, эти параметры пытаются защитить ключ в состоянии покоя в случае взлома устройства. Примером может служить автономный дамп данных устройства. Если пароль устройства не известен, эти данные, по сути, бесполезны.
Опция .setRandomizedEncryptionRequired(true) включает требование о наличии достаточного количества случайных чисел (каждый раз новый случайный ВИ [вектор инициализации]), чтобы при повторном шифровании одних и тех же данных, зашифрованный результат всё равно не повторялся. Это не позволяет злоумышленнику получить информацию о зашифрованном тексте на основе передачи тех же данных.
Ещё стоит отметить — setUserAuthenticationValidWhileOnBody(boolean remainsValid) , что блокирует ключ, как только устройство обнаружит, что он больше не принадлежит человеку.
Шифрование данных
Теперь, когда ключ хранится в хранилище KeyStore, мы можем создать метод, который зашифрует данные с использованием объекта Cipher , учитывая SecretKey . Это вернёт HashMap , содержащий зашифрованные данные и случайный ВИ, который понадобится для расшифровки данных. Зашифрованные данные вместе с ВИ могут быть сохранены в файл или в открытых настройках.
Расшифровка в массив байтов
Для расшифровки применяется обратный ход. Объект Cipher инициализируется с использованием константы DECRYPT_MODE , и возвращается расшифрованный массив byte[] .
Смотрим на примере
Теперь мы можем посмотреть на пример!
Использование асимметричных ключей RSA для старых устройств
Это хорошее решение для хранения данных в версии M и выше, но что, если ваше приложение поддерживает более ранние версии? Хотя симметричные ключи AES не поддерживаются в M, поддерживаются асимметричные ключи RSA. Это означает, что для достижения того же результата, мы можем использовать RSA ключи и шифрование.
Основное отличие заключается в том, что асимметричная пара ключей содержит два ключа: закрытый и открытый ключ, где открытый ключ шифрует данные, а закрытый ключ расшифровывает их. KeyPairGeneratorSpec передаётся в KeyPairGenerator , который инициализируется с помощью KEY_ALGORITHM_RSA и поставщика AndroidKeyStore .
Для шифрования, из пары ключей мы получаем RSAPublicKey и используем его с объектом Cipher .
Расшифровка выполняется с использованием объекта RSAPrivateKey .
Кое-что об RSA — шифрование медленнее, чем в AES. Для небольших объёмов информации, например, когда вы защищаете строки общих настроек, это не страшно. Если вы обнаружите проблему с производительностью при шифровании больших объёмов данных, то вместо этого вы можете использовать данный пример для шифрования и хранения только ключа AES. И тогда, для остальной части ваших данных, используйте более быстрое шифрование AES, которое обсуждалось в предыдущем уроке. Вы можете сгенерировать новый AES ключ и преобразовать его в массив byte[] , который совместим с этим примером.
Чтобы получить ключ, сделайте вот так:
Довольно много кода! Для простоты примеров, я пропустил обработку исключений. Но помните, что для итогового кода не рекомендуется просто перехватывать все случаи Throwable в одном операторе catch.
Заключение
На этом урок по работе с учётными данными и ключами завершён. Большая часть неразберихи вокруг ключей и хранилища связана с эволюцией ОС Android, но вы можете выбрать, какое решение использовать, учитывая уровень API, поддерживаемый вашим приложением.
Теперь, когда мы рассмотрели лучшие примеры защиты данных в состоянии покоя, следующий урок будет сосредоточен на защите данных при передаче.
Источник