2012-09-18 27 views
10

Veritabanımın güvenliği ihlal edildiğinden, uzun ömürlü erişim belirteçlerinin çalınamadığından emin olmak için hangi güvenlik önlemlerini almalıyım? Erişim belirteci güvenli bir şekilde kaydetme

Uzun ömürlü erişim belirteci

belirli bir hizmet için bir kullanıcı adı ve şifre olarak, ancak düz metin olarak en (ben dahil) mağaza erişim belirteçleri görünüyor başkalarına konuşmasını kadar iyidir. Bu, düz metin içinde bir parola saklamak kadar kötü gibi görünüyor. Açıkçası, bir kimse & no'lu tuzu atlatamaz.

İdeal onları şifrelemek isterdim ama özellikle bir açık kaynak projesi üzerinde, bunu yapmanın en iyi yolu emin değilim.

Bu sorunun cevabı ödeme bilgilerini ve PCI uyumu saklanmasıyla ilgili birine benzer hayal, ama bu değil daha fazla bilgi verilecektir Ayrıca neden sorardım? Belki bir şey özlüyorum.

+0

"Özellikle açık kaynak projesinde" ne demek istiyorsun? Projeniz kapalı kaynak olmadığından, kararınızın farklı bir şifreleme şemasıyla gitmesine karar vermeyi ne düşünüyorsunuz? –

cevap

7

Sadece başkaları tarafından sağlanan bir jetonu doğrulamak istiyor musunuz? Eğer öyleyse, bir şifre gibi davran. 10.000 yineleme ile Password Based Key Derivation Function 2 (PBKDF2) (RFC 2898 da açıklanan) gibi bir bayt türetme algoritması kullanın ve ilk 20 bayt veya benzeri saklayın. Jeton alındığında. Pratik olarak geri döndürülemez.

Kimlik doğrulaması için belirteci başkalarına sunmak ister misiniz? Eğer öyleyse, bu bir meydan okumadır çünkü eğer uygulamanız şifreyi çözebilirse ya da başka bir şekilde belirtecine erişebilirse, bir saldırgan olabilir. Shannon'ın Maxim'i düşünün, saldırgan sistemi açık bir proje için özellikle biliyor.

Bu durumda, en iyi yaklaşım güçlü bir algoritma (örn. AES256) ile tokenleri şifrelemek, güçlü bir kriptografik standart rasgele sayı üreteci kullanarak anahtarlar oluşturmak ve anahtar (lar) ı verileri başka bir yere güvenli bir şekilde saklamaktır. Yukarıdaki örnekte veritabanının dışında izin korumalı bir dosyada olduğu gibi. İkincisi, SQL enjeksiyon saldırılarının anahtarları ortaya çıkarmayacağı anlamına gelir.

+0

Teşekkürler - Kullanım durumlarınızdan daha çok bahsetmek istiyorum; buradaki belirteci, kullanıcının mevcut olmadığı zamanlarda daha sonra kullanabilmem gerekir. –

+0

@akton ama neden belirteci bir parola gibi davranıyorsun? (düz metin) parolalar, saldırganın bw'yi alabilmesini istemediğimiz bilgilerdir ve aynı pwd ile farklı bir servise giriş yapmak için kullanabilir. ama bir jeton sadece kendi hizmetiniz için geçerlidir - bu yüzden eğer saldırgan ellerini/jetonun üzerine getirdiyse, hesabınıza giriş yapmak için jetonu kullanmaktan daha fazla zarar verebilir ... ne görmüyorum ? – pkyeck

+0

Sorunun doğru olduğunu varsayarsak, kullanıcı, kullanıcının kimliğini doğrulayabilecek uzun ömürlü bir kanıttır. Başka bir deyişle, bu bir şifre. – akton

İlgili konular