СОДЕРЖАНИЕ
1.1 Понятие, законодательное регулирование и виды электронных подписей
.2 Анализ существующих систем учета электронных подписей
.4 Выбор решения и его обоснование
2.1 Выбор модели проектирования
.2 Разработка структурной схемы приложения
.5 Разработка структуры базы данных
.6 Проектирование интерфейса приложения
3. РАСЧЕТ ЗАТРАТ НА ВНЕДРЕНИЕ СИСТЕМЫ
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1.1 Понятие, законодательное регулирование и виды электронных подписей
1.2 Анализ существующих систем учета электронных подписей
1.4 Выбор решения и его обоснование
2.1 Выбор модели проектирования
2.2 Разработка структурной схемы приложения
2.5 Разработка структуры базы данных
2.6 Проектирование интерфейса приложения
3. РАСЧЕТ ЗАТРАТ НА ВНЕДРЕНИЕ СИСТЕМЫ
Порядок аккредитации и требования, которым должен отвечать аккредитованный центр сертификации ключей, устанавливаются соответствующим уполномоченным органом государства или организации, выполняющей аккредитацию.
Центр сертификации ключей имеет право:
предоставлять услуги по удостоверению сертификатов электронной цифровой подписи
обслуживать сертификаты открытых ключей
получать и проверять информацию, необходимую для создания соответствия между информацией, указанной в сертификате ключа, и предъявленными документами.
В настоящее время в НУЗ «Отделенческая больница на ст. Вологда ОАО «РЖД»
ведется журнал поэкземплярного учета СКЗИ, представленный в таблице,
эксплуатационной и технической документации к ним, ключевых документов.
Таблица - Журнал учета
|
Отметка о подключении (установке) СКЗИ |
Отметка об изъятии СКЗИ из аппаратных средств, уничтожении ключевых документов |
Примечание |
||||
|
Ф.И.О. сотрудников органа криптографической защиты, пользователя СКЗИ, произведших подключение (установку) |
Дата подключения (установки) и подписи лиц, произ-ведших подключение (установку) |
Номера аппаратных средств, в которые установлены или к которым подключены СКЗИ |
Дата изъятия (уничто-жения) |
Ф.И.О. сотрудников органа криптографической защиты, пользователя СКЗИ, производивших изъятие (уничтожение) |
Номер акта или расписка об уничтожении |
|
|
9 |
10 |
11 |
12 |
13 |
14 |
15 |
Единицей поэкземплярного учета ключевых документов считается ключевой носитель многократного использования, ключевой блокнот. Если один и тот же ключевой носитель многократно используют для записи криптоключей, то его каждый раз следует регистрировать отдельно.
Реализация любого программного продукта, который будет применен на производстве, в каких-либо еще бизнес-процессах, в общественной или государственной деятельности, всегда начинается с написания технического задания.
Техническое задание - документ, содержащий требования заказчика к объекту закупки или разработки, определяющие условия и порядок ее проведения, в соответствии с которым осуществляются поставка товара, выполнение работ, оказание услуг и их приемка.
Грамотное составление технического задания позволяет:
исключить ошибочные и неправомерные требования;
проверить соответствие товаров, работ, услуг требованиям законодательства;
правильно рассчитать сроки, необходимые для выполнения работ, оказания услуг;
подробно и понятно описать предмет разработки, назначить ответственных специалистов;
представить результат разработки;
исключить несогласованности и ошибки;
осуществить проверку разработанного продукта.
При составлении технического задания заказчику следует руководствоваться следующими рекомендациями:
описание потребностей заказчика должно носить объективный характер;
формулировки задания должны быть понятными, лаконичными, непротиворечивыми, соответствовать сложившейся практике и обычаям делового оборота, не должны противоречить законодательству;
задание не должно предусматривать для исполнителя больше рисков и обременений, чем для заказчика.
В техническом задании целесообразно указать:
общую информацию о разработке;
информацию об объекте разработки;
требования к исполнителю;
условия исполнения контракта;
информацию о приложениях.
Как показывает практика, отсутствие технического задания или его небрежное составление очень часто приводит к значительно большим финансовым потерям, чем было сэкономлено времени на этом этапе. Кроме финансовых потерь, в данном случае также возможны репутационные потери компании-подрядчика, что, как правило, гораздо хуже, чем финансовые потери. В зависимости от стадии разработки, когда были обнаружены проблемы с техническим заданием, финансовые потери для компании-подрядчика составляют (указана кратность потерянного времени к сэкономленному времени):
этап проектирования - два раза;
этап реализации - пять раз;
этап тестирования - десять раз;
этап эксплуатации - до ста раз.
Приведенные выше значения получены эмпирическим путем, при опросе нескольких разработчиков и архитекторов информационных систем и приложений. Кроме этого, к финансовым потерям компании-разработчика могут добавиться финансовые потери компании или организации, эксплуатирующей приложение, особенно, если приложение используется не в тестовом режиме, а уже включено в рабочие- и бизнес-процессы организации.
Приведем краткое техническое задание на разработку приложения для учета электронных подписей в компании.
Необходимо произвести проектирование и реализацию приложения, предназначенного для учета электронных подписей в рамках одной организации.
Приложение должно давать возможность добавлять, редактировать и удалять информацию об электронных подписях, которые имеются у сотрудников данной организации, а также выполнять подписание документов с помощью криптопровайдера КриптоПро и проверять корректность уже подписанных документов.
Также приложение должно давать возможность добавлять информацию об операциях, производимых с сертификатами электронной подписи (выпуск сертификата, его отзыв и компрометирование и так далее).
Приложение должно корректно работать под управлением операционной системы семейства Windows, версии XP и более младших (Vista, Seven, Windows 8, Windows 10). При проектировании приложения необходимо учесть вероятную потребность переноса приложения на операционные системы семейства Unix, iOS, Android.
Проектирование приложения должно включать в себя следующие части:
разработку UML-диаграмм приложения (прецедентов, компонентов, классов);
разработку диаграмм, не входящих во множество диаграмм языка проектирования UML (структурная и ER-диаграмма);
проектирование интерфейса приложения;
проектирование базы данных приложения.
Интерфейс приложения для учета электронных подписей в организации должен быть максимально простым и понятным для пользователя, а также снабжен необходимыми подсказками, чтобы обеспечить низкий порог вхождения и минимальное время обучения сотрудников организации.
Приложение должно корректно реагировать на возможные ошибки в процессе работы, не прерывать работу, если это возможно, и по возможности возвращать сообщение об ошибке с понятным пользователю описанием.
После реализации приложения необходимо произвести его описание и тестирование правильности его работы на различных наборах входных данных.
Также требуется произвести технико-экономическое обоснование целесообразности разработки и внедрения приложения путем расчета трудозатрат и финансовых затрат на описанные выше в техническом задании действия.
На этом составление технического задания на разработку приложения для учета электронных подписей в организации можно считать завершенным.
Для реализации приложения для ПК был выбран язык программирования C# и среда разработки Visual Studio.
C# - объектно-ориентированный язык программирования. Разработан в 1998-2001 годах группой инженеров под руководством Андерса Хейлсберга в компании Microsoft как язык разработки приложений для платформы Microsoft .NET Framework [2].
.NET Framework - программная платформа, выпущенная компанией Microsoft в 2002 году. Основой платформы является общеязыковая среда исполнения Common Language Runtime (CLR), которая подходит для разных языков программирования [3]. Функциональные возможности CLR доступны в любых языках программирования, использующих эту среду.
C# относится к семье языков с C-подобным синтаксисом, из них его синтаксис наиболее близок к C++ и Java. Язык имеет статическую типизацию, поддерживает полиморфизм, перегрузку операторов, делегаты, атрибуты, события, свойства, обобщённые типы и методы, итераторы, анонимные функции с поддержкой замыканий, LINQ, исключения, комментарии в формате XML [4].
Microsoft Visual Studio - линейка продуктов компании Microsoft, включающих интегрированную среду разработки программного обеспечения и ряд других инструментальных средств. Данные продукты позволяют разрабатывать как консольные приложения, так и приложения с графическим интерфейсом, в том числе с поддержкой технологии Windows Forms, а также веб-сайты, веб-приложения, веб-службы как в родном, так и в управляемом кодах для всех платформ, поддерживаемых Windows, Windows Mobile, Windows CE, .NET Framework, Xbox, Windows Phone .NET Compact Framework и Silverlight.
Visual Studio включает в себя редактор исходного кода с поддержкой технологии IntelliSense и возможностью простейшего рефакторинга кода. Встроенный отладчик может работать как отладчик уровня исходного кода, так и отладчик машинного уровня. Остальные встраиваемые инструменты включают в себя редактор форм для упрощения создания графического интерфейса приложения, веб-редактор, дизайнер классов и дизайнер схемы базы данных. Visual Studio позволяет создавать и подключать сторонние дополнения (плагины) для расширения функциональности практически на каждом уровне, включая добавление поддержки систем контроля версий исходного кода, добавление новых наборов инструментов или инструментов для прочих аспектов процесса разработки программного обеспечения.
В качестве языка для разработки Web-приложения был выбран язык программирования PHP, в качестве программной платформы - фреймворк Yii2, а в качестве систему управления базами данных - СУБД MySQL [5].
PHP - скриптовый язык общего назначения, интенсивно применяемый для разработки веб-приложений. В настоящее время поддерживается подавляющим большинством хостинг-провайдеров и является одним из лидеров среди языков, применяющихся для создания динамических веб-сайтов [6].
Язык и его интерпретатор разрабатываются группой энтузиастов в рамках проекта с открытым кодом. Проект распространяется под собственной лицензией, несовместимой с GNU GPL.
В области веб-программирования, в частности серверной части, PHP - один из популярных сценарных языков.
Популярность в области построения веб-сайтов определяется наличием большого набора встроенных средств для разработки веб-приложений:
автоматическое извлечение POST и GET-параметров, а также переменных окружения веб-сервера в предопределённые массивы;
взаимодействие с большим количеством различных систем управления базами данных (MySQL, PostgreSQL, Oracle и так далее);
автоматизированная отправка HTTP-заголовков;
работа с HTTP-авторизацией;
работа с cookies и сессиями;
работа с локальными и удалёнными файлами, сокетами;
обработка файлов, загружаемых на сервер;
работа с Xforms.
Синтаксис PHP подобен синтаксису языка Си. Некоторые элементы, такие как ассоциативные массивы и цикл foreach, заимствованы из Perl.
Для работы программы не требуется описывать какие-либо переменные, используемые модули и т. п. Любая программа может начинаться непосредственно с оператора PHP.
PHP является языком программирования с динамической типизацией, не требующим указания типа при объявлении переменных, равно как и самого объявления переменных. Преобразования между скалярными типами зачастую осуществляются неявно без дополнительных усилий (впрочем, PHP предоставляет широкие возможности и для явного преобразования типов).
PHP-скрипты обычно обрабатываются интерпретатором в порядке, обеспечивающем кроссплатформенность разработанного приложения:
лексический анализ исходного кода и генерация лексем;
синтаксический анализ полученных лексем;
генерация байт-кода;
выполнение байт-кода интерпретатором (без создания исполняемого файла).
Для увеличения быстродействия приложений возможно использование специального программного обеспечения, так называемых акселераторов. Принцип их работы заключается в кэшировании однажды сгенерированного байт-кода в памяти и/или на диске, таким образом, из процесса работы приложения исключаются этапы 1-3, что в общем случае ведёт к значительному ускорению работы.
Важной особенностью является то, что разработчику нет необходимости заботиться о распределении и освобождении памяти. Ядро PHP реализует средства для автоматического управления памятью; вся выделенная память возвращается системе после завершения работы скрипта [7].