2010-11-30 5 views
0

현재 SQL 연결 문자열에 대한 사용자 입력을 받아서 로컬 conf 파일 (클라이언트 측)에 정보를 저장하는 C linux 데몬을 작성 중입니다. 데몬의 목적은 데몬이로드 될 때마다 로컬 연결에서 SQL 연결 문자열을 찾도록 설정된 간격으로 SQL 데이터베이스에 데이터를 제출하는 것입니다. 또한 명령 줄 인수 -c를 사용하여 정보가 변경되는 경우 사용자가 SQL 연결 문자열을 다시 구성 할 수 있습니다. 누구나이 conf 파일을 보안 방법으로 공유 할 수 있기 때문에 일반 텍스트가 아닐 수 있습니다. 다른 conf 설정이 있으므로 conf 파일에서 액세스하고 읽을 수 있어야합니다. 선배 들께 감사드립니다.중요한 텍스트를 일반 텍스트 파일로 보호하는 최선의 방법은 무엇입니까?

편집 : 결국 SSL을 사용하여 클라이언트 측과 SQL 서버간에 데이터를 제출할 계획입니다.

답변

6

파일을 보호하는 유일한 방법은 데몬을 실행하는 사용자에게 만 읽을 수 있도록 사용 권한을 변경하는 것입니다.

예 : 당신은 사용자 foo는 '그룹'갑 '과 데몬을 실행하는 경우, 당신이해야 :

chown foo.foo my-conf-file 
chmod 600 my-conf-file 

(또는 우발적 인 변경을 방지하기 위해 400에 chmod를,하지만 당신은 잃게됩니다 내가이 경우에 생각 -c 옵션 기능).

참고 : 명령 줄에 연결 문자열을 전달하는 것은 프로세스 목록에서 볼 수 있으므로 매우 위험합니다.

파일을 암호화하기 위해 GPG 파일을 사용할 수도 있지만 그 이후로는 파일을 디 스크립트 할 때 사용하는 키를 보호해야한다는 점을 알지 못합니다. 이전과 완전히 똑같은 문제가 발생합니다.

+0

음 비밀번호와 같은 정보를 입력에 가려지만 위험하다는 점에 대해 올바른 지적을합니다. 나는 내가 정말로하려고하는 것은 평범한 텍스트 파일을 보호하는 것이라고 생각한다. 이 맥락에서 나는 사용자가 conf 파일에 접근해야한다고 생각조차하지 않는다. 오직 데몬 자체 만이해야한다. – Error1f1f

+0

물론 '데몬을 실행하는 사용자'는 시스템에 로그인하는 일반 사용자가 아닌 해당 용도로만 사용되는 시스템 사용자 여야합니다. 이것을 달성하는 가장 좋은 방법은 루트 권한으로 데몬을 실행 한 다음, 덜 특권이있는 다른 시스템 사용자의 uid로'setuid()'를 실행하는 것입니다. 유일한 하나는 설정 파일에 접근 할 수있는 권한입니다. – redShadow

0

비밀을 유지할 수있는 곳이 없다면 암호화가 도움이되지 않습니다. 데몬이 암호를 사용하지 않고 암호를 해독 할 수 있다면 누구나이 작업을 수행 할 수 있습니다. 따라서 키를 보관하기 위해 파일 액세스 모드 플래그와 같은 시스템 보호 기능을 사용해야합니다.

+0

ndbm과 같은 nonsql 데이터베이스는 어떻습니까? – Error1f1f

+0

@ Error1f1f : 당신이 nonsql 데이터베이스에서 기대하는 이익은 무엇입니까? – Vovanium

관련 문제