'
Лейн Ф.Е.
ИССЛЕДОВАНИЕ МЕТОДОВ ХРАНЕНИЯ ПОЛЬЗОВАТЕЛЬСКИХ ПАРОЛЕЙ И ИХ СИНХРОНИЗАЦИИ НА МОБИЛЬНЫХ УСТРОЙСТВАХ *
Аннотация:
в работе представлены методы безопасного хранения и передачи пользовательских данных, на примере паролей, с использованием компьютерного зрения, что обеспечивает безопасность и конфиденциальность. Описанный метод учитывает важность политики свободного программного обеспечения (FLOSS) в контексте управления паролями. Различные облачные сервисы и радиопередача могут быть уязвимыми к взлому и/или использовать проприетарные технологии, использование которых ставит под сомнение вопрос шифрования и хранения данных, что может создать риски для безопасности. Предложенный метод хранения данных основан на использовании шифрования AES + BIP-39, а метод передачи и синхронизации - на компьютерном зрении, обеспечивая защиту от несанкционированного перехвата данных.
Ключевые слова:
безопасность, компьютерное зрение, шифрование, пароли, конфиденциальность, мобильные технологии, свободное программное обеспечение
Хранение паролей в облачных сервисах или на серверах компаний становится всё более опасным и актуальным вопросом в современном мире цифровых технологий. В свете нескольких значительных инцидентов нарушения безопасности данных, включая утечки миллионов паролей, становится очевидной необходимость в поиске более надежных методов управления паролями [1].Во-первых, хранение паролей в облачных сервисах или на серверах компаний подвергает их риску атак со стороны злоумышленников. В случае успешной атаки, злоумышленники могут получить доступ к чувствительной информации, что приводит к серьезным последствиям для безопасности и конфиденциальности данных. Более того, внутренние нарушения безопасности, связанные с недостаточным контролем доступа к данным, могут представлять такую же угрозу, как и внешние атаки [2].Во-вторых, использование проприетарных технологий для хранения паролей может создавать дополнительные риски для безопасности данных. Такие технологии, часто не прозрачные в своих методах шифрования и управления данными, могут стать объектом атак или утечек данных. Более того, недостаточная прозрачность может привести к нарушению политики конфиденциальности и использованию данных пользователей в целях, не связанных с первоначальным назначением.Также, важность надежного хранения и генерации паролей рассматривается в статьях [3] и [4]. В них анализируются современные проблемы информационной безопасности, включая использование повторяющихся паролей и связанные с этим проблемы защиты персональных данных. Также, в [4] предлагаются рекомендации по созданию безопасных паролей и анализу их надежности.Для защиты паролей отлично подходит алгоритм симметричного шифрования AES. Симметричное шифрование означает, что для зашифрования и расшифрования данных используется один и тот же ключ. В случае хранения паролей, они обычно зашифровываются с помощью мастер-пароля и модификатора входа хэш-функци (соли). Одним из преимуществ шифрования AES является его высокая стойкость к взлому. Этот алгоритм имеет различные режимы работы (например, ECB, CBC, CTR и др.), которые позволяют адаптировать его к различным потребностям безопасности. Важно учитывать, что безопасность шифрования AES зависит от правильного выбора ключа. Длина ключа влияет на стойкость алгоритма к взлому. Обычно используются ключи длиной 128, 192 или 256 бит. Чем длиннее ключ, тем сложнее взломать зашифрованные данные [5]. Согласно анализу, проведенному авторами, AES с ключом длиной 128 бит обычно считается достаточно стойким для защиты данных на длительный срок. Для взлома AES-128 требуется вычислительное время, превышающее возможности современных компьютеров. Тем не менее, более длинные ключи, такие как AES-192 и AES-256, обеспечивают еще более высокий уровень безопасности. И хотя время, необходимое для взлома этих более длинных ключей, может быть велико, оно всё равно зависит от вычислительной мощности атакующего и использованных методов атаки [5].Для удобства пользователя, каждый «пароль» (каждый объект в базе данных) должен содержать 4 поля: название сайта (или ресурса к которому применяется пароль), имя пользователя, пароль и заметки. Все поля должны подвергаться шифрованию, а при вводе должны поддерживать возможность оставаться пустыми. Т.к., например, при определённых обстоятельствах может отсутствовать имя пользователя, или же, пользователь просто хочет сохранить небольшие приватные данные в поле заметок или пароля. Также данные поля должны иметь возможность редактирования и копирования в буфер обмена для удобства работы.Для усиления безопасности шифрования предлагается использовать случайно сгенерированную соль для каждого объекта данных (4 поля). В случае повреждения файла базы, это позволит восстановить как можно больше объектов. Каждый раз при создании или обновлении записи пароля необходимо использовать новую соль. В противном случае, из-за принципа работы шифрования AES возможно скомпрометировать мастер-пароль.В качестве мастер-пароля предлагается использовать мнемоническую фразу (BIP-39). Пользователю можно предложить вводить данную фразу при каждом декодировании базы данных, что существенно повышает безопасность и делает возможным хранение и передачю файла базы данных на любых носителях.Однако, мнемоническую фразу можно хранить на устройстве пользователя в зашифрованном виде, используя тот же алгоритм AES и мастер-пароль. Данный подход снижает безопасность, так как в случае, если устройство пользователя окажется у злоумышленника и мастер-пароль не является достаточно надежным, злоумышленник сможет расшифровать BIP-39 и получить доступ к базе паролей. Во избежание этого, такой принцип работы лучше всего использовать на устройствах, которые гарантированно не могут попасть в руки злоумышленника или имеют возможность шифрования данных, хранимых приложениями. Также, мастер-пароль должен быть крайне надежным, что было описано ранее.В качестве формата хранения данных хорошо подходит JSON-нотация, т.к. в большом количестве высокоуровневых языков программирования реализована возможность эффективно работать с ней. Пример одного объекта (4 поля) в незашифрованном виде показан в листинге 1.Листинг 1. Пример формата хранения объекта.Для шифрования, JSON можно представить в формате строки, применить кодировку (например, UTF-8) и подать байты на вход шифратора, предварительно представив мнемоническую фразу в виде байтов. Однако, для проверки целостности данных при расшифровке, перед сжатием следует вычислить чек-сумму байтов строки, например, используя хэш-функцию MD5. Полученную чек-сумму можно добавить в конец байтов строки, и, для уменьшения итогового объёма данных, дополнительно сжать (например, используя GZIP). Пример реализации такого алгоритма на языке Python, с использованием библиотек PyCryptodome и Mnemonic показан в листинге 2.Листинг 2. Пример реализации описанного алгоритма шифрования.Как видно в данном примере, сжатие позволило незначительно сократить размер объекта со 128 до 113 байтов (-12%). Однако, в случае использования заметок пользователем, сжатие может быть существеннее. Зашифрованные данные, вместе с начальным вектором (солью) можно также представить в виде JSON-нотации, предварительно применив кодировку Base64, что показано в листинге 3.Листинг 3. Пример хранения зашифрованного объекта.Для расшифровки объекта, необходимо проделать действия в обратном порядке, т.е. декодировать байты из Base64, расшифровать объект, используя мнемоническую фразу и начальный вектор (соль), распаковать байты, отделить чек-сумму, вычислить новую чек-сумму и сверить её с изначальной и кодировать, используя стандартную текстовую кодировку (например, UTF-8). В листинге 4 показан пример реализации декодирования.Листинг 4. Пример декодирования зашифрованного объекта.Т.к. данные после шифрования имеют высокую степень защиты, для синхронизации можно использовать открытые каналы передачи данных. Однако, для повышения защищённости и сохранения BIP-39 фразы на устройстве пользователя, крайне желательно, чтобы канал передачи данных также был защищённым, а для увеличения удобства использования — поддерживался на максимальном количестве устройств.По этим, и, описанным в начале причинам, для синхронизации не подходят проприетарные системы радиопередачи данных, такие как AirDrop, Samsung Quick Share и различные реализации Nearby Sharing. Использование Bluetooth и Wi-Fi потребует наличие соответствующих технологий в устройстве, а также алгоритмов инициации соединения, создания зашифрованного канала и передачи данных. Также, для повышения безопасности, некоторые пользователи предпочитают не использовать стандарты беспроводной передачи данных на устройствах с секретной информацией.Одним из вариантов передачи небольшого объёма данных в таких условиях является использование камеры устройства и алгоритмов компьютерного зрения. Например, при помощи QR-кодов [5] и открытых оффлайн-библиотек для их чтения, распространяющихся под лицензиями открытого программного обеспечения, можно передавать зашифрованные данные вплоть до 3КБ одним QR-кодом. При наличии большего объёма данных, их можно разделить на несколько кодов. Такой метод синхронизации данных используется, например, в приложениях двухфакторной аутентификации, таких как Aegis и Google Authenticator. Помимо QR-кодов, можно использовать и другие матричные коды, такие как Aztec, Data Matrix и т.д., способные хранить достаточное количество информации.Таким же образом, можно передать и мнемоническую фразу на другое устройство, однако в данном случае следует предупредить пользователя, что никто не должен получить доступ к данному изображению.Для первоначальной синхронизации (на новом устройстве), вся база данных может быть передана при помощи одного или нескольких QR-кодов в том же виде, в котором она хранится в JSON-файле, поскольку каждый объект уже содержит чек-сумму и закодированную информацию в формате Base64.Для последующих синхронизаций, с целью уменьшения объёма передаваемых данных можно синхронизировать лишь изменения в базе данных. Например, присваивать каждому объекту при создании уникальный ID и передавать только изменённые поля (или команду на удаление данного объекта). В листинге 5 показан пример, генерирующий QR-код при помощи библиотеки PyQRCode для синхронизации лишь одного изменённого поля.Листинг 5. Пример генерации QR-кода для синхронизации изменений.На рисунке 1 показан сгенерированный QR-код.Рисунок 1. Пример сгенерированого QR-кода. Как можно заметить, чек-сумма передаётся конечного объекта, а не синхронизируемых данных. Это позволяет убедиться в том, что переданных изменений достаточно для синхронизации двух объектов. Для использования данного метода, приложение должно сохранять версию базы данных после последней синхронизации, чтобы составить список изменений, необходимых для передачи на устройство. Также возможно создание нескольких таких «версий» базы данных для каждого устройства, чтобы корректно передавать изменения на несколько устройств в разное время.Таким образом, используя современные методы шифрования, удобный формат хранения и передачи данных, а также методы синхронизации, можно обеспечить высокий уровень безопасности и удобства в управлении паролями.
Номер журнала Вестник науки №5 (74) том 1
Ссылка для цитирования:
Лейн Ф.Е. ИССЛЕДОВАНИЕ МЕТОДОВ ХРАНЕНИЯ ПОЛЬЗОВАТЕЛЬСКИХ ПАРОЛЕЙ И ИХ СИНХРОНИЗАЦИИ НА МОБИЛЬНЫХ УСТРОЙСТВАХ // Вестник науки №5 (74) том 1. С. 512 - 522. 2024 г. ISSN 2712-8849 // Электронный ресурс: https://www.вестник-науки.рф/article/14276 (дата обращения: 17.06.2025 г.)
Вестник науки © 2024. 16+
*