Една от основните идеи, залегнали при проектирането и имплементирането на системата за цифрово подписване на документи в уеб среда, е тя да бъде платформено независима и да работи под всички масово използвани уеб браузъри и операционни системи.
4.1.Поддържани платформи
Сървърната част на системата е стандартно J2EE уеб приложение и може да работи безпроблемно върху различни хардуерни платформи, операционни системи и J2EE сървъри за приложения.
Клиентската част на приложението е проектирана да използва Java Plug-In, който се поддържа във всички масово използвани уеб браузъри и платформи – Internet Explorer, Mozilla, Firefox, Netscape, Opera и др. под Windows, Linux, Solaris и др.
4.2.Експериментално тестване на системата
По време на тестовете на системата NakovDocumentSigner използвахме следния софтуер oт страна на сървъра:
-
Windows XP SP2
-
Java Runtime Environment версия 1.4.2
-
сървър за J2EE уеб приложения Apache Tomcat версия 5.0.19
-
Struts framework версия 1.2
От страна на клиента системата успешно тествахме с:
-
Java Plug-In 1.4 (за аплета с PKCS#12 хранилище) и Java Plug-In 1.5 (за аплета със смарт карта)
-
уеб браузъри Internet Explorer 5.0, Internet Explorer 6.0, Mozilla 1.3, Mozilla 1.7, Firefox 1.0, Netscape Communicator 4.5 и Netscape 6.1 върху Windows 98, Windows 2000, Windows XP и Windows 2003 Server
-
Mozilla 1.3 върху Red Hat Linux 8.0 (с графична среда KDE 3.0)
-
смарт карта Utimaco Safeware с PKCS#11 драйвери Utimaco SafeGuard Smartcard Provider и карточетец ACR38
-
цифрови сертификати от VeriSign, Thawte, GlobalSign и StampIT
Върху всички посочени платформи и уеб браузъри системата работи нормално и без проблеми.
Системата беше разгледана и тествана и от специалисти от Асоциация за информационна сигурност (ISECA), както и от експерти, работещи в областта на удостоверителните услуги от „Информационно обслужване” АД (StampIT). Изказаното мнение беше като цяло позитивно. Критиките бяха свързани основно с необходимостта от доверие към подписания Java аплет, което може да притесни потребителя, както и да наруши сигурността на локалната му машина.
Части от системата бяха успешно използвани и внедрени в комерсиален проект, свързан с управлението на документи в държавната администрация, изпълнен от екип специалисти от фирма Технологика.
4.3.Недостатъци и проблеми
Ще разгледаме най-важните проблеми и недостатъци на системата NakovDocumentSigner:
-
Аплетите за подписване изискват наличие на Java Plug-In, който не е стандартна част от уеб браузърите, а се инсталира към тях допълнително. Изтеглянето и инсталирането на Java Plug-In може да създаде трудности, например ако потребителят няма права да инсталира софтуер върху работната станция.
-
Аплетите за подписване не използват стандартните хранилища за сертификати на уеб браузърите. Това създава неудобство на потребителя, като го отделя от унифицирания достъп до сертификатите, с който вероятно е свикнал. Допълнително неизползването на вградените в браузърите хранилища за сертификати може да създаде рискове за сигурността – например PIN кодът на смарт картата или паролата за достъп до PKCS#12 хранилището биха могли да бъдат подслушани по-лесно, а файловете със сертификати могат да бъдат копирани с по-малко усилия.
-
При изпълнение под Java Plug-In 1.4 потребителят не може да укаже, че вярва перманентно на даден подписан аплет, а трябва да потвърждава доверието си в него при всяко негово стартиране. Този проблем е решен при Java Plug-In 1.5.
-
Системата подписва само файлове, но не може да подписва уеб форми. При някои сценарии това може да се окаже неудобно.
-
Подписването на файл се осъществява отделно от изпращането на HTML формата. Това позволява формата да бъде изпратена без подпис или подписът да бъде променен преди изпращането на формата. И в двата случая сървърната част ще регистрира проблем със сигнатурата, но това може да създаде неудобства.
-
Подписаният файл се доставя отделно от неговия цифров подпис и от сертификата. Не е използван стандартът PKCS#7 (ftp://ftp.rsasecurity. com/pub/pkcs/doc/pkcs-7.doc), който позволява да се запишат в структура SignedData като едно цяло подписаният файл, неговата сигнатура и използваният при подписването сертификат (заедно с пълната му сертификационна верига).
-
Системата за верификация на сертификати не поддържа CRL списъци от анулирани сертификати и не ползва OSCP протокола за проверка на сертификати в реално време.
-
Системата позволява работа само с X.509 сертификати. Не се поддържат широкоразпространените PGP сертификати.
Системата NakovDocumentSigner има добри перспективи да се разшири и подобри в бъдещите си версии. Ето някои от посоките за подобрение:
-
Може да се имплементира възможност за подписване на уеб форми – да се подписва не само даден файл, а всички полета от дадена HTML форма, заедно с прикачените към нея файлове. Това ще разшири приложението на системата и ще позволи тя да се ползва в много повече уеб базирани системи.
-
Може да се имплементира възможност за подписване на уеб форма и съхранение на резултата като „подписан XML” по стандарта XMLDSIG (http://www.w3.org/TR/xmldsig-core/). Това ще отвори системата за по-лесно използване в хетерогенна среда.
-
Може да се реализира съхраняване като едно цяло в PKCS#7 SignedData обект на подписания файл, неговата сигнатура и използвания сертификат (заедно с пълната му сертификационна верига). Това ще улесни сървърните приложения, които проверяват цифровия подпис и използвания сертификат.
-
Системата за верификация на сертификати може да се разшири да поддържа CRL списъци от анулирани сертификати и OSCP протокола за проверка на сертификат в реално време. Това е все по-често изискване при изграждане на критични за сигурността информационни системи.
-
Би било добре системата да не използва Java Plug-In, защото това създава нужда от инсталиране на допълнителен софтуер и не позволява да бъде използвано хранилището за сертификати на уеб браузъра. Този въпрос може да се реши в бъдеще, когато напреднат уеб стандартите за работа с цифрови подписи и сертификати.
-
Може да се реализира поддръжка и на PGP сертификати, макар и те да нямат толкова голямо приложение при извършването на електронни транзакции.
|
Национална академия по разработка на софтуер
|
Лекторите
» Светлин Наков е преподавател по съвременни софтуерни технологии в СУ “Св. Климент Охридски”.
Той е автор на десетки научни и технически публикации и няколко книги, свързани с разработката на софтуер, заради което е търсен лектор и консултант.
През 2004 г. получава наградата "Джон Атанасов" от президента на България Георги Първанов за приноса му към развитието на информационните технологии и информационното общество.
» Мартин Кулов е изпълнителен директор във фирма “Код Атест”, където разработва проекти за повишаване качеството на софтуерните продукти в България чрез автоматизация на процесите и внедряване на системи за управление на качеството.
Мартин е опитен лектор и сертифициран от Майкрософт разработчик по програмите MCSD и MCSD.NET.
» Други инструктори с опит като преподаватели и програмисти.
|
Академията
» Национална академия по разработка на софтуер (НАРС) е център за професионално обучение на софтуерни специалисти.
» НАРС провежда задълбочени курсове по разработка на софтуер и съвременни софтуерни технологии.
» Предлагани специалности:
.NET Enterprise Developer
Java Enterprise Developer
» Качествено обучение с много практически упражнения
» Завършвате само за 3 месеца.
» Гарантирана работа след успешно завършване!
» Професионална сертификация!
» БЕЗПЛАТНО!
Учите безплатно, плащате след като завършите и започнете работа.
Стипендии от софтуерни фирми.
|
http://academy.devbg.org
| Заключение
Технологията на цифровия подпис все повече навлиза в ежедневието ни. С въвеждането на закона за електронния документ и електронния подпис и напредъка на електронното правителство нуждата от програмни средства за приложение на цифровия подпис в различни информационни системи също нараства. Липсата на единен технологичен стандарт, който позволява подписване на уеб форми и файлове във всички уеб браузъри, става все по-важен проблем.
В нашата работа именно този проблем беше анализиран в дълбочина и бяха разгледани подходите за неговото решаване. Направен бе преглед на технологиите, свързани с цифровия подпис, цифровите сертификати и инфраструктурата на публичния ключ, анализирани бяха съществуващите технологии за подписване в уеб среда и бяха дискутирани техните предимства и недостатъци.
В резултат на анализите се стигна се до решението да се реализира система за цифрово подписване на документи в уеб среда чрез Java аплет и Java базирано уеб приложение. Бяха разгледани проблемите при подписването на документи с PKCS#12 хранилище за сертификати и със смарт карта. Бяха проучени стандартните средства на Java платформата за работа с цифрови подписи и сертификати, както и подходите за верификация на сертификати и сертификационни вериги.
След всички направени проучвания бе реализирана системата за цифрово подписване на документи в уеб среда NakovDocumentSigner. Тя бе изградена като типично клиент-сървър приложение. От страна на клиента работи стандартен уеб браузър с HTML форма, в която са вградени Java аплети, които подписват документи с PKCS#12 хранилище и със смарт карта. От страна на сървъра работи Struts базирано J2EE уеб приложение, което посреща изпратените данни и проверява цифровия подпис, сертификат и сертификационна верига.
Системата NakovDocumentSigner е работещ пример, който илюстрира един платформено независим подход за използване на цифрови подписи от Java-базирани уеб приложения. Тя решава проблемите, които възникват при подписване на документи и файлове на машината на клиента, в неговия уеб браузър, и демонстрира как със средствата на Java платформата могат да се верифицират цифрови подписи, сертификати и сертификационни вериги.
NakovDocumentSigner се разпространява напълно свободно и може да бъде използван в чист или променен вид за всякакви цели, включително и в комерсиални продукти.
Нуждата от информационна сигурност при уеб приложенията непрекъснато нараства и това неизбежно води до развитие и усъвършенстване на свързаните с нея на технологии. Много е вероятно в някои бъдещи версии на най-разпространените уеб браузъри да се появят вградени средства за подписване на документи и HTML форми, използващи за целта сертификатите, инсталирани в тези браузъри, но докато тези средства се появят и се утвърдят, NakovDocumentSigner вероятно ще си остане едно от малкото свободни, платформено независими решения в това направление.
Използвана литература -
[Johner, 2000] Heinz Johner, Seiei Fujiwara, Amelia Sm Yeung, Anthony Stephanou, Jim Whitmore, Deploying a Public Key Infrastructure, IBM Redbooks, 2000, ISBN 0738415731
-
[Wikipedia-PKC, 2005] Wikipedia, Public-key cryptography, 2005 – http:// en.wikipedia.org/wiki/Public-key_cryptography
-
[Steffen, 1998] Daniel Steffen, PowerCrypt - a free cryptography toolkit for the Macintosh, Macquarie University, Sydney, Australia, 1998 – http://www.maths.mq. edu.au/~steffen/old/PCry/report/node9. html
-
[PGP, 1999] PGP 6.5.1 User's Guide in English, An Introduction to Cryptography, Network Associates, Inc., 1999 – ftp://ftp.pgpi.org/pub/ pgp/6.5/docs/english/IntroToCrypto.pdf
-
[NZSSC, 2005] New Zealand State Services Commission, PKI Architectures and Trust Models, 2005 – http://e.govt.nz/docs/see-pki-paper-4/chapter3.html
-
[GlobalSign, 1999] Общи условия на публични сертификационни услуги на GlobalSign (Certification Practice Statement – CPS), версия 3.0, раздел 13.1 (дефиниции), 1999 – http://www.bia-bg.com/globalsign.bg/ cps_chapter13.htm
-
[Raina, 2003] Kapil Raina, PKI Security Solutions for the Enterprise, John Wiley & Sons Inc., 2003, ISBN 047131529X
-
[Wikipedia, SSC, 2005] Wikipedia, Self-signed certificate, 2005 – http:// en.wikipedia.org/wiki/Self-signed_certificate
-
[RFC 3280] R. Housley, W. Polk, W. Ford, D. Solo, RFC 3280 - Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile, 2002 – http://www.rfc.net/rfc3280.html
-
[PKCS#12] PKCS#12: Personal Information Exchange Syntax, version 1.0, RSA Laboratories, 1999 – ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-12/ pkcs-12v1.doc
-
[PKCS#11] PKCS #11: Cryptographic Token Interface Standard, version 2.20, RSA Laboratories, 2004 – ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-20/pkcs-11v2-20.doc
-
[RFC 2560] M. Myers, R. Ankney, A. Malpani, S. Galperin, C. Adams, RFC 2560 - Internet X.509 Public Key Infrastructure Online Certificate Status Protocol – OCSP, 1999 – http://www.rfc.net/rfc2560.html
-
[MSDN ActiveX] MSDN Library: Introduction to ActiveX Controls, Microsoft, 1996 – http://msdn.microsoft.com/workshop/components/activex/intro. asp
-
[MSDN WinForms] MSDN Library: Developing Windows Forms Controls, Microsoft, 1999 – http://msdn.microsoft.com/library/en-us/cpguide/html/ cpconcreatingwinformscontrols.asp
-
[Lambert, 2001] John Lambert, MSDN Library: Introducing CAPICOM, Microsoft, 2001 – http://msdn.microsoft.com/library/en-us/dnsecure/ html/intcapicom.asp
-
[Netscape, 1997] Signing Text from JavaScript, Netscape Communications, 1997 – http://docs.sun.com/source/816-6152-10/
-
[Sun, 1995] The Java Tutorial: Writing Java Applets, Sun Microsystems, 1995 – http://java.sun.com/docs/books/tutorial/applet/
-
[JCA, 2004] Java Cryptography Architecture API Specification & Reference, Sun Microsystems, 2004 – http://java.sun.com/j2se/1.5/docs/guide/ security/CryptoSpec.html
-
[JCE, 2004] Java Cryptography Extension (JCE) Reference Guide, Sun Microsystems, 2004 – http://java.sun.com/j2se/1.5/docs/guide/security/ jce/JCERefGuide.html
-
[Mullan, 2003] Sean Mullan, Java Certification Path API Programmer's Guide, Sun Microsystems, 2003 – http://java.sun.com/j2se/1.5/docs/ guide/security/certpath/CertPathProgGuide.html
-
[Sun PKCS#11] Java PKCS#11 Reference Guide, Sun Microsystems, 2004 – http://java.sun.com/j2se/1.5/docs/guide/security/p11guide.html
-
[J2JS, 2004] Java Plug-in Developer Guide for J2SE 5.0: Java-to-Javascript Communication, Sun Microsystems, 2004 – http://java.sun. com/j2se/1.5/docs/guide/plugin/developer_guide/java_js.html
-
[Nakov, 2004] Svetlin Nakov, NakovDocumentSigner: A System for Digitally Signing Documents in Web Applications, Developer.com, 2004 – http://www.developer.com/java/web/article.php/3298051
Сподели с приятели: |