BogusKebab
40
2018-06-04 14:12:51
1
261

TCP/IP 서버 클라이언트 기본 보안관련 질문!


안녕하세요 선배님들

TCP/IP를 이용하여 홈 유비쿼터스를 집에서 사용하려 개발하는 사람입니다.

집에 서버 PC를 설치해서 가전 제품의 전원 차단하거나 집 내부 CCTV를 조작하는 것을 목표로 하는데요.

서버 PC에는 TCP/IP 서버가 있고 안드로이드 클라이언트를 이용해 포트 포워딩 된 서버 컴에 접속하여 데이터 교환하는 것 까지 진행하였습니다. 그래서 카메라 영상을 실시간으로 획득하는 것 까지 되었는데요.

그런데 해킹이 염려되어 통신 보안 관련 기본 조사를 하고 있는 상황입니다. 하지만 제가 통신이랑 네트워크 및 보안 쪽은 무지하여 우왕좌왕 하는 상황입니다.

TCP/IP 프로토콜의 단점이 Listen을 Overflow하게 하는 공격에 취약하다는 것은 예전에 수업 때 들어서 알고 있지만 이를 어떻게 막고 해커의 임의 접속을 어떻게 막는지 궁금합니다.

현재 프로토콜은 제가 정한 String을 파싱해서 제가 원한는 모듈에 접속해서 쓰는 방식인데요. 이를 중간에 암호화하고 다시 푸는 모듈이 필요한가요? 정말 기본이 안되어 있어 죄송합니다 ㅠㅠ

읽어주셔서 감사합니다.


0
0
  • 답변 1

  • 쥬라기
    78
    2018-06-04 14:51:03

    임의 접속을 막을 수 있는 방법은... 전체에게 오픈되어 있는, 열려있는 상태에서는 임의 접속을 거부하기가 애매하네요. 그렇다면 어쩔수 없이 인증된 장비에게만 연결을 허용하게 하는 방법이 있어요.


    그리고 리슨하고 있는 곳에 연결이 되면 얼라이브 체크 해서 뭔가 작업이 없는 것들에 대해서는 강제로 끊어버리는 걸로 작업하세요. 또 리슨 연결을 받아들이는 옵션중에 몇가지 보안옵션이 있으니 찾아보시면 나올거예요. 접속하자마자 데이터를 보내고 받아서 인증 프로토콜을 만들어보세요. 접속하자마자 정의된 프로토콜이 오지 않는다면 맞지 않는 것으로 취급하고 끊어도 괜찮구요.


    송/수신측에서 보내기전에 암호화 하는것과, 받자마자 복호화 하는 것은 꼭 넣어주세요. 뭐 중간에 가로채져서 알려져도 상관없다면 딱히 필요없지만요. 어쨋든 암호화를 하게 되면 데이터 자체가 유출되더라도 내용은 모를거예요. 모듈로 되어 있는 것도 있을테지만 알려져있는 암호화 방식이 많으니 아무거나 차용해서 사용해보세요. 잘 알려진 것으로는 sha 나 md가 있습니다.

    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.