5. Proxies, или доступ к миру через посредника
Раздел настроек обозревателя MSInternetExplorer: Вии\Свойства обозревателя\Подключение\Прокси сервер.
Иногда бывает так, что для фирмы или организации неприемлемо давать внешнему миру доступ к своей внутренней сети. В таких случаях применяются либо программные, либо аппаратные решения – так называемые брандмауэры (они же firewalls, пожарные стенки, заслоны, экраны и т.д.). Эти средства обычно позволяют инициировать и поддерживать соединение с внешней машиной из локальной сети, но не позволяют это делать извне. Подобные средства применяются, например, в кластерах рабочих станций в CERN, OracleCorporation (*.oracle.com), ConvexComputerCorporation (*.ccc.com), Национальной службе новостей (*.nns.ru), в большинстве из российских (и западных, разумеется) банков в Internet и т.д.
Применение некоторых из таких средств безопасности приводит к тому, что лучше организовать доступ к миру через так называемого посредника. За линию защиты выдвигается посредник – proxy-сервер, который свободно общается с миром и является единственным, кому доступна внешняя сеть организации. Тогда все внутренние клиенты обращаются к любым внешним серверам через proxy-сервер, который выполняет конкретный запрос от своего имени и возвращает результат клиенту. Добавочный плюс от установки такого сервера состоит в том, что он одновременно может быть и кэширующим, т.е. может хранить документы, которые запрашивали через него сотрудники организации, при повторных запросах просто считывает запрошенный документ со своего диска. Понятно, что в этом случае доступ к таким документам практически мгновенный.
Само по себе наличие proxy-сервера не требует наличия брандмауэра и не обязательно им сопровождается. Можно установить proxy-сервер исключительно для улучшения времени отклика и уменьшения объема сетевых обменов с внешним миром.
Еще один важный аспект использования посредников связан с несчастливой особенностью русских текстов пребывать в разных кодировках. Многие ISP решают эту проблему с помощью установки так называемого перекодирующего proxy. Помимо очевидных выгод централизованного кэширования документов, каждый пользователь имеет возможность работать в необходимой и более подходящей для своей операционной системы кодировке символов. Это особенно важно при заполнении всевозможных форм и вообще там, где требуется ввод с клавиатуры. Если установку шрифтов КОИ-8 на машину с MSWindows можно считать неким подобием решения проблемы чтения в WWW и сделать это самостоятельно может практически любой пользователь, то найти и установить переключатель раскладки клавиатуры – уже гораздо более сложная задача.
В диалоговом окне «Свойства обозревателя\Подключение» вы можете выбрать «Подключаться к интернету через proxy сервер» и затем задать указать его адрес и порт, к которому будет производиться соединение (обычно это один из стандартных портов: 8080 – для анонимных, например, в поле Адрес: proxy.qatar.net.qa , а в поле Порт: 8080). В меню «Параметры прокси-сервера», вызываемом кнопкой «Дополнительно» можно задать адреса и порты прокси-серверов отдельно для каждого протокола (HTTP, FTP и т.д.), а также указать «исключительные» адреса, к которым не будет применяться доступ через прокси.
Необходимо также добавить, что установка прокси-сервера для обозревателя будет использоваться только обозревателем. Остальные программы по прежнему будут использовать стандартные прямые обращения к необходимым адресам.
6. Безопасная передача данных
Обозреватель MSInternetExplorer может быт применен для передачи секретной информации. Для этого используется протокол HTTPS (HTTP с добавлениями). Дополнительные элементы протокола являются реализацией стандарта SocketSecurityLayer (SSL), который продвигался корпорацией Netscape как единственный стандарт для безопасной передачи данных через Internet. Как мы уже любые ваши данные могут передаваться и наверняка передаются через множество промежуточных сетей, где есть опасность прослушивания. SSL использует технологию шифрования с открытым ключом фирмы RSADataSecurity.
Обычное шифрование называется шифрованием с закрытым ключом, то есть вы шифруете данные с помощью какого-то числа или строки символов – «волшебного» кодового слова, которое и называется ключом. Слабое место такого способа шифрования состоит в том, что вы должны как-то сообщить своему корреспонденту этот тайный ключ. Естественно, для такого сообщения нужен надежный канал передачи данных, чтобы никто не подслушал. С другой стороны, если у вас есть такой канал связи, то зачем вам шифрование?
Программа PGP (PrettyGoodPrivacy) тоже построена на технологии открытых ключей. Пользователь такой системы шифрования с помощью неких программ генерирует пары ключей, тайный никому не сообщает, а открытый сообщает всем. Теперь если кто-то хочет послать этому пользователю секретные данные, он узнает открытый ключ и шифрует им своё сообщение, но расшифровать его сможет только обладатель тайного ключа.
Идентификация, или цифровая подпись (в некотором смысле обратный процесс), гарантирующая, что данные отправлены именно нужным человеком, производится так: пользователь генерирует контрольную сумму своих данных и шифрует её своим тайным ключом. Теперь каждый может воспользоваться открытым ключом, расшифровать контрольную сумму и сравнить её с контрольной суммой полученного сообщения. Совпадение говорит о том, что данные действительно отправлены владельцем тайного ключа. Если же данные кем-то подделаны или хотя бы немного модифицированы, то суммы не совпадут. Всё это выглядит так:
---BEGIN PGP SIGNED MESSAGE---
Это подписанное сообщение.
---BEGIN PGP SIGNATURE---
Version: 2.6.2i
IDFHgf34DFJHSHGFHKadffasdj24DFSsdgh345657SADFGDG24353adsaDFGH455dghffSFG46755dsfSGFD34546sfdgERTET45657xcvbb3454sdfgfSDFDGF3435456xcvfgDFsfdgh324566cvg34dfdfg3DF34sDF23=
=/FNv
---END PGP SIGNATURE---
Стойкость шифрования к атакам определяется длиной ключа. Длинный ключ, обеспечивая большую безопасность, требует большего времени на (де)шифрование. В PGP имеется возможность генерации ключей с длиной:
· 128 бит – слабая безопасность данных, но быстро работает.
· 512 бит – нормальная безопасность данных для коммерческих приложений.
· 1024 бит – уровень, применяемый военными, но медленно.
Обеспечение безопасности ваших данных при прохождении через публичные сети – это одна сторона проблемы. Есть и другая: кто-то может притвориться другой машиной, например сервером, на котором торгуют компакт-дисками, и узнать номер вашей кредитной карточки. Поэтому в Обозревателе имеется возможность проверить сервер. При этом некто, кому вы доверяете, подтвердит вам, что вы действительно разговариваете с нужным сервером и никакого мошенничества не происходит. DigitalCertificate, цифровой сертификат, и есть сертификат подлинности документа, выданный этой организацией.
Совместимость Netscape-решения проблем безопасности с другими реализациями, вообще говоря, не гарантируется. Не дается также гарантии того, что сама фирма, с которой вы совершили сделку через Internet, не является мошеннической. Гарантируется только некоторый уровень безопасности передачи данных поверх небезопасной открытой среды – Internet.
Заметьте, несмотря на то, что HTTPS и PGP упоминается рядом, это совсем разные вещи. Общая у них только идея – шифрование с открытыми асимметричными ключами. Поэтому так вот напрямую, в лоб, сравнивать длинны ключей у этих двух криптографических средств нельзя.
7. Еще немного о «хорошем» ISP, или зачем вам UNIX
Сначала давайте немного поясним ситуацию с входом на сервер ISP. Вы получаете возможность работать с Unix-компьютером (ни на чем другом построить полноценный Internet сервис пока просто невозможно). О Unix давно идет слава недружественной системы – командная строка, самих команд много, они как-то непонятно комбинируются и т.д. (правда, кто-то из великих компьютерного мира заметил по этому поводу: «Unix – очень дружественная компьютерная система. Она всего лишь очень избирательно относиться к тому, кого считать своим другом»).
Всему этому надо, же конечно, учиться. Для чего же нужно все это?
Один очень простой пример. Вы соединяетесь с Internet изредка, сервер ISP соединен с Internet постоянно. Если вам нужно достать некий файл с очень далекого FTP-сервера и вы начнете передачу этого файла из этого самого далека к себе на компьютер, то скорость передачи может определяться не скоростью вашего соединения с ISP, но неведомым узким местом вдоль пути пакетов к далекому серверу. Это займет много времени, быть может, в несколько раз больше, чем должно из расчета по скорости вашего соединения с ISP. Время – деньги. В самом прямом смысле этого слова. Конкретные наличные деньги за то время, которое ваш модем занимал телефонный канал и оборудование, принадлежащее ISP. Как же быть? Если ISP дает вам терминальный вход (а ведь это рассказ к тому, что «хороший» ISP должен его давать) на одну из своих машин, то вы спасены.
Предположим, что вам нужно взять файл MOS21B1.EXE, лежащий по адресу ftp.kiae.su/windows/tcpip/www/mosaic
Первое действие – завести в своем домашнем каталоге файл .netrc и внести туда несколько магических строк:
$ cat > .netrc
machine ftp.kiae.su
login ftp
password user@
^D
$
Где $ - системное приглашение. Предпоследняя строка обозначает одновременное нажатие клавиш Control и D. Затем поменяем режим доступа к этому файлу так, чтобы никто, кроме вас, не мог его прочитать:
$ chmod 600 .netrc
После этого создадим еще несколько файлов. Любой Unix-компьютер имеет программу работы с FTP. Файл запуска transfer:
$ cat > transfer
#!/bin/csh
ftp ftp.kiae.su < jkiae >& listing &
^D
$
Меняем режим доступа к transfer так, чтобы его можно было запустить:
$ chmod +xtransfer
Теперь файл с заданиями для FTP – jkiae:
$ cat > jkiae
verb
prompt
bin
cd /window/tcpip/www/misaic/
get MOS21B1.EXE
quit
^D
$
Вместо get можно написать reget – практически все UnixFTP поддерживают эту команду (еще один плюс). Теперь запускаем всю эту конструкцию:
$ nohup ./transfer &
После этого можно бросать трубку телефона, то есть прекращать сеанс связи с ISP. Предположим, на следующий день вы решили посмотреть как идут дела. После выполнения задания журнал с сообщениями будет записываться в файл listing, где будет содержаться приблизительно такая информация: