Главная страница Visual 2000 · Общий список статей

Как создавать защищенные приложения
Андрей Колесов

Рецензия на книгу:
Чепмен Д. Разработка защищенных приложений в среде Visual Basic: Пер.с англ.: Уч. пос. — М.: Издательский дом "Вильямс", 2000. — 480 с.

© Андрей Колесов, 2001
Авторский вариант. Статья была опубликована c незначительной литературной правкой в еженедельнике PC Week/RE (№ 12/2001, с. 37) PC Week/RE Online


Название книги не очень точно соответствует реальному ее содержанию. На самом деле здесь рассматриваются общие для всех языков программирования методы использования разнообразных методов защиты информации. И Visual Basic выбран в качестве среды разработки демонстрационных приложений, как наиболее массовый и доступный инструмент. Собственно, все технология базируется на применении наборов API, поэтому пользователи Visual C++ или Delphi смогут без особого труда преобразовать VB-примеры в программы на соответствующих языках (для VBA все годится один к одному).

Следует также отметить, что материал книги в полной мере может быть использован только в новейшей операционной системе Windows 2000, но большая его часть, в частности все, что касается методики обмена шифрованными сообщениями и использования пакета CryptoAPI, может быть реализовано в Windows NT 4.0 и Windows 98.

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

Тематически книга последовательно рассматривает три основные проблемы. Первые главы посвящены шифрованию сообщений: начиная с основ технологии и общих сведений о наборе функций CryptoAPI и заканчивая подробным описанием методов симметричного и несимметричного шифрования, работы с сертификатами и использования цифровой подписи. Затем рассказывается о методике защищенного программирования: работа с моделью DCOM и протоколом SSL, организация подсистемы безопасности в Windows 2000, средства аутентификации пользователей, взаимодействие с Active Directory, защита компонентов COM+ и применение служб Microsoft Certificate Server. В заключительных главах рассматриваются различные аспекты создания защищенных приложений, выходящие за рамки собственно программирования: стандартизация средства защиты, юридические аспекты использования цифровой подписи и шифрования.

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

Не менее половины содержимого книги приходится на листинги (кстати, они могут послужить хорошим примером качественного оформления программ). Хотя это не очень большие фрагменты кода, но книга, конечно, выиграла бы, если эти программы можно было бы считать с компакт-диска или с Web-сайта.

И в заключении еще одно программистское замечание. Значительная часть операций шифрования связана с использованием строковых переменных, обработка которых в 32-разрядных Windows требует особого внимания. В частности, это связано с тем, что некоторые средства используют по умолчанию Unicode (например, VB), а другие — ANSI (Win API). Для выделения разных вариантов кодировок довольно часто (в том числе в рецензируемой книге) используются соответственно термины "строка символов" и "строка байтов".

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

В начало статьи