Политика безопасности Passwork

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

  1. Все критически важные данные шифруются в вашем браузере и не передаются на сервера Passwork в открытом виде. Это означает, что никто кроме вас, а так же тех, кому вы предоставили доступ в группы Passwork, не могут получить доступ к зашифрованной информации. Сотрудники Passwork не имеют доступа к вашим данным.
  2. Мы не запрашиваем и не храним ваши личные и персональные данные
  3. Мы не предоставляем доступ третьим лицам к нашим серверам, а так же не распространяем данные пользователей ни в каком виде.
  4. Ваши данные проходят ряд дополнительных мер защиты (серверное шифрование и т. п.)
  5. Доступ сотрудников к серверам Passwork строго регламентирован и ограничен.

Основные принципы, которые легли в основу Passwork

  1. На сервер попадают уже зашифрованные данные.
  2. Ключ шифрования хранится в клиентском приложении (в браузере) и никогда не передается на сервер.
  3. Все операции с данными происходят в клиентском приложении, а сервер просто их хранит.

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

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

Каждая группа имеет свой пароль (пароль группы). Все данные в группе шифруются паролем группы.

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

Регистрация и пароль авторизации

При регистрации пользователь указывает свой e-mail и пароль авторизации. Пароль авторизации нужен только для входа в систему. Если вы забыли его, то он легко восстанавливается.

Т.к. данные шифруются секретным словом, а не паролем авторизации, то знание пароля авторизации не дает доступа к хранимым паролям. Поэтому после восстановления пароля авторизации вас попросят указать секретное слово.

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

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

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

Важно

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

Мы настоятельно рекомендуем придумать и ввести секретное слово отличное от пароля авторизации.

Сложность паролей

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

Создание группы

  1. Пользователь кликает «Создать группу».
  2. Система генерирует пароль группы — случайный 256-битный ключ (в клиентском приложении).
  3. Пароль группы шифруется секретным словом.
  4. Зашифрованный пароль группы сохраняется на сервере.

Приглашение в группу

  1. Пользователь указывает e-mail человека, которому хочет отправить доступ в группу.
  2. Зашифрованный пароль группы загружается с сервера, расшифровывается секретным словом и отображается пользователю.
  3. Пользователь должен передать пароль группы получателю по третьему каналу связи (в случае, если оба пользователя уже есть в системе, то пароль группы можно не передавать, подробнее смотрите пункт «RSA шифрование»).
  4. Если пользователя с таким e-mail нет в системе, то ему на почту придет ссылка, перейдя по которой он попадет на быструю регистрацию.
  5. В разделе «Приглашения» пользователь увидит приглашение в группу и для вступления ему потребуется ввести пароль группы
  6. Пароль группы будет зашифрован секретным словом второго пользователя и сохранен на сервере

Отправка пароля

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

Сохранение пароля в группу

  1. Клиент получает зашифрованный пароль группы с сервера.
  2. Клиент расшифровывает пароль группы используя секретное слово.
  3. Клиент шифрует сохраняемые данные используя пароль группы.
  4. Зашифрованные данные передаются на сервер.

Получение пароля из группы

  1. Клиент получает зашифрованный пароль группы с сервера.
  2. Клиент расшифровывает пароль группы используя секретное слово.
  3. Клиент расшифровывает пароль используя пароль группы.

Ограничение доступа

  1. В рамках группы существуют следующие права:
    1. Администратор — полный доступ у группе
    2. Запись — полный доступ к паролям группы, без возможности приглашать и управлять пользователями;
    3. Только чтение — доступ только на чтение данных из группы.
  2. Для удобства хранения паролей пользователи могут создавать папки внутри группы и так же назначать им уровни доступности:
    1. Полный доступ — полный доступ к паролями папки;
    2. Только чтение — доступ только на чтение паролей папки;
    3. Нет доступа — у пользователя нет доступа в папку (даже для просмотра);
  3. Доступ в папку имеет приоритет над доступом в группу.

Хранение секретного слова в браузере

  1. При регистрации у каждого пользователя генерируется случайный код (на сервере).
  2. При авторизации клиент получает этот случайный код и на его основе однозначно генерирует пароль.
  3. Этим паролем шифруется секретное слово и сохраняется в локальном хранилище браузера.
  4. Таким образом, последующий анализ локального хранилища не позволит расшифровать секретное слово.
  5. Пользователь может отказаться от хранения секретного слова в локальном хранилище. В этом случае потребуется вводить секретное слово при каждой операции.

RSA шифрование

  1. При авторизации и входе в систему у пользователя в фоновом режиме генерируется пара RSA ключей.
  2. Открытый ключ отправляется на сервер
  3. Закрытый ключ шифруется секретным слово и отправляется на сервер
  4. Все операции по передачи данных внутри сервиса между зарегистрированными пользователями проходят по стандартной схеме шифрования RSA:
    1. отправитель запрашивает открытый ключ получателя
    2. шифрует данные открытым ключем получателя (в клиентском приложении);
    3. отправляет зашифрованные данные на сервер;
    4. получатель получает зашифрованные данные и зашифрованный закрытый ключ
    5. расшифровывает закрытый ключ секретным словом
    6. расшифровывает данные используя закрытый ключ.
На текущий момент функционал использующий RSA находится в стадии тестирования и не внедрен в основную (продакшен) версию.