Alternative al keygen deprecato dell'HTML per i certificati client?

20

Il tag keygen viene utilizzato per far sì che i browser generino chiavi private e POST il CSR risultante al server, che può quindi emettere un certificato. Ora è stato deprecato , per ragioni piuttosto stupide ma questo è oltre il punto .

Quindi, quali sono le alternative per un browser per ottenere un certificato cliente?

    
posta André Borie 23.11.2015 - 09:55
fonte

4 risposte

7

In questo post nel forum di chromium ci sono alternative menzionate

Within the browser space, alternatives exist such as:

  • Use the device's native management capabilities if an enterprise use case. On Windows, this is Group Policy. On iOS/Android, this is the mobile device management suites. On OS X, this is Enterprise settings. On ChromeOS, there is chrome.enterprise.platformKeys [11] for enterprise-managed extensions.
  • Use WebCrypto to implement certificate enrollment, then deliver the certificate and (exported) private key in an appropriate format for the platform (such as PKCS#7) and allow the native OS UI to guide users through installation of certificates and keys.

WebCrypto è supportato da molti browser: [link]

E puoi usare openpgp.js e altre soluzioni. [openpgp.js]

Qui sono alcuni esempi.

Puoi anche generare un CSR: link

Alcune librerie per generare CSR: link

Ecco un esempio con PKIjs per generare certificati X509 autofirmati + i keypairs:

link

La funzione generateKey() crea coppie di chiavi.

link

    
risposta data 03.12.2015 - 16:29
fonte
4

L'API WebCrypto non è attualmente un'alternativa per il tag keygen, come confermato dal Specifiche API WebCrypto :

This API, while allowing applications to generate, retrieve, and manipulate keying material, does not specifically address the provisioning of keys in particular types of key storage, such as secure elements or smart cards. This is due to such provisioning operations often being burdened with vendor-specific details that make defining a vendor-agnostic interface an unsuitably unbounded task. Additionally, this API does not deal with or address the discovery of cryptographic modules, as such concepts are dependent upon the underlying user agent and are not concepts that are portable between common operating systems, cryptographic libraries, and implementations.

    
risposta data 15.12.2016 - 17:21
fonte
0

Ho appena scritto un'utilità di certificazione client basata su Web completamente cross-browser (richiede browser moderni). Consente agli utenti di eseguire l'autenticazione con password singola e l'autenticazione single-click. Le tue chiavi vengono crittografate con la tua password singola, quindi sei un po 'più sicuro delle chiavi <keygen> (poiché non sono protette da password). Gli utenti alla fine saranno in grado di creare e utilizzare identità multiple che possono essere diverse per diversi siti web, o addirittura scambiate per lo stesso sito. Inoltre, è controllato interamente tramite javascript, quindi puoi autorizzare qualcuno quando vuoi, non solo prima del caricamento della pagina.

Guarda qui: link

    
risposta data 05.04.2016 - 07:54
fonte
0

A questo punto (aprile 2017) ho dovuto creare un'app nativa. Solo FireFox funziona con il tag keygen e, indipendentemente dalla libreria javascript che potresti trovare, non potrai importare il certificato su Windows in modo che possa essere utilizzato da Chrome, ad esempio.

    
risposta data 13.04.2017 - 21:59
fonte

Leggi altre domande sui tag