GNU/Linux >> Belajar Linux >  >> Linux

Apakah ada shell yang memeriksa untuk memastikan kode ditandatangani?

Ya dan tidak.

Distribusi perangkat lunak Linux bekerja agak berbeda dari distribusi perangkat lunak Windows. Di dunia Linux (non-embedded), metode utama untuk mendistribusikan perangkat lunak adalah melalui distribusi (Ubuntu, Debian, RHEL, Fedora, Arch, dll.). Semua distribusi besar telah menandatangani paket mereka secara sistematis selama sekitar satu dekade.

Saat perangkat lunak didistribusikan secara independen, terserah vendor untuk memutuskan bagaimana mereka akan mengirimkan perangkat lunaknya. Vendor yang baik menyediakan sumber paket yang kompatibel dengan distribusi utama (tidak ada mekanisme distribusi terpadu untuk semua Linux:distribusi perangkat lunak adalah salah satu poin utama perbedaan antar distribusi) dan ditandatangani dengan kunci vendor. Distribusi Linux jarang bertindak sebagai otoritas penandatanganan untuk vendor pihak ketiga (Canonical melakukan ini dengan mitra Ubuntu, tetapi itu mencakup sangat sedikit vendor), dan menurut saya semua distribusi utama menggunakan web kepercayaan PGP daripada infrastruktur kunci publik TLS, jadi terserah pengguna untuk mengetahui apakah mereka ingin mempercayai kunci.

Tidak ada mekanisme khusus yang memilih paket perangkat lunak yang terdiri dari satu skrip dari paket perangkat lunak yang terdiri dari executable asli, file data, atau banyak file. Verifikasi tanda tangan juga tidak disertakan dalam penafsir skrip umum mana pun, karena memverifikasi paket perangkat lunak adalah masalah yang sepenuhnya ortogonal dari menjalankan skrip.

Saya pikir Windows memberi anotasi file dengan asalnya, dan memerlukan konfirmasi pengguna untuk menjalankan file yang asalnya "diunduh" daripada "lokal". Linux tidak benar-benar memiliki mekanisme serupa. Yang paling dekat adalah izin eksekusi:file yang diunduh tidak memiliki izin eksekusi, pengguna harus mengaktifkannya secara eksplisit (chmod +x di baris perintah, atau tindakan yang setara di pengelola file).


Jika Anda mengunci kemampuan pengguna untuk menjalankan skrip melalui sudo maka Anda dapat menggunakan digest Kegunaan.
Anda dapat menentukan hash skrip/yang dapat dieksekusi di sudoers yang akan diverifikasi oleh sudo sebelum dieksekusi. Jadi meskipun tidak sama dengan penandatanganan, ini memberi Anda jaminan dasar bahwa skrip setidaknya tidak dimodifikasi tanpa sudoers juga dimodifikasi.

Jika nama perintah diawali dengan Digest_Spec, perintah hanya akan cocok dengan sukses jika dapat diverifikasi menggunakan intisari SHA-2 yang ditentukan. Ini mungkin berguna dalam situasi di mana pengguna yang meminta sudo memiliki akses tulis ke perintah atau direktori induknya. Format intisari berikut didukung:sha224, sha256, sha384 dan sha512. String dapat ditentukan dalam format hex atau base64 (base64 lebih ringkas). Ada beberapa utilitas yang mampu menghasilkan intisari SHA-2 dalam format hex seperti openssl, shasum, sha224sum, sha256sum, sha384sum, sha512sum.

http://www.sudo.ws/man/1.8.13/sudoers.man.html


Linux tidak menyediakan kemampuan untuk membatasi eksekusi skrip bash berdasarkan tanda tangan digital.

Ada beberapa pekerjaan untuk mengotentikasi executable biner. Lihat https://lwn.net/Articles/488906/ untuk info.


Linux
  1. 3 alat sumber terbuka yang menjadikan Linux sebagai tempat kerja yang ideal

  2. Lakukan matematika di shell Linux dengan GNU bc

  3. Alias ​​baris perintah di Linux Shell

  1. Linux – Bagian Kernel yang Dimiliki Atau Tertutup?

  2. Cara Mengubah Shell Default Di Linux

  3. 5 Software Blogging Terbaik untuk Linux Desktop

  1. Jadikan meditasi sebagai editor kode Linux Anda berikutnya

  2. Linux - Apakah ada cara untuk mengidentifikasi kecepatan memori Anda melalui perangkat lunak?

  3. Apakah ada file executable tiruan standar yang tidak melakukan apa pun di Linux?