2015-01-19 10 views
0

다음 시나리오를 따르십시오. 클라이언트 서버 응용 프로그램이 있는데이 통신은 aes 및 rsa (poor man ssl)에 의해 암호화됩니다. 하지만 그건 내 문제가 아니야. 클라이언트 자체는 일부 텍스트 (또한 aes)를 암호화하고,이 텍스트는 서버로 전송되어 데이터베이스에 저장됩니다. 문제는 다음과 같습니다. 동일한 클라이언트가이 텍스트를 받아서 해독 할 수 있습니다. 이 키는 메모리에 저장됩니다. 그러나 두 번째 클라이언트에서이 데이터를 어떻게 해독 할 수 있습니까? 두 번째 클라이언트에는 키가 없습니다. 이 두 클라이언트는 동일한 계정으로 로그인됩니다. 그러나 텍스트의 암호 해독을위한 핵심은 클라이언트 쪽입니다. 동일한 로그인 프로파일로 첫 번째 클라이언트의 키를 두 번째 클라이언트로 가져 오는 방법은 무엇입니까?보안 키 저장 방법

+0

이미 (아마) 보안 채널을 통해 암호화 된 데이터를 보내려고합니다. 왜 그걸 할거야? 해당 데이터를 데이터베이스에 암호화 된 상태로 유지해야하는 경우 제대로 설정된 키와 소금을 사용하여 AES로 서버에서 암호화해야합니다. – B0Andrew

+0

서버에서 데이터를 암호화해야하는 이유는 무엇입니까? 나를 위해 사용자로서, 나는 아무도 내 데이터와 서버를 읽을 수 없다는 것을 확신 할 것이다. 클라이언트가 데이터를 암호화 한 다음 서버로 보내는 것이 더 좋습니다. 서버는 원시 데이터를 볼 수 없어야합니다. –

답변

0

두 클라이언트가 동일한 암호화 된 데이터를 읽을 수 있어야하는 경우 암호화에 사용 된 키를 공유해야합니다.

물론 서버는이 키를 저장할 수 있으며 인증 후 클라이언트 (동일한 계정)간에 자동으로 공유 할 수 있지만 서버가 데이터를 해독하여 여분의 암호화 계층을 쓸모 없게 만들 수 있음을 의미합니다.

결론 :이 방법을 실제로 사용해야하는 경우 두 클라이언트가 다른 채널 (예 : 전화)을 사용하여 키를 공유해야합니다.

+0

서버가 키에 액세스 할 수 있다면 좋지 않을까 생각합니다. 서버가 공격 당하면 키가 있기 때문에 모든 암호화 된 데이터에 액세스 할 수 있습니다. –