Architektury, aby uzyskać dostęp do Smart Card z ogólnej przeglądarki? Lub: Jak wypełnić lukę między przeglądarką a stosem PC / SC?

Jakie są możliwe architektury po stronie klienta, aby uzyskać dostęp do lokalnej karty inteligentnej z ogólnej przeglądarki (podłączonej do serwera za pomocą http (s)), najlepiej z Javascript, z minimalnym kłopotem instalacyjnym dla użytkownika końcowego? Serwer musi być w stanie co najmniej wydać wybrane APDU na kartę (lub może przekazać część tego kodu generowanego przez klienta). Zakładam dostępność po stronie klienta działającego stosu PC / SC wraz z czytnikiem kart inteligentnych. To rozsądne założenie przynajmniej w Windowsie od XP, nowoczesnym OS X i Uniksach.

Do tej pory zidentyfikowałem następujące opcje:

Niektóre niestandardowe ActiveX. To właśnie wykorzystuje moja istniejąca aplikacja (opracowaliśmy ją we własnym zakresie). Wdrożenie jest bardzo łatwe dla klientów korzystających z IE po uzyskaniu zgody na zainstalowanie ActiveX, ale nie pasuje do wymagań „ogólnej przeglądarki”.
Aktualizacja: ActiveX jest obsługiwany głównie przez przestarzałe IE, w tym IE11; ale nie przez Edge'a.Niektóre rozszerzenia przeglądarki PC / SC przy użyciu interfejsu API wtyczki Netscape, co wydaje się gładkim rozszerzeniem powyższego. Jedyny gotowy egzemplarz, który znalazłemPołącz się, ale wydaje sięledwo żywy, jego APIdokumentacja (webarchive) nie jest już oficjalnie dostępny i ma silne powiązania z konkretnym dostawcą kart inteligentnych. Zasada może być miła, ale wykonanie takiej wtyczki dla każdej platformy byłoby dużo pracy.
Aktualizacja: Wsparcie dla NPAPI jest odrzucane przez wiele przeglądarek, w tym Chrome i Firefox.Aplet Java, działający na bazie JVM Oracle (1.) 6 lub nowszego, który jest dostarczanyjavax.smartcardio. To dobrze z funkcjonalnego punktu widzenia, dobrze udokumentowane, mogę żyć z kilkoma znanymi błędami, ale obawiam się nieodpartej spirali w dół dotyczącej akceptacji rozszerzenia Java jako przeglądarki.

Masz jakiś inny pomysł?

Ponadto: jest jakiś sposób, aby zapobiec nadużywaniu jakiegokolwiek interfejsu PC / SC przez przeglądarkę przez nieuczciwy serwer (np. Prezentując 3 błędne PIN-y, aby zablokować kartę, tylko z powodu jej paskudności lub robiąc jeszcze więcej złych rzeczy).

questionAnswers(10)

yourAnswerToTheQuestion