Какое-либо шифрование диска, которое блокирует себя в течение некоторого времени после многих неудачных попыток?

Это не действительно решение, больше как обходное решение, но Вы могли сделать shutdown прекратите объединяться в сеть путем создания этого псевдонимом. Добавьте это к Вашему ~/.bashrc:

alias shutdown='sudo service networking stop && sudo shutdown -h'

Это остановит сетевой сервис, прежде чем он закроется.

4
29.01.2015, 00:40
3 ответа

Не так, как вы описываете, так @ Дэймон ответ правильный.

Но если вы не возражаете в ожидании, независимо от того, знаете ли вы пароль или нет, вы можете согнать время итерации CryptSetup / Luks до очень большого значения, даже до 10 минут, если вы думаете, что вам это нужно. Таким образом, «блокировка» всегда будет действовать, независимо от ваших попыток.

cryptsetup --iter-time=600000 luks[Format,AddKey,ChangeKey] /dev/thing

Тем не менее, я не рекомендую вам на самом деле идти этот маршрут. Это не очень практично.

Хороший пароль более важен в любом случае. Если вы найдете пароли трудно запомнить, может быть, вы должны прислушиваться к этому совету: http://xkcd.com/936/

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

Но в целом хороший пароль не должен быть трудно запомнить.

4
27.01.2020, 20:44

Debian Wiki имеет отличную запись, описывающую то, что я требовал. После этого я составил свои собственные правила под/etc/udev/rules.d/20-disk-bay.rules. Я включил только первые два сопоставления портов sata в качестве примера:

# There are different DEVPATHs for major kernel versions!
# Example for SATA N:
#
# Kernel < 3 DEVPATH
# *1f.2/hostN/targetN:0:0/N:0:0:0*
#
# Kernel > 3 DEVPATH
# *1f.2/ata(N+1)/host*

########## Map SATA 0 to /dev/sdb ##############

# Kernel < 3

KERNEL=="sd?", SUBSYSTEM=="block", DEVPATH=="*1f.2/host0/target0:0:0/0:0:0:0*", NAME="sdb", RUN+="/usr/bin/logger My disk ATTR{partition}=$ATTR{partition}, DEVPATH=$devpath, ID_PATH=$ENV{ID_PATH}, ID_SERIAL=$ENV{ID_SERIAL}", GOTO="END_20_PERSISTENT_DISK"

KERNEL=="sd?*", ATTR{partition}=="1", SUBSYSTEM=="block", DEVPATH=="*1f.2/host0/target0:0:0/0:0:0:0*", NAME="sdb%n", RUN+="/usr/bin/logger My partition parent=%p number=%n, ATTR{partition}=$ATTR{partition}"

# Kernel > 3

KERNEL=="sd?", SUBSYSTEM=="block", DEVPATH=="*1f.2/ata1/host*", NAME="sdb", RUN+="/usr/bin/logger My disk ATTR{partition}=$ATTR{partition}, DEVPATH=$devpath, ID_PATH=$ENV{ID_PATH}, ID_SERIAL=$ENV{ID_SERIAL}", GOTO="END_20_PERSISTENT_DISK"

KERNEL=="sd?*", ATTR{partition}=="1", SUBSYSTEM=="block", DEVPATH=="*1f.2/ata1/host*", NAME="sdb%n", RUN+="/usr/bin/logger My partition parent=%p number=%n, ATTR{partition}=$ATTR{partition}"

########## Map SATA 1 to /dev/sdc ##############

# Kernel < 3

KERNEL=="sd?", SUBSYSTEM=="block", DEVPATH=="*1f.2/host1/target1:0:0/1:0:0:0*", NAME="sdc", RUN+="/usr/bin/logger My disk ATTR{partition}=$ATTR{partition}, DEVPATH=$devpath, ID_PATH=$ENV{ID_PATH}, ID_SERIAL=$ENV{ID_SERIAL}", GOTO="END_20_PERSISTENT_DISK"

KERNEL=="sd?*", ENV{DEVTYPE}=="partition", SUBSYSTEM=="block", DEVPATH=="*1f.2/host1/target1:0:0/1:0:0:0*", NAME="sdc%n", RUN+="/usr/bin/logger My partition parent=%p number=%n, ATTR{partition}=$ATTR{partition}"

# Kernel > 3

KERNEL=="sd?", SUBSYSTEM=="block", DEVPATH=="*1f.2/ata2/host*", NAME="sdc", RUN+="/usr/bin/logger My disk ATTR{partition}=$ATTR{partition}, DEVPATH=$devpath, ID_PATH=$ENV{ID_PATH}, ID_SERIAL=$ENV{ID_SERIAL}", GOTO="END_20_PERSISTENT_DISK"
KERNEL=="sd?*", ATTR{partition}=="1", SUBSYSTEM=="block", DEVPATH=="*1f.2/ata2/host*", NAME="sdc%n", RUN+="/usr/bin/logger My partition parent=%p number=%n, ATTR{partition}=$ATTR{partition}"

LABEL="END_20_PERSISTENT_DISK"

Правила выше всегда сопоставляют любой диск, размещенный в порту SATA 0, первый физический порт SATA на моей материнской плате, как/dev/sdb и любой диск, размещенный в SATA 1 как/dev/sdc Согласованные физические сопоставления портов имеют решающее значение в моем случае использования, так как у меня есть 5 RAID-1 массивов, где диски могут быть произвольно заменены из их физических отсеков горячей замены. Нетехнический пользователь может заменить эти диски в любое время без необходимости иметь дело с идентификаторами устройств - система полностью автономна и не будет создавать массивы RAID на неправильных дисках в отсеках горячей замены. Это очень специфический вариант использования.

-121--139736-

Цикл для можно использовать для удаления всех снимков в пределах диапазона (запуск от имени root ).

# for i in `seq 1 999`; do snapper delete $i; done

Это приведет к ошибочным записям (если номер не соответствует идентификатору снимка), что приведет к безобидному журналу ошибок.

Чтобы определить диапазон (нижний и верхний предел) идентификаторов снимков, чтобы цикл не работал излишне долго, используйте:

snapper list

Я нашел это решение вместе с обсуждением того, как уменьшить интервал захвата и настройки хранения .

-121--27294-

No.

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

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

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

Обратите внимание, что каждое разумно современное программное обеспечение для шифрования диска использует дорогостоящий алгоритм получения ключа, который занимает около половины секунды или около того на вашем компьютере, чтобы фактически вычислить ключ шифрования из вашего пароля. Это должно замедлить атаки грубой силы, которые в противном случае проверяли бы миллиарды паролей в секунду.
Но конечно бросая на проблему установку с несколькими GPU, можно еще протестировать несколько тысяч паролей в секунду. Учитывая перестановку теста на основе словаря, очень оптимистично предположить, что «простой» (считываемый как: плохой) пароль задержит злоумышленника дольше нескольких секунд.

14
27.01.2020, 20:44

Нет, это не имеет смысла.

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

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

Вы можете замедлить противника, сделав проверку паролем искрому медленно. Зашифрованный том использует ключ, который сам зашифрован с другим ключом, который, в свою очередь, получен из пароля. (Некоторые сильно разработанные системы исключены.) Вывод пароля от ключа, если он сделан правильно, является функцией растяжения ключей , которая является искренно медленным - самый быстрый известный способ получения ключа из потенциального пароля. требует большого количества вычислений. В хорошо продуманной системе вы можете настроить объем вычисления; Например, с Луками, это -I параметр для `CryptSetup Luks. Большой параметр делает проверку пароля медленнее, как для вас, так и для противника.

Кредитные карты могут позволить себе использовать 4-значный PIN-код, потому что они онлайн-система: в зависимости от технологии карты, либо PIN-код, набранный пользователем, отправляется в Банк для проверки (поэтому серверы банка реализуют 3 - Политика-выходящая политика, записывая карту в качестве скомпрометированной) или проверена чипом на карте (поэтому чип на карте реализует политику 3 сбоя и вынужденного вами, сохраняя «карта скомпрометирована» в своей постоянной памяти).

Вы можете зашифровать ваши данные с ключом, хранящимся на смарт-карте, вместо использования ключа, полученного из пароля. Это позволяет вам очень короткий пароль (например, 4-значный PIN-код), который не пройден легко прогреться. Однако у него недостатки. Вам нужно иметь с собой карту, когда вы хотите получить доступ к вашим данным. Вам необходимо иметь карт-ридер, где вы хотите получить доступ к своим данным. Вам нужно где-то резервное копирование ключа, если вы потеряете карту или не ударуются. Если у вашего компьютера есть чип TPM, это может служить той же цели, что и смарт-карта, с возможностью разницы, которую карта может осуществляться между компьютерами (полезными для съемных дисков или удаленных томов), тогда как TPM привязан к материнской плате (удобнее, если Зашифрованный объем на внутреннем приводе).

4
27.01.2020, 20:44

Теги

Похожие вопросы