GNU/Linux >> Belajar Linux >  >> Ubuntu

Bagaimana Mengetahui Pembaruan Sistem Dapat Dipercaya?

Saya secara rutin memperbarui sistem saya setiap kali memberi tahu saya tentang pembaruan perangkat lunak. Ini adalah salah satu hal yang saya percaya untuk bekerja tanpa mengetahui detailnya, tetapi saya menjadi penasaran baru-baru ini:Bagaimana saya tahu itu

  • proses pemeriksaan pembaruan hanya akan menampilkan pembaruan yang sah?
  • pembaruan yang saya terima dan pasang tidak berbahaya?

Saya tahu bahwa saya memiliki sekumpulan sumber perangkat lunak yang saya tentukan sendiri berdasarkan URL dan apakah saya mempercayai sumber tersebut adalah keputusan saya. Tapi apa yang terjadi setelah saya menentukan URL tersebut?

Dari apa yang umum hari ini, saya menduga bahwa keaslian sumber-sumber tersebut diverifikasi dengan sesuatu yang sejalan dengan HTTPS / SSL, mis. e. Saya memiliki beberapa sertifikat yang diverifikasi terhadap beberapa otoritas, artinya, saya memerlukan sertifikat root yang dapat diandalkan yang diinstal di suatu tempat (mungkin mereka datang dengan sistem).

Selanjutnya, saya kira paket-paket tersebut ditandatangani secara kriptografis, seperti dengan GPG atau sejenisnya.

Apakah asumsi tersebut benar? Di mana saya dapat memeriksa kunci/sertifikat yang digunakan? Bagaimana saya bisa memverifikasi apakah mereka yang benar? Bagaimana saya bisa memverifikasi bahwa mereka, pada kenyataannya, digunakan? Apakah ada opsi konfigurasi yang membuat proses lebih atau kurang bijaksana, dan apa defaultnya? Apakah ada serangan yang diketahui, atau apakah ada kerentanan baru-baru ini? Sepertinya saya ingat Windows mengalami masalah seperti itu belum lama ini.

Saya menggunakan 12,04, tetapi saya berasumsi bahwa ini dapat dijawab secara lebih umum.

Jawaban yang Diterima:

Ini adalah pertanyaan yang bagus. Jawabannya (tentu saja) cukup rumit, tetapi izinkan saya mencoba menguraikannya untuk Anda. Mari kita lihat dulu proses teknisnya:

Rantai Kepercayaan

Kami tidak menggunakan SSL untuk mengamankan APT, kami menggunakan hash kriptografi (SHA256, akhir-akhir ini) dan tanda tangan OpenPGP. Ini memungkinkan Anda memercayai mirror yang tidak tepercaya, dan menghindari keharusan memercayai CA PKI.

Saat Anda menambahkan repositori ke sources.list APT , Anda juga harus menambahkan kunci PGP-nya ke keyring tepercaya APT, dengan apt-key memerintah. Gantungan kunci dilengkapi dengan kunci untuk repositori Ubuntu yang disertakan. Dan ketika Anda menggunakan apt-add-repository perintah untuk menambahkan PPA, itu menambahkan kunci (diperoleh dari Launchpad melalui SSL) untuk Anda.

Rantai kepercayaan adalah:

  1. Setiap sources.list titik masuk APT ke Release file dalam repositori, dengan Release.gpg tanda tangan (atau dapat digabungkan sebagai InRelease mengajukan). File ini menjelaskan repositori, dan harus ditandatangani dengan kunci di keyring APT Anda.
  2. Release file berisi hash kriptografi dari semua Packages dan Sources file. Ini mencantumkan semua paket dan versi yang tersedia di repositori.
  3. Packages dan Sources file berisi hash kriptografi dari setiap paket.
  4. Paket itu sendiri tidak ditandatangani. Itu tidak perlu, ada rantai kepercayaan kepada mereka, dari file Rilis, ditandatangani oleh cermin. Namun, paket sumber, yang digunakan untuk membangun paket biner ditandatangani oleh PGP, oleh pengembang yang mengunggahnya.

Anda dapat membaca lebih lanjut tentang format repositori di wiki Debian.

Rantai ini berarti bahwa kita tidak perlu mempercayai mirror perantara mana pun, kita dapat mempercayai bahwa paket yang kita instal identik dengan yang ada saat file Rilis ditandatangani.

Anda dapat memeriksa keyring APT dengan menjalankan sudo apt-key finger .

Memverifikasi Kunci Arsip Ubuntu

Bagaimana Anda tahu apa yang seharusnya ada di sana? Jika Anda tidak mempercayai komputer Anda, Anda tidak dapat mempercayai program apa pun di dalamnya untuk tidak berbohong kepada Anda (seperti apt-key ), dan latihan ini sia-sia. Jadi mari kita asumsikan ini hanya untuk kepentingan akademis, dan verifikasi isi keyring dari paket sumber definitif, yaitu PGP yang ditandatangani oleh pengembang yang mengunggahnya.

Terkait:Memiliki 2 × 2 Ruang Kerja di Gnome 3 di Ubuntu?

Unduh ubuntu-keyring paket sumber, dan lihat apa yang seharusnya ada di sana:

$ apt-get source ubuntu-keyring
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Need to get 20.0 kB of source archives.
Get:1 http://localhost/ubuntu/ quantal/main ubuntu-keyring 2012.05.19 (dsc) [1542 B]
Get:2 http://localhost/ubuntu/ quantal/main ubuntu-keyring 2012.05.19 (tar) [18.5 kB]
Fetched 20.0 kB in 0s (0 B/s)               
dpkg-source: info: extracting ubuntu-keyring in ubuntu-keyring-2012.05.19
dpkg-source: info: unpacking ubuntu-keyring_2012.05.19.tar.gz
$ gpg --verify ubuntu-keyring_2012.05.19.dsc
gpg: Signature made Sat May 19 03:33:12 2012 SAST
gpg:                using RSA key 0x393587D97D86500B
gpg: Good signature from "Colin Watson <[email protected]>"
gpg:                 aka "Colin Watson <[email protected]>"
gpg:                 aka "Colin Watson <[email protected]>"
gpg:                 aka "Colin Watson <[email protected]>"
$ gpg --no-default-keyring --keyring ubuntu-keyring-2012.05.19/keyrings/ubuntu-archive-keyring.gpg --fingerprint
ubuntu-keyring-2012.05.19/keyrings/ubuntu-archive-keyring.gpg
-------------------------------------------------------------
pub   1024D/0x40976EAF437D05B5 2004-09-12
      Key fingerprint = 6302 39CC 130E 1A7F D81A  27B1 4097 6EAF 437D 05B5
uid                            Ubuntu Archive Automatic Signing Key <[email protected]>
sub   2048g/0x251BEFF479164387 2004-09-12

pub   1024D/0x46181433FBB75451 2004-12-30
      Key fingerprint = C598 6B4F 1257 FFA8 6632  CBA7 4618 1433 FBB7 5451
uid                            Ubuntu CD Image Automatic Signing Key <[email protected]>

pub   4096R/0x3B4FE6ACC0B21F32 2012-05-11
      Key fingerprint = 790B C727 7767 219C 42C8  6F93 3B4F E6AC C0B2 1F32
uid                            Ubuntu Archive Automatic Signing Key (2012) <[email protected]>

pub   4096R/0xD94AA3F0EFE21092 2012-05-11
      Key fingerprint = 8439 38DF 228D 22F7 B374  2BC0 D94A A3F0 EFE2 1092
uid                            Ubuntu CD Image Automatic Signing Key (2012) <[email protected]>

Saya tahu bahwa itu sebenarnya adalah tanda tangan Colin Watson, karena saya telah bertemu dengannya beberapa kali dan kami telah memverifikasi identitas masing-masing dan menandatangani kunci masing-masing. Jika Anda memiliki kunci di set kuat PGP, Anda harus dapat menemukan jalur kepercayaan kepadanya. Saya juga tahu bahwa saya dapat memercayainya untuk mengunggah ubuntu-keyring yang benar paket.

Untuk Debian, ada paket (debian-keyring ) yang berisi kunci PGP dari semua Pengembang Debian, dan Anda dapat menggunakan ini untuk memverifikasi tanda tangan paket sumber. Ubuntu tidak memiliki yang setara, tetapi banyak Pengembang Ubuntu juga Pengembang Debian, dan semua kunci PGP pengembang kami tersedia di profil mereka di Launchpad.

Pertanyaan lainnya

Bagaimana saya tahu pembaruan tidak berbahaya?

Itu tergantung pada kepercayaan. Anda harus sepenuhnya mempercayai setiap repositori yang Anda gunakan. Anda memberikan izin kepada pengelola setiap repositori untuk menjalankan sesuatu sebagai root di mesin Anda.

Paket Ubuntu hanya dapat diunggah oleh Pengembang Ubuntu yang telah diberikan hak unggah oleh Dewan Keanggotaan Pengembang (yang saat ini saya layani). Untuk mengajukan hak unggah, Anda harus didukung oleh beberapa Pengembang Ubuntu yang ada yang telah bekerja dengan Anda dan memercayai kemampuan Anda untuk bekerja sendiri. Tanpa hak unggah, unggahan harus disponsori oleh pengembang yang memiliki hak (yang harus mencakup peninjauan unggahan).

Untuk pembaruan pasca-rilis, Ubuntu memiliki kebijakan ketat tentang konten pembaruan. Mereka seharusnya hanya berisi tambalan minimal untuk memperbaiki bug yang diketahui. Tambalan ditinjau oleh anggota tim SRU / Keamanan sebelum diterima.

Jelas, PPA dan repositori pihak ketiga tidak memiliki semua batasan ini. Anda harus mempercayai pemilik PPA untuk bersikap bijaksana.

Semua paket Ubuntu &PPA memiliki sumber yang tersedia, sehingga mereka dapat diperiksa oleh siapa saja.

Apakah ada opsi konfigurasi yang membuat proses lebih atau kurang bijaksana, dan apa defaultnya?

Anda dapat mematikan verifikasi tanda tangan di APT, tetapi tentu saja itu diaktifkan secara default. Saat Anda mencoba dan menginstal sesuatu dari repositori yang tidak ditandatangani / tidak dipercaya, apt membuat Anda mengonfirmasi bahwa Anda benar-benar ingin melakukan ini.

Apakah ada serangan yang diketahui, atau apakah ada kerentanan baru-baru ini?

Saya ingat satu, bug Debian 499897. Debian menyiasatinya dengan memberikan file Rilis tanggal kedaluwarsa, setelah itu mereka tidak dapat dipercaya. Ubuntu belum mendukung ini.

Terkait:Bagaimana cara mencari nama ruang kerja saat ini?
Ubuntu
  1. Linux – Bagaimana Cara Mengetahui Hard Disk Apa yang Ada di Sistem?

  2. Bagaimana Cara Melewati Menu Grub Pada Sistem Dual-boot??

  3. Bagaimana Cara Memperbaiki Instalasi?

  1. Bagaimana mengubah identitas sistem Linux

  2. Cara menggunakan pengelola tugas di Ubuntu untuk memantau sistem

  3. Bagaimana cara mengetahui jalur JVM di sistem Linux?

  1. Bagaimana Cara Mengetahui Jumlah Bad Sector Pada Hard Drive?

  2. Bagaimana Cara Memodifikasi Gambar Latar Default Sistem?

  3. Bagaimana Portabel Apakah Biner Dikompilasi Di Ubuntu?