Как VeilShare защищает ваши файлы

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

Обновлено

Коротко о безопасности

  • Файлы, названия файлов и папок, а также превью шифруются алгоритмом AES-256-GCM в браузере до загрузки
  • Ключи шифрования никогда не попадают на наши серверы в пригодном для использования виде, поэтому мы не можем прочитать ваши файлы
  • Пароль от аккаунта никогда не покидает ваше устройство
  • Двухфакторная аутентификация с одноразовыми кодами на почту - по желанию
  • Файлы хранятся с резервированием в нескольких дата-центрах и рассчитаны на то, чтобы пережить пожар и наводнение
  • Серверы и база данных размещены в Финляндии, под защитой GDPR и финского закона о защите данных

Сквозное шифрование AES-256-GCM

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

С папками всё так же. У каждой папки свой случайный ключ: он шифрует её название и запирает ключи всего, что внутри. Поэтому, поделившись папкой, вы открываете доступ только к ней и ни к чему больше.

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

Где хранится ключ

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

Аккаунты с нулевым разглашением

Чтобы пользоваться VeilShare, аккаунт не нужен. А если вы его создадите, он устроен так, что мы всё равно не можем прочитать ваши файлы, а пароль не покидает ваше устройство.

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

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

Ключ восстановления и замена ключа

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

Двухфакторная аутентификация

Включите двухфакторную аутентификацию в настройках аккаунта, и одного правильного пароля для входа станет недостаточно.

  • Коды создаются криптографически стойким генератором случайных чисел
  • Каждый код действует 10 минут и срабатывает только один раз
  • Коды хранятся в виде хешей, а не открытым текстом
  • Число попыток ввода кода и повторных отправок ограничено, чтобы исключить перебор

Ещё вы видите все устройства, на которых выполнен вход в аккаунт, и можете завершить любой незнакомый сеанс - или все сразу.

Защита ссылок

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

Защита паролем

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

Срок действия и лимит скачиваний

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

Защита от пожаров, наводнений и сбоев оборудования

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

Хранилище, которое переживёт потерю дата-центра

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

Серверы и база данных в Финляндии с ежедневными бэкапами

Наши серверы приложения и база данных работают у Hetzner в Хельсинки, в дата-центре, сертифицированном по ISO/IEC 27001:2022 - международному стандарту управления информационной безопасностью. Это значит, что данные вашего аккаунта защищены GDPR и финским законом о защите данных.

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

Украденное оборудование не раскроет ваши файлы

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

От чего мы не можем защитить

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

  • Вредоносные программы на вашем устройстве или на устройстве получателя
  • Мы видим базовые метаданные, необходимые для работы сервиса: размеры файлов, сроки действия ссылок и то, как файлы разложены по папкам
  • Мы видим базовые метаданные, необходимые для работы сервиса: размер файла, срок действия и некоторые другие нечувствительные данные

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

Частые вопросы

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

AES-256-GCM - тот же стандарт аутентифицированного шифрования, что используют банки и государственные структуры. У каждого файла свой случайный 256-битный ключ, а пароли от аккаунтов дополнительно защищены Argon2id.

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

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

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

Источники

Отправить файл безопасно

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

Отправить файл