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.

89 lines
5.0 KiB
Markdown

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# Задания
### 1.
Скачайте дистрибутив debian debian-11.4.0-amd64-netinst.iso c 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`.
# Справка
### Хэш функция
```
hash(value: массив байт) -> массив байт фиксированной длины N
```
Примеры: sha1, sha256
### Симметричная криптография
```
keygen() -> ключ (this function is randomized)
encrypt(данные: массив байт, ключ) -> шифрованные данные
decrypt(шифрованные данные: массив байт, ключ) -> данные
```
Примеры: DES, AES-256
### Асимметричная криптография
```
keygen() -> (открытый ключ, закрытый ключ) (функция рандомизирована)
encrypt(данные, открытый ключ) -> шифрованные данные
decrypt(шифрованные данные, закрытый ключ) -> данные
sign(данные, закрытый ключ) -> массив<байт> (подпись)
verify(данные, подпись: массив<байт>, открытый ключ) -> bool (является ли подпись действительной или нет)
```
Примеры: RSA, ed25519