2013-05-10 3 views
-1

프로그램에 대한 액세스 권한이 있어도 동일한 컴퓨터의 다른 사용자가 액세스 할 수없는 방식으로 사용자 암호 키 (서버로 보내려면 일반 텍스트로 유지해야 함)를 저장하려고합니다. 가장 좋은 방법은 무엇입니까 (플랫폼 독립적 인 것이 가장 좋으며 두 번째는 작은 플랫폼 종속 섹션 (예 : 일부 기능 getCurrentUserSecret())이며 마지막은 Windows Data Protection API와 같은 플랫폼에 완전히 의존하는 솔루션입니다).다른 사용자의 암호를 숨기려면 어떻게해야합니까?

+0

암호화하는 것이 잘못된 이유는 무엇입니까? –

+0

어떤 키가 있습니까? – chacham15

+0

사용자가 제공하도록 하시겠습니까? –

답변

1

일반 텍스트로 전송해야하므로 문제의 사용자 만 파일에 대한 읽기 권한이있는 위치에 일반 텍스트로 저장하지 않는 것이 좋습니다. 관리자/루트가 암호화를 사용하여 회피 할 수없는 방식으로 문제를 해결할 수있는 방법이 없다고 생각합니다 (예를 들어 사용자가 저장된 일반 텍스트 암호를 해독하기 위해 다른 암호를 입력하지 않는 한).

댓글 편집 : 로그인시 대체 "해시"비밀번호 값을 계산하고 메모리에 저장하는 것과 같은 작업을하는 OS는 알지 못합니다. 심지어 그럴 경우 루트는 일 수 있습니다. 여전히은 해시 값을 얻기 위해 메모리에 액세스하며 OS는 메모리의 그러한 청크가 절대로 스왑되지 않도록 항상주의해야합니다.

+0

이것은 올바르지 않습니다. root 권한으로도 액세스 할 수 없도록하는 방법이 있습니다. 그 이유는 루트에 모든 정보에 액세스 할 수 있다고 가정하기 때문입니다. 루트와 공유되지 않는 주요 정보는 사용자 비밀번호의 일반 텍스트입니다. OS가 MD5 (또는 결과가 디스크에 저장된 다른 해시)에 있다면 사용자별로 데이터를 암호화/해독 할 수있는 적절한 대칭 키를 만들 수 있습니다. – chacham15

+0

@ chacham15 그래서 사용자가 나중에 OS 암호를 입력해도 괜찮습니까? –

+0

예, 로그인시 (이 기능은 '로그인 두 번 중복'을 제거합니다). 내가 원하는 것은이 '사용자 특정 해시'에 액세스하여 대칭 키로 사용하는 것입니다. – chacham15

관련 문제