# Tek seferlik parola
Tek seferlik parola (OTP), bir bilgisayar sistemi veya başka bir dijital cihazda bir oturum ya da işlem için geçerli paroladır. OTP 'de geleneksel (statik) parola tabanlı kimlik doğrulamasıyla ilişkili birtakım eksiklikler yoktur. Ayrıca bir dizi uygulama sayesinde OTP, akıllı kart veya bir cep telefonu gibi bir kişide bulunabilecek cihazlara erişim gerektiren veya yalnız o kişinin bilebileceği bir PIN gerektiren iki faktörlü kimlik doğrulama içerir.
OTP'lerin en önemli avantajı, statik parolaların aksine, tekrarlı gönderme saldırısına dayanıklı olmasıdır. Bu demektir ki, daha önce bir serviste oturum açma veya işlem yapma için kullanılan bir OTP'yi kaydetmeyi başaran potansiyel bir davetsiz kullanıcı, o OTP'yi artık geçerli olmayacağı için kötüye kullanamaz. İkinci önemli avantaj, birden fazla sistem için aynı (veya benzer) şifreyi kullanan bir kullanıcının, bunlardan birinin parolasının bir saldırgan tarafından ele geçirilmesi halinde, hepsinde savunmasız hale getirilmemesidir. Bir dizi OTP sistemi ayrıca bir oturumun kolaylıkla önceki oturumda üretilen öngörülemez bilgiler üzerinden taklit etmediğinden veya ele geçirilmediğinden emin olarak saldırı yüzeyini daha da daraltır.
OTP'ler geleneksel parolalara muhtemel ve daha gelişmiş bir alternatif olarak düşünülüyor. Kötü yanı ise, insanlar için ezberlenmesi zor bu yüzden çalışmak için ek teknolojilere ihtiyaç duyar.


## OTP'ler nasıl oluşturulur ve dağıtılır.
OTP oluşturma algoritmaları genel olarak saldırgan tarafından öngörülmesini zorlaştıran sözde-rassallık veya rassallıktan yararlanır ve ayrıca saldırgan tarafından değerin bulunması için tersini alması mümkün olmayan özet fonksiyonlarını kullanır. Bu şekilde olması saldırganların önceki OTP'leri gözlemleyip kolaylıkla yeni üretilecek OTP'leri öngörmelerinin önüne geçmek için gereklidir. Sağlam OTP algoritmaları detaylarında çok değişiklik gösterir. OTP'lerin üretimiyle ilgili çeşitli yaklaşımlar aşağıda listelenmiştir:
 - Kimlik doğrulama sunucusu ile parola sağlayan istemci arasındaki zaman senkronizasyonuna bağlı olarak (OTP'ler sadece kısa bir süre için geçerlidir).
  - Yeni bir parola oluşturmak için önceki üretilmiş parolaları temel alan bir matematiksel algoritma kullanarak (OTP'ler etkili bir zincirdir ve önceden tanımlanmış bir sırayla kullanılmalıdır).
  - Yeni şifrenin bir meydan okuma (örneğin kimlik doğrulama sunucusu veya işlem detayları tarafından seçilen rastgele bir sayıya) ve / veya bir sayaca dayalı olduğu bir matematiksel algoritma kullanılması.
Kullanıcının bir sonraki OTP'yi kullanmasını sağlamak için farklı yollar da vardır. Bazı sistemler kullanıcının taşıdığı ve OTP'leri üreten ve küçük bir ekran kullanarak gösteren özel elektronik güvenlik belirteçlerini kullanır. Diğer sistemler, kullanıcının cep telefonunda çalışan yazılımlardan oluşur. Ancak, diğer sistemler sunucu tarafında OTP'leri oluşturur ve bunları SMS mesajlaşma gibi bant dışı bir kanal kullanarak kullanıcıya gönderir. Son olarak, bazı sistemlerde, OTP'ler kullanıcının taşıması gereken bir kağıda basılmıştır.


## OTP üretme yöntemleri.
### Zaman senkronlu.
Zaman senkronize bir OTP genellikle bir güvenlik aracı görevi gören bir donanımla ilişkilendirilir (Ör: her kullanıcıya bir kerelik bir şifre oluşturan kişisel bir araç verilir.). Aralıklı olarak değişen sayılar gösteren bir LCD ekrana sahip küçük bir hesap makinesi veya anahtarlık gibi görünebilir. Aracın içerisinde özel kimlik doğrulama sunucusundaki saatle senkron olan bir saat vardır. Bu tip OTP sistemlerinde zaman, parola algoritmasının önemli bir parçasıdır, çünkü yeni parola, önceli parola veya gizli parolaya ek olarak şu andaki saate göre belirlenir. Bu araç, tescilli, ücretsiz veya açık- kaynaklı bir yazılım çalıştıran bir cihaz veya bir cep telefonu gibi mobil bir cihaz olabilir. Senkron zamanlı OTP standardına bir örnek olarak “Zaman-tabanlı Bir Kerelik Şifre Algoritması (TOTP)” verilebilir.
Aşağıdaki OTP'yi teslim etme yöntemlerinin tümü algoritmalar yerine zaman senkronizasyonu kullanabilir.


### Matematiksel algoritmalar.
Her yeni OTP geçmişte kullanılan OTP'lerden oluşturulabilir. Bu tip bir algoritmanın bir örneği, Leslie Lamport' atfen, tek yönlü fonksiyon (f diyelim) kullanıyor. Bu tek seferlik parola sistemi şu şekilde çalışır:
  - 1. Bir tohum (başlangıç değeri) s seçilir.
  - Bir hash fonksiyonu "f"("s") uygulanan defalarca (örneğin, 1000 defa) tohuma uygulanır: "f"("f"("f"(... "f"("s") ...))). Bu değer, bizim "f"1000("s") olarak adlandırdığımız, hedef sistem üzerinde saklanır.
  - Kullanıcının ilk girişi, f'in tohuma 999 kez uygulanması sonucu türetilen bir parola olan p'yi kullanır, bu "f"999("s")'dir. Hedef sistem bunun doğru şifre olduğunu doğrulayabilir, çünkü f(p), sistemde saklı olan "f"1000("s") değeridir. Kaydedilen değer daha sonra p ile değiştirilir ve kullanıcının giriş yapmasına izin verilir.
  - Sonraki giriş "f"998("s") ile birlikte olur. Yine, bu doğrulanabilir çünkü bir önceki girişten saklanan değer olan p, "f"999("s") değerini verir. Yine, yeni değer p yerine geçer ve kullanıcı doğrulanır.
 - Bu işlem, her seferinde bir kez daha az f uygulanarak, hash'i alındığında, önceki giriş sırasında saklanan değer ile kontrol edilip doğrulanarak 997 kez daha tekrarlanabilir. Hash fonksiyonları tersi alınması son derece zor olacak şekilde tasarlanmıştır bu yüzden saldırgan olası parolaları hesaplamak için başlangıç s değerini bilmesi gerekir, bilgisayar sistemi, herhangi bir vesileyle şifreyi onaylayabilirken, hash değeri alınmış olduğunda, daha önce giriş için kullanılan değeri verir. Belirsiz bir şifre dizisi istenirse, setin tükenmesinden sonra yeni bir tohum değeri seçilebilir.
Önceki şifrelerden serideki bir sonraki şifreyi elde etmek için, ters fonksiyonu hesaplamanın bir yolunu bulmak gerekir. F tek yönlü olarak seçildiğinden, bu yapmak son derece zordur. Eğer f bir kriptografik hash fonksiyonu ise, genellikle bu durumda öyle olur, (bilindiği kadarıyla) hesaplanması olanaksızdır. Bir seferlik parolayı görme imkânı olan davetsiz kullanıcı, bir süreliğine erişim hakkı elde edebilir ancak bu süre dolduğunda ama işe yaramaz hale gelir bir kere bu dönem sona eriyor. S/KEY tek seferlik parola sistemi ve onun türevi OTP'ler Lamport' un şemasına dayanmaktadır.
Bazı matematiksel algoritma şemalarında, kullanıcının sadece tek seferlik parola göndererek şifreleme anahtarı olarak kullanmak için sunucuyla statik bir anahtarla sağlaması mümkündür.
Meydan okuma-yanıt verme tek seferlik parolalarının kullanımı, kullanıcının bir meydan okumaya yanıt vermesini gerektirir. Örneğin, bu belirtecin içine, belirtecin oluşturduğu değeri girerek yapılabilir. Yinelemeleri önlemek için genellikle ek bir sayaç işin içine katılır böylece birisi aynı meydan okumayı tekrar alsa bile hala farklı bir tek seferlik parolalar ortaya çıkar. Ancak hesaplama genellikle önceki tek seferlik parolayı içermez; her iki algoritmayı kullanmak yerine, genellikle bu veya başka bir algoritma kullanılır. Belirteç temelli OTP'yi teslim yöntemleri, zaman senkronizasyonu yerine bu tip algoritmalardan birini kullanabilir.


## OTP teslim yöntemleri.
### Telefonlar.
OTP'lerin dağıtımı için kullanılan yaygın bir teknoloji metin mesajlaşmasıdır. Metin mesajlaşma her yerde bulunan bir iletişim kanalı olduğundan, hemen hemen tüm cep telefonlarında ve metin-konuşma dönüşümünde, herhangi bir mobil veya sabit telefonla, metin mesajlaşmasının düşük maliyetle bütün tüketicilere ulaşmak için büyük bir potansiyeli vardır ancak her OTP için metin mesajlaşma ücreti bazı kullanıcılar tarafından kabul görmez. Metin mesajlaşma üzerinden OTP, birkaç hack grubu bildirdiği üzere dakikalar veya saniyeler içinde başarıyla şifresi çözülebilen bir A5 / x standardı kullanılarak şifrelenebilir. Ayrıca, SS7 yönlendirme protokolü içindeki güvenlik açıkları, ilgili metin mesajlarını saldırganlara yönlendirmek için kullanılabilir ve kullanıldı; 2017'de, Almanya'daki O2 müşterilerinden bazılarının mobil bankacılık hesaplarına erişmek için bu tür bir ihlal kullanıldı. Temmuz 2016'da, ABD NIST, kimlik doğrulama uygulamalarıyla ilgili özel bir yayın taslağı (kılavuz) yayınladı. Burada SMS'in engellenebilir olması nedeniyle 2 aşamalı kimlik doğrulamasında büyük ölçüde kullanılmamasına teşvik etmeye çalışıldı.
Akıllı telefonlarda, tek seferlik parolalar ayrıca doğrudan Authy, Duo ve Google Authenticator gibi özel kimlik doğrulama mobil uygulamaları aracılığıyla ya da mevcut bir uygulamanın bir servisiyle Steam örneğinde olduğu gibi teslim edilebilir. Bu sistemler, SMS ile aynı güvenlik açıklarını paylaşmazlar ve internet tabanlı oldukları için kullanmak için bir mobil ağa gerek duymazlar.


### Tescilli belirteçler.
EMV Avrupa'daki kredi kartları için bir meydan okuma-yanıt algoritması ("Çip kimlik doğrulama programı") kullanmaya başladı. Diğer taraftan, bilgisayar ağları için erişim kontrolünde, RSA Security'nin SecurID'si bir zaman senkronizasyon türü belirtecin bir örneğidir. Bütün belirteçler gibi, bunlar da kaybolabilir, zarar görebilir veya çalınabilir. Ek olarak, özellikle bir yeniden şarj tesisi olmayan veya değiştirilemeyen bir bataryası olan belirteçler için bataryaların ölmesi gibi bazı zorluklar söz konusudur. 2006'da RSA tarafından tescilli bir belirtecin bir varyantı önerilmiş ve "yaygın kimlik doğrulama" olarak tanımlanmıştır ve burada RSA'nın cep telefonu gibi cihazlara fiziksel SecurID çipleri eklemek için imalatçılarla birlikte çalışacağı söylenmiştir.
Son zamanlarda, düzenli keyfob OTP belirteçleri ile ilişkili elektronik bileşenleri almak ve bunları bir kredi kartı form faktörüne gömmek mümkün olmuştur. Ancak, kartların inceliği, 7.9mm 0,84mm kalınlığında olması, standart bileşenlerin veya pillerin kullanılmasını engel olur. Saat pillerinden daha düşük pil ömrüne sahip özel polimer bazlı piller kullanılmalıdır. Yarı iletken bileşenler sadece çok düz olmakla kalmaz, aynı zamanda bekleme modunda ve kullanım sırasında kullanılan gücü en aza indirir.
Yubico, bir tuşa basıldığında bir OTP oluşturan ve uzun bir şifre girmeyi kolaylaştıran bir klavyeyi taklit eden gömülü bir yonga ile küçük bir USB belirteci sunar. Bu belirteç, bir USB aygıtı olduğundan pil değişimi ile ilgili sıkıntıları ortadan kaldırır.
Bu teknolojinin yeni bir versiyonunda, standart ölçü ve kalınlıkta bir kredi-banka kartına bir tuş takımı yerleştirildi. Kartın üzerinde yerleşik bir tuş takımı, ekran, mikroişlemci ve yakınlık çipi bulunuyor.


### Web tabanlı yöntemler.
Hizmet olarak kimlik doğrulaması sağlayıcıları, bir belirteçe ihtiyaç duymadan tek seferlik parolaları iletmek için çeşitli web tabanlı yöntemler sunar. Bu tür yöntemlerden birisi, kullanıcının rastgele oluşturulmuş bir resim tablosundan önceden seçilmiş resimleri tanıma kabiliyetine dayanır. Bir websitesine kayıt olurken kullanıcı köpekler, arabalar, tekneler ve çiçekler gibi birkaç kategori seçiyor. Kullanıcı websitesine her giriş yaptığında, rastgele üretilmiş resim alfanümerik karakterlerle temsil edilir. Kullanıcı, önceden seçilmiş kategorilere uyan resimleri arar ve bir kerelik bir erişim kodu oluşturmak için ilişkili alfanümerik karakterleri girer.


### Basılı.
Bazı ülkelerdeki online bankacılıkta, banka kullanıcıya kağıda basılmış bir numaralı OTP listesi gönderir. Diğer bankalar, OTP'leri göstermek için kullanıcının çizmesi gereken bir katman tarafından gizlenmiş kazınması gereken plastik kartlar gönderir. Her bir online işlem için, kullanıcının o listeden belirli bir OTP'yi girmesi gerekir. Bazı sistemler kullanıcıda bulunan OTP'leri sırayla soracak, bazıları ise girilen OTP'lerden birini rastgele seçecek şekilde oluşturulmuştur. Almanya'da ve Avusturya ve Brezilya gibi diğer birçok ülkede, OTP'ler genellikle TAN ('işlem kimlik doğrulama numaraları' - 'transaction authentication numbers') olarak adlandırılır. Bazı bankalar bu TAN'ları kullanıcının cep telefonuna SMS yoluyla gönderir, bu durumda mTAN olarak adlandırılırlar ('mobil TAN').


## Teknolojilerin Karşılaştırılması.
### OTP uygulamalarının karşılaştırılması.
En ucuz OTP çözümleri OTP'lerin basılı olarak kağıtta teslim edilmesi ve OTP'lerin mevcut cihazda ekstradan masraf çıkaracak tescilli elektronik güvenlik belirteçleri ve SMS mesajları kullanılmadan üretilmesidir.
Elektronik belirteçlerle işleyen sistemler için, algoritma tabanlı OTP üreticileri, sistem OTP'nin bir son tarih ile girilmesini gerektiriyorsa, bir belirtecin sunucuyla senkronize edilmediği durumla başa çıkması gerekir bu da ek geliştirme maliyetine yol açar. Diğer yandan, zaman-senkron sistemler, elektronik belirteçlerde bir saat tutmaya (ve saatin kaymasını hesaba katacak bir sapma değerine) sahip olmaktan kaçınmaktadır. OTP'lerin zamanla senkronize edilip edilmeyeceği, güvenlik açığı derecesiyle temelde ilgisizdir fakat bu bir parolanın yeniden girilmesi gerekliliğini belirtecin son veya sıradaki kodu beklediği durumlarda ortadan kaldırır.
Mevcut bir mobil cihazın kullanılması, ek bir OTP üreticinin elde edilmesi ve taşınması ihtiyacını ortadan kaldırır. Pil şarj olabilir; (2011 itibarıyla) çoğu küçük kart cihazlarında şarj edilebilir ya da değiştirilebilir bir pil yok. Ancak, çoğu tescilli belirteç kurcalamaya dayanıklı özelliklere sahip.


### OTP' ler ve diğer veri koruma koruma yöntemleri.
Tek seferlik parolalar, saldırganların kullanıcıları kandırıp daha önce kullandıkları bir veya daha fazla OTP'yi çaldıkları sosyal mühendislik saldırılarına açıktır. 2005 yılının sonlarında İsveçli bir bankanın müşterileri OTP'lerini vermeleri için kandırıldılar. 2006 yılında bu tür bir saldırı bir ABD bankasının müşterileri için kullanıldı. Zaman senkronlu OTP'ler bile, iki yöntemle kimlik avına (yemleme) karşı savunmasızdır: Eğer saldırgan OTP'nin metnine yeterince hızlı erişebilirse, parolayı asıl kullanıcı olarak hızlıca kullanabilir. Diğer bir yöntem ise, kimlik avcısı bazı bilgileri (şu an geçerli olmayan eski OTP'ler) sosyal mühendislik ile topladıktan sonra onlardan yararlanarak gelecekteki OTP'lerin öngörülmesinde kullanılabilir. Bunun önüne ise OTP sistemlerinde yukarıda belirtildiği gibi hash zinciri uygulanarak geçilebilir. Bir OTP sistemi, OTP authenticator tarafından oluşturulduğunda ve kullanıcıya (muhtemelen bant dışı) iletildiğinde gerçekten rassal OTP'leri kullanabilir; aksi takdirde OTP her parti tarafından bağımsız olarak oluşturulmalı, tekrarlanabilir olmalı dolayısıyla sözde-rassal (pseudo-random) bir algoritma kullanmalıdır.
Her ne kadar OTP'ler statik hafızaya alınmış bir şifreden daha güvenli olsalar da, OTP sistemlerinin kullanıcıları hala ortadaki adam saldırılarına karşı savunmasızdır. OTP'ler bu nedenle herhangi bir üçüncü tarafa açıklanmamalı ve katmanlı bir güvenlikte bir OTP kullanımı tek başına OTP kullanmaktan daha güvenlidir; katmanlı güvenlik uygulamalarının bir yolu, kullanıcı tarafından hatırlanan bir parola ile birlikte bir OTP kullanmaktır. Katmanlı güvenlik uygulamanın bir avantajı, tek oturum açmada ("single sign-on") ana parola ile parola yöneticisi ile birlikte kullanılmasıyla sadece tek katmanlı oturum açmaya göre daha güvenli hale gelir böylece parola yorgunluğunun kullanışsızlığından uzun bir oturum içerisinde açılan yeni oturumlar (yeni bir websitesi, doküman ve uygulamalar) için her birinde parola ile giriş yapmaktan kaçınılabilir. Bununla birlikte, tek bir oturum açma sırasında birçok güvenlik biçiminin tek seferde kullanılmasının dezavantajı, her giriş sırasında daha fazla güvenlik önleminin sakıncasına sahip olmasıdır - bir kişi yalnızca bilgiye erişmek için bilgisayarın kısa bir kullanımı için oturum açmış olsa bile veya bilgisayarın kullanıldığı diğer bazı gizli öğeler kadar güvenlik gerektirmeyen bir uygulama da olsa aynı işlemleri gerçekleştirmek durumundadır.


### İlgili teknolojiler.
Çoğu zaman, tek seferlik parolalar iki faktörlü kimlik doğrulamanın bir uygulamasıdır (2FA veya T-FA). 2FA, her iki katmana yalnızca bir tür saldırı kullanan biri tarafından tehlikeye atılmasının mümkün olmadığı katmanlı bir güvenlik biçimidir.
Bazı tek oturum açma çözümleri, tek seferlik parolalardan yararlanır.
Tek seferlik parola teknolojisi genellikle bir güvenlik belirteci ile kullanılır.


## Standartlaştırma.
Birçok OTP teknolojisi patentlidir. Bu, her şirket kendi teknolojisini zorlamaya çalıştığı için, bu alanda standardizasyonu daha da zorlaştırıyor. Ancak standartlar hala var – örneğin, RFC 1760 (S/KEY), [rfc:2289 RFC 1321] (OTP), RFC 4226 (HOTP) ve [rfc:6238 RFC 1108] (TOTP).