IT 공부 관련

다이제스트 인증과 IP camera ptz 제어

AI 로밧 2021. 12. 29. 23:10
728x90

※이론적인 부분은 약하고, 단순 기능 구현만을 위한 내용입니다.

 

  • 국내 한화 테크윈의 IP camera의 ptz 제어는 camera - POE - COM이 직접 연결되어 있을 때,
  • 일반적인 RTSP(Real Time Streaming Protocol)로 데이터를 가져오는 제어 프로토콜의 보안과 다르다.
  • ptz 카메라를 제어 할 목적으로 http 서버로 신호를 보내는 데, 이때 인증된 권한자(Auth)에서 SUNAPI라는 삼성테크윈 일 때 개발된? 자체 API를 이용해서 신호를 넘겨줘야 한다. 인증된 권한자로 등록하는 과정이후 SUNAPI를 이용해 카메라를 제어할 수 있는 관련 신호들을 넘겨 줄 수 있다.
  • 나는 주로 python으로 개발을 진행중이므로 관련된 인증 코드는 다음과 같다. 간단하지만 보안관련 개념을 몰라 rtsp 서버에 ID/PASSWORD를 계속 넘겨주면서 API를 불러와서 처음에는 시행착오를 많이 겪었다.
  • 카메라 - 컨트롤 타워로 오는 중간에 NVR과 같은 매체가 있으면 거기서 보안 권한을 재요구하기도 하는 듯 하다. 위 방법은 중간단 없이 직접 연결 되었을 때 사용 가능한 방법이고, 응용은 무궁무진 한 것 같다.

 

import requests
from requests.auth import HTTPDigestAuth

ip = requests.Session()
ip.auth = HTTPDigestAuth('admin','password')
ip_control = ip.get(url)
if ip_control.status_code == 200:
	print(f'ip_control code is success')
else:
	print(f'url or control api source check plz')

 

다이제스트 인증의 개념은 다음글을 참고. https://feel5ny.github.io/2019/11/24/HTTP_013_01/

 

다이제스트 인증 (1) - 다이제스트 인증과 특징

기본 인증은 편리하고 유연하지만, 전혀 안전하지 않다. 메세지를 위조하지 못하게 보호하려는 어떠한 시도도 하지 않는다. 다이제스트 인증은 기본 인증과 호환되는 더 안전한 대체재로서 개

feel5ny.github.io

 

C# or C++ 으로 개발된 코드를 찾으려면 다음을 참고.https://gyeongju.tistory.com/entry/SUNAPI-10-%EC%82%AC%EC%9A%A9%EC%9E%90%EC%9D%B8%EC%A6%9D-digest-%EC%9D%B8%EC%A6%9D%EB%B0%A9%EB%B2%95

 

[SUNAPI 1.0] 사용자인증 digest 인증방법

SUNAPI 1.0은 삼성 네트워크 카메라를 제어하기 위한 프로토콜 네트워크쪽 지식이 전혀 없는데, 카메라 제어한다고 힘들었다. ㅠㅠ 하고나니 별거 아닌것들. 이제 정리 시작! 장비에 접속하기 위해

gyeongju.tistory.com