2016-08-21 7 views
0

데이터베이스에 공개 키와 개인 키를 안전하게 저장하려고합니다.공용/개인 키를 데이터베이스에 안전하게 저장하십시오.

따라서 개인 키를 데이터베이스에 안전하게 저장하려면 어떻게해야합니까? (공개 키는 어쨌든 안전 할 필요는 없습니다).

현재 두 가지 방법이 있습니다.

  • 개인 키에 암호 (예 : 사용자의 마스터 비밀번호)를 추가하고 데이터베이스에 문자열
  • 암호화 대칭 알고리즘을 사용하여 개인 키 같은 것을 저장하고 데이터베이스
  • 의 문자열로 그 저장

이러한 방법으로 충분합니까?

어느 것이 더 낫거나 같은 것입니까?

더 좋은 방법이 있습니까?

업데이트 왜 내가 이것을하고 싶은지 혼란 스러울 수도 있습니다. 내 유스 케이스는 팀 기반 암호 관리 시스템입니다. 공용 키는 암호를 암호화하는 데 사용되며 (팀의 각 사용자에 대해 하나씩) 비밀 번호는 암호를 사용하여 암호를 해독하는 데 사용됩니다.

+1

대칭 암호화가 작동하는 방식은 첫 번째가 두 번째와 다릅니다. 그것들은 본질적으로 동등하지만 두 번째 암호 알고리즘을 사용하면 직접 대칭 암호화 알고리즘을 선택할 수 있습니다. 둘 다 장점과 단점이 있습니다. 요구 사항을 제시하지 않았으므로 이는 의견을 기반으로합니다. –

+0

개인 키가 안전하게 저장되어 있어야합니다 (즉 해커가 암호를 해독하면 해독 할 수 없음). 당신의 말에서 본질적으로 같은 것이지만, 두 번째 방법은 제게 더 많은 통제권을 부여합니다. 내가 맞습니까? 더 좋은 방법이 있습니까? 또한 어떤 종류의 요구 사항을 알고 싶습니까? –

+0

네,하지만 두 번째 방법은 단점도 가지고 있습니다. 왜냐하면 모든 사람, 심지어 암호 작성자조차도 암호화를 올바르게 구현하기가 어렵 기 때문입니다. 오류가 발생할 여지는 많지 않지만 잠재적으로 안전하지 않을 수 있습니다. 제가 말했듯이, 이것은 의견에 근거한 것입니다. –

답변

1

기존 옵션을 올바르게 사용하는 것보다 고유 한 대칭 암호화 구현을 엉망으로 만들기 쉽기 때문에 첫 번째 옵션이 더 좋을 수 있습니다. 개인 키의 암호문은 대칭 암호화의 일부 형식을 의미합니다.

추신. 왜 개인/공개 키를 사용하는지 잘 모르겠습니다. 누가 키를 업로드했는지를 증명하는 것이면 좋습니다. 암호화 자체를위한 것이라면 대신 저장된 암호의 대칭 암호화를 사용하는 것이 좋습니다. 그것을 읽을 수있는 권한이있는 모든 사람들이 개인 키의 암호를 알고 있다면 큰 차이가 없습니다. 당신이 얻는 유일한 방법은 모두가 알고있는 암호를 바꾸지 않고 키를 순환시킬 수 있다는 것입니다.

+0

개인/공개 키가 필요하지 않을 때 자주 사용되는 이유/개발자가 대칭 대 비대칭 암호화를 이해하지 못하고 RSA가 실제로 알고있는 버즈 단어 인 경우 – zaph

+0

개인 및 공개 키가 매우 중요합니다. 내 유스 케이스와 많은 팀 암호 관리 시스템에 의해 심지어 내가 조사한 –

+0

Symetric 암호화는 다른 사용자와 공유하기를 원하기 때문에 충분하지 않습니다. http://security.stackexchange.com/questions/134465/how-to-securely-store-passwords-for-an-online-team-based-password-manager/134492#134492 –