Yubikey İki Faktörlü Kimlik Doğrulama LUKS ile Tam Disk Şifreleme


27

Geçenlerde bir şık küçük donanım ikinci faktör kimlik doğrulama cihazı - bir Yubikey Neo satın aldı. Öncelikle One Time Parolaları ve yeni ortaya çıkan U2F protokolü ile kullanılması amaçlanmıştır - ancak Yubikey sürüm 2'den bu yana HMAC-SHA1 sorun yanıtı kimlik doğrulamasını da destekler. HMAC-SHA1 bir gizli anahtar (Yubikey'in içinde depolanmış) bir araya getirir ve bunu yanıt vermek için bir parola ile birleştirir.

Şifrelenmiş sabit diskimle 2FA kullanmak için Yubikey ile Ubuntu FDE kurulumumu nasıl birleştirebilirim?

Yanıtlar:


30

PrivacyIdea adlı bir grup, bir HMAC-SHA1 meydan okumaya cevap rutini eklemek için küçük bir paket yarattı ; bu, Ubuntu'nun sizi Yubikey'e geçme mücadelesi için sorgulaması ve ardından LUKS biriminin kilidini açmak için yanıtı kullanması anlamına geliyor. Çoğu kısım için, bu talimatları izliyorum , bazı yorumlar ekledim. Süreci yapmak gerçekten çok kolaydır.

Bunu Ubuntu 14.04, 16.04 ve 18.04'te test ettim; bir Yubikey Neo kullanarak. 14.04'ten sonra herhangi bir Yubikey, firmware 2.0+ ve Ubuntu'nun herhangi bir sürümüyle çalışmalıdır. Ayrıca Ubuntu 19.04'ü bir Yubikey 5C ile test ettim, bazı ek çalışmalara ihtiyaç vardı, ancak çalışmak için yapılabilir. Bunun birlikte çalıştığı diğer donanım HMAC-SHA1 sorun yanıtlama aygıtları da olabilir, ancak var olanların farkında değilim. Her zaman olduğu gibi, devam etmeden önce verilerinizin yedeğini aldığınızdan emin olun - burada herhangi bir sorun olmamalıdır, ancak bunun her zaman bilgisayarınızdaki her şeyi yok etme olasılığı vardır. Bu talimatların garantisi yoktur.

Güncelleme: Ubuntu 16.04’ten bu yana gerekli paketler ana depolardadır ve PPA gerekli değildir.

Sorularınız varsa bir yorum ekleyin!


0. Önkoşullar

Bunun çalışması için LUKS tam disk şifrelemesini kurmuş ve çalışıyor olmalıdır. Ubuntu'yu kurarken uygun seçeneği seçerek bunu yapabilirsiniz. Maksimum güvenlik için, kurulum sırasında seçilmiş çok güçlü bir parolanız olmalıdır. Parolanız çizilmeye kadar değilse, devam etmeden önce daha iyi bir değerle değiştirmelisiniz ( burada daha ayrıntılı talimatlar ).

Aşağıdaki yöntem, varolan parolaların yerini almayacak, bunun yerine LUKS yuvalarından birine başka bir parola ekleyecektir. Bu nedenle, eğer Yubikey'nizi kaybederseniz, bilgisayarınızı mevcut herhangi bir parola kullanarak kilidini açabilirsiniz - Bir not almanızı ve güvenli bir yere saklamanızı öneririm - bu işlem sırasında ona birkaç kez de ihtiyacınız olacak. Yeni Yubikey meydan okuma parolanızın hala oldukça güçlü olması gerekir, ancak Ubuntu'yu kurarken kullandığınız parola uzun olması gerekmez.


1. PrivacyIdea PPA ekleyin ve paketi kurun

Ubuntu'da 14.04

Bir terminal açın ve aşağıdaki komutu çalıştırın:

sudo add-apt-repository ppa:privacyidea/privacyidea 

İstendiğinde Enter tuşuna basın, sonra çalıştırın:

sudo apt-get update

Ardından paketi şu şekilde yükleyin:

sudo apt-get install yubikey-luks

Ubuntu'da 16.04, 18.04

Bir PPA'ya gerek yoktur, paketi aşağıdaki şekilde kurabilirsiniz:

sudo apt-get install yubikey-luks

Ubuntu'da 19.04

Paketi Ubuntu 19.04 kaynağından nasıl oluşturacağınız için bu cevaba bakın yubikey-luks.


2. Yubikey yazılımını yükleyin

Yubikey'in HMAC-SHA1 işlevini başka bir şey için kullanıyorsanız, bu bölümü atlayabilirsiniz. O kadar, ikinci Yubikey yuvasına herhangi bir yapılandırma silecektir yok bu Yubikey ile diğer amaçlar için HMAC-SHA1 kullanıyorsanız bu adımı gerçekleştirin.

Ya, gerekli yazılım yükleyerek Ubuntu ile işinize Yubikey kurmak gerekir Yubico PPA dan Ubuntu veya 16.04 ve sonraki sürümlerdeki ana Ubuntu deposundan Ubuntu .

Ubuntu'da 14.04

Daha önce yapmadıysanız, PPA'yı ekleyin ve paketi ile birlikte kurun:

sudo add-apt-repository ppa:yubico/stable
sudo apt-get update
sudo apt-get install yubikey-personalization

Ubuntu'da 16.04, 18.04 (ve sonrası)

sudo apt-get install yubikey-personalization

3. HMAC-SHA1 için Yubikey Yuvasını Başlat

Şimdi Yubikey'in ikinci yuvasını bir HMAC-SHA1 yapılandırmasıyla programlamamız gerekiyor. Bu, varsayılan olarak boş olan önceki yuva yapılandırmanızı siler. Yine, başka bir şey için HMAC-SHA1 kullanıyorsanız, bu komutu vermeyin - yapılandırmanızı siler. Bu LUKS kurulumu için, diğer kullanımlarınızda olduğu gibi, Yubikey içindeki aynı gizli anahtarı güvenle kullanabilirsiniz. (Örneğin, LUKS + Yubikey kullanan başka bir bilgisayarla).

ykpersonalize -2 -ochal-resp -ochal-hmac -ohmac-lt64 -oserial-api-visible

Terminal, yapılan değişikliklerle ilgili bazı bilgileri gösterecektir. Bunu not etmeniz gerekmez, ancak bir meydan okuma yapıldığında cevabı hesaplamak için HMAC-SHA1 algoritmasında Yubikey'in kullandığı gizli anahtarı gösterecektir.


4. Yubikey'i LUKS Yuvasına Kaydedin

Şimdi, YUBikey'in yanıtını şifre çözme anahtarlarından biri olarak eklemek için LUKS yapılandırmasını düzenleyeceğiz.

Belirlememiz gereken bölüm, makinenizi başlatmak için BIOS veya UEFI kullanmanıza bağlı olarak değişir. BIOS için, şifreli birim /dev/sda5varsayılan olarak, UEFI için ise bulunur /dev/sda3. Sen açarak kontrol edebilirsiniz disksyarar ve bölünme yolunu teyit - bu ya olmalı sda3ya sda5. NOT: NVMe diskli daha yeni bilgisayarlarda, yol böyle bir şey olacaktır /dev/nvme0n1p3.

Bunu bir terminalde çalıştırın:

sudo yubikey-luks-enroll -d /dev/sda3 -s 7

Bu LUKS konfigürasyonunun 7 numaralı slotuna yazacak, kurulum programındaki talimatları izleyecektir (çalıştırdığınız versiyona bağlı olarak biraz değişebilir).

O zaman hepiniz bitirdiniz! Bilgisayarınızı yeniden başlatabiliyor olmalısınız ve Yubikey'iniz takılıysa, meydan okuma şifrenizi yazabilir ve LUKS bölümünün kilidini açmak ve sistemi başlatmak için Yubikey'i ikinci bir faktör olarak kullanabilirsiniz. Sabit sürücünün şifresini çözdükten sonra Yubikey'i kaldırabilirsiniz.

Yubikey'nizi kaybederseniz, sabit sürücünün şifresini çözmek için hala orijinal (umarım çok uzun) parolanızı girebilir ve ardından yeni bir Yubikey kaydetmek için bu prosedürü tekrar uygulayabilirsiniz.


Şifreleme zorluğu şifresini değiştirme

Şifrenin daha sonraki bir tarihte değiştirilmesi oldukça basittir, sadece gizli anahtarı sıfırlamak için bu komutu kullanın. Gizli anahtarı sıfırlamak tamamen gerekli değildir, ancak zarar vermez. Ayı bu önceki gizli anahtarı yok edecektir akılda, yok bu Yubikey ile başka bir şey için HMAC-SHA1 kullanıyorsanız bunu yapmak. (Örneğin, LUKS + Yubikey kullanan başka bir bilgisayarla).

 ykpersonalize -2 -ochal-resp -ochal-hmac -ohmac-lt64 -oserial-api-visible

Ardından, bu komutla Slot 7'yi temizlemeyi seçmemeniz haricinde, LUKS anahtar yuvasına yeni bir şifre kaydetmek için yukarıdaki 4. Adım'a benzer :

sudo yubikey-luks-enroll -d /dev/sda3 -s 7 -c

İstendiğinde Enter any remaining passphrase, Yubikey meydan okuma parolanızı değil, yedek parolanızı kullanın. Sonra iki kez yeni bir Yubikey meydan okuma parolası girin , ardından nihayet yedek parolayı son bir defa girmeniz gerekir.

Artık eski Yubikey meydan okuma parolanız kaldırıldı ve yalnızca yeniniz sabit sürücünün şifresini çözecek. Önceki yedek parolanız hala aynı olacaktır. Adım 0'daki bağlantıları izleyerek bu parolayı değiştirebilirsiniz .


Güvenlik uygulamaları hakkında not

Bir Yubikey eklemek sisteminize belirli bir güvenlik düzeyi ekleyecektir - birisi hem meydan okuma şifresini bilmek zorundadır hem de Yubikey'inizin sabit sürücünüzün kilidini açmasını sağlamalıdır (veya şimdi yedek olarak kullandığınız ilk şifrenizi bulmak) . Bununla birlikte, eğer bir saldırganın meydan okuma parolanızı bilmesi durumunda (örneğin, siz yazarken "omuzda sörf" yaparak) ve kısa bir süre için Yubikey'e erişebilirse, saldırganın sabit sürücünün şifresini çözmesi teknik olarak mümkündür. Tehdit parolasını kullanarak Yubikey'den yanıt alabilir ve saklayabilir ve ardından Yubikey'siz herhangi bir zamanda sabit sürücünün şifresini çözmek için kullanabilir. Veya, eğer bir saldırgan ya da bir kötü amaçlı yazılım parçası parolanızı biliyorsa ve Yubikey'inize bağlı bir makinede kod çalıştırabilirse, sorunu da çözebilir ve yanıtı saklayabilir. Bu nedenle, meydan okuma parolanıza girerken dikkatli olmanız ve her zaman Yubikey'in güvenli bir yerde olmasını sağlamanız çok önemlidir. Ayrıca, yalnızca, yalnızca güvendiğiniz bir makineye takmanız gerekir. Yubikey'inizin izini kaybederseniz ve birisinin şifre çözme anahtarını öğrenmek için kullanmış olduğundan şüpheleniyorsanız, Yubikey'in içindeki gizli anahtarı sıfırlamak ve yeni bir meydan okuma şifresi seçmek için 2. ve 3. adımları tekrarlayın. Bir rakip, parolalarınızdan birini öğrenmeyi başardıysa (ya Yubikey’den gelen HMAC-SHA1 yanıtı ya da yedeğiniz) LUKS ana anahtarının yedeğini alabilir ve sabit sürücünüzün şifresini çözmek için kullanabilirsiniz. ileride parolayı değiştirirsiniz. ve her zaman Yubikey'in güvenli bir yerde olmasını sağlamak için. Ayrıca, yalnızca, yalnızca güvendiğiniz bir makineye takmanız gerekir. Yubikey'inizin izini kaybederseniz ve birisinin şifre çözme anahtarını öğrenmek için kullanmış olduğundan şüpheleniyorsanız, Yubikey'in içindeki gizli anahtarı sıfırlamak ve yeni bir meydan okuma şifresi seçmek için 2. ve 3. adımları tekrarlayın. Bir rakip, parolalarınızdan birini öğrenmeyi başardıysa (ya Yubikey’den gelen HMAC-SHA1 yanıtı ya da yedeğiniz) LUKS ana anahtarının yedeğini alabilir ve sabit sürücünüzün şifresini çözmek için kullanabilirsiniz. ileride parolayı değiştirirsiniz. ve her zaman Yubikey'in güvenli bir yerde olmasını sağlamak için. Ayrıca, yalnızca, yalnızca güvendiğiniz bir makineye takmanız gerekir. Yubikey'inizin izini kaybederseniz ve birisinin şifre çözme anahtarını öğrenmek için kullanmış olduğundan şüpheleniyorsanız, Yubikey'in içindeki gizli anahtarı sıfırlamak ve yeni bir meydan okuma şifresi seçmek için 2. ve 3. adımları tekrarlayın. Bir rakip, parolalarınızdan birini öğrenmeyi başardıysa (ya Yubikey’den gelen HMAC-SHA1 yanıtı ya da yedeğiniz) LUKS ana anahtarının yedeğini alabilir ve sabit sürücünüzün şifresini çözmek için kullanabilirsiniz. ileride parolayı değiştirirsiniz. Yubikey'in içindeki gizli anahtarı sıfırlamak için 2. ve 3. adımları tekrarlayın ve yeni bir mücadele şifresi seçin. Bir rakip, parolalarınızdan birini öğrenmeyi başardıysa (ya Yubikey’den gelen HMAC-SHA1 yanıtı ya da yedeğiniz) LUKS ana anahtarının yedeğini alabilir ve sabit sürücünüzün şifresini çözmek için kullanabilirsiniz. ileride parolayı değiştirirsiniz. Yubikey'in içindeki gizli anahtarı sıfırlamak için 2. ve 3. adımları tekrarlayın ve yeni bir mücadele şifresi seçin. Bir rakip parolalarınızdan birini öğrenmeyi başardıysa (ya Yubikey’den gelen HMAC-SHA1 yanıtı ya da yedeğiniz) LUKS ana anahtarının yedeğini alabilir ve sabit sürücünüzün şifresini çözmek için kullanabilir ileride parolayı değiştirirsiniz.Cryptsetup için man sayfası bunu açıklar, luksHeaderBackup bölümüne bakın. Bunun olduğundan şüpheleniyorsanız, verilerinizi korumak için tamamen yeni bir LUKS birimi oluşturmanız gerekir.


Güncelleme: 15.04 ile bunu da denedim, PPA gerekli paketin bir yapısına sahip değil gibi görünüyor, bu yüzden Yazılım Kaynaklarındaki DEB satırını canlı yerine "güvenilir" depoyu kullanmak için değiştirmem gerekiyor ". Bu değişikliği yaptıktan sonra LUKS + Yubikey kurulumum şimdi 15.04'te çalışıyor.
seanlano

4
Artık privacyidea deposunu kullanmayın! Paket şimdi yukarı akış debian'da!
cornelinux

1
Yubikey olmadan giriş yapmamaktan kaçınmanın bir yolu var: Kullanıcı giriş yaptığında her zaman luks parolasını değiştir. Burada Gentoo için bir uygulama var: github.com/flowolf/initramfs_ykfde Kısa sürede Ubuntu için uyarlanabilir.
Adsız_1

1
Sanırım aynı prosedür 18.04 LTS'nin yeni sürümünde işe yarıyor mu?
Mark Veenstra

2
Ubuntu 18.04 ile denedim ve iyi çalışıyor.
jetole

0

Ubuntu 19.04 için güncelleme:

Ubuntu 19.04 itibariyle (ve belki de 18.10, bu sürümü denemedim), işe yarayan şekli cryptsetupdeğiştirecek kadar değişti yubikey-luks. Bu taahhüt memba depo bir düzeltme uygulamak gibi görünüyor dan, ama orijinal depo Ben Ekim 2018 yılından bu yana güncellendi görünmüyor repo bu çatalı buldu düzeltme vardır, hem de tidying- birkaç diğer bit ve 19.04'te çalışan bir paket oluşturmayı başardı.

Güncellenen çatalın mevcut bir yapısını bulamadığım için, çalışmanın yöntemi yubikey-lukskaynak kodunu almayı ve DEB paketini yerel olarak oluşturmayı ve ardından kurmayı içerir.

Önceki cevabımdaki adımları izleyin, 1. adımı aşağıdakilerle değiştirin:


1. yubikey-luks kaynağını getirin, paketi kurun ve kurun

Derleme bağımlılıklarını aşağıdakilerle yükleyin:

sudo apt install dh-exec devscripts expect yubikey-personalization

Ardından kaynak arşivi indirin ve çıkarın:

mkdir ~/tmp
cd ~/tmp
wget -O yubikey-luks.zip https://github.com/thuandt/yubikey-luks/archive/master.zip
unzip yubikey-luks.zip
cd yubikey-luks-*

Paketi şununla oluştur:

make builddeb NO_SIGN=1

Ardından kurun:

sudo dpkg -i DEBUILD/yubikey-luks_*.deb

Sonra ilk cevabımdaki adımların kalanını izlemeye devam edin.

Umarım, 19.10'da yubikey-luksUbuntu'nun ana arşivindeki sürüm güncellenebilir, böylelikle manuel olarak bina gerekmez.

Bonus olarak, yeni sürümde bulunabilecek bir yapılandırma dosyası vardır /etc/ykluks.cfg. Önyüklemede gösterilen mesaj bu dosyada yapılandırılabilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.