Blia.it NON utilizza cookie (v. informativa)

Pagine principali

(clicca sul titolo per altri link o qui per il menu completo)

libri on line

firma digitale e cns

Esperimenti con HTML5

Link

Logo Saela.eu

Logo Neapolis Rai
Old Blia.it su Neapolis (Rai)

Opensignature

NO Bitcoin

Innovatore.it

Sixthlane

Road Trip Italy

Sandro Leggio

Centro Ibleo di Atletica Leggera

Logo ASD Libertas Acate
ASD Libertas Acate

Blia.it NON utilizza cookie (v. informativa)


Logo Blia.it

Novità del sito: Generatore fogli di cartelle per tombola

  

Novità del sito: Generatore fogli di cartelle per tombola

Istruzioni per firmare digitalmente (CAdES compatibile)

in ambiente Linux con Openssl e smartcard (per esperti o sviluppatori)


Software da scaricare:

Sorgenti di Openssl v.1.0.1g
Patch realizzata da noi per il supporto CAdES di Openssl
Engine PKCS11 per Openssl (sudo apt-get install libengine-pkcs11-openssl)

oppure, se volete usare il nuovo openssl 1.1.0
sorgenti di Openssl v.1.1.0
patch per openssl 1.1.0

o, infine, dal nostro repository su Github

N.B. in questo periodo (dicembre 2018), stiamo discutendo della patch con gli sviluppatori di OpenSSL, se volete seguire e, perché no, partecipare il link è https://github.com/openssl/openssl/pull/7611

Engine PKCS11 per Openssl 1.1.0 (sudo apt-get install libp11-2)

Opensc (sudo apt-get install opensc)
Driver PKCS11 del costruttore della smart card

  1. Per prima cosa dobbiamo applicare la patch e compilare openssl
    - patch -Np1 -r /dev/null < cades.patch
    - ./config && make && sudo make install

  2. assicuriamoci che la versione di openssl con la patch sia stata compilata correttamente eseguendo il comando /usr/local/ssl/bin/openssl cms ? tra le varie opzioni dovremmo trovare -cades, se sì, openssl è pronto

  3. procuriamoci alcuni dati che ci serviranno successivamente:
    - pkcs11-tool --module libbit4ipki.so -O (elenca gli oggetti presenti nella smart card), dovremmo trovarci qualcosa del genere:
    Certificate Object, type = X.509 cert label: DS User Certificate1 ID: 123456 - prendiamo nota dell'ID della chiave/certificato 123456
    - scarichiamo il certificato con pkcs11-tool --module libbit4ipki.so -r --type cert --id 123456 > certificato.der
    - convertiamo il certificato dal formato binario (DER) al formato test (PEM) con openssl x509 -in certificato.der -inform der -text -out certificato.pem

  4. Creiamo un file di configurazione per openssl, ad esempio openssl.cnf in cui scriviamo
    openssl_conf = openssl_init 
    [openssl_init] 
    engines = engine_section
    [engine_section]
    pkcs11 = pkcs11_section
    [pkcs11_section]
    engine_id = pkcs11
    dynamic_path = /usr/lib/ssl/engines/engine_pkcs11.so
    MODULE_PATH = /usr/lib/libbit4ipki.so
    
    (ovviamente i percorsi dei file possono cambiare)

  5. creiamo un file con comandi bash, ad esempio firma.sh in cui mettiamo:
    OPENSSL_CONF=./openssl.cnf export OPENSSL_CONF openssl cms -nosmimecap -md sha256 -nodetach -binary -cades -stream -outform DER -sign -signer certificato.pem \ -inkey 123456 -keyform engine -in $1 -out $1.p7m -engine pkcs11 (N.B. se si tratta di aggiungere una firma ad un documento precedentemente firmato, quindi nel caso di controfirma o firme multiple occorre sostituire la terza riga dello script con: openssl cms -nosmimecap -md sha256 -nodetach -binary -cades -stream -outform DER -resign -signer certificato.pem \ -inkey 123456 -keyform engine -inform der -in $1 -out $1.p7m -engine pkcs11 )
  6. siamo pronti per firmare: firma.sh miotesto.txt

Per dubbi, commenti e proposte potete usare l'email in fondo alla pagina.

lo staff di Blia.it