LINUX-сервер пошаговые инструкции инсталляции и настройки - Бруй В. В. , Карлов С. В
..pdf
Глава 11. GnuPG – утилита для безопасного хранения и передачи данных |
171 |
GnuPG – утилита для безопасной передачи и хранения данных. Используется для шифрования данных и создания цифровых подписей, включает управления базой данных ключей и соответствует стандарту ОpenPGP. GnuPG – свободно распространяемая утилита, не использующая запатентованных алгоритмов, поэтому она, к сожалению, не совместима с PGP2.
Одной из наиболее важных областей применения утилиты является проверка подлинности получаемых программ. GnuPG позволяет с высокой степенью достоверности установить, что коды устанавливаемого программного обеспечения не были модифицированы при транспортировке от разработчика к вам по сетям общего пользования.
Ограничения и допущения
Исходные коды находятся в каталоге /var/tmp.
Все операции выполняются пользователем с учетной записью root. Используется дистрибутив ASPLinux 7.3 (Vostok).
Перекомпиляция ядра не требуется.
Процедуры, описанные в этой главе, могут оказаться применимыми для других версий ядра и дистрибутивов Linux, но авторы этого не проверяли.
ЗАМЕЧАНИЕ В некоторых странах ввоз, распространение и использование программного обеспечения для криптографии запрещено.
Пакеты
Последующие рекомендации основаны на информации, полученной с домашней страницы проекта GnuPG по состоянию на 19.03.2003. Регулярно посещайте домашнюю страницу проекта http://www.gnupg.org/ и отслеживайте обновления.
Исходные коды GnuPG содержатся в архиве gnupg-version.tar.gz (последняя доступная на момент написания главы стабильная версия gnupg-1.2.1.tar.gz).
Для нормальной инсталляции и работы программного обеспечения необходимо, чтобы в системе бы-
ли установлены пакеты gettext-0.11.1-2.i386.rpm, python-1.5.2-38.3asp.i386.rpm, expat-1.95.2-2.i386.rpm и gmp-4.0.1-3.i386.rpm.
Инсталляция с помощью rpm-пакетов
Если вы предпочитаете использование системы со стандартным ядром и программным обеспечением, установленным из rpm-пакетов, для установки или обновления пакета необходимо выполнить следующие операции.
ЗАМЕЧАНИЕ Авторы настоятельно рекомендуют устанавливать программное обеспечение из исходных кодов.
Шаг 1
Проверьте, установлен ли пакет gnupg с помощью следующей команды:
[root@drwalbr /]# rpm –iq gnupg
Если вы следовали нашим рекомендациям, то пакет не установлен.
Шаг 2
Перейдите в каталог, где находится пакет gnupg-1.0.6-5.asp.i386.rpm. Если вы в соответствии с рекомендациями главы 2 скопировали все пакеты, входящие в дистрибутив, в каталог /home/distrib, то выполните команду:
[root@drwalbr /]# cd /home/distrib
и установите:
[root@drwalbr distrib]# rpm –ihv gnupg-1.0.6-5.asp.i386.rpm
или обновите пакет:
[root@drwalbr distrib]# rpm –Uhv gnupg-1.0.6-5.asp.i386.rpm
После установки пакета перейдите к тестированию утилиты GnuPG, описанной ниже.
172 |
Часть 3. Криптографическое программное обеспечение... |
Компиляция, оптимизация и инсталляция GnuPG
Для конфигурирования, компилирования и оптимизации GnuPG из исходных кодов выполните следующие действия.
Шаг 1
Проверьте подлинность полученного архива с исходными кодами GnuPG. Для этого необходимо сравнить контрольную сумму MD5 пакета:
[root@drwalbr /]# md5sum gnupg-1.2.1.tar.gz 83e02b4905dab34c4dc25652936022f9 gnupg-1.2.1.tar.gz
c контрольной суммой, указанной на сервере разработчика:
[root@drwalbr /]# lynx http://www.gnupg.org/download/index.html
# Download - GnuPG.org (p4 of 9)
We suggest that you download the GNU Privacy Guard from a mirror site close to you. See our list of mirrors. To locate a source package
…
GnuPG 1.2.1 source compressed using gzip. 2.5MB S FTP HTTP
Signature and |
MD5 checksum for previous file. |
|
83e02b4905dab34c4dc25652936022f9 gnupg-1.2.1.tar.gz |
FTP HTTP |
|
… |
|
|
Шаг 2 |
|
|
Разархивируйте исходные коды в каталоге /var/tmp: |
|
|
[root@drwalbr |
/]# cd /var/tmp |
|
[root@drwalbr |
tmp]# tar xzpf gnupg-1.2.1.tar.gz |
|
Шаг 3 Сконфигурируйте исходные коды программы:
[root@drwalbr tmp]# cd gnupg-1.2.1/
[root@drwalbrgnupg-1.2.1]# CFLAGS="-O2 -march=i686 -funroll-loops"; export CFLAGS
./configure \ --prefix=/usr \ --mandir=/usr/share/man \
--infodir=/usr/share/info \ --disable-nls
При таких параметрах конфигурации осуществляется оптимизация применительно к архитектуре процессора i686, определяются каталоги для размещения соответствующих файлов и отключается поддержка языков, отличных от английского.
Шаг 4 Откомпилируйте исходные коды, проверьте правильность компиляции и наличие соответствующих
библиотек, проинсталлируйте файлы GnuPG, создайте и сохраните список инсталлированных файлов:
[root@drwalbr gnupg-1.2.1]# make [root@drwalbr gnupg-1.2.1]# make check Making check in intl
make[1]: Вход в каталог `/home/gnupg/gnupg-1.2.1/intl` make[1]: Цель `check` не требует выполнения команд. make[1]: Выход из каталог `/home/gnupg/gnupg-1.2.1/intl`
…
home: .
Supported algorithms:
Pubkey: RSA, RSA-E, RSA-S, ELG-E, DSA, ELG
Cipher: 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH Hash: MD5, SHA1, RIPEMD160
Compress: Uncompressed, ZIP, ZLIB PASS: version.test
Hash algorithm TIGER/192 is not installed
Глава 11. GnuPG – утилита для безопасного хранения и передачи данных |
173 |
ЗАМЕЧАНИЕ TIGER – является экспериментальным алгоритмом, поэтому мы не включили его в число устанавливаемых компонентов. Для его включения на этапе конфигурирования исходных кодов необходимо использовать опции --enable-tiger и --enable-new-tiger.
PASS: mds.test PASS: decrypt.test
PASS: decrypt-dsa.test PASS: sigs.test
PASS: sigs-dsa.test PASS: encrypt.test PASS: encrypt-dsa.test PASS: seat.test
PASS: clearsig.test PASS: encryptp.test PASS: detach.test PASS: armsigs.test PASS: armencrypt.test PASS: armencryptp.test PASS: signencrypt.test
PASS: signencrypt-dsa.test PASS: armsignencrypt.test PASS: armdetach.test
PASS: armdetachm.test PASS: detachm.test PASS: genkey1024.test PASS: conventional.test
PASS: conventional-mdc.test PASS: multisig.test
===================
All 25 tests passed
===================
make[2]: Выход из каталог `/home/gnupg/gnupg-1.2.1/checks`
make[1]: Выход из каталог `/home/gnupg/gnupg-1.2.1/checks` make[1]: Вход в каталог `/home/gnupg/gnupg-1.2.1`
make[1]: Цель `check-am` не требует выполнения команд. make[1]: Выход из каталог `/home/gnupg/gnupg-1.2.1`
[root@drwalbr gnupg-1.2.1]# find /* > /root/gnupg1 |
|
|
|||
[root@drwalbr gnupg-1.2.1]# make install |
|
|
|
||
[root@drwalbr gnupg-1.2.1]# strip /usr/bin/gpg |
|
|
|||
[root@drwalbr gnupg-1.2.1]# strip /usr/bin/gpgv |
|
|
|||
[root@drwalbr gnupg-1.2.1]# find /* > /root/gnupg2 |
|
|
|||
[root@drwalbr |
gnupg-1.2.1]# |
diff |
/root/gnupg1 |
/root/gnupg2 |
> |
/root/gnupg.installed
[root@drwalbr gnupg-1.2.1]# mv /root/gnupg.installed
/very_reliable_place/gnupg.installed.YYYYMMDD
Шаг 5
Удалите архив с исходными кодами и каталог gnupg-1.2.1:
[root@drwalbr gnupg-1.2.1]# cd /var/tmp [root@drwalbr tmp]# rm -rf gnupg-1.2.1/ [root@drwalbr tmp]# rm -f gnupg-1.2.1.tar.gz
Тестирование GnuPG
Для тестирования GnuPG создайте, как минимум, для двух пользователей вашей системы секретную пару ключей (открытый и закрытый ключ), проверьте возможность шифрования сообщения одним из пользователей и возможность расшифровки другим.
Шаг 1
Установите права доступа к файлу /usr/bin/gpg: [root@drwalbr tmp]# chmod 4755 /usr/bin/gpg
Шаг 2
174 Часть 3. Криптографическое программное обеспечение...
Зарегистрируйтесь в системе в качестве обычного пользователя, например, sergey.
[sergey@drwalbr sergey]$ cd
Шаг 3
Если вы впервые создаете ключи для пользователя sergey, наберите:
[sergey@drwalbr sergey]$ gpg --gen-key
gpg (GnuPG) 1.2.1; Copyright (C) 2002 Free Software Foundation, Inc. This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it under certain conditions. See the file COPYING for details. gpg: /home/sergey/.gnupg: directory created
gpg: new configuration file `/home/sergey/.gnupg/gpg.conf' created
gpg: keyblock resource `/home/sergey/.gnupg/secring.gpg': file open error gpg: keyring `/home/sergey/.gnupg/pubring.gpg' created
Please select what kind of key you want:
(1)DSA and ElGamal (default)
(2)DSA (sign only)
(5) RSA (sign only) Your selection?
и прервите выполнение программы:
<Ctrl>+C
Это необходимо для того, чтобы программа gpg создала необходимые файлы и каталоги в домашнем каталоге пользователя. Если ключи для пользователя уже создавались ранее, перейдите к следующему шагу.
Шаг 4 Запустите gpg:
[sergey@drwalbr sergey]$ gpg --gen-key
gpg (GnuPG) 1.2.1; Copyright (C) 2002 Free Software Foundation, Inc. This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it under certain conditions. See the file COPYING for details. gpg: keyring `/home/sergey/.gnupg/secring.gpg' created
Please select what kind of key you want:
(1)DSA and ElGamal (default)
(2)DSA (sign only)
(5) RSA (sign only)
Выберите тип ключа, предлагаемый по умолчанию:
Your selection? 1
DSA keypair will have 1024 bits.
About to generate a new ELG-E keypair. minimum keysize is 768 bits
default keysize is 1024 bits
highest suggested keysize is 2048 bits
Выберите длину ключа, предлагаемую по умолчанию:
What keysize do you want? (1024)<Enter> Requested keysize is 1024 bits
Please specify how long the key should be valid. 0 = key does not expire
<n> = key expires in n days <n>w = key expires in n weeks <n>m = key expires in n months <n>y = key expires in n years
Выберите срок действия ключа (1 год):
Key is valid for? (0) 1y
Key expires at Чтв 18 Мар 2004 15:43:18 MSK
Подтвердите правильность введенных данных:
Is this correct (y/n)? y
Глава 11. GnuPG – утилита для безопасного хранения и передачи данных |
175 |
You need a User-ID to identify your key; the software constructs the user id
from Real Name, Comment and Email Address in this form: "Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>"
Введите имя пользователя:
Real name: Sergey Karlov
Введите имя e-mail пользователя:
Email address: sergey@drwalbr.und
Введите, если хотите, какие-либо комментарии, касающиеся пользователя, в противном случае:
Comment:<Enter>
You selected this USER-ID:
"Sergey Karlov <sergey@drwalbr.und>"
Вам предоставляется возможность отредактировать ID пользователя, по которому будет идентифицироваться ключи. В рассматриваемом примере – это "Sergey Karlov <sergey@drwalbr.und>". Если все правильно, то:
Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O
В противном случае используйте опции N, C и E для изменения имени пользователя, комментария и адреса электронной почты, соответственно.
You need a Passphrase to protect your secret key.
Введите пароль для защиты секретного ключа.
Passphrase:$ecretnoe_$lovo_Sergeya
Далее система в автоматическом режиме осуществит генерацию ключей. В это время следует подвигать мышку, понажимать кнопки на клавиатуре для повышения степени энтропии в вашей системе.
We need to generate a lot of random bytes. It is a good idea to perform some other action (type on the keyboard, move the mouse, utilize the disks) during the prime generation; this gives the random number generator a better chance to gain enough entropy.
.+++++.+++++..++++++++++++++++++++++++++++++...++++++++++.++++++++++.++++
+...+++++++++++++++++++++++++++++++++++++++++++++++++++++++.++++++++++>++
++++++++.........+++++
We need to generate a lot of random bytes. It is a good idea to perform some other action (type on the keyboard, move the mouse, utilize the disks) during the prime generation; this gives the random number generator a better chance to gain enough entropy.
+++++.+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++.+++++..++++++++++>+++++.....+
++++^^^
gpg: /home/sergey/.gnupg/trustdb.gpg: trustdb created public and secret key created and signed.
key marked as ultimately trusted.
pub 1024D/5BC241B3 2003-03-19 Sergey Karlov <sergey@drwalbr.und> Key fingerprint = D155 D3C4 F19A 5859 3A66 9108 99E5 5EBA 5BC2 41B3 sub 1024g/69CADC7B 2003-03-19 [expires: 2004-03-18]
Шаг 5 Экспортируйте открытый ключ:
[sergey@drwalbr sergey]$ gpg --export -ao sergey.asc
В результате в домашнем каталоге пользователя sergey будет создан файл sergey.asc:
[sergey@drwalbr sergey]$ cat sergey.asc
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.2.1 (GNU/Linux)
mQGiBD54ZjQRBADBezMOEg0kncSEcIV7F47AfAXXz1WtR3y/cY38o2ZeiLTo0POF
qS0aescQaU5/MU0CT7ipcD91rbcKbNLzgz4xf4jMBl3rr/qXn9xAKogPAwTvZYZL
t15ouGuAQTU25E1OAp5C/71Ro9kOK9ZBxkuWz+kfp5Ctc5t0UdMIOewBawCg7Tq7
176 Часть 3. Криптографическое программное обеспечение...
/z7yrIUj0TpBGOpua8M32QsD/2ZhcUDTTBO6WBYMbTbWOoMrNxYfUqB4f3H24h9h
uw3e+K9wP2HFCq1BxnDO6+IBYQLntscH2kQ4hYuipEFq+iZIDrPvUfDeNs9bR33z
B+cEkGUsbE4auuQ9iD5fu3va4EJolM5EGvwp9LZBpz82i3H/2kgdTrlK3YFT7UQT
IWk4A/4nKzDomsEmm6SAkz6gpxorkTTedHXXv8E7Z+4cwjWH1h/LKKzGG2IwqpyN
liQiUHvLdQJ/fOQMiF907eWk3c/WWiMCQo1sAEJO8Y2yS5+iFzuKFisbIOmAHWMD
dWdkB6+iSz3iZkk7wlfYG2zCLt5ET834u+dAWQwc8VN2VlpE7LQiU2VyZ2V5IEth
cmxvdiA8c2VyZ2V5QGRyd2FsYnIudW5kPohfBBMRAgAfBQI+eGY0BQkB4TOABAsH
AwIDFQIDAxYCAQIeAQIXgAAKCRCZ5V66W8JBsy/jAKCrGteDpQ45JcEzgxACnBAI
vPF/3QCgpgeS3u5BBOAA1ZcsaJ0k8tnuMEG5AQ0EPnhmNRAEAOC+GW3G5FOp1aHJ
cVF+zuRRZ+oeaPRoWJwGfZ+KR5L3YYO8kP/3eeRZ5Gnp0KyJ80VCeilaJpepjot6
lrqwpRbF/oGY4qHn/a6ubPmqza+sq2ttYSDx0QkTLMiI6qbekrUxa2jNgEcXr6gJ
ig92U8cQWO+wXT4xtxMLldnhZAO3AAMFBACaH6pNG7zAT/QIgFgwNTT+roBUJGze
lFb4eUMzSSBtEi3o3NgHt6gHqkglYOZeo8wBR+lzr69Aoq8zLpSSWzY/iHjcc/p7
XflKlaiL6yqZNwSjO6aki/Hqlq9pTrxyuSIhz2jWfuzvEqoJHp1pLXbd0DbZvNs5
Wc93PcctqRx/64hMBBgRAgAMBQI+eGY1BQkB4TOAAAoJEJnlXrpbwkGzRSgAoOLL
N9siEQqzYa1ujl9y/GEQmHwbAJ9smVzY7PaLOGUIWA2Zxe+XXy0cjw==
=o1IS
-----END PGP PUBLIC KEY BLOCK-----
Файл sergey.asc, содержащий открытый ключ пользователя sergey, нужно передать всем пользователям, с которыми он предполагает обмениваться зашифрованными файлами. Файл может быть выложен на Web -сервере пользователя или разослан по электронной почте.
Шаг 6
Зарегистрируйтесь в системе в качестве другого пользователя, например valentine и повторите шаги 1…5.
Шаг 7
Поместите открытый ключ пользователя sergey в домашний каталог пользователя valentine, а открытый ключ пользователя valentine в домашний каталог пользователя sergey.
Шаг 8 Подпишите открытые ключи.
Для пользователя sergey:
[sergey@drwalbr sergey]$ gpg --sign valentine.asc
You need a passphrase to unlock the secret key for user: "Sergey Karlov <sergey@drwalbr.und>" 1024-bit DSA key, ID 5BC241B3, created 2003-03-19
Введите пароль, который использовался для защиты закрытого ключа в шаге 4:
Enter passphrase: $ecretnoe_$lovo_Sergeya
Для пользователя valentine:
[valentine@drwalbr valentine]$ gpg --sign sergey.asc
You need a passphrase to unlock the secret key for user: "Valentine Bruy <valentine@drwalbr.und>" 1024-bit DSA key, ID F3238EE5, created 2003-03-19
Введите пароль, который использовался для защиты закрытого ключа в шаге 4:
Enter passphrase: $ecretnoe_$lovo_Valentine
Шаг 9
От имени пользователя valentine создайте сообщение для пользователя sergey:
[valentine@drwalbr valentine]$ echo Привет, Сергей ! = Валентин > message_to_sergey
Шаг 10 Зашифруйте сообщение:
[valentine@drwalbr valentine]$ gpg -sear sergey@drwalbr.und message_to_sergey
You need a passphrase to unlock the secret key for
Глава 11. GnuPG – утилита для безопасного хранения и передачи данных |
177 |
user: "Valentine Bruy <valentine@drwalbr.und>" 1024-bit DSA key, ID F3238EE5, created 2003-03-19
Введите пароль для секретного ключа:
Enter passphrase: $ecretnoe_$lovo_Valentine
gpg: checking the trustdb
gpg: checking at depth 0 signed=0 ot(-/q/n/m/f/u)=0/0/0/0/0/1 gpg: next trustdb check due at 2004-03-18
gpg: 69CADC7B: There is no indication that this key really belongs to the owner
1024g/69CADC7B 2003-03-19 "Sergey Karlov <sergey@drwalbr.und>" Primary key fingerprint: D155 D3C4 F19A 5859 3A66 9108
99E5 5EBA 5BC2 41B3
Subkey fingerprint: 456F C70F 8F64 38B3 B6F4 E900 70C3 B3B8 69CA DC7B
It is NOT certain that the key belongs to the person named in the user ID. If you *really* know what you are doing, you may answer the next question with yes
Подтвердите использования ключа:
Use this key anyway? yes
В результате в домашнем каталоге появился файл message_to_sergey.asc. Следует отметить, что вместо указания адреса электронной почты, используемого при шифровании сообщения, можно использовать имя пользователя (первую часть идентификатора пользователя), т. е. команды:
[valentine@drwalbr valentine]$ gpg -sear sergey@drwalbr.und message_to_sergey
и
[valentine@drwalbr valentine]$ gpg -sear "Sergey Karlov" message_to_sergey
приводят к одинаковым результатам. Переместите файл message_to_sergey в домашний каталог пользователя sergey.
Шаг 11
Файл message_to_sergey содержит зашифрованное сообщение. Если бы вы передавали его по сетям общего пользования, то в случае перехвата сообщения третьими лицами, они смогли бы ознакомится со следующим текстом:
[sergey@drwalbr sergey]$ cat message_to_sergey.asc
-----BEGIN PGP MESSAGE-----
Version: GnuPG v1.2.1 (GNU/Linux)
hQEOA3DDs7hpytx7EAQA3+zuXyc4ckZhS3fbKsV+vcPp9wJmbYE0BF8qFYP8KQAo
lRlbl1tz7l2HlAKqGrbnyTtuVqRw1RPz/vMo4IQCqL1/YHVz6KhYYbXsFIqFYXGb
vB9PqgEMfRCpAJK63WFj3oyX2EL1Q9qAc9v/9Ru5SY2D1bqM3dHdneWbjJvhBcAD
/iF5qWnlpex3FTTwtmvrobrKuuFzZQNIZl3AQpOL7b5EWyM5RfjKPqaG4+FVaAyd
dSRvKNpeTNA4s+OgShTp8bRpNcwZ72Fy35pkwxTTRqcD7QWVaisn/Q3EnC78T3Md
0ESCEHT/tkZmGhnQHBN3vA0PvC32SXTHFRoa+aiO09Ou0rYBc2D9KJPu7VMWUuSq
MZ4YYkF5GUOKivURAkWbrOBztHunipgbbG6QxdeaL1eSJPkq58Ob4rtgErD8tL2M
nrPbhBnUYOFoW+t+UzfFQ28eJo+jQOoFtxcQu2hpLpipBaGjbl8owXSHEVkSWmb1
/8oW1uq+wBrTP0sghYxchr/7ByBeAMirvBuwkVIUrQr5S+XP6CAXnKNLfyxakMrE
4T5NAuAteSlZwUj6fvo2Ba67aQBdDO7FvA==
=C5As
-----END PGP MESSAGE-----
Для расшифровки сообщения в файле message_to_sergey:
[sergey@drwalbr sergey]$ gpg -d message_to_sergey.asc > message_to_sergey
You need a passphrase to unlock the secret key for user: "Sergey Karlov <sergey@drwalbr.und>"
178 Часть 3. Криптографическое программное обеспечение...
1024-bit ELG-E key, ID 69CADC7B, created 2003-03-19 (main key ID 5BC241B3)
введите пароль:
Enter passphrase: $ecretnoe_$lovo_Sergeya
gpg: encrypted with 1024-bit ELG-E key, ID 69CADC7B, created 2003-03-19
"Sergey Karlov <sergey@drwalbr.und>"
gpg: Signature made Срд 19 Мар 2003 16:05:22 MSK using DSA key ID F3238EE5
gpg: Good signature from "Valentine Bruy <valentine@drwalbr.und>"
gpg: checking the trustdb
gpg: checking at depth 0 signed=0 ot(-/q/n/m/f/u)=0/0/0/0/0/1
gpg: next trustdb check due at 2004-03-18
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
Primary key fingerprint: BAD5 B986 F5AC 89E7 99A4 92CE 4678 9056 F323 8EE5
В результате в домашнем каталоге пользователя sergey появится файл message_to_sergey, содержащий исходное сообщение:
[sergey@drwalbr sergey]$ cat message_to_sergey
Привет, Сергей ! = Валентин
Глава 12. OpenSSL – программное обеспечение для безопасной передачи данных |
179 |
Глава 12
OpenSSL – программное обеспечение для безопасной передачи данных
В этой главе:
1. Ограничения и допущения
2.Пакеты
3.Инсталляция с помощью rpm-пакетов
4.Компиляция, оптимизация и инсталляция OpenSSL
5.Конфигурирование OpenSSL
6.Тестирование OpenSSL
180 |
Часть 3. Криптографическое программное обеспечение... |
Большинство сетевых протоколов, используемых в Интернете, например, IMAP, POP, SQL, SMTP, SMB, HTTP, FTP и LDAP, обеспечивают поддержку шифрования информации по протоколу SSL. Обычно шифрование используется для скрытия от злоумышленников передаваемых по сетям общего пользования логинов и паролей доступа к различным ресурсам, например, средствам администрирования через Webинтерфейс акаунтов для предоставления различных услуг (хостинг, электронная почта, управление мобильным телефоном и т. п.), почтовым ящикам, закрытым каталогам на FTP и Web-серверах для передачи различных конфиденциальных сообщений (например, ЦРУ имеет на своем сервере http://www.cia.gov форму, предназначенную для приема информации, которая при передаче будет зашифрована).
При передаче аутентификационной информации в виде обычного текста она может быть перехвачена третьими лицами с использованием программ-сниферов и использована для получения несанкционированного доступа к вашим ресурсам. Например, одна неверная супруга, ведущая переписку с любовником через почтовый ящик на http://www.mail.com, где логин и пароль передаются в виде обычного текста, была поймана с поличным (в полученном ей письме содержалась информация о месте и времени встречи). Аутентификационные параметры для доступа к почтовому ящику были получены мужем с помощью снифера, установленного на системе в локальной сети офиса, где работала беспечная дама.
В настоящее время протокол SSL практически незаметно для пользователя взаимодействует с остальными протоколами Интернет и обеспечивает передачу конфиденциальной информации по сетям общего пользования в зашифрованном виде.
Программное обеспечение OpenSSL поддерживает протоколы SSL v2/v3 (Secure Sockets Layer) и TLS v1 (Transport Layer Security). Большинство программ, описанных в этой книге, требует установки OpenSSL. Группа разработчиков предупреждает, что использование алгоритмов RC5 и IDEA, также реализованных в OpenSSL, требует получения соответствующих лицензий, и рекомендует проконсультироваться на эту тему с вашим юристом. Для исключения из OpenSSL этих алгоритмов при установке на вашем компьютере исходные коды необходимо сконфигурировать с опциями no-rc5 и no-idea.
В этой главе описаны процедуры установки, настройки и тестирования OpenSSL, включая операции по генерации и подписи ключей, применяемых для шифрования передаваемой по сетям общего пользования информации с использованием протоколов Интернет, поддерживающих OpenSSL.
Ограничения и допущения
Исходные коды находятся в каталоге /var/tmp.
Все операции выполняются пользователем с учетной записью root. Используется дистрибутив ASPLinux 7.3 (Vostok).
Перекомпиляция ядра не требуется.
Процедуры, описанные в этой главе, могут оказаться применимыми для других версий ядра и дистрибутивов Linux, но авторы это не проверяли.
ЗАМЕЧАНИЕ В некоторых странах ввоз, распространение и использование программного обеспечения для криптографии запрещено.
Пакеты
Последующие рекомендации основаны на информации, полученной с домашней страницы проекта OpenSSL по состоянию на 22.03.2003. Регулярно посещайте домашнюю страницу проекта http://www.openssl.org/ и отслеживайте обновления.
Исходные коды OpenSSL содержатся в архиве openssl-version.tar.gz (последняя доступная на момент написания главы стабильная версия openssl-0.9.7a.tar.gz).
Инсталляция с помощью rpm-пакетов
Если вы предпочитаете использование системы со стандартным ядром и программным обеспечением, установленным из rpm-пакетов, для установки или обновления пакета необходимо выполнить следующие операции.
ЗАМЕЧАНИЕ Авторы настоятельно рекомендуют устанавливать программное обеспечение из исходных кодов.
Шаг 1
Проверьте, установлен ли пакет openssl с помощью следующей команды:
[root@dymatel /]# rpm –iq openssl
Шаг 2
