Przenoszenie zaszyfrowanych plików: 7 kroków
Przenoszenie zaszyfrowanych plików: 7 kroków
Anonim
Przenoszenie zaszyfrowanych plików
Przenoszenie zaszyfrowanych plików

Rok temu brałem udział w projekcie. Musieliśmy przenieść niektóre poufne informacje w całym kraju.

Omówię tło, dlaczego, przejdź do kroku 1.

Tło:

Mój zespół został wezwany w krótkim czasie, aby odzyskać komputer po zwolnieniu członka zespołu. Większość komputera to twoje normalne dane, głównie pliki tekstowe. Kiedy przechodzę przez komputer, znalazłem plik na lokalnym dysku, który zawierał wrażliwe dane osobowe.

Po zgłoszeniu się do tych nade mną i kilku argumentach, dlaczego tych informacji nie można wysłać e-mailem, postanowiono przenieść je fizycznie. Musiało to jednak zostać zrobione w sposób, który nie mógł pozwolić na skompromitowanie informacji podczas przesyłania.

Warunki przeniesienia pliku były następujące:

Brak łączności sieciowej, komputer hosta nigdy nie był podłączony do sieci, a plik ten będzie przechowywany na urządzeniu, które nie jest połączone z siecią.

Więc używany jest USB.

Jeśli plik zostanie utracony podczas przesyłania, nie możesz podłączyć go do komputera i uzyskać do niego dostępu. Nie mogłeś też brutalnie wymusić urządzenia.

Plik ma zostać zaszyfrowany, a następnie podzielony na 4. Każda 1/4 trafi na inny USB. Z kluczem na 5th.

5 różnych USB z inną częścią na każdym. Zauważ, że ta metoda będzie działać tylko z 1 portem USB, po prostu pomiń etapy podziału i ponownej kompilacji.

Krok 1: Czego potrzebujesz?

Czego potrzebujesz?
Czego potrzebujesz?

Intencją jest, aby było to proste. Ale jeśli nadal nie masz pewności, na końcu kodu znajduje się kod pocztowy.

Całe oprogramowanie jest bezpłatne. Jest to również wykonane przez kod w instrukcji.

Python3

Wiedza o pipsach. Zobacz link poniżej. Musisz tylko wiedzieć, jak zainstalować moduły.

www.pythonforbeginners.com/basics/python-p…

Dla uproszczenia umieścimy wszystkie nasze pliki w jednym katalogu.

Krok 2: PIP w modułach

W wierszu polecenia dla systemu Windows wpisz:

kryptografia instalacji pip

lub Terminal dla Linux/OSX wpisz:

pip3 zainstaluj kryptografię

Krok 3: Generowanie klucza

Generowanie klucza
Generowanie klucza

Podobnie jak blokada, nasz zaszyfrowany plik będzie potrzebował klucza, aby go odblokować. „hasło123” nie będzie bezpieczne dla tego pliku (jeśli to jest twoje hasło, zmień je… teraz.)

Zamiast tego będziemy mieli wygenerowany dla nas klucz.

Utwórz folder, w którym będą przechowywane wszystkie twoje skrypty Pythona. Utwórz nowy plik, nazwę mój Key_Gen.py

W Key_Gen.py wpiszę:

import cryptographyfrom cryptography.fernet import Fernet key = Fernet.generate_key() file = open('key.key', 'wb') file.write(key) file.close()

Zapisz, a następnie naciśnij F5, aby uruchomić.

To, co tutaj robimy, to importowanie potrzebnych nam modułów.

Tworzenie zmiennej kluczowej i generowanie klucza w zmiennej.

Otwarcie pliku o nazwie 'key.key' i zapisanie do niego.

Jeśli otworzysz folder, będziesz miał teraz 2 pliki.

Key_Gen.py i key.key

Jeśli przeczytam utworzony plik key.key, brzmi on:

XhnytBaYzzlDKyOUfU8DM4OjcD4cYvWtolJsyAdbwLg=

To jest mój klucz. Twój będzie inny i zmieni się za każdym razem, gdy uruchomisz program. Więc jeśli użyjesz swojego klucza, nie możesz odzyskać swojego pliku.

Jeśli Twoim hasłem było hasło123, zapoznaj się z dodatkowymi zasobami poniżej, aby sprawdzić, czy Twoje nowe hasło jest bezpieczniejsze.

Aby sprawdzić siłę hasła, przejdź do

lub użyj menedżera haseł.

Krok 4: Szyfrowanie pliku

Nikt nigdy nie będzie musiał szyfrować 1 pliku. Z wyjątkiem mnie (patrz intro). Większość innych osób będzie potrzebować sposobu na szyfrowanie wielu plików. Istnieje bardzo prosta metoda zapewnienia spójności. Umieść wszystkie swoje pliki w archiwum ZIP.

Jeśli nie wiesz, jak zrobić ZIP, przejdź tutaj, jeśli korzystasz z systemu Windows:

support.microsoft.com/en-us/help/14200/win…

Jeśli korzystasz z Linuksa, jestem bardzo rozczarowany, że nie wiesz, jak skompresować. Kopie zapasowe TAR będą tutaj twoim przyjacielem lub sprawdź, czy twoja dystrybucja ma menedżera archiwów.

Po spakowaniu plików musimy się teraz martwić tylko o zaszyfrowanie 1 pliku. Otwórzmy więc nasz folder i utwórzmy plik o nazwie „Zaszyfruj plik.py”

Wypełnianie go kodem

z cryptography.fernet import Fernet

file = open('key.key', 'rb') key = file.read() file.close() input_file = 'secret.zip' output_file = 'transfer.encrypted' with open(input_file, 'rb') jako f: data = f.read() fernet = Fernet(klucz) zaszyfrowany = fernet.encrypt(dane) with open(output_file, 'wb') as f: f.write(encrypted)

Więc co się dzieje?

Z kryptografii zaimportujemy Fernet.

Następnie otwieramy nasz plik key.key, który utworzyliśmy wcześniej i wczytujemy go do programu.

Potrzebujemy wtedy naszego pliku wejściowego. Jest to zmienna, którą chcesz zmienić, aby pasowała do nazwy plików ZIP. W moim przypadku jest to 'secret.zip'

To będzie następnie wyprowadzane jako „transfer.encrypted”

Otwórz plik wejściowy i wczytaj go, zaszyfruj za pomocą klucza, a następnie zapisz go w pliku wyjściowym.

Teraz wiesz, jak zaszyfrowany plik jest gotowy do transportu.

Krok 5: Metoda podziału USB

Metoda podziału USB
Metoda podziału USB

W moim oryginalnym projekcie plik musiał być rozłożony na 4 USB. Dokonano tego poprzez pobranie pliku wyjściowego. Otwarcie w notatniku i umieszczenie 1/4 pliku na każdym USB. Plik key.key został umieszczony na USB 5 za pomocą programu Decrypt.

Na drugim końcu plik tekstowy jest składany i gotowy do odszyfrowania.

Krok 6: Odszyfrowywanie

Teraz nadszedł czas, aby przywrócić nasze informacje.

Będziemy potrzebować nowego pliku, nazwijmy go „Decrypt File.py”

Potrzebny nam będzie również poniższy kod.

from cryptography.fernet import Fernetinput_file = 'transfer.encrypted' file = open('key.key', 'rb') key = file.read() file.close() with open(input_file, 'rb') as f: data = f.read() fernet = Fernet(klucz) zaszyfrowany = fernet.decrypt(dane) with open('output.zip', 'wb') as f: f.write(encrypted)

Ten kod wprowadzi nasz plik transfer.encrypted jako dane wejściowe, key.key jako nasz klucz. Odszyfruje, a następnie wypisze jako output.zip

Krok 7: Wniosek

Na rynku dostępnych jest wiele innych programów do szyfrowania, z których wiele jest bezpłatnych. Bardzo niewiele byłoby możliwe do wdrożenia w zamkniętym systemie i wiedziałoby, że jest bezpieczny podczas transportu.

W mojej sytuacji podczas transportu 5 USB. USB 1 został zagubiony. Udało mi się załadować plik 1 z powrotem na nowe USB do transportu. Ale to pomogło w udowodnieniu, dlaczego został przeniesiony w taki sposób, w jaki był. USB 1 został utracony. Jeśli pliki nie zostały podzielone, istnieje ryzyko, że plik może zostać odszyfrowany.

Jeśli używasz tego kodu do radzenia sobie ze swoimi danymi, chciałbym usłyszeć od Ciebie w komentarzach.

Jeśli masz problemy z kodem, umieściłem wszystko w załączonym pliku ZIP.

Bądź bezpieczny.