OpenSSH kod tabanına
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.
U2F'yi etkinleştirmek için kod tabanının yeni bir dilimini kullanabilirsiniz.
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