2014-06-20 8 views
0

아주 좋은 공개 개인 키 암호화 자습서 here을 발견했습니다. 이 튜토리얼에서는 RSA 공개 키 알고리즘과 AES 공유 키 알고리즘을 사용합니다.RSA 공개 키로 AES 공유 키

나는 클라이언트가 개인 키를 유지하는 서버 아키텍처를 설계하려고하는데, 서버는 공개 키를 유지한다. username + salt는 개인 키에 의해 암호화되어 AES 공유 키와 함께 서버로 전송됩니다. 서버는 AES 공유 키 + 공개 키를 사용하여 정보를 암호 해독합니다. 이 방법이 안전합니까? Public-Private-Key 인증을 사용하는 더 좋은 방법이 있습니까?

+0

왜 TLS를 사용하지 않습니까? 보안 통신의 경우 사용자 지정 암호화보다 항상 좋은 선택입니다. – CodesInChaos

+0

링크를 제공 할 수 있습니까? 둘 사이의 차이점은 무엇입니까? – AndroidDev

+1

TLS는 보안 통신을 위해 고수준 프로토콜입니다. 기존 프로토콜을 사용하는 대신 자신의 프로토콜을 설계하려고합니다. 좋은 프로토콜을 설계하는 것은 까다로 우며 암호화 경험이 필요합니다. 앞으로 비밀, 서버 인증, 패딩 oracles 같은 공격에 대한 적극적인 공격, RSA에 사용하는 패딩, AES에 사용하는 작동 모드, IV 생성 방법 및 더 많은 세부 사항을 고려하십시오. 이 중 한 가지라도 잘못하면 보안이 무너집니다. – CodesInChaos

답변

1

공개 키로 정보를 암호화 한 다음 서버의 개인 키로 해독해야한다고 생각합니다. 정의의 공개 키는 모든 사람에게 노출되는 공개 키이므로 모든 사람이 모든 키를 포함하여 클라이언트에서 보낸 메시지의 암호를 해독 할 수 있습니다.

+0

그래서 키를 바꿔 놓으면 이론적으로 내 아키텍처는 안전합니다 [충분]? – AndroidDev