SORU
20 Temmuz 2012, Cuma


Nasıl benim gizli anahtarları kaydedebilirsiniz ve güvenli bir sürüm kontrol sisteminde şifre?

Ana gibi önemli ayarları ve sürüm kontrol sisteminde geliştirme ve üretim sunucuları port duruyorum. Ama biliyorum bunukötü uygulamatutmak içinsırları(özel anahtarları ve veritabanı şifre gibi) VCS bir depo.

Ama parolaları başka bir ayar gibi sürüm bilgisi olması gerektiği gibi görünüyor. Ne yanişifre kontrollü sürümü tutmak için doğru yolu?

Bu tutman tahmin ediyorumsırları"sırlar ayarları" ve sahip dosya . kendi içinde ^em>budosya şifreli ve sürüm kontrollü. Ama ne teknolojiler? Ve bunu nasıl düzgün yapmak için? Daha iyi bir yolu tamamen bu konuda gitmek var mı?


Soruyu genel olarak soruyorum, ama benim belirli bir örneği için gizli anahtarları ve şifreleri saklamak istiyorum/Python Djangositesini kullanarakgitvegithub.

Ayrıca, biridealçözüm için bir parola sorar ve yerine şifresini çözen varsa şifreli parolalar bir komut çalıştırmak, dosya değişirse--örneğin, git bakalım/bastığımda sihirli bir şey yapmaz.


EDİT: açıklık, benamkaydedileceği yeri soruyorüretimsırları.

CEVAP
26 Temmuz 2012, PERŞEMBE


Hala sürüm kontrol dosyası korurken hassas ayarlar dosyanızı şifrelemek istediğiniz tam olarak haklısın. Olarak söz, en iyi çözüm olacak bir Git edecek şeffaf bir şekilde şifrelemek bazı hassas dosyaları itersin onları yerel olarak (yani herhangi bir makine olan sertifikanızı) kullanabilirsiniz ayarları dosyası, ama Git ya da Dropbox veya kim olduğunu saklamak dosyalarınızın altında VC yok yeteneği okuma bilgileri düz metin.

Şeffaf Şifreleme öğretici İtme/Çekme sırasında şifre Çözme/

Bu özü https://gist.github.com/873637 şeffaf itti dosyaları şifrelemek için openssl ile Gıt bu leke/temiz filtre sürücüsünü kullanmak için nasıl bir öğretici gösterir. Sadece bazı ilk kurulum yapmak gerekiyor.

Nasıl Çalışır Özet

Temelde .gitencrypt 3 klasör içeren bir bash komut dosyaları oluşturmak olacak

clean_filter_openssl 
smudge_filter_openssl 
diff_filter_openssl 

şifre çözme, şifreleme, ve Git diff destekleme Gıt tarafından kullanılan. Bir ana parola ve tuz (sabit!) bu komut dosyaları içinde tanımlanır ve emin olmalısınız .gitencrypt aslında hiç itilir. Örnek clean_filter_openssl kod:

#!/bin/bash

SALT_FIXED=<your-salt> # 24 or less hex characters
PASS_FIXED=<your-passphrase>

openssl enc -base64 -aes-256-ecb -S $SALT_FIXED -k $PASS_FIXED

smudge_filter_open_ssl diff_filter_oepnssl benzer. Özü Görmek.

Hassas bilgileri ile bir repo var .gitattribute hangi dosya (ve repo şifresiz dahil).yerel makine üzerinde mevcut olan gitencrypt dizine Git/şifrelemek için gereken her şeyi proje şeffaf şifresini içerir).

* *10 içindekiler:

* filter=openssl diff=openssl
[merge]
    renormalize = true

Son olarak, .git/config dosyanıza aşağıdaki içeriği eklemeniz gerekir

[filter "openssl"]
    smudge = ~/.gitencrypt/smudge_filter_openssl
    clean = ~/.gitencrypt/clean_filter_openssl
[diff "openssl"]
    textconv = ~/.gitencrypt/diff_filter_openssl

Depoyu uzak bir depo için hassas bilgileri içeren bastığınızda, şeffaf dosyalar şifreli olacak. Bu yerel bir makineden çıkarmak .gitencrypt dizin (şifrenizi içeren) dosyaları şeffaf bir şekilde deşifre edilecek.

Notlar

Bu öğretici sadece hassas ayar dosyasını şifrelemek için bir yol açıklanmayan dikkat etmelisiniz. Bu şeffaf VC uzak ana bilgisayara atıp, tüm depoyu şifrelemek ve tamamen yerel olarak deşifre böylece tüm depo şifresini çözmek olacaktır. İstediğiniz davranışı elde etmek için, bir sensitive_settings_repo veya birçok proje için hassas dosyaları yerleştirmek. Eğer gerçekten hassas dosyaları aynı depo içinde olması gerekiyorsa bu şeffaf şifreleme tekniği Gıt alt modüller http://git-scm.com/book/en/Git-Tools-Submodules ile nasıl çalıştığını araştırabilirsiniz.

Sabit bir parola kullanımını teorik olarak ise saldırganların şifreli repo/dosya erişimi olsaydı brute-force güvenlik açıkları neden olabilir. IMO, bu olasılık çok düşük. Bu yazının en altında bir not, sabit bir parola farklı makineler değişiklikler meydana gelmiş her zaman gösteren bir repo yerel sürümleri neden olmaz kullanarak bahseder gibi 'git status'.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Mark Hyder

    Mark Hyder

    6 EKİM 2011
  • ODN

    ODN

    26 Kasım 2006
  • TotalxLuna

    TotalxLuna

    27 Kasım 2011