Назад | Перейти на главную страницу

Автоматическая загрузка и защита Linux-сервера с зашифрованной файловой системой

Я устанавливаю несколько новых серверов Ubuntu и хочу защитить данные на них от кражи. Модель угрозы - злоумышленники, желающие получить оборудование, или, скорее, наивные злоумышленники, желающие получить данные.


Обратите внимание на этот раздел.

Модель угроз не включить умных злоумышленников, желающих получить данные; Я предполагаю, что они сделают одно или несколько из следующего:

  1. Соедините ИБП с кабелем питания, чтобы машина работала непрерывно.

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

  3. Откройте коробку и используйте зонд на шине памяти, чтобы захватить интересный материал.

  4. Используйте устройства TEMPEST, чтобы проверить, что делает хост.

  5. Использовать законные средства (например, постановление суда), чтобы заставить меня раскрыть данные

  6. И т. Д. И т. Д.


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

  1. Сохраните его на удаленном хосте, доступном через сеть, и настройте достаточно сети, чтобы получить его во время процесса загрузки. Извлечение будет разрешено только для IP-адреса, назначенного защищенному хосту (таким образом, не разрешая доступ к зашифрованным данным, если они были загружены по другому сетевому соединению), и может быть отключено администраторами в случае обнаружения кражи машины.

  2. Храните его на USB-накопителе, украсть которое значительно труднее, чем сам хост. Размещение его на удалении от хоста, например на конце пятиметрового USB-кабеля, ведущего в другой угол комнаты или даже в другую комнату, вероятно, значительно снизит шансы взлома злоумышленниками. Еще лучше было бы закрепить его каким-либо образом, например, привязав его к чему-то неподвижному или даже положить в сейф.

Итак, каковы мои варианты настройки? Как я уже сказал, я бы предпочел, чтобы все (кроме, возможно, небольшого загрузочного раздела, не содержащего / и т. Д.) Было зашифровано, чтобы мне не приходилось беспокоиться о том, куда я помещаю файлы или где они ' повторная посадка случайно.

Мы работаем с Ubuntu 9.04, если это имеет значение.

Я знаю умный вариант Варианта 1 под названием Мандос.

Он использует комбинацию пары ключей GPG, Avahi, SSL и IPv6, добавленных к вашему начальному RAM-диску, для безопасного получения ключевого пароля корневого раздела. Если сервер Mandos отсутствует в локальной сети, ваш сервер представляет собой зашифрованный кирпич или сервер Mandos не видел пульса от клиентского программного обеспечения Mandos в течение заданного периода времени, он будет игнорировать будущие запросы для этой пары ключей и сервера. - это зашифрованный кирпич при следующей загрузке.

Домашняя страница Mandos

Мандос README

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

Я думаю так:

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

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

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

В конечном итоге вам понадобится (искусственный?) Интеллект, чтобы ввести ключ в сервер. Тот, который может сказать: «Я знаю, что я не разглашаю ключ никому, кроме серверного компьютера, и я знаю, что он не был украден». Человек может это сделать. USB-накопитель не может. Если вы найдете другой интеллект, который сможет это сделать, тогда, я думаю, у вас будет что-то рыночное. > улыбка <

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

Редактировать:

Я думаю, что мы, возможно, работаем, исходя из разных определений термина «модель угрозы».

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

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

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

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