Perl 스크립트에서 암호를 암호화하거나 숨기려면 어떻게해야합니까?

StackOverflow https://stackoverflow.com/questions/604634

문제

사용하는 Perl 스크립트 작업을하고 있습니다 예상하다 Telnet을 통해 원격 머신에 로그인하려면 (요청하지 말고 Telnet을 사용해야합니다). 또한 필요에 따라 P4 로그인 작업을 수행하고 올바른 암호로 파이프를 사용합니다. 지금은 Clear Text Environment 변수에서 암호를 읽습니다. export PASSWORD=password, 내가 아는 것은 좋은 보안 현명하지 않습니다.

여러 시스템에 많은 암호가 필요한 스크립트의 비밀번호를 저장하는 가장 좋은 방법은 무엇입니까? 어떻게 든 텍스트 파일로 암호화 되었습니까? 또는 다른 것?

예를 들어 SSH 나 그와 비슷한 것을 설치할 수없는 것처럼 기존 시스템을 쉽게 변경할 수 없습니다.

도움이 되었습니까?

해결책

아마도 가장 좋은 방법은 암호를 별도의 파일에 넣고 해당 파일의 보안을 잠그면 액세스 권한 만 읽는 것입니다. 불행히도, 암호화 된 암호를 스크립트에 저장하면 암호 해독 방법을 저장해야하므로 공격자가 암호 해독을 실행하고 암호를 복구 할 수 있습니다.

다른 팁

이전에는 매우 비슷한 질문이있었습니다 내 대답 그것에.

요컨대, 인간은 신뢰의 사슬을 시작해야합니다. 다른 모든 것은 난독 화입니다.

Telnet을 사용하는 경우 스크립트의 암호에 대해 걱정하는 이유는 무엇입니까? 추정 공격자는 원격 시스템에서보다 와이어에서 데이터를 캡처하기가 쉽거나 쉽게 찾을 수 있으며, 어떤 경우에도 실제로 할 수있는 일은 없습니다.

이것은 창에 막대를 넣고 문을 열어 두는 경우처럼 들립니다.

이미 기대치를 사용하고 있으므로 암호가 포함 된 암호화 된 파일에서 GPG -D를 리디렉션 할 수 있어야합니다. 시스템 환경 변수에 암호를 저장하는 것은 명백한 잘못입니다. GPG 파일을 해독하는 데 사용되는 비밀번호는 시작에 입력 한 다음 파일에서 모든 비밀번호를로드하고 물건을 실행합니다. 그런 다음 완료되므로 암호는 응용 프로그램이 실행중인 동안 만 일반 텍스트로 만 존재합니다.

편집하다 부수적 인 것처럼, 비밀번호를 대본에 넣는 것은 악입니다. 스크립트는 그 암호를 쉽게 볼 수있는 일반 텍스트 파일 일뿐입니다. 마찬가지로 컴파일하는 응용 프로그램조차도 코드 (일반적으로 암호)에 포함 된 문자열을 찾을 수있는 "문자열"으로 역전 할 수 있습니다.

Mac OS X를 사용할 가능성이 있습니다. 키 체인에서 사용자 이름과 암호를 가져 오는이 멋진 방법.

업데이트: 링크는 2013 년 7 월 22 일 현재 끊어진 것 같습니다. 다음 배쉬 코드 스 니펫은이 기술을 사용하는 방법을 보여줍니다 (iTunes 판매 데이터를 다운로드하기 위해).

domain="itunesconnect.apple.com"
user="user@example.com"
pass=$(security find-internet-password -ws $domain -a $user)

이미 비밀번호를 별도의 파일에 넣는 솔루션이 마음에 듭니다. 또한 /etc /passwd에서 수행 한 작업과 매우 유사한 실제 비밀번호를 해시 할 수 있습니다. 응용 프로그램 방식에 따라 동일한 해시 키를 모두 사용할 수 있지만. 분명히 이것의 단점은 누군가가 대본을 실행하기 위해 해시키에 들어가야한다는 것입니다. 배치 환경에서는 작동하지 않을 것입니다.

해싱에 대해 배우기 시작하는 한 곳은이 stackoverflow에서 나온 것입니다. 의문

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top