2012-07-24 12 views
1

보안 자격 증명 (서버 사용자 이름 & 암호 ...)을 저장해야하는 응용 프로그램과 같은 CMDB에서 작업하고 있습니다. 내가 가장 좋은 방법을 찾고 있어요보안 자격 증명을 데이터베이스에 저장하는 방법

그 제약 안전하게 저장하기 :

이 에게 이 에게 (사용자 역할에 따라) 모든 자격 증명에 액세스 할 수 없습니다
  • 대부분의 사용자는
  • 우리 모두가 원하지 않는
      암호는 동일한 키 (이미 시도 : 사용자가 회사를 떠날 때 키를 변경하는 데 어려움이 있습니다 ...)
    • 사실, 우리는 개인 소스 키를 앱 소스에 하드로 작성하는 것을 원하지 않습니다. 심지어 어디서나 저장 될 수 있습니다 (이전 버전에서는 개인 키가 우리 귀 사이에 저장되었습니다 ...)
    • 비밀번호 강도 감사 (예 : 스크립트에서 해독 된 비밀번호를 구문 분석)
    • Google 자격증 명에 더 이상 액세스 할 수없는 경우 (키 분실, ...) => 권한이없는 사용자가 볼 수 없도록하지는 않습니다. 이 제약 조건에 대한 해결책은 물리적 로커에 정기적으로 수출 될 수 있습니다. ...

    나는 애플리케이션 (https, ...) 또는 데이터베이스 (공개 액세스가 없음)에 대해 질문하지 않습니다. ..) 보안에 대한 우려는 있지만 스토리지 측면에 대해서만 (심지어 데이터베이스에있을 수도 ... 암호화 된 파일 또는 다른 것 ...) : 누군가를 막을 수 있습니까? 앱 코드 나 데이터베이스 콘텐츠에 액세스 할 수 있습니까? 최악의 시나리오), 암호 해독 된 자격 증명을 읽을 수 있습니까?

    는 내가 마법 솔루션을 부탁 해요 것을 알고 있어요,하지만 난 존재하는 경우를 알고 싶어; O를)

  • +1

    시스템 전체에 심각한 보안 결함이있는 경우 자격 증명 관리 시스템을 사용할 가치가 없습니다. – rook

    +1

    간단 : 사용자가 * 자신의 * 비밀번호로 로그온하여 ACL에 따라 액세스 할 수 있습니다. –

    +0

    @tc. 물론 그들은 (LDAP 인증을 사용하여)하지만 내가 말한 것처럼 응용 프로그램 측면의 보안은 있지만 스토리지 측면은 요구하지 않습니다. –

    답변

    2

    당신이해야 할 요구하는지의 일반적인 경우하는 것은 불가능하다. 현대 암호의 모든 유형은 mechanical advantage입니다. 즉, 그들은 더 큰 비밀을 지키기 위해 작은 비밀을 사용합니다. 작은 비밀을 안전하게 지킬 수 없다면 안전이 없습니다. 누군가 암호를 사용하여 암호에 암호를 부여 할 수있게하려면 문제의 항목에 액세스하는 데 필요한 암호 (암호)를 효과적으로 제공해야합니다.

    중앙 시스템이 해당 사용자에게 비밀을 노출하지 않고 사용자를 인증 할 수 있도록하기 위해 페더레이션 ID 시스템 (Kerberos/Active Directory/etc.) 시스템이있는 이유는 바로이 때문입니다. 그러나 연합 ID 시스템을 사용하려면 로그인 할 시스템과 ID 서비스 간의 협력이 필요합니다.

    +0

    당신과 연결된 문서에서 매우 좋은 추론. 물론 보안은 결코 총계가 될 수는 없지만 모든 계층에서 가능한 한 최상의 것이어야합니다 (보안이 합쳐질 수 없으므로 스프레드 시트에 자격 증명을 저장하지 않습니다). 좋은 솔루션은 '필기없는'고유 한 핵심 원칙을 유지할 수 있지만 모든 앱 재시작시 키를 설정해야하는 소수의 사람들과 만 공유 할 수 있다는 아이디어에 안성맞춤입니다. (그리고 스레드간에 키를 공유하는 방법도 해결합니다 ...) . 키는 스레드 메모리에만 있습니다.키를 살펴 보려면 앱 재시작과 관련된 키를 잃어 버리는 코드를 변경해야합니다. –

    +0

    @GauthierDelacroix 키를 보려면 디버거/덤프 메모리로 연결하면됩니다. 너무 어렵다면 키를 유출하고 앱이 추락 한 것처럼 위장하는 바이너리로 바꿀 수 있습니다. –

    +0

    @tc. 그렇습니다. 기억은 버려 질 수는 있지만 멀리 가지 않으려 고합니다. 암호화되지 않은 자격 증명도 메모리에 보관됩니다. 당신은 전적으로 당신이 표시해야 할 것을 보호 할 수는 없습니다 ... 그렇다고하더라도, 나는 파일과 메모리로부터 키를 추출하는 것 사이에 틈이 있다고 생각합니다 ... –