내 서버에서 랩톱으로 일부 파일을 다운로드하고 싶습니다. 문제는 이 통신이 최대한 비공개적이고 안전하기를 원한다는 것입니다. 지금까지 저는 노트북의 전체 인터넷 트래픽을 서버를 통해 리디렉션할 수 있도록 VPN을 사용하는 방법을 생각해 왔습니다. 추가적으로 ftp를 사용하여 파일을 전송하는 동시에 Wireshark를 시청해 보았습니다. 통신이 암호화된 것 같지만 파일 자체도 암호화하고 싶습니다(2단계 보안 등으로).
내 서버는 Raspbian을 실행하는 RasPi입니다. 내 노트북은 맥북 에어이다.
먼저 Ras Pi의 파일을 암호화한 다음 다운로드하고 싶습니다. 어떻게 해야 하나요?
답변1
openssl
암호화 및 암호 해독에 키 기반 대칭 암호를 사용할 수 있습니다 . 예를 들어:
openssl enc -in foo.bar \
-aes-256-cbc \
-pass stdin > foo.bar.enc
이는 256비트 암호화를 사용합니다( foo.bar
위와 같이 stdout을 리디렉션하는 대신 스위치를 사용하여 출력 파일을 지정할 수 있음).foo.bar.enc
-out
AES비밀번호 입력캐나다 방송공사모델. 다양한 다른 암호를 사용할 수 있습니다(참고자료 참조 man enc
). 그런 다음 명령은 사용자가 비밀번호를 입력하고 이를 사용하여 적절한 키를 생성할 때까지 기다립니다. 다음 명령을 사용하여 키를 보거나 -p
비밀번호 대신 자신의 비밀번호를 사용할 수 있습니다 -K
(실제로 비밀번호보다 조금 더 복잡합니다.초기화 벡터아니면 소스가 필요하시면 man enc
다시 확인해주세요.) 비밀번호를 사용하는 경우 생성된 키를 보거나 보관하지 않고도 동일한 비밀번호를 사용하여 복호화할 수 있습니다.
이것을 해독하려면:
openssl enc -in foo.bar.enc \
-d -aes-256-cbc \
-pass stdin > foo.bar
참고하시기 바랍니다 -d
. 또한보십시오 man openssl
.
답변2
일회성 사례의 경우 암호화를 위해 zip 및 비밀번호를 사용할 수 있습니다. 키 기반 기술만큼 강력하지는 않지만(올바른 비밀번호를 갖는 것이 어렵기 때문에) 특별한 상황에 적합할 수 있습니다.
명령줄은 다음과 같습니다.
zip -r -0 -e encrypted_file.zip /path/to/files
-r to recurse directories.
-e to encrypt
답변3
@goldilocks 답변을 약간 수정했습니다.
암호화
openssl enc -in foo -aes-256-cbc -pbkdf2 -out foo.enc
차이점:
- 인수를 생략하면
-pass stdin
"aes-256-cbc 암호화 비밀번호를 입력하세요:"라는 메시지가 표시되고 콘솔에 비밀번호를 표시하지 않고 비밀번호를 입력할 수 있습니다. - 기본 반복 알고리즘을 사용하고
PBKDF2
"***경고: 더 이상 사용되지 않는 키 파생이 사용되었습니다. -iter 또는 -pbkdf2를 사용하는 것이 좋습니다."라는 경고를 억제합니다.
암호 해독
openssl enc -d -in foo.enc -aes-256-cbc -pbkdf2 -out foo.plain