Защищенные почтовые сервисы. Защищенная почта ProtonMail. Что же делать

Простой текстовый счетчик на PHP

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

  1. Прочитать текущее содержимое счетчика;
  2. Увеличить текущее содержимое счетчика на единицу;
  3. Сохранить обновленное содержимое счетчика;
  4. Вывести на печать обновленное значение счетчика.

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

Я сразу приведу PHP-код, реализующий самый простой из всех возможных типов счетчика, а затем уже дам ряд комментариев.

Как видите, скрипт достаточно прозрачный и практически полностью следует сформулированному ранее алгоритму. При этом, для удобства дальнейшей поддержки кода, я в первой же строке определил переменную $file_counter , которую уже и использую. Постарайтесь, по возможности, всегда определять переменные для всех более-менее важных исходных данных и не используйте их напрямую.

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

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

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

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

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

Файл может отсутствовать при первом запуске скрипта, и в этом случае он будет создан автоматически - при первом же сохранении счетчика.





Электронная почта - технология, а также предоставляемые ею услуги по отправке электронных сообщений в компьютерной сети (в том числе, в глобальной сети Интернет).

В настоящее время технология электронной почты получила широкое распространение, чему способствовали, в частности, удобство и простота ее использования - любой человек может легко зарегистрировать электронный почтовый ящик; для этого необходимо лишь воспользоваться многочисленными бесплатными сервисами, такими как, например, mail.ru или yandex.ru (русские) или google.com , yahoo.com или mail.com (интернациональные).

Электронная почта по принципу работы и составным элементам напоминает почту обычную - в ней так же присутствуют такие понятия, как "письмо", "получатель", "отправитель", "доставка", "вложение", "ящик" и другие. В то же время, электронная почта заимствует у обычной характерные особенности: задержки передачи сообщений, достаточную надежность и отсутствие гарантии доставки.

Достоинства и недостатки

Достоинствами электронной почты принято считать:

  • легкие к запоминанию и восприятию человеком электронные адреса вида user_name@domain_name.com (например, [email protected]);
  • возможность передачи как простого текста, так и форматированного (с применением, например, HTML-разметки);
  • независимые серверы;
  • возможность отправки файлов, прикрепленных к письму (в терминах электронной почты - "вложений");
  • достаточно высокая надежность доставки сообщений;
  • простота использования программами и человеком.

Недостатки электронной почты:

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

Наряду с вышеперечисленными недостатками, электронная почта также обладает недостатками, связанными с защитой информации , которые более интересны в рамках данной статьи:

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

Защита электронной почты

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

На основани вышесказанного, обязательной защиты требуют:

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

Теоретические основы решения задачи

Обеспечение целостности, подлинности и невозможности отказа от авторства

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

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

Таким образом, использование электронной цифровой подписи обеспечивает:

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

Обеспечение конфиденциальности

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

Ведущие эксперты рекомендуют использовать для криптографической защиты данных ключи длиной не менее 75 бит, а лучше 90 бит и более; данных рекомендаций придерживаются все солидные международные торговые компании, лечебные учреждения, страховые компании, банки и брокерские конторы, уделяющие должное внимание безопасности данных. Сегодня мощные компьютеры доступны, практически, каждому пользователю, однако даже 40-битное шифрование все еще считается достаточно криптостойким, а шифрование данных на ключе длиной 128 бит и более представляется надежным на обозримое будущее, даже с учетом закона Мура , который говорит о том, что вычислительные мощности удваиваются каждые 18 месяцев.

Критерии защищенности

Система защищенного обмена сообщениями может считаться надежной, если выполняются следующие условия (Защищенная почта на сайте ШИПКА):

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

Основные криптографические конструкции и их стойкость

В настоящее время существуют два основных механизма обеспечения защиты электронной почты: PGP и S/MIME .

Практические применения криптографических конструкций, особенности их реализации

Решения на базе Desktop-приложений

Microsoft Outlook и Microsoft Outlook Express

Почтовые клиенты Microsoft Outlook и Microsoft Outlook Express имеют встроенную возможность отправлять защищенные сообщения, используя функции CryptoAPI 2.0 и сертификаты открытых ключей формата X.509 .

Данное решение имеет два основных недостатка:

  1. Сертификаты открытых ключей являются платными, а их получение может быть выполнено только лично по предоставлению целого ряда документов.
  2. Клиенты почтовых сообщений Microsoft Outlook и Microsoft Outlook Express не работают с российскими криптоалгоритмами - для обмена сообщениями с использованием сертификатов ГОСТ необходимо "патчить" операционную систему компьютера.

Дополнительные модули к почтовым клиентам

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

У данного способа построения защищенного обмена сообщениями также имеются недостатки:

  1. PGP также не поддерживает российские криптографические алгоритмы;
  2. PGP сложна в настройке для пользователя, не являющегося специалистом в области криптографии.

Общие недостатки Desktop-решений по защите электронной корреспонденции

Помимо специфичных недостатков, оба описанных выше решения по защите электронной почты имеют куда более важный общий недостаток: Desktop-реализацию. Если криптографические ключи хранятся на компьютере, на котором установлена программа, а злоумышленник способен получить доступ к данному компьютеру, то он сможет получить доступ к ключевой информации, а следовательно, к примеру, отправить сфабрикованное сообщение, подписанное ЭЦП лица, которому принадлежит данная машина и незаконно полученные ключи. В то же время, сам владелец ключевой информации не имеет возможности поддерживать защищенную переписку с других компьютеров, так как на них нет его личных ключей.

Также играет важную роль постоянное развитие вредоносного программного обеспечения, направленного на:

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

Защищенная почта c Web-интерфейсом

Более удобной, по сравнению с описанными выше средствами, представляется система защищенной почты c Web-интерфейсом. В такой системе гарантируется максимальная защита информации и удобство использования, причем не требуется никакого специального программного обеспечения - можно работать из любого места с доступом в Интернет. Также, данная система может предоставлять дополнительные, иногда платные, возможности:

  • шифрованный канал между пользователем и сервером с использованием SSL ;
  • документированное уведомление пользователя о доставке письма и/или автоматический ответ на входящую корреспонденцию;
  • цифровая подпись сообщений;
  • связь с другими почтовыми службами (канал связи с почтовым сервером также может быть защищен);
  • дополнительное уведомление о письмах на другой, обычный (открытый) электронный почтовый адрес;
  • возможность пересылки входящих писем в виде SMS на сотовый телефон или пейджер;
  • шифрование письма на локальном компьютере может осуществляться без его отправки для последующей расшифровки в любом месте с доступом в Интернет;
  • поддержка ведения записной книжки в защищенном удаленном хранилище.

Одним из лучших сервисов на сегодняшний день, предоставляющих услуги защищенной электронной почты с Web-интерфейсом, является система S-mail , созданная компанией Network Research Lab Ltd (NR Lab).

S-mail - защищенная электронная почта, позволяющая отправлять сообщения, защищенные от доступа третьих лиц. При этом, все криптографические методы защиты информации применяются совершенно "прозрачно" для пользователя. Для использования данного сервиса нет нужды изучать особенности криптографических протоколов или обмениваться криптографическими ключами, необходимо лишь зарегистрироваться на Web-сайте и работать с ним как с обычным почтовым сервисом - отправлять письма.

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

Вся переписка пользователей сервиса S-mail является абсолютно конфиденциальной: третьи лица не могут получить доступ к содержимому сообщений, так как перед отправкой письмо надежно шифруется на локальной машине пользователя и расшифровывается лишь на компьютере получателя после ввода пароля. При этом не нужно устанавливать какое-либо дополнительное программное обеспечение, а также обмениваться ключами или паролями со своими партнерами по конфиденциальной переписке.

Шифрование сообщений и приложений к ним построено на базе общепринятых криптографических алгоритмов, которые могут гарантировать высочайшую степень защищенности информации. Система S-mail работает на базе стандарта OpenPGP , а используемые криптографические протоколы, алгоритмы и форматы передаваемых по публичным сетям сообщений реализованы в соответствии с RFC 2440 "OpenPGP Message Format", который описывает порядок применения алгоритмов, их параметры, структуру сообщений, и т.п. В качестве симметричного алгоритма шифрования используется блочный криптоалгоритм

Как вы, вероятно, знаете, основные провайдеры сервиса электронной почты больше доверия. Вашу почту могут просматривать, скажем, работники Google или представители власти, и если это локальный сервис - будьте уверены, кто-то из ваших соотечественников будет ее просматривать. Каждый день. Просто ради забавы.

Контекстная реклама, которую уже давно без зазрения совести вешает гугл, и недавно начал вешать яндекс, также нехило раздражает. Особенно, когда заходишь в ящик после месяца или двух отсутствия и видишь все это. Насмотревшись на «рекомендованные мне предложения» (на основании чего рекомендованные и почему именно мне?) я принял решение, о котором не жалею вот уже 3 месяца.

Спасибо великому Сноудену за своевременную информацию, прощайте мылару и янд, я отправляюсь на Proton!

Я называю почту, которую нельзя просканировать — «E-mail 2.0». И, совершенно не стесняясь, пытаюсь заразить и вас стремлением к безопасности и конфиденциальности. - это еще мягко сказано!

Безопасность? Параноидальная безопасность!!!

Рассмотрим, с чем вы столкнетесь, если последуете совету и захотите себе ящик на Proton. Вам нужно будет придумать и запомнить 2 пароля: первый пароль будет вводиться для авторизации на сайте, но НЕ будет давать доступ к почтовому ящику. Чтобы просмотреть ящик, понадобится второй пароль, одновременно служащий для дешифровки писем. Операция шифрования проводится на стороне клиента, а на сервер отправляются уже зашифрованные данные, что исключает MITM атаку. Ключей от вашего ящика на серверах нет, так что, даже в случае визита людей с погонами , сотрудники сервиса смогут выдать только зашифрованные данные.

Архитектура такова благодаря использованию open source front-end encryption, что означает шифрование данных на стороне пользователя. Вы сможете познакомиться с OpenPGPjs библиотеками, используемыми сервисом, на этой страничке Github .

В end-to-end шифровании конечные точки это: отправитель и предназначенное устройство получателя . Сообщение шифруется локально на устройстве отправителя, после чего может быть расшифровано только на устройстве получателя. «End-to-end шифрование» обычно называется «шифрованием на стороне клиента» или «нулевым допуском», из-за факта обработки письма при помощи не централизованных серверов, а конечных устройств пользователей. Для end-to-end шифрования используется 2 алгоритма: симметричный и асимметричный .

Про почтовый сервис Proton я узнал из давней статьи на сайте. Поразмыслив над секретных агентов, насладившись «контекстной рекламой», ужаснувшись далеко не единичными случаями арестов американских граждан (пусть и не самых примерных людей) я решил: ни украинские сисадмины, ни русские хакеры, ни Барак О и Владимир П… ни даже Ее не Величество Елизавета 2.0… больше не смогут читать мою личную переписку… Ни за что. Нигде. Никогда. Паранойя. Паранойя !!!111…

Среди многочисленных «плюшек», которыми почта завлекает пользователей, стоит выделить:

  • Бесплатно (и без смс)
  • Свобода от законодательства Евросоюза, обязывающего выдавать информацию пользователей (Швейцария не является частью ЕС)
  • Свобода от аналогичного законодательства США
  • Свобода от властей самой Швейцарии - локальные законы охраняют неприкосновенность серверов и без особенной «боли в заднице» какой-нибудь правительственный тюфяк не имеет права даже смотреть на них .
  • Все сервера расположены в Швейцарии, постоянно идет процесс улучшения техники: добавления памяти, функций
  • При входе нужно вводить 2 пароля (второй пароль автоматически включается, если вы закрыли вкладку или переводили ноутбук в «спящий» режим)
  • В разработке полный контроль над приватными ключами
  • Шифрование писем — между пользователями Proton письма зашифрованы по умолчанию, а при отправке на сторонние почтовые сервисы их можно защитить паролем. Тогда реципиент получает не тело письма, а ссылку на сайт Proton, где он сможет ввести пароль (вы сообщаете пароль другим методом связи) и получить доступ к содержимому, включая вложения.
  • Если вы потеряли пароль от ящика, восстановить его уже не возможно. Сброс пароля возможен, но тогда вы навсегда потеряете письма. Не забывайте пароли!

Регистрация в ProtonMail

Для начала запросим себе «приглашение», нажав «Sign up» на главной страничке сервиса.

Выбираем, какую хотим почту, затем вводим свой текущий ящик, и «Request Invite». Как только вас пригласят (в течении месяца), вы сможете зайти к себе в кабинет.

Теперь нужно ввести mailbox пароль:

Как же выглядит почта изнутри?

Слева меню , сверху поиск , ваш e-mail , кнопки «Сообщить про ошибку », «Настройки », и «Выйти ». Для начала можно нажать «Настройки » и посмотреть, что там имеется.

Имеется возможность сменить логин-пароль, пароль на ящике, Alias - т. е. Псевдоним (внизу справа), подпись и пр. Управления ключами пока нет, но в ближайшем будущем планируется.

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

Теперь, когда мы покопались в настройках, можно покопаться в почтовом ящике. Здесь все стандартно, однако имеются свои преимущества. Во-первых, все что реально необходимо для полноценного общения и работы, вынесено в меню слева. Там и кнопка «Compose », и входящие , и контакт-лист , и корзина , причем показывается количество не всех входящих писем, а только непрочитанных:

Зачем нужна такая разнообразная сортировка, не понятно, однако она имеется:

Также можно отмечать нужные письма цветными метками.

А вот как выглядит контакт-лист (без зеленого):

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

Почему это важно?

Это важно для каждого, а не только для пользователей криптовалют, хакеров или продвинутых программистов. Заметьте, что даже купить или продать биткойн сегодня невозможно без использования почты, а что говорить про тотальную «завязанность» на е-мейл всех интернет-сервисов вообще, включая магазины, банки, мобильных операторов и проч.

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

Из блога компании:

«Мы бы хотели завершить некоторыми мыслями о приватности и слежке в общем. Некоторые люди утверждают, что если ты НЕ преступник, то нет никакой необходимости в приватности. Этим критикам мы просто зададим вопрос: означает ли это, что только у преступников имеются шторы на окнах?»

Почему вы не использовали это раньше?

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

О, «террористами», в смысле.

Однако стоит помнить, что не зашифрованные или не защищенные паролем письма, отправленные вами на другие почтовые сервисы, могут быть перехвачены! Параноидально безопасных вам Интернетов!

Сервис использует асимметричное шифрование (систему шифрования с использованием открытых ключей), реализованную на стороне веб-браузера пользователя на JavaScript.

На Wikipedia есть , но, к сожалению, довольно тяжело читается для обычного пользователя без специальных технических знаний.

Безопасность

Про безопасность подобных решений на стороне пользователя, когда программный код выдается сервисом при каждом обращении, в интернете можно найти массу обсуждений и статей. Например, статья на английском http://matasano.com/articles/javascript-cryptography/ от Matasano security.

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

Команда ProtonMail подчеркивает, что они находятся в Швейцарии, где, как они пишут, законодательно их не могу обязать установить backdoor. Полный текст их объяснения доступен по адресу https://protonmail.ch/blog/switzerland/ . Но это “в теории”, а “на практике” пока нет широко известных публичных прецедентов.

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

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

ProtonMail в защите от XSS-атак полагается на библиотеку js-xss . Но помимо фильтрации содержимого письма есть еще и служебные почтовые заголовки, которые можно аналогично сформировать специальным образом при отправлении писем со сторонних сервисов пользователю ProtonMail. А возможность получать письмо со сторонних сервисов есть у всех аккаунтов ProtonMail и запретить ее в настройках аккаунта нельзя.

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

Данную уязвимость нашел Mike Cardwell, о чем сообщил команде ProtonMail. После исправления уязвимости он опубликовал информацию об этом на ycombinator.com . ProtonMail разместил его имя в списке благодарностей на своем сайте - https://protonmail.ch/blog/protonmail-security-contributors/ , что подтверждает данный факт.

Сейчас данная проблема в безопасности ProtonMail уже исправлена, но сколько еще таких возможностей для хакеров таит в себе реализация криптографии на стороне браузера на JavaScript?

Подобные проекты

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

Отдельно следует отметить уникальную возможность данного проекта - поддержку полноценного поиска по зашифрованным сообщениям. На https://www.mailpile.is/faq/ пишут, что создается индекс, а само содержимое индекса хранит в виде хешей.

Не уточняется, это обычные MD5/SHA хеши или MAC. В случае обычных хешей данное решение по поиску может быть крайне небезопасным из-за возможности установить, какое ключевое слово встречается в зашифрованном тексте, посчитав хеши слов по словарю. Безопасность очень зависит от реализации данного способа.

Lavaboom - сервис безопасной веб-почты аналогично ProtonMail. Криптография реализована на JavaScript, код исполняется в веб-браузере.

Scramble - открытый исходный код, реализован на базе OpenPGPjs (аналогично ProtonMail), но относительно молодой проект и не так бурно развивается. Я указал его в этом списке, чтобы дать более полное представление о имеющихся сервисах на рынке.

OpenMailBox - шифрование реализовано при помощи плагина OpenPGP к проекту почтового веб-клиента Roundcube. Закрытый ключ сохранятся в Local Storage браузера.

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

Unseen используется также Roundcube с плагином OpenPGP.
Из десктопных клиентов смотрел версию для Ubuntu и Mac. Это нативные приложения-обертки, в которые внутри встроен “веб-сайт”.

Что же делать?

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

Кто сможет реализовать использование криптографии с открытыми ключами в доступном (легком) виде для обычных рядовых пользователей с использованием известных почтовых клиентов (Apple Mail, Microsoft Outlook, встроенные в мобильные ОС почтовые клиенты и другие), тот завоюет любовь пользователей и, безусловно, станет самым успешным сервисом! Добавить метки




Top