Yeni dönemin siber saldırılarına karşı alınabilecek en etkili önemlerinden birisi de tek bir parolanın yanına ek olarak bir pin, tek seferlik üretilen kodlar (one time passcodes) veya biyometrik gibi ikinci veya üçüncü bir doğrulama daha (two-factor authentication) ekleyerek bir güçlü kimlik doğrulama (strong authentication) yöntemine geçilmesidir. Bu artık özellikle kurumsal altyapılarda olmazsa olmaz bir gereksinime dönüşmüştür.
Son yıllardaki büyük veri sızıntılarının çoğunda, ele geçirilmiş kullanıcı giriş bilgileri büyük rol oynamıştır. Sadece tek bir kullanıcı/parola ile bağlanılan sistemler, uygulamalar ve platformların güvenliği, o parolanın açığa çıktığı ve ele geçirildiği ana kadardır. Gelişen tehditler, tek bir parola bariyerini çoğu zaman geçebilir hale gelebildiği için artık tek bir parola yerine bir ikinci ve hatta bazen yerine göre üçüncü bir kimlik doğrulaması da yapılarak güçlü kimlik doğrulama yapılmak zorunluluğu vardır. Bu yazımızda kurumlar için hayati olan güçlü kimlik doğrulama yöntemlerine 2FA (2-Factor Authentication) ve OTP sistemleri bağlamında göz atacağız.
2-Adımlı Doğrulama (2-Factor Authentication) Nasıl Çalışır
Günümüzde kullanılan iki adımlı kimlik doğrulama sistemleri, tek seferlik kodlar (one-time passcodes) ve PKI sertifika tabanlı olmak üzere iki sistem üzerinden yürür.
- Tek Seferlik Parolalar (one-time password) — Bir çeşit simetrik doğrulama olan tek seferlik token kodları, kullanıcı tarafında bir mobil uygulamadan üretildikten ya da SMS yoluyla alındıktan sonra giriş yaparken kimlik doğrulama sunucusunda üretilen değerle matematiksel olarak eşleştikten sonra erişim yetkisi verilmesine dayanan bir iki adımlı kimlik doğrulama mekanizmasıdır.
- PKI (Public Key Infrastructure) Authentication — Asimetrik doÄŸrulama olarak bilinen PKI doÄŸrulama, birbirinin benzeri olmayan ÅŸifreleme anahtarlarına (açık anahtar ve özel anahtar) dayanır. PKI sertifika tabanlı kimlik doÄŸrulama mekanizmalarından akıllı kartlarda veya USB token’lar (donanım tabanlı) olarak bilinen harici flash disklerde kullanıcının özel gizli anahtarı (secret private key) gömülüdür. Kullanıcı bir sisteme doÄŸrulama yaparken sistem onu bir “challenge” ile karşılar. Özel anahtar ile imzalanan “challenge” ile kullanıcının açık anahtarı matematiksel olarak uyuÅŸur ve birbirini tamamlarsa eriÅŸim saÄŸlanmış olur.
Yukarıdaki iki adımlı kimlik doğrulama sistemlerinden hangisinin kullanılması gerektiği tamamen kurumsal altyapıdaki ihtiyaçlara, bütçeye, iş mantığına, standart gereksinimlerine, uyumluluk ve uygunluk zorunluluklarına göre değişiklik göstermektedir.
Bir OTP Değeri (One-Time Password) Nasıl Oluşturulur
Genel olarak bir OTP değeri 4 ana girdiden oluşmaktadır:
- 256 bit (veya 512 bit) uzunluÄŸunda rastgele oluÅŸturulmuÅŸ bir gizli token deÄŸeri (secret token).
- Zaman bazlı OTP’ler (time-based) veya olay bazlı çalışan OTP’ler (event-based).
- Entropi ekleyen diÄŸer deÄŸiÅŸkenler.
- ve tüm girdikleri birleştirerek tek bir OTP değeri oluşturan özet alma (hashing) algoritması.
Güvenlik/Güvence Seviyesi Ne Olmalıdır
Br kimlik doğrulaması açısından ilk düşünülmesi gereken, bu doğrulamanın güvence seviyesinin ne olacağıdır. Yani her kimlik doğrulaması için aynı düzey güvenlik/güvence seviyesinden bahsedemeyiz. Sistemlerin kritikliği ile güvence seviyesi arasında kurulacak bir doğru orantı mantığı yararlı olabilir. Çünkü her sistem için aynı kritiklik seviyesinden bahsedilemeyeceği için güvenlik/güvence seviyesinin de aynı düzeyde kritikliği söz konusu olamayabilir. Sadece bir kullanıcı adı ile parola kullanılarak giriş yapılması yeterli olan bir sistem veya uygulama düşük güvence seviyesine sahipken, giriş için 2 adımlı veya çoklu kimlik doğrulaması gibi birden çok mekanizmanın kullanılması da güvenlik/güvenlik seviyesini aynı düzeyde yükseltmiş olacaktır. Tabii tüm bunları ayarlarken kullanım kolaylığını da gözetmekte yarar vardır.
Güvence/güvenlik düzeyleri belirlenirken NIST’in belirlemiÅŸ olduÄŸu güvence seviyeleri yönlendirici olabilir. Buna göre artan derecelerine göre güvenlik/güvence seviyeleri ÅŸu ÅŸekillerde olabilir:
- Güvence Seviyesi 1: Bir parola veya PIN
- Güvence Seviyesi 2: Bir soft token (yazılımsal token) tarafından üretilmiş OTP
- Güvence Seviyesi 3: Bir soft token (yazılımsal token) tarafından üretilmiş PIN korumalı OTP
- Güvence Seviyesi 4: Bir hardware token (donanımsal token) tarafından üretilmiş PIN korumalı OTP
Ayrıca güvence seviyesi 2 ve üzerinde olan değerler için kriptografik modülün FIPS onaylı olması gerekliliği de vardır. Güçlü kimlik doğrulama için elbette en üst seviye her zaman için idealdir.
Kurumlar için Bir OTP Sistemi En Azından Hangi Şartları Yerine Getirmelidir
Bu değerlendirmemizde yazılım (software) tabanlı yani bir mobil uygulamada üretilen ya da bir SMS ile cep telefonlarına gönderilen OTP değerlerini üreten bir OTP sisteminin kurumsal altyapılar için olası en asgari gereksinimlerinden (RFP) bahsedeceğiz. Bu bağlamda kurumsal altyapılara güçlü kimlik doğrulama yapmak için konumlandırılacak software tabanlı OTP sistemleri en azından aşağıdaki şartları yerine getirebilmelidir:
- Bir OTP sistemi mobil platform bağımsız olmalıdır. Yani iOS ve Android işletim sistemi desteği olmalıdır.
- OTP uygulama sunucusu Windows ve Linux işletim sistemleri üzerinde çalışabilmelidir.
- OTP sistemi, endüstri standardı şifreleme algoritmaları ile metodlarını desteklemelidir.
- OTP sistemi, olay bazlı (event based) ve zaman bazlı (time based) çalışma seçeneklerini desteklemelidir.
- OTP sistemi, kullanıcı kimlik doğrulaması için SQL (ODBC ve JDBC bağlantısı), Microsoft Active Directory, LDAP ve RADIUS gibi yaygın olarak kullanılan protokolleri, kaynakları ve standartları desteklemelidir.
- OTP sistemi, aynı anda birden fazla kullanıcı veritabanı, LDAP ve/veya Active Directory sistemi ile entegre olabilmelidir.
- OTP sisteminin Active Directory ile entegrasyonunda Active Directory şemasına müdahale edilmemesi tercih sebebidir. Tabii bu durum kurumsal altyapıya bağlı olarak değişir.
- OTP sistemi firewall, IPS, SIEM, SSL VPN, Microsoft ürünleri, SharePoint, veri tabanları, network cihazları (router, switch vs) ve sanallaştırma platformları (VMware, Hyper-V vs) ile entegre olabilmelidir.
- OTP sistemi yerinde yedeklilik (redundancy) ve uzakta felaket yedekliliği (disaster recovery), clustering ve high availability mekanizmalarını desteklemelidir.
- OTP sistemi, kuruma özel (in-house) uygulamalar ve sistemler ile entegre edilebilmeli, bunun için Java, Microsoft .NET, PHP, Web Service API gibi dilleri ve platformları desteklemelidir.
- OTP sistemi, erişimler ve sistemin kendisi hakkında detaylı raporlar sağlayabilmelidir.
- OTP sistemi, kullanıcı erişim kayıtlarını (log) kontrol edip denetlemeyi mümkün kılan bir yönetim arayüzü sağlamalı ve sistemdeki her türlü hareketi SIEM ürünlerine syslog ile aktarabilmelidir.
- OTP sistemi kolay bir yönetim arayüzüne sahip olmalı ve yeni kullanıcı ekleme/silme/bloke etme gibi fonksiyonları sağlamalıdır.
- OTP sistemi ihtiyaçlar doğrultusunda kullanıcı sayısı ve kullanım alanları artışı ihtiyaçlarına yönelik ölçeklendirelebilir olmalıdır.
- OTP sistemi kullanıcıların aynı token yazılımını kullanarak birden fazla uygulamaya giriş yapabilmesini sağlamalıdır.
Referanslar
- NIST Electronic Authentication Guideline (800-63-2)
- https://en.wikipedia.org/wiki/One-time_password
- https://en.wikipedia.org/wiki/Multi-factor_authentication
- https://en.wikipedia.org/wiki/Public_key_infrastructure
- https://en.wikipedia.org/wiki/Public-key_cryptography
- https://en.wikipedia.org/wiki/Time-based_One-time_Password_Algorithm
- https://en.wikipedia.org/wiki/HMAC-based_One-time_Password_Algorithm
- http://blog.gemalto.com/security/2016/03/22/ultimate-cheat-sheet-on-strong-authentication/
- http://blog.gemalto.com/security/2016/04/14/ultimate-cheat-sheet-on-strong-authentication-2/