Это старая версия документа!
Я хочу добиться высокой степени безопасности своей системы. Как и какими средствами мне этого достичь?
Достижение любой цели не обходится без определённых жертв (переосмыслив которые в будущем, Вы можете даже принять их за благо), и важным шагом на таком пути будет отказ от MS Windows. Однако, это не означает что переход произойдёт моментально и без трудностей, но нужно понемногу работать в этом направлении и изучать Unix-системы, Linux или *BSD.
Зацикленность людей на Windows и поиск решений для укрепления этой ОС напоминает визит к врачу тяжело больного пациента, который просит быстродействующего и быстропомогающего лекарства. Врач понимает, что такое лекарство может ему временно помочь, однако оно не вылечит болезнь, не увеличит срок жизни, и больной всё равно продолжит идти к могиле. Вместо этого ему предлагаются кардинальные методы (*nix-система), которые могут помочь, но они не действуют моментально, требуют терпения и выдержки, требуют сменить привычный образ жизни, требуют регулировать своё питание, и ещё много в чём себя контролировать/исправлять. Но, как показывает практика, больные в большинстве тем не менее выбирают морфий Windows. [ источник ]
Стандарной программой шифрования в линуксе является PGP - Pretty Good Privacy (бесплатна для некоммерческого использования) или открытый аналог этой GnuPG - Gnu Privacy Guard.
Рас/шифровывание с использованием пары ключей проходит на два-три порядка медленнее, в сравнении с симметричным алгоритмом, требует бо́льших вычислительных ресурсов, поэтому на практике используются смешанные шифры:
Для реализации ЭЦП необходимо, чтобы шифр обладал тем свойством, что и открытый ключ, и секретный ключ может быть использован алгоритмом шифрования в качестве открытого ключа. RSA - является таким алгоритмом, а ElGamal нет.
gpg --gen-key
gpg --list-keys /home/user/.gnupg/pubring.gpg --------------------------------- pub 1024D/95447C14 2014-02-08 Name Family <user@nowhere.someplace.com> sub 2048g/96D6CDAD 2014-02-08
gpg --output revoke.asc --gen-revoke 95447C14
После создания ключа и сертификата отзыва необходимо сделать резервную копию полученных файлов (по-умолчанию распологаются в ~/.gpg/) в защищённом хранилище.
gpg --edit-key 4600813F
или по данным пользователя
gpg --edit-key user@nowhere.someplace.com
# публичные ключи gpg --list-keys # приватные ключи gpg --list-secret-keys
# запрос публичного ключа gpg --keyserver subkeys.pgp.net --recv-keys 5B20C7D2 # отправка своего публичного ключа на сервер gpg --keyserver subkeys.pgp.net --send-keys 5B20C7D2 # обновление ключей в локальном хранилище ключей gpg --refresh-keys --keyserver subkeys.pgp.net # экспорт публичного ключа в файл gpg --armor -output 4600813F.pub --export 4600813F # импортировать открытый ключ из файла gpg --fetch-keys http://example.com/4600813F.pub
gpg --output file.txt.gpg --encrypt --recipient name@dei.uc.pt file.txt
gpg --recipient name@dei.uc.pt --detach-sign file.txt
gpg --sign --recipient name@dei.uc.pt file.txt
gpg --sign --encrypt --recipient name@dei.uc.pt file.txt
gpg --output file.txt --decrypt file.txt.gpg
gpg --verify file.txt.sig file.txt
gpg --output file.txt.gpg --symmetric file.txt
gpg --output file.txt --decrypt file.txt.gpg
Дана машина, доступная из сети по ssh, на машине установлен криптографический пакет gpg, установлен vim с плагином vim-gnupg, а также дополнительно доступен git.
Задача обеспечить приватный доступ и хранение паролей на данной машине. Информация: тыц.
gpg --encrypt --recipient master@jurik-phys.net test.txt
sudo apt-get install vim-scripts
# создаём локальный каталог плагина mkdir ~/.vim/plugin # создаём символическую ссылку на плагин ln -s /usr/share/vim-scripts/plugin/gnupg.vim ~/.vim/plugin/gnupg.vim
vim test.txt.gpg
После ввода парольной фразы к закрытому ключу, открывается файл в расшифрованном виде, который может быть прозрачно отредактирован и сохранён.
vim secret.gpg
Для большего удобства предлагается установить следующие настройки в .vimrc
" Tell the GnuPG plugin to armor new files. let g:GPGPreferArmor=1 " Tell the GnuPG plugin to sign new files. let g:GPGPreferSign=1 augroup GnuPGExtra " Set extra file options. autocmd BufReadCmd,FileReadCmd *.\(gpg\|asc\|pgp\) call SetGPGOptions() " Automatically close unmodified files after inactivity. autocmd CursorHold *.\(gpg\|asc\|pgp\) quit augroup END function SetGPGOptions() " Set updatetime to 1 minute. set updatetime=60000 " Fold at markers. set foldmethod=marker " Remove comment symbols. set commentstring=%s " Automatically close all folds. set foldclose=all " Only open folds with insert commands. set foldopen=insert endfunction
Подробности в первоисточнике,тыц.