Zephyrnet Logosu

Artık Debian'da bulunan TPM 2.0 ile SSH anahtarlarını koruma | defter

Tarih:

Bu protokolde, kullanıcıların kimliğinin doğrulanması gerekir. Bunu parolalar, özel RSA anahtarları içeren dosyalar, Ledger Nano S ve Ledger Nano X gibi donanım cihazları vb. ile yapabilirler.

Bazı kimlik doğrulama araçları diğerlerinden daha güvenlidir: özel bir anahtarın çıkarılmasını mümkün kılmadan depolamak için tasarlanmış bir donanım cihazı kullanmak, özel anahtarı bir dosyada saklamaktan daha güvenlidir. Ne yazık ki en güvenli olanları da kullanmak daha acı verici. Anahtarları bir cihazda bulunan kullanıcıların cihazı yanlarında taşıması, her SSH oturumu başlattığında PIN kodunu yazması gerekir, vb. erişimin güvenliği öncelikli değildir.

Öyleyse soru şu: Kimlik doğrulama materyalini, kullanıcı deneyimini değiştirmeden bir dosyadan (bazı kötü amaçlı yazılımlar tarafından çalınabilen) daha güvenli bir şekilde saklamak mümkün mü?

Ve cevap: evet, bir TPM kullanmak!

Bazı tarih

Bilgisayarlar bir süredir doğrudan bir güvenlik yongası yerleştirebiliyor. Güvenilir Platform Modülü (TPM) olarak adlandırılan bu çip, açık anahtarlı kriptografide kullanılan özel anahtarları koruma yeteneği de dahil olmak üzere birçok özellik sunar.

Bilgisayarlara gömülü olduğu için kullanmak için bilgisayara herhangi bir cihaz takmaya gerek yoktur. Bu nedenle bu, bilgisayardan farklı bir yerde depolanabilen bir donanım aygıtından daha az güvenli olarak kabul edilir (bu, aygıt bilgisayara bağlı olmadığında hiçbir kötü amaçlı yazılımın içinde depolanan sırları kullanamayacağı ilkesinin uygulanmasını sağlar).

Dolayısıyla TPM "en iyi güvenlik" değildir, ancak yine de şu tür dosyaları kullanmaktan çok daha güvenlidir: $HOME/.ssh/id_rsa özel anahtarları saklamak için.

TPM, Linux'ta OpenSSH ile nasıl kullanılabilir? adlı bir proje ile tpm2-pkcs11dahil olmak üzere birçok web sitesinde uzun yıllardır bulunan talimatları izleyerek kod deposundan resmi belgeler.

Şimdi, haberler ne? Bu yazılım artık nihayet Ubuntu ve Debian'da paketlendi ve bu da onu nihayet çoğu Linux kullanıcısı için kullanılabilir kılıyor!

Daha doğrusu burada bir zaman çizelgesi var:

  • 2014 yılında TPM 2.0'ın ana özellikleri yayınlandı. Yazılımdan bir TPM ile etkileşim kurmak için bir standardizasyon çalışması yapıldı ve iki uyumsuz yazılım yığını oluşturuldu: Trusted Computing Group'tan (TCG) denilen, TPM Yazılım Yığını (TSS) ve IBM'den olan, aynı zamanda TPM Yazılım yığını.
  • 2018 yılında proje tpm2-pkcs11 TCG'nin TSS'sini kullanarak bir TPM 11'a PKCS#2.0 arabirimi sağlamak için oluşturuldu. PKCS # 11 adlı bir Uygulama Programlama Arayüzü (API) tanımlayan bir standarttır. Kriptoki kriptografik anahtarları saklayan belirteçleri kullanmak için. OpenSSH, kullanıcı kimlik doğrulaması gerçekleştirmek için bir PKCS#11 arayüzü kullanılarak desteklendiğinden, bu, SSH kimlik doğrulaması için kullanılan anahtarları depolamak için TPM'nin kullanılmasını etkinleştirdi.
  • Şubat 2019 olarak, tpm2-pkcs11 eklendi Fedora 29.
  • Eylül 2019'da CentOS 8 bu paketle piyasaya çıktı.
  • Nisan ayında 2020, tpm2-pkcs11 eklendi Debian sid. Ne yazık ki programı içermiyordu tpm2_ptool kolayca anahtar oluşturmak için gereklidir. Bu sorun şu tarihte bildirildi: Debian hatası #968310.
  • Ocak 2021'de Debian'ın paketi şuydu: sabit (ve bakıcı yardımımı kabul etti!).
  • Nisan 2021'de Ubuntu 21.04 Hirsute su aygırı ile serbest bırakıldı sabit paket.
  • Ağustos 2021'de Debian 11 Bullseye ile serbest bırakıldı sabit paket

şimdi tpm2-pkcs11 Debian, Ubuntu ve diğer bazı Linux dağıtımlarında mevcuttur. repoloji.

tpm2-pkcs11'i kullanma

Debian 11'de, TPM tarafından güvenli bir şekilde saklanan yeni bir SSH anahtarı oluşturma ve kullanma adımları şunlardır:

  1. Kurulum komutu tpm2_ptool ve kütüphane libtpm2_pkcs11.so.1, iki paket tarafından sağlanır:

2. Sistemin bir TPM 2.0 kullanabildiğini kontrol edin. Aşağıdaki kontrollerden biri başarısız olursa bu, sistemin BIOS ayarlarında devre dışı bırakılmış bir TPM'ye veya TPM 1.2'ye veya TPM 2.0'a sahip olmadığı anlamına gelebilir:

3. Mevcut kullanıcıyı, TPM cihazına erişebilen gruba ekleyin /dev/tpmrm0. Debian ve Ubuntu'da, kullanıcıların adlı bir gruba ait olmaları gerekir. tss (tarafından sağlanan yapılandırma sayesinde tpm-udev paket). Aşağıdaki komut, geçerli kullanıcıyı bu gruba ekler:

Bir parola ile korunan bir kullanıcı deposu başlatın ve SOPİN ve bir anahtar oluşturun, örneğin "NIST P-256" ("secp256r1" olarak da bilinir) adlı eğri üzerinde bir Eliptik Eğri anahtarı:

4. Kısaltma SOPİN anlamına geliyor Güvenlik Görevlisi Kişisel Kimlik Numarası ve PKCS#11 spesifikasyonundan bir kavramdır. Basit kullanım durumlarında, örneğin kaybolduğunda parolanın değiştirilmesini sağlayan “kurtarma parolası” olarak görülebilir.

5. Bu yeni anahtarın ortak anahtarını görüntüleyin:

6. Yeni genel anahtarı bir sunucuda yapılandırın, örneğin şunu yazarak: $HOME/.ssh/authorized_keys veya GitHub'ın hesap ayarlarında veya SSH ortak anahtarlarının kullanıldığı herhangi başka bir yerde.

7. Kullanılacak SSH istemcisini yapılandırın tpm2-pkcs11 sunucuya bağlanmak için, örneğin şunu yazarak $HOME/.ssh/config (müşteri tarafı):

Sunucuya bağlanın (NB, önceki adım atlanabilir:

Gelecek iş

Önceki bölümde, TPM'de nasıl yeni bir anahtar oluşturulacağı anlatılmıştı. Bu, SSH kimlik doğrulamasını korumak için bir TPM kullanılmasını sağlarken, bunu özel anahtarları depolamak için dosya kullanmaya gerçek bir alternatif haline getirmek için gereken iki özellik vardır:

  • 1. Özellik: yenilerini oluşturmak yerine mevcut SSH anahtarlarını bir TPM'ye aktarma (bu, TPM depolamaya sorunsuz geçiş, bilgisayarın bozulması veya kaybolması vb. durumlarda anahtarların yedeklenmesini sağlar).
  • Özellik #2: SSH anahtarlarını korumasız özel anahtar dosyaları gibi parolasız kullanma (korumalı anahtar TPM'den çıkarılamadığı için bu özellik anahtar dosyalardan daha güvenlidir).

Her iki özelliği de uyguladım tpm2-pkcs11 ve bunları Çekme İsteklerinde gönderdi #681 ve #695. 1 Numaralı Özellik, Mayıs ayında haftalık çevrimiçi arama sırasında da sunuldu. tpm.dev topluluğu ve kayıt mevcuttur https://developers.tpm.dev/posts/14389750.

Bu nedenle, her iki özelliğin de gelecekteki bir sürümde kullanıma sunulması muhtemeldir. tpm2-pkcs11.

Bu arada, cihazın içini anlamak isteyen meraklı okuyucular için. tpm2-pkcs11, SSTIC 2021 konferansında onlar hakkında bir makale yayınladım. TPM 2.0 ile SSH kimlik doğrulamasını koruma (İngilizce makale, Fransızca sunum). Ayrıca, gerçek bir TPM'ye dokunmadan bir şeyler denemek isteyen okuyucular, bu makalenin "TPM 2.0 Öykünmesi" bölümüyle ilgilenebilirler.

(Çizim: Rainer Knäpper, Özgür Sanat Lisansı)

spot_img

En Son İstihbarat

spot_img