Опубликован: 31.07.2006 | Доступ: свободный | Студентов: 16490 / 4292 | Оценка: 4.17 / 3.80 | Длительность: 34:21:00
ISBN: 978-5-9570-0046-9
Лекция 12:

Шифрование

Защита ключей

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

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

Необходимо обеспечивать защиту всех ключей системы, использующей секретные ключи. Если ключ содержится в файле, этот файл должен быть защищен в любом месте, где бы он не находился (включая архивные носители). Если ключ находится в памяти, необходимо предпринимать меры по защите пространства памяти от исследования пользователями или процессами. Аналогично, в случае с дампом (сбросом данных на жесткий диск) ядра, файл ядра должен быть защищен, так как он может содержать ключ.

Аннулирование ключей

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

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

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

Доверие в информационной системе

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

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

Иерархия

Иерархическая модель доверия наиболее проста для восприятия. Говоря простым языком, в данном случае вы доверяете человеку, который находится выше в иерархической цепи, так как от него было получено соответствующее указание о необходимости доверия. На рисунке 12.12 изображена схема этой модели. Как видно из рисунка, пользователи User1 и User2 располагаются под CA1. Следовательно, если CA1 говорит, что сертификат открытого ключа принадлежит пользователю User1, пользователь User2 будет верить этому. На практике User2 передает пользователю User1 свой сертификат открытого ключа, подписанный CA1. Пользователь User1 проверяет подпись CA1 с использованием открытого ключа CA1. Так как CA1 находится в иерархии выше, чем User1, то User1 доверяет CA1 и, следовательно, доверяет сертификату пользователя User2.

Иерархическая модель доверия

Рис. 12.12. Иерархическая модель доверия

Мы рассмотрели довольно простой случай. Если пользователю User1 нужно проверить информацию от пользователя User3, все несколько усложняется. CA1 не знает о пользователе User3, в отличие от CA2. Тем не менее, пользователь User1 не доверяет CA2, так как это бюро сертификатов напрямую не принадлежит цепочке пользователя User1. Следующий уровень вверх по цепочке - CA4. Пользователь User1 может верифицировать информацию от пользователя User3 посредством проверки с помощью CA4 следующим образом.

  1. Пользователь User1 смотрит на сертификат пользователя User3. Он подписан в CA2.
  2. Пользователь User1 получает сертификат пользователя CA2. Он подписан в CA4.
  3. Так как пользователь User1 доверяет CA4, открытый ключ CA4 может использоваться для верификации сертификата CA2.
  4. Как только сертификат CA2 верифицирован, пользователь User1 может верифицировать сертификат пользователя User3.
  5. Как только будет верифицирован сертификат пользователя User3, пользователь User1 может использовать открытый ключ пользователя User3 для верификации данных.

Как видите, все довольно быстро усложняется. Представьте себе, какой объем операций по верификации необходимо было бы производить, если бы пользователю User1 нужно было верифицировать данные, поступившие от пользователя User4. Две цепочки не пересекаются вплоть до CA9! Так реализована сертификация в X.509. Иерархия устанавливается таким образом, чтобы между любыми двумя нижними объектами могла быть создана цепочка сертификатов.

С теоретической точки зрения все выглядит неплохо. Однако на практике все иначе. Одной из причин, по которой данная технология не функционировала, заключается в том, что не существовало реальных CA корневого уровня. CA корневого уровня - это наивысшая точка в иерархии. В одно время было принято считать, что в каждой стране должно быть свое бюро сертификатов корневого уровня. Также предполагалось, что компании, выпускающие кредитные карты, должны стать корневыми CA, или что каждая организация должна иметь свое собственное CA. На практике почти ничего не было реализовано. Возникал еще один вопрос, который представлял собой потенциальную проблему: сколько CA должны сертифицировать каждого конечного пользователя? Если конечный пользователь живет в стране А, обладает кредитной картой компании B и работает в организации C, должны ли все три объекта подписывать один и тот же сертификат?

Нияз Сабиров
Нияз Сабиров

Здравствуйте. А уточните, пожалуйста, по какой причине стоимость изменилась? Была стоимость в 1 рубль, стала в 9900 рублей.

Елена Сапегова
Елена Сапегова

для получения диплома нужно ли кроме теоретической части еще и практическую делать? написание самого диплома требуется?