Страница 3: Безопасность C2 Password

Сервисы хранения паролей существуют давно, но чем же C2 Password лучше? Чтобы ответить на этот вопрос, необходимо погрузиться в тему безопасности и защиты данных C2 Password. Что мы и сделаем.

Ключевые принципы безопасности C2 Password

C2 Password — решение Synology для защищенного хранения паролей и персональных данных. C2 Password опирается на подходы безопасности, общие для всех сервисов C2, а именно защиту данных без доступа Synology к ним.

Дизайн, ориентированный на приватность

Если доступа к данным нет, то их нельзя использовать ненадлежащим образом. Поэтому системы Synology разработаны так, чтобы максимально снизить объем пользовательских данных, к которым у компании есть доступ. Данная концепция работает во всей экосистеме, поскольку Synology не имеет доступа к ключу C2 Key, который пользователь вводит во время аутентификации. Способа получить ключ C2 Key от пользователя не существует. А раз ключа C2 Key у Synology нет, то и данные считать не получится.

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

Сервис C2 Password разработан таким образом, чтобы только пользователь имел доступ к своим данным, по этой причине шифрование выполняется локально на устройстве пользователя. Концепция сквозного шифрования (end-to-end encryption) максимально защищает пользовательские данные от несанкционированного доступа.

Прозрачность и доверие

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

Защита сервисов C2

Чтобы пользователи не запоминали несколько сложных паролей, все сервисы C2 реализованы на основе одного ключа шифрования, известного как C2 Encryption Key (C2 Key). Он применяется во всех сервисах C2 (за исключением C2 Storage).

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

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

Инфраструктура C2

Физическое расположение

Synology владеет дата-центрами по всему миру. И пользователи имеют возможность выбора дата-центра, где будут храниться их данные. Например, данные европейских пользователей хранятся на сервере в Евросоюзе. В будущем планируется добавить новые дата-центры в разных странах. Подробная информация о дата-центрах приведена на официальном сайте.

Безопасность дата-центров

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

Сквозное шифрование C2 Password

Технология шифрования

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

  • Шифрование AES (Advanced Encryption System): симметричное шифрование, использующее одинаковые криптографические ключи для шифрования и расшифровки, поэтому отправитель и получатель должны использовать один и тот же ключ для обмена частной информацией.
  • Шифрование RSA (RivestShamir–Adleman): асимметричное шифрование, которое использует пары ключей, а именно открытый (Public) и закрытый (Private). Данные шифруются открытым ключом, но расшифровать их можно только закрытым. В результате для защиты данных достаточно никому не раскрывать закрытый ключ.

Пользователь вводит ключ шифрования C2 Encryption Key (C2 Key), после чего через функцию PBKDF2 из него генерируется сформированный ключ шифрования Derived Key AES-256-CBC, что повышает устойчивость к атакам методом грубой силы.

Сформированный ключ (Derived Key) используется для шифрования и расшифровки кодов верификации через алгоритм AES-256-CBC. Поскольку сервер C2 Key Server не имеет доступа к ключам пользователя, верификация ключа шифрования выполняется через расшифровку зашифрованного кода верификации.

Сформированный ключ (Derived Key) также используется для шифрования и расшифровки набора ключей Key Set (пары RSA и ключа AES) через алгоритм AES-GCM.

Регистрация и верификация ключа шифрования C2 Encryption Key

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

* — открытый ключ не шифруется, поскольку он используется для передачи файлов между пользователями

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

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

После того, как код верификации был сформирован, он отсылается клиенту. Затем клиент генерирует ключи RSA, AES и Derived Key, а также шифрует их. Все процессы расшифровки и шифрования выполняются на стороне клиента, так что сервер C2 Key Server ключи шифрования не получает.

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

Верификация

Если пользователь зарегистрировал ключ C2 Key и желает получить доступ к зашифрованным данным, ему необходимо ввести ключ C2 Key на портале C2 Password для процесса расшифровки. После ввода ключа C2 Key генерируется сформированный ключ (Derived Key), с помощью которого будет расшифрован зашифрованный код верификации на стороне клиента. На данном этапе клиент отсылает запрос на сервер C2 Key Server для приема кода верификации и последующей проверки.

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

Замена ключей шифрования

Если вы использовали одинаковый пароль C2 Key для нескольких учетных записей, мы рекомендуем заменить ключ C2 Key, чтобы снизить возможность несанкционированного доступа. Сменить ключ C2 Key можно в настройках учетной записи портала C2 Password. После ввода старого ключа C2 Key клиент выполнит запрос на сервер C2 Key Server для проверки метаданных клиента и зашифрованного кода верификации. После того, как старый ключ C2 Key будет верифицирован, старые наборы ключей Key Sets будут расшифрованы через старый сформированный ключ Derived Key, клиенту будет выслано подтверждение.

После того, как сервер C2 Key Server подтвердит операцию, можно вводить новый ключ C2 Key. При этом будут сгенерированы новый сформированный ключ Derived Key, ключ AES и пары ключей RSA. Старые наборы ключей будут повторно зашифрованы новым сформированным ключом Derived Key. Все ранее хранившиеся данные будут перешифрованы, будет сгенерирован новый код восстановления Recovery Code, то есть старым воспользоваться не получится. Данный процесс может занять некоторое время.

Создание кода восстановления Recovery Code и восстановление ключа C2 Key

Возможность восстановления ключа шифрования позволяет получить доступ к сервисам C2 после сброса/потери ключа C2 Key и восстановить зашифрованные данные, хранящиеся на сервере C2 Server. Чтобы задействовать данную функцию, необходимо во время создания ключа C2 Key сохранить код восстановления Recovery Code, после чего иметь его под рукой. Напомним, что код восстановления автоматически создается при регистрации ключа C2 Key. Код восстановления следует хранить в надежном месте, поскольку ключа C2 Key на сервере C2 Server нет, и единственный способ восстановить ключ C2 Key — использовать код восстановления. Он шифруется и сохраняется на сервере C2, расшифровать его можно только с помощью сформированного ключа Derived Key кода восстановления.

Создание кода восстановления

Код восстановления Recovery Code автоматически генерируется при регистрации ключа C2 Key. Его можно скачать и сохранить в безопасном месте на случай, если вы забудете ключ C2 Key. После завершения настройки ключа C2 Key, клиент предварительно регистрирует код восстановления, отсылая запрос на сервер C2 Key Server для создания случайной строки, которая будет использоваться в качестве кода верификации. После завершения процесса сервер C2 Key Server сохраняет метаданные пользователя и код верификации. Код верификации передается клиенту после генерации кода восстановления Recovery Code и сформированного ключа Derived Key кода восстановления.

Клиент будет использовать сформированный ключ Derived Key кода восстановления для шифрования кода верификации и набора ключей Key Set (закрытый ключ и ключ AES). Клиент затем будет использовать данный сформированный ключ Derived Key для шифрования кода восстановления Recovery Code. После завершения процесса шифрования клиент отошлет на сервер зашифрованный код верификации, зашифрованный закрытый ключ, открытый ключ, зашифрованный ключ AES и зашифрованный код восстановления. Затем сервер C2 Key будет хранить данные ключи вместе с метаданными пользователя. После завершения этого процесса клиенту необходимо записать/скачать код восстановления.

Восстановление ключа C2 Key

Если необходимо восстановить ключ C2 Key, то в портале появится запрос для ввода кода восстановления Recovery Code, затем пользователь вводит новый ключ C2 Key. При вводе кода восстановления будет сгенерирован его сформированный ключ Derived Key, после чего с сервера C2 Key Server будут запрошены метаданные пользователя и код верификации. Клиенту будет выслан зашифрованный код верификации, расшифровка которого выполняется через сформированный ключ кода восстановления. Затем клиент отсылает запрос на проверку кода верификации и генерирует случайную строку в виде кода подтверждения, которая затем хранится вместе с метаданными пользователями.

После того, как процесс верификации будет завершен, сервер C2 Key вышлет клиенту коды подтверждения, старые наборы ключей (защищенные старым сформированным ключом Derived Key) и новый ключ верификации. Затем необходимо ввести новый ключ C2 Key, из которого будет сгенерирован сформированный ключ кода восстановления. Таким образом, клиент генерирует новый сформированный ключ кода восстановления, ключ AES, пару ключей RSA. Старые наборы ключей Key Sets будут перешифрованы с помощью нового сформированного ключа кода восстановления. Подобно процессу перерегистрации ключа C2 Key, после ввода нового ключа C2 Key все ранее хранившиеся данные будут перешифрованы, будет сгенерирован новый код восстановления Recovery Code. Данный процесс может занять некоторое время. Новый код восстановления следует сохранить в надежном месте.

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

Примечание:

  • При регистрации, изменении или восстановлении ключа C2 Key генерируются новый набор ключей Key Set. Все старые наборы ключей будут перешифрованы после изменения или восстановления ключа C2 Key.

C2 Password: защита пользовательских данных

Хранилище

Все пользовательские данные C2 Password защищены сквозным (end-to-end) шифрованием. Данные Хранилища шифруются с помощью алгоритма Advanced Encryption Standared (AES) в режиме Galois/Counter Mode (GCM) с 256-битным ключом, сгенерированным из ключа C2 Key. Алгоритм AES 256 bit считается неуязвимым, он сертифицирован для военного использования и одобрен Агентством национальной безопасности США для защиты совершенно секретной информации. Шифрование и расшифровка данных выполняются только на стороне клиента C2 Password, чтобы предотвратить передачу ключа C2 Key на сервер C2 Server.

Защита клиента

Клиент C2 Password обычно работает в виде расширения браузера, поддерживаются все основные продукты под Windows и Mac. Любое взаимодействие между клиентом и сервером C2 Server идет через протокол Transport Layer Security (TLS), подключения через расширения браузера защищены его собственными средствами безопасности. Кроме того, протокол HTTP String Transport Security (HSTS) принудительно направляет все соединения через TLS, что снижает риск атаки Downgrade или ошибочной конфигурации. Политика заголовков Content Security Policy предотвращает атаки методом внедрения кода, такие как межсайтовый скриптинг.

Клиент C2 Password также содержит функцию автоматической блокировки, которая срабатывает, если Хранилище неактивно определенное время. Данное время можно настроить в каждом клиенте C2 Password, указав в часах или минутах. При блокировке Хранилища данные остаются в зашифрованном виде, поэтому для разблокировки (дешифрования) необходимо ввести ключ C2 Key. Но при этом подключения к интернету не требуется.

Передача файлов, этап создания

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

При выполнении передачи файла клиент зашифрует метаданные передачи и ключ передачи Transfer Key с помощью пользовательского ключа. Затем зашифрованные метаданные передачи и ключ передачи Transfer Key будут загружены на сервер C2. После загрузки User ID и Transfer ID будут высланы web-клиенту для генерации URL скачивания. Клиентский браузер зашифрует файл и метаданные, после чего отошлет их на сервер C2, завершив процесс генерации URL скачивания. Подобный процесс не позволяет серверу C2 расшифровать содержимое закачанных файлов.

Примечание:

  • Сервер C2 разделяет файл на множество сегментов по 64 Мбайт, которые, в свою очередь, разделяются на блоки по 64 кбайт, что улучшает эффективность скачивания.
  • Google Chrome не может закачивать файлы больше 128 Мбайт

Передача файлов, этап скачивания

Поскольку цель заключается в том, чтобы файлы попали в руки только нужному получателю, здесь важны ограничения и на скачивание. Возьмем для упрощения Пользователя А, который является отправителем файла, и Пользователя Б, который должен получить файлы. Когда пользователь Б получает ссылку на скачивание и вбивает ее в браузере, ему необходимо ввести контактную информацию (адрес email), которую сервер C2 будет использовать для аутентификации и отсылки зашифрованных метаданных передачи клиенту Пользователя Б для расшифровки. После завершения аутентификации клиент Пользователя Б отправит запрос на одноразовый пароль (OTP), которым сервер C2 подтверждает, что у пользователя есть необходимый доступ.

Пользователь Б получит OTP через email или мобильное устройство, он вводится в соответствующее поле при скачивании. Затем сервер C2 вышлет зашифрованный файл, который будет расшифрован на стороне клиента Пользователя Б. И Пользователь Б в итоге получит необходимые данные.

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