Bir REST-API yapıyorum ve basit bir BASIC kimlik doğrulama girişi yapmak. Sonra HTTPS'nin bağlantıyı güvenli hale getirmesine izin verin, böylece api kullanıldığında şifre korunur.
Bu güvenli kabul edilebilir mi?
Bir REST-API yapıyorum ve basit bir BASIC kimlik doğrulama girişi yapmak. Sonra HTTPS'nin bağlantıyı güvenli hale getirmesine izin verin, böylece api kullanıldığında şifre korunur.
Bu güvenli kabul edilebilir mi?
HTTP Temel Kimlik Doğrulama ile ilgili birkaç sorun vardır:
Bunlardan SSL kullanmak yalnızca ilkini çözer. Ve bununla bile, SSL yalnızca web sunucusu - herhangi bir dahili yönlendirme, sunucu günlüğü vb. Düz metin parolayı görene kadar korur.
Yani, her şeyde olduğu gibi resmin bütününe bakmak önemlidir.
HTTPS geçiş sırasında şifreyi korur mu? Evet.
Bu yeterli mi? Genellikle hayır. (Her zaman hayır demek istiyorum, ancak bu gerçekten sitenizin ne olduğuna ve ne kadar güvenli olması gerektiğine bağlıdır.)
Bunu şu şekilde düşünmeye çalışın: SSL kullanan herhangi bir web sitesinde oturum açtığınızda, büyük olasılıkla parolanızı HTTPS üzerinden düz metin olarak geçiriyorsunuzdur (örneğin GMail).
Tek fark Temel Yetkilendirme, kullanıcı adı / şifrenin istek gövdesi yerine (GET / POST) yerine istek başlıklarında geçirilmesidir.
Bu nedenle, temel-kimlik doğrulama + https kullanılarak HTTPS üzerinden form tabanlı kimlik doğrulamadan daha az veya daha güvenli değildir.
HTTPS üzerinden Temel Kimlik Doğrulama iyidir, ancak tamamen güvenli değildir. Fiddler 'ın SSL hata ayıklaması için çalışma şekline benzer şekilde, kurumsal bir HTTPS proxy, web tarayıcısı ile Proxy (IP adresi web sunucusu günlüklerinizde görünen) arasındaki bağlantıyı yönetir. Bu durumda, HTTPS şifresinin şifresi çözülür ve daha sonra kurumsal proxy'de yeniden şifrelenir.
Proxy'yi kimin yönettiğine ve günlüklerinin nasıl kullanıldığına bağlı olarak, bu sizin açınızdan kabul edilebilir veya kötü bir şey olabilir.
SSL müdahalesinin nasıl yapıldığı hakkında daha fazla bilgi için , bu bağlantıya bakın:
SSL Proxy, bir SSL bağlantısına müdahale ettiğinde, istemci tarayıcısına öykünülmüş bir sunucu sertifikası sunar. İstemci tarayıcısı, tarayıcı ProxySG tarafından kullanılan yayıncıya güvenmediği için son kullanıcıya bir güvenlik açılır penceresi verir. SSL Proxy tarafından kullanılan yayıncı sertifikası, istemci tarayıcısının sertifika deposunda güvenilir bir kök olarak içe aktarılırsa bu açılır pencere oluşmaz.
ProxySG, tüm yapılandırılmış sertifikaları kendi yönetim konsolu aracılığıyla indirilebilir hale getirir. Son kullanıcılardan sertifika veren sertifikayı Internet Explorer veya Firefox aracılığıyla indirmelerini ve seçtikleri tarayıcıda güvenilir bir CA olarak yüklemelerini isteyebilirsiniz. Bu, öykünülmüş sertifikalar için sertifika açılır penceresini ortadan kaldırır ...
Bazı şirketler, GPO aracılığıyla her iş istasyonuna kök sertifikaları (Proxy'nin) dağıtarak yukarıda belirtilen sertifika açılır sorununu aşar. Bu yalnızca Microsoft Sertifika deposunu kullanan yazılımları etkiler. Firefox gibi yazılımların farklı şekilde güncellenmesi gerekiyor.
İstemcinin kimliğinin doğrulanması gerektiğini not ediyor ve SSL üzerinden HTTP temel kimlik doğrulamasının güvenliğini soruyorsunuz. SSL'nin tasarlandığı şey budur ve şifre iyi olduğu sürece iyi çalışacaktır. Bunu gerçekten tek bir istemci için ayarlıyorsanız, rastgele uzun bir şifre seçerek bunu sağlamak kolaydır, ör. İyi bir rastgelelik kaynağı kullanan 12 karakter veya bu sitede tartışılan diğer teknikler.
Müşterinizin ayrıca sunucu için doğru sertifikaya sahip olduğunuzdan emin olması gerekir. Tarif ettiğiniz gibi bir durumda, referans verilen python ssl sayfasında açıklandığı gibi kendinden imzalı bir sertifika kullanmak yeterli olacaktır.
Tamamen ne kadar güvenli olması gerektiğine bağlıdır. SSL üzerinden temel kimlik doğrulaması, kimlik bilgilerini düz metin olarak göndermeye devam edecektir, bu da yalnızca tek bir koruma katmanına sahip olduğunuz anlamına gelir.
Parolaya bir nonce ile hashing uygulamanız veya daha iyisi, yetkilendirmeyi güvenilir bir 3. tarafa aktarır.
Pek çok büyük ve popüler site, HTTPS üzerinden temel (veya başka bir form tabanlı) kimlik doğrulama kullanır. Genellikle güvenlik bilincine sahip kişilerden 'iç çeker'. İstemci tarafında şifreyi karıştırıp onun yerine karma gönderebilir misiniz? Bu, çıtayı biraz daha yükseltebilir.
Bununla birlikte, oturum açma formunu barındıran açılış sayfanızın da HTTP / S olması koşuluyla, genellikle kabul edilebilir olarak kabul edilir. Bir RESTful API durumunda, muhtemelen bir açılış sayfanız yoktur, bu yüzden sorun değil. Yapabiliyorsanız, Watcher ve Skipfish gibi bazı ücretsiz güvenlik araçlarıyla uygulamanızı doğrulayın.
Ben bunu birçok şey için kullanıyorum ve tarayıcıdan gelen TLS uyarılarını görmezden gelmediğiniz sürece iyi olmalısınız.
TLS, HTTP'nin altında çalışır, dolayısıyla HTTP üzerinden iletilen tüm veriler şifrelenecek. Herhangi bir şifre formu göndermek kadar güvenli olacak.
Kendinden imzalı bir sertifika kullanmak yerine Let's Encrypt kullanmanızı öneririm. Ücretsiz sertifikalar sağlarlar ve Microsoft, Mozilla vb. Tarafından güvenilirler ve bu nedenle tarayıcıda bir TLS uyarısı vermezler. Kendinden imzalı sertifika yerine bunu kullanmanın daha iyi olacağını düşünüyorum; TLS hatası görürseniz bunun gerçek olduğunu anlarsınız ve yalnızca sertifikanızın kendi imzalı olması nedeniyle değil.
Şimdiye kadar belirtilmeyen bir diğer argüman (sanırım), akıllı telefonlar gibi birçok mobil cihazın, tarayıcıda HTTPS üzerinden temel kimlik doğrulama yaparken kullanıcının sertifikayı kontrol etmesine izin vermemesidir. Bu, form tabanlı yetkilendirmeden farklı olarak, kimlik bilgilerinizi girmeden önce sertifikayı kontrol etmek için çoğu mobil platformda kalıcı bir iletişim kutusu olan temel kimlik doğrulama açılır penceresini atlayamayacağınız anlamına gelir. Bir saldırgan geçerli bir sertifika kullandığında bu risk oluşturabilir.
İşte tarih için biraz daha bağlam.Diğerlerinin, birkaç sınırlamayla yaşayabiliyorsanız, TLS üzerinden Temel Kimlik Doğrulamanın iyi çalıştığını söylediği gibi.
İstemci tarafında kullanıldığında, muhtemelen Temel Kimlik Doğrulama için oldukça zor olan oturum yönetimiyle başa çıkın.
Arka uçta , Temel Kimlik Doğrulama iyi performans gösterir ancak tamamen TLS'ye dayanır gizlilik ve bütünlük için.Token tabanlı yetkilendirmeye benzer.Daha sağlam bir şeye ihtiyacınız varsa, bir imza şemaları veya TLS İstemci Kimlik Doğrulaması kullanmayı düşünün.