첫 번째 멀티 플레이어 RTS 게임을 개발 중이며 자연스럽게 UDP 소켓을 사용하여 데이터를 수신/전송합니다. 내가 알아 내기 위해 노력했습니다UDP 소켓의 보안 관리
한 가지 DoS 공격에서 가짜 패킷이 침수되는 이러한 포트를 보호하는 방법입니다. 일반적으로 방화벽은 홍수 공격으로부터 보호 할 수 있지만 사용중인 포트에서 패킷을 허용해야하며 가짜 패킷을 거부하기 위해 자체 소프트웨어에 의존해야합니다. 사람들이 내 패킷을 스니핑하지 못하게하고, 내가 사용하고있는 인증 또는 특수 구조를 관찰하고 비슷한 패킷을 사용하여 스팸 메일을 보내지 않게 할 수 있습니까? 범죄자를 탐지하고 금지하는 것을 거의 불가능하게하기 위해 출처 주소를 쉽게 변경할 수 있습니다. 이러한 종류의 공격으로부터 보호 할 수있는 널리 인정되는 방법이 있습니까?
나는 UDP와 TCP의 차이점을 모두 알고 있으므로 그것에 대해 강의로 바꾸지 마십시오.
===================== 편집 ======================== =
나는 또한 게임을 '해킹'나는 내 게임에서 오는 생각 패킷을 전송하여 부정 행위 누군가로부터 보호하는 방법을 해결하기 위해 노력하고 있음을 추가해야합니다. 시퀀싱/싱크 번호 나 ID는 쉽게 가짜가 될 수 있습니다. 암호화를 사용할 수는 있지만 서버의 응답 속도가 얼마나 느려지는지 걱정되며 DoS로부터 보호되지 않습니다.
나는이 발생할해야 UDP 소켓을 사용하는 모든 프로그래머 기본적인 문제를 알고 있지만, 내 인생 내가 그들 주위에 작업을위한 방법에 대한 모든 관련 문서를 찾을 수 없습니다!
어떤 방향으로 생각하겠습니다!
위대한 요약, 정말 고마워요! 소스 IP가 유효하지 않은지 어떻게 알 수 있습니까? 게임이 랩톱/스마트 폰에서 재생되는 경우 세션의 IP가 변경 될 수 있습니다. 여기에 내가 지금까지 할 일은 다음과 같습니다 : * 로그인 인증을 사용하여 활성 세션 시작 * 모든 패킷에 세션 ID 추가 * 각 패킷에 (이동/촬영/keepalive) 태그를 붙이고 각 초당 수를 제한하십시오 * 서버가 클라이언트에게 마지막 30 초 동안 X 유형의 패킷 수를 확인하도록합니다. * 손상되거나 위조 된 것으로 보이는 모든 패킷을 논리적으로 제거합니다.* 이러한 규칙을 너무 자주 위반하는 세션을 너무 자주 종료하십시오. – Scotty