Добавление “энтропии случайного числа” для ключей GPG?

Можно спросить GNU stat производить полномочия в восьмеричном формате при помощи -c опция. От man stat:

       -c  --format=FORMAT
              use the specified FORMAT instead of the default; output a
              newline after each use of FORMAT
⋮
       %a     access rights in octal
⋮
       %n     file name

Таким образом в Вашем случае:

bash-4.2$ ls -l foo
-rw-r--r-- 1 manatwork manatwork 0 Apr  7 19:43 foo

bash-4.2$ stat -c '%a' foo
644

Или можно даже автоматизировать его путем форматирования statвывод как допустимая команда:

bash-4.2$ stat -c "chmod %a '%n'" foo
chmod 644 'foo'

bash-4.2$ stat -c "chmod %a '%n'" foo > setpermission.sh

bash-4.2$ chmod a= foo

bash-4.2$ ls -l foo
---------- 1 manatwork manatwork 0 Apr  7 19:43 foo

bash-4.2$ sh setpermission.sh 

bash-4.2$ ls -l foo
-rw-r--r-- 1 manatwork manatwork 0 Apr  7 19:43 foo

Вышеупомянутое решение будет также работать на несколько файлов при использовании подстановочного знака:

stat -c "chmod -- %a '%n'" -- *

Будет работать правильно с именами файлов, содержащими пробельные символы, но перестанет работать на именах файлов, содержащих одинарные кавычки.

10
13.06.2014, 06:28
3 ответа
[

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

] [

]Все хорошие генераторы случайных чисел, подходящие для криптографии, и Linux'ы в этой категории, имеют две компоненты: [

] [
    ] [
  • ]Источник []Энтропии [], который не является детерминированным. Целью энтропии является загрузка генератора случайных чисел с непредсказуемыми данными. Источник энтропии должен быть недетерминированным: в противном случае противник может воспроизвести то же самое вычисление.[
  • ] [
  • ]A []генератор псевдослучайных чисел[], который из изменяющегося внутреннего состояния генерирует непредсказуемые случайные числа детерминированным образом.[
  • ] [
] [

]Энтропия должна исходить из источника, внешнего по отношению к компьютеру. Пользователь является одним из источников энтропии. То, что делает пользователь, в основном, не случайно, но тонкая синхронизация нажатий клавиш и движений мыши настолько непредсказуема, что слегка случайна - не очень случайна, но мало-помалу она накапливается. К другим потенциальным источникам энтропии относятся синхронизация сетевых пакетов и белый шум камеры или микрофона. В различных версиях и конфигурациях ядра может использоваться различный набор источников. Некоторые компьютеры имеют специальные аппаратные RNG схемы на основе радиоактивного распада или, что менее впечатляет, нестабильных электронных схем. Эти выделенные источники особенно полезны во встраиваемых устройствах и серверах, которые могут иметь довольно предсказуемое поведение при первой загрузке, без пользователя, чтобы делать странные вещи.[

] [

]Linux предоставляет случайные числа программам через два устройства: [][]/dev/random[] and []/dev/urandom[][]. Считывание с любого устройства возвращает криптографическое качество. Оба прибора используют одно и то же внутреннее состояние RNG и один и тот же алгоритм для преобразования состояния и получения случайных байтов. Они имеют своеобразные ограничения, которые ни одно из них не делает правильным:[

] [
    ] [
  • ][]/dev/urandom[] может возвращать предсказуемые данные, если система еще не накопила достаточно энтропии.[
  • ] [
  • ][]/dev/random[] вычисляет количество доступной энтропии и блокирует, если их недостаточно. Звучит неплохо, за исключением того, что вычисление основано на теоретических соображениях, которые заставляют количество доступной энтропии уменьшаться линейно с каждым выходным битом. Таким образом, []/dev/random[] имеет тенденцию очень быстро блокировать.[
  • ] [
] [

]Системы Linux сохраняют внутреннее состояние RNG на диск и восстанавливают его во время загрузки. Поэтому энтропия переносится с одной загрузки на другую. Единственный раз, когда энтропии в системе Linux может не хватить, это когда она только что установлена. Как только в системе достаточно энтропии, энтропия не уменьшается; уменьшается только ошибочное вычисление в Linux. Дополнительные разъяснения по этому поводу, Чтение [][]/dev/urandom[] подходит для генерации криптографического ключа [] профессиональным криптографом. См. также [] Можете ли вы объяснить оценку энтропии, используемую в случайных случаях.c[].[

] [

] Перемещение мыши добавляет больше энтропии в систему. Но []gpg может считывать только из []/dev/random[], а не из []/dev/urandom[][] (способ решить эту проблему - сделать []/dev/random[] таким же прибором 1:9, как []/dev/urandom[]), так что он никогда не рискует получить неслучайные числа. [] Если вы не перемещаете мышь, клавиша является настолько случайной, насколько это возможно; но что может случиться, так это то, что gpg может заблокироваться[] при чтении из []/dev/random[], ожидая, пока счетчик энтропии ядра не поднимется.[

]).
8
27.01.2020, 20:02
[

] GPG использует генератор случайных чисел Linux (ядро). Генератор случайных чисел ядра получает энтропию (случайность) из разного рода мест, среди них - прерывания по времени, для определенных прерываний. Перемещение мыши (и набор текста, активность диска и т.д.) будет генерировать прерывания.[

] [

]Таким образом, перемещение мыши действительно потенциально может попасть в генератор случайных чисел. Но зависит ли это от конкретной используемой версии ядра; более новые версии (по крайней мере, в моем тестировании) не используют прерывания клавиатуры или мыши для энтропии. Дисковая активность, тем не менее, делает (так, например, запуск []sync[] добавит потенциально большое количество энтропии, в зависимости от того, сколько смывается).[

] [

]Короче говоря: это не так в текущих версиях Linux. Это было на более старых версиях.[

] [

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

] [

]Вы можете посмотреть, сколько энтропии доступно по []cat /proc/sys/kernel/random/entropy_avail[].[

].
3
27.01.2020, 20:02

Tails имеет чрезвычайно быструю генерацию ключей, потому что в нем установлено hasged :

sudo apt-get install haveged
0
27.01.2020, 20:02

Теги

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