Key chain android вылезает
Краткое описание:
Шифрование на основе цифровых ключей PGP.
OpenKeychain помогает общаться более конфиденциально и безопасно. Он использует высококачественное современное шифрование. Ваши сообщения могут быть прочитаны только теми людьми, которым вы их отправите. Другие люди тоже могут посылать вам сообщения, и только вы можете их прочитать; эти сообщения подписываются цифровой подписью, чтобы их получатель был уверен в личности отправителя. OpenKeychain основан на хорошо документированном стандарте шифрования OpenPGP (PGP, GPG или GnuPG), совместимом между его реализациями на различных устройствах и операционных системах.
Современное шифрование на основе цифровых ключей. OpenKeychain хранит ключи и управляет ими, привязывая ключи к тем людям из списка контактов, с которыми вы общаетесь. Также она поможет вам найти ключи других людей в Интернете, и обменяться ключами просто коснувшись устройствами (QR коды). Но наиболее частое применение — использование этих ключей для шифрования и расшифровки сообщений.
App Description Install Repository
K-9 Mail Best open source email client for Android Play, F-Droid GitHub
Oversec Transparently encrypts and decrypts any text in any app. Play
Mail.de Mail.de email client Play
PGPClipper PGPClipper integrates with the clipboard to decrypt PGP messages F-Droid GitHub
andOTP OTP generator with backups in OpenPGP format Play, F-Droid GitHub
oandbackup Backup apps encrypted via OpenPGP F-Droid GitHub
PGPAuth Send OpenPGP-signed requests to a server Play, F-Droid GitHub
PhotoPGP Take photos of sensitive, private, or confidential information Play
FairEmail Fully featured, open source, privacy oriented email app for Android Play, F-Droid GitHub
★ Open Source: OpenKeychain разработан, чтобы быть надежным. Это свободное программное обеспечение без каких-либо секретов; любой человек может исследовать и проверить каждый бит (исходный код доступен на https://github.com/open-keychain/open-keychain)
★ Независимый аудит безопасности: аудиторская компания Cure53 провела интенсивный аудит безопасности OpenKeychain. Эксперты по безопасности резюмировали их окончательный результат с «[. ] ни один из освещённых вопросов не был критическим по степени тяжести с точки зрения последствий для безопасности. Это значительный и впечатляющий результат для приложения такой сложности и актуальности.»
★ Права доступа: так как OpenKeychain свободное программное обеспечение, любой желающий может проверить, что права доступа действительно необходимы только для нижеперечисленных функций.
Разрешения
- изменение или удаление данных на общем накопителе
Приложение сможет записывать данные на общий накопитель. - просмотр данных на общем накопителе
Приложение сможет считывать данные с общего накопителя. - неограниченный доступ к Интернету
Приложение сможет создавать сетевые сокеты и использовать различные сетевые протоколы. Так как браузер и другие приложения обеспечивают средства для отправки данных в Интернет, это разрешение необязательно для отправки данных в Интернет. - просмотр сетевых подключений
Приложение сможет просматривать информацию о сетевых подключениях, например о том, какие сети доступны и к каким из них вы подключены. - просмотр подключений Wi-Fi
Приложение сможет просматривать информацию о сети Wi-Fi: состояние сети и имена подключенных устройств. - управление NFC-модулем
Приложение сможет обмениваться данными с NFC-метками, картами и устройствами считывания. - просмотр настроек синхронизации
Приложение сможет просматривать настройки синхронизации аккаунта, например определять, включена ли синхронизация для приложения \»Контакты\». - включение/выключение синхронизации
Приложение сможет изменять настройки синхронизации аккаунта. Например, с помощью этого разрешения можно включить в аккаунте синхронизацию контактов. - запускать активные сервисы
Приложение сможет использовать активные сервисы. - фото- и видеосъемка
Приложение может в любое время делать фотографии и снимать видео с помощью камеры. - отключение спящего режима
Приложение сможет запрещать перевод телефона в спящий режим. - запуск при включении устройства
Приложение сможет запускаться после начальной загрузки системы. Это может привести к увеличению времени включения телефона и уменьшить его быстродействие в связи с постоянной работой приложения.
Начиная с Android 6, разрешения запрашиваются при необходимости в приложении!
Если в прошивке вашего аппарата отсутствуют компоненты priv-app: Contacts и ContactsProvider (при создании ключей программа обращается к ним), то OpenKeychain будет вылетать.
Для сохранения зашифрованных файлов OpenKeychain необходимо наличие DocumentUI в папке system/app. Для стабильной работы OpenKeychain лучше перенести из data/app в system/priv-app.
Q&A
Q: Почему создаётся 3 (три) RSA ключа?
gpg4win может создать сертификат лишь с двумя rsa.
A: 1-ый ключ используется для шифрования, 2-ой ключ для подписи, и 3-ий — для привязки новых ключей, конфигурацию можно настроить.
—
Требуется Android: 4.0.3+
Русский интерфейс: Да
Версия: 5.7.4 OpenKeychain, GP, 21/04/2021 (VernyjPes)
Версия: 5.7.2 OpenKeychain, GP, 27/03/2021 (VernyjPes)
Версия: 5.7 OpenKeychain, GP, 17/03/2021 (VernyjPes)
Версия: 5.6.2 OpenKeychain, F-Droid (2021-03-01) (sol4r1s)
Версия: 5.6.2 OpenKeychain, GP, 18/02/2021 (VernyjPes)
Версия: 5.6.1 OpenKeychain, GP, 17/02/2021 (VernyjPes)
Версия: 5.6 OpenKeychain, GP, 14/02/2021 (VernyjPes)
Версия: 5.5 OpenKeychain, GP, 20/01/2020 (VernyjPes)
Версия: 5.4 OpenKeychain, GP, 22/10/2019 (VernyjPes)
Версия: 5.3 OpenKeychain (Пост VernyjPes #86673717)
Версия: 5.2 Сообщение №83, автор VernyjPes
Версия: 5.3-beta3 Сообщение №92, автор VernyjPes
Версия: 5.1.4 OpenKeychain (Пост VernyjPes #74430490)
Версия: 5.1.3 Сообщение №74, автор VernyjPes
Версия: 5.1.2 OpenKeychain (Пост VernyjPes #74348244)
Версия: 5.1.1 Сообщение №72, автор VernyjPes
Версия: 5.1 Сообщение №71, автор VernyjPes
Версия: 5.0.2 Сообщение №60, автор VernyjPes
Версия: 5.0.1 Сообщение №48, автор VernyjPes
Версия: 5.0 Сообщение №46, автор VernyjPes
Версия: 4.9.2 Сообщение №44, автор VernyjPes
Версия: 4.9.1 OpenKeychain (Пост VernyjPes #70836668)
Версия: 4.9 OpenKeychain (Пост VernyjPes #70609122)
Версия: 4.8.1 GP OpenKeychain (Пост VernyjPes #67779536)
Версия: 4.7 GP OpenKeychain (Пост VernyjPes #65442606)
Версия: 4.6 GP OpenKeychain (Пост VernyjPes #64527997)
Версия: 4.5.1 GP OpenKeychain (Пост VernyjPes #64494373)
Версия: 4.5 GP OpenKeychain (Пост VernyjPes #63538692)
Версия: 4.5 F-Droid OpenKeychain (Пост ferhad.necef #64132287)
Версия: 4.4.1 F-Droid org.sufficientlysecure.keychain_44100.apk ( 12.01 МБ )
Версия: 4.4.1 GP OpenKeychain (Пост VernyjPes #61046367)
Версия: 4.3 GP OpenKeychain (Пост VernyjPes #60834558)
Версия: 4.2.4 OpenKeychain (Пост VernyjPes #58107468)
Версия: 4.2.2 OpenKeychain (Пост VernyjPes #57919554)
версия: 4.2.1 GP OpenKeychain (Пост VernyjPes #57072689)
версия: 4.1 OpenKeychain_4.1.apk ( 8.44 МБ )
Сообщение отредактировал craysy — 14.05.21, 07:43
Источник
Dadaviz
Ваш IT помощник
Key Chain на Android — что это такое?
Всем привет! Сегодня мы расскажем об Андроид приложении KeyChain, оно же Брелок. Вы узнаете что это за программа Key Chain и для чего она нужна.
В последнее время многие пользователи Андроид устройств жалуются на произвольную установку приложения KeyChain (у некоторых возможно название Брелок). Программа загружается вирусом, который замаскирован под скрытый системный процесс.
Что это такое Key Chain на Андроиде?
Key Chain (Брелок) — это хранилище паролей от различных учетных записей (соц. сети, google аккаунты, игры и прочее). Благодаря этой программе вы сможете управлять своими паролями, изменять их и настраивать уровни доступа.
Основные возможности приложения:
- возможность создания случайно сгенерированных цифровых пин-кодов и паролей.
- сложная для взлома, но простая для запоминания цвнтная схема ввода сложных паролей.
- возможность синхронизации.
- хранение и изменение паролей.
Программа безусловно полезная, но бесплатная версия ограничена тремя паролями и пин-кодами. За использование большого числа, нужно покупать платную версию, которая также отключает рекламу. Вот наглядная видео-инструкция по работе с приложением Брелок.
Нужна ли Key Chain и как её удалить?
Если говорить о её надобности — то она будет полезна лишь в том случае, если вы действительно переживаете за сохранность своих личных данных не прочь применить двойную защиту. В противном случае, пользы от неё нет, тем более, что существует большое количество более популярных аналогов.
Тот факт, что она установилась на телефон сама, говорит о вирусном заражении. Сама программа не является вирусом, а её распространение подобным образом — лишь рекламная акция. Также минусом можно назвать постоянную работу в фоне, вследствие чего идет лишняя нагрузка на процессор.
- Если вы обнаружили произвольную установку программы Брелок на телефоне, тогда сразу же остановите одноименный процесс в «Диспетчере приложений» (вкладка Выполняемые или Активные).
- Установите на телефон мобильные антивирусы — Dr. Web, ESET или Касперский с последними актуальными обновлениями баз. Проведите сканирование и удаляйте обнаруженные вирусы.
- Важно убрать именно зараженное приложение, которое вызывает скачивание и рекламу.
Источник
Основы безопасности: Keychain и Хеширование
Один из наиболее важных аспектов разработки программного обеспечения, который также считается одним из самых загадочных и страшных (поэтому избегается, как чума) — это безопасность приложений. Пользователи ожидают, что их приложения будут корректно работать, хранить их личную информацию и защищать эту информацию от потенциальных угроз.
В этой статье вы погрузитесь в основы безопасности в iOS. Вы поработаете с некоторыми базовыми криптографическими методами хеширования для надежного хранения полученных данных в Keychain — сохраняя и защищая пользовательские данные в приложении.
Apple имеет несколько API, которые помогут защитить ваши приложения, и вы изучите их при работе с Keychain. Кроме того, вы будете использовать CryptoSwift — хорошо изучите и просмотрите библиотеку с открытым исходным кодом, которая реализует криптографические алгоритмы.
Начало
Используйте эту ссылку, чтобы загрузить проект для работы.
Мы будем работать над приложением, которое позволяет пользователям регистрироваться и видеть фотографии своих друзей. Большая часть приложения уже реализована, ваша задача — защитить это приложение.
Как только вы распакуете архив, обязательно откройте файл Friendvatars.xcworkspace, чтобы подключить зависимости исользуйте CocoaPod. Скомпилируйте и запустите приложение. Вы увидите, что оно стартует с экрана авторизации в систему:
В настоящее время при нажатии на кнопку Sign in ничего не происходит. Это связано с тем, что в приложении не реализован способ сохранения учетных данных пользователя. Это то, что вам нужно будет добавить в первую очередь.
Почему важна безопасность
Прежде чем погрузиться в работу с кодом, вы должны понять, зачем необходима безопасность в вашем приложении. Безопасность вашего приложения особенно важна, если вы храните личные данные пользователя, такие как электронные письма, пароли или данные банковского счета.
Почему Apple так серьезно относится к безопасности? Фотографий, которые вы фотографируете, до количества шагов, которые были сделанные в течение дня, ваш iPhone хранит много персональных данных. Защита этих данных очень важна.
Кто же является злоумышленниками в экосистеме iOS и чего они хотят? Злоумышленник может быть преступником, бизнес-конкурентом, даже другом или родственником. Не все злоумышленники хотят одного и того же. Некоторые могут захотеть нанести ущерб или испортить информацию, в то время как другие могут захотеть узнать, какие подарки они получат в свои дни рождения.
Ваша задача — убедиться, что данные, хранящиеся в вашем приложении, защищены от возможных угроз. К счастью, Apple разработала много мощных API, которые упрощают эту задачу.
Keychain
Одним из наиболее важных элементов безопасности для iOS разработчиков является Keychain, специализированная база данных для хранения метаданных и конфиденциальной информации. Использование Keychain — лучшая практика для хранения небольших фрагментов данных, которые имеют решающее значение для вашего приложения, таких как секреты и пароли.
Зачем использовать Keychain для более простых решений? Достаточно ли хранить пароль пользователя в base-64 в UserDefaults? Точно нет! Для злоумышленника вполне тривиально восстановить пароль, сохраненный таким образом. Безопасность сложна, и попытка создания вашего собственного решения не очень хорошая идея. Даже если ваше приложение не для финансового учреждения, хранение личных данных пользователя не следует воспринимать легкомысленно.
Прямое взаимодействие с Keychain является довольно не простым, особенно в Swift. Вы должны использовать Security фреймворки, которые в основном написана на языке C.
К счастью, вы можете избежать использования этих низкоуровневых API, заимствуя у Apple обертку для Swift из примера GenericKeychain. KeychainPasswordItem обеспечивает простой в использовании интерфейс для работы с Keychain и уже добавлен в стартовый проект.
Время погрузиться в код!
Использование Keychain
Откройте AuthViewController.swift. Этот контроллер отвечает за форму для авторизации, которую вы видели вначале. Если вы перейдете к разделу Actions, вы заметите, что метод signInButtonPressed ничего не делает. Пришло время это исправить.
Добавьте следующий код в раздел Helpers в самом низу:
Вот как это происходит:
- Вы убираете клавиатуру, чтобы подтвердить, что действие пользователя выполнено.
- Вы принимаете адрес электронной почты и пароль пользователя. Если длина введенной информации в поле равна нулю, то выполнение функции не будет продолжаться. В реальном приложении вы должны показать пользователю ошибку.
- Вы назначаете имя пользователя, которое для целей обучения в данной статье, вы берете из имени устройства.
Примечание: Вы можете изменить имя своего Mac (которое используется sim-картой), перейдя в System Preferences -> Sharing. Кроме того, вы можете изменить имя вашего iPhone, перейдя в Settings -> General -> About -> Name.
Теперь добавьте следующее в метод signInButtonPressed:
Этот код вызывает метод signIn, когда выполняется signInButtonPressed.
Найдите textFieldShouldReturn и замените TextFieldTag.password.rawValue в break под case на следующее:
Теперь метод signIn() будет вызван, когда пользователь нажмет Return на клавиатуре, после того как он ввел текст в поле пароля, в то время как поле пароля имеет фокус и уже содержит текст.
Метод signIn() еще не реализован до конца. Нам все еще нужно сохранить объекты user и password. Все это будет реализовано во вспомогательном классе.
Откройте AuthController.swift, который является статическим классом — он будет содержать бизнес логику, связанную с аутентификацией.
Для начала, в самом верху файла над isSignedIn следует добавить следующее:
Этот код определяет название сервиса, который будет использоваться для идентификации данных приложения в Keychain. Чтобы использовать эту константу, создайте метод signIn в конце класса:
Этот метод надежно сохранит информацию для авторизаций пользователя в Keychain. Он создает KeychainPasswordItem с названием сервиса, который вы определили вместе с уникальным идентификатором (account).
Для этого приложения, электронная почта пользователя используется в качестве идентификатора для Keychain, но другие данные также могут служить идентификатором или уникальным именем пользователя. Наконец, в Settings.currentUser присваивается значение user — все это сохраняется в UserDefaults.
Этот метод не следует считать завершенным! Хранение пароля пользователя напрямую не является лучшей практикой. Например, если злоумышленник взломал Keychain, он сможет получить пароли каждого пользователя в виде обычного текста. Лучшим решением является хранение хэша пароля, построенного на основе идентификации пользователя.
В верхней части AuthController.swift сразу после import Foundation добавьте следующее
CryptoSwift — это одна из самых популярных коллекций многих стандартных криптографических алгоритмов, написанных на Swift. Криптография сложна, и ее необходимо делать правильно, чтобы она действительно приносила пользу. Использование популярной библиотеки для обеспечения безопасности означает то, что вы не несете ответственности за реализацию стандартизированных функций хэширования. Наилучшие способы криптографии открыты для всеобщего обозрения.
Примечание: Фреймворк CommonCrypto от Apple предоставляет множество полезных функций хеширования, но в Swift работать с ними вовсе непросто. Вот почему для этой статьи мы выбрали библиотеку CryptoSwift.
Затем добавьте следующий код над signIn:
Этот метод принимает адрес электронной почты и пароль, и возвращает хешированную строку. Константа salt это уникальная строка, которая делает из обычного пароля редкий .sha256() — это метод c фреймворка CryptoSwift, который хеширует введенную строку по алгоритму SHA-2.
В предыдущем примере злоумышленник, который взломал Keychain, найдет этот хеш. Злоумышленник может создать таблицу часто используемых паролей и их хэшей для сравнения с этим хэшем. Если вы хэшировали только введенные данные пользователя без salt, и пароль существовал в хэш-таблице злоумышленников, пароль может быть взломан.
Использование salt увеличивает сложность взлома. Кроме того, вы комбинируете электронную почту и пароль пользователя с salt для создания хэша, который не может быть легко взломан.
Примечание: Для аутентификации пользователя, мобильное приложение и сервер будут использовать одну и ту же salt. Это позволяет им строить хэши однообразным способом и сравнивать два хэша для проверки личности.
Вернитесь назад к методу signIn(_:password:), замените строку кода, которая вызывает метод savePassword на следующее:
signIn теперь хранит сильный хэш, а не “сырой” пароль. Теперь пришло время добавить его в контроллер представления.
Вернитесь к AuthViewController.swift и добавьте в конец метода signIn() этот код:
Несмотря на то, что этот код сохраняет пользователя и сохраняет хешированный пароль, для приложения потребуется кое-что еще для того, чтобы выполнить вход. AppController.swift должен получать уведомления при изменении аутентификации.
Возможно, вы заметили, что AuthController.swift имеет статическую переменную с именем isSignedIn. В настоящее время она всегда возвращает false, даже если пользователь зарегистрирован.
В AuthController.swift измените isSignedIn:
Вот что тут происходит:
- Вы сразу же проверяете текущего пользователя, хранящегося в UserDefaults. Если пользователь не существует, то идентификатор для поиска хеша пароля в Keychain также будет отсутствовать, поэтому вы указываете, что он не зарегистрирован в системе.
- Вы получаете хеш-пароль из Keychain, и если пароль существует и не пуст, пользователь считается зарегистрированным.
Теперь handleAuthState в AppController.swift будет работать корректно, но после входа в систему потребуется перезапустить приложение, чтобы корректно обновить UI. Но есть хороший способ уведомлять приложение об изменении состояния, например, аутентификация пользователя, — используя notification.
Добавьте следующее в конец AuthController.swift:
Хорошей практикой является использование идентификатора домена при составлении пользовательских уведомлений, которое обычно берется из bundle identifier приложения. Использование уникального идентификатора может помочь при отладке приложения, так что все, что связано с вашим уведомлением, выделяется из других фреймворков, упомянутых в ваших логах.
Чтобы использовать данное имя пользовательского уведомления, добавьте следующее к нижней части метода signIn (_: password 🙂:
Данный код отправит уведомление, которое может быть обнаружено другими частями приложения.
Внутри AppController.swift добавьте метод init над show(in:):
Данный код зарегистрирует AppController в качестве наблюдателя вашего регистрационного имени. При срабатывании он вызывает callAuthState.
Скомпилируйте и запустите приложение. После авторизаций в систему, используя любую комбинацию электронной почты и пароля, вы увидите список друзей:
Вы заметите, что нет никаких аватаров, а просто имена друзей. На это не очень приятно смотреть. Вероятно, вы должны выйти из этого незавершенного приложения и забыть о нем. О да, даже кнопка выхода не работает. Время поставить 1-звездочку в качестве оценки и действительно отдать это приложение его разработчику обратно!
Логирование работает отлично, но нет способа выйти из приложения. Это на самом деле довольно легко достичь, поскольку существует уведомление, которое будет сигнализировать об изменении состояния аутентификации.
Вернитесь назад к AuthViewController.swift и добавьте следующее под signIn(_:password:):
Это довольно просто:
- Вы проверяете, сохранили ли вы текущего пользователя или нет, если вы этого не сделали ранее.
- Вы удаляете хэш-пароль из Keychain.
- Вы очищаете объект пользователя и публикуете уведомление.
Чтобы подключить это, перейдите к FriendsViewController.swift и добавьте следующее в signOut:
Ваш новый метод вызывается, чтобы очистить данные пользователя вошедшего в систему, когда нажата кнопка «Выход».
Работа с ошибками в вашем приложении это хорошая идея, но в виду данного урока проигнорируйте любые ошибки.
Скомпилируйте и запустите приложение, затем нажмите кнопку «Выйти».
Теперь у вас есть полный работающий пример аутентификации в приложении!
Хеширование
Вы отлично справились с созданием аутентификации! Однако веселье еще не закончилось. Теперь вы преобразуете это пустое пространство перед именами в списке друзей.
В FriendsViewController.swift отображается список объектов модели User. Вы также хотите отображать изображения аватаров для каждого пользователя в представлении. Поскольку есть только два атрибута для User, имя и адрес электронной почты, как вы собираетесь показывать изображение?
Оказывается, есть служба, которая берет адрес электронной почты и связывает ее с изображением аватара: Gravatar! Если вы еще не слышали о Gravatar, она обычно используется в блогах и форумах, чтобы глобально связать адрес электронной почты с аватаром. Она упрощает работу, поэтому пользователям не нужно загружать новый аватар на каждый форум или сайт, к которому они присоединяются.
У каждого из этих пользователей уже есть аватар, связанный с их электронной почтой. Так что единственное, что вам нужно сделать, это выполнить запрос к Gravatar и получить изображения по запрошенным пользователям. Для этого вы создадите MD5 хеш их электронной почты, чтобы создать URL запросы.
Если вы посмотрите на документацию на сайте Gravatar, вы увидите, что для создания запроса нужен хешированный адрес электронной почты. Это будет кусок пирога, так как вы можете использовать CryptoSwift. Добавьте вместо комментариев Gravatar в tableView (_: cellForRowAt 🙂 следующее:
- Сначала вы форматируете адрес электронной почты в соответствии с документацией Gravatar, а затем создаете хеш MD5.
- Вы создаете URL-адрес Gravatar и URLSession. Вы загружаете UIImage из возвращаемых данных.
- Вы кешируете изображение, чтобы избежать повторных выборок для адреса электронной почты.
- Вы перезагружаете строку в представлении таблицы, чтобы отображалось изображение аватара.
Скомпилируйте и запустите приложение. Теперь вы можете видеть изображения и имена ваших друзей:
Примечание: Если ваша электронная почта возвращает дефолтное изображение (белый цвет на синем G), перейдите на сайт Gravatar и загрузите свой собственный аватар и присоединитесь к своим друзьям!
Если вы заинтересованы в других способах защиты своих приложений, изучите использование биометрических датчиков в последних продуктах Apple в этой статье.
Вы также можете узнать больше об инфраструктуре безопасности Apple, если хотите действительно заглянуть в фреймворк.
В конце, обязательно изучите дополнительные алгоритмы безопасности, предоставляемые CryptoSwift.
Надеюсь, Вам понравилась эта статья! Если у вас есть какие-либо вопросы или комментарии, присоединяйтесь обсуждению!
Источник