2017-10-31 12 views
1

전자 메일을 보내는 Ruby 스크립트가 있지만 전자 메일을 보내려면 smtp 계정 자격 증명을 저장해야합니다. 현재 암호를 저장하고있는 xml 파일이 있지만 xml의 Bas64를 사용하여 암호를 인코딩 한 다음 스크립트에서 디코딩합니다. 스크립트를 .exe 파일로도 패키징했습니다.Ruby에 비밀번호를 저장하는 모범 사례. XML, 소스 또는 기타?

저는 자격 증명을 저장하는 것과 관련하여 가장 좋은 방법이 무엇인지 알아 내려고하고 있습니다. xml 대신 실제 스크립트에 암호를 저장해야합니까? 내가 사용해야하는 다른 방법이 있습니까? 스크립트는 LAN 외부에 노출 된 서버에서 실행되지는 않지만 여전히 암호가 가능한 안전한지 확인하고 싶습니다.

답변

1

Base64는 암호화가 아니기 때문에 누구나이를 되돌릴 수 있습니다. 이 문제에 대해서는 실제 암호화를 사용하면 프로그램에 키가 포함되어 있고 읽을 수있는 경우 도움이되지 않습니다. 암호를 사용하는 프로그램을 작성해야하지만 프로그램의 사용자가 암호를 액세스 할 수 없게하려는 경우 운영 체제와 코드를 사용해야합니다.

  1. 암호를 코드와 별도의 파일에 넣으십시오.
  2. 운영 체제의 파일 액세스 제어를 사용하여 암호로 파일을 읽을 수있는 사람 만 사용할 수 있도록하십시오. 이것은 프로그램을 실행할 수있는 사람과 같은 목록이 아니며 관리자 일 수 있습니다.
  3. 스크립트의 운영 체제에 의사 사용자를 추가하십시오. 이것은 실제 사람이 아니라 프로그램 만 실행하기 위해 사용할 계정입니다. 파일을 읽을 수 있도록 암호가있는 파일의 액세스 제어에이 사용자를 추가하십시오. 이 사용자가 대화 형으로 로그인 할 수 없도록하십시오. 쉘 프롬프트를 얻거나 데스크탑 세션을 얻으십시오.
  4. 프로그램을 실행하려는 사용자가 스크립트의 의사 사용자로 "프로그램"을 실행하도록 설정하십시오. Windows에서는 "runas"명령을 사용하여이 작업을 수행 할 수 있습니다. 리눅스에서는 "sudo"를 사용할 수 있습니다.