logo
INFO2

[Править]Центры доверия

Обобщённая концепция нотариуса нас приводит к следующему понятию:

Удостоверяющий центр (УЦ) (англ. Certificate authority) — точка доверия, которая подписывает сертификаты. (то самое "...подписанная доверенной стороной..." из определения сертификата). В чём доверяют УЦ? Это вопрос очень сложный и о нём мы поговорим много позже, пока, для удобства изложения, будем считать, что как минимум, доверяют правильности заполнения полей, описывающих идентичность в сертификате. Т.е. УЦ действительно подтверждает, что сертификат, выданный на имя Васи Пупкина выдан именно Васе Пупкину.

Кстати, нетривиальный момент: что означает "выдан?" (ведь сертификат, как и открытый ключ, вероятнее всего, будет публично доступен) Есть ли разница, кому именно отдадут файл сертификата?

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

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

Сертификат УЦ. Есть ещё один важный момент. УЦ подписывает сертификат своим закрытым ключом. Мы хотим проверить сертификат. Это значит, что мы должны иметь открытый ключ УЦ (ну, или, точнее, его сертификат). Откуда он у нас? Есть два варианта:

  1. Сертификат УЦ подписан другим УЦ (да, так может быть). А сертификат того УЦ подписан третьим УЦ. И так до бесконечности? Нет.

  2. Сертификат УЦ может быть подписан самим УЦ. (конец цепочки).

Самоподписанный (иногда говорят "самовыданный") сертификат — это очень сложная штука. Можем ли мы ему доверять? НЕТ! Любой проходимец может подписать себе сертификат представившись именем крупного банка - и, разумеется, мы не будем ему доверять на этом основании.

... Только если мы не знаем точно, что это сертификат крупного банка. Тогда, разумеется, мы можем ему доверять. Как различить проходимца от настоящего УЦ (которому мы можем доверять)?. PKI не даёт ответа о том, каким корневым УЦ следует доверять, а каким нет. Этот вопрос следует решить человеку самостоятельно. (Иногда за него думают производители операционных систем, включающих некоторые УЦ в список "доверенных корневых удостоверяющих центров").

Таким образом, самоподписанный сертификат является лишь формальностью (начальной точкой для дерева доверия), но ничего не доказывает с точки зрения PKI. Единственное, что доказывает этот сертификат, что выпускающий самоподписанный сертификат УЦ обладает соответствующим закрытым ключом (т.к. подпись можно сделать только с помощью закрытого ключа). Всё. Все остальные вопросы - правда написана в идентичности сертификата или нет, можно ему доверять или нет - эти все вопросы следует решить ДО начала использования сертификата.

Фактически, наличие самоподписанных сертификатов УЦ, является одним из допущений PKI (наравне с существованием хорошей ассиметричной криптографии и криптохешей), в рамках которой модель PKI действует. Если бы мы были занудными математиками, то мы бы сказали что-то вроде: "Допустим, что у нас есть хорошие криптохеши и работающая ассиметричная криптография. Если пользователь доверяет хотя бы одному доверенному УЦ, то...".

Количество доверенных УЦ у каждого пользователя своё. Кто-то доверяет УЦ компании "Рога и Копыта", а кто-то сомневается. Возможно, есть параноик, который вообще никому не верит. (Кстати, вполне себе PKI, в которой нет ни одного доверенного удостоверяющего центра, одни враги кругом).

Соответственно, понятие "доверенный УЦ" (с упором на слово "доверенный") - это субъективное понятие каждого из субъектов криптографии. Кто-то верит, кто-то нет. Что произойдёт, если мы столкнёмся с подписью, сертификат которой заверен недоверенным УЦ? Поведение может отличаться от программы к программе: кто-то скажет "нет доверия, продолжить?", кто-то молча проигнорирует (как бы если бы подписи не было), кто-то запишет в журнал безопасности кляузу "пользователь А проверил подпись пользователя Б, заверенную УЦ, которому нет доверия".

Каким УЦ следует доверять пользователю? Точнее, кто это решает? На первый взгляд - сам пользователь и решает. Иногда. Но не всегда. Например, работодатель может решить, что пользователь должен доверять некоему УЦ (причём, обязательно). Так тоже бывает.

А бывает так, что пользователь сам себе УЦ (кого подписал, тому доверяешь, кому не подписал - не доверяешь).

20.

База данных - набор сведений, хранящихся некоторым упорядоченным способом. Можно сравнить базу данных со шкафом, в котором хранятся документы. Иными словами, база данных - это хранилище данных. Сами по себе базы данных не представляли бы интереса, если бы не было систем управления базами данных (СУБД). Система управления базами данных - это совокупность языковых и программных средств, которая осуществляет доступ к данным, позволяет их создавать, менять и удалять, обеспечивает безопасность данных и т.д. В общем СУБД - это система, позволяющая создавать базы данных и манипулировать сведениями из них. А осуществляет этот доступ к данным СУБД посредством специального языка - SQL. SQL - язык структурированных запросов, основной задачей которого является предоставление простого способа считывания и записи информации в базу данных. Итак, простейшая схема работы с базой данных выглядит примерно так: По характеру использования СУБД делят на однопользовательские (предназначенные для создания и использования БД на персональном компьютере) и многопользовательские (предназначенные для работы с единой БД нескольких компьютеров, объединенных в локальные сети). Вообще деление по характеру использования можно представить следующей схемой:  Не вдаваясь далее в подробности, отметим, что на сегодняшний день число используемых СУБД исчисляется десятками. Наиболее известные однопользовательские СУБД - Microsoft Visual FoxPro и Access, многопользовательские - MS SQL Server, Oracle и MySQL. В этих уроках мы будем использовать СУБД MySQL. Во-первых, она бесплатная, а во-вторых, она является стандартом де-факто у российских хост-провайдеров. Но об этом позже, а пока вернемся к основам. В определении базы данных говорится, что это сведения, которые упорядочены некоторым образом. А как собственно они упорядочены? Об этом и пойдет речь в следующем уроке. БД могут содержать различные объекты. Основными объектами БД являются таблицы. Простейшая база данных имеет хотя бы одну таблицу. Структура простейшей базы данных тождественно равна структуре ее таблицы.

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

Поля БД определяют групповые свойства данных, записываемых в ячейки, принадлежащие каждому из полей. Например, свойства полей могут быть такими: имя поля, тип поля, размер поля, формат поля, маска ввода, подпись, значение по умолчанию, условие на значение, обязательное поле, индексированное поде, пустые строки, и т.д. Типы данных: текстовый, числовой, денежный, дата/время, счетчик, поле мемо (большой объем текста), логический, поле объекта OLE (для мультимедийных объектов), гиперссылка, место подстановок.

27.