7 февраля 2018
Шифрование данных на наших устройствах: как это работает?
Константин Иванов
По материалам androidcentral.com
Тема безопасности в мире мобильных устройств и, в частности, в мире Android, никогда не потеряет своей актуальности. В этом небольшом материале поговорим о шифровании данных. Дискуссий по различным вопросам, связанным с шифрованием, ведется много. Но все ли представляют, что это такое? Давайте немного углубимся в самую базовую теорию.
Что такое шифрование?
В самом общем смысле шифрование – это изменение способа представления информации таким образом, что она оказывается скрытой, и единственный способ получить ее в изначальном виде – это некий четкий набор инструкций.
Способов зашифровать информацию множество, в особенности если она хранится в цифровом виде на компьютере или телефоне. Если вам когда-либо приходил файл zip или документ Microsoft Office, для просмотра которого требовался пароль, это означает, что он был зашифрован. Данные, которые вы хотели получить, были помещены в контейнер (который можно представить как папку на вашем смартфоне или компьютере), а контейнер был защищен паролем. Можно распространить этот метод и на целый диск или раздел. Для доступа к любой информации внутри зашифрованного раздела вам потребуется открыть его при помощи пароля.
Другой способ зашифровать данные – физически изменить то, как они будут представлены до тех пор, пока не подвергнутся дешифровке. Можно сравнить это с приложением, в котором вы печатаете какую-то фразу, а оно переводит буквы в числа от 1 до 33. Вы вбиваете предложение, а видите в итоге последовательность цифр.
Но приложению известно, что 1 означает «А», что ни одно число больше 33 не подходит, а также приложение имеет доступ к словарю операционной системы для проверки написания, поскольку последовательность 11 может означать как «АА», так и «АК», в зависимости от того слова, которое вы печатали. Когда кто-то другой использует приложение, чтобы прочитать то, что вы написали, написанное выглядит нормальным образом.
Теперь представьте другую ситуацию. Порядок чисел был изменен на обратный, 13 было добавлено между 11 и 15, пробел между словами был убран, а в каждый небольшой интервал между буквами была вставлена случайная нечитаемая последовательность символов. Этот файл нельзя будет прочитать без использования приложения, в отличие от первого примера, с которым при наличии желания и терпения можно справиться. Так работает алгоритм шифрования. Он помогает программе превратить информацию любого вида в мешанину, которую легко расшифровать при помощи алгоритма и очень сложно и затратно по времени – без него.
Компьютерные алгоритмы могут делать гораздо более сложные вещи в сравнении с простым примером, приведенным выше. И они выполняют эти операции гораздо быстрее, чем человек, который считал на пальцах, чтобы этот пример придумать. Шифрование папки или диска – это образец зашифрованного контейнера, и зашифрованные данные наподобие нашего примера также можно поместить в такой зашифрованный контейнер.
Взять информацию, зашифровать ее, а потом удостовериться, что приложения и сервисы, которым потребуется доступ к этой информации, могут ее расшифровать и использовать, – это очень сложно. К счастью, эту работу выполняют устройство и операционная система на нем, а все, что требуется от нас, – это знать правильный пароль и пользоваться правильным сервисом.
Шифрование и Android
Android поддерживает шифрование на уровне файла и контейнера (полнодисковое шифрование). Как платформа для приложений он также может поддерживать сторонние методы шифрования, такие как безопасные папки или зашифрованная переписка в мессенджерах и почте. Это означает, что чипсет устройства содержит компонент, который установлен, чтобы помочь на лету зашифровывать и расшифровывать данные. Действительный ключ к расшифровке файлов хранится на устройстве, и каждое действие пользователя – пароль, отпечаток пальца, доверенное устройство и др. – которое используется для получения доступа к зашифрованным данным, обращается к Secure Element (отдельному микропроцессору наподобие тех, что используются в пластиковых картах). Начиная с Android 6.0 Marshmallow, все функции шифрования могут выполняться с использованием этого Secure Element и закрытого ключа, токенов (одноразовых или многоразовых электронных ключей), которые применяются для шифрования и расшифровки данных. Это означает, что без предоставления процессору действующего токена данные останутся зашифрованными.
В ваших настройках Android вы также можете сделать так, что система будет оставаться зашифрованной каждый раз при загрузке телефона, до тех пор, пока не будет введен пароль. Когда данные в вашем телефоне зашифрованы, это уже обеспечивает безопасность, но приостановка процесса загрузки до момента, пока не введен пароль, предотвращает доступ к файлам и служит дополнительным уровнем защиты. В любом случае ваш пароль (или PIN-код, или графический ключ, или отпечаток пальца) обращается к данным посредством Secure Element , и у вас нет никакой возможности получить закрытый ключ шифрования – единственный необходимый для того, чтобы узнать, что было сделано с данными и как вернуть их в прежний вид.
Ваша переписка и действия в браузере также могут подвергаться шифрованию. Вероятно, вы обращали внимание на то, что в вашем браузере многие сайты имеют адрес, начинающийся с HTTPS вместо HTTP. HTTP означает Hypertext Transfer Protocol (протокол передачи текста), и это протокол (спасибо, кэп!), который используется, чтобы отправлять и получать данные в сети Интернет. В свою очередь, HTTPS означает «HTTP over SSL» (Secure Sockets Layer, уровень защищенных сокетов), он добавляет в протокол стандарт шифрования. Все данные, которые вы вводите в браузере, изменяются при помощи открытого ключа, который вы скачиваете с сайта, попадая на него, и только закрытый ключ – который имеется на веб-сервере – может их расшифровать.
Данные, которые попадают обратно к вам, видоизменяются так, что расшифровать их можно только при помощи вашей уникальной версии открытого ключа. Вам не нужно делать ничего, кроме как посещать безопасные сайты, чей адрес начинается с HTTPS. Ваш смартфон проверяет, действительно ли сервер представляет собой то, чем он выглядит, при помощи сертификата, и самостоятельно зашифровывает и расшифровывает данные через приложение браузера.
Для того, чтобы вести зашифрованную переписку, обычно требуется скачать приложение из Google Play. Такие приложения, как Signal или WhatsApp, предлагают шифрование, которое называют сквозным, это означает, что приложение назначает ключи отдельным контактам или группам и сообщение может прочитать только то лицо, которому оно адресовано. BlackBerry Messenger многие считают безопасным, но поскольку в нем имеется лишь один общий ключ, который есть на всех устройствах BlackBerry, эта безопасность представляется несколько спорной. BBM Protected доступен для групп, которым требуется более высокий уровень шифрования или сквозное шифрование. iMessage от Apple также имеет сквозное шифрование, но только в случае, если все участники переписки – счастливые обладатели iPhone.
Эти приложения вы используете, как использовали бы любой другой мессенджер: вы добавляете контакт и обмениваетесь с ним сообщениями. Разница лишь в том, что эти сообщения могут быть зашифрованы, так что только две стороны – участники переписки – могут их прочитать.
Шифрование – это хорошо или плохо?
Некоторые товарищи в некоторых правительствах утверждают, что технологии шифрования, доступные конечному пользователю, то есть нам с вами, это опасно, поскольку из-за этого невозможно отслеживать все коммуникации лиц, которыми могут интересоваться всевозможные органы. Этот аргумент может звучать убедительно, когда нам говорят о том, как террористы месяцами общались в Facebook или WhatsApp. Однако сама по себе технология шифрования не опасна, а вот без нее не могло бы считаться безопасным ни одно наше действие в сети, а мы не могли бы быть уверены, что наше общение носит личный характер. Любая чувствительная информация на наших смартфонах могла бы быть легко получена тем, у кого были бы нужные инструменты и достаточная мотивация.
Если мы лишимся прав использовать шифрование данных, мы лишимся права на неприкосновенность частной жизни. Хорошо быть уверенным в том, что государство предотвратит преступление, а потенциальные преступники будут найдены. Но ради этого должны поступиться своими правами законопослушные граждане, которые, например, просто покупают что-нибудь в сети. Интересно узнать, уважаемые читатели, что вы думаете по данному вопросу.
Допустим, шифрование запретили.
Вопрос, что мешает нехорошим террористам изначально писать сообщения неким шифром?
Многие, наверное, в юности увлекались детективами и пытались сами придумать свой шифр.
Классика жанра: в сообщении только каждое пятое слово несет информацию, остальные вводят в заблуждение.
Итого: от террористов запрет не спасет, а личной жизни, как и любых финансов в интернете не будет.
С уважением, Ваш кэп.
А если еще это пятое слово переносит информацию не буквально, а показывает место в следующем предложении нужного слова? А и там тоже такая же фигня? Да любой суперкомпьютер загнется все варианты высчитывать.
Да банальное словосочетание «клиент готов» может означать спектр событий от успешного соглашения до путешествия в место окончательной регистрации граждан.
И вряд ли супер компьютер сможет это осознать.
А уж если использовать язык падонкафф…
Обмен по https не шифруется парой открытого/закрытого ключа. Эти ключи нужны только для установки handshake в начале сессии. При хендшейке клиент генерит секреьный стмметричный ключ, которым и шифруется дальнейший оьмен данных. Симметричный ключ зашифровывается открытом ключом сервера, который сервер расшифровывает своим закрытым ключем. Больше ассимметричное шифрование не испольщуется. Все потому, что ассиметрчная криптография намного менее производительнее, чем симметричная.
Здравствуйте. Помогите пожалуйста. Сделал шифрование данных на андроид приставке. Запомнил пароль.Но когда ввожу его,приставка не запускается, как быть?