Condividi tramite


Strumento Nome sicuro (Sn.exe)

Lo strumento nome sicuro consente di firmare assembly con nomi sicuri. In Sn.exe sono disponibili opzioni per la gestione delle chiavi e la generazione e la verifica di firme.

sn [-quiet][option [parameter(s)]]

Parametri

Opzione Descrizione

-c [csp]

Imposta il provider del servizio di crittografia (CSP, Cryptographic Service Provider) predefinito da utilizzare per la firma con nome sicuro. Questa impostazione ha effetto sull'intero computer. Se non si specifica alcun nome CSP, l'impostazione corrente verrà cancellata.

-d contenitore

Elimina dal CSP del nome sicuro il contenitore di chiavi specificato.

-D assembly1 assembly2

Verifica che due assembly differiscano solo nella firma. Questa opzione è spesso utilizzata come controllo dopo che un assembly è stato nuovamente firmato con una coppia di chiavi differente.

-e assembly file di output

Estrae la chiave pubblica da assembly e la archivia in file di output.

-h

Visualizza la sintassi e le opzioni dei comandi dello strumento.

-i file di input contenitore

Installa la coppia di chiavi da file di input nel contenitore delle chiavi specificato. Il contenitore di chiavi si trova nel CSP del nome sicuro.

-k [dimensione chiave] file di output

Genera una nuova chiave RSACryptoServiceProvider con la dimensione indicata e la scrive nel file specificato. Nel file vengono incluse sia la chiave pubblica sia la chiave privata.

Se non si specifica una dimensione per la chiave, verrà generata una chiave a 1024 bit se è installato Microsoft Enhanced Cryptographic Provider oppure una chiave a 512 se questo provider non è installato.

Se è installato Microsoft Enhanced Cryptographic Provider, il parametro keysize supporta lunghezze di chiave da 384 a 16.384 bit con incrementi di 8 bit. Se invece è installato Microsoft Base Cryptographic Provider, supporta lunghezze di chiave da 384 a 512 bit con incrementi di 8 bit.

-m [y|n]

Indica se i contenitori di chiavi sono specifici del computer o dell'utente. Se si specifica y, i contenitori di chiavi sono specifici del computer. Se si specifica n, i contenitori di chiavi sono specifici dell'utente.

Se non si specifica né y né n, questa opzione visualizzerà l'impostazione corrente.

-o file di input [file di output]

Estrae la chiave pubblica da file di input e la archivia in un file CSV. I byte della chiave pubblica sono separati da virgole. Questo formato è utile per gestire i riferimenti alle chiavi definiti a livello di codice sotto forma di matrici inizializzate nel codice sorgente. Se non si specifica alcun file di output, questa opzione inserirà l'output negli Appunti.

Nota

Questa opzione non verifica che l'input sia solo una chiave pubblica. Se in infile è contenuta una coppia di chiavi con una chiave privata, verrà estratta anche la chiave privata.

-p file di input file di output

Estrae la chiave pubblica dalla coppia di chiavi contenuta in file di input e la archivia in file di output. È possibile utilizzare questa chiave pubblica per ritardare la firma di un assembly mediante le opzioni /delaysign+ e /keyfile dell'Assembly Linker (Al.exe). Quando per un assembly è impostata la firma ritardata, in fase di compilazione viene impostata solo la chiave pubblica e nel file viene riservato spazio per la firma che verrà aggiunta in un secondo momento, quando sarà nota la chiave privata.

-pc contenitore file di output

Estrae la chiave pubblica dalla coppia di chiavi contenuta in contenitore e la archivia in file di output.

-q[uiet]

Specifica la modalità non interattiva. Evita la visualizzazione dei messaggi di operazione riuscita.

-R[aassembly file di input

Firma nuovamente un assembly firmato in precedenza o per cui è impostata la firma ritardata con la coppia di chiavi presente in file di input.

Se si utilizza l'opzione -Ra, gli hash vengono ricalcolati per tutti i file dell'assembly.

-Rc[aassembly contenitore

Firma nuovamente un assembly firmato in precedenza o per cui è impostata la firma ritardata con la coppia di chiavi presente in contenitore.

Se si utilizza l'opzione -Rca, gli hash vengono ricalcolati per tutti i file dell'assembly.

-Rh assembly

Ricalcola gli hash per tutti i file dell'assembly.

-t[p] file di input

Visualizza il token per la chiave pubblica archiviata in file di input. Il contenuto di file di input deve essere una chiave pubblica generata in precedenza dal file di una coppia di chiavi utilizzando -p. Non utilizzare l'opzione -t[p] per estrarre il token direttamente dal file di una coppia di chiavi.

Sn.exe calcola il token utilizzando una funzione hash tratta dalla chiave pubblica. Per risparmiare spazio, Common Language Runtime archivia i token della chiave pubblica nel manifesto come parte di un riferimento a un altro assembly quando registra una dipendenza in un assembly con nome sicuro. L'opzione -tp visualizza anche la chiave pubblica, oltre al token.

Si noti che questa opzione non verifica la firma dell'assembly e che non deve essere utilizzata per prendere decisioni sull'attendibilità. Questa opzione consente di visualizzare solo i dati non elaborati del token della chiave pubblica.

-T[p] assembly

Visualizza il token della chiave pubblica per assembly . assembly deve corrispondere al nome di un file contenente un manifesto dell'assembly.

Sn.exe calcola il token utilizzando una funzione hash tratta dalla chiave pubblica. Per risparmiare spazio, il runtime archivia i token della chiave pubblica nel manifesto come parte di un riferimento a un altro assembly quando registra una dipendenza in un assembly con nome sicuro. L'opzione -Tp visualizza la chiave pubblica oltre al token.

Si noti che questa opzione non verifica la firma dell'assembly e che non deve essere utilizzata per prendere decisioni sull'attendibilità. Questa opzione consente di visualizzare solo i dati non elaborati del token della chiave pubblica.

-TS assembly infile

Appone una firma di test all'assembly firmato o parzialmente firmato con la coppia di chiavi presente in infile.

-TSc assembly container

Appone una firma di test all'assembly firmato o parzialmente firmato con la coppia di chiavi presente nel contenitore di chiavi container.

-v assembly

Verifica il nome sicuro di assembly, dove assembly è il nome di un file contenente un manifesto dell'assembly.

-vf assembly

Verifica il nome sicuro in assembly . A differenza dell'opzione -v, -vf impone la verifica, anche se questa è stata disattivata mediante l'opzione -Vr.

-Vl

Elenca le impostazioni correnti per la verifica del nome sicuro su questo computer.

-Vr assembly [elenco utenti] [file di input]

Registra assembly per l'omissione della verifica. Se lo si desidera, è possibile specificare un elenco di nomi utente, separati da virgole. Se si specifica file di input, la verifica resta attivata, ma nelle operazioni di verifica verrà utilizzata la chiave pubblica contenuta in file di input. È possibile specificare assembly nella forma *, strongname per registrare tutti gli assembly con il nome sicuro specificato. Strongname deve essere specificato come stringa di cifre esadecimali che rappresenta la chiave pubblica in formato token. Vedere le opzioni -t e -T per visualizzare il token della chiave pubblica.

Avviso

Utilizzare questa opzione solo durante lo sviluppo. L'aggiunta di un assembly all'elenco di omissione della verifica rende vulnerabile il sistema di sicurezza. Un assembly dannoso potrebbe utilizzare il nome completamente specificato (nome assembly, versione, lingua e token della chiave pubblica) dell'assembly aggiunto all'elenco di omissione della verifica per camuffare la propria identità. La verifica verrebbe omessa quindi anche per l'assembly dannoso.

-Vu assembly

Annulla la registrazione di assembly per l'omissione della verifica. Per -Vu valgono le stesse regole di denominazione dell'assembly applicate per -Vr.

-Vx

Rimuove tutte le voci per le quali è omessa la verifica.

-?

Visualizza la sintassi e le opzioni dei comandi dello strumento.

Nota

Affinché le opzioni di Sn.exe vengano riconosciute dallo strumento, è necessario che vengano digitate esattamente come indicato, rispettando con precisione la combinazione di maiuscole e minuscole.

Note

Le opzioni -R e –Rc sono utili con gli assembly per i quali è stata impostata la firma ritardata. In questo scenario solo la chiave pubblica viene impostata in fase di compilazione e la firma viene apposta in un secondo tempo, quando sarà nota la chiave privata.

Esempi

Il comando che segue crea una nuova coppia di chiavi casuale e la archivia in keyPair.snk.

sn -k keyPair.snk

Il comando che segue archivia la chiave presente in keyPair.snk all'interno del contenitore MyContainer nel CSP del nome sicuro.

sn -i keyPair.snk MyContainer

Il comando che segue estrae la chiave pubblica da keyPair.snk e la archivia in publicKey.snk.

sn -p keyPair.snk publicKey.snk

Il comando che segue consente di visualizzare la chiave pubblica e il token per la chiave pubblica contenuti in publicKey.snk.

sn -tp publicKey.snk

Il comando che segue verifica l'assembly MyAsm.dll.

sn -v MyAsm.dll

Il comando che segue elimina MyContainer dal CSP predefinito.

sn -d MyContainer

Vedere anche

Riferimenti

Strumenti di .NET Framework
Assembly Linker (Al.exe)
Prompt dei comandi di SDK

Concetti

Assembly con nomi sicuri