Dengan kernel Linux 6.4 ada kemampuan yang diperkenalkan sehingga keyring mesin secara opsional hanya dapat menyimpan kunci yang didukung CA.
Eric Snowberg dari Oracle telah mengerjakan pembatasan keyring pemberlakuan CA sehingga dapat ada pemberlakuan Certificate Authority (CA) dari keyring mesin. Snowberg menjelaskan dalam seri tambalan:
“Sebelum pengenalan keyring mesin, sebagian besar distro hanya mengizinkan semua kunci yang terdapat dalam keyring platform untuk digunakan untuk verifikasi kernel dan modul. Hal ini dilakukan dengan out of tree patch. Beberapa distro mengambilnya bahkan lanjut dan memuat semua kunci ini ke keyring tepercaya sekunder. Hal ini juga memungkinkan pemilik sistem menambahkan kunci mereka sendiri untuk penggunaan IMA.
Setiap distro berisi dokumentasi serupa tentang cara menandatangani modul kernel dan mendaftarkan kunci ke dalam MOK. prosesnya cukup mudah. Dengan diperkenalkannya keyring mesin, prosesnya pada dasarnya tetap sama, tanpa memerlukan tambalan di luar pohon.
Keyring mesin memungkinkan distro untuk menghilangkan tambalan di luar pohon untuk penandatanganan modul kernel. Namun, gagal dalam memungkinkan pengguna akhir untuk menambahkan kunci mereka sendiri untuk IMA. Saat ini, keyring mesin tidak dapat digunakan sebagai jangkar kepercayaan lain untuk menambahkan kunci ke keyring ima, karena pemberlakuan CA saat ini tidak ada. Ini akan memperluas kesenjangan integritas saat ini. Kconfig IMA_KEYRINGS_PERMIT_SIGNED_BY_BUILTIN_OR_SECONDARY menyatakan bahwa kunci dapat ditambahkan ke gantungan kunci ima jika kunci ditandatangani secara sah oleh sertifikat CA di dalam sistem bawaan atau gantungan kunci tepercaya sekunder. Saat ini, tidak ada kode yang memberlakukan konten sertifikat CA.
Seri ini memperkenalkan cara untuk melakukan penegakan CA dengan gantungan kunci mesin. Ini memperkenalkan tiga cara berbeda untuk mengonfigurasi keyring mesin. Opsi Kconfig baru ditambahkan untuk mengontrol jenis kunci yang dapat ditambahkan ke dalamnya. Opsi default memungkinkan semua kunci MOK ke dalam keyring mesin. Saat CONFIG_INTEGRITY_CA_MACHINE_KEYRING dipilih, bit CA X.509 harus benar dan penggunaan kunci harus berisi keyCertSign; bidang penggunaan lainnya juga dapat diatur. Ketika
CONFIG_INTEGRITY_CA_MACHINE_KEYRING_MAX juga dipilih, bit CA X.509 harus benar dan penggunaan kunci harus berisi keyCertSign. Dengan opsi ini penggunaan digitialSignature mungkin tidak diatur. Jika kunci tidak lulus pemeriksaan pembatasan CA, alih-alih masuk ke keyring mesin, itu ditambahkan ke keyring platform. Dengan kemampuan untuk mengonfigurasi
keyring mesin dengan pembatasan CA, kode yang mencegah pengaktifan keyring mesin dengan IMA_KEYRINGS_PERMIT_SIGNED_BY_BUILTIN_OR_SECONDARY telah dihapus.”
Sekali lagi, seperti yang dinyatakan, ini benar-benar ikut serta dengan perilaku default yang mengizinkan semua kunci MOK ke keyring mesin.
TPMDD pull request dikirim hari ini untuk kernel Linux 6.4 dan menyertakan fungsi baru ini.
“Keyring.machine, yang digunakan untuk Machine Owner Keys (MOK), memperoleh kemampuan untuk menyimpan hanya CA yang ditegakkan kunci, dan letakkan kunci.platform, sehingga memisahkan kunci penandatanganan kode dari kunci yang digunakan untuk menandatangani sertifikat. Ini pada dasarnya membuka penggunaan keyring.machine sebagai jangkar kepercayaan untuk IMA. Ini adalah fitur keikutsertaan, artinya batasan tambahan tidak akan menghalangi siapa pun yang tidak memedulikannya.”
Penyempurnaan Linux seputar penanganan Integrity Measurement Architecture (IMA) tetap menjadi area minat yang besar bagi pemangku kepentingan perusahaan.