Глава 11. Введение

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

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

Большинство криптографических операций используют секретные и открытые ключи.

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

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

Проблема защищенного обмена информацией через незащищённые компьютерные сети включает три основные области:

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

Библиотека предоставляет набор алгоритмов кодирования — как разработанных ЛАН Крипто, так и стандартных алгоритмов, известных во всём мире.

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

В таблице ниже приведены параметры алгоритмов — размер блока в битах, длина сеансового ключа в битах.

Таблица 11.1.

АлгоритмРазмер блокаДлина ключаОписание
Nush128256Nush — самая последняя разработка "ЛАН Крипто"
Wicker98128128Wicker98 от "ЛАН Крипто" — наиболее эффективный и известный блочный код. В настоящее время он является лучшим по всем основным параметрам
Веста-2M1512Веста-2M от "ЛАН Крипто" — поточный код, за последние 5 лет ставший практически стандартом де-факто для защиты электронных документов. Он используется целым рядом коммерческих компаний, банков и корпораций в России и СНГ.
RC4164Поточный код, хорошо известный в США
DES6464Блочный код DES, хорошо известный в мире
Triple DES64192Блочный код, использующий для большей безопасности три ключа DES
ГОСТ РФ 2814764256Блочный код ГОСТ РФ 28147 — стандарт РФ
FEAL6464Блочный код FEAL
SAFER-64K6446Блочный код SAFER

«ЛАН Крипто» рекомендует:

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

Wicker98 и Nush — прекрасные алгоритмы блочного кодирования, известные на мировом рынке.

Библиотека предоставляет набор алгоритмов подписи, как разработанных “ЛАН Крипто”, так и других, широко известных во всём мире.

Таблица 11.2.

АлгоритмОписаниеПредпочтительный алгоритм хэширования
LANS (Notary-S)Алгоритм подписи, разработанный "ЛАН Крипто" и профессором Клаусом Шнорром (Германия). Включает основные элементы национального американского стандарта цифровой подписи, и более эффективную функцию сжатия.Gas48, SHA1
DSAАлгоритм подписи DSA (США)SHA1
RSAАлгоритм подписи RSA (США)MD5
ГОСТ РФ 34.10-94Алгоритм подписи. Стандарт РФГОСТ РФ 34.11-94
LANS ECCАлгоритм подписи LANS на эллиптических кривыхGas48, SHA1
GOST ECCАлгоритм подписи на эллиптических кривых. Стандарт РФГОСТ РФ 34.11-01

«ЛАН Крипто» рекомендует:

Алгоритм подписи LANS (Notary-S) позволяет делать длину цифровой подписи на 35% короче, чем в алгоритме DSA, и на 60% короче, чем у алгоритма GOSTR3410. Он уже принят в качестве нового корпоративного стандарта цифровой подписи целым рядом индустриальных и коммерческих концернов в России и СНГ. Он также был принят как отраслевой стандарт газовой промышленности России и стал национальным стандартом цифровой подписи в нескольких странах СНГ.

Библиотека предоставляет набор алгоритмов хэширования:

Таблица 11.3.

АлгоритмРазмер хэша (в байтах)Описание
SHA120Алгоритм хэширования SHA1
SHA20Алгоритм хэширования SHA
MD516Алгоритм хэширования MD5
GAS4848Алгоритм хэширования GAS48 был разработан в "ЛАН Крипто" как отраслевой стандарт для РАО "Газпром".
ГОСТ 34.11-9432Алгоритм хэширования ГОСТ РФ 34.11-94  — стандарт РФ. Должен использоваться совместно с алгоритмом подписи ГОСТ 34.10-94

«ЛАН Крипто» рекомендует:

Алгоритм хэширования SHA1, широко используемый во всём мире. SHA1 используется вместе с алгоритмами подписи DSA и LANS.

Библиотека предоставляет несколько методов кодирования данных (режимов кодирования):

Поточный режим кодирования кодирует данные по биту за раз, и используется в поточных кодах (Веста-2М, RC4). При использовании блочных кодов (Wicker, TripleDES, т.п.) режим блочного кодирования кодирует данные по блоку за раз. Хотя это выполняется медленнее, чем в поточных алгоритмах, блочные более безопасны. В блочных алгоритмах используются четыре режима кодирования. В большинстве случаев предпочтительнее использование режима CBC.

EBC — электронная кодовая книга

Простой режим кодирования, кодирующий блоки по отдельности и не использующий обратную связь.

CBC — сцепление блоков по шифр-тексту

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

CFB — обратная связь по шифр-тексту

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

OFB — обратная связь по выходу

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

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

Библиотека поддерживает два протокола обмена ключами, решающих эту проблему:

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