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 за себе си? - Много напразно, най-вероятно няма да успеете.