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

Справочный материал по основным языкам программирования и верстки сайтов.

Готовая методика создания простых и сложных динамичных сайтов, с использованием PHP и MySQL.

Использование веб-редактора Adobe Dreamweaver в разработке сайтов.

Использование графических редакторов Adobe Flash, Adobe Photoshop, Adobe Fireworks в подготовке веб-графики.

Разработка веб-сайтов под "ключ".

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

Цифровые подписи. Цифровые сертификаты. Безопасные веб-серверы

Сертификаты

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

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

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

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

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

Наиболее известные хеш-функции — это MD5 и SHA.

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

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

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

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

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

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

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

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

Из всех центров сертификации наиболее известными являются VeriSing (http://www.verising.com)и Thawte (http://www.thawte.com). VeriSing и Thawte являются собственностью одной компании, поэтому существенной разницы между их сертификатами нет. Сертификаты некоторых из менее известных центров сертификации, таких как Equifax Secure (http://www.equifaxsecure.com)стоят значительно дешевле.

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

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

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

Безопасные Веб-серверы

Для безопасной связи с веб-браузерами посредством протокола SSL можно использовать сервер Apache, Microsoft IIS или любой другой бесплатный или коммерческий веб-сервер. Применение сервера Apache позволяет пользоваться UNIX-подобной операционной системой, которая почти наверняка будет более надежной, хотя и более трудной в установке, чем IIS. Естественно, сервер Apache доступен и для платформы Windows.

Чтобы использовать SSL на сервере IIS, необходимо установить IIS, сгенерировать пару ключей и установить свой сертификат. Для активации протокола SSL на сервере Apache потребуется установить три различных пакета: Apache, Mod_SSL и OpenSSL.

Добиться своей цели можно купив пакет Stronghold —это коммерческий продукт стоимостью примерно 1000 долларов США, который можно загрузить из http://stronghold.redhat.com. Этот пакет построен на базе Apache, но поставляется в виде самоустанавливающегося бинарного файла, уже настроенного для использования SSL. Таким образом, вы получаете надежность UNIX в сочетании с простотой установки и технической поддержкой от производителя.

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

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

Далее необходимо создать запрос на подпись сертификата (CSR). Этот процесс варьируется от сервера к серверу. Соответствующие инструкции доступны на веб-сайтах центров сертификации. Пакеты Stronghold и IIS организуют этот процесс на базе диалоговых окон, а сервер Apache требует непосредственного ввода команд. Тем не менее, процесс по сути дела одинаков для всех серверов. Его конечным результатом является получение зашифрованного запроса на подпись сертификата.

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

Когда орган сертификации выдаст сертификат, его следует сохранить в своей системе и указать веб-серверу, где его искать. Окончательный сертификат — это текстовой файл.