2013-11-15 5 views
5

.db 파일에 사용자 비밀번호를 저장하는 작은 자바 데스크톱 애플리케이션을 개발 중입니다. 사용자가 새 데이터베이스를 만들면 데이터베이스에 저장할 수있는 페이스 북 또는 트위터 암호에 액세스하려면 해당 데이터베이스의 마스터 암호를 만들어야합니다. 내 질문은 어디에서 어떻게 안전하게 마스터 비밀번호를 저장해야합니까?자바 데스크톱 애플리케이션의 마스터 비밀번호를 저장하는 방법 및 위치

나의 생각은 암호를 저장하기 전에 마스터 암호를 암호화하고 소금을 추가 한 다음 암호화 된 텍스트 파일이나 .db 파일에 암호를 저장 한 다음 사용자가 데이터베이스에 액세스하려고 할 때 읽는 것이었다. 나는 이것이 좋은 생각인지 또는 더 좋은 대안이 있는지에 대한 지침을 찾고 있습니다.

p.s 응용 프로그램은 웹 응용 프로그램이 아닌 데스크톱 응용 프로그램입니다.

종류는

+0

암호화하는 대신 해시로 처리 ... 암호화 대신 해시를 사용하는 것이 안전하다고 느낍니다. – codeMan

+0

@codeMan Mhmm,이 해시를 어떻게 구할 수 있습니까? SHA는 암호화 – Cruncher

+0

을위한 많은 유틸리티 클래스가 있습니다. 해싱 알고리즘을 결정하고 사용하십시오. 예를 들어 MD5 – codeMan

답변

1

암호를 저장하는 가장 안전한 방법은 심지어 당신 (앱) 암호가 무엇인지 모르는 그런 방법에 관하여. 이것은 단방향 해시를 사용하여 수행됩니다. 이름에서 알 수 있듯이 이것이 하나의 방법이기 때문에 해시 값을 "해시 해제"하고 원래 값이 무엇인지 확인할 방법이 없습니다. 암호화 해시의 중요한 특성의

하나는 값을 해싱이 항상 생산하는 것입니다 같은 hash.The SHA-2 (256)는 항상 것이다 "빠른 갈색 여우가 게으른 개 점프"의 해시 해시 생성 d7a8fbb307d7809469ca9abcb0082e4f8d5651e46d3cdb762d02d0bf37c9e592 해시를 가져올 수있는 방법이 없는데 무자비한 테이블이있는 해커가 무엇인지 파악할 수있는 방법은 없습니다 (해시가 여전히 취약한 경우에도 취약한 암호가 모든 무지개 세계의 테이블은 에 대한 해시를 갖습니다.

암호를 해싱하기 전에 소금을 추가합니다 (각 사용자마다 다른 소금이 이상적입니다). 전에 해싱 "빠른 갈색 여우가 게으른 개 위로 점프"우리는 소금을 추가합니다 (간단한 예제로 단어 "소금"을 사용하자) 우리는 지금 소금 "빠른 갈색 여우가 게으른 개 점프"를 해시하고 얻을 b369837c6389d8dddb06cb669961b0ab80f5166cc8cebcfaf9734ed009c31e8b 우리 해시로.

소금에 절인 해시는 저장해야하지만 (어디에서든지 애플리케이션에 적합) 체크 대상입니다. 따라서 사용자는 먼저 것이다 계정을 만들 때 :

  1. (예 : SHA-2으로, 충돌 무료 암호화 해시를 사용하여)
  2. 해시를 소금을 자신이 선택한 암호를 가지고 추가
  3. 저장 결과

사용자는 것이다 로그인을 시도 할 때 :

  1. 가에 암호 그들에게 입력을 로그인 폼과 그들이이 같은 경우는 잘못된 암호를 입력 동일하지 않은 경우

저장 한 내용에

  • 해시는
  • 는 비교 소금을 추가 당신은 그들이 올바른 입력 알고 암호를 입력하면 로그인 할 수 있습니다.

  • +0

    감사합니다. @exupery .. 암호가 저장된 파일을 저장해야하는 위치에 대해 의견이 있습니까? 그리고 어떤 파일 형식이어야 파일을 암호화 할 수 있습니까? – adebesin

    +0

    트위터와 페이스 북 암호를 저장할 응용 프로그램을 만드는 경우 (질문에서 알 수 있듯이) 필요가 없으므로 실제로는 저장하지 않아야합니다. 당신은 API를 사용할 수 있고 (따라서 OAuth를 통해 인증을 처리 할 수 ​​있습니다.) 암호를 안전하게 저장하려고 시도 할 경우 절대적인 보안이 없음을 기억하는 것이 중요합니다. 파일 형식은 중요하지 않으므로 평범한 관찰자가 데이터를 보호하려면 데이터를 암호화하고 확실하게 암호화해야하지만 컴퓨터가 손상되면 데이터가 손상된 것으로 간주해야합니다. – Exupery

    +1

    고마워, 나는 OAuth를 조사 중이다. 훨씬 안전 해 보인다. – adebesin

    0

    페이스 북이나 트위터 암호가 들어있는 .db 파일이 있다고 가정합니다. 암호화 된 형식으로 저장하고 .db 파일을 암호화/암호 해독하기위한 암호화 키로 마스터 암호를 사용합니다. 이 경우 마스터 패스 워드는 사용자가 입력하며 아무 곳에도 저장되지 않습니다 (응용 프로그램이 실행되는 동안 메모리에 유지할 수 있음). 사용자가 데이터베이스에 액세스하려고 할 때 마스터 암호의 유효성을 검사하려면 문자열 상수와 함께 해독 할 수 있습니다.

    관련 문제