Архивы: по дате | по разделам | по авторам

Репортаж с чистой совестью

Архив
автор : Максим Отставнов   16.02.1999

Если бы у лирического героя, который пишет от моего имени в "Компьютерру", была совесть, она оставалась бы не вполне чистой несколько дней после cдачи статьи "Шестой", опубликованной в #6 [284] за этот год. Дело в том, что н

Если бы у лирического героя, который пишет от моего имени в "Компьютерру", была совесть, она оставалась бы не вполне чистой несколько дней после cдачи статьи "Шестой", опубликованной в #6 [284] за этот год. Дело в том, что на тот момент "международный" релиз описываемого в статье продукта PGP 6.0 еще не состоялся.


   Так что фактически статья могла быть полезна только либо обладателям копий "американской" PGP 6.0 freeware, непонятными (а точнее, слишком понятными) путями оказавшихся разбросанными по серверам во всех странах, либо пользователям "пиратской" версии PGP 6.0 for Desktop Security, присутствующей, например, на широко продающемся сейчас в Москве бутлеге McAffee Office. Кстати, владельцы бутлега подвергали (и подвергают) себя некоторому риску (см. врезку).

 
   Внимание: ошибка!
   При реализации процедуры свертки/расширения пароля в PGPdisk 6.0.0 разработчики допустили ошибку, резко снижающую стойкость продукта. Степень защиты тома PGPdisk, созданного с помощью этой версии, может быть существенно ниже заявленных 128 бит.
   В версии 6.0.2 (и ее "международном" клоне 6.0.2i) эта ошибка исправлена.
   Форматы томов 6.0.0 и 6.0.2 оказались несовместимыми. Версия 6.0.2 содержит модуль Помощник конвертации томов, преобразующий тома 6.0.0 в тома 6.0.2. Он запускается автоматически и автоматически же ищет тома старого формата при первом запуске программы. Впоследствии, если понадобится, Помощник конвертации может быть запущен вручную, для чего нужно выбрать пункт Convert pre-6.0.2 PGPdisks меню File программы PGPdisk.
   Получивший распространение в России "пиратский" диск McAffee Office содержит PGP for Personal Privacy 6.0.0 с ошибкой; использование приложения PGPdisk из этой поставки в реальных ситуациях не рекомендуется. (А в каких ситуациях я бы порекомендовал использовать контрафактный софт?)


   Четвертое февраля принесло бы ему (лирическому герою) облегчение: на сервере ftp.pgpi.com появились исходные коды PGP 6.0.2i для Windows и Macintosh, и я надеюсь, что к моменту выхода этого выпуска "Терры" на www.pgpi.com появятся также дистрибутивные комплекты с исполняемым кодом. Так что ничего вроде бы не мешает исполнить данное в той статье обещание - отдельно и подробно рассказать о приложении PGPdisk, входящем в состав PGP 6.0.2i.

   В объемной публикации, посвященной линии продуктов PGP (тема "Просто приятная приватность", #48 [255] от 1 декабря 1997 года), мы лишь вскользь упомянули PGPdisk. На то был ряд веских причин.

   Ранние версии (1.х и 2.х) PGPdisk являли собой пример успешной реализации маркетингового приема, известного как хукинг (hooking) - "притягивание" популярной торговой марки к продуктам и услугам, имеющим малое (или никакого) отношение к продуктам, прославившим марку (сделавшим ее brand, то есть "звучной").

   По сути дела, они были побочным продуктом интереса ряда членов команды PGP (не буду показывать пальцем на Уилла Прайса (Will Price) и Колина Плама (Colin Plumb)) к задаче шифрования/расшифровки содержимого томов на лету (а именно эту задачу решает PGPdisk).

   Ранние версии PGPdisk хоть и пользовались успехом, но не обладали характеристиками, прославившими PGP.
  • PGPdisk не использовал криптографию с открытым ключом и архитектуру "сети доверия", которые сделали PGP лидером в криптоотрасли;
  • исходные коды PGPdisk не были опубликованы для независимой экспертизы;
  • PGPdisk никак не был интегрирован с другими приложениями PGP.

       Кроме того:
  • PGPdisk долгое время существовал только в версии для Macintosh;
  • не существовало "международного" (свободно и легально распространяемого за пределами США и Канады) релиза PGPdisk.

       В версии 6.0 все это поменялось, что и дает повод к "репортажу", который вы читаете. К сожалению, у меня под рукой нет "Мака", поэтому все нижеследующее относится к версии PGP 6.0.2i для Windows 9x/NT. Сейчас PGP 6.0.2 (и 6.0.2i) существует в реализации для двух названных платформ; версия для открытых систем должна появиться в этом квартале.

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

       PGPdisk, как опция, устанавливается при установке PGP 6.0.х. Вы можете установить основные модули PGP и встраиваемые модули для различных почтовых приложений, не устанавливая PGPdisk, но не можете установить PGPdisk, не поставив основные модули. Точнее, можете, но работать PGPdisk не будет.

       Дело обстоит так, поскольку "основные модули" (включая библиотеки, приложение PGPtray, обеспечивающее доступ к функциям PGP из значка в области системных индикаторов, и приложение PGPkeys, реализующее управление ключами) проходят в списке компонентов, предлагаемом при установке PGP, одним пунктом.

       Если топология вашей жизни требует использования PGPdisk, а шифрование/аутентификация отдельных файлов вам напрочь не нужны, можно выбрать при установке пункты "Основные модули" и "PGPdisk", а затем вручную удалить "классические" приложения PGP (файлы PGPkeys.exe, PGPlog.exe, PGPtools.exe, PGPtray.exe в папке PGP), что позволит освободить чуть больше полумегабайта дискового пространства. Можно, конечно, разобраться, какие из библиотек PGP, расположенных в папке Windows/System, не нужны PGPdisk, и освободить еще пару мегабайт, но тут я вам не советчик.

       После установки к функциям PGPdisk добираются, запустив программу через кнопку Start/Пуск (по умолчанию она ложится в Programs|Network Associates|PGP) или щелчком на значке PGPtray в области системных индикаторов и последующим выбором пункта PGPdisk из контекстного меню (что обычно быстрее), или любым другим известным науке окнологии способом. Кроме того, специфические функции программы появляются:
  • в пункте New меню File Проводника Windows (File|New: /PGPdisk Volume - Создать новый том PGPdisk);
  • в контекстном меню для файлов типа "Том PGPdisk" (расширение по умолчанию .pgd) - пункт PGPdisk основного контекстного меню, содержащий меню второго уровня с пунктами, совпадающими по функции с описанными далее для программы PGPdisk.

       На рис. показано окно программы PGPdisk, содержащее меню File и Help и кнопки доступа к основным функциям программы.

       Тома PGPdisk. Основным понятием PGPdisk является том. Том PGPdisk - это файл, содержащий зашифрованный образ тома операционной системы со всеми приличествующими компонентами: таблицей размещения файлов, каталогами и, конечно, собственно файлами. Том PGPdisk вполне подобен томам, создаваемым программами сжатия дисков, например DriveSpace, входящей в поставку Windows.

       Поскольку назначением PGPdisk является не сжатие данных, а обеспечение их защиты от несанкционированного доступа, то монтирование (mounting) и демонтирование (unmounting), которые для томов DriveSpace (или любой другой компрессирующей диски программы) выполняются автоматически при запуске и остановке системы, - для томов PGPdisk выполняются вручную, причем монтирование - с обязательным вводом пароля.

       Смонтированный том PGPdisk известен системе как зашифрованный файл с образом тома (*.pgd), а кроме этого, - как логический носитель, обозначенный определенной буквой. Если, например, в вашей системе есть носители (физические, логические, CD-приводы) C и D, монтируемому диску можно назначить букву Е, после чего вы будете видеть диск E в системе, как если бы он был еще одним носителем. Демонтированный том известен системе только как зашифрованный файл с образом тома.

       Создание тома. Разумеется, перед тем, как монтировать, демонтировать том или манипулировать его содержимым, его нужно создать. Создание нового тома PGPdisk выполняется выбором пункта New PGPdisk в меню Files приложения PGPdisk или щелчком на соответствующей кнопке в окне этого приложения. В ответ PGPdisk предложит указать местоположение, имя и объем (от 100 Кбайт до 2 Гбайт) создаваемого тома.

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

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

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

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

       Сжатие программой DriveSpace тоже имеет ряд неочевидных моментов. Созданный на томе PGPdisk том DriveSpace, разумеется, не будет автоматически монтироваться при загрузке системы. Однако он будет смонтирован автоматически после монтирования содержащего его тома PGPdisk. При создании сжатого тома на шифрованном томе, его "реальная" емкость увеличится на столько же, насколько увеличилась бы емкость любого другого носителя. Размещать же, наоборот, том PGPdisk на томе, сжатом DriveSpace, было бы бессмысленно из-за упомянутой несжимаемости зашифрованных данных.

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

       Настройки (Preferences) PGPdisk позволяют настроить программу на автоматическое демонтирование томов при неактивности в течение определенного времени или при переходе компьютера в режим "сна" (sleep mode) - эти опции доступны под Windows 9х, но не под NT. Следует учитывать, что демонтировать (в том числе автоматически) можно только том, на котором нет открытых файлов.

       Настройки PGPdisk можно изменить, воспользовавшись командой File|Preferences либо щелкнув на кнопке Prefs приложения PGPdisk. В настройках можно указать горячую клавишу демонтирования томов. Если горячая клавиша назначена, демонтирование томов можно выполнить в любой момент простым ее нажатием.

       Монтирование томов. Для того чтобы начать работу с томом PGPdisk во вновь загруженной системе или после демонтирования, необходимо его смонтировать. Монтирование тома можно выполнить командой File|Mount PGPdisk или кнопкой Mount программы PGPdisk. Кроме этого, можно щелкнуть правой кнопкой на pgd-файле, содержащем зашифрованный образ тома, и выбрать PGPdisk|Mount PGPdisk из контекстного меню. В появившемся окне необходимо ввести основной или дополнительный (см. ниже) пароль. При монтировании тома можно отметить поле read-only, и тогда том будет доступен только для чтения.

       Автоматически монтировать определенные тома при загрузке системы можно, поместив ссылки (shortcuts) на них в папку Winnt\Profiles\имя_пользователя\Start Menu\Programs (в Windows NT) или Windows\Profiles\имя_пользователя\Start Menu\Programs (в Windows 9x).

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

       Добавление, удаление или изменение дополнительного пароля выполняется командами Add Passphrase, Remove Passphrase и Change Passphrase соответственно, которые доступны в меню File программы PGPdisk и в контекстном меню файла образа тома. Изменить (той же командой) можно и основной пароль; удалить основной пароль нельзя.

       PGPdisk в сети. Том PGPdisk, размещенный на ресурсе с сетевым доступом, может монтироваться и использоваться удаленными пользователями.

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

       Что нового в версии 6.0
       Версия 6.0 интегрирована с механизмом открытых ключей PGP, чего не было в версиях 1 и 2. Помимо использования дополнительного пароля, доступ к тому PGPdisk другим пользователям можно предоставить, добавив открытые ключи этих пользователей.



       Добавление открытого ключа производится командой Add Public Keys меню File программы PGPdisk или контекстного меню. После вызова этой функции открывается Окно выбора получателя приложения PGP (см. рис.), в котором можно перетащить открытые ключи (разумеется, они должны присутствовать на текущей связке открытых ключей) желательных пользователей в нижнее окно. Подобным образом командой Remove Public Keys можно удалить открытые ключи.

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

       Эта функция полезна в основном для использования PGPdisk в качестве средства защиты передаваемых (или пересылаемых) носителей.

       PGPdisk 6.0 позволяет добавлять и использовать только открытые ключи PGP "нового" (Диффи-Хеллмана), но не "старого" (RSA) формата.

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

       Как это сделано
       Pgd-файл состоит из:
  • симметрично зашифрованного (с помощью секретного ключа, сформированного генератором случайных чисел при создании тома) образа тома,
  • дополнительных записей, которые представляют собой секретный ключ, симметрично зашифрованный с помощью пароля (основной и дополнительные пароли доступа к тому), или асимметрично зашифрованный с помощью открытого ключа (добавленные открытые ключи).

       Для шифрования образа диска использован алгоритм CAST. CAST - это криптопримитив симметричного шифрования (шифрования с секретным ключом), разработанный в начале 1990-х годов Карлайлом Адамсом (Carlisle Adams) и Стэффордом Таваресом (Stafford Taveres) - двумя криптографами, сотрудниками канадской корпорации Northern Telecom, и названный их инициалами.

       CAST - очень тщательно с формальной точки зрения разработанный алгоритм [1], интенсивно подвергавшийся анализу криптоаналитиков в течение последнего десятилетия. CAST - один из немногих симметричных шифров, чья устойчивость по отношению к дифференциальному и линейному криптоанализу строго доказана [2]. CAST допускает использование ключа различной длины; в PGPdisk использован CAST-128.

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

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

       В программе реализован ряд дополнительных мер против некоторых известных "тонких" атак на криптоприложения.
  • Уничтожение пароля. Пароль сохраняется в памяти лишь долю секунды (защита против сканирования памяти в поисках пароля).
  • Защита виртуальной памяти. Пароль и ключи никогда не подвергаются сбросу в файл подкачки (своп-файл) (защита от сканирования своп-файла; такой атаке оказалась подвержена PGP 5.0).
  • Защита от статической миграции ионов в оперативной памяти. Данные в оперативной памяти, находящиеся там в течение долгого периода времени, оставляют след, который может быть использован для их восстановления с помощью специального оборудования. Для противодействия этой угрозе PGP 6.0.x использует метод попеременного инвертирования битов критических данных в оперативной памяти.

       "Платон мне друг..."
       И под конец - о самом главном - об области использования PGPdisk.

       Я очень люблю продукты PGP - начиная с ранних freeware-версий, созданных Филом Зиммерманном (Philip R. Zimmermann), и кончая современными коммерческими версиями, выпускаемыми PGP, Inc. от имени ее владельца - корпорации Network Associates, Inc. (NAI). Я давно дружен с некоторыми из членов команды PGP. Но при всем этом я не могу разделить чрезмерный, как мне кажется, оптимизм по поводу возможной сферы применения PGPdisk.

       Автор документации на PGPdisk Катрин Петитт (Katherinne Petitt) написала о программе буквально следующее (в вынужденно длинной цитате нумерация пунктов добавлена мной для удобства обсуждения):

       "Вот несколько примеров использования PGP для защиты содержимого файлов:
       1) защита конфиденциальной финансовой, медицинской или персональной информации, к которой вы не хотите предоставлять доступа чужим. Это особенно важно в сегодняшнем сетевом окружении, когда информация на персональном компьютере может становиться открытой всему миру при работе в сетях;
       2) для организации персональных рабочих областей на совместно используемой машине с гарантированным исключительным доступом пользователя к своим программам и файлам. Каждый пользователь может при использовании машины монтировать свои тома и оставаться уверенным, что никто не сможет получить доступ к файлам, когда тома демонтированы;
       3) для создания томов с материалами, доступными только определенным членам определенной рабочей группы. Том может монтироваться при работе членов группы над конкретным проектом, а затем демонтироваться и сохраняться в шифрованном виде, когда работа завершена;
       4) для предотвращения попадания конфиденциальной информации, хранимой на ноутбуке, в чужие руки. Обычно, если вы теряете ноутбук (или его у вас крадут), вся персональная информация (включая коды доступа и пароли онлайновых служб, координаты деловых и личных контактов, финансовые записи и т. п.) может быть злостно использована в преступных целях, и в конце концов ее утечка обойдется дороже, нежели утрата самого ноутбука;
       5) для защиты содержимого внешних носителей, таких как дискеты и картриджи. Возможность шифрования внешних носителей предоставляет дополнительный уровень безопасности для сохранения конфиденциальной информации и обмена ею". [3]

       Пункт 2 и отчасти пункт 3 кажутся мне чрезмерно оптимистичными.

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

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

       По остальным же пунктам следует согласиться с г-жой Петитт и компанией NAI. По пункту 4 стоит заметить, что риск кражи компьютеров или носителей распространяется не только на ноутбуки, но и на стационарные компьютеры. PGPdisk - стоящая вещь. Благодаря проекту PGPi, программу наверняка оценят некоммерческие пользователи во всем мире; остается надеяться, что NAI найдет способ лицензировать PGPdisk и другие продукты этой серии и для коммерческого использования за пределами США и Канады (эту задачу должна решить компания NAI Intl., Inc., www.pgpinternational.com - следите за новостями).





    1 (обратно к тексту) - Описание см. в Adams C. M., Simple and effective key scheduling for symmetric ciphers // Workshop on selected areas in cryptographyљ- Workshop record. Kingston, Ontario, May 5-6, 1994; Adams C. M., Tavares S. E., The structured design of cryptographically good S-boxes // J. of cryptology, Vol. 3, No. 1, 1990.

    2 (обратно к тексту) - См. Adams C. M., Tavares S. E., Op. cit. и Hayes H. M, Tavares S. E. On the security of the CAST encryption algorithm // Proc. of the Canadian conf. on electrical and computer engineering, Halifax, Nova Scotia, September 1994.

    3 (обратно к тексту) - PGP Desktop Security, Windows 95, 98, and NT User's Guide, Version 6.0 - NAI: 1997.



  • © ООО "Компьютерра-Онлайн", 1997-2019
    При цитировании и использовании любых материалов ссылка на "Компьютерру" обязательна.