1

서버에서 수신 한 내용을 실제로 서버에서 가져 와서 전송 중에 변조되지 않았는지 확인하고 싶습니다. 서버에서 모바일 장치로 명령을 보내는 응용 프로그램이 있습니다. 전력 효율성을 위해 GCM 메시지에 그러한 종류의 페이로드를 포함시키는 것이 좋습니다. 그러나 누군가가 서버를 가장하여 올바르지 않거나 악의적 인 명령을 보내려고 시도하는 것은 좋지 않습니다. GCM이 메시지를 서명하는 것만으로도 충분하거나 GCM을 사용하여 애플리케이션을 깨우고 명령을 수신하기 위해 다른 채널을 사용하는 경우에도 소량의 여분의 에너지.Google 클라우드 메시징은 인증, 무결성 및 부인 방지를 제공/지원합니까?

+2

Google을 신뢰합니까? – flup

+0

음 ... 나는 이걸 믿을 수있어. 나는 내 메시지를 어지럽히는 데 그들에게 인센티브가 없음을 본다. 보낸 메시지의 내용은 어쨌든 비공개가 아니지만 서버에서오고 악의적 인 타사가 제공하지 않아야합니다. – cloudraven

답변

1

메시지가 서버에서 온 것인지 확인하려면 공용/개인 키 쌍의 개인 키로 서명해야합니다. 그런 다음 공개 키를 사용하여 클라이언트에서 서명을 확인할 수 있습니다. 이 방법으로 요청이 서버에서 왔음을 알 수 있습니다 (개인 키가 손상되지 않았다고 가정하면 안전하게 보관하십시오!). 이것은 APT와 YUM뿐만 아니라 Windows 업데이트가 작동하는 방식입니다.

그래도 누군가가 서버를 가장하는 것을 막을 수 있습니다. 데이터를 암호화하지 않으며 클라이언트에 대해 어떠한 보증도하지 않습니다. (클라이언트 개인 키로 클라이언트 발신 데이터에 서명하는) 역순으로 동일한 작업을 수행 할 수 없습니다. 클라이언트에서 오는 모든 내용이 스푸핑되거나 악성 될 수 있기 때문입니다. 클라이언트 정보를 암호화하려면 서버 공개 키로 암호화하고 서버의 개인 키만 해독합니다.

+0

감사합니다. 그것이 내가 생각했던 거죠. 나는 그것을 할 수있는 메커니즘이 내장되어 있는지 궁금 해서요. 또는 제가 간과하고있는 문제가 있다면 서명만으로는 해결되지 않았습니다. – cloudraven

관련 문제