SORU
26 EKİM 2009, PAZARTESİ


En iyi uygulamalar OAuth belirteç oluşturmak buralarda mı?

Ben de fark ettim OAuth spec gelmez belirtin hakkında bir şey menşe ConsumerKey, ConsumerSecret, AccessToken, RequestToken, TokenSecret veya Doğrulayıcı kod, ama ben merak eden olursa en iyi uygulamaları oluşturmak için önemli ölçüde güvenli belirteçleri (özellikle Token/Gizli kombinasyonları).

Gördüğüm kadarıyla, simgeleri oluşturmak için birkaç yaklaşım vardır:

  1. Rastgele bayt kullanır, DB saklamak tüketici/kullanıcı için ilgili
  2. Karma bazı kullanıcı tüketici özgü verileri, DB saklamak tüketici/kullanıcı için ilgili
  3. Tüketici özel verileri şifrelemek kullanıcı/

Avantajları (1) veritabanı en güvenli görünen tek bilgi kaynağıdır. Daha karşı bir saldırı (2) çalıştırmak için daha zor ya da (3) olurdu.

Gerçek verileri (2) karma yeniden üretme izin vermez zaten bilinen muhtemelen veri belirteci. O zamandan beri de herhangi bir avantaj (1) sağlamayabilir/arama zaten saklamak gerekir. Daha CPU yoğun (1).

Gerçek verileri (3) şifreleme bilgilere şifresini çözmek sağlayacak. Bu daha az depolama ve daha potansiyel olarak daha az aramaları gerekir (1) & (2), ancak potansiyel olarak daha az güvenli.

Başka yaklaşımlar / avantajları dikkat edilmesi gereken dezavantajları vardır?

DÜZENLEME:dikkat etmeniz gereken başka bir gerçek verilerin yalnızca oluşan olmamalıdır çok ve yeni belirteçleri sona yeniden yeteneği bulunmalıdır gibi Simgeleri rasgele bir değeri OLMALI.

Soruları Takip Edin:

En az bir Belirteç uzunluğu önemli ölçüde şifreleme açısından güvenli hale getirebilirsiniz. Anladığım kadarıyla, artık Token Sırları daha güvenli imza oluşturma. Bu anlayış doğru mu?

Karma bir bakış açısından başka bir yere belirli bir kodlama kullanmanın yararları vardır? Örneğin, API bir sürü hex kodlama (dizeleri örneğin, GUID) kullanarak görüyorum. OAuth imza algoritması Belirteci bir dize olarak kullanılır. Hex bir dize ile birlikte, mevcut karakter kümesi Base64 kodlama ile söylemek çok daha küçük olacaktır (daha fazla) tahmin edilebilir. Eşit uzunlukta iki dizeleri, büyük karakter seti ile daha iyi/daha geniş karma bir dağıtım olurdu gibi geliyor bana. Bu güvenliğini artırmak olur gibi geliyor bana. Bu varsayım doğru mu?

OAuth spec 11.10 Entropy of Secrets Bu çok sorunu ortaya çıkarmaktadır.

CEVAP
26 EKİM 2009, PAZARTESİ


OAuth bir şey hariç ile ilgili bir simge sır ile ilişkili olduğunu söylüyor. Tüm düzenleri bahsettiğin işe yarar. Siteleri hediyelerimizi geliştikçe daha büyük olsun. Burada sürümleri biz önce kullandım

  1. Bizim ilk username token, token gizli ve son kullanma vb ile şifrelenmiş bir BLOB. Sorun ana bilgisayarda herhangi bir kayıt olmadan belirteçleri iptal edemeyiz.

  2. Bu veritabanında saklamak için her şeyi değiştirdik ve token sadece rastgele bir numara veritabanı için anahtar olarak kullanılır. Kolay bir kullanıcı için tüm simgeler, liste ve iptal etmek için kullanıcı adı, dizin var.

  3. Hack faaliyetleri oldukça az geliyor. Rastgele sayılar, veritabanı için ise token geçerli olup olmadığını öğrenmek için gitmek zorundayız. Şifreli BLOB için tekrar gittik. Bu sefer token sadece anahtar ve ekspirasyon şifrelenmiş değeri içerir. Veritabanına gitmeden geçersiz veya süresi dolmuş belirteçleri tespit edebiliriz.

Size yardımcı olabilecek bazı Uygulama Detayları,

  1. Mevcut bozmadan token biçimini değiştirmek böylece token bir sürümü ekleyin. Tüm hediyelerimizi ilk sürümü olarak bayt vardır.
  2. URL-güvenli sürümü Base64 kodlamak BLOB zorunda kalmamak için anlaşma ile URL-kodlama sorunları, hangi yapar hata ayıklama daha zor olan OAuth imza, çünkü görebilirsiniz üçlü kodlanmış basestring.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Charles Nesson

    Charles Ness

    27 NİSAN 2006
  • DONFANTASTICKYPESS

    DONFANTASTIC

    1 Temmuz 2007
  • Garrett Müller

    Garrett Mül

    26 HAZİRAN 2009