EDS в браузъра проблеми, решения, личен опит

проблеми

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

Всъщност днес ситуацията с цифровия подпис в браузъра все още не е толкова тъжна, както преди няколко години, но все още е далеч от идеалната. Тази тема също беше повдигната няколко пъти върху Хабре, например тук и тук.

Под разрезът е разказ за самия проблем, за това как този проблем може да бъде решен, за това как го реших, както и лични впечатления за това как стоят нещата с EDS в Беларус.

Същността на проблема и какво ще се случи с него утре

Проблемът е доста тривиален: искате ли да внедрите EDS на клиента в браузъра, мислите ли да използвате любимия си javascript за това? Нищо няма да работи и това е така, защото браузърите просто не предоставят API за работа със сертификати, маркери, подписи и т.н. и така нататък ... Как трябва да изглежда този механизъм в мечтите на всеки уеб разработчик? Вероятно нещо подобно:

Да, и също би било чудесно, ако всичко това подкрепи националните ГОСТ ... е, аз просто мечтаех за това. За съжаление няма да намерите подобно нещо в съвременните браузъри. Разбира се, има плахи опити да се приложи нещо подобно в Mozilla, но предупреждението в заглавието на статията е много тъжно:

Между другото, ако някой се опита да използва този API, отпишете се, много интересно.
Има и споменаване на Crypto в хранилището на W3C. Най-вероятно работата там започна не толкова отдавна, там сега няма много материали, но последната актуализация беше наскоро, така че работата продължава:

Дали всичко това ще бъде припомнено и най-важното, кога ще се случи, вероятно никой няма да ви каже днес. И така, какво остава да направим за разработчиците, които се нуждаят тук и сега?

Искам да направя резервация веднага, EDS в браузър е може би един от малкото случаи, когато разработчикът просто е принуден да използва различни трикове и патерици, ще изброя най-популярните от тях:

  • използване на ActiveX (CAPICOM)
  • използване на приставки за браузъри
  • с помощта на Java аплети
  • използване на тунел (Stunnel)

Нека да разгледаме недостатъците на всеки от тях, няма да описвам предимствата, IMHO, всички патерици имат едно - "ами, работи".

Използва се в 99% от случаите, когато е необходимо да се внедри EDS в браузър, банките, платформите за търговия и други сериозни организации не се колебаят да го използват. Според мен сега това е най-лошият вариант, защо?
Свикнали ли сте да използвате любимите си FF или Chrome за работа? - Забрави! ActiveX работи само в IE.
Не обичате да ровите в настройките на браузъра? - И трябва! Преди всичко да работи, трябва да се впуснете в настройките за сигурност на вашия IE.
Или може би сте толкова напреднали, че имате Win7 и дори x64, или може би сте инсталирали IE9-10 за себе си? - Много напразно, най-вероятно няма да успеете.