FIDO-Donanımsal Kimlik Doğrulayıcı
Merhabalar, bu blog yazısında FIDO nedir, nasıl kullanılır, bu cihazlar ile neler yapılabilir sorularına değineceğim ve Nordic nRF52840 kartının çalışan bir FIDO güvenlik anahtarına nasıl dönüştürüleceğini uygulamalı olarak açıklayacağım.
FIDO (Fast IDentity Online), kimlik hırsızlığına karşı, koruma sağlayan iki faktörlü kimlik doğrulama protokolüdür. İki faktörlü kimlik doğrulama, bir kişinin şifrenizi ele geçirdiği durumlarda bile yetkisiz kullanıcı girişlerini engellemeye yardımcı olan çok önemli bir parola koruma yöntemidir. FIDO güvenlik anahtarları çevrimiçi servislere bağlanmada şifreleme kolaylığı ve güvenliği sağlamaktadır. Bu cihazların hayatımızı kolaylaştıran birçok örneği vardır; örneğin hesabımıza girmek istediğinizde, önce bilgilerimizi girmemizi ardından bu güvenlik anahtarımızı bilgisayarımızın USB portuna takıp düğmesine dokunarak hesabımıza erişimimizi kolaylıkla sağlayabiliriz. Güvenlik açışından en önemli özelliği bu anahtarı elinde bulundurmayan birisi, şifrenizi bilse bile hesabınıza erişemez.
FIDO, güçlü bir kimlik doğrulama sağlamak için açık anahtarlı şifreleme tekniği kullanmaktadır.Bu sayede dışarıdan herhangi birinin verilerimize ulaşması veya sunucunun güvenliğini aşıp bu bilgileri ele geçirmesi imkansız hale getirmektedir.
Nordic nRF52840 kartı FIDO güvenlik anahtarına nasıl dönüştürülür ?
Bu bölümde cihazımıza OpenSk yazılımını kuracağız. OpenSk, Google tarafından geliştirilmiş FIDO standartlarını gerçekleyen güvenlik anahtarı için açık kaynaklı bir uygulamadır. Bu çalışma Linux Debian 10 Sistemi üzerinde gerçekleştirilmiştir. Öncelikle yazılımın kurulumunda gereksinimlerimiz olan Tock ve Rustup kurulumunu gerçekleştirmeliyiz.
pip3 install --upgrade tockloader --user
git clone https://github.com/tock/tockloader.git
Rustup kurulumu için aşağıdaki komutu yazıyoruz daha sonra açılan pencerede default olarak ayarlanan 1 numaralı kurulumu seçiyoruz kurulum tamamlandıktan sonra path eklemeyi unutmamalıyız.
curl--proto ‘=https’ --tlsv1.2 -sSf https://sh.rustup.rs | sh
Nrfutil kurulumu için Python2 veya Python3 ile deneyebilirsiniz
pip install nrfutil / pip3 install nrfutil
Bu kurulumları tamamladıktan sonra sırada OpenSk kurulumu var.Öncelikle OpenSk’ yı clone edeceğiz ;
git clone https://github.com/google/OpenSK.git
OpenSk clone işlemi sorunsuz bir şekilde tamamlandı ise sadece bir defa (!) çalıştıracağımız aşağıdaki komutu çalıştırın. (Bu komut için OpenSk dizininde olmalısınız.)
./setup.sh
(bu komuttan sonra third_party dizini altında libtock-rs ve tock dosyalarının oluşup oluşmadığını kontrol edin.)
OpenSk’ yı Nordic cihazımıza flash etmek için nrfutil kullanacağız. Bu işlemi yaparken dongle DFU modda olması gerekmektedir. Cihazı DFU moda almak için reset butonuna basılı bir şekilde bilgisayarımıza takmalıyız , cihazı taktıktan bir süre sonra reset butonunu bırakabiliriz.
./deploy.py --board=nrf52840_dongle_dfu --opensk programmer=nordicdfu
Yukarıdaki kod tamamlandığı zaman sonuç aşağıdaki gibi olacaktır ve OpenSk yazılımı nrf52840_dongle’a flash edilmiştir.
Bu işlemin tamamlanması ile beraber nRF dongle’mıza OpenSK’yı yüklemiş olduk. nRF dongle’mızın (ve diğer tüm FIDO destekli dongle’ların) çalıştığını WebAuthn sitesinden test edebilirsiniz. Ayrıca Thingiverse sitesinden 3D printer ile koruyucu kutu yapabilirsiniz.