OTP ile Kişi Doğrulama

One Time Password (OTP) veya tek kullanımlık şifre, çok aşamalı kimlik doğrulama sistemlerinin temelini oluşturan bir teknik. Basitçe iki cihazın bir adet ortak sır ve zamanı kullanarak sadece kullanıldığı zaman geçerli olan şifreler ile birbirlerini doğrulamasıdır. Bu bakımdan kullanımı bankalar, e-ticaret siteleri gibi sunucunun kullanıcının kimliğini doğrulayacağı önemli uygulamalarda yer bulur. Bu kullanım mutlak olmadığından iki insanın birbirini doğrulamasına bir engel yoktur.

Tüm iletişim yollarında iki temel güvenlik unsuru bulunur; iletişim kanalının güvenliği ve tarafların doğruluğu. Bu bakımdan bilinen en güvenli iletişim imkanlarını kullansanız dahi şayet konuştuğunuzu düşündüğünüz kişi ile konuşmuyorsanız güvenli bir iletişim içinde değilsiniz demektir. Kriptoloji jargonunda “Malicious Malory” yani kötü niyetli Malory sizi kandırıp başkası ile konuştuğunuza veya iletişimin arasında bulunarak konuşmanızın mahrem olduğuna inandıran kötü karakterdir. Mallory’nin bu çabasını boşa çıkarmak genelde tarafların bir ortak sırrı paylaşmasını ve bu sırrın kriptografik olarak doğrulamasını gerektirir.

GPG ile şifreli mesajlar şifrelenebildikleri gibi özel anahtarın sahipliğini gösterecek şekilde imzalanabilirler de, OTR ile şifrelenen konuşmalarda bilinen ortak bir sır ile tarafların düşünülen kişi olduğu doğrulanabilir. Her halde tarafların güvenli kılınmak istenilen iletişim kanalında paylaşmadıkları ortak bir sırrının olması gereklidir. Fakat uzun soluklu yazışmalarda, insanların zaten pek kalitesiz olan sınırlı sırları biter. Peki görüşmeyen iki kişi yeni sır nereden bulabilir?

Önerilen genelde konuşulan hattın dışından başka bir hat ile gerekli doğrulamaların yapılmasıdır fakat bunun mümkün olmadığı veya zahmetli olacağı durumlar vardır. Bu durumda OTP ilginç bir kullanımla duruma çare olabilmekte. Her kriptografi çözümü gibi bu çözüm de ortak sır olacak rastgele bir dizi ile başlıyor.

1. Öncelikle ortak sır olacak olan rastgele 16 haneli dizinin elde edilmesi gerekli. Linux kullanıcıları pwgen komutunu kullanabilir. En ciddi kullanıcılar belki zar atmak isteyebilirler ama sanırım bu uygulama için abartılı olacaktır. 16 karakter alfanumeratik bir dizi sır olarak yeterli olacaktır.

$ pwgen -s 16
kLlOcJlzCqjst0DT

2.OTP’yi kullanacak tarafların akıllı telefonlarında bir OTP yazılımı bulundurmaları ve bu sırrı programa yüklemeleri gerekiyor. Bu bakımdan tercihim Red Hat’e ait olan açık kaynak kodlu FreeOTP yazılımı. F-droid depolarında bulunabilir.

3. Yazılım dahilinde sağ üst köşedeki küçük anahtar simgesine basarak yeni giriş menüsü açıldıktan sonra OTP için bir isim, rastgele bir kimlik kodu ve daha önce üretilen 16 haneli sır gerekli yerlere girilmeli.

4.Seçeneklerden TOTP seçildikten sonra algoritma ve zaman aralığı belirlenmeli. Bu noktada Algoritma için sha256 öneririm keza artık kullanılan tüm akıllı telefonlar bu özüt fonksiyonunu anında hesaplayabilecek güçte. Zaman aralığı için de 90 saniye öneriyorum. Doğrulama işlemi vakit alabildiği için 1.5 dakika gerekli bir zaman oluyor.

Her iki telefonun sistem saatinin ağ ile eşitlendiği ve girdilerin aynı olduğu durumda FreeOTP, her 1.5 dakika için iki cihazda da aynı şifreyi gösterecektir. Bu noktadan sonra bu imkanın nasıl kullanılacağı sadece kişilerin ihtiyaçları ile sınırlı. Ben sık konuştuğum kişilerin OTR kimliklerini doğrulamak için yararlanıyorum. Kimi zaman da sadece eğlenmek için. İlginç bir kullanım bulursanız lütfen paylaşmaktan çekinmeyin.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.