File .snk digunakan untuk menerapkan nama yang kuat untuk perakitan .NET . nama yang kuat terdiri dari
nama teks sederhana, nomor versi, dan informasi budaya (jika tersedia) —tambahkan kunci publik dan tanda tangan digital.
SNK berisi pasangan kunci unik - kunci pribadi dan publik yang dapat digunakan untuk memastikan bahwa Anda memiliki nama kuat yang unik untuk perakitan. Ketika rakitan sangat bernama, "hash" dibangun dari isi rakitan, dan hash dienkripsi dengan kunci pribadi. Kemudian hash yang ditandatangani ini ditempatkan di majelis bersama dengan kunci publik dari .snk.
Kemudian, ketika seseorang perlu memverifikasi integritas rakitan yang bernama kuat, mereka membangun hash dari isi rakitan, dan menggunakan kunci publik dari rakitan untuk mendekripsi hash yang datang dengan rakitan - jika keduanya hash cocok, verifikasi perakitan lolos.
Sangat penting untuk dapat memverifikasi rakitan dengan cara ini untuk memastikan bahwa tidak ada yang mengganti rakitan dengan perangkat jahat yang akan menumbangkan seluruh aplikasi. Inilah sebabnya majelis yang tidak memiliki nama kuat tidak dipercaya dengan cara yang sama dengan majelis yang dinamai sangat, jadi mereka tidak dapat ditempatkan di GAC. Juga, ada rantai kepercayaan - Anda tidak dapat menghasilkan rakitan sangat bernama yang merujuk rakitan tidak bernama kuat.
Artikel " Rahasia Penamaan yang Kuat (diarsipkan di Wayback Machine) ". Melakukan pekerjaan yang sangat baik untuk menjelaskan konsep-konsep ini secara lebih rinci. Dengan gambar.
Saya tidak terbiasa dengan cara kerja server BizTalk , jadi saya tidak berpikir saya bisa menjelaskan banyak tujuan spesifik apa yang mereka layani dalam lingkungan itu.
Semoga ini agak membantu.
sumber
File .snk digunakan untuk menandatangani majelis agar dapat menambahkannya ke Global Assembly Cache (GAC).
File .snk berisi token publik dan pribadi untuk kunci Anda. Ketika Anda ingin menandatangani beberapa data (atau biner) dengan kunci itu, sebuah checksum dihitung pada data, yang kemudian dienkripsi dengan token pribadi. Checksum terenkripsi kemudian ditambahkan ke data. Siapa pun dapat menggunakan token publik dari kunci Anda untuk mendekripsi checksum dan membandingkannya dengan checksum yang mereka hitung untuk memverifikasi bahwa data yang ditandatangani belum dirusak.
Anda dapat membaca lebih lanjut tentang kriptografi kunci publik di http://en.wikipedia.org/wiki/Public-key_cryptography .
sumber
File .snk adalah versi persisten "Kunci" Anda yang dihasilkan oleh utilitas sn dalam rangkaian utilitas kerangka. Anda kemudian menggunakan file ini untuk 'menandatangani secara digital' majelis Anda. Ini adalah kunci 2-bagian .. kombinasi kunci privat-publik. Bagian publik dari kunci dipublikasikan yaitu diketahui semua orang. Bagian pribadi hanya diketahui oleh Anda, pengembang komponen / aplikasi dan dimaksudkan untuk tetap seperti itu.
Ketika Anda menandatangani rakitan Anda, itu menggunakan kunci pribadi dan nilai hash untuk rakitan Anda untuk membuat tanda tangan digital yang tertanam dalam rakitan Anda. Setelah itu, siapa pun yang memuat majelis Anda melewati langkah verifikasi. Kunci publik digunakan untuk memvalidasi jika majelis benar-benar berasal dari Anda .. Anda hanya perlu kunci publik untuk ini (yang juga tertanam dalam bentuk tokenized dalam manifes perakitan). Jika rakitan telah dirusak, nilai hash akan berbeda dan beban rakitan akan dibatalkan. Ini adalah mekanisme keamanan.
sumber
File .snk digunakan untuk memastikan bahwa orang lain tidak dapat menyelipkan majelis mereka sendiri di tempat Anda. Ini menyediakan sepasang kunci enkripsi / dekripsi.
Ketika file .snk digunakan untuk menandatangani rakitan, nilai kode hash dihitung dari file rakitan dan dienkripsi menggunakan kunci pribadi. "Intisari" terenkripsi tersebut kemudian ditempelkan ke majelis bersama dengan kunci publik dari file .snk.
Kemudian ketika seseorang menerima rakitan Anda, mereka juga dapat menghitung nilai kode hash itu. Mereka menggunakan kunci publik untuk mendekripsi yang Anda hitung dan membandingkan nilai yang dihitung. Jika rakitan telah diubah sama sekali, nilai-nilai itu akan berbeda dan pengguna rakitan akan tahu bahwa rakitan yang Anda miliki bukan yang Anda berikan.
Dalam konteks BizTalk Server, siapa pun yang membangun rakitan kustom apa pun yang digunakan oleh solusi BizTalk Anda harus menggunakan file .snk untuk menandatangani rakitan sehingga server BizTalk dapat memuatnya ke GAC dan menggunakannya.
sumber