DirectPlay DirectPlay 의 고도의 주제 DirectPlay 프로토콜 패킷 서명   [목차열람] [주소복사] [슬롯비우기]
패킷 서명
 
Microsoft DirectX 9.0

패킷 서명


Microsoft® DirectPlay® 는, 악의가 있는 사용자가 가짜의 인터넷 프로토콜 (IP) 패킷을 송신해, 피어 어떻게 해 또는 클라이언트와 서버간의 링크를 파손시키는 것을 막기 위해, 패킷 서명을 제공하고 있다. 패킷 서명은, 송신전에 각 패킷에 "서명" 을 Attach 한다. 이 서명은 8 바이트이다. 수신한 패킷에 올바른 서명이 없으면 DirectPlay 는 특히 통지없이 패킷을 무시한다.

패킷 서명은 링크를 개입시켜 송신되는 데이터를 암호화하지 않고, 인증의 형식도 갖추지 않았다. 패킷 서명은, 제삼자가 DirectPlay 게임 세션에 무효인 데이터를 삽입하는 것을 막기 위해서(때문에) 사용한다. 애플리케이션으로 게임에 접속하는 사용자를 인증하는 경우는, 다른 기구를 사용할 필요가 있다.

호스트가 세션이 시작 할 때 패킷 서명은 설정된다. 호스트는,IDirectPlay8Peer::Host 또는 IDirectPlay8Server::Host 를 호출할 때DPN_APPLICATION_DESC 구조체에 DPNSESSION_FAST_SIGNED 플래그 또는 DPNSESSION_FULL_SIGNED 플래그를 설정하는 것으로, 서명의 타입을 결정한다. 세션에 접속하는 player는,IDirectPlay8Peer::Connect 또는 IDirectPlay8Client::Connect 를 호출할 때에 어느 쪽인가의 플래그를 설정할 수 있지만, 호스트가 선택한 서명의 타입을 사용한다. 한 번 접속 하면, 클라이언트는 IDirectPlay8Peer::GetApplicationDesc 또는 IDirectPlay8Client::GetApplicationDesc 를 호출하는 것으로, 세션이 사용하고 있는 서명의 타입을 확인할 수 있다. DPN_APPLICATION_DESC 구조체의 dwFlags 멤버는 서명 플래그의 1 개를 저장 한다.

  세션으로 패킷 서명을 사용하려면 , 모든 player가 Microsoft DirectX® 9.0 이후를 사용할 필요가 있다.

간이 서명

간이 서명을 사용하면 게임에의 오버헤드는 최소한에 머무른다. 행해지는 처리는, 각 패킷에 같은 8 바이트값을 추가하는 것 뿐이다. 생성 하는 모든 DirectPlay 세션에 간이 서명의 사용을 추천한다. 다만, 제삼자 사용자가 교환되고 있는 패킷에 액세스 해, 이 8 바이트값을 판별했을 경우, 악의가 있는 공격을 받기 쉽다.

완전 서명

완전 서명을 사용하면 게임에 처리 위에의 오버헤드가 더해진다. 송수신 되는 각 패킷은, 서명을 계산하기 위해(때문에), 재처리 할 필요가 있다. 완전 서명은 Secure Hash Algorithm Version 1.0 을 사용한다. 세션이 한 번 확립 하면, 제삼자 사용자는 패킷에 액세스 하지 못하고, 링크가 위해를 받을 것은 없다. 다만, 제삼자 사용자가 2 대의 컴퓨터간의 초기 접속 순서를 읽어내면 경우에 따라서는 그 사용자는 링크에 위해를 줄 수가 있다.



© 2002 Microsoft Corporation. All rights reserved.
↑TOP