Programcılar şifreleri nasıl kullanır?

Veri patlaması çağında, bilgi sızıntısı olayları nadir değildir. Bir programcı olarak, kendinizden başlayarak, bilgi korumasını güçlendirmenin herhangi bir yolu var mı? Aslında karmaşık ve hatırlanması kolay bir şifre gerekli yöntemlerden biridir.

Yazar | Nathilia Pierce

Çevirmen | Crescent Moon, Baş Editör | Tu Min

Üretildi | CSDN (ID: CSDNnews)

Aşağıdaki çeviridir:

Günümüzde, şifreler hala tanıdık bir biçimde kimlik doğrulamanın ana biçimidir. İnsanlar çok tembeldir ve genellikle düşük gizlilikle veya yeniden kullanılan şifrelerle şifreler belirler.

İnsanlar şifreleri korumak için çok fazla araştırma yaptı ve düşündü. Kullandığımız parola, Challenge-Response kimlik doğrulama şemasının en basit şeklidir.

Çünkü "Şifreniz nedir?" Sorusu tekrar tekrar sorulacak ve cevap tekrar tekrar kullanılacak, böylece saldırıları tekrarlamak için kapı açılacaktır.

Doğru hash algoritmasını seçin

Argon2 anahtar türetme işlevidir, en iyi şifre karma algoritmasıdır, bu nedenle yeni projeler bu algoritmayı kullanmayı düşünmelidir. Argon2 kullanamıyorsanız, Scrypt'i düşünebilirsiniz. Başka hiçbir anahtar türetme işlevi dikkate alınmamalıdır.

Argon2i, yan kanal saldırılarına karşı koyabilirken, Argon2d zaman-bellek takas saldırılarına direnebilir. Argon2id, ikisinin birleşimidir, iki saldırıya aynı anda direnebilir ve çoğu durum için uygundur.

Bu nedenle, hepimiz Argon2id kullanmalıyız.

Hash'i doğru şekilde tuzlayın

"Salt", Nonce ile yakından ilgilidir (yalnızca bir kez kullanılan rastgele bir sayı) Ancak, Nonce, hashing için değil, yalnızca iletişim protokolleri için kullanılabilir. Nonce, yeniden oynatma saldırılarını önleyebilir ve "salt", önceden hesaplanmış hash'leri (gökkuşağı tabloları olarak da bilinir) önleyebilir. İkisini birbirinden ayırmak önemlidir çünkü önledikleri saldırılar farklıdır.

"Tuz" için tek gereklilik, her bir karma için benzersiz olması ve herkese açık olması gerektiğidir, ancak tuzlu karmanın önceden hesaplanmasını önlemek için, "tuz" oluşumu tahmin edilemez olmalıdır.

Kriptografik güvenlik sözde rastgele sayı üreteci tarafından üretilen 32 baytlık çıktının öngörülemeyen benzersiz bir değer olduğunu düşünebiliriz.

Hash'i doğru bir şekilde "Pepper"

İnternetin "tuzunu" incelediyseniz, "biber" kelimesini de duymuş olabilirsiniz. "Pepper", karma işlevinde kullanılan bir anahtardır. "Pepper" öngörülemez ve her uygulama için benzersizdir.

Bekle, bir anahtar-karma mesaj kimlik doğrulama kodu gibi geliyor, değil mi? Evet öyle. "Biber" i uygulamak için çok dikkatli olmalısınız çünkü bu, uzunluk genişletme saldırılarına ve Bcrypt ile zor sorunlara neden olabilir.

Argon2'nin resmi spesifikasyonunda, isteğe bağlı bir "biber" parametresi olarak kullanılabilen gizli bir değer uygulanır. Uygulamanız gizli değeri desteklemiyorsa, lütfen karmayı şifreleyin. Argon2 kullanmıyorsanız, lütfen karmayı şifreleyin.

"Biber" ve kriptografik karma uygulamayla zaman kaybetmeyin, herhangi bir pratik fayda elde edemezsiniz ve anahtarı donanım güvenlik modülünde saklamalısınız.

Kütüphane ve Hizmet

Üretimde kendi kimlik doğrulama sisteminizi kullanmamalı, hazır kitaplıkları ve hizmetleri kullanmalısınız. Ancak bir kimlik doğrulama sistemini nasıl uygulayacağınızı ve nasıl çalıştığını öğrenmelisiniz.

Bir PHP geliştiricisiyseniz, yerleşik password_hash işlevini kullanabilirsiniz, Halite kullanıyorsanız daha iyi. Lütfen PHP 7.2 ve üstünü kullandığınızdan emin olun. PHP'nin varsayılan parola karma algoritmasının Bcrypt olduğunu lütfen unutmayın.

Hashing yapmak için Halite kullanın ve ardından parolanızı şifreleyin. Kitaplık, parolayı saklamak için bir anahtar gerektirir.

PargonIE \ Halite \ Password :: hash ($ _ POST, $ encryptionKey);

Düşünülebilecek üçüncü taraf çözümleri şunları içerir:

  • SimpleLogin

  • Okta

  • OpenID

Makul bir şifre politikası kullanın

  • Maksimum uzunluk 128 karakterden az değildir.

  • Minimum uzunluk 12 veya 16 karakterdir.

  • Tüm (en azından çoğu) Unicode ve beyaz boşlukları destekler.

  • Bilinen şifreyi HIBP API aracılığıyla reddedin.

  • E-posta, kullanıcı adı gibi tanımlayıcıyla eşleşen şifreleri reddedin.

  • Özel karakter, büyük harf, küçük harf, sembol vb. Kullanımını zorlamayın.

  • Parolayı hiçbir şekilde engellemeyin, temizlemeyin veya biçimlendirmeyin!

  • Parolanın kopyalanıp parola alanına yapıştırılmasını engellemeyin.

  • Parola alanına girilebilen veya girilemeyen karakterleri sınırlamayın.

  • Parola değişikliklerini sık sık sormayın.

En önemli şey, şifrenin kendisinin bilgi uzunluğu ve miktarıdır. Lütfen iç isteğinizi bastırın, yukarıdaki şifre politikalarından hiçbirini uygulamayın, bunu yapmak yerine, kullanıcı hesaplarını daha iyi koruyabilecek faktör kimlik doğrulamasını uygulamak daha iyidir.

Belirli bir şifre politikası uygulanırsa, kullanıcılar şifrelerini yazmaya zorlanabilir, şifreleri unuturlar, sıkılırlar veya zayıf korumalı bir şifre seçerler. Kullanıcıları şifrelerini değiştirmeye zorlarsanız, onlar da onları yazacaklardır.

@Nylen'in belirttiği gibi, şifre ile tanımlayıcı arasındaki Levenstein mesafesi (Levenshtein mesafesi) korunmalı ve tehlikeli bir mesafe içindeyse şifre reddedilmelidir. Elbette makul bir minimum mesafe ayarlamalısınız.

Kullanıcıları iyi uygulamaları kullanmaya teşvik edin

Kullanıcıları, güvenlik yazılımları, parolalar, parola yöneticileri (BitWarden gibi) ve çok faktörlü kimlik doğrulama (FIDO ve TOTP protokolleri) kullanmaya teşvik edin.

Kullanıcıların şifre olarak isim, tarih, doğum günü vb. Gibi kişisel bilgileri kullanmaları teşvik edilmemekte ve ayrıca kullanıcıların şifreleri başkalarıyla paylaşmamaları tavsiye edilmektedir.

ek

  • İletişimi korumak için TLS 1.2 ve üstünü (SSL protokolünün sonraki sürümü) kullanın. Aksi takdirde, hassas bilgiler (şifre) herkese açık hale getirilecek ve en son karma bile yardımcı olmayacaktır.

  • SMS yoluyla çok faktörlü kimlik doğrulama uygulamayın! SIM kart değişimi dolandırıcılığı ve dolandırıcılığı telefon Doğrulama kodunu almak kolaydır.

Orijinal: https://dev.to/nathilia_pierce/how-to-process-passwords-as-a-software-developer-3dkh

Bu makale bir CSDN çevirisidir, lütfen yeniden basımın kaynağını belirtin.

Son

CATL kazanan BMW siparişleri hakkında piyasa geri bildirimi ve endişeler
önceki
Glory of the King: 60 seviyeli görünümü seçemiyor musunuz? En pahalısı mutlaka en iyisi değildir
Sonraki
Yeni bir kampüs ekleyin! Yurtiçi eğitim devleri Haicang'da büyüyecek! Haicang'ın eğitim bölgesi genişledi
Şirketin kıdemli yöneticisi Cai Wenji, ulusal hizmeti kazanmak için on milyonlar kaybetti mi? Oyuncu: Kralın en kötü saldırıya uğradığı zaman
WeChat motor eklentisi mini oyunlara ne gibi faydalar sağlayacak? (Derinlemesine yorum)
Python'a yeni başlayanlar için
Tongli, Jiangnan'ın şiirsel ifadesi
Basketbol CBA normal sezonu: Qingdao Guoxin çift yıldız dağın doğu ve batı kralını kazandı
Geleneksel web sitelerinin performansını% 24 oranında artırmak için yalnızca üç yönteme ihtiyaç vardır
Geleneksel opera, zamanın vaftizinde daha parlak parlıyor
Zafer Kralı: 2019 Noel sınırlı görünümü kimin? Oyuncu: Bir atıcı eksik
Haidian polisi saldırıyor! "Tao Dao keşişi" süpürüldü
Yeni Bir Veri Macerası
Tekrar geç! Yanhe bölgesindeki Shijiawan arsası bugün açık artırmada satılmaya devam ediyor
To Top