pre-shared key : Два даемона racoon подключаются друг к другу, подтверждают, что они именно те, за кого себя выдают (используя секретный ключ, заданный вами, по умолчанию в файле /etc/racoon/psk.txt). Затем даемоны генерируют новый секретный ключ и используют его для шифрования трафика через VPN. Они периодически изменяют этот ключ, так что даже если атакующий сломает один из ключей (что теоретически почти невозможно) это не даст ему слишком много – он сломал ключ, который два даемона уже сменили на другой. Предварительный ключ(pre-shared key) не используется для шифрования трафика через VPN соединение это просто маркер, позволяющий управляющим ключами даемонам доверять друг другу. Права на файл psk.txt должны быть 0600 (т.е. запись и чтение только для root).

    IPsec состоит из двух протоколов:

    Encapsulated Security Payload (ESP), защищающей данные IP пакета от вмешательства третьей стороны путем шифрования содержимого с помощью симметричных криптографических алгоритмов (таких как Blowfish,3DES, AES).

    Authentication Header (AH), защищающий заголовок IP пакета от вмешательства третьей стороны и подделки путем вычисления криптографической контрольной суммы и хеширования полей заголовка IP пакета защищенной функцией хеширования. К пакету добавляется дополнительный заголовок с хэшем, позволяющий аутентификацию информации пакета.

ESP и AH могут быть использованы вместе или по отдельности, в зависимости от обстоятельств.

esp и ah - пакеты ipsec, формируются ядром после того как хосты, при помощи racoon, договорятся о ключе по протоколу isakmp (500/udp).

Режимы работы IPsec(транспортный, туннельный)

Существует два режима работы IPsec: транспортный режим и туннельный режим(когда в транспортном режиме работают только маршрутизаторы).

IPsec может быть использован или для непосредственного шифрования трафика между двумя хостами (транспортный режим); или для построения "виртуальных туннелей" между двумя подсетями, которые могут быть использованы для защиты соединений между двумя корпоративными сетями (туннельный режим). Туннельный режим обычно называют виртуальной частной сетью (Virtual Private Network, vpn).

В транспортном режиме шифруется (или подписывается) только информативная часть IP-пакета. Маршрутизация не затрагивается, так как заголовок IP пакета не изменяется (не шифруется). Транспортный режим как правило используется для установления соединения между хостами. Он может также использоваться между шлюзами, для защиты туннелей, организованных каким-нибудь другим способом (IP tunnel, GRE туннели и др.).

В туннельном режиме IP-пакет шифруется целиком. Для того, чтобы его можно было передать по сети, он помещается в другой IP-пакет. По существу, это защищённый IP-туннель. Туннельный режим может использоваться для подключения удалённых компьютеров к виртуальной частной сети или для организации безопасной передачи данных через открытые каналы связи (например, Интернет) между шлюзами для объединения разных частей виртуальной частной сети. В туннельном режиме инкапсулируется весь исходный IP пакет, и добавляется новый IP заголовок.

Если используется IPsec совместно с GRE туннели , который инкапсулирует исходный пакет и добавляет новый IP заголовок, логично использовать транспортный режим.

Режимы IPsec не являются взаимоисключающими. На одном и том же узле некоторые SA могут использовать транспортный режим, а другие - туннельный.

Security Associations (SA) . Для возможности проводить инкапсуляцию/декапсуляцию стороны участвующие в процессе обмена должны иметь возможность хранить секретные ключи, алгоритмы и IP адреса. Вся эта информация хранится в Ассоциациях Безопасности (SA), SA в свою очередь хранятся в Базе данных Ассоциаций Безопасности (SAD). Конфигурирование Security Association , позволяет задать например mode transport | tunnel | ro | in_trigger | beet - режим безопасной ассоциации. Соответственно, может принимать одно из значений, означающих транспортный, тоннельный, beet (Bound End-to-End Tunnel), оптимизации маршрута (route optimization) или in_trigger режимы. (последние два используются в контексте mobile ipv6).

Security Policy (SP) - политика безопасности, хранится в SPD (База данных политик безопасности). SA специфицирует, как IPsec предполагает защищать трафик, SPD в свою очередь хранит дополнительную информацию, необходимую для определения какой именно трафик защищать и когда. SPD может указать для пакета данных одно из трёх действий: отбросить пакет, не обрабатывать пакет с помощью IPSec, обработать пакет с помощью IPSec. В последнем случае SPD также указывает, какой SA необходимо использовать (если, конечно, подходящий SA уже был создан) или указывает, с какими параметрами должен быть создан новый SA. SPD является очень гибким механизмом управления, который допускает очень хорошее управление обработкой каждого пакета. Пакеты классифицируются по большому числу полей, и SPD может проверять некоторые или все поля для того, чтобы определить соответствующее действие. Это может привести к тому, что весь трафик между двумя машинами будет передаваться при помощи одного SA, либо отдельные SA будут использоваться для каждого приложения, или даже для каждого TCP соединения.

IPSec (сеть-сеть) между серверами FreeBSD

    Шаг 1 : Создание и тестирование "виртуального" сетевого подключения.

    • Настройте оба ядра с device gif . В версии FreeBSD поддержка gif включена в ядро.

      Отредактируйте /etc/rc.conf на маршрутизаторах и добавьте следующие строки (подставляя IP адреса где необходимо). A.B.C.D - реальный IP первого маршрутизатора, W.X.Y.Z - реальный IP второго маршрутизатора. # IPsec №1 gateway > ee /etc/rc.conf ... # IPsec to S through ISP_V gif_interfaces="gif0" # gifconfig_gif0="local-ip(A.B.C.D) remote-ip (W.X.Y.Z)" gifconfig_gif0="194.x.x.x 91.x.x.x" ifconfig_gif0="inet 10.26.95.254 192.168.1.254 netmask 255.255.255.255" static_routes="vpn vpn1" route_vpn="-net 192.168.1.0/24 192.168.1.254" route_vpn1="-net 192.168.35.0/24 192.168.1.254" # IPsec №2 gateway > ee /etc/rc.conf ... # IPsec na G through ISPGate gif_interfaces="gif0" # gifconfig_gif0="W.X.Y.Z A.B.C.D" gifconfig_gif0="91.x.x.x 194.x.x.x" ifconfig_gif0="inet 192.168.1.254 10.26.95.254 netmask 255.255.255.255" static_routes="vpn" route_vpn="-net 10.26.95.0/24 10.26.95.254"

      Отредактируйте скрипт брандмауэра на обеих маршрутизаторах и добавьте # IPFW ipfw add 1 allow ip from any to any via gif0 # PF set skip on gif0

Теперь ping должны ходить между сетями.

    Защита соединения с помощью IPsec

    Шаг 2 : Защита соединения с помощью IPsec

    • Настройте оба ядра: > sysctl -a | grep ipsec

      если команда ничего не вывела, значит нужно пересобрать ядра на обоих маршрутизаторах с параметрами

      # IPSEC for FreeBSD 7.0 and above options IPSEC options IPSEC_FILTERTUNNEL device crypto # IPSEC for FreeBSD 6.3 options IPSEC # IP security options IPSEC_ESP # IP security (crypto; define w/ IPSEC) options IPSEC_DEBUG # Необязательно. debug for IP security

      Устанавливаем порт ipsec-tools. > cd /usr/ports/security/ipsec-tools > make config > make install clean > ee /etc/rc.conf racoon_enable="YES" ipsec_enable="YES" > mkdir -p /usr/local/etc/racoon/cert > cp /usr/local/share/examples/ipsec-tools/racoon.conf /usr/local/etc/racoon/racoon.conf > cd /usr/local/etc/racoon/cert/

      Создаем SSL сертификаты на каждом хосте. Копируем с одной на другую файлики *.public. В принципе, имена ключей неважны, можно называть и по IP, с соответствующими расширениями.

      > openssl req -new -nodes -newkey rsa:1024 -sha1 -keyform PEM -keyout your.key1.private -outform PEM -out your.key1.pem > openssl x509 -req -in your.key1.pem -signkey your.key.private -out your.key1.public

    Создаем файл ipsec.conf. Настройка на шлюзе #1 (где есть публичный IP адрес A.B.C.D) для включения шифрования всего предназначенного W.X.Y.Z трафика. A.B.C.D/32 и W.X.Y.Z/32 это IP адреса и сетевые маски, определяющие сети или хосты, к которым будет применяться данная политика. В данном случае мы хотим применить их к трафику между этими двумя хостами. Параметр ipencap сообщает ядру, что эта политика должна применяться только к пакетам, инкапсулирующим другие пакеты. Параметр -P out сообщает, что эта политика применяется к исходящим пакетам, и ipsec – то, что пакеты будут зашифрованы.

Оставшаяся часть строки определяет, как эти пакеты будут зашифрованы. Будет использоваться протокол esp, а параметр tunnel показывает, что пакет в дальнейшем будет инкапсулирован в IPsec пакет. Повторное использование A.B.C.D и W.X.Y.Z предназначено для выбора используемых параметров безопасности, и наконец параметр require разрешает шифрование пакетов, попадающих под это правило.

Это правило соответствует только исходящим пакетам. Вам потребуется похожее правило, соответствующее входящим пакетам.

> ee /etc/ipsec.conf spdadd A.B.C.D/32 W.X.Y.Z/32 ipencap -P out ipsec esp/tunnel/A.B.C.D-W.X.Y.Z/require; spdadd W.X.Y.Z/32 A.B.C.D/32 ipencap -P in ipsec esp/tunnel/W.X.Y.Z-A.B.C.D/require;

Настройка на шлюзе #2 аналогична только меняются IP местами.

Настройка утилиты racoon

> ee /usr/local/etc/racoon/racoon.conf path include "/usr/local/etc/racoon"; path certificate "/usr/local/etc/racoon/cert/"; # following line activates logging & should deactivated later log debug; # если директива listen не задана, racoon слушает все доступные # адреса интерфейсов. listen { #isakmp::1 ; isakmp 202.249.11.124 ; #admin ; # administrative port for racoonctl. #strict_address; # requires that all addresses must be bound. } # описываем удалённый хост (на второй машине - идентично, # тока другой IP и ключи) remote 217.15.62.200 { exchange_mode aggressive,main; my_identifier asn1dn; peers_identifier asn1dn; # сертификаты этой машины certificate_type x509 "via.epia.public" "via.epia.private"; # сертификат удлённой машины peers_certfile x509 "test.su.public"; proposal { encryption_algorithm 3des; hash_algorithm sha1; authentication_method rsasig; dh_group 2 ; } } sainfo anonymous { pfs_group 2; encryption_algorithm 3des; authentication_algorithm hmac_sha1; compression_algorithm deflate; }

    Настройка пакетного фильтра PF, где esp_peers шлюз с которым создается шифрованный туннель. Разрешаем прохождение пакетов ESP и IPENCAP в обе стороны.

#pass IPSec pass in on $ext_if_a inet proto udp from { $esp_peers } to ($ext_if_a) port isakmp pass in on $ext_if_a inet proto esp from { $esp_peers } to ($ext_if_a) # pass out on $ext_if_a inet proto udp from { $esp_peers } to ($ext_if_a) port isakmp pass out on $ext_if_a inet proto esp from { $esp_peers } to ($ext_if_a)

Cмотрим логи /var/log/security и /var/log/messages.

Как только параметры безопасности установлены, вы можете просмотреть их используя setkey(8). Запустите

> /etc/rc.d/ipsec start > /usr/local/etc/rc.d/racoon start > setkey -D # список созданных защищенных каналов > setkey -DP # покажет список политик безопасности

на любом из хостов для просмотра информации о параметрах безопасности.

    Проверка работоспособности:

    ping между сетями должен работать

    Запускаем для прослушки физического интерфейса на котором построен туннель (а не виртуального gif0). В другом окне например ping -ем удаленную серую сеть (например, ping 192.168.1.11) tcpdump -i em0 -n host 91 .x.x.81 ... 16 :15 :54.419117 IP x.x.x.x >

tcpdump Linux примеры использования должен показывать ESP пакеты.

IPSec (сеть-сеть) между серверами Linux

# aptitude install ipsec-tools racoon

    Алгоритм настройки IPsec

    Настройка пакета racoon

    Создание политики безопасности

    Виртуальные интерфейсы. Они нужны для маршрутизации сетей находящихся в локальных сетях. Два соединенных сервера будут видеть себя без интерфейсов(иногда без них не заводится и между серверами, странно вообще-то).

Ниже приведены конфиги для случая с предопределёнными ключами.

> nano /etc/racoon/racoon.conf path include "/etc/racoon"; path pre_shared_key "/etc/racoon/psk.txt"; #path certificate "/etc/racoon/certs"; remote 10.5.21.23 { exchange_mode aggressive,main; doi ipsec_doi; situation identity_only; my_identifier address; #Определяет метод идентификации, который будет использоваться при проверке подлинности узлов. lifetime time 2 min; initial_contact on; proposal { encryption_algorithm 3des; hash_algorithm sha1; authentication_method pre_shared_key; # Определяет метод проверки подлинности, используемый при согласовании узлов. dh_group 2; } proposal_check strict; } sainfo anonymous # Отмечает, что SA может автоматически инициализировать соединение с любым партнёром при совпадении учётных сведений IPsec. { pfs_group 2; lifetime time 2 min ; encryption_algorithm 3des, blowfish 448, des, rijndael ; authentication_algorithm hmac_sha1, hmac_md5 ; compression_algorithm deflate ; }

Создадим политику безопасности

> nano pol.cfg #!/sbin/setkey -f flush; spdflush; spdadd 10.5.21.24 10.5.21.23 any -P out ipsec esp/transport//require; spdadd 10.5.21.23 10.5.21.24 any -P in ipsec esp/transport//require; > chmod +x pol.cfg > ./pol.cfg

Создадим выполняемый файл для создания интерфейсов и запустим его.

>nano tun.sh #!/bin/sh ip tunnel del tun0 ip tunnel add tun0 mode ipip remote 10.5.21.23 local 10.5.21.24 dev eth0 # создаем интерфейс tun0 и устанавливаем туннель # между хостами (здесь нужно использовать реальные IP адреса сетевых интерфейсов). ifconfig tun0 10.0.9.1 pointopoint 10.0.9.2 # назначаем интерфейсу IP адреса, для текущего хоста и для другого конца # туннеля (не обязательно). ifconfig tun0 mtu 1472 ifconfig tun0 up # ниже можно прописать нужные нам маршруты, например так route add -net ... netmask 255.255.255.0 gw ... route add -net ... netmask 255.255.255.0 gw ... > ./tun.sh

Для автоматической загрузки правил файл tun.sh правильно поместить для Debian в директорию /etc/network/if-up.d

Все IPSec тунель между сетями настроен.

iptables IPSec

$IPT -A INPUT -p udp -m udp -s xxx.xxx.xxx.xxx -d xxx.xxx.xxx.xx --dport 500 -j ACCEPT $IPT -A INPUT -p esp -j ACCEPT $IPT -A INPUT -p ah -j ACCEPT $IPT -A INPUT -p ipencap -j ACCEPT $IPT -A INPUT -p udp -m udp -s xxx.xxx.xxx.xxx -d xxx.xxx.xxx.xx --dport 4500 -j ACCEPT

IPsec «узел-узел» без виртуальных интерфесов

Задача . При помощи IPSec (pre_shared_key) соединить два сервера (Debian 5 и Debian 7). У обоих реальные IP. Никаких сетей пробрасывать не надо. Должен шифроваться трафик между этими IP. То есть строим транспортный режим (между двумя хостами).

Настройка сводится к двум пунктам

    Настройка пакета racoon

    Создание политики безопасности: нужно указать режим transport и any spdadd x.x.x.x/32 y.y.y.y/32 any -P out ipsec esp/transport//require; spdadd y.y.y.y/32 x.x.x.x/32 any -P in ipsec esp/transport//require;

IPSec (GRE) (узел-сеть) между Debian и Cisco

Задача: построить IPsec в туннельном режиме. Описание RFC протокола SIP сигнализация между поставщиком (Cisco) и клиентом (Debian 5) шифруется IPsec, а RTP минуя туннель идет кратчайшим маршрутом через обычный Интернет.

    Клиент tunnel-endpoint is: 193.xxx.xxx.xxx

    Сервер tunnel-endpoint is: 62.xxx.xxx.xxx

    Клиент Sip Server is: 193.xxx.xxx.xxx

    Сервер SIP Servers are: 62.xxx.237.xxx/26 and 62.xxx.246.xxx/26

да и перед настрокой туннеля (перед auto tun0) прописать pre-up modprobe ip_gre

# modprobe ip_gre

Скрипт для создания GRE туннели туннеля в Debian:

#!/bin/sh -e modprobe ip_gre #ip tunnel del tun0 ip tunnel add tun0 mode gre remote 62.xxx.xxx.xxx local 193.xxx.xxx.xxx dev eth0 ifconfig tun0 mtu 1472 ifconfig tun0 up route add -net 62.xxx.237.xxx netmask 255.255.255.192 dev tun0 route add -net 62.xxx.246.xxx netmask 255.255.255.192 dev tun0

Утилиты

    Для управления можно использовать утилиту racoonctl racoonctl show-sa esp

    Cписок созданных защищенных каналов > setkey -D

    список политик безопасности > setkey -DP

Мониторинг IPsec

Мониторинг IPsec в Debian 5.0 2.6.26-2-686-bigmem i686. В уровень детализации логов log notify или log debug устанавливается в файле racoon.conf.

# tail -F /var/log/syslog | grep racoon

IPSec Openswan

OpenSWAN начал разрабатываться как форк прекратившего в настоящее своё существование проекта FreeS/WAN (Free Secure Wide-Area Networking), релизы продолжают выпускаться под свободной GNU General Public License. В отличие от проекта FreeS/WAN, OpenSWAN разрабатывается не только специально под операционную систему GNU/Linux. OpenSWAN обеспечивает стек протоколов IpSec: AH и ESP для ядра Linux,а также инструментарий для управления ими.

OpenSWAN для ветки ядра 2.6 предоставляет встроенную, NETKEY реализацию IpSec, так и собственную KLIPS.

CentOS 6.6 поддерживает только Openswan в основных пакетах.

Задача . Создать шифрованный туннель между CentOS 6.6 и Debian 7.8 Wheezy. GRE туннели + Openswan (type=transport)

    Openswan будет шифровать наш трафик в транспортном режиме(host-to-host), не вмешиваясь в маршрутизацию. Установим пакеты на обоих серверах yum install openswan aptitude install openswan

    На обоих концах туннеля настраиваем Правила iptables . Открыть 500 порт, по которому идет обмен сертификатам и ключами. iptables -A INPUT -p udp --dport 500 -j ACCEPT iptables -A INPUT -p tcp --dport 4500 -j ACCEPT iptables -A INPUT -p udp --dport 4500 -j ACCEPT # Более строго выпишем правила для IPSec IPT ="/sbin/iptables" $IPT -A INPUT -p udp -s x.x.x.x -d x.x.x.x --dport 500 -m comment --comment "IpSec" -j ACCEPT $IPT -A INPUT -p tcp -s x.x.x.x -d x.x.x.x --dport 4500 -m comment --comment "IpSec" -j ACCEPT $IPT -A INPUT -p udp -s x.x.x.x -d x.x.x.x --dport 4500 -m comment --comment "IpSec" -j ACCEPT

    Подготовка конфигурационных файлов. Используемые файлы и директории / etc/ ipsec.d/ / etc/ ipsec.conf

    Проверка системы на правильность окружения для IPsec ipsec verify

    Добавить в конец файла sysctl.conf

    # IPSec Verify Compliant # Разрешить пересылку пакетов между интерфейсами для IPv4 net.ipv4.ip_forward = 1 # отключаем icmp redirect net.ipv4.conf.all.send_redirects = 0 net.ipv4.conf.all.accept_redirects = 0 net.ipv4.conf.default.send_redirects = 0 net.ipv4.conf.default.accept_redirects = 0

    Применим параметры ядра без перезагрузки

    Первым конфигурационным файлом является /etc/ipsec.conf. Задаем явно в разделе config setup config setup protostack =netkey plutoopts ="--perpeerlog" dumpdir =/ var/ run/ pluto/ nat_traversal =yes virtual_private =% v4:10.0.0.0/ 8 ,% v4:192.168.0.0/ 16 , % v4:172.16.0.0/ 12 ,% v4:25.0.0.0/ 8 ,% v6:fd00::/ 8 ,% v6:fe80::/ 10 oe =off #plutostderrlog=/dev/null

    В первую очередь вам необходимо сформировать ключи, используемые шлюзами для аутентификации. В Debian это ключ можно создать при инсталляции. Запускаем на обеих системах ipsec newhostkey, генерируя нужные нам ключи. ipsec newhostkey --output / etc/ ipsec.secrets ipsec showhostkey --left ipsec showhostkey --right

    Независимо от того, как вы сконфигурируете сервер, всегда рассматривайте вашу подсеть как расположенную «слева» (left), а подсеть, к которой доступ осуществляется дистанционно, сайт, как расположенный «справа» (right). Следующая конфигурация выполняется на сервере VPN на стороне Left. На другом сервере должен быть точно такие настройки для этого соединения. conn gagahost-to-miraxhost auto =start left =188 .x.x.x leftrsasigkey =0sN4vI6ooUyMyL ... right =91 .x.x.x rightrsasigkey =0sfAhuo4SQ0Qt ... type =transport scp / etc/ ipsec.conf admin@ 192.168.35.254:/ home/ admin/

Диагностика IPSec Openswan

Запуск сервиса и поиск возникающих проблем.

Openwan logs (pluto) : /var/log/auth.log /var/log/syslog /var/log/pluto/peer/a/b/c/d/a.b.c.d.log

Если на обоих серверах нет ошибок, то туннель должен сейчас подняться. Вы можете проверить туннель с помощью команды ping с следующим образом. Если туннель не поднят, то частная подсеть на стороне B не должна быть доступна со стороны А, т. е. команда ping не должна работать. После того, как туннель будет поднят, попробуйте команду ping для доступа к частной подсети на стороне B со стороны A. Это должно работать.

Кроме того, в таблице маршрутизации сервера должны появиться маршруты к частной подсети.

# ip route via dev eth0 src default via dev eth0

    Команды проверки состояний соединений: ipsec verify service ipsec status ip xfrm state list - управления SAD, возможности шире, чем у setkey ipsec addconn --checkconfig - проверка конфигурации ipsec auto --status - подробное состояние ip xfrm monitor

    Политики ipsec, согласно которым принимается решение какой трафик направлять в туннель ip xfrm pol show

    tcpdump Linux примеры использования запускаем для прослушки физического интерфейса на котором построен туннель (а не виртуального GRE). В другом окне например ping -ем удаленную серую сеть (например, ping 192.168.1.11). tcpdump должен показывать ESP пакеты. tcpdump -i em0 -n host 91 .x.x.81 ... 16 :15 :54.419117 IP x.x.x.x > 91 .x.x.81: ESP(spi =0x01540fdd,seq =0xa20) , length 92 ...

В наш компьютерный век человечество все больше отказывается от хранения информации в рукописном или печатном виде, предпочитая для документы. И если раньше крали просто бумаги или пергаменты, то сейчас взламывают именно электронную информацию. Сами же алгоритмы шифрования данных были известны еще с незапамятных времен. Многие цивилизации предпочитали зашифровывать свои уникальные знания, чтобы они могли достаться только человеку сведущему. Но давайте посмотрим, как все это отображается на нашем мире.

Что собой представляет система шифрования данных?

Для начала следует определиться с тем, что собой представляют криптографические системы вообще. Грубо говоря, это некий специальный алгоритм записи информации, который был бы понятен только определенному кругу людей.

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

Зачем это нужно?

Для чего все это придумывалось, наверное, объяснять не стоит. Посмотрите, ведь какие объемы знаний, оставшиеся от древних цивилизаций, сегодня находятся в зашифрованном виде. То ли древние не хотели, чтобы мы это узнали, то ли все это было сделано, чтобы человек смог ними воспользоваться только тогда, когда достигнет нужного уровня развития - пока что об этом можно только гадать.

Впрочем, если говорить о сегодняшнем мире, защита информации становится одной из самых больших проблем. Посудите сами, ведь сколько имеется документов в тех же архивах, о которых правительства некоторых стран не хотели бы распространяться, сколько секретных разработок, сколько новых технологий. А ведь все это, по большому счету, и является первоочередной целью так называемых хакеров в классическом понимании этого термина.

На ум приходит только одна фраза, ставшая классикой принципов деятельности Натана Ротшильда: «Кто владеет информацией, тот владеет миром». И именно поэтому информацию приходится защищать от посторонних глаз, дабы ей не воспользовался кто-то еще в своих корыстных целях.

Криптография: точка отсчета

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

Считается, что искусство сокрытия данных активно начало развиваться несколько тысячелетий назад до нашей эры. Первенство приписывают древним шумерам, царю Соломону и египетским жрецам. Только много позже появились те же рунические знаки и символы, им подобные. Но вот что интересно: иногда алгоритм шифрования текстов (а в то время шифровались именно они) был таков, что в той же один символ мог означать не только одну букву, но и целое слово, понятие или даже предложение. Из-за этого расшифровка таких текстов даже при наличии современных криптографических систем, позволяющих восстановить исходный вид любого текста, становится абсолютно невозможной. Если говорить современным языком, это достаточно продвинутые, как принято сейчас выражаться, симметричные алгоритмы шифрования. На них остановимся отдельно.

Современный мир: виды алгоритмов шифрования

Что касается защиты конфиденциальных данных в современно мире, отдельно стоит остановиться еще на тех временах, когда компьютеры были человечеству неизвестны. Не говоря уже о том, сколько бумаги перевели алхимики или те же тамплиеры, пытаясь скрыть истинные тексты об известных им знаниях, стоит вспомнить, что со времени возникновения связи проблема только усугубилась.

И тут, пожалуй, самым знаменитым устройством можно назвать немецкую шифровальную машину времен Второй мировой под названием «Энигма», что в переводе с английского означает «загадка». Опять же, это пример того, как используются симметричные алгоритмы шифрования, суть которых состоит в том, что шифровщик и дешифровальщик знают ключ (алгоритм), изначально примененный для сокрытия данных.

Сегодня такие криптосистемы используются повсеместно. Самым ярким примером можно считать, скажем, алгоритм являющийся международным стандартом. С точки зрения компьютерной терминологии, он позволяет использовать ключ длиной 256 бит. Вообще современные алгоритмы шифрования достаточно разнообразны, а разделить их условно можно на два больших класса: симметричные и асимметричные. Они, в зависимости от области назначения, сегодня применяются очень широко. И выбор алгоритма шифрования напрямую зависит от поставленных задач и метода восстановления информации в исходном виде. Но в чем же состоит разница между ними?

Симметричные и асимметричные алгоритмы шифрования: в чем разница

Теперь посмотрим, какое же кардинальное различие между такими системами, и на каких принципах строится их применение на практике. Как уже понятно, алгоритмы шифрования бывают связаны с геометрическими понятиями симметрии и асимметрии. Что это значит, сейчас и будет выяснено.

Симметричный алгоритм шифрования DES, разработанный еще в 1977 году, подразумевает наличие единого ключа, который, предположительно, известен двум заинтересованным сторонам. Зная такой ключ, нетрудно применить его на практике, чтобы прочитать тот же бессмысленный набор символов, приведя его, так сказать, в читабельный вид.

А что представляют собой асимметричные алгоритмы шифрования? Здесь применяются два ключа, то есть для кодирования исходной информации использует один, для расшифровки содержимого - другой, причем совершенно необязательно, чтобы они совпадали или одновременно находились у кодирующей и декодирующей стороны. Для каждой из них достаточно одного. Таким образом, в очень высокой степени исключается попадание обоих ключей в третьи руки. Однако, исходя из современной ситуации, для многих злоумышленников кражи такого типа особо проблемой и не являются. Другое дело - поиск именно того ключа (грубо говоря, пароля), который подойдет для расшифровки данных. А тут вариантов может быть столько, что даже самый современный компьютер будет обрабатывать их в течение нескольких десятков лет. Как было заявлено, ни одна из имеющихся в мире компьютерных систем взломать доступ к нему и получить то, что называется «прослушкой», не может и не сможет в течение ближайших десятилетий.

Наиболее известные и часто применяемые алгоритмы шифрования

Но вернемся в мир компьютерный. Что на сегодня предлагают основные алгоритмы шифрования, предназначенные для защиты информации на современном этапе развития компьютерной и мобильной техники?

В большинстве стран стандартом де-факто является криптографическая система AES на основе 128-битного ключа. Однако параллельно с ней иногда используется и алгоритм который хоть и относится к шифрованию с использованием открытого (публичного) ключа, тем не менее является одним из самых надежных. Это, кстати, доказано всеми ведущими специалистами, поскольку сама система определяется не только степенью шифрования данных, но и сохранением целостности информации. Что касается ранних разработок, к коим относится алгоритм шифрования DES, то он безнадежно устарел, а попытки его замены начали проводиться еще в 1997 году. Вот тогда-то на его основе и возник новый расширенный (Advanced) стандарт шифрования AES (сначала с ключом 128 бит, потом - с ключом 256 бит).

Шифрование RSA

Теперь остановимся на технологии RSA которая относится к системе асимметричного шифрования. Предположим, один абонент отправляет другому информацию, зашифрованную при помощи этого алгоритма.

Для шифрования берутся два достаточно больших числа X и Y, после чего вычисляется их произведение Z, называемое модулем. Далее выбирается некое постороннее число A, удовлетворяющее условию: 1< A < (X - 1) * (Y - 1). Оно обязательно должно быть простым, то есть не иметь общих делителей с произведением (X - 1) * (Y - 1), равным Z. Затем происходит вычисление числа B, но только так, что (A * B - 1) делится на (X - 1) * (Y - 1). В данном примере A - открытый показатель, B - секретный показатель, (Z; A) - открытый ключ, (Z; B) - секретный ключ.

Что происходит при пересылке? Отправитель создает зашифрованный текст, обозначенный как F, с начальным сообщением M, после чего следует A и умножение на модуль Z: F = M**A*(mod Z). Получателю остается вычислить несложный пример: M = F**B*(mod Z). Грубо говоря, все эти действия сводятся исключительно к возведению в степень. По тому же принципу работает и вариант с создание цифровой подписи, но уравнения тут несколько сложнее. Чтобы не забивать пользователю голову алгеброй, такой материал приводиться не будет.

Что же касается взлома, то алгоритм шифрования RSA ставит перед злоумышленником практически нерешаемую задачу: вычислить ключ B. Это теоретически можно было бы сделать с применением доступных средств факторинга (разложением на сомножители исходных чисел X и Y), однако на сегодняшний день таких средств нет, поэтому сама задача становится не то что трудной - она вообще невыполнима.

Шифрование DES

Перед нами еще один, в прошлом достаточно эффективный алгоритм шифрования с максимальной длиной блока 64 бита (символа), из которой значащими являются только 56. Как уже было сказано выше, эта методика уже устарела, хотя достаточно долго продержалась в качестве стандарта криптосистем, применяемых в США даже для оборонной промышленности.

Суть его симметричного шифрования заключается в том, что для этого применяется некая последовательность из 48 бит. При этом для операций используется 16 циклов из выборки ключей в 48 бит. Но! Все циклы по принципу действия аналогичны, поэтому на данный момент вычислить искомый ключ труда не составляет. К примеру, один из самых мощных компьютеров в США стоимостью более миллиона долларов «ломает» шифрование в течение примерно трех с половиной часов. Для машин рангом ниже на то, чтобы вычислить даже последовательность в максимальном ее проявлении, требуется не более 20 часов.

Шифрование AES

Наконец, перед нами самая распространенная и, как считалось до недавнего времени, неуязвимая система - алгоритм шифрования AES. Он сегодня представлен в трех модификациях - AES128, AES192 и AES256. Первый вариант применяется больше для обеспечения информационной безопасности мобильных устройств, второй задействован на более высоком уровне. Как стандарт, эта система была официально внедрена в 2002 году, причем сразу же ее поддержка была заявлена со стороны корпорации Intel, производящей процессорные чипы.

Суть ее, в отличие от любой другой симметричной системы шифрования, сводится к вычислениям на основе полиноминального представления кодов и операций вычисления с двумерными массивами. Как утверждает правительство Соединенных Штатов, для взлома ключа длиной 128 бит дешифратору, пусть даже самому современному, потребуется порядка 149 триллионов лет. Позволим себе не согласиться с таким компетентным источником. Компьютерная техника за последние сто лет сделала скачок, соизмеримый с так что особо обольщаться не стоит, тем более что сегодня, как оказалось, существуют системы шифрования и покруче, чем те, которые США объявили совершенно стойкими ко взлому.

Проблемы с вирусами и дешифровкой

Конечно же, речь идет о вирусах. В последнее время появились довольно специфичные вирусы-вымогатели, которые шифруют все содержимое жесткого диска и логических разделов на зараженном компьютере, после чего жертва получает письмо с уведомлением о том, что все файлы зашифрованы, а расшифровать их может только указанный источник после оплаты кругленькой суммы.

При этом, что самое важное, указывается, что при шифровании данных была применена система AES1024, то есть длина ключа в четыре раза больше ныне существующей AES256, а количество вариантов при поиске соответствующего дешифратора возрастает просто неимоверно.

А если исходить из заявления правительства США о сроке, отводимом для дешифрования ключа длиной 128 бит, то что можно сказать о времени, которое потребуется на поиск решения для случая с ключом и его вариантами длиной 1024 бита? Вот тут-то США и прокололись. Они ведь считали, что их система компьютерной криптографии совершенна. Увы, нашлись какие-то спецы (судя по всему, на постсоветском пространстве), которые превзошли «незыблемые» американские постулаты по всем параметрам.

При всем этом даже ведущие разработчики антивирусного ПО, в том числе «Лаборатория Касперского», специалисты, создавшие «Доктора Веба», корпорация ESET и многие другие мировые лидеры просто разводят руками, дескать, на расшифровку такого алгоритма попросту нет средств, умалчивая при этом о том, что и времени не хватит. Конечно, при обращении в службу поддержки предлагается отправить зашифрованный файл и, если есть, желательно его оригинал - в том виде, в каком он был до начала шифрования. Увы, даже сравнительный анализ пока не дал ощутимых результатов.

Мир, которого мы не знаем

Да что там говорить, если мы гонимся за будущим, не имея возможности расшифровать прошлое. Если посмотреть на мир нашего тысячелетия, можно заметить, что тот же римский император Гай Юлий Цезарь в некоторых своих посланиях использовал симметричные алгоритмы шифрования. Ну а если взглянуть на Леонардо да Винчи, так вообще становится как-то не по себе от одного осознания того, что в области криптографии этот человек, чья жизнь покрыта неким флером тайны, на века превзошел свою современность.

До сих пор многим не дает покоя так называемая «улыбка Джоконды», в которой есть что-то такое притягательное, чего современный человек понять не способен. Кстати сказать, на картине относительно недавно были найдены некие символы (в глазу, на платье и т. д.), которые явно свидетельствуют о том, что во всем этом содержится какая-то зашифрованная великим гением информация, которую сегодня, увы, извлечь мы не в состоянии. А ведь мы даже не упомянули о разного рода масштабных конструкциях, которые способны были перевернуть понимание физики того времени.

Конечно, некоторые умы склоняются исключительно к тому, что в большинстве случаев было использовано так называемое «золотое сечение», однако и оно не дает ключа ко всему тому огромному хранилищу знаний, которое, как считается, либо нам непонятно, либо потеряно навеки. По всей видимости, криптографам предстоит проделать еще неимоверную кучу работы, чтобы понять, что современные алгоритмы шифрования порой не идут ни в какое сравнение с наработками древних цивилизаций. К тому же, если сегодня существуют общепринятые принципы защиты информации, то те, которые использовались в древности, к сожалению, нам совершенно недоступны и непонятны.

И еще одно. Существует негласное мнение, что большинство древних текстов невозможно перевести только потому, что ключи к их дешифровке тщательно охраняются тайными обществами вроде масонов, иллюминатов и т. д. Даже тамплиеры оставили тут свой след. Что уж говорить о том, что до сих пор абсолютно недоступной остается библиотека Ватикана? Не там ли хранятся основные ключи к пониманию древности? Многие специалисты склоняются именно к этой версии, считая, что Ватикан намеренно утаивает эту информацию от общества. Так это или нет, пока не знает никто. Но одно можно утверждать совершенно точно - древние системы криптографии ни в чем не уступали (а может, и превосходили) тем, что используются в современном компьютерном мире.

Вместо послесловия

Напоследок стоит сказать, что здесь были рассмотрены далеко не все аспекты, связанные с нынешними криптографическими системами и методиками, которые они используют. Дело в том, что в большинстве случаев пришлось бы приводить сложные математические формулы и представлять вычисления, от которых у большинства пользователей просто голова кругом пойдет. Достаточно взглянуть на пример с описанием алгоритма RSA, чтобы сообразить, что все остальное будет выглядеть намного сложнее.

Тут главное - понять и вникнуть, так сказать, в суть вопроса. Ну а если говорить о том, что представляют собой современные системы, предлагающие хранить конфиденциальную информацию таким образом, чтобы она была доступна ограниченному кругу пользователей, здесь выбор невелик. Несмотря на наличие множества криптографических систем, те же алгоритмы RSA и DES явно проигрывают специфике AES. Впрочем, и большинство современных приложений, разработанных для совершенно разнящихся между собой операционных систем, используют именно AES (естественно, в зависимости от области применения и устройства). Но вот «несанкционированная» эволюция этой криптосистемы, мягко говоря, многих, особенно ее создателей, повергла в шок. Но в целом, исходя из того, что имеется на сегодняшний день, многим пользователям нетрудно будет понять, что такое криптографические системы шифрования данных, зачем они нужны и как работают.

По меткому определению аналитиков CNews, год 2005-й в России прошел под девизом «защищаемся от внутренних угроз». Те же тенденции отчетливо наблюдались и в прошедшем году. Учитывая недавние инциденты, связанные с кражей баз данных и их последующей свободной продажей, многие компании стали серьезнее задумываться о проблеме безопасности своих информационных ресурсов и разграничении доступа к конфиденциальным данным. Как известно, 100%-ная гарантия сохранности ценной информации практически невозможна, но технологически свести такие риски к минимуму можно и нужно. Для этих целей большинство разработчиков средств информационной безопасности предлагают комплексные решения, сочетающие шифрование данных с контролем сетевого доступа. Попробуем рассмотреть такие системы более детально.

На рынке средств защиты от несанкционированного доступа представлено достаточно много разработчиков программно-аппаратных комплексов шифрования для серверов, хранящих и обрабатывающих конфиденциальную информацию (Aladdin, SecurIT, "Физтехсофт" и т. д.). Разобраться в тонкостях каждого предлагаемого решения и выбрать наиболее подходящее подчас непросто. К сожалению, зачастую авторы сравнительных статей, посвященных шифросредствам, не учитывая специфики этой категории продуктов, проводят сравнение по удобству использования, богатству настроек, дружелюбности интерфейса и т. п. Такое сравнение оправдано, когда речь идет о тестировании Интернет-пейджеров или менеджеров закачек, но вряд ли приемлемо при выборе решения для защиты конфиденциальной информации.

Наверное, с этим утверждением мы не откроем Америку, но такие характеристики, как производительность, стоимость и многие другие не критичны при выборе системы шифрования. Та же производительность важна не для всех систем и не всегда. Скажем, если в организации пропускная способность локальной сети небольшая, но доступ к зашифрованной информации будут иметь только два сотрудника, пользователи вряд ли вообще заметят систему шифрования, даже самую «неторопливую».

Многие другие особенности и параметры таких программно-аппаратных комплексов также носят избирательный характер: для кого-то они критичны, а кому-то безразличны. Поэтому мы попробуем предложить альтернативный вариант сравнения средств защиты от несанкционированного доступа и утечки конфиденциальной информации - по наиболее важным и действительно ключевым параметрам.

Штирлиц, вам шифровка!

При выборе системы для защиты данных прежде всего стоит обратить внимание на то, какие алгоритмы шифрования в них используются. Теоретически, приложив достаточно усилий, злоумышленник может взломать любую криптографическую систему. Вопрос заключается лишь в том, сколько работы ему потребуется для этого проделать. В принципе фактически любая задача взлома криптографической системы количественно сравнима с поиском, выполняемым путем полного перебора всех возможных вариантов.

По мнению специалистов, любой современной криптографической системе вполне достаточно 128-битового уровня безопасности. Это означает, что для успешной атаки на такую систему потребуется как минимум 2128 шагов. Согласно закону Мура, адаптированному к криптографии, достаточно даже 110 или 100 бит, однако криптографических алгоритмов, рассчитанных на такие ключи, не существует.

Сам алгоритм должен быть максимально широко распространен. Никому не известные «самописные» алгоритмы не проанализированы специалистами в области криптографии и могут содержать опасные уязвимости. С учетом этого достаточно надежными могут быть признаны алгоритмы ГОСТ, AES, Twofish, Serpent с длиной ключа 128, 192 или 256 бит.

Отдельного рассмотрения заслуживают асимметричные алгоритмы шифрования. В них для шифрования и расшифрования используются разные ключи (отсюда и название). Эти ключи образуют пару и генерируются, как правило, самим пользователем. Для шифрования информации используется так называемый открытый ключ. Этот ключ общеизвестен, и любой желающий может зашифровать адресуемое пользователю сообщение с его помощью. Закрытый ключ используется для расшифрования сообщения и известен только самому пользователю, который хранит его в секрете.

Общепринятый способ распространения и хранения открытых ключей пользователей - цифровые сертификаты формата X.509. В простейшем случае цифровой сертификат - это своего рода электронный паспорт, который содержит информацию о пользователе (имя, идентификатор, адрес электронной почты и т. п.), об открытом ключе клиента, об Удостоверяющем центре, изготовившем сертификат, а также серийный номер сертификата, срок действия и т. д.

Удостоверяющий центр (УЦ) - это третья доверительная сторона, которая наделена высоким уровнем доверия пользователей и обеспечивает комплекс мероприятий для использования сертификатов доверяющими сторонами. По сути это компонент системы управления сертификатами, предназначенный для формирования электронных сертификатов подчиненных центров и пользователей, удостоверенных электронно-цифровой подписью УЦ. В простейшем случае используются так называемые самоподписанные сертификаты, когда пользователь сам выступает в роли своего удостоверяющего центра.

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

Помимо непосредственно алгоритмов шифрования стоит обратить внимание и на способ их реализации. Программно-аппаратный комплекс может иметь встроенные алгоритмы шифрования или использовать внешние подключаемые модули. Второй вариант предпочтительнее по трем причинам. Во-первых, можно повышать уровень безопасности в соответствии с растущими потребностями компании, используя более стойкие алгоритмы. Опять-таки, в случае изменения требований политики безопасности (например, если компании потребуется переход на сертифицированные криптопровайдеры) можно будет оперативно заменить имеющиеся алгоритмы шифрования без существенных задержек или сбоев в работе. Понятно, что в случае встроенного алгоритма это гораздо сложнее.

Второй плюс внешней реализации заключается в том, что такое шифросредство не подпадает под соответствующие законодательные ограничения на его распространение, в том числе экспортно-импортные, и не требует наличия соответствующих лицензий ФСБ у партнеров компании, занимающихся его распространением и внедрением.

В-третьих, не стоит забывать о том, что реализация алгоритма шифрования - далеко не тривиальная задача. Правильная реализация требует большого опыта. Скажем, ключ шифрования никогда не должен находиться в оперативной памяти компьютера в явном виде. В серьезных продуктах этот ключ разделяется на несколько частей, при этом на каждую из них накладывается случайная маска. Все операции с ключом шифрования выполняются по частям, а на итоговый результат накладывается обратная маска. Уверенности в том, что разработчик учел все эти тонкости при самостоятельной реализации алгоритма шифрования, к сожалению, нет.

Ключ от квартиры, где деньги лежат

Еще один фактор, влияющий на степень защищенности данных, - принцип организации работы с ключами шифрования. Здесь есть несколько вариантов, и перед выбором конкретной системы шифрования настоятельно рекомендуется поинтересоваться, как она устроена: где хранятся ключи шифрования, как они защищены и т. д. К сожалению, зачастую сотрудники компании-разработчика не в состоянии объяснить даже базовых принципов работы их продукта. Особенно это замечание относится к менеджерам по продажам: простейшие вопросы нередко ставят их в тупик. Пользователю же, решившему защитить свою конфиденциальную информацию, желательно разобраться во всех тонкостях.

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

Первый подход - мастер-ключ генерируется на основе некоторых входных данных и используется при шифровании данных. В дальнейшем для получения доступа к зашифрованной информации пользователь вновь предоставляет системе те же самые входные данные для генерации мастер-ключа. Сам мастер-ключ, таким образом, нигде не хранится. В качестве входных данных могут выступать пароль, какой-либо файл, сохраненный на внешнем носителе, и т. п. Основной недостаток этого способа - невозможность создать резервную копию мастер-ключа. Утрата любого компонента входных данных ведет к утрате доступа к информации.

Второй подход - мастер-ключ генерируется с использованием генератора случайных чисел. Затем он шифруется каким-либо алгоритмом и после этого сохраняется вместе с данными или же на внешнем носителе. Для получения доступа сначала расшифровывается мастер-ключ, а потом - сами данные. Для шифрования мастер-ключа целесообразно использовать алгоритм той же стойкости, что и для шифрования самих данных. Менее стойкие алгоритмы снижают безопасность системы, а использовать более стойкий бессмысленно, так как безопасность это не повышает. Такой подход позволяет создавать резервные копии мастер-ключа, которые можно в дальнейшем использовать для восстановления доступа к данным в случае форс-мажорных обстоятельств.

Как известно, надежность криптографической системы в целом определяется надежностью самого слабого ее звена. Злоумышленник всегда может атаковать наименее стойкий алгоритм из двух: шифрования данных или шифрования мастер-ключа. Рассмотрим эту проблему более подробно, имея в виду, что ключ, на котором происходит шифрование мастер-ключа, также получают на основе некоторых входных данных.

Вариант первый: парольный

Пользователь вводит некоторый пароль, на основе которого (с использованием, например, хэш-функции) генерируется ключ шифрования (рис. 1). Фактически надежность системы в этом случае определяется только сложностью и длиной пароля. Но надежные пароли неудобны: запомнить бессмысленный набор из 10-15 символов и вводить его каждый для получения доступа к данным не так просто, а если таких паролей несколько (допустим, для доступа к разным приложениям), то и вовсе нереально. Парольная защита также подвержена атакам методом прямого перебора, а установленный клавиатурный шпион легко позволит злоумышленнику получить доступ к данным.

Рис. 1. Шифрование мастер-ключа с использованием пароля.

Вариант второй: внешнее хранение

На внешнем носителе размещаются некоторые данные, используемые для генерации ключа шифрования (рис. 2). Простейший вариант - использовать файл (так называемый ключевой файл), находящийся на дискете (компакт-диске, USB-флэш-устройстве и т. п.) Этот способ надежнее варианта с паролем. Для генерации ключа служит не десяток символов пароля, а значительное количество данных, например, 64 или даже 128 байт.

Рис. 2. Шифрование мастер-ключа с использованием данных с внешнего носителя.

В принципе ключевой файл можно разместить и на жестком диске компьютера, но значительно безопасней хранить его отдельно от данных. Не рекомендуется в качестве ключевых файлов использовать файлы, создаваемые какими-либо общеизвестными приложениями (*.doc, *xls, *.pdf и т. д.) Их внутренняя структурированность может дать злоумышленнику дополнительную информацию. Например, все файлы, созданные архиватором WinRAR, начинаются с символов «Rar!» - это целых четыре байта.

Недостаток данного способа - возможность для злоумышленника легко скопировать файл и создать дубликат внешнего носителя. Таким образом, пользователь, даже на короткое время утративший контроль над этим носителем, фактически уже не может быть на 100% уверен в конфиденциальности своих данных. В качестве внешнего носителя иногда применяются электронные USB-ключи или смарт-карты, но при этом данные, используемые для генерации ключа шифрования, просто сохраняются в памяти этих носителей и так же легко доступны для считывания.

Вариант третий: защищенное внешнее хранение

Данный способ во многом схож с предыдущим. Важное его отличие в том, что для получения доступа к данным на внешнем носителе пользователь обязательно должен ввести PIN-код. В качестве внешнего носителя используются токены (электронные USB-ключи или смарт-карты). Данные, используемые для генерации ключа шифрования, размещаются в защищенной памяти токена и не могут быть прочитаны злоумышленником без знания соответствующего PIN-кода (рис. 3).

Рис. 3. Шифрование мастер-ключа с использованием защищенного внешнего носителя.

Утрата токена еще не означает раскрытия самой информации. Для защиты от прямого подбора PIN-кода ставится аппаратная временная задержка между двумя последовательными попытками или аппаратное же ограничение на количество неправильных попыток ввода PIN-кода (например, 15), после чего токен просто блокируется.

Поскольку токен может использоваться в разных приложениях, а PIN-код один и тот же, можно обманным путем вынудить пользователя ввести свой PIN-код в подложной программе, после чего считать необходимые данные из закрытой области памяти токена. Некоторые приложения кэшируют значение PIN-кода в рамках одного сеанса работы, что также несет в себе определенный риск.

Вариант четвертый: смешанный

Возможен вариант, когда для генерации ключа шифрования одновременно используются пароль, ключевой файл на внешнем носителе и данные в защищенной памяти токена (рис. 4). Такой способ довольно сложен в повседневном использовании, поскольку требует от пользователя дополнительных действий.

Рис. 4. Шифрование мастер-ключа с использованием нескольких компонентов.

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

Вариант пятый: с асимметричным шифрованием

Отдельного рассмотрения заслуживает один подход к организации безопасного хранения мастер-ключа, лишенный основных недостатков описанных выше вариантов. Именно этот способ представляется нам оптимальным.

Дело в том, что современные токены (рис. 5) позволяют не только хранить в закрытой памяти данные, но выполняют аппаратно целый ряд криптографических преобразований. Например, смарт-карты, а также USB-ключи, представляющие собой полнофункциональные смарт-карты, а не их аналоги, реализуют асимметричные алгоритмы шифрования. Примечательно, что при этом пара открытый - закрытый ключ генерируется также аппаратно. Важно, что закрытый ключ на смарт-картах хранится как write-only, т. е. он используется операционной системой смарт-карты для криптографических преобразований, но не может быть прочитан или скопирован пользователем. Фактически пользователь сам не знает свой закрытый ключ - он только им обладает.

Данные, которые необходимо расшифровать, передаются операционной системе смарт-карты, аппаратно ею расшифровываются с помощью закрытого ключа и передаются обратно в расшифрованном виде (рис. 6). Все операции с закрытым ключом возможны только после ввода пользователем PIN-кода смарт-карты. Такой подход успешно используется во многих современных информационных системах для аутентификации пользователя. Применим он и для аутентификации при доступе к зашифрованной информации.

Рис. 6. Шифрование мастер-ключа с использованием асимметричного алгоритма шифрования.

Мастер-ключ шифруется с помощью открытого ключа пользователя. Для получения доступа к данным пользователь предъявляет свою смарт-карту (или USB-ключ, являющийся полнофункциональной смарт-картой) и вводит ее PIN-код. Затем мастер-ключ аппаратно расшифровывается с помощью закрытого ключа, хранящегося на смарт-карте, и пользователь получает доступ к данным. Такой подход сочетает в себе безопасность и удобство использования.

В первых четырех вариантах очень важен выбор способа генерации ключа шифрования на основе пароля и/или данных с внешнего носителя. Уровень безопасности (в криптографическом смысле), обеспечиваемый этим способом, должен быть не ниже, чем уровень безопасности остальных компонентов системы. Скажем, вариант, когда мастер-ключ просто хранится на внешнем носителе в инвертированном виде, крайне уязвим и небезопасен.

Современные токены поддерживают асимметричные алгоритмы с длиной ключа 1024 или 2048 бит, обеспечивая тем самым соответствие надежности алгоритма шифрования мастер-ключа и алгоритма шифрования самих данных. Аппаратное ограничение на количество неправильных попыток ввода PIN-кода нивелирует риск его подбора и позволяет применять достаточно простой для запоминания PIN-код. Использование одного устройства с несложным PIN-кодом повышает удобство без ущерба для безопасности.

Создать дубликат смарт-карты не может даже сам пользователь, так как невозможно скопировать закрытый ключ. Это также позволяет без опасения использовать смарт-карту совместно с любыми другими программами.

Техподдержку вызывали?

Есть еще один критерий выбора, который зачастую остается без внимания, но при этом относится к разряду критических. Речь идет о качестве технической поддержки.

Не вызывает сомнения, что защищаемая информация имеет высокую ценность. Быть может, ее утрата принесет меньший вред, чем публичное раскрытие, но определенное неудобство будет иметь место в любом случае. Оплачивая продукт, вы в числе прочего платите и за то, что он будет нормально функционировать, а в случае сбоя вам оперативно помогут разобраться в проблеме и устранить ее.

Основная сложность заключается в том, что заранее оценить качество техподдержки довольно сложно. Ведь существенную роль служба техподдержки начинает играть на поздних стадиях внедрения, на этапе опытной эксплуатации и по завершении внедрения, в процессе сопровождения системы. Критериями качества технической поддержки можно считать время реакции на запрос, полноту ответов и компетентность специалистов. Рассмотрим их более подробно.

Зачастую эквивалентом качества работы службы технической поддержки считается скорость реакции на запрос. Тем не менее оперативные, но неправильные рекомендации могут принести значительно больший вред, чем простое их отсутствие.

Представляется разумным отдавать предпочтение российским разработкам или по крайней мере зарубежным фирмам, имеющим представительство в России. Разговаривая со специалистом на родном языке, вы скорее поймете друг друга. Если продукт иностранный, будьте готовы к возможным временным задержкам. Это может происходить потому, что ваши вопросы будут переводиться на, скажем, английский, а ответы разработчика - обратно на русский. Качество перевода оставим на совести специалистов техподдержки. Нужно учитывать и то, что у зарубежного поставщика может не быть круглосуточной поддержки, а в результате из-за разницы во времени у вас будет, например, всего один час в день, чтобы задать вопрос.

Списки частых вопросов (FAQ) могут стать источником дополнительной информации не только о самом продукте, но и о компетентности специалистов, работающих в компании. Например, отсутствие такого раздела наводит на мысль о непопулярности данного продукта или об отсутствии в организации специалистов, занимающихся техподдержкой и способных написать базу знаний по обращениям пользователей. Забавно, но на некоторых сайтах в ответах на частые вопросы встречаются ошибки, в том числе и в названии самого продукта.

Выхожу один я на дорогу...

Как видно, в процессе выбора можно зайти достаточно далеко. Наверняка у каждого найдутся свои собственные, важные именно для него критерии сравнения. В конце концов никто не запрещает сравнивать длительность гарантийных сроков, качество упаковки и соответствие цветовой гаммы брэнда компании-производителя корпоративному стилю вашей организации. Главное - правильно расставить весовые коэффициенты.

В любом случае прежде всего нужно трезво оценивать угрозы и критичность данных, а средства обеспечения безопасности желательно выбирать, руководствуясь тем, насколько успешно они справляются со своей основной задачей - обеспечением защиты от несанкционированного доступа. В противном случае деньги лучше потратить на менеджер закачек из Интернета или на "пасьянсы".

Количество людей, которые активно пользуются интернетом растет, как на дрожжах: на работе для решения корпоративных целей и администрирования, дома, в общественных местах. Распространение получают Wi-Fi сети и оборудование, позволяющее беспрепятственно получать доступ к интернету.

Вай фай сеть обладает зашитой в виде пароля, не зная который, подключиться к конкретной сети будет практически невозможно, кроме общественных сетей (кафе, рестораны, торговые центры, точки доступа на улицах) . «Практически» не стоит понимать в буквальном смысле: умельцев, способных «вскрыть» сеть и получить доступ не только к ресурсу роутера, но и к передаваемым внутри конкретной сети данным, достаточно.

Но в этом вступительном слове мы поговорили о подключении к wi-fi — аутентификации пользователя (клиента), когда клиентское устройство и точка доступа обнаруживают друг друга и подтверждают, что могут общаться между собой.

Варианты аутентификации :

  • Open - открытая сеть, в которой все подключаемые устройства авторизованы сразу
  • Shared - подлинность подключаемого устройства должна быть проверена ключом/паролем
  • EAP - подлинность подключаемого устройства должна быть проверена по протоколу EAP внешним сервером

Шифрование — это алгоритм скремблирования (scramble - шифровать, перемешивать) передаваемых данных, изменение и генерация ключа шифрования

Для оборудования wifi были разработаны различные типы шифрования, дающие возможность защищать сеть от взлома, а данные от общего доступа.

На сегодняшний день выделяются несколько вариантов шифрования. Рассмотрим каждый из них подробнее.

Выделяются и являются самыми распространенными следующие типы:

  • OPEN;
  • WPA, WPA2;

Первый тип, именуемый не иначе, как OPEN, все требуемую для познания информацию содержит в названии. Зашифровать данные или защитить сетевое оборудование такой режим не позволит, потому как точка доступа будет являться при условии выбора такого типа постоянно открытой и доступной для всех устройств, которыми она будет обнаружена. Минусы и уязвимости такого типа «шифрования» очевидны.

Если сеть открыта, это не значит, что любой может с ней работать. Чтобы пользоваться такой сетью и передавать в ней данные, нужно совпадение используемого метода шифрования. И еще одно условие пользования такой сетью отсутствие MAC-фильтра, который определяет MAC-адреса пользователей, для того, что бы распознать каким устройствам запрещено или разрешено пользоваться данной сетью

WEP

Второй тип, он же WEP, уходит корнями в 90-е годы прошлого века, являясь родоначальником всех последующих типов шифрования. Wep шифрование сегодня – слабейший из всех существующих вариантов организации защиты. Большинство современных роутеров, создаваемых специалистами и учитывающих интересы конфиденциальности пользователей, не поддерживают шифрование wep.

Среди минусов, вопреки факту наличия хоть какой-то защиты (в сравнении с OPEN), выделяется ненадежность: она обусловлена кратковременной защитой, которая активируется на определенные интервалы времени. По истечении этого промежутка, пароль к вашей сети можно будет легко подобрать, а ключ wep будет взломан за время до 1 минуты. Это обусловлено битностью wep ключа, которая составляет в зависимости от характеристик сетевого оборудования от 40 до 100 бит.

Уязвимость wep ключа заключается в факте передачи частей пароля в совокупности с пакетами данных. Перехват пакетов для специалиста – хакера или взломщика – задача, легкая для осуществления. Важно понимать и тот факт, что современные программные средства способны перехватывать пакеты данных и созданы специально для этого.

Таким образом, шифрование wep – самый ненадежный способ защиты вашей сети и сетевого оборудования.

WPA, WPA2

Такие разновидности – самые современные и совершенными с точки зрения организации зашиты на данный момент. Аналогов им не существует. Возможность задать любую удобную пользователю длину и цифробуквенную комбинацию wpa ключа довольно затрудняет жизнь желающим несанкционированно воспользоваться конкретной сетью или перехватить данные этой сети.

Данные стандарты поддерживают различные алгоритмы шифрования, которые могут передаваться после взаимодействия протоколов TKIP и AES. Тип шифрования aes является более совершенным протоколом, чем tkip, и большинством современных роутеров поддерживается и активно используется.

Шифрование wpa или wpa2 – предпочтительный тип как для домашнего использования, так и для корпоративного. Последний дает возможность применения двух режимов аутентификации: проверка паролей для доступа определенных пользователей к общей сети осуществляется, в зависимости от заданных настроек, по режиму PSK или Enterprise.

PSK предполагает доступ к сетевому оборудованию и ресурсам интернета при использовании единого пароля, который требуется ввести при подключении к роутеру. Это предпочтительный вариант для домашней сети, подключение которой осуществляется в рамках небольших площадей определенными устройствами, например: мобильным, персональным компьютером и ноутбуком.

Для компаний, имеющих солидные штаты сотрудников, PSK является недостаточно удобным режимом аутентификации, потому был разработан второй режим – Enterprise. Его использование дает возможность применения множества ключей, который будут храниться на особом выделенном сервере.

WPS

По-настоящему современная и , делает возможным подключение к беспроводной сети при помощи одного нажатия на кнопку. Задумываться о паролях или ключах бессмысленно, но стоит выделить и учитывать ряд серьезных недостатков, касающихся допуска к сетям с WPS.

Подключение посредством такой технологии осуществляется при использовании ключа, включающего в себя 8 символов. Уязвимость типа шифрования заключается в следующем: он обладает серьезной ошибкой, которая взломщикам или хакерам позволяет получить доступ к сети, если им доступны хотя бы 4 цифры из восьмизначной комбинации. Количество попыток подбора пароля при этом составляет порядка нескольких тысяч, однако для современных программных средств это число – смешное. Если измерять процесс форсирования WPS во времени, то процесс займет не более суток.

Стоит отметить и тот факт, что данная уязвимость находиться на стадии совершенствования и поддается исправлению, потому в последующих моделях оборудования с режимом WPS стали внедряться ограничения на количество попыток входа, что существенно затруднило задачу несанкционированного доступа для заинтересованных в этом лиц.

И тем не менее, чтобы повысить общий уровень безопасности, опытные пользователи рекомендуют принципиально отказываться от рассмотренной технологии.

Подводя итоги

Самой современной и по-настоящему надежной методикой организации защиты сети и данных, передаваемых внутри нее, является WPA или ее аналог WPA2.

Первый вариант предпочтителен для домашнего использования определенным числом устройств и пользователей.

Второй, обладающий функцией аутентификации по двум режимам, больше подходит для крупных компаний. Применение его оправдано тем, что при увольнении сотрудников нет необходимости в смене паролей и ключей, потому как определенное количество динамических паролей хранятся на специально выделенном сервере, доступ к которому имеют лишь текущие сотрудники компании.

Следует отметить, что большинство продвинутых пользователей отдают предпочтение WPA2 даже для домашнего использования. С точки зрения организации защиты оборудования и данных, такой метод шифрования является самым совершенным из существующих на сегодняшний день.

Что касается набирающего популярность WPS, то отказаться от него – значит в определенной мере обезопасить сетевое оборудование и информационные данные, передаваемые с его помощью. Пока технология не развита достаточно и не обладает всеми преимуществами, например, WPA2, от ее применения рекомендуется воздержаться вопреки кажущейся простоте применения и удобству. Ведь безопасность сети и передаваемых внутри нее информационных массивов – приоритет для большинства пользователей.