2020-07-05
< 채팅 시스템 분석하기 >
채팅 시스템을 분석하기에 앞서서 우리가 최종적으로 목표로 하는 채팅 내용을 수정할 수 있는지부터 고민하게 되었다
그 결과 채팅내용을 수정하는데 있어서 두 가지 방법이 제기되었다.
1. 채팅 내용을 웹페이지로 전송하는 서버측에서 채팅 내용을 필터링 하는 경우 -> 채팅내역 패킷을 수정하여 전달
2. 채팅 내용이 담긴 웹페이지의 소스를 클라이언트 측에서 수정하는 경우 -> 채팅내역 부분에 해당하는 페이지 소스를 수정
위 두 가지 경우에서 1번째의 경우에는 서버측의 환경에 맞도록 개발해야하기 때문에 호환성이 떨어진다. + 서버컨택
그래서 2번째의 경우 채택하기로 하였는데 다음과 같은 문제점이 고려되었다.
1) 실시간으로 올라오는 채팅의 경우 번역하는 과정에서 큰 딜레이가 발생하지 않을까?
2) 클라이언트 측에서 채팅 내용 + 수정이 일어나기 때문에 과부하가 발생하지 않을까?
3) 실시간으로 올라오는 채팅이 실시간으로 번역이 가능할까?
=> 얼마나 주기적으로 페이지 검사가 이루어져야 하는가? + 주기적으로 변환이 가능한가?
위 방법을 적용할 수 있는지 확인해보기 위해서 구글의 번역기 기능을 통해 확인해보기로 하였다.
* 구글 페이지 번역기
: 구글에서 제공하는 서비스로 특정 나라의 언어를 감지하여 원하는 나라의 언어로 변환해주는 서비스이다.
대부분의 웹페이지에 적용이 가능하여 외국 문서를 접하는데 자주 이용된다.
< 페이지 소스 수정 가능성 >
- 확인과정
구글 번역기를 통해 사람이 많은 채팅방에서 영문장을 입력하였을 때 실시간으로 한국어 변환이 가능한 것을 확인(feat. 아프리카tv 채팅)
또한 구글 번역기 API 가 제공되고 있으며, 페이지 소스를 번역하는 것으로 생각된다(feat. google Translation API)
* 다만 구글 API 가 정확하게 어떠한 원리로 동작하는지는 차후 분석할 예정이다.
- 목표: 가상의 채팅 시스템을 대상으로 시연하기
11일까지 웹 채팅 서비스를 만들고, 이 서비스는 영어를 입력하면 한글로 번역함.
즉, 우리가 만든 웹 채팅 서비스에다가 구글 페이지 번역 API를 항상 적용시키는 것으로.
=> 이를 통하여 웹 채팅의 내용을 페이지 수정을 통해 필터링 가능하다는 것을 확인할 수 있다.
- 시연 시나리오
1. 가상의 웹 채팅 시스템 만들기( .json .js 등 활용 )
2. 구글 번역 API를 사용하여 영문장이 한글로 바뀌는 것을 확인
2-1. API 수정이 가능하다면 특정 단어를 *로 수정가능한지 확인
- 해결해야할 문제
1. 구글 페이지 번역기의 경우 해당 페이지의 소스가 바뀌지 않는 것을 확인할 수 있다.
확인한 방식은 영문서의 내용을 번역하였을 때 스크롤을 내려야 번역이 되는 것을 확인할 수 있었으며,
페이지 소스를 통해 분석하였을 때도 페이지의 영문장들이 아직 번역되지 않은 채 남아있는 것을 확인할 수 있다.
따라서 페이지 소스가 수정되어지는 과정이 어떻게 이루어지는지 확인해야할 것 같다.
2. 가가라이브와 같은 웹 채팅의 경우 실시간으로 변환되지 않는 것이 확인되었다.
실시간으로 변환되는 아프리카 채팅과 무엇이 다른지 한번 알아봐야할 듯하다.
3. 궁극적인 목표인 확장 프로그램 개발에 있어서 페이지 소스 API와 같은 개발도구가 있는지 모르며,
어떻게 적용이 되어지는지에 대한 의문이 남아있다. 차후 스터디를 통해 정해봐야 할 듯하다.
4. 시연과정에서 API가 채팅 시스템 내부에 적용이 되는 경우에 서버측에서 필터링을 제공하는 것과 동일하다.
이에 대한 자세한 개념이해가 필요할 것 같다.
- 차후 계획
7월 10일까지 java또는 javascript를 이용하여 웹 채팅 서비스를 구현하는 것이 목표
7월 11일 알고리즘 팀과 함께 페이지 소스 과정을 분석,,
< 참고했던 자료들 >
웹 채팅 서비스 : 가가라이브, 아프리카tv 채팅
3줄 요약
1. 웹 채팅 패킷이 어떤식으로 전달되어 웹페이지 소스에 노출되는지 분석하려고 하였음.
2. 그러나 대부분의 채팅의 경우 암호화되어 전달되며, 스니핑한 뒤 노출시키는 것은 무리라고 판단.
3. 구글 웹페이지 번역기의 로직을 참고하여 필터링을 어떻게 이룰지 생각해보기로 하였으며,
임의의 웹 채팅 서비스를 만들어 시연해보기로 하였음.
'SecurityFactorial > Chat Filtering (X)' 카테고리의 다른 글
두번째 회의 (0) | 2020.07.11 |
---|---|
채팅 프로그램 분석 2차 회의 (0) | 2020.07.10 |
웹채팅 서비스 만들기 (1) | 2020.07.06 |
네트워크 기초(TCP/IP) (0) | 2020.07.05 |
계획서 및 첫 회의 (0) | 2020.07.05 |