파일 또는 디렉토리를 암호화하는 도구가 있습니까?


66

개별 파일 또는 폴더를 암호화하는 가장 일반적인 방법은 무엇입니까?


질문은 약간 불분명합니다. 파일을 수동으로 암호화 및 암호 해독 하시겠습니까?
psusi

4
'가장 인기있는'대신 귀하의 요구 사항에 솔루션을 맞추는 것이 (가상 질문에 따라) 도움이 될 수 있습니다. 쉽고 신뢰할 수있는 네이티브, 보안, 빠른 오픈 소스의 조합을 찾고 있습니까? 이것 전부 또는 일부?
belacqua

7
일부 답변의 주장과 달리 TrueCrypt는 Debian / Ubuntu / Fedora / Red Hat / Arch Linux / OpenSuse / Gentoo / etc에서 자유 소프트웨어 또는 오픈 소스간주하지 않습니다 .
JanC

답변:


46

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 설명 된대로 옵션을 사용하십시오 .

gpg 매뉴얼 페이지 .


좋은 키를 선택할 수있는 사용자를위한 이전 답변, 아래 참고 참조

단일 파일의 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.


passpharse없이 이것을 할 수있는 방법이 있습니까?
Assaf Lavie

@Assaf Lavie : OpenSSL은 파일의 첫 줄에서 암호를 읽을 수 있지만 키 파일을 지원하지 않는 경우 키 파일을 지원하지 않습니다. openssl의 Pass phrase arguments 섹션 에서 매뉴얼 페이지를 읽으십시오 .
Lekensteyn

또한 "-a"플래그를 사용하여 암호화 된 텍스트를 복사 할 수 있습니다. "openssl aes-256-cbc -a -salt -in unencrypted_file -out encrypted_file"
v2r

@ v2r 더 많은 독자를 추가하려면 : -a입력 (별칭 -base64)을 base64로 인코딩하고 , 암호를 해독하려면 -a옵션 도 추가해야합니다 .
Lekensteyn

1
@Lucio aes-256는의 별칭이며 aes-256-cbc차이는 없습니다. CBC 는 블록 암호의 작동 모드입니다. enc(1)지원되는 암호 목록은 매뉴얼 페이지를 참조하십시오 .
Lekensteyn

30

나는 이것을 위해 해마 를 사용 합니다. GnuPG의 Gnome 프론트 엔드이며 노틸러스와 잘 통합됩니다.노틸러스 통합

노틸러스 통합을 얻으려면 seahorse-nautilus소프트웨어 센터에서 패키지 를 설치하십시오 : seahorse-nautilus 해마-노틸러스 설치


3
이것은 시스템에 GPG 키가 생성 된 경우에만 작동합니다 ...
hhlp

3
@ hhlp : djeikyb의 대답은 그 방법을 설명합니다.
idbrii

1
GPG 키를 암호화하고 싶습니다.
KI4JGT

19

TrueCrypt : 중단되고 안전하지 않은 소스 제공 프리웨어 디스크 암호화 소프트웨어.


2
+1, GUI가 있거나없는 encfs는 매우 유용하고 대부분의 목적에 충분합니다.
loevborg

3
Cryptkeeper는 Dropbox ( askubuntu.com/questions/19613/… ) 로 설정하는 간단하고 강력하며 산들 바람 입니다.
Scaine

라이센스 문제와 관련하여 TrueCrypt는 Ubuntu (또는 기타 주요 배포판)에 패키지되어 있지 않습니다.
MagicFab

2
TrueCrypt는 오픈 소스가 아닙니다. en.wikipedia.org/wiki/…
yuric

4
'경고 : 안전하지 TrueCrypt를 사용하기'-의 TrueCrypt
user457015

16

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

암호화 된 파일의 이름을 원하는대로 바꿀 수 있습니다. 암호를 해독하면 원래 파일 이름이 유지됩니다.


2
이 방법의 장점은 다음과 같습니다. 먼저 추가 패키지를 설치할 필요가 없습니다. 둘째, 루트 액세스가 필요하지 않습니다. tar 명령 (xz 또는 gz)에 압축을 추가합니다.
Panther

12

우분투가 홈 디렉토리를 암호화하는 데 사용하는 eCryptfs 도 있습니다 .

설치시 홈 디렉토리 암호화를 선택하거나 ecryptfs-setup-private 유틸리티를 $HOME/Private사용하여 기본적으로 단일 디렉토리를 설정할 수 있습니다 . 이 폴더는 로그인시 자동 마운트 및 로그 아웃시 마운트 해제하도록 구성 할 수 있습니다. 의 모든 단일 파일과 폴더는 재귀 적으로 암호화됩니다.$HOME/Private


불행하게도 eCryptfs는 매우 느립니다. 또한 최신 버전에는 버그가 거의 없습니다
ruX

반대로, eCryptfs가 gpg보다 빠르면; 기본적으로 gpg는 암호화하기 전에 압축을 시도합니다. 그리고 eCryptfs는 이제 대부분의 안드로이드에서도 사용됩니다
Xen2050

2

"Academic Signature"를 사용하여 wxWidgets GUI와 함께 타원 곡선 암호화를 사용할 수도 있습니다. 오픈 소스이지만 리포지토리에는 없습니다. 주로 ECC 비대칭 암호화, 서명 및 타임 스탬프를 수행합니다. 그러나이 도구에는 Gnupg (RSA)를 호출하는 메뉴 항목이 있으며 AES 및 기타 알고리즘을 제공하는 파일의 대칭 암호화 / 암호 해독에 직접 액세스 할 수 있습니다. 홈페이지는 다음과 같습니다 : https://www.academic-signature.org

전송중인 파일을 보호하고 학술 문서 (성적 증명서, 추천서, 성적표 등)를 디지털 서명하는 데 많이 사용합니다.


1

다른 제안을 취하고 간단한 셸 스크립트 래퍼를 만들었습니다 (게으른 사람을 위해)

https://github.com/orionM/ssl-crypt-tools

즐겨


1
흠, bash 스크립트를 사용하는 openssl aes-256-cbc ...대신 사용하는 if [ $? -ne 0 ] ; then... fi것 대신에 ||? 그리고 Snowden의 문서에 따르면 OpenSSL "*이 작년에 몇 가지 주요 보안 결함을 가지고 있다고 생각하는 사람들도 있지만 [ Heartbleed ] Snowden 문서에 따르면 GPG가 NSA를 제대로 사용하지 못하는 몇 가지 프로그램 중 하나라고합니다. 완전한 cesspool 및 끔찍한 테스트 적용 범위 (공개 : "그는"OpenSSL이 짜증나고 고치자 "프로젝트에 참여) – jbarlow *"
Xen2050
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.