Java за цифрово подписване на документи в уеб


Глава 4.Тестване, оценка и усъвършенстване



страница14/14
Дата14.08.2018
Размер2.83 Mb.
#78668
1   ...   6   7   8   9   10   11   12   13   14

Глава 4.Тестване, оценка и усъвършенстване


Една от основните идеи, залегнали при проектирането и имплементирането на системата за цифрово подписване на документи в уеб среда, е тя да бъде платформено независима и да работи под всички масово използвани уеб браузъри и операционни системи.

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 сертификати.

4.4.Бъдещо развитие и усъвършенстване


Системата 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 вероятно ще си остане едно от малкото свободни, платформено независими решения в това направление.


Използвана литература


  1. [Johner, 2000] Heinz Johner, Seiei Fujiwara, Amelia Sm Yeung, Anthony Stephanou, Jim Whitmore, Deploying a Public Key Infrastructure, IBM Redbooks, 2000, ISBN 0738415731

  2. [Wikipedia-PKC, 2005] Wikipedia, Public-key cryptography, 2005 – http:// en.wikipedia.org/wiki/Public-key_cryptography

  3. [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

  4. [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

  5. [NZSSC, 2005] New Zealand State Services Commission, PKI Architectures and Trust Models, 2005 – http://e.govt.nz/docs/see-pki-paper-4/chapter3.html

  6. [GlobalSign, 1999] Общи условия на публични сертификационни услуги на GlobalSign (Certification Practice Statement – CPS), версия 3.0, раздел 13.1 (дефиниции), 1999 – http://www.bia-bg.com/globalsign.bg/ cps_chapter13.htm

  7. [Raina, 2003] Kapil Raina, PKI Security Solutions for the Enterprise, John Wiley & Sons Inc., 2003, ISBN 047131529X

  8. [Wikipedia, SSC, 2005] Wikipedia, Self-signed certificate, 2005 – http:// en.wikipedia.org/wiki/Self-signed_certificate

  9. [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

  10. [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

  11. [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

  12. [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

  13. [MSDN ActiveX] MSDN Library: Introduction to ActiveX Controls, Microsoft, 1996 – http://msdn.microsoft.com/workshop/components/activex/intro. asp

  14. [MSDN WinForms] MSDN Library: Developing Windows Forms Controls, Microsoft, 1999 – http://msdn.microsoft.com/library/en-us/cpguide/html/ cpconcreatingwinformscontrols.asp

  15. [Lambert, 2001] John Lambert, MSDN Library: Introducing CAPICOM, Microsoft, 2001 – http://msdn.microsoft.com/library/en-us/dnsecure/ html/intcapicom.asp

  16. [Netscape, 1997] Signing Text from JavaScript, Netscape Communications, 1997 – http://docs.sun.com/source/816-6152-10/

  17. [Sun, 1995] The Java Tutorial: Writing Java Applets, Sun Microsystems, 1995 – http://java.sun.com/docs/books/tutorial/applet/

  18. [JCA, 2004] Java Cryptography Architecture API Specification & Reference, Sun Microsystems, 2004 – http://java.sun.com/j2se/1.5/docs/guide/ security/CryptoSpec.html

  19. [JCE, 2004] Java Cryptography Extension (JCE) Reference Guide, Sun Microsystems, 2004 – http://java.sun.com/j2se/1.5/docs/guide/security/ jce/JCERefGuide.html

  20. [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

  21. [Sun PKCS#11] Java PKCS#11 Reference Guide, Sun Microsystems, 2004 – http://java.sun.com/j2se/1.5/docs/guide/security/p11guide.html

  22. [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

  23. [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

Каталог: books -> signatures
books -> В обятията на шамбала
books -> Книга се посвещава с благодарност на децата ми. Майка ми и жена ми ме научиха да бъда мъж
books -> Николай Слатински “Надеждата като лабиринт” София, Издателство “виденов & син”, 1993 год
books -> София, Издателство “Българска книжница”, 2004 год. Рецензенти доц д. ик н. Димитър Йончев, проф д-р Нина Дюлгерова Научен редактор проф д-р Петър Иванов
books -> Николай Слатински “Измерения на сигурността” София, Издателство “Парадигма”, 2000 год
books -> Книга 2 щастие и успех предисловие
books -> Превръщане на числа от една бройна система в друга
books -> Тантриското преобразяване
signatures -> Java за цифрово подписване на документи в уеб


Сподели с приятели:
1   ...   6   7   8   9   10   11   12   13   14




©obuch.info 2024
отнасят до администрацията

    Начална страница