Исследование мобильных средств

курсовая работа

2.2.3 Signal

История этого мобильного приложения началась в 2010-ом году с создания двух приложений: TextSecure для защищенной переписки и RedPhone для осуществления защищенных голосовых вызовов по сети Интернет. С самого начала разработчики позиционировали своё программное обеспечение как конфиденциальное и способное защитить личные данные от атак посредника путём сквозного шифрования. В 2013-ом году TextSecure и RedPhone были объединены в одно приложение - Signal. Одноименное приложение анонсировали для iOS.

Разработчиком приложений выступает компания Open Whisper Systems. Она имеет свой репозиторий на портале GitHub [10], куда выкладывает все исходные коды своих проектов. Это делается для того, чтобы сообщество независимых разработчиков могло инспектировать код на наличие уязвимостей. Также можно собрать приложение из исходных кодов и проверить, отличается ли оно от того, что распространяется с помощью официальных магазинов приложений.

Для шифрования используется Signal Protocol, общие принципы которого описаны выше в разделе 2.2.1 Раньше этот протокол носил название TextSecure Protocol по понятным причинам. Его особенность заключается в том, что он совмещает в себе положительные стороны протоколов OTR и SCIMP, а также избавлен от их недостатков.

OTR (Off-the-Record Messaging Protocol) - протокол шифрования данных при обмене мгновенными сообщениями, представленный в 2004-ом году. К плюсам данного протокола можно отнести то, что в нем используются временные ключи шифрования. Это позволяет быть уверенным в том, что при потери секретных ключей прошлая переписка не будет скомпрометирована. Также стоит отметить то, что сообщения не подписываются автором или адресатом, и при перехвате сообщения злоумышленником будет невозможно доказать причастность кого-либо к этим сообщениям. К сожалению, есть у этого протокола и минусы, которые несколько затрудняют его использование на мобильных устройствах. Согласно протоколу [11] для начала обмена данными два пользователя должны обменяться ключами. Для этого им надо находится в самом приложении. В добавление, с каждым новым сообщением отправляется новый ключ, но, чтобы выработать новый ключ, надо, чтобы собеседник подтвердил предыдущий. Другими словами, у каждого сообщения будет свой временный ключ шифрования только в том случае, если пользователи будут обмениваться по одному сообщению строго друг за другом.

SCIMP (Silent Circle Instant Message Protocol) - протокол шифрования, разработанный компанией Silent Circle и использующийся в одноименном приложении. Продукты этой компании также рекомендует [12] Эдвард Сноуден. Согласно этому протоколу, каждый новый ключ получается итерацией из предыдущего. Такая система обеспечивает новый ключ шифрования для каждого нового сообщения вне зависимости от того, в какой последовательности и что отправляется. Это же и является недостатком данного протокола. Во-первых, при использовании асинхронных процессов в мобильных операционных системах может так получится, что сначала будет доставлено сообщение под номером 6, а только после него сообщение под номером 5, что будет неправильным. Во-вторых, все ключи получаются связанными и, таким образом, проблема с одним временным ключом будет влиять на всю сессию.

Signal Protocol избавлен от недостатков благодаря тому, что все необходимые ключи: и долговременные, и одноразовые - хранятся на сервере. Это позволяет добиться легкости использования и быстроты действия.

В целом, мессенджер Signal обладает всеми плюсами рассмотренного выше WhatsApp, при этом имеет открытый исходный код. Открытость исходного кода в свою очередь позволяет говорить о действительно надежных методах шифрования, проверенных независимыми экспертами.

Делись добром ;)