Создание Web-сервиса осуществляющего цифровую подпись

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

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 09.05.2014
Размер файла 72,8 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования

«Поволжский государственный технологический университет»

Кафедра информационной безопасности

КУРСОВАЯ РАБОТА

на тему: «Создание Web-сервиса осуществляющего цифровую подпись»

по дисциплине: «Программно-аппаратные средства обеспечения информационной безопасности»

Выполнил: Трошагин О.А.

Проверил: Пекунов А.А.

Йошкар-Ола 2013

Содержание

Введение

1. Построение Web - сервиса с функцией электронной подписи

2. CryptoAPI

3. Windows Communication Foundation

4. Описание программы

5. Сравнение программы с другими программными продуктами

Заключение

Список первоисточников

Приложения

Введение

электронный подпись программный продукт

ЭП (электронная подпись, ранее - электронная цифровая подпись, ЭЦП), согласно Федеральному закону Российской Федерации от 25 марта 2011 года «Об электронной подписи», - это «информация в электронной форме, которая присоединена к другой информации в электронной форме (подписываемой информации) или иным образом связана с такой информацией и которая используется для определения лица, подписывающего информацию». Федеральный закон от 10 января 2002г. "Об электронной цифровой подписи" признается утратившим силу с 1 июля 2012г.

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

Цель курсовой работы:

Закрепление полученных знаний по дисциплине «Программно-аппаратные средства обеспечения информационной безопасности».

Задачи курсовой работы:

1. Изучение принципов электронного документа оборота.

2. Изучение электронной подписи.

3. Написание серверной и клиентской части веб - сервиса реализующего электронную подпись.

4. Сравнение ПО с аналогичными программными продуктами.

Подготовка и порядок выполнения работы

Курсовая работа выполнялась поэтапно во время самостоятельной работы. Работа состояла из следующих этапов:

1. Выбор темы работы.

На этапе выбора темы работы была изучена тема «Создание Web-сервиса осуществляющего цифровую подпись». Был выбран алгоритм для шифрования и цифровой подписи.

2. Разработка технического задания на курсовую работу.

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

3. Составление плана работ

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

4. Выполнение работы

На данном этапе изучался теоретический материал по курсу «Программно-аппаратные средства обеспечения информационной безопасности» на тему «Создание Web-сервиса осуществляющего цифровую подпись»;

- исследовались способы построение Web-сервиса

- был изучен CryptoAPI( интерфейс программирования Windows-приложений стандартным набором функций для работы с криптопровайдером);

- создавалось программное обеспечение;

- составлялся отчёт, готовилась пояснительная записка для защиты работы.

1. Построение Web - сервиса с функцией электронной подписи

электронный подпись программный

Модуль проверки и хранения ЭП (сервер)

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

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

Архитектурно решение будет выглядеть следующим образом:

Модуль выработки ЭП (клиент)

Основный задачей пользователя при доступе на Web-сайт является загрузка электронных документов и текстовых данных на сайт, а так же скачивание электронных документов с сайта. Для защиты web-соединения с сайтом по протоколу SSL/TLS.

Основные достоинства КриптоТуннеля:

· обеспечивает защиту web-соединений между любым браузером и сайтом по протоколу SSL/TLS c поддержкой российских криптоалгоритмов

· позвoляет аутентифицировать пользователя по цифровому сертификату для доступа в личный кабинет пользователя

· поддерживает различные USB-Tokenы и смарт-карты для хранения ключей

· не требует установки на пользовательских местах, распространяется копированием

· может храниться на обычной флешке и запускаться с нее

· не требует для работы прав системного администратора

· поддерживает работу с любым web-браузером (Internet Explorer, Mozilla FireFox, Google Chrome, Opera, Safari Apple и т.д.)

· не имеет «привязки» к одному компьютеру - пользователь может использовать один комплект для использования в офисе и дома - экономия денежных средств

· имеет простой и понятный пользовательский интерфейс, что позволяет обойтись без обучения пользователей

· позволяет минимизировать затраты на техническую поддержку пользователей

· может работать на большом спектре операционных систем (кроссплатформенное решение)

2. CryptoAPI

Microsoft Cryptographic API (CryptoAPI) -- 32-битный интерфейс прикладного программирования для Microsoft Windows, реализующий множество функций защиты информации. Поддержка CryptoAPI -- составная часть Microsoft Windows NT Server, и, следовательно, эти средства доступны Internet Information Server. Если речь идет о разработке Windows-приложения для коллективной работы группы пользователей, Интернет-приложения или настольных приложений, требующих защиты, этот API идеально подходит для данных целей.

CryptoAPI находит применение в различных областях, включая:

· средства проведения конференций в реальном времени;

· средства передачи информации в глобальных сетях:

· системы авторизации потребителей;

· банковские приложения, в том числе использующие технологии смарт-карт;

· утилиты шифрования и дешифрования файлов;

· приложения электронной почты;

· приложения коллективной работы.

CryptoAPI построен по модульному принципу. Все криптографические операции выполняют заменяемые компоненты -- так называемые
поставщики криптографических услуг (Cryptographic Service Providers, CSPs). Ядром каждого CSP служит определенный криптографический алгоритм. CSP не зависит от использующего его приложения; таким образом, приложение способно работать с множеством различных CSP. Это позволяет Вам, не изменяя приложение, выбрать поставщика криптографических услуг, который обеспечит необходимый уровень защиты.

3. Windows Communication Foundation

Windows Communication Foundation (WCF) - это платформа корпорации Майкрософт нового поколения для построения распределенных систем. Она была выпущена как часть платформы .NET Framework 3.0 и предназначена для консолидации и расширения интерфейсов API предыдущих версий платформы (например, веб-служб ASP.NET, .NET Remoting, служб Enterprise Services (COM+) и очереди сообщений).

Начнем со следующего ценного наблюдения: современные технологии распределенных систем, из которых наиболее заметны ASP.NET Web Services (ASMX) с расширениями Web Service Enhancements (WSE), Microsoft Message Queue (MSMQ), среда Enterprise Services/COM+ и .NET Remoting, лежат в основе бесчисленных удачных приложений. Возможно, в этих приложениях что-то не так, если Microsoft хочет все их чем-то заменить? Нет, ничего - но их слишком много.

Enterprise Services обеспечивают интеграцию транзакций различных сторон, выполняющих совместную работу в распределенной среде, позволяют ограничивать доступ к дефицитным разделяемым ресурсам, позволяет создавать пулы экземпляров объекта для оптимизации доступа к ресурсам, чья инициализация обходится дорого, имеет механизм «издатель/подписчик» для событий, богатую модель безопасности, и является вершиной проверенных, интегрированных, безопасных и быстрых технологий. Последнее по порядку, но не по значению, Remoting, это интегрированный механизм Common Language Runtime (CLR) для связи между объектами через границы доменов приложений, который пользуется популярностью за свою крайне гибкую модель расширения.

Все это хорошо, за тем исключением, что часто приходится делать однозначный выбор между этими фундаментальными технологиями. Если вам нужны какие-то возможности Enterprise Services, и вы решаетесь использовать эту технологию, стратегия реализации будет совсем не та, что при использовании ASMX. Если вам нужен железобетонно надежный обмен сообщениями, и вы выбираете отправку сообщений через MSMQ вместо риска отправки их через HTTP, ваш код будет совсем не таким, как при вызове методов через прокси, если только вы не напишете связывающий код сами, или не используете возможности Queued Components из Enterprise Service (что возвращает нас к предыдущему случаю).

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

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

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

4. Описание программы

Созданный программный продукт обладает следующими возможностями:

· Работает под управлением всех известных браузеров;

· Обладает интуитивно понятным пользовательским графическим интерфейсом;

· В программном продукте реализованы:

- создание пользователей.

- присвоение пользователю ключей подписи.

- подпись отправляемого документа.

- проверка подписи.

- обмен сообщениями.

· Реализована возможность выбора нужного пользователю файла для выполнения операций

Сравнение программы с другими программными продуктами

Сравним программный продукт с Сервисом eSign-PRO

Функциональность:

Функция

kyrsovaia

eSign-PRO

Подпись документов

+

+

Передача данных по SSL

-

+

Ограничение на число документов

-

+

Множественная подпись

-

+

Организация обмена сообщениями между пользователями

+

-

Удобность:

Функция

kyrsovaia

eSign-PRO

Наличие графического интерфейса

+

+

Разделение функций пользователя и администратора

+

+

Цена:

kyrsovaia

Free

eSign-PRO

Paid

Заключение

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

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

Список первоисточников

1. Интернет ресурс: http://www.esign-pro.ru

2. Интернет ресурс: http://ru.wikipedia.org/wiki/Электронная_подпись

3. Федеральный закон Российской Федерации от 6 апреля 2011 г. N 63-ФЗ

4. Интернет ресурс: http://ru.wikipedia.org/wiki/Криптосервисы_.NET_Framework

5. Интернет ресурс: http://www.gosuslugi.ru/pgu/eds/

Приложения

1. Руководство пользователя

Программа обладает следующими возможностями:

- авторизация по логину и паролю (8-12 символов цифры + буквы)

-создание пользователя из администраторской части.

- подписи и проверка подписи документа.

- обмен пользовательскими сообщениями.

-блокирование пользователя при 5 некорректных вводах пароля.

Начало работы

Для начала работы пользователя необходимо:

-Иметь соединение с интернетом.

-Иметь любой современных браузер.

-Иметь активную учетную запись пользователя.

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

Работа сервиса

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

2. Руководство администратора

Для нормальной работы ПО необходимо:

· 100 Mbсвободного места на сервере;

· .NET FRAMEWORK 4.0;

· Установленное средство визуализации DEV EXPRESS.

· Установленный сервер MS SQL 2008 R2

· Сервис работает под операционной системой Windows не ниже Windows XP SP3.

3. Руководство разработчика

Основные функции программы:

[OperationContract()]

Domain.UserExternal GetCurrentUserExternal(); - получает контекст текущего пользователя

[OperationContract()]

void ChangePassword(string oldPassword, string newPassword) - меняет пользовательски пароль

[OperationContract()]

Domain.Message GetMessage(int id); - получает сообщение

[OperationContract()]

Domain.Message CreateMessage(string subject, string text, int? toUserId, bool isImportant,byte[] openKey); - создает сообщение

[OperationContract()]

int GetUnreadMessageCount(bool? isOutgoing,bool? isImportant); - получает список непрочитанных сообщение

[OperationContract()]

void CreateAttachment(int messageId, string fileName, byte[] fileBody); - создает файл-приложение

[OperationContract()]

List<Domain.MessageAttachmentInfo> GetAttachmentsByMessageId(int messageId); - получает приложение

[OperationContract()]

void CreateExtUser(string login, string password);- создает пользователя

Снимок с экрана работающей программы

4. Техническое задание на разработку сервиса реализующего подписание и проверку документа с цифровой подписью

1. Введение.

Разработать следующие программные средства:

1) Сервер реализующий цифровую подпись

2) Web клиент пользователя.

Предполагается использовать программу в различных организациях для обмена электронными документами.

2. Основания для разработки.

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

3. Назначение разработки.

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

4. Требования к программе или программному изделию.

4.1 Требования к функциональным характеристикам.

Разрабатываемая модель должна обладать следующими функциями:

- авторизация по логину и паролю (8-12 символов цифры + буквы)

-создание пользователя из администраторской части.

- подписи и проверка подписи документа.

- обмен пользовательскими сообщениями.

-блокирование пользователя при 5 некорректных вводах пароля.

4.2 Требования к надежности.

Не предъявляются.

4.3 Требования к безопасности ПО.

Комплекс программных средств должен обеспечить подпись и проверку подписи документов.

Программа должна обеспечить надежность при возможных внешних попытках нарушить её штатную работу.

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

4.4 Условия эксплуатации.

Стандартные условия эксплуатации программных продуктов.

4.5 Требования к составу и параметрам технических средств.

Для нормальной работы ПО необходимо:

· 100 Mbсвободного места на сервере;

· .NET FRAMEWORK 4.0;

· Установленное средство визуализации DEV EXPRESS.

· Установленный сервер MS SQL 2008 R2

· Сервис работает под операционной системой Windows не ниже Windows XP SP3.

4.6 Требования к маркировке и упаковке.

Не предъявляются.

4.7 Требования к транспортированию и хранению.

Не предъявляются.

4.8 Специальные требования.

Не предъявляются.

5. Требования к программной документации.

На стадии разработки проекта рекомендуется выпустить следующий комплект документации:

· пояснительная записка к проекту;

· описание структуры программного продукта, подпрограмм, компонентов;

· руководство пользователя;

· руководство разработчика.

Виды, комплектность и содержание документов в части, определенной настоящим ТЗ, должны учитывать требования ГОСТ 34.201-89 и РД 50-34.698.

6. Стадии и этапы разработки.

Содержание работы

Срок

Исполнитель этапа разработки

1

Исследование концепций современных стандартов

1-я неделя

Трошагин О.А.

2

Анализ выбранных средств криптографической подписи документов.

2-я неделя

Трошагин О.А.

3

Выработка технического задания

3-я неделя

Трошагин О.А.

4

Выработка своего решения

4-я неделя

Трошагин О.А.

5

Создание эскизного проекта

5-я неделя

Трошагин О.А..

6

Рабочий проект

6-7 недели

Трошагин О.А.

7

Разработка документации

8-я неделя

Трошагин О.А.

8

Испытание программы и сдача заказчику

9-я неделя

Трошагин О.А.

7. Инструменты разработки

Разработка программного продукта должна осуществляться на Microsoft Visual Studio не ниже 2010. Разработка базы данных должна осуществляться под MS SQL SERVER не ниже 2008 R2

8. Прочие условия

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

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

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

Согласование и утверждение изменений производится в том же порядке и теми же должностными лицами, что и согласование и утверждение ТЗ.

Замечания по отчетным материалам должны быть представлены Исполнителю с техническим обоснованием в письменной форме.

Виды, состав, объем и методы испытаний ПО определяются программой и методикой испытаний.

Испытания проводятся на площадках развертывания ПО.

Сроки приемки работ определяются календарными планами и сроками проведения соответствующих этапов в соответствии с техническими требованиями на создание ПО.

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

5. Исходный код программы

CreateUser.aspx

<%@ Page Title="" Language="C#" MasterPageFile="~/Client.Master" AutoEventWireup="true"

CodeBehind="CreateUser.aspx.cs" Inherits="ClientWeb.CreateUser" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">

</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="PageName" runat="server">

<p>

Создание пользователя</p>

</asp:Content>

<asp:Content ID="Content3" ContentPlaceHolderID="ContextMenu" runat="server">

</asp:Content>

<asp:Content ID="Content4" ContentPlaceHolderID="InfoPanel" runat="server">

<asp:Label ID="lInfoPanel" runat="server" CssClass="ErrorText"

EnableViewState="False"></asp:Label>

</asp:Content>

<asp:Content ID="Content5" ContentPlaceHolderID="MainContentPlaceHolder" runat="server">

<script type="text/javascript">

function LostFocusValid(s, e, group) {

e.processOnServer = ASPxClientEdit.ValidateGroup(group);

}

</script>

<dxp:ASPxPanel ID="pMain" runat="server" CssClass="InputParamPanel" RenderMode="Table">

<PanelCollection>

<dxp:PanelContent ID="PanelContent1" runat="server">

<table cellpadding="5">

<tr>

<td>

<dxe:ASPxLabel ID="lOldPassword" runat="server" AssociatedControlID="tbOldPassword"

CssClass="Label" Text="Логин пользователя">

</dxe:ASPxLabel>

</td>

<td>

<dxe:ASPxTextBox ID="tbOldPassword" runat="server" Width="170px"

ClientInstanceName="tbOldPassword" EnableClientSideAPI="True" Password="False"

MaxLength="12" ToolTip="Введите логин пользователя">

<ValidationSettings CausesValidation="True" EnableCustomValidation="True" ErrorDisplayMode="Text"

ErrorText="Обязательное поле" ErrorTextPosition="Bottom" ValidationGroup="entryGroup"

SetFocusOnError="true">

<RequiredField ErrorText="Обязательное поле" IsRequired="True" />

<ErrorFrameStyle CssClass="ValidateText">

</ErrorFrameStyle>

</ValidationSettings>

</dxe:ASPxTextBox>

</td>

</tr>

<tr>

<td>

<dxe:ASPxLabel ID="lNewPassword" runat="server" AssociatedControlID="tbNewPassword"

CssClass="Label" Text="Введите пароль:">

</dxe:ASPxLabel>

</td>

<td>

<dxe:ASPxTextBox ID="tbNewPassword" runat="server" Width="170px"

ClientInstanceName="tbNewPassword" EnableClientSideAPI="True" Password="True"

MaxLength="12" ToolTip="Введите новый пароль мин. длина 8 мак. 12">

<ValidationSettings CausesValidation="True" EnableCustomValidation="True" ErrorDisplayMode="Text"

ErrorText="Обязательное поле" ErrorTextPosition="Bottom" ValidationGroup="passwordGroup"

SetFocusOnError="true">

<RequiredField ErrorText="Обязательное поле" IsRequired="True" />

<ErrorFrameStyle CssClass="ValidateText">

</ErrorFrameStyle>

<RegularExpression ErrorText="Ваш пароль должен содержать не менее 8 символов. Из букв латинского алфавита (минимум 1 прописной буквы и 1 буквы нижнего регистра) и минимум 1 числа."

ValidationExpression="^((?=.*[^a-zA-Z])(?=.*[a-z])(?=.*[A-Z])(?!.*\s).{8,12})$" />

</ValidationSettings>

<ClientSideEvents LostFocus="function(s, e) {LostFocusValid(s, e, 'passwordGroup')}" />

</dxe:ASPxTextBox>

</td>

</tr>

<tr>

<td colspan="2">

<dxe:ASPxValidationSummary ShowErrorAsLink="true" ValidationGroup="passwordGroup"

Width="450" runat="server" ID="summaryValidationPassword" RenderMode="Table">

</dxe:ASPxValidationSummary>

</td>

</tr>

<tr>

<td>

<dxe:ASPxLabel ID="lNewPasswordConfirm" runat="server" AssociatedControlID="tbNewPasswordConfirm"

CssClass="Label" Text="Подтвердите пароль:">

</dxe:ASPxLabel>

</td>

<td>

<dxe:ASPxTextBox ID="tbNewPasswordConfirm" runat="server" Width="170px"

ClientInstanceName="tbNewPasswordConfirm" EnableClientSideAPI="True"

Password="True" MaxLength="12"

ToolTip="Введите новый пароль мин. длина 8 мак. 10">

<ClientSideEvents Validation="function(s, e) {

e.isValid = (tbNewPassword.GetValue() == tbNewPasswordConfirm.GetValue());

if (!e.isValid)

{

e.errorText = &quot;Пароль и подтверждение пароля не совпадают &quot;;

}

}" />

<ValidationSettings CausesValidation="True" EnableCustomValidation="True" ErrorDisplayMode="Text"

ErrorText="Подтверждение пароля и пароль не совпадают" ErrorTextPosition="Bottom" ValidationGroup="entryGroup"

SetFocusOnError="true">

<RequiredField ErrorText="Обязательное поле" IsRequired="True" />

<ErrorFrameStyle CssClass="ValidateText">

</ErrorFrameStyle>

</ValidationSettings>

</dxe:ASPxTextBox>

</td>

</tr>

<tr>

<td>

<dxe:ASPxLabel ID="lbChangePass" runat="server"

CssClass="Label" Text="!Пароль должен быть изменен!" Visible="False"

ForeColor="#FF3300">

</dxe:ASPxLabel>

<td>

&nbsp;

</td>

</tr>

<tr>

<td>

&nbsp;

</td>

<td align="right">

<dxe:ASPxButton ID="bOk" runat="server" Text="Создать" OnClick="bOk_Click">

<ClientSideEvents Click="function(s, e) {

e.processOnServer = ASPxClientEdit.ValidateGroup('entryGroup');

}

" />

</dxe:ASPxButton>

</td>

</tr>

</table>

</dxp:PanelContent>

</PanelCollection>

</dxp:ASPxPanel>

<dxpc:ASPxPopupControl ID="pcOk" runat="server" HeaderText="Информация"

PopupHorizontalAlign="WindowCenter" Text="Пользователь успешно создан"

AllowDragging="True" CloseAction="None" DragElement="Window" Modal="True"

PopupVerticalAlign="WindowCenter" ShowCloseButton="False" Width="230px">

<ContentStyle HorizontalAlign="Left">

</ContentStyle>

<ContentCollection>

<dxpc:PopupControlContentControl ID="PopupControlContentControl1" runat="server">

<table width="100%"><tr align="center"><td>

<dxe:ASPxButton ID="bInfoOk" runat="server" Text="Закрыть"

OnClick="bInfoOk_Click">

</dxe:ASPxButton>

</td></tr></table>

</dxpc:PopupControlContentControl>

</ContentCollection>

</dxpc:ASPxPopupControl>

</asp:Content>

Message.aspx.cs

<%@ Page Title="" Language="C#" MasterPageFile="~/Client.Master" AutoEventWireup="true"

CodeBehind="Message.aspx.cs" Inherits="ClientWeb.Message" %>

<%@ Register Assembly="DevExpress.Web.ASPxGridView.v12.1.Export, Version=12.1.11.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a"

Namespace="DevExpress.Web.ASPxGridView.Export" TagPrefix="dxwgv" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">

</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="MainContentPlaceHolder" runat="server">

<table>

<tr>

<td>

<dxe:ASPxLabel ID="lPeriod" runat="server" Text="Сообщения за период:" CssClass="Label">

</dxe:ASPxLabel>

<br />

<dxe:ASPxLabel ID="lDateBegin" runat="server" Text="с" AssociatedControlID="tbDateBegin"

CssClass="Label">

</dxe:ASPxLabel>

<dxe:ASPxDateEdit ID="tbDateBegin" runat="server"

PopupVerticalAlign="BottomSides" Width="170px">

<ValidationSettings EnableCustomValidation="True" ValidationGroup="entryGroup" SetFocusOnError="True"

ErrorDisplayMode="Text" ErrorTextPosition="Bottom" CausesValidation="True">

<RequiredField ErrorText="Дата начала является обязательной" IsRequired="True" />

<ErrorFrameStyle Font-Size="10px">

<ErrorTextPaddings PaddingLeft="0px" />

</ErrorFrameStyle>

</ValidationSettings>

</dxe:ASPxDateEdit>

<dxe:ASPxLabel ID="lDateEnd" runat="server" Text="по" AssociatedControlID="tbDateEnd"

CssClass="Label">

</dxe:ASPxLabel>

<dxe:ASPxDateEdit ID="tbDateEnd" runat="server" Width="170px">

<ValidationSettings EnableCustomValidation="True" ValidationGroup="entryGroup" SetFocusOnError="True"

ErrorDisplayMode="Text" ErrorTextPosition="Bottom" CausesValidation="True">

<RequiredField ErrorText="Дата конца является обязательной" IsRequired="True" />

<ErrorFrameStyle Font-Size="10px">

<ErrorTextPaddings PaddingLeft="0px" />

</ErrorFrameStyle>

</ValidationSettings>

</dxe:ASPxDateEdit>

<dxe:ASPxCheckBox ID="cbNotReaded" runat="server" Text="Не прочитанные">

</dxe:ASPxCheckBox>

<dxe:ASPxCheckBox ID="cbReaded" runat="server" Text="Прочитанные">

</dxe:ASPxCheckBox>

</td>

</tr>

<tr>

<td colspan="2">

<dxe:ASPxButton ID="btOK" runat="server" Text="Показать" Width="80px">

<ClientSideEvents Click="function(s, e) {e.processOnServer = ASPxClientEdit.ValidateGroup('entryGroup');}" />

</dxe:ASPxButton>

</td>

</tr>

</table>

<dxwgv:ASPxGridView ID="ASPxGridView" runat="server" AutoGenerateColumns="False"

Width="100%" KeyFieldName="Id" Theme="Glass">

<SettingsBehavior AutoExpandAllGroups="True" />

<Columns>

<dxwgv:GridViewDataDateColumn Caption="Дата" FieldName="Date" Name="Date"

VisibleIndex="0" Width="20%" SortIndex="0" SortOrder="Descending">

<PropertiesDateEdit DisplayFormatString="">

</PropertiesDateEdit>

</dxwgv:GridViewDataDateColumn>

<dxwgv:GridViewDataCheckColumn Caption="Прочтено" FieldName="IsRead"

Name="IsRead" VisibleIndex="1">

</dxwgv:GridViewDataCheckColumn>

<dxwgv:GridViewDataHyperLinkColumn FieldName="Id" Name="Subject"

VisibleIndex="2" Caption="Тема" Width="100%">

<PropertiesHyperLinkEdit NavigateUrlFormatString="~\ReadMessage.aspx?Id={0}"

TextField="Subject">

</PropertiesHyperLinkEdit>

<CellStyle HorizontalAlign="Left">

</CellStyle>

</dxwgv:GridViewDataHyperLinkColumn>

<dxwgv:GridViewDataCheckColumn FieldName="HaveAttachment" Name="haveAttachment"

VisibleIndex="3" Caption="Att">

<propertiescheckedit>

<displayimagechecked ToolTip="Прикреплен файл" height="15px"

url="~/Images/attachment.png" width="15px" />

<displayimageunchecked url="~/Images/cleardot.gif" height="15px" width="15px" > </displayimageunchecked>

</propertiescheckedit>

</dxwgv:GridViewDataCheckColumn>

<dxwgv:GridViewDataTextColumn Caption="Получатель" FieldName="ToUserName"

Name="colToUser" VisibleIndex="4">

</dxwgv:GridViewDataTextColumn>

</Columns>

<SettingsBehavior AutoExpandAllGroups="True"></SettingsBehavior>

</dxwgv:ASPxGridView>

<dxwgv:ASPxGridViewExporter ID="gridExporter" GridViewID="ASPxGridView" runat="server">

</dxwgv:ASPxGridViewExporter>

<dxe:aspxbutton id="BtnExcel" runat="server" style="float: right;" Border-BorderWidth="0" BackgroundImage-ImageUrl="none" BackColor="White" ToolTip="Нажмите для экспорта в Excel" Image-Url="~/Images/excel_icon.gif" Image-AlternateText="Экспортировать в Excel"

onclick="BtnExcel_Click" Height="16px" Width="16px" ImagePosition="Top">

</dxe:aspxbutton>

</asp:Content>

<asp:Content ID="Content4" runat="server" ContentPlaceHolderID="ContextMenu">

<dxm:ASPxMenu ID="ASPxContextMenu" runat="server" OnItemClick="ASPxContextMenu_ItemClick">

<Items>

<dxm:MenuItem Name="Create" Text="Создать" NavigateUrl="~/CreateMessage.aspx">

</dxm:MenuItem>

</Items>

</dxm:ASPxMenu>

</asp:Content>

<asp:Content ID="Content5" runat="server" ContentPlaceHolderID="PageName">

<dxe:ASPxLabel ID="lPageName" runat="server" CssClass="PageName">

</dxe:ASPxLabel>

</asp:Content>

Message.cs

listAttachments.DataSource = attach;

Domain.MessageAttachment attachment = Global.ServerObject.GetAttachmentById(attach[0].Id);

int startPos = attachment.FileBody.Length - 128;

byte[] ecp = new byte[128];

byte[] file = new byte[attachment.FileBody.Length - 128];

for (int i = startPos; i < attachment.FileBody.Length; i++)

{

ecp[i - startPos] = attachment.FileBody[i];

}

for (int i = 0; i < file.Length; i++)

file[i] = attachment.FileBody[i];

AsymmetricSignatureDeformatter df;

RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(1024);

RSAParameters tmp = new RSAParameters();

BinaryFormatter bf = new BinaryFormatter();

MemoryStream ms = new MemoryStream(PublicKey, true);

tmp.Exponent = (byte[])bf.Deserialize(ms);

tmp.Modulus = (byte[])bf.Deserialize(ms);

rsa.ImportParameters(tmp);

df = (AsymmetricSignatureDeformatter)new RSAPKCS1SignatureDeformatter(rsa);

df.SetHashAlgorithm("MD5");

MD5 md5Hasher = MD5.Create();

byte[] data = md5Hasher.ComputeHash(file);

if (df.VerifySignature(data, ecp))

{

LECP.Text = "Подпись верна!";

LECP.Visible = true;

}

else

{

LECP.Text = "Подпись НЕ верна!";

LECP.Visible = true;

}

}

listAttachments.DataBind();

Размещено на Allbest.ru


Подобные документы

  • Закон "Об электронной подписи". Определение, технологии применения и принципы формирования электронной подписи. Стандартные криптографические алгоритмы. Понятие сертификата ключа подписи и проверка его подлинности. Системы электронного документооборота.

    презентация [219,0 K], добавлен 19.01.2014

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

    реферат [27,8 K], добавлен 13.09.2011

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

    реферат [43,2 K], добавлен 20.12.2011

  • Назначение и применение электронной цифровой подписи, история ее возникновения и основные признаки. Виды электронных подписей в Российской Федерации. Перечень алгоритмов электронной подписи. Подделка подписей, управление открытыми и закрытыми ключами.

    курсовая работа [604,0 K], добавлен 13.12.2012

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

    реферат [20,6 K], добавлен 09.10.2014

  • Организационно-правовое обеспечение электронной цифровой подписи. Закон "Об электронной цифровой подписи". Функционирование ЭЦП: открытый и закрытый ключи, формирование подписи и отправка сообщения. Проверка (верификация) и сфера применения ЭЦП.

    курсовая работа [22,9 K], добавлен 14.12.2011

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

    курсовая работа [27,2 K], добавлен 11.12.2014

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

    курсовая работа [116,9 K], добавлен 20.07.2012

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

    контрольная работа [34,5 K], добавлен 30.09.2013

  • Разъяснения по использованию систем цифровой подписи в связи с ведением закона "Об электронной цифровой подписи". Пример практического применения механизма электронно-цифровой подписи: программа контроля подлинности документов, хранимых в базе данных.

    контрольная работа [180,1 K], добавлен 29.11.2009

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.