ОКБ САПР ПСКЗИ "ШИПКА"Зачем нам PKI?
  windows 7 Review bit-info.com on alexa.com

Зачем нам PKI?


ЗАЧЕМ НАМ ИНФРАСТРУКТУРА ОТКРЫТЫХ КЛЮЧЕЙ?

Итак, для того, чтобы что-то зашифровать, нужен ключ шифрования (а подписать - ключ подписи). Для того чтобы расшифровать (проверить подпись) -тоже. Если ключа нет у нужного человека - он не расшифрует (не проверит подпись), если есть у злоумышленника... Логика понятна.

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

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

Аналогично можно поступить и для обмена зашифрованной или подписанной ЭЦП информацией внутри небольшого круга друзей или партнеров: просто обменяться необходимыми ключами, встретившись лично, или подтвердив подлинность переданного, например, по e-mail ключа, созвонившись.

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

Это уровень «гражданского общества». А если взять государство? Вряд ли можно представить себе, что по поручительству или личному дорверию, пускают в страну - через пограничный контроль. Лично знать всех граждан не может ни один президент, даже если предположить, что он будет пропускать через границу лично, а не делегирует эти полномочия пограничникам.

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

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

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

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

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

Для этого создана Инфраструктура Открытых Ключей.

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

 

В первом случае получается «сеть доверия» (философия стандарта OpenPGP), а во втором - система Удостоверяющих Центров.

 

Цифровые сертификаты

 

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

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

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

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

 

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

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

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

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

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

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

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

Для получения сертификата при помощи ПСКЗИ ШИПКА пользователь использует стандартную процедуру обращения к Центру Сертификации.

 

При установке этого сертификата он сохраняется не в логическом хранилище сертификатов «MY», а в самом устройстве ШИПКА и работа с таким сертификатом осуществляется через физическое хранилище сертификатов дляПСКЗИ ШИПКА.

После этого пользователь может работать с сертификатами, хранящимися в ПСКЗИ ШИПКА, во всех программах, требующих использования сертификатов точно также как, если бы он работал с сертификатами, хранящимися в системе локально. В случае отсоединения устройства ШИПКА от USB-порта сертификаты перестают быть доступными пользователю.

Если же подключить устройство ШИПКА к USB-порту другого компьютера, на котором установлено программное обеспечение для ПСКЗИ ШИПКА, то пользователь автоматически получает доступ к хранящимся в ШИПКЕ сертификатам, если, конечно, это ее владелец, знающий ПИН-код, а не просто кто-то, увидевший рядом с компьютером ШИПКУ. Достать ключи и сертификаты из ШИПКИ как-то иначе - невозможно.

 

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

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

 

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

 

Сеть доверия

 

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

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

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

Допустим, встретиться лично с приятелем из Могилева у Вас пока не получается, а его открытый ключ нам уже нужен. Если при этом его открытый ключ есть у вашего общего знакомого (например, он как раз ездил в Могилев и получил этот ключ), то он может Вам его передать не обязательно лично, но и по e-mail, подписав своим ключом, в подлинности которого Вы уверены, поскольку получили его из рук в руки. Логика понятна - Вы проверяете подпись вашего общего знакомого с помощью ключа, в котором уверены, и если подпись верна, то подписанный ею ключ приятеля из Могилева доставлен без искажений, и можно считать его подлинным, не предпринимая экспедицию в Беларусь.

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

Если углубляться в эту систему, лежащую, как уже было сказано, в основе стандарта OpenPGP, на котором построена программа для работы с криптографией - PGP (Pretty Good Privacy), то следует различать доверие человеку и доверие ключу. Это, казалось бы очевидно - как можно перепутать человека и ключ? Однако, стоит иметь в виду, что подписывая чей-то ключ мы удостоверяем только то, что это действительно его ключ, а не то, что этот человек заслуживает доверия, аналогично тому, как наличие паспорта еще не гарантирует высоких моральных качеств его обладателя.

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

Защищать с помощью программы PGP можно, например, переписку по электронной почте в программе The BAT!. В том числе, это можно делать и с применением ПСКЗИ ШИПКА - причем, конечно, это повысит уровень защищенности обмена, поскольку ключевая информация не будет храниться или обрабатываться в доступных злоумышленнику местах. Для этого сначала нужно настроить PGP на работу с ШИПКОЙ (это возможно сделать благодаря тому, что в ШИПКЕ библиотека PKCS#11, через которую может работаь PGP). После этого нужно сгенерировать ключи и настроить The BAT! на работу с PGP. Все эти процедуры не сложные и описаны в Руководстве пользователя дляПСКЗИ ШИПКА. Однако надо признать, что реализация PGP такова, что ее настройка состоит из достаточно большого количества шагов, пусть и не сложных, и по этой причине используют эту программу в основном «продвинутые пользователи».

В то же время логика «сети доверия» представляется как нельзя более подходящей именно для частного использования - «в быту», а не только в среде профессионалов. Поэтому представляется как нельзя более актуальным для пользователей принципиально новое решение - программа для работы с ШИПКОЙ в логике PGP, но не требующая ни длительных настроек, ни специальных знаний. Программа называется Privacy. Она не входит в стандартное ПО ПСКЗИ ШИПКА, являясь отдельным продуктом. С помощью этой программы можно создавать пары ключей, экспортировать открытые ключи в файл для передачи абоненту, импортировать открытые ключи, переданные Вам абонентом, подписывать эти открытые ключи, проверять подписи под ключами, шифровать файлы и папки, создавать защищенные виртуальные диски и защащать ЭЦП или шифрованием переписку по электронной почте или ICQ. При этом в настройки самих почтовых программ или программ ICQ никаких изменений вносить не нужно. От пользователей вообще требуется минимум для организации защищенного таким образом обмена. Фактически, этот минимум сводится к тому, чтобы у всех участников обмена была установлена программа Privacy, а пользоваться ей, благодаря продуманному интерфейсу, очень просто.

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