2014-06-06 23 views
6

256 bit özel anahtarlar için depolama ayırmak için "en iyi uygulama" arıyorum. En azından düşünürüm, anahtarlar diske disk belleğe alınmamalı ve belki de endişelenmesi gereken başka bazı saldırı vektörleri var (bir la Hearbleed). Çözüm Linux ve BSD'ye taşınabilir olmalıdır.Özel anahtarlar için belleği ayırmanın makul derecede güvenli, makul şekilde taşınabilir bir yolu nedir?

ben baktım bazı şey:

  • Akamai 'nin "güvenli yığın"
  • David Shaw'un secmalloc
  • Kullanım mlock sayfalama
  • Sadece yasaklamak

    • Tresor (değil BSD-taşınabilir) malloc kullanın ve endişelenmeyin. Müthiş bir okuma, bunun LibreSSL'nin yaptığı şey olabileceğini akla getirir.

    Herhangi bir öneriniz var mı?

  • +0

    Bu arada, 256 bit anahtarların herhangi bir güvenlik sunması durumunda hangi şifreyi kullanıyorsunuz? –

    +0

    @R .. Modern simetrik şifreler (AES gibi)? 4096-bit gibi büyük boyutlar RSA gibi asimetrik algoritmalar içindir. –

    +0

    OP, "özel anahtarlar" dedi, bu yüzden genel anahtar şifrelemeyi kabul ettim, ancak belki de niyet yalnızca "gizli tutulması gereken anahtarlar" idi. –

    cevap

    5

    Özel gereksinimleriniz olmadıkça, yalnızca malloc kullanmak akılcı yaklaşımdır. Vasıflı ve benzer kullanım hatalarını yakalayabilme avantajına sahiptir, ki bu da varlığından endişe duyduğunuz kırılganlıkların ana yollarından biridir. OpenSSL fiyasko bize gösterdi, fantezi ve botching bir şeyler yapmaya çalışırken büyük bir risktir.

    Daha fazla zorlayıcı gereksinimleriniz varsa, kullanım durumunuza çok bağlı. Anahtarlarınızın geçici olduğunu veya diskte saklamaktan kaçınmanın çok fazla mantıklı olmadığını farz edeceğim. diske geçiş yapma

    • : İşte benim tavsiye özellikle riskler için azaltıcı etkenleri sistem fiziksel saldırılarına karşı güvenliği gerektiriyorsa, hiç takas olmamalıdır. Bireysel olarak mlock ile belirli verileri korumaya çalışmak bir şakadır. Sadece takas özelliğini kapatın ve yeterli bellek yükleyin ve bu bir sorun değil. mlock, bir güvenlik özelliği değil, gerçek zamanlı bir zamanlama özelliği olarak düşünülmelidir.

    • Heartbleed benzeri konular, orta savunma: daha sonra ilk ve son sayfaya ancak tüm yapmak mprotect kullanın, ihtiyaçtan fazla ilk mmap 2 sayfaları, PROT_NONE tüm: her iki tarafta bekçi sayfaları ile mmap aracılığıyla bellek ayrılırken PROT_READ|PROT_WRITE. İşiniz bittiğinde en kısa sürede munmap ile serbest bırakın.

    • Heartble gibi sorunlar, güçlü savunma: Tüm kriptografiyi yapmak için bir alt işlem gerçekleştirin.

    İlgili konular