Технологии habr.com

Почему мы перенесли серверы в Исландию

Как основатель Simple Analytics, я всегда помнил о важности доверия и прозрачности для наших клиентов. Мы несём ответственность за них, чтобы они могли спать спокойно.

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

В последние несколько месяцев мы постепенно переместили наши серверы в Исландию. Хочу объяснить, как всё происходило, и, самое главное, почему. Это был непростой процесс, и я хотел бы поделиться нашим опытом. В статье есть некоторые технические детали, которые я попытался написать понятным языком, но прошу прощения, если они слишком технические.

Зачем переносить серверы?

Всё началось с того, что наш сайт добавили в EasyList. Это список доменных имен для блокировщиков рекламы. Я спросил, почему нас добавили, ведь мы не отслеживаем посетителей. Мы даже подчиняемся настройке «Не отслеживать» (Do Not Track) в браузере.

Я написал такой комментарий к пул-реквесту на GitHub:

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

Все с вами согласны, но я не хочу, чтобы мои запросы отправлялись в американскую компанию (в вашем случае Digital Ocean […]

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

Есть техническое решение проблемы. Вы можете сделать так, что украденный (или отсоединённый по какой-либо причине) диск становится непригоден для других. Полное шифрование затруднит доступ в отсутствие ключа (примечание: ключ только у Simple Analytics). По-прежнему можно получить небольшие фрагменты данных, физически считывая оперативную память сервера. Сервер не может работает без оперативной памяти, так что в этом отношении приходится довериться хостинг-провайдеру.

Это заставило меня задуматься, куда переместить наши серверы.

Новое место

Я начал искать в этом направлении и наткнулся на страницу в Википедии со списком стран, которые отметились цензурой и слежкой за пользователями. Там есть список «врагов интернета» от международной негосударственной организации «Репортёры без границ», которая находится в Париже и выступает за свободу прессы. Страна классифицируется как враг интернета, когда «не только подвергает цензуре новости и информацию в интернете, но и проводит почти систематические репрессии в отношении пользователей».

Помимо этого списка, существует альянс под названием Five Eyes aka FVEY. Это союз Австралии, Канады, Новой Зеландии, Великобритании и США. В последние годы документы показали, что они намеренно шпионят за гражданами друг друга и обмениваются собранной информацией, чтобы обойти законодательные ограничения на шпионаж внутри страны (источники). Бывший сотрудник АНБ Эдвард Сноуден охарактеризовал FVEY как «наднациональную разведывательную организацию, которая не подчиняется законам своих стран». Есть и другие страны, работающие вместе с FVEY в других международных кооперативах, включая Данию, Францию, Нидерланды, Норвегию, Бельгию, Германию, Италию, Испанию и Швецию (так называемые 14 Eyes). Я не смог найти доказательств, что альянс 14 Eyes злоупотребляет собранными разведданными.

После этого мы решили, что не будем хостится ни в одной из стран из списка «врагов интернета» и точно пропустим страны из альянса 14 Eyes. Факта коллективной слежки достаточно, чтобы отказаться от хранения там данных наших клиентов.

Относительно Исландии вышеупомянутая страница Википедии гласит следующее:

Конституцией Исландии запрещена цензура, и существует прочная традиция защиты свободы выражения мнений, которая распространяется и на Интернет. […]

Исландия

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

Согласно отчёту Freedom on the Net 2018 от Freedom House, по уровню цензуры Исландия вместе с Эстонией набрали 6/100 баллов (чем меньше, тем лучше). Это лучший результат. Имейте в виду, что оценивались не все страны.

Исландия не является членом Европейского союза, хотя входит в Европейскую экономическую зону и согласилась следовать законодательству в области защиты прав потребителей и предпринимательского права, аналогичному законодательству других государств-членов. Сюда входит Закон об электронных сообщениях (Electronic Communications Act 81/2003), который ввёл требования к хранению данных.

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

Хотя Исландия в целом следует законам Европейской экономической зоны, у неё свой подход к защите приватности. Например, исландский закон «О защите данных» поощряет анонимность пользовательских данных. Интернет-провайдеры и хостеры не несут юридической ответственности за контент, который они размещают или передают. Согласно исландскому законодательству, за законность использования домена .is несёт ответственность регистратор доменной зоны (ISNIC). Правительство не накладывает никаких ограничений на анонимное общение и не требует регистрации при покупке SIM-карт.

Ещё одно преимущество переезда в Исландию — климат и расположение. Серверы выделяют много тепла, а среднегодовая температура в Рейкьявике (столица Исландии, где расположено большинство центров обработки данных) составляет 4,67 °C, так что это отличное место для охлаждения серверов. На каждый ватт для работы серверов и сетевого оборудования уходит пропорционально очень мало ватт на охлаждение, освещение и другие накладные расходы. Кроме того, Исландия является крупнейшим в мире производителем «чистой» энергии на душу населения и вообще крупнейшим производителем электроэнергии на душу населения, с примерно 55 000 кВт•ч на человека в год. Для сравнения, средний показатель по ЕС менее 6000 кВт•ч. Большинство хостеров в Исландии получают 100% электроэнергии из возобновляемых источников.

Если вы проведёте прямую линию от Сан-Франциско до Амстердама, то пересечёте Исландию. У Simple Analytics большинство клиентов из США и Европы, поэтому есть смысл выбрать именно это географическое положение. Дополнительные плюсы в пользу Исландии — законы, защищающие приватность, и экологический подход.

Перенос серверов

Во-первых, нужно было найти местного хостинг-провайдера. Их довольно много, и действительно трудно определить лучшего. У нас не было ресурсов, чтобы попробовать всех, поэтому мы написали несколько автоматических скриптов (Ansible) для настройки сервера, чтобы легко перейти к другому хостеру в случае необходимости. Мы остановились на компании 1984 с девизом «Защищаем приватность и гражданские права с 2006 года». Нам понравился этот девиз, и мы задали им несколько вопросов, как они будут обрабатывать наши данные. Они успокоили нас, так что мы продолжили установку основного сервера. И они используют электричество только из возобновляемых источников.

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

Вот почему мы добавили перед главным сервером примитивный дополнительный сервер. Он просто получает запросы на просмотр страниц и отправляет их непосредственно на главный сервер. Если основной сервер упал, то дополнительный сервер сохранит запросы в собственной БД и будет повторять их до тех пор, пока не получит ответ. Таким образом, после сбоя питания нет потери данных.

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

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

Переезд на новый сервер в Исландии занял у нас пару недель, но мы рады, что наконец сделали это.

Хранить только необходимые данные

Мы в Simple Analytics живём по принципу «Хранить только необходимые данные», собирая минимальное их количество.

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

У нас нет полей delete_at ;-)

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

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

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

Что дальше?

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

Комментарии

{{ comment.username }}

Добавить комментарий

{{ e }}
{{ e }}
{{ e }}