генерация_надежных_pre-shared_key_в_linux

Генерация надежных Pre-shared Key в Linux

PSK или pre-shared key (предварительный общий ключ) – это пароль, состоящий из случайной строки символов при шифровании и расшифровке данных. Как следует из названия, обе стороны, участвующие в криптографическом процессе, заранее знают ключ, поскольку он требуется не только для расшифровки, но и для шифрования данных.

Злоумышленнику будет сложно перехватить данными по сети, если при их передаче мы используем pre-shared key. Использование PSK при передаче данных также гарантирует, что доступ к ним получат только те люди, с которыми мы хотим поделиться.

Пользователи могут получать информацию о системной дате и времени с помощью команды date. Далеко не всем известно, что данную команду, можно использовать для создания надежных ключей. Если объединить команду date с sha256sum и base64, вы получите набор случайных ключей, которые можно использовать в качестве PSK для шифрования данных.

date | sha256sum | base64 | head -c 15; echo
NDFhZWM4ZTI3NjY
 
date | sha256sum | base64 | head -c 25; echo
MjBlNjY4MDEwODQzNTEzZGI0Z
 
date | sha256sum | base64 | head -c 35; echo
MDc3MjA0NjZjMGZmZjQ5M2JlMzA2ZDdmZjc

В этом случае мы получили: 15, 25 и 35-байтовых PSK. Команда head, считывает байты и отображать их на вывод. Если из piplene удалить команду head, система напечатает строку 92 байта длиной.

/dev/random и /dev/urandom – специальные символьные псевдоустройства в некоторых UNIX-подобных системах, впервые появившиеся в ядре Linux версии 1.3.30. Они предоставляют интерфейс к системному генератору случайных чисел, который выводит шум из драйверов устройств и других источников в «хаотичный» пул (англ. entropy pool). Генератор также сохраняет необходимое количество битов шума в этом пуле и формирует из него случайную либо псевдослучайную последовательность чисел.

Разницу между ними можно описать так:

  • /dev/random – генератор случайных чисел;
  • /dev/urandom — генератор псевдослучайных чисел.
head -c 20 /dev/random | base64
DWUX+FKGVhXsmlKt7o7niSZgmy0=
 
head -c 30 /dev/urandom | base64
O/bWi8yR6Mx9XoJNDVanLXSo5DZcaMhddt2KuJoq

GNU Privacy Guard или GPG, известная утилита для шифрования и расшифровки файлов в системах Linux. Однако ее можете использовать эту программу и для генерации надежных предварительных ключей. Вы можете использовать метод - -gen-random команды gpg с кодировкой base64 для генерации бесконечного числа символов для использования в качестве предварительных ключей.

В следующих примерах: 1 – quality level, а 10, 20, 32, 64 и 128 - байты.

gpg --gen-random 1 10 | base64
4StsCxqMJ8wYpw==
 
gpg --gen-random 1 20 | base64
OSCpOAk5QZyZTu5Htnlen1w4MeQ=
 
gpg --gen-random 1 32 | base64
vIzNeubLRgsSfyfW0kXw+OwYyKpMNfuNepDDl49uUMU=
 
gpg --gen-random 1 64 | base64
HdqLrp0DwPKPlutojj1hK0eY4fAE2SBKGa+5yhDDvSzqxhK0QpDyeMTJJ6eGXtXTbdzrYEdTijaOnX+yj7+x8w==
 
gpg --gen-random 1 128 | base64
ycW1xZY4UjTaGbhLS6g/9xwp/MoyUrPLWH4UxjNbFUrAPkPgGq1ZPf8Bw4hWkuDxtq7QdIFNjeTtNMqTwd8HrWMdMjbO30E619FFxwZ44524ZYQNfyfG7Rrj3yUSwwVgThJ2XNPHIG3sJnRY3Ex5uT7+0lIUyKiBVerN4ZgSd0w=

OpenSSL – это известное и широко используемое приложение командной строки для доступа к криптографическим возможностям криптобиблиотеки OpenSSL из shell. Для построения сильного PSK используется подкоманда rand, которая генерирует псевдослучайные байты и фильтрует их через кодировку base64, как указано ниже.

openssl rand -base64 32
openssl rand -base64 64
openssl rand -base64 128
dd if=/dev/urandom count=200 bs=1 2>/dev/null | tr -cd "[:graph:]" | cut -c-18

Приведенная выше команда использует команду dd для генерации случайных данных. Опция if указывает входной файл, которым в данном случае является /dev/urandom.

Опция count задает количество блоков для чтения, а опция bs – размер блока.

Затем данные передаются через команду tr, которая выводит только те символы, которые считаются графическими в соответствии со стандартом POSIX. Наконец, команда cut используется для вывода только первых 18 символов.

apg, или Automatic Password Generator – это еще одна утилита для генерации случайных паролей в Linux. Она позволяет получить надежный пароль, состоящий из прописных и строчных букв, цифр и символов.

Требует установки:

sudo apt install apg

Чтобы сгенерировать два произносимых, восьмисимвольных пароля, выполним команду:

apg -m 8 -n 2
 
shroorodOk
Bickenowij

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

apg -a 1 -m 8 -n 4
 
>P}I1H?}
+>S!`)*+
]7-Ndcbd*F
5D'D;>f=

Описание используемых опций:

  • -a, -ambiguous – Эта опция позволяет использовать неоднозначные символы в генерируемых паролях. Двусмысленные символы – это символы, которые при наборе можно перепутать друг с другом, например, 1 и l (единица и строчная буква L). Использование этой опции повышает надежность ваших паролей, делая их более сложными для угадывания.
  • -m, -minlen=NUMBER – Эта опция позволяет указать минимальную длину генерируемых паролей. Значение по умолчанию – 8 символов, увеличение зависит от степени паранойи.
  • -M, -maxlen=NUMBER – Эта опция позволяет указать максимальную длину генерируемых паролей. Значение по умолчанию составляет 8 символов.
  • -n, -numpass=NUMBER – Опция позволяет генерировать несколько паролей одновременно. По умолчанию apg генерирует только один пароль за раз.
  • генерация_надежных_pre-shared_key_в_linux.txt
  • Последнее изменение: 2022/11/19 20:35
  • admin