OpenSSH, evrensel iki faktörlü kimlik doğrulama desteği ekler

OpenSSH kod tabanına katma Protokolü destekleyen cihazları kullanan iki faktörlü kimlik doğrulama için deneysel destek U2Fittifak tarafından geliştirildi FIDO. U2F, kullanıcının fiziksel varlığını doğrulamak ve onlarla USB, Bluetooth veya NFC aracılığıyla etkileşime geçmek için düşük maliyetli donanım belirteçlerinin oluşturulmasına olanak tanır. Bu tür cihazlar web sitelerinde iki faktörlü kimlik doğrulama aracı olarak tanıtılıyor, halihazırda büyük tarayıcılar tarafından destekleniyor ve Yubico, Feitian, Thetis ve Kensington gibi çeşitli üreticiler tarafından üretiliyor.

Kullanıcının varlığını doğrulayan cihazlarla etkileşim kurmak için OpenSSH'ye yeni bir anahtar türü eklendi "[e-posta korumalı]” (“ecdsa-sk”), NIST P-256 eliptik eğri ve SHA-256 hash ile ECDSA (Eliptik Eğri Dijital İmza Algoritması) dijital imza algoritmasını kullanır. Belirteçlerle etkileşime yönelik prosedürler, PKCS#11 desteği için kitaplığa benzer şekilde yüklenen ve kitaplığın üstünde bir sarmalayıcı olan bir ara kitaplığa yerleştirilir. libfido2USB üzerinden belirteçlerle iletişim kurmak için araçlar sağlayan araçlar sağlar (FIDO U2F/CTAP 1 ve FIDO 2.0/CTAP 2 protokolleri desteklenir). OpenSSH geliştiricileri tarafından hazırlanan libsk-libfido2 ara kütüphanesi dahil libfido2 çekirdeğine ve ayrıca HID sürücüsü OpenBSD için.

U2F'yi etkinleştirmek için kod tabanının yeni bir dilimini kullanabilirsiniz. depo OpenSSH ve kütüphanenin HEAD şubesi libfido2OpenSSH için gerekli katmanı zaten içerir.
Libfido2 OpenBSD, Linux, macOS ve Windows'u destekler.

Kimlik doğrulamak ve bir anahtar oluşturmak için SSH_SK_PROVIDER ortam değişkenini, içinde libsk-libfido2.so yolunu belirterek ayarlamanız (export SSH_SK_PROVIDER=/path/to/libsk-libfido2.so) veya kitaplığı SecurityKeyProvider aracılığıyla tanımlamanız gerekir. ayarını yapın ve ardından "ssh-keygen -t ecdsa-sk" komutunu çalıştırın veya anahtarlar zaten oluşturulmuş ve yapılandırılmışsa "ssh" kullanarak sunucuya bağlanın. ssh-keygen'i çalıştırdığınızda, oluşturulan anahtar çifti “~/.ssh/id_ecdsa_sk” dizinine kaydedilecek ve diğer anahtarlarla benzer şekilde kullanılabilir.

Ortak anahtar (id_ecdsa_sk.pub), yetkili_anahtarlar dosyasındaki sunucuya kopyalanmalıdır. Sunucu tarafında yalnızca dijital imza doğrulanır ve istemci tarafında tokenlarla etkileşim gerçekleştirilir (sunucuya libsk-libfido2 kurmanıza gerek yoktur, ancak sunucunun “ecdsa-sk” anahtar tipini desteklemesi gerekir) . Oluşturulan özel anahtar (id_ecdsa_sk) aslında bir anahtar tanıtıcısıdır ve yalnızca U2F belirteci tarafında depolanan gizli diziyle kombinasyon halinde gerçek bir anahtar oluşturur.

id_ecdsa_sk anahtarı bir saldırganın eline geçerse, kimlik doğrulamayı geçmek için saldırganın donanım belirtecine de erişmesi gerekecektir; bu olmadan id_ecdsa_sk dosyasında saklanan özel anahtar işe yaramaz. Ek olarak, varsayılan olarak, anahtarlarla herhangi bir işlem gerçekleştirirken (hem oluşturma sırasında hem de kimlik doğrulama sırasında), kullanıcının fiziksel varlığının yerel olarak doğrulanması gerekir; örneğin, belirteç üzerindeki sensöre dokunmanız önerilir, bu da bunu zorlaştırır. Bağlı bir jetonla sistemlere uzaktan saldırılar gerçekleştirin. Başka bir savunma hattı olarak, anahtar dosyasına erişim için ssh-keygen'in başlangıç ​​aşamasında bir şifre de belirtilebilir.

U2F anahtarı, "ssh-add ~/.ssh/id_ecdsa_sk" aracılığıyla ssh-agent'a eklenebilir, ancak ssh-agent'ın "ecdsa-sk" anahtarları desteğiyle oluşturulması, libsk-libfido2 katmanının mevcut olması ve Aracının, belirtecin bağlı olduğu sistemde çalışıyor olması gerekir.
OpenSSH ecdsa anahtarlarının formatı, ek alanların varlığında ECDSA dijital imzaları için U2F formatından farklı olduğundan yeni bir anahtar türü “ecdsa-sk” eklenmiştir.

Kaynak: opennet.ru

Yorum ekle