Как и чем сегодня защищать свои данные на ПК и накопителях?

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

Шифрование бывает симметричное и асимметричное, разница лишь в количестве ключей используемых для шифрования и дешифрования. Симметричное шифрование для кодирования и декодирования информации использует один ключ. Законами Российской Федерации без лицензирования своей деятельности разрешено использование симметричного ключа шириной
не более 56 бит. Для асимметричного шифрования используются два ключа: один ключ для кодирования (открытый) и один для декодирования
(закрытый). Для асимметричного шифрования законы Российской Федерации, в зависимости от алгоритмов, разрешают максимальную ширину ключа 256 бит.
Рассмотрим некоторые устройства для защиты информации на съёмных
накопителях:

  1. DatAshur от британской компании iStorage представляет собой флешку с кнопками на корпусе. Устройство выполняет аппаратное шифрование симметричным алгоритмом AES256. На ввод ПИН-кода даётся 10 попыток, в случае неверного ввода, данные на устройстве будут
    уничтожены. В устройство входит аккумулятор для ввода ПИН-кода до подключения к ПК.
    Достоинства: прочный корпус, защита от перебора ПИН-кода, уничтожение данных.
    Недостатки: непонятно что произойдёт, если аккумулятор разрядится; ПИН-код можно попытаться подобрать по потёртым кнопкам или просто удалить все данные конкурента и остаться при этом незамеченным, а это, на мой взгляд, потенциально больший вред, чем копирование данных конкурентом (хотя есть возможность сделать защиту).
  2. Samurai московская компания, предполагаю, что работают в сотрудничестве с iStorage или их дистрибьюторы, но также делают свою продукцию, например Samurai Nano Drive. Используют 256 битное шифрование, выпускают различные устройства, направленные в большей степени на уничтожение информации.
    Достоинства и недостатки аналогичны DatAshur.
  3. Криптографический USB накопитель-считыватель FLASH-карт от компании Миландр с функцией шифрования, позволяет шифровать информацию на microSD карточках. Устройство выполнено на собственном процессоре компании. Сделано как обычная флешка.
    Достоинства: алгоритм шифрования ГОСТ-89 с шириной ключа 56 бит (из документации непонятно как преобразовали ГОСТ-89 рассчитанный на 256 бит), работа с неограниченным количеством microSD карт.
    Недостатки: устройство работает только с microSD картами, неизвестно имеется ли возможность перехода к более стойким алгоритмам шифрования.
  4. Key_P1 Multiclet — устройство для защиты информации от ОАО «Мультиклет», разработчика процессоров. Рассмотрим устройство подробнее (далее устройство обозначим как Ключ_Р1).

Ключ_Р1 выполнен с тремя разъёмами: USB – розетка и вилка, а также разъём для SD карт.

1e3aad9ebcb51a365acdfcffb8c9e7e3

Начальные функции устройства (в дальнейшем ПО расширяется, см. ниже о дополнительном функционале):

  • защита от модифицированных (шпионских) флеш-накопителей.
  • шифрование информации по алгоритму DES шириной ключа 56 бит
    (после получения лицензии AES и ГОСТ-89 с шириной ключа 256 бит).
  • возможность восстановления информации, в случае потери устройства Ключ_Р1 и накопителя.
  • возможность синхронизации ключей для обмена файлами между пользователями.
  • отображение времени отключения устройства Ключ_Р1.

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

Структурная схема работы всей системы:

c25c67fe7c648406d35d3349c8617801

Описание элементов структуры:

  • сервер формирует прошивку, осуществляет обновления Ключ_Р1 Менеджер, прошивки и приложения Key_P1_for_Windows (или Key_P1_for_Linux) для накопителя (флешки) пользователя.
  • (ПО для ОС) Ключ_Р1 Менеджер — осуществляет обновления компонентов, инициализацию Ключ_Р1, формирует набор ключей для Ключ_Р1 и др.
  • прошивка Ключ_Р1 — является программой выполняемой на устройстве Ключ_Р1.
  • приложение для накопителя — Key_P1_for_Windows (Key_P1_for_Linux) (оба приложения загружаются на флешку пользователя и осуществляют авторизацию пользователя и отображение последнего времени отключения устройства для ОС Windows и Linux).

Рассмотрим подробнее основные функции устройства.

  1. Шифрование информации осуществляется не одним ключом, а несколькими (максимум 1024). Шифрование происходит по секторам для каждого накопителя. Таким образом, один файл может быть зашифрован нескольким десятком ключей.
  2. Защита от модифицированных накопителей происходит за счёт контроля служебной информации, передаваемой при помощи SCSI команд
  3. Восстановление информации:
    • Ключи формируются пользователем на ПК с помощью программы Ключ_Р1. Менеджер (в этом случае пользователь) может сделать резервную копию своих ключей на случай восстановления.
    • Ключи формируются устройством Ключ_Р1. В этом случае сделать резервную копию своих ключей пользователь не может.
    • Пользователь может делать резервную копию своей зашифрованной информации
  4. Синхронизация ключей представляет собой формирование одинаковых ключей у разных пользователей по заданному начальному значению и выбранному алгоритму. В устройстве Ключ_Р1 предусмотрена возможность хранения 50-ти ключей для синхронизации. Т.е. пользователи могут хранить метку 8 байт и сам ключ. Для синхронизации ключей и начала обмена зашифрованными файлами пользователям необходимо:
    • передать друг другу посредством устной договорённости, телефонного звонка, смс, электронной почты или надписи на песке начальное значение для инициализации ключа, а также алгоритм формирования ключа;
    • сформировать ключ и назначить метку – не более 8 символов (байт);
    • скопировать ключ на устройство Ключ_Р1;
    • обмен зашифрованными файлами может осуществляться с любого ПК, т.е. при скачивании ПО и его установке на любой «чужой» ПК при подключённом устройстве Ключ_Р1 после ввода пин-кода пользователь увидит ключи и соответствующие им метки и сможет шифровать нужным ключом файлы для обмена с другим пользователем.
  5. Устройство Ключ_Р1 выводит после запуска программы key_p1_for_windows.exe (для Windows) или key_p1_for_linux (для Linux) информацию о времени последнего отключению устройства с точностью в две минуты. Данная функция позволяет пользователю и/или службе безопасности компании установить факт и определить время несанкционированного отключения Ключ_Р1, что затрудняет действия злоумышленника и облегчает его поиск.

Для начала работы с устройством необходимо:

  1. Установить ПО, загрузить прошивку с сервера
  2. Инициализировать Ключ_Р1 (установить прошивку, задать PIN, PUK коды)
  3. Инициализировать накопитель (разбиение накопителя на два раздела: открытый и закрытый, который доступен только после ввода ПИН-кода)

Окно ввода ПИН-кода выглядит следующим образом (эскизная версия):

99a0af2edda01264ea9c640d2a7c5fe4

Кроме индивидуальной версии будет доступна и корпоративная версия:

Сотрудники компании загружают программу Ключ_Р1 Менеджер с корпоративного сервера или со съёмных носителей и устанавливают на свою ОС. Затем загружают ключи, сгенерированные службой безопасности или IT-службой компании. Далее по аналогии с индивидуальной версией происходит инициализация Ключа_Р1 и накопителя. В отличие от пользовательской версии, в корпоративной руководитель нескольких отделов может выбрать, для какого отдела шифровать файлы. Перечень отделов формируют уполномоченные сотрудники компании.

24b53f0a32529a41dcc054d93e44cf78

Внутри отдела сотрудники могут обмениваться зашифрованной информацией, кодируя файлы через Ключ_Р1 Менеджер и Ключ_Р1. Служба безопасности предприятия имеет возможность создавать различные разграничения прав по отделам (например: отдел «Программисты» сможет шифровать файлы для отдела «Бухгалтерия»). Кроме того, предприятие может заложить в устройство алгоритм генерации одноразовых паролей для аутентификации на серверах, компьютерах и др., чтобы повысить безопасность и обеспечить защиту коммерческой и других видов тайн.
В качестве дополнительного функционала устройства:

  • Поддержка ОС Mac;
  • В Ключ_Р1 может быть заложена функция генерации одноразовых паролей для организации двухфакторной аутентификации на серверах
    различных сервисов. Двухфакторная аутентификация обеспечивает дополнительную защиту вашего аккаунта. Для этого при входе в систему запрашиваются не только имя пользователя и пароль, но и уникальные «коды подтверждения». Даже если злоумышленник узнает ваш пароль, получить доступ к аккаунту ему не удастся.
  • хранение личных данных с автоматической подстановкой при аутентификации в соцсетях, платежных системах и т.п.
  • использование устройства для авторизации на ПК.

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

Теперь обратимся к рассмотрению аппаратного уровня работы устройства. 

Основными функциями устройства являются шифрование и защита от несанкционированной работы накопителей.

Рассмотрим способы шифрования данных устройством:

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

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

Для отсечения шпионских устройств «Ключ_Р1» проводит фильтрацию служебных команд посылаемых накопителям, что даёт защиту от заражения накопителя аппаратным вирусом, а также устройство «Ключ_Р1» анализирует присылаемую накопителем таблицу дескрипторов и на основе этой информации происходит блокирование накопителей, которые пытаются представиться системе ПК совмещённым устройством (например клавиатурой и накопителем) или любым другим устройством кроме накопителя.

Рассмотрим реализацию устройства на схемотехническом уровне.

Устройство реализовано на базе российского мультиклеточного процессора Р1. Для осуществления взаимодействия с интерфейсом USB host в схему вводится процессор stm32f205. Мультиклеточный процессор тактируется от процессора stm32f205, загрузка прошивки осуществляется по интерфейсу spi. Процессор Р1 берёт на себя все основные функции по шифрованию и хэшированию информации. Одной из интересных особенностей большинства алгоритмов шифрования является их хорошее распараллеливание. Благодаря этому факту является рациональным применение процессора с аппаратным распараллеливанием операций.

29a6ca642df60398a59a89805c0971d2
В результате модернизации устройства предполагается следующая схема:

7f1ceba0290b4f1ebc0cd47869a848d8

Взаимодействия с USB host может быть обеспечено микросхемой FTDI.
В устройстве реализованы разъёмы, позволяющие работать с USB накопителями и microSD, SD картами.

f7a8e6f6aa2690a9bb1ca747dda9dda0

Достоинства:

  • шифрование большим набором ключей на аппаратном уровне по секторам накопителя
  • контроль служебных команд между ПК и накопителем
  • хранение пары «логин-пароль»
  • работа в режиме «только чтение»
  • поддержка USB накопителей, SD, microSD карт
  • работа с неограниченным количеством накопителей
  • корпоративная версия
  • возможность восстановления информации

Недостатки: не специализированный корпус, отсутствие защиты от вскрытия (Хотя защита от вскрытия не является определяющей для таких пользователей хабра как BarsMonster :)

P.S. В качестве дополнительного функционала рассматривалась и идея создания приложения для защищённого обмена, по аналогии со skype, qip, но только напрямую, конкретным пользователям без связующего сервера, но пока по определённым причинам решено не затрагивать эту область.
Кроме того, с 25 марта стартовал проект на Kickstarter.com, посвящённый данному устройству.