Domanda

A cosa serve un file .snk? So che sta per Chiave con nome sicuro , ma tutte le spiegazioni di cosa è e come funziona mi vengono in mente.

Esiste una semplice spiegazione su come viene utilizzata una chiave con un nome sicuro e su come funziona?

È stato utile?

Soluzione

Il file .snk viene utilizzato per applicare un nome sicuro a un assembly .NET . un nome così forte è costituito da

  

un semplice nome di testo, numero di versione,   e informazioni sulla cultura (se   fornito) & # 8212; oltre a una chiave pubblica e a   firma digitale.

SNK contiene una coppia di chiavi univoca, una chiave privata e pubblica che può essere utilizzata per assicurarsi di avere un nome sicuro univoco per l'assembly. Quando l'assembly ha un nome sicuro, un "hash" è costruito dal contenuto dell'assembly e l'hash è crittografato con la chiave privata. Quindi questo hash firmato viene inserito nell'assembly insieme alla chiave pubblica di .snk.

In seguito, quando qualcuno deve verificare l'integrità dell'assembly con nome sicuro, essi costruiscono un hash del contenuto dell'assembly e usano la chiave pubblica dell'assembly per decrittografare l'hash che è arrivato con l'assembly: se i due hash corrispondono, la verifica dell'assembly passa.

È importante essere in grado di verificare gli assembly in questo modo per garantire che nessuno sostituisca un assembly con uno dannoso che sovvertirà l'intera applicazione. Questo è il motivo per cui gli assembly con nome non sicuro non sono attendibili allo stesso modo degli assembly con nome sicuro, quindi non possono essere inseriti nel GAC. Inoltre, esiste una catena di fiducia: non è possibile generare un assembly con nome sicuro che faccia riferimento a assembly con nome non forte.

L'articolo " I segreti del nome forte " ;. Fa un ottimo lavoro nel spiegare questi concetti in modo più dettagliato. Con immagini.

Altri suggerimenti

  

In un mondo the.Net il file SNK viene utilizzato per firmare i file binari compilati.   Ciò consente a un paio di cose di accadere:

  1. È possibile registrare l'Assemblea nel GAC (Global Assembly Cache) . Fondamentalmente in modo da poterlo fare riferimento da più punti sullo stesso computer senza dover conservare più copie).
  2. Puoi usare i tuoi binari da altri binari anch'essi firmati (questo è uno strano tipo di comportamento virale nei confronti degli assiemi firmati).
  3. Il tuo assembly non può (facilmente) essere modificato da terze parti che non hanno accesso al file SNK, fornendo almeno una piccola quantità di sicurezza.

Non ho familiarità con il funzionamento del server BizTalk , quindi non credo di poter fare molta luce su quale scopo specifico servano all'interno di quell'ambiente.

Spero che questo sia stato in qualche modo utile.

Il file .snk viene utilizzato per firmare gli assembly in modo da poterli aggiungere alla Global Assembly Cache (GAC).

Il file .snk contiene i token pubblici e privati ??per la tua chiave. Quando si desidera firmare alcuni dati (o binari) con quella chiave, viene calcolata una somma di controllo sui dati, che viene quindi crittografata con il token privato. Il checksum crittografato viene quindi aggiunto ai dati. Chiunque può utilizzare il token pubblico della propria chiave per decrittografare il checksum e confrontarlo con il checksum calcolato per verificare che i dati firmati non siano stati manomessi.

Puoi leggere ulteriori informazioni sulla crittografia a chiave pubblica su http://en.wikipedia.org/ wiki / Public-key_cryptography .

Un file .snk è una versione persistente della tua " Key " prodotto dall'utilità sn nel set di utilità del framework. Quindi utilizzare questo file per "firmare digitalmente" i propri assiemi. È una chiave in 2 parti .. combinazione di chiave privata-pubblica. La parte pubblica della chiave è pubblicata, cioè nota a tutti. La parte privata è nota solo a te, lo sviluppatore del componente / app e intende essere mantenuta in questo modo.

Quando firmi l'assembly, utilizza la chiave privata e un valore hash per l'assembly per creare una firma digitale incorporata nell'assembly. Successivamente, chiunque carica il tuo assieme passa attraverso una fase di verifica. La chiave pubblica viene utilizzata per convalidare se l'assembly proviene davvero da te .. hai solo bisogno della chiave pubblica per questo (che è anche incorporata in una forma tokenizzata nel manifest dell'assembly). Se l'assemblaggio è stato manomesso, il valore dell'hash sarebbe diverso e il carico dell'assemblaggio verrebbe interrotto. Questo è un meccanismo di sicurezza.

Un file .snk viene utilizzato per garantire che qualcun altro non possa far scivolare un assieme al posto del tuo. Fornisce una coppia di chiavi di crittografia / decrittografia.

Quando un file .snk viene utilizzato per firmare un assembly, un valore hashcode viene calcolato dal file assembly e crittografato utilizzando la chiave privata. Quel criptato " digest " viene quindi incollato all'assembly insieme alla chiave pubblica dal file .snk.

Quindi, quando qualcuno riceve il tuo assembly, può anche calcolare quel valore di hashcode. Usano la chiave pubblica per decrittografare quella calcolata e confrontare i valori calcolati. Se l'assembly è stato modificato, quei valori saranno diversi e l'utente dell'assembly saprà che l'assembly che hai non è quello che hai fornito.

Nel contesto di BizTalk Server, chiunque crei qualsiasi assembly personalizzato utilizzato dalla soluzione BizTalk dovrà utilizzare un file .snk per firmare l'assembly in modo che il server BizTalk possa caricarlo nel GAC e utilizzarlo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top