• IDEA. Этот шифр обладает ключом длиной 128 бит — значительно больше, чем использует DES. В то время как обладающая серьезной мотивацией и финансированием организация или большая команда хакеров может взломать закодированное DES-сообщение, большое пространство ключей делает неосуществимой атаку на IDEA по методу грубой силы. IDEA был разработан как шифр, неуязвимый для линейного и дифференциального криптоанализа. IDEA запатентован в Европе и США.
Blowfish. Этот шифр может использовать ключ длиной от 32 до 448 бит, позволяя выбрать степень секретности сообщения.
3.1.4. Однонаправленные функции
При наборе пароля для входа в Windows 2000, он шифруется и сравнивается с хранимым зашифрованным значением пароля. Пароль сохраняется при помощи однонаправленной функции (one-way function), также называемой хэш (hash), trap-door, digest или fingerprint1.
Хэш-функции также могут применяться для других целей. Например, можно использовать хэш-функцию, чтобы создать «отпечатки пальцев» файлов (создать цифровые отпечатки пальцев, или хэш-значение, которое будет уникально для данного файла). Хэш-функция может давать результат, который будет гораздо меньше, чем входной текст, хэширование занимающего много мегабайтов документа текстового процессора, например, может дать 128-разрядное число. Хэш-значение также уникально для файла, который его породил; практически невозможно создать другой файл, который произвел бы то же хэш-значение.
Одна из особенностей хэш-функций (особенно дающих короткие хэш-значения) — это то, что все хэш-значения равновероятны. Следовательно, практически невозможно создать другой файл хэш-значение для которого совпадет с имеющимся.
Некоторым хэш-функциям требуется ключ, другим — нет. Хэш-функция с ключом может вычисляться только кем-либо (или чем-либо), имеющим этот ключ.
3.1.5. Шифрование с открытым ключом
В то время как симметричные шифры используют один ключ для зашифровки и расшифровки сообщений, шифрование с открытым ключом (public key encryption), или шифр с открытым ключом (public key cipher), использует для расшифровки ключ, отличный от использованного при шифровании. Это сравнительно новая разработка в криптографии, и она решает многие давнишние проблемы систем криптографии, такие как способ передачи секретных ключей в первый раз.
Проблема симметричных шифров состоит в следующем: и отправитель, и получатель должен иметь один и тот же ключ для того, чтобы обмениваться зашифрованными сообщениями через небезопасный канал передачи данных. Если две стороны решат обмениваться закрытыми сообщениями или если между двумя устройствами в компьютерной сети или двумя программами должен быть установлен безопасный канал, две стороны коммуникации должны принять решение об общем ключе. Каждая сторона легко может выбрать ключ, но у этой стороны не будет никакого способа отправить этот ключ другой стороне, не подвергаясь риску перехвата ключа по дороге.
При использовании шифра с открытым ключом один ключ (открытый ключ, public key) используется для шифрования сообщения, а другой ключ (закрытый ключ, private key) — это единственный ключ, который может расшифровать сообщение. Кто угодно, имея ключ, может зашифровать сообщение, расшифровать которое может только конкретный пользователь. Безопасные шифры с открытым ключом страдают от одной проблемы — они медленны, гораздо медленнее, чем симметричные шифры. Работа хорошего шифра с открытым ключом может отнять в 1000 раз больше времени для зашифровки одного и того же количества данных, чем у хорошего симметричного шифра.
Хотя системы открытого/закрытого ключа гораздо медленнее симметричных систем, они четко решают проблему, от которой страдали симметричные криптосистемы. Когда двум людям (или устройствам) нужно установить безопасный канал для передачи данных, один из них может просто взять секретный ключ и зашифровать этот секретный ключ при помощи открытого ключа другой стороны. Зашифрованный ключ затем отправляется другому участнику коммуникации, и даже если этот ключ будет перехвачен, только другой участник сможет расшифровать секретный ключ при помощи своего закрытого ключа. Коммуникация между двумя сторонами затем может продолжаться с использованием симметричного шифра и этого секретного ключа. Система, которая использует как симметричное шифрование, так и шифрование с открытым ключом, называется гибридной криптосистемой (hybrid cryptosystem).
3.2. Применение шифрования
Шифрование можно использовать для защиты следующих типов данных в сети:
• закрытая передача данных;
• безопасное хранение файлов;
• аутентификация пользователя или компьютера;
• безопасный обмен паролями.
Следует шифровать любые данные, содержащие значимую или частную информацию, проходящие через небезопасные каналы передачи данных, такие как радио, телефонная сеть или Интернет. Используйте шифрование файловой системы для защиты значимых данных, когда возможности операционной системы не действуют (когда был удален жесткий диск или заменена операционная система).
3.2.1. Безопасное хранение файлов
Шифрование может быть использовано для защиты данных в устройстве хранения, например данных на жестком диске. Во всех реализациях UNIX и Windows NT существует много сложных средств обеспечения безопасности. Лучший подход к безопасности — предоставить шифрование и расшифровку файлов операционной системе. Windows 2000 поставляется с Encrypting File System (шифрованная файловая система, EFS), которая будет шифровать все файлы на вашем жестком диске, даже временные файлы, созданные используемыми вами приложениями.
Для того чтобы использовать EFS секретно, необходимо предоставить криптографический ключ при запуске компьютера или использовать ее со смарт-картой, иначе же можно считать файлы на жестком диске обычными, незашифрованными файлами. Это не защитит файлы от доступа во время работы операционной системы — для чего существуют средства обеспечения безопасности операционной системы, — но это сохранит данные в безопасности, даже если кто-нибудь украдет жесткий диск.
3.2.2. Аутентификация пользователя или компьютера
Помимо сохранения секретности (либо при передаче, либо при хранении), шифрование можно использовать почти в противоположных целях — для проверки идентичности. Шифрование может провести аутентификацию входящих в систему компьютера пользователей, гарантировать, что загружаемое из Интернета программное обеспечение приходит из надежного источника и что лицо, отправившее сообщение, в действительности то, за которое оно себя выдает.
При входе в операционную систему Microsoft, например Windows 95, Windows NT или Windows 2000, операционная система не сравнивает введенный пароль с хранимым паролем. Вместо этого она шифрует пароль при помощи однонаправленной криптографической функции и затем сравнивает результат с хранящимся результатом. Другие операционные системы, такие как UNIX и OS/2, работают точно так же.
Храня только криптографическое хэш-значение пароля пользователя, операционная система затрудняет хакерам возможность получения всех паролей системы при получении
3.2.3. Цифровые подписи
Обычно шифрование с открытым ключом используется для передачи секретных сообщений, зашифрованных при помощи открытого ключа, и последующей расшифровки их при помощи закрытого ключа.
Поскольку назначение цифровой подписи состоит не в том, чтобы утаить информацию, а в том, чтобы подтвердить ее, закрытые ключи зачастую используются для шифрования хэш-значения первоначального документа, и зашифрованное хэш-значение присоединяется к документу или отправляется вместе с ним. Этот процесс занимает гораздо меньше вычислительного времени при генерации или проверке хэш-значения, чем шифрование всего документа, и при этом гарантирует, что документ подписал владелец закрытого ключа.
Электронная почта Интернета проектировалась без учета безопасности. Сообщения не защищены от нелегального просмотра на промежуточных хостах Интернета, и нет гарантии, что сообщение в действительности пришло от того лица, которое указано в поле From электронной почты. Сообщения групп новостей Интернета страдают от той же проблемы: невозможно в действительности сказать, от кого на самом деле пришло сообщение. Можно зашифровать тело сообщения, чтобы справиться с первой проблемой, а цифровые подписи справляются со второй.
Цифровые подписи полезны, потому что проверить подпись может каждый, а создать ее может только лицо с закрытым ключом. Разница между цифровой подписью и сертификатом в том, что можно проверить подлинность сертификата в центре сертификации.
3.2.4. Безопасный обмен паролями
Большинство сетевых операционных систем (в том числе Windows 2000 и все современные версии UNIX) защищают имя пользователя и пароль при входе в систему посредством их шифрования перед отправкой в сеть для аутентификации.
Чтобы одни и те же зашифрованные данные не передавались каждый раз, клиент также может включить какую-то дополнительную информацию, например время отправки запроса на вход в систему. При таком способе сетевые идентификационные данные никогда не будут отправляться через локальную сеть или телефонные линии в незащищенном виде. Тем не менее Windows 2000 принимает незашифрованные пароли от старых сетевых клиентов LAN Manager.