HTTPS'imiz varsa neden REST hizmet güvenliğine ihtiyacımız var?


13

Web hizmeti için amazon benzeri güvenlikten bahseden bu mükemmel makaleye http://www.thebuzzmedia.com/designing-a-secure-rest-api-without-oauth-authentication/ atıfta bulunuyorum . Yine de HTTPS kullanıyorsak, takımda neden buna ihtiyacımız olduğunu sordum. Gerçekten bana göründüğü gibi cevap veremedim ama bağırsak aksini söylese de haklı olabilirler.

Ayrıca HTTPS'nin çalışmayabileceği REST hizmetleri sağlarken yerler var mı? 3. taraf web siteleri gibi mi?

Herkes Web Hizmetleri genel interwebs üzerinde güvence deneyimi varsa, lütfen deneyiminizi biraz ışık tutuyor.

Şimdiden teşekkürler.

EDIT: Açıklamak için Ben kullanıcı kimlik doğrulaması değil, daha çok istemci kimlik doğrulaması hakkında konuşuyorum. Kullanıcı kimlik doğrulamasının HTTPS + REST üzerinden düz metin olduğu varsayılabilir.

Benim endişem bu HTTPS üzerinden istemci bitiş noktası hala istemci uygulaması olmadan web hizmetimi kullanabilirsiniz rağmen her şey plai metin olduğundan, herkes hala istemcim olmadan web hizmeti kullanmak için izin verir.


3
Security.stackexchange.com için en uygunudur ?
jweyrich

1
belki haklısın ama sorum mor deve ile ilgili.

Yanıtlar:


13

HTTPS kullanıyorsa neden Gmail'e (veya kullanıcı hesapları olan başka bir siteye) kullanıcı adımızı ve şifremizi vermemiz gerekiyor? Cevap, sorunuzun cevabı ile aynıdır.

HTTPS , her şeyden önce sunucu ve istemci arasında şifreli bir bağlantı sağlar.

HTTPS'e özgü güven, tarayıcı yazılımına önceden yüklenmiş olarak gelen büyük sertifika yetkililerine dayanır (bu, bana kime güvenmem gerektiğini söylemek için sertifika yetkilisine güveniyorum (örn. VeriSign / Microsoft / vb.) Demeye eşdeğerdir).

Sunucu her kullanıcıya bir sertifika vermedikçe, sunucu başka bir kimlik doğrulama yöntemi olmadan istemciye güvenemez.


üzgünüm yanlış anladın ya da ben net değildim. Amazon APi dokümanları HTTPS kullanmamız gerektiğini belirtiyor, ancak daha sonra yapmazsak isteği imzalarız. Kullanıcı adı şifresi bu noktada önemsizdir.

3
Yüksek düzeyde, sizden komut kabul edebilmesi için kimliğinizi sunucuya kanıtlamanız gerekir. İstemci kimlik olabilir HTTPS aracılığıyla yapılması ve aynı zamanda mesaj imzalama kullanılarak yapılabilir.
Matt Ball

1
İstemci kimlik doğrulaması için HTTPS kullanmak istiyorsanız, her kullanıcıya cevabımın son bağlantısında açıklandığı gibi bir ortak anahtar sertifikası vermeniz gerekir. Bu sertifikaları pasaportun elektronik versiyonu olarak düşünün.
Matt Ball

1
"Her kullanıcıya bir sertifika ver" bağlantısı için sorumu kaçırıyorum. Sanırım tüm özel ortak anahtar ve imzalama hala bir web hizmetinde her iki ucunu düzgün bir şekilde güvenli hale getirmek için gerekli sunucuda bir SSL yeterli değildir. Cevabınız şimdiye kadarki en yakın. çok teşekkür ederim.
Abhishek Dujari

1
+1 İstemci sertifikalarından bahsetmeniz harika ama sunucunun sertifika vermesi gerekli değil. Sadece güvenilir bir CA tarafından imzalanmaları gerekir; temel olarak sunucu sertifikalarının çalışma şekliyle aynıdır.
JimmyJames

3

HTTPS gizli dinleme ve "ortadaki adam" saldırılarını önlemede çok iyidir. Bir oturum için tüm trafiği şifrelediği için.

Ancak çoğu insan, tarayıcılarıyla birlikte gelen ve kendi kişisel sertifikalarını nasıl oluşturacakları veya tarayıcıyı kullanmak için nasıl yapılandıracakları konusunda hiçbir fikri olmayan varsayılan sertifikaları kullandığından.

Bu, bir kimlik doğrulama iletişim kutusunu gizlice dinlemekten vb. Korumak dışında HTTPS'yi kullanıcı kimlik doğrulaması için oldukça işe yaramaz hale getirir.


Sorduğum şeye çok yakın olduğunu düşünüyorum. HTTPS kullansak bile, istemciyi istemeyi yine de imzalamamızı öneriyor musunuz?

2

HTTPS, kanalın güvenliğini sağlamak, arayanın kim olduğunu veya dikkate almanız gereken diğer birçok şeyi kanıtlamakla ilgilidir. Kimlik doğrulama, yetkilendirme ve taşıma katmanı şifrelemesi, göz önünde bulundurmanız gerekenlerin yalnızca küçük bir kısmıdır. Web uygulamalarıyla ilgili bilinen güvenlik açıklarının çoğu REST API'leri için çok geçerlidir. Giriş doğrulamasını, oturum kırmayı, uygunsuz hata mesajlarını, dahili çalışan güvenlik açıklarını vb. Dikkate almanız gerekir. Bu büyük bir konudur.

Robert


0

İstemci SSL sertifikalarına yaklaşabilir ve güvenliği API'den ayırabilirsiniz. Bu yaklaşımın en büyük dezavantajı, gittikçe daha fazla müşteri API'nizi tükettikçe pahalı olacak olan operasyon yüküdür.

Her halükarda, HTTP temel kimlik doğrulaması, genel olarak tüketilen hizmetlerin büyük çoğunluğu için uygundur.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.