개별 파일 또는 폴더를 암호화하는 가장 일반적인 방법은 무엇입니까?
개별 파일 또는 폴더를 암호화하는 가장 일반적인 방법은 무엇입니까?
답변:
GnuPG (GPG)는 비대칭 및 대칭 암호화를 사용할 수 있습니다. 비대칭 암호화에는 암호화를위한 공개 키와 해독을위한 개인 키라는 두 개의 키가 있습니다. 비대칭 키 사용법은이 페이지의 djeikyb 답변 을 참조하십시오 .
대칭 암호화의 경우 암호화 및 암호 해독 키가 동일합니다. 대부분의 사람들은 강력한 암호를 선택하는데 매우 나쁘다는 것을 인식하는 것이 중요합니다. 따라서 암호를 사용하는 암호화 체계는 무차별 대입 공격 속도를 높이기 위해 더 많은 리소스 (시간, 메모리)를 사용하는 키 파생 기능을 사용해야합니다.
GnuPG의 KDF에 대한 설명은 이 Crypto Stack Exchange post를 참조하십시오 . 대칭 암호화 사용 예 :
gpg --symmetric < unencrypted_file > encrypted_file
복호화 :
gpg --decrypt < encrypted_file > decrypted_file
gpg
기본적으로 심볼 키 를 캐시합니다 (문서화 된 동작). 이를 피하려면 관련 답변에--no-symkey-cache
설명 된대로 옵션을 사용하십시오 .
좋은 키를 선택할 수있는 사용자를위한 이전 답변, 아래 참고 참조
단일 파일의 openssl
경우 특히 보안되지 않은 채널 (예 : 전자 메일)을 통해 파일을 보낼 때 매우 유용합니다. 돈이없는 무료 Truecrypt와 달리 무료입니다 (돈과 자유).
참고 : 여기에 입력 한 암호는 하나의 MD5 반복 1 로 처리됩니다 . 비밀번호 "123456"을 선택한 경우 보안이 거의 없습니다.
암호화 :
openssl aes-256-cbc -salt -in unencrypted_file -out encrypted_file
비밀번호를 묻는 메시지가 표시되며, 비밀번호를 두 번 입력해야합니다.
해독 :
openssl aes-256-cbc -d -in encrypted_file -out unencrypted_file
enc 프로그램 매뉴얼 페이지 .
1 openssl enc
은 -md
옵션 (기본값 md5)으로 정의 된 다이제스트 함수를 사용하고 EVP_BytesToKey()
반복 횟수가 1 인 함수 를 호출합니다 . 이것은의 openssl 소스에서 찾을 수 있습니다 apps/enc.c
.
-a
입력 (별칭 -base64
)을 base64로 인코딩하고 , 암호를 해독하려면 -a
옵션 도 추가해야합니다 .
aes-256
는의 별칭이며 aes-256-cbc
차이는 없습니다. CBC 는 블록 암호의 작동 모드입니다. enc(1)
지원되는 암호 목록은 매뉴얼 페이지를 참조하십시오 .
cli 메소드는 GnuPG , tar 일 수 있습니다. 이 문서는 참고 용으로 짧은 안내서이므로 실제로 설명서를 읽어야합니다.
먼저 실행하십시오 gpg --gen-key
. 프롬프트에 따라 공개 / 개인 키 쌍을 생성하십시오. 이제 파일을 암호화 할 수 있습니다 : gpg -e foo.txt
. 라는 파일이 생성됩니다 foo.txt.gpg
. GnuPG는 암호화되지 않은 원본 파일을 삭제하지 않으며 파일을 원하는지 여부는 사용자에게 달려 있습니다. foo.txt.gpg를 해독하려면을 실행하십시오 gpg foo.txt.gpg
. 암호를 해독하면 기존 파일을 덮어 쓰기 전에 메시지가 표시됩니다.
디렉토리를 암호화해야하는 경우 먼저 tar를 지정하십시오.
tar -cf foo.tar foo/
gpg -e foo.tar
암호화 된 파일의 이름을 원하는대로 바꿀 수 있습니다. 암호를 해독하면 원래 파일 이름이 유지됩니다.
우분투가 홈 디렉토리를 암호화하는 데 사용하는 eCryptfs 도 있습니다 .
설치시 홈 디렉토리 암호화를 선택하거나 ecryptfs-setup-private 유틸리티를 $HOME/Private
사용하여 기본적으로 단일 디렉토리를 설정할 수 있습니다 . 이 폴더는 로그인시 자동 마운트 및 로그 아웃시 마운트 해제하도록 구성 할 수 있습니다. 의 모든 단일 파일과 폴더는 재귀 적으로 암호화됩니다.$HOME/Private
"Academic Signature"를 사용하여 wxWidgets GUI와 함께 타원 곡선 암호화를 사용할 수도 있습니다. 오픈 소스이지만 리포지토리에는 없습니다. 주로 ECC 비대칭 암호화, 서명 및 타임 스탬프를 수행합니다. 그러나이 도구에는 Gnupg (RSA)를 호출하는 메뉴 항목이 있으며 AES 및 기타 알고리즘을 제공하는 파일의 대칭 암호화 / 암호 해독에 직접 액세스 할 수 있습니다. 홈페이지는 다음과 같습니다 : https://www.academic-signature.org
전송중인 파일을 보호하고 학술 문서 (성적 증명서, 추천서, 성적표 등)를 디지털 서명하는 데 많이 사용합니다.
openssl aes-256-cbc ...
대신 사용하는 if [ $? -ne 0 ] ; then... fi
것 대신에 ||
? 그리고 Snowden의 문서에 따르면 OpenSSL "*이 작년에 몇 가지 주요 보안 결함을 가지고 있다고 생각하는 사람들도 있지만 [ Heartbleed ] Snowden 문서에 따르면 GPG가 NSA를 제대로 사용하지 못하는 몇 가지 프로그램 중 하나라고합니다. 완전한 cesspool 및 끔찍한 테스트 적용 범위 (공개 : "그는"OpenSSL이 짜증나고 고치자 "프로젝트에 참여) – jbarlow *"