💾 Archived View for betahowto.duckdns.org › unix:file_encryption captured on 2024-03-21 at 15:22:45. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2024-02-05)

🚧 View Differences

-=-=-=-=-=-=-

Шифрование файлов в Юникс-системах

Шифрование с помощью openssl

Верховный суд США одобрил поправки в законодательство, дающие

правоохранительным органам право на доступ к компьютерам, находящимся в

любом месте, даже за границей.

(с)Би-Би-Си

В связи с этим вот, что хочу сказать. Надежное шифрование файлов делается так:

bash


openssl enc -e -aes-256-cbc -md sha256 -in FILE -out CRYPTFILE

Где FILE - это исходный файл, а CRYPTFILE - зашифрованный результат.

Расшифровка:

bash


openssl enc -d -aes-256-cbc -md sha256 -in CRYPTFILE -out FILE

Пароль вам предложат ввести.

Конечно, шифрующих программ очень много, но это будет работать везде и

всегда. Скажем, вы можете шифровать файл в IBM AIX, а расшифровать в Убунте

или OpenBSD. Ничего устанавливать не нужно, это вcтроено в Юниксы.

Шифрование с помощью GPG

Этот способ подходит как для создания бэкапов, так и для шифрования файлов с последующей безопасной отправкой какому-либо получателю.

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

Смотрим список ключей GPG:

bash

gpg --list-keys

Сжимаем и шифруем:

bash

tar -cz ./catalog/* | gpg --trust-model always -e -r 'User <user@server.com>' -o ./catalog.tar.gz.gpg
#или так (c использованием ID ключа): tar -cz ./catalog/* | gpg --trust-model always -e -r 9719AC4AE23BBAF5399FE03AA997BBAC69B92B43 -o ./catalog.tar.gz.gpg
#или так (c максимальным сжатием): tar -c ./catalog/* | gzip -9 | gpg --trust-model always -e -r 9719AC4AE23BBAF5399FE03AA997BBAC69B92B43 -o ./catalog.tar.gz.gpg

Расшифровываем и распаковываем:

bash

gpg -d catalog.tar.gz.gpg | tar -xz
#gpg попросит ввести пароль от приватного ключа.
#файлы будут извлечены в текущий каталог.

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

(можно прописать в ~/.bash_aliases)

bash


#!/bin/sh

#в качестве параметра указывать имя файла вида *.tar.gz.gpg или *.bz2.gpg

if [ -z "$1"  ]
then
	echo 'Не указано имя файла для обработки. Выход.'
	exit 0
elif [ ! -f "$1" ]
then
	echo "Указанный файл ($1) не существует. Выход."
	exit 0;
fi

DIR=$(dirname "$0")
FNAME=$(echo "$1" | sed 's/.gpg$//g')
gpg -o "$DIR/$FNAME" -d "$1"
echo 'Расшифровка завершена.'

case $FNAME in

    *'tar.gz'*)
        echo 'Распаковываем *.tar.gz...'
        tar -xf "$DIR/$FNAME"
        #rm -f "$DIR/$FNAME"
        echo 'Архивный файл распакован.'
    ;;
    
    *'bz2'*)
        echo 'Распаковываем *.bz2...'
        bzip2 -d "$DIR/$FNAME"
        #rm -f "$DIR/$FNAME"
        echo 'Архивный файл распакован.'
    ;;

esac

Ссылки

GnuPG: https://ru.wikipedia.org/wiki/GnuPG ( https://ru.wikipedia.org/wiki/GnuPG )

Материалы

https://ru.wikipedia.org/wiki/GnuPG

Навигация

Поиск

Главная страница

Редактировать

Проект β-Doku

Алиас

[0200::/7]

Alfis / Yggdrasil