Форум КриптоПро
»
Общие вопросы
»
Общие вопросы
»
Web API как альтернатива плагинам
Статус: Участник
Группы: Участники
Зарегистрирован: 27.10.2015(UTC) Сообщений: 17  Откуда: Москва Сказал(а) «Спасибо»: 8 раз
|
Зачем вы до сих пор пишите плагины к браузерам? Возможно это было единственным решением 10 лет назад. Но сейчас гораздо проще и дешевле написать единственный HTTP-сервис, чем поддерживать множество постепенно отсыревающих плагинов.
Основные положения по HTTP-сервису: 1. Висит исключительно на одном из портов localhost (например, на порту 3999), т.е. НЕдоступен из сети. 2. Предоставляет доступ к КриптоПро ЭЦП SDK посредством HTTP-запросов. Например, отправив POST с файлом на http://localhost:3999/api/csp/sign?key=myKeyId, сервис подпишет его ключом myKeyId и вернет подпись в бинарном виде (application\octet-stream). 3. Хостит внутри себя сайт для настройки КриптоПро (http://localhost:3999/index.html). С его помощью, например, можно настроить CORS, т.е. список сайтов, которым доступен HTTP-сервис.
Стоит заметить, что такой HTTP-сервис не требует прав администратора, и настроек файервола. Распространять сервис можно в виде локальной службы Windows. От браузеров требуется лишь возможность выполнять AJAX-запросы из JavaScript. А это могут делать все, даже мертвый IE8. И никаких посторонних объектов в JS API, все чисто, надежно, красиво.
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 23.04.2010(UTC) Сообщений: 69
Сказал(а) «Спасибо»: 13 раз Поблагодарили: 4 раз в 4 постах
|
Автор: dizel3d  проще и дешевле написать единственный HTTP-сервис, чем поддерживать множество постепенно отсыревающих плагинов.
были (звучали) такие мысли; основные доводы против были такие, что написать качественный http-сервис (сервер) не так просто, по крайней мере прикладные программисты не решились.
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 14,211   Сказал «Спасибо»: 622 раз Поблагодарили: 2399 раз в 1888 постах
|
Автор: lab  Автор: dizel3d  проще и дешевле написать единственный HTTP-сервис, чем поддерживать множество постепенно отсыревающих плагинов.
были (звучали) такие мысли; основные доводы против были такие, что написать качественный http-сервис (сервер) не так просто, по крайней мере прикладные программисты не решились. lab, а Вы какую организацию предоставляете? Мы выбрали путь - локальный http-сервис для криптографии и https-обмена с серверами. (но даже не в виде службы, а простого клиентского приложения, с настройкой из области уведомлений). |
|
 1 пользователь поблагодарил Андрей * за этот пост.
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 27.10.2015(UTC) Сообщений: 17  Откуда: Москва Сказал(а) «Спасибо»: 8 раз
|
Автор: lab  Автор: dizel3d  проще и дешевле написать единственный HTTP-сервис, чем поддерживать множество постепенно отсыревающих плагинов.
были (звучали) такие мысли; основные доводы против были такие, что написать качественный http-сервис (сервер) не так просто, по крайней мере прикладные программисты не решились. Компания http://itglobal.ru/ работает в банковском секторе. У нас есть WEB-сайты, требующие применения Валидата CSP. Решений для браузеров у Валидаты нет. Поэтому мы написали свою инфраструктуру плагинов. На деле все они оказались нестабильными: у одного клиента браузер виснет, у другого не работает, потом еще и Chrome отказался от NPAPI. Таким образом, мы тратим много времени на тех. поддержку. Но недавно мы сделали на C# .NET всего за 15 человеко-часов рабочий вариант HTTP-сервиса в виде консольного приложения. Решение на наш взгляд довольно надежное. Собираемся завернуть его в локальную службу Windows. Хочется услышать ваше мнение о безопасности приложения/службы в сравнении с плагинами. В свою очередь мы готовы поделиться своим опытом. Отредактировано пользователем 29 октября 2015 г. 9:52:47(UTC)
| Причина: Не указана
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 23.04.2010(UTC) Сообщений: 69
Сказал(а) «Спасибо»: 13 раз Поблагодарили: 4 раз в 4 постах
|
Андрей *Мы эксплуатируем решения на базе криптопровайдера Validata CSP Автор: dizel3d  ну, с вашей компанией мы точно контактировали ) Валидата держится на ките, который называется сертифицированное решение (программно-аппаратный комплекс), возможно поэтому считает, что разработкой полноценного плагина должен заниматься разработчик прикладных решений.. Наверняка есть и другие причины. Кстати, Криптопрошный плагин вполне замечательно работает с Validata CSP. Изначально плагин был привлекателен тем, что это единственное легальное решение для браузера. Собственный браузер, который дружит с плагином и т.д. - это как раз то, от чего хотелось уйти; то есть уйти от, так или иначе, толстого клиента. Сколько крови попили эти плагины (все) в борьбе за их работоспособность, и в борьбе с офисными админами, которые с борются со всеми плагинами. :) я был бы сторонником простого HTTP сервиса (сервера), не требующего сложной установки и необходимости административных прав для его установки. Про безопасность плагина против локальный http-сервис .. пока нет мыслей, готов послушать.
|
 1 пользователь поблагодарил lab за этот пост.
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 22.01.2008(UTC) Сообщений: 675   Откуда: Йошкар-Ола Сказал «Спасибо»: 3 раз Поблагодарили: 95 раз в 68 постах
|
Автор: dizel3d  Зачем вы до сих пор пишите плагины к браузерам? Возможно это было единственным решением 10 лет назад. Но сейчас гораздо проще и дешевле написать единственный HTTP-сервис, чем поддерживать множество постепенно отсыревающих плагинов.
Основные положения по HTTP-сервису: 1. Висит исключительно на одном из портов localhost (например, на порту 3999), т.е. НЕдоступен из сети. 2. Предоставляет доступ к КриптоПро ЭЦП SDK посредством HTTP-запросов. Например, отправив POST с файлом на http://localhost:3999/api/csp/sign?key=myKeyId, сервис подпишет его ключом myKeyId и вернет подпись в бинарном виде (application\octet-stream). 3. Хостит внутри себя сайт для настройки КриптоПро (http://localhost:3999/index.html). С его помощью, например, можно настроить CORS, т.е. список сайтов, которым доступен HTTP-сервис.
Стоит заметить, что такой HTTP-сервис не требует прав администратора, и настроек файервола. Распространять сервис можно в виде локальной службы Windows. От браузеров требуется лишь возможность выполнять AJAX-запросы из JavaScript. А это могут делать все, даже мертвый IE8. И никаких посторонних объектов в JS API, все чисто, надежно, красиво. Собственно такое решение даже предлагается самой компанией Крипто-ПРО: сервер электронной подписи DSS. Так что и они также идут в направлении развития Web Services. |
С уважением, Юрий Строжевский |
 1 пользователь поблагодарил Юрий за этот пост.
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 27.10.2015(UTC) Сообщений: 17  Откуда: Москва Сказал(а) «Спасибо»: 8 раз
|
Автор: Юрий  Собственно такое решение даже предлагается самой компанией Крипто-ПРО: сервер электронной подписи DSS. Так что и они также идут в направлении развития Web Services. Интересно, спасибо. Это более глобальное решение с другим сценарием использования, всё таки. Мы же говорим об очень простом локальном сервисе, установленном на компьютере конечного пользователя и заменяющим собой плагин(ы) к браузеру. Идея: КриптоПро DSS работает по SOAP, который невозможно использовать непосредственно из браузера. Но DSS с JSON API запросто сможет стать полноценной заменой плагинов. Отредактировано пользователем 30 октября 2015 г. 12:57:46(UTC)
| Причина: Не указана
|
|
|
|
|
|
Статус: Вам и не снилось
Группы: Администраторы
Зарегистрирован: 24.12.2007(UTC) Сообщений: 831 Откуда: Крипто-Про
Сказал(а) «Спасибо»: 1 раз Поблагодарили: 48 раз в 44 постах
|
Глубоко в данную тему мы не вдумывались. Однако, на поверхности лежит одна глобальная проблема с юзабилити. Если эту штуку сделать как системный сервис, то она не сможет ни понять ключами какого пользователя нужно подписывать, ни получить к ним доступ. Остаётся вариант простого приложения, работающего в фоне в сессии пользователя. Но тогда, если работает одновременно несколько пользователей, то их процессы не смогут слушать на одном порте, а значит JS-код в браузере должен как-то найти нужный процесс нужного пользователя. Как вы собираетесь решать эту задачу? |
|
|
|
|
|
|
Статус: Вам и не снилось
Группы: Администраторы
Зарегистрирован: 24.12.2007(UTC) Сообщений: 831 Откуда: Крипто-Про
Сказал(а) «Спасибо»: 1 раз Поблагодарили: 48 раз в 44 постах
|
Придумалась проблема и с безопасностью. Плагин к браузеру живёт в модели "Доверять ли данному сайту подписывать что угодно?". Локальное приложение должно работать в модели "Пришёл запрос на подписание. Возможно, от злоумышленника." Плагин может доверенным образом узнать адрес сайта, который к нему обращается. Локальное приложение не может. Поэтому плагину достаточно задать пользователю вопрос "Такой-то сайт пытается что-то подписать. Разрешить?" и продолжить в зависимости от ответа. Локальное приложение же должно показать пользователю документ и получить подтверждение на подписание именно этого документа именно этим сертификатом. |
|
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 27.10.2015(UTC) Сообщений: 17  Откуда: Москва Сказал(а) «Спасибо»: 8 раз
|
Автор: Смирнов  Придумалась проблема и с безопасностью. Плагин к браузеру живёт в модели "Доверять ли данному сайту подписывать что угодно?". Локальное приложение должно работать в модели "Пришёл запрос на подписание. Возможно, от злоумышленника." Плагин может доверенным образом узнать адрес сайта, который к нему обращается. Локальное приложение не может. Поэтому плагину достаточно задать пользователю вопрос "Такой-то сайт пытается что-то подписать. Разрешить?" и продолжить в зависимости от ответа. Локальное приложение же должно показать пользователю документ и получить подтверждение на подписание именно этого документа именно этим сертификатом. Нет. Локальное приложение может узнать с какого сайта пришел запрос. Браузер передает эту информацию в заголовоке Origin, который из JS изменить нельзя.
|
|
|
|
|
|
Форум КриптоПро
»
Общие вопросы
»
Общие вопросы
»
Web API как альтернатива плагинам
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close