Soru LetsEncrypt ile Genel Anahtar Pin kullanabilir miyim?


LetsEncrypt sertifikasını her 30 günde bir yenilemek için bir cronjob kurduğumda Public-Key-Pins kurabilir miyim?

Sertifika yenilenirse, Genel Anahtar Pin de yenilenir mi?


10
2017-07-07 10:07


Menşei




Cevaplar:


Dikkat edilmesi gereken bazı kelimeler:

  • HPKP'yi uygulamak için planlıyorsanız, ne yaptığınızı bilin.
  • Bunu doğru yapmazsanız veya kontrolünüz altında olmayan "kötü şeyler olursa", alanınızı kullanılamaz hale getirebilirsiniz.
  • Kurulumunuzu, önemli olmayan veya on saniye gibi kısa bir önbellek süresi olan bir alanla test ettiğinizden emin olun.
  • Hangi pimleri iğnelemek istediğinizi düşünün: Kök, ara, yaprak ...
  • Başka bir (yedek) sertifika yetkilisini, ara sertifikaları ve yaprak sertifikanızı sabitlemenin mantıklı olup olmadığını düşünün.
  • Özür dilemekten daha güvenli: Bir tane daha yedek CA / cert iğnelemek mantıklı olup olmadığını düşünün.
  • Bu noktalar ve sorular size "yeni" geliyorsa: HPKP'nin neyle ilgili olduğunu ve ortak tuzakları ve uyarıları okuyun. önce Bunu sen uyguladın.

LetsEncrypt ile Genel Anahtar Pin kullanabilir miyim?

  • Evet.

Sertifika yenilenirse, Genel Anahtar Pin de yenilenir mi?

  • Bu, hangi sertifikayı kullandığınızı ve hangi sertifikaları sabitlediğinize bağlıdır.

11
2017-07-07 11:00





Gf_'nin söylediği her şeyi yankıtabilirim.

Ancak, soruyu cevaplamak için evet yapabilirsin.

Varsayılan olarak Let's Encrypt, anahtarı ve yenilemeyi yenilemede yeniden oluşturur. Bu, muhtemelen ara değişikliklerde yapmanız gereken yaprağa sabitlemek istediğinizde HPKP'yi zorlaştırır.Mart 2016'da olduğu gibi).

Bu yüzden hala HPKP yapmak istiyorsanız, bunun için birkaç seçeneğiniz var:

  1. Yaprak anahtarı değişmeyecek şekilde, her seferinde CSR'yi yaratan standart istemciden ziyade kendi sabit CSR'nizi kullanın. Bu blog yazısı Bu, özellikle yazarın HPKP kullanması nedeniyle nasıl yapılacağını açıklar.
  2. Kısa süren HPKP harcamalarını kullanın ve bu son kullanma saatinde yenileyin ve sertifikayı değiştirmeden önce hem eski hem de yeni anahtarlara sahip olmak için politikayı değiştirin ve yeni politikaların herhangi bir ziyaretçi tarafından alınmasına yetecek kadar zaman elde edin.
  3. Yaprak veya sertifika yerine Let's Encrypt kökünü sabitleyin.

8
2017-07-09 10:27



İyi eklemeler, +1. - gf_
Kökü sabitlemek güvenli mi? Bir MITM için kendi Let's Encrypt sertifikasını kullanmak gerçekten çok kolay. - melbic
Bir saldırganın Let's Encrypt kullanarak alan adınız için bir sertifika alması nasıl "gerçekten kolay"? Bunu yapmanın hiçbir yolunun farkında değil. Ancak o Mayıs ayı ile mümkün olmak herhangi CA alan adı doğrulama prosedürlerinde hata varsa. LE root'unu sabitleyerek saldırı yüzeyinizi, dünyanın her yerindeki CA'nın aksine, sadece Encrypt'e indirdiniz. Hala yaprak sabitleme kadar güvenli değil Ben katılıyorum ama bu kendi riskleri tanıtır bu yüzden "güvenli" tanımınıza bağlıdır. - Barry Pollard
HPKP için - çoğunlukla kendi kendine intihar perspektifinden - MASSIVE riskleri olduğunu düşündüğümü söyleyerek bir hayranı değilim. CA'yı değiştirmeye karar verirseniz veya yol değişikliklerini (örn. SHA-256 amortismanından dolayı) kabul ederseniz veya acil olarak sertifikası yeniden vermek zorunda kalırsanız veya yedekleme anahtarı tehlikeye atılırsa / kaybolursa veya yaprakları kuran kişi ve bir sonraki kişi fark etmezse HPKP kullanıyorlar ve / veya bunu bilmiyorlar. HPKP ayrıca Superfish gibi yerel köklere karşı da koruma sağlamaz. İçin böylece çoğu HPKP siteleri çok karmaşıktır ve IMHO, eklenmiş güvenlik kazancı için ek korumaya değmez. Ama bu sadece benim düşüncem. - Barry Pollard
Tamam, sadece sordum çünkü tüm LE sertifikalarının aynı kök sertifikaya sahip olduğunu düşündüm. Yani eğer bir başkasını başka bir LE sertifikası ile sabitlerseniz MITM kullanabilir ve kendi sertifikasında sahte olabilir. Ne demek istediğimi biliyor musun? - melbic


Ben bunu kullanarak susuz dns01 doğrulama ile müşteri. Dns01 kancası certzure çünkü bizim DNS Azure'da barındırılıyor.

Düzenleme: Özel anahtarlar hakkında konuştuğumda, açıkçası her zaman genel anahtar parçalarını yalnızca iğnelere çevirdiğiniz anlamına gelir. Özel anahtarlar, adından da anlaşılacağı gibi, her zaman özel kal. Uygulama detayları için kendi kancama bakın.


Bunu yapmak için özel anahtar aktarımına ihtiyacınız var. Yani, her zaman geçerli özel anahtara sahip olursunuz (buna A) ve gelecek Özel anahtarı (B olarak adlandırın), hem bunları hem de iğnelere ekleyebilirsiniz. Yani bu noktada iğneleriniz A ve B'dir. Sertifika yenileme günü geldiğinde, özel A anahtarı eski haline gelir ve B yaşanır. Aynı zamanda, yeni bir gelecekteki özel anahtara sahip olursunuz, C olarak adlandırın. Pin listenizi, şimdi B ve C'yi içerecek şekilde yeniden düzenleyin. Böylece, özel anahtarlarınızı bu şekilde yuvarlarsınız. susuz şimdi bunu destekler.

Ayrıca, sertifikalarınızı her yenilediğinizde denen ve böylece özel anahtarlarınız üzerinde yuvarlanan bir kancaya ihtiyacınız vardır. Bunu hayata geçirdim Kendi başıma.

Son olarak, eğer bunu doğru yaparsam, emin olmalısın:

HPKP age x 2 < days between cert renewals

Örneğin, HPKP yaşınız 50 gündür ve her 30 günde bir yenilenirse, bir gün önce sitenizi ziyaret eden bir müşteri özel anahtar A ve B ile sıkışır ve 31. günde B ve C'ye aktarılır. Sunucu B ve C'ye sahiptir, istemcinin A ve B, 50. gününde bile bir eşleşme vardır ve istemci siteyi doğru bir şekilde açar.

AMA, HPKP yaşının 70 gün olup olmadığını görelim. Her 30 günde bir yenilemeleri yeniliyorsunuz ve müşteri birinci günde sitenizi ziyaret ediyordu, bu yüzden tekrar yalnızca A ve B anahtarları var. 31. günde B ve C'ye yuvarlandınız ve 61. günde C ve D'ye yuvarlandınız Sunucunuz C ve D, istemcinin A ve B, eşleşme yok ve istemcinin 61. gününden 71. gününe kadar HPKP politikasının süresi dolduğunda orta parmağınız var.


Bir başka, muhtemelen daha güvenli ve kesinlikle daha basit bir seçenek, aynı özel anahtarı her seferinde kullanmak ve bir veya birkaç yedek özel anahtar oluşturmak, daha sonra bunları HPKP yapılandırmanıza kodlamak ve bununla birlikte yapmaktır.


Evet, zor ve düşündüğüm uyarılar olabilir, ama uzun vadede göreceğiz. Açıkçası, kısa (15 günlük) HPKP yaşına sahip kritik olmayan bir alt alana yerleştirdim, böylece büyük sorunlara neden olmaz.


Düzenleme: Let's Encrypt ile HPKP'yi kurmanıza ve Nginx'i kullanarak susuz kalmanıza yardımcı olacak birkaç betik yazdım:

HPKPinx


5
2018-01-16 20:00



Her iki dünyanın da en iyisine sahip olmaya karar verdim. Otomatik özel anahtar rollover + statik özel anahtar. Birisi ilgilenirse, bir blog yazısı yazabilir. - bviktor
Bunu yaparsanız, lütfen gönderinizi düzenleyin ve bağlantıyı ekleyin - teşekkürler! - gf_
Teşekkürler, bunu ya da önümüzdeki hafta bitirmek için elimden geleni yapacağım - bviktor
Bağlantı eklendi. Belgelerin kıt olduğu henüz yok, ancak kod orada denemek ve hacklemek için var. - bviktor