Защита пользовательских данных: end-to-end шифрование в мобильных мессенджерах

data security Защита пользовательских данных: end-to-end шифрование в мобильных мессенджерах
3.7/5 - (14 голоса)

 

Как все начиналось

 
В сегодняшнем мире ежедневных хакерских атак и постоянных взломов приложений защита данных играет наиважнейшую роль. А ведь еще несколько лет назад дне было доказательств, что третья сторона действительно существует и данные пользователей действительно просматриваются.

Изменение ситуации связано с именем Эдварда Сноудена: только тогда организации во всем мире осознали значение безопасности данных и сконцентрировались на поиске и разработке защитных мер.

На данный момент, end-to-end шифрование считается самым надежным и “продвинутым” способом защитить пользовательские данные, включая как информацию о самих пользователях, так и сообщения, которыми они обмениваются. Говоря о последних, самым лучшим примером являются мобильные мессенджеры.

В 2016 знаменитый мессенджер WhatsApp внедрил end-to-end шифрование, сделав невозможным для государства и разведывательных служб просматривать пользовательские данные. В том же году в Viber также было реализовано end-to-end шифрование.

 

Как работает end-to-end шифрование

 
End-to-end представляет собой систему, в которой устройства передают друг другу информацию без участия сервера. Таким образом, коммуникация является прямой, посредники отсутствуют, а все данные, включающие сообщения, звонки, видео, картинки, полностью зашифрованы.

E2EE означает, что только у людей, вовлеченных в общение в мессенджере, есть ключи для шифрования и расшифровки сообщений. То есть только участники коммуникации (одиночных или групповых чатов) смогут прочитать сообщения.

Другими словами, файлы и емейлы будут проходить через множество серверов, но будут абсолютно для них нечитаемы и только конечные пользователи смогут понять (прочитать) полученную информацию.

Рассматривая ситуацию с точки зрения компаний, разрабатывающих мобильные мессенджеры, им следует принимать во внимание тот факт, что с реализацией end-to-end шифрования они лишают себя возможности собирать данные о пользователях.

 

Алгоритм шифрования

 
Алгоритм шифрования — это математический процесс преобразования данных в строки данных, имеющих случайный вид.

Исходные данные часто называют открытым или простым текстом, хотя для процесса криптографии не имеет значения, что представляют собой данные — реальный текст или же информацию другого рода.

По тому же принципу зашифрованные данные называются зашифрованным текстом, но как правило, они мало похожи на обычный текст.

Также стоит отметить, что зашифрованный механизм может даже представлять собой механическое устройство наподобие знаменитой шифровальной машины Энигма, успешно применявшейся во время Второй мировой войны. В наше время для шифрования и расшифровки сообщений разрабатываются компьютерные программы.

 

Шифрование с открытым ключом

 
Принцип шифрования с открытым ключом основан на двух разных ключах — открытом, который используется для шифрования сообщений, и закрытом, применяющимся для их расшифровки.

Открытым ключ называется потому, что пользователь (держатель ключа) может передавать его другим пользователям, чтобы те могли отправлять ему зашифрованные сообщения. При этом, только он может их расшифровать.

Алгоритмы с открытым ключом имеют разные преимущества. Например, они дают возможность без опаски передавать открытые ключи по незащищенным каналам: третья сторона не сможет их прочитать.

Тем не менее, в настоящее время алгоритмы с закрытым ключом продолжают довольно активно использоваться.

Также часто разрабатывают смешанную (гибридную) систему, при которой алгоритмы с открытым ключом позволяют передавать закрытый ключ, применяемый для обмена сообщениями до завершения коммуникации.

 

Как мы реализовали end-to-end шифрование в чате RealSmile

 
В мобильном мессенджере RealSmile мы хотели обеспечить полную безопасность пользовательских данных, поэтому выбрали end-to-end шифрование, чья надежность не вызывает сомнений. Для его реализации мы использовали самый известный алгоритм с открытым ключом RSA, опубликованный еще в далеком 1978 году.

Он работает следующим образом: программа-клиент (iOS/Android) генерирует открытые и закрытые ключи для каждого зарегистрированного пользователя. В то время как открытый ключ отправляется на сервер, закрытый хранится на клиенте.

При создании зашифрованного чата мы получаем открытый ключ участника общения для шифрования сообщений, которые мы будем ему отправлять. В свою очередь, он получает наш открытый ключ для шифрования данных.

Далее мы создаем сообщение, шифруем его сгенерированным открытым ключом и отправляем в зашифрованном виде на сервер.

Сервер же отправляет это сообщение участнику чата, который может расшифровать его при помощи своего приватного ключа, который есть только на его устройстве. Таким образом, мы получаем полную безопасность передаваемых сообщений.
 

Реализованное в Real Smile end-to-end шифрование работает по следующим правилам:
 

  • Зашифрованные сообщения передаются по коммуникационному каналу (по протоколу HTTP);
  • Закрытый ключ хранится только на устройстве пользователя;
  • Сервер хранит только открытые ключи. Расшифровать сообщение с открытым ключом невозможно. Для этого нужны оба ключа;
  • После удаления мобильного приложения закрытые ключи также удаляются, поэтому прочитать сообщения, полученные ранее, становится невозможным. При повторной установке приложения ключи генерируется заново.

 
На сегодняшний день end-to-end шифрование бесспорно является самым надежным способом обеспечения защиты пользовательских данных.

Если у вас есть какие-то вопросы или идея будущего проекта, обращайтесь к нам за бесплатной консультацией.) Имея большой опыт разработки мобильных приложений, мы фокусируемся на безопасности наших решений.
 
В связи с расширением нашей команды мы ищем Android и iOS разработчиков. Предлагаем конкурентную оплату труда, гибкий график, карьерный и профессиональный рост. Для ознакомления с вакансиями просим перейти по ссылке. Ждем ваше резюме.) (Добавлено 18.06.18)

3.7/5 - (14 голоса)
×