2010-02-18 2 views
0

공유 저장소 (APC 사용자 캐시이지만 일부 관련성이 없음)에 일부 데이터를 저장하려면 내 응용 프로그램 (PHP는 중요하지만 중요하지 않음)을 원합니다. 사용자가 서로의 데이터를 읽지 못하게하려면 사용자별로 암호화하고 싶습니다.Linux 사용자 계정에 비밀 데이터가 있습니까?

사용자가 응용 프로그램의 구성 파일에서 키를 지정할 수는 있지만 자동으로 생성하므로 사용자가 신경 쓸 필요가 없습니다.

이렇게하려면 (거의) 변경되지 않고 현재 사용자 만 읽을 수있는 데이터가 필요합니다. 그런 다음 해시를 사용하여 키를 생성 할 수 있습니다. 리눅스 시스템의 기본 사용자 계정에 이와 비슷한 것이 있습니까?

+0

BLOB 이외에는 Linux 나 GNU의 비밀이 전혀 없습니다 :) –

+0

왜 서버에 키를 저장합니까? 그 사람의 컴퓨터에 세션 쿠키를 저장하는 것이 좋습니다. 누가 웹 사용자 그 자체에 대한 액세스 권한이 필요합니까? – djangofan

+0

사용자 란 웹 응용 프로그램 (이 경우 PHP 코드)이 브라우저에서 응용 프로그램이나 사이트를 사용할 실제 사용자가 아닌 시스템 사용자 계정을 의미합니다. –

답변

1

, 당신은 물론 0700

당신이 기꺼이/수없는 사람에 의존에 0600에 키 파일의 권한과 ~/.yourApp 디렉토리의 권한을 설정하는 것이 제공 루트 액세스를 사용하여 다른 사용자의 키 파일에 액세스합니다. 이것이 중요하다면 액세스가 마스터 패스 프레이즈에 의해 제어되는 일종의 키 스토어를 사용해야 할 것입니다.

편집 : 아래의 OP의 후속 질문에 대한 대답 : (

그렇다하더라도 마스터 암호는 시스템에 저장해야하거나 사용자가 모든 요청에 ​​대해 수동으로 입력해야합니다 난 가정 루트를 신뢰하지 않으면 메모리에 저장하는 것이 안전하지 않습니다.

모두 상대적인 것입니다. 정말로 편집 성이 있다면 완전히 제어하지 않는 컴퓨터에 키를 저장하지 마십시오. 반면에, 대부분의 사람들은 루트가 손상되지 않았으며 (fallback으로) 루트 액세스 권한을 가진 누군가가 키 스토어를 깨기 위해 약간의 노력이 필요하다는 것을 신뢰 할 준비가되어 있습니다. 메모리에있는 키 저장소의 잠금 해제 된 사본은 "충분히 안전함"으로 간주 될 수 있습니다. 물론 많은 사용자 키 스토어 소프트웨어가 이러한 가정에서 작동하는 것 같습니다.

왜 디렉토리를 0700으로 설정해야합니까? 비록 그것이 0777이라 할지라도, 0600이 들어있는 파일은 여전히 ​​다른 사람들에게 읽을 수 없을 것입니다. 맞습니까? 다른 사용자에게 부분적으로 기호

부분적으로 일반 편집증, 부분적으로 벨트 - 및 - 중괄호, "내 개인 물건을 밖으로 코를 유지"하고, 부분적으로 키 파일을 교체 에 의해 사람을 방지 할 수 있습니다. 마지막 요점은 응용 프로그램에서 키를 사용하는 방법에 따라 중요 할 수도 있고 아닐 수도 있습니다.

+0

그렇다면 마스터 암호를 시스템에 저장해야합니다. 그렇지 않으면 사용자가 모든 요청에 ​​대해 수동으로 입력해야합니다 (루트를 신뢰하지 않으면 메모리에 저장하는 것조차 안전하지 않습니다). 이것은 아무런 문제가되지 않지만 루트를 신뢰할 수없는 시스템에서 사용되는 것은 아닙니다 (어쨌든 그러한 시스템에서 자신의 응용 프로그램을 호스팅하는 사람입니까?) 디렉토리를 0700으로 설정해야하는 이유는 무엇입니까? 비록 그것이 0777이라 할지라도, 0600이 들어있는 파일은 여전히 ​​다른 사람들에게 읽을 수 없을 것입니다. 맞습니까? –

1

홈 디렉토리에 .appname이라는 숨겨진 폴더가 있습니다. 사용자가이를 읽을 수 있습니다.

임의의 키를 생성하여 ~/.yourappname에 저장하는 방법은 무엇입니까? ~/.yourApp의 키가 작동 저장

+0

예, 직접 만들 수 있습니다. 어떻게 생각하지 않았 니? 나는 이미 .myapp 디렉토리를 사용하기도합니다 : P –

+0

소위 숨겨진 폴더는 숨겨져 있지 않습니다.한 사용자는 다른 사용자의 숨겨진 폴더에있는 파일을 쉽게 읽을 수 있습니다. –

+0

비밀의 파일 속성을 go-rwx –

관련 문제