Kilka pomysłów ... Kryptografia klucza publicznego jest najbardziej elastyczną odpowiedzią.
Zaciemnianie (tylko dla kodu)
W przypadku części kodu, które chcesz ukryć, czy możesz umieścić je w innym projekcie, skompilować je i wpisać tylko skompilowany kod, a nie źródło? To nie jest szyfrowanie i nie nadaje się do szyfrowania haseł lub kluczy. Ludzie nadal mogą poddawać inżynierii wstecznej skompilowany kod, ale nie otrzymują źródła.
Prywatne repozytorium GIT
Czy to musi być publiczne repozytorium git?
Pamięć serwera
Czy możesz zapisać te informacje w chronionym pliku w katalogu osobistym konta użytkownika, na którym działa aplikacja? Skopiowałbym sposób, w jaki ssh robi to za pomocą ~ / .ssh / id_rsa i chmod 600. W przeciwnym razie można użyć zmiennej środowiskowej. Potrzebujesz gdzieś na serwerze do przechowywania jakiegoś klucza lub nie ma sposobu, abyś mógł cokolwiek chronić.
Kryptografia symetryczna (tylko dla Ciebie)
Jeśli jesteś jedynym programistą, możesz umieścić klucz na serwerze i mieć ten sam klucz na swoim komputerze oraz użyć symetrycznego schematu szyfrowania w celu ochrony niektórych danych, takich jak hasło lub certyfikat. Dzielenie się symetrycznym kluczem z przyjaciółmi staje się nieuporządkowane.
Kryptografia asymetryczna (dla wielu programistów)
Jeśli inni programiści muszą sprawdzić tajne rzeczy w publicznym repozytorium git, dla tego rodzaju rzeczy stworzono kryptografię klucza publicznego / klucza prywatnego (asymetrycznego). Zainstaluj klucz prywatny na swoim serwerze (nie zaznaczaj go w celu kontroli źródła!) I wygeneruj z niego klucz publiczny. Zaszyfruj swoje tajne dane za pomocą klucza publicznego serwera. Tylko serwer może odszyfrować te dane za pomocą swojego klucza prywatnego. Możesz nawet sprawdzić klucz publiczny w celu kontroli źródła, aby inne osoby mogły szyfrować dane przy użyciu tego samego klucza publicznego i tylko serwer może go odszyfrować.
Narzędzie
Openssl jest prawdopodobnie jedynym narzędziem do kryptografii, jakiego kiedykolwiek potrzebujesz. Nie pisz własnego algorytmu kryptograficznego ani własnej implementacji opublikowanego algorytmu.
Zamykanie myśli
Jeśli „serwer” to serwer sieciowy korzystający z protokołu https, powinieneś już mieć na serwerze bezpieczny plik kluczy do przechowywania klucza prywatnego. To oszałamiające, że firma hostingowa nie uwzględniła to. Może mają jakieś wskazówki, w jaki sposób inni rozwiązują wyzwanie, przed którym stoisz?