OTP(One-time Password) ile Kimlik Dogrulama

OTP(Tek kullanimlik parola) ile kimlik dogrulama genellikle guvenli kanallar üzerinden(SSH vs)iletisimi desteklemeyen sistemlere ulaşımda kullanılır. Böyleceotp.jpg arada hattı dinleyen birileri parolayi ele gecirse bile aynı parolayı kullanarak sisteme erişim sağlayamaz.

Bugune kadar calistigim firmalarda hep donanim tabanli OTP teknolojilerini kullanmistim, yazilim tabanli otp’ler oldugunu biliyor fakat ihtiyacim olmadigi icin kullanmiyordum. Fakat geçen gün yaşadığım bir olay sonrası artık UNIX sunuculara bağlanırken de yazılım tabanli OTP kullanmaya başladım.

Yasadigim olay neydi?

Universitedeki bir Firewall’da çıkan problem sonucu parolamı ilgili sistem adminleri ile birkaç kez paylaşmak durumunda kaldım, benzer parolayı başka sistemlerde de kullandığım için rahatsız oldum (her parola paylaşımından sonra parolayı değiştirmek ve sonra unutmamak buyuk yuk!)ve bu işe kökten çözüm olarak OTP kullanmaya karar verdim.

Böylece birileri benden sistemin parolasını istediği zaman kendi parolamı değil OTP ile tek kullanımlık bir parola üretip gönderecektim. Böylece aynı aynı parola ile bir daha sisteme giriş mümkün olmayacaktı..

Hemen kolları sıvadım ve işe koyuldum: Kullandığım sistemler FreeBSD ve OpenBSD olduğu için buradaki çözümler bu iki OS’a öz fakat diğer sistemlerde de benzer olduğunu düşünüyorum.

OpenBSD için S/key kullanımı

# skeyinit -E
komutu ile /etc/skey dizininin oluşmasını sağlıyoruz.

sonra ilk giris icin parolamızı oluşturarak gerekli bilgileri sistemdem aliyoruz…

#skeyinit
Reminder - Only use this method if you are directly connected
or have an encrypted channel. If you are using telnet,
hit return now and use skeyinit -s.
[Adding root with md5]
Enter new secret passphrase: otp icin gizli anahtar
Again secret passphrase: otp icin gizli anahtar

ID root skey is otp-md5 100 66475
Next login password: LOU HUGE JUTE EAR HOCK COME

Çıktıda dikkat edeceğimiz kısım: ID root skey is otp-md5 100 66475

otp-md5 , opt icin hangi tek yonlu hash algoritmasinin kullanilacagini belirtir.
100 = sıra numarası, her 100 kullanım sonrası skeyinit ile tekrar gizli anahtarımız üretilmelidir.
66475 : Anahtar, otp üretirken kullanılıyor.

Herhangi bir girişi için otp üretimi

sıradaki OTP’yi öğrenmek için
#skeyinfo -v
otp-md5 99 66475

komutu kullanılır. Şimdi 99 nolu OTP’yi üretelim.
#`skeyinfo -v`
Reminder – Do not use this program while logged in via telnet.
Enter secret passphrase:
OHIO JUNK WORE ALGA EAT ORB

Giriş için gerekli OTP ürettik şimdi de sisteme bağlanalım.

$ ssh -l root:skey 172.16.10.1 -p 2000
otp-md5 99 66475
S/Key Password: biraz önce üretilen OTP değeri girilecek

SSH ile OTP kullanan bir sisteme bağlanırken tek değişiklik kullanıcı adından sonra :skey takısının eklenmesidir. ftp , telnet gibi sistemleri kullanırken de kullanıcı adı yerine kullanici_adi:skey yazarsak sisteme OTP ile bağlanmış oluruz. Peki sisteme hangi yöntemle bağlanılacağını nasıl belirleyeceğiz?

/etc/login.conf dosyasındaki
# Default authentication methods
auth-defaults:auth=passwd,skey:
satırları ile…

Her zaman elimizin altında OTP üreteci olmayabilir, bunun için bu tip hizmetleri web uzerinden veren sistemleri kullanabilir ya da cep telefonunuz Java uygulamalarini destekliyorsa bir otp üretecini cep telefonunuza indirerek kullanabilirsiniz.

jvscrtp.PNG

FreeBSD’deki opiekey programi ile de OTP üretimi yapılabilir.

ps: S/key , otp olarka kullanilmistir.

This entry was posted in FreeBSD, OpenBSD, System Security. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

six + 8 =