You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

5.5 KiB

Задания

1.

Скачайте дистрибутив debian-11.4.0-amd64-netinst.iso по ссылке http://mirror.corbina.net/debian-cd/current/amd64/iso-cd/. Рассчитайте хэш sha256 командой sha256sum для дистрибутива debian и проверьте целостность данных, сравнив значение с значением в файле SHA256SUMS.

2.

Зашифруйте и расшифруйте данные с помощью openssl enc. Используйте команды:

openssl enc -in infile.txt -out encrypted.data -e -aes256 -k symmetrickey
openssl enc -d -aes-256-cbc -in encrypted.data -out un_encrypted.data

Для вывода информации о возможных шифрах используйте одну из команд:

openssl help
openssl enc -list

Выведите содержимое encrypted.data в консоль.

3.

Зашифруйте и расшифруйте данные с помощью gpg. Используйте команды:

gpg --output encrypted.data --symmetric --cipher-algo AES256 un_encrypted.data
gpg --output un_encrypted.data --decrypt encrypted.data

Выведите содержимое encrypted.data в консоль.

4.

Сгенерируйте ed25519 пару ключей ssh-keygen -o -a 100 -t ed25519. Перейдите в ~/.ssh/ и проверьте, появилась ли пара SSH-ключей. Настройте возможность беспарольного входа в систему по ssh, добавить содержимое публичного ключа (.pub) в authorized_keys в той же директории (создайте файл, если его не существует).

5.

Используйте ssh-copy-id имя-удаленной-машины, чтобы скопировать ваш ssh-ключ на сервер. Перед установкой попробуйте команду в тестовом режиме с ключом -n.

6.

Отредактируйте .ssh/config на локальной машине, чтобы запись выглядела следующим образом

   Host псевдоним
     User имя пользователя
     HostName имя хоста или ip адрес хоста
     IdentityFile ~/.ssh/id_ed25519

Страница документации конфигурационного файла sshd man ssh_config.

7.

Отредактируйте конфигурацию вашего SSH-сервера, выполнив sudo vi /etc/ssh/sshd_config. Отключите проверку по паролю, отредактировав значение PasswordAuthentication. Отключите вход с правами суперпользователя, отредактировав значение PermitRootLogin. Перезапустите службу ssh с помощью sudo systemctl restart sshd.

! Перед перезапуском сервера, установите в отдельном окне резервное соединение с удалённой машиной, на случай если вход по ключу не работает или присутствует ошибка конфигурации.

Страница документации конфигурационного файла sshd man sshd_config.

Попробуйте подключиться ещё раз. Попробуйте подключиться ещё раз по паролю (добавьте флаг -o PubkeyAuthentication=no к ssh команде).

8.

Сгенерируйте самоподписанный сертификат x.509 и ключ с помощью openssl. Посмотрите содержимое сертификата командой openssl x509.

9.

Получите сертификат с помощью утилиты certbot https://certbot.eff.org/ или скрипта acme.sh https://github.com/acmesh-official/acme.sh от центра сертификации https://letsencrypt.org/. Изучите его содержимое командой openssl.

Справка

Хэш функция

hash(value: массив байт) -> массив байт фиксированной длины N 

Примеры: sha1, sha256

Симметричная криптография

keygen() -> ключ  (this function is randomized)

encrypt(данные: массив байт, ключ) -> шифрованные данные
decrypt(шифрованные данные: массив байт, ключ) -> данные

Примеры: DES, AES-256

Асимметричная криптография

keygen() -> (открытый ключ, закрытый ключ) (функция основана на генерации случайных чисел)

encrypt(данные, открытый ключ) -> шифрованные данные
decrypt(шифрованные данные, закрытый ключ) -> данные

sign(данные, закрытый ключ) -> массив<байт> (подпись)
verify(данные, подпись: массив<байт>, открытый ключ) -> bool (является ли подпись действительной или нет)

Примеры: RSA, ed25519

Релевантные ссылки: