Web으로 통신
- 기본적으로 HTTP 통신
- 하지만 이건 평문!
- 인터넷으로 내 정보가 다 돌아다니게됨
- SSL 적용
- 소켓에 PKI기술 등을 적용, 암호화
- HTTPS를 사용
- PC에서 Google 통신할 때 암호화, 마치 터널 속에 들어간 것 처럼 트래픽이 보이지 않게 됨
- 내 정보가 보호됨
통신 상태 분석
- Wireshark 등을 통해 Google과 나의 통신 상태를 분석하고자 할 때
- IP와 Driver 사이에 필터 → 필터링은 안 하고 센서로 사용
- 관련 내용: https://dev-study-501.tistory.com/123 참고
- 수집해서 트래픽 빨아올려서 위로 끌어올려주고 위에서 분석 (검은 화살표)
- Process부터 socket통신이 타고 내려오는데 (주황색 화살표)
- SSL이 적용되다보니 센서가 수집하는 패킷에 암호화가 되어 있음
- 암호를 해석해야만 무슨 말인지 알 수 있다 (Session key를 찾아내서,,)
- 분석하려는 트래픽 자체가 HTTP, User mode application 레이어
- 날라다니는 데이터가 기본적으로 Stream인데 그걸 굳이 Packet수준에서 뜯어서 분석하는 게 적절할까?
- Stream을 직접 분석하면 좋겠다
Proxy Server
- 암호화 되기 전에 분석하자
- Proxy server를 하나 둔다
- Stream에다 대고 "Proxy 서버가 127.0.0.1"라고 설정
- 자기 자신을 뜻한다
- 거기에 8080번을 Proxy로 하기로 했다 이렇게 하기로 했다(여기 이해가 안 감)
- Proxy Server에도 Socket이 열림
- Chrome이 Proxy 설정을 로컬로 하면
- 원래대로 쭉 내려 오는 게 아니라 Chrome 소켓을 통해서 Proxy 서버로 감
→ 그러고 나서 Proxy 소켓을 타고 나감
- 암호화는 Proxy server에서 함
- Chrome에서 Proxy로 가는 곳의 내용이 평문
- 암호화 안돼있어
- 여기서 분석
- Stream 수준, Packet으로 쪼갠 상태에서 분석/조립할 필요도 없어
- 여기서 보면 돼!!
Fiddler
Fiddler는 웹 트래픽을 캡처, 분석 및 조작할 수 있는 인기 있는 웹 디버깅 도구입니다. 웹 브라우저와 서버 간의 통신을 "가로채서" 볼 수 있기 때문에 많은 개발자와 테스터들이 이 도구를 사용합니다.
간단히 말하면, Fiddler를 사용하면 다음과 같은 작업을 할 수 있습니다:
- 트래픽 모니터링: 웹사이트를 방문할 때 브라우저와 서버 사이에서 오가는 모든 데이터를 확인할 수 있습니다.
- 요청 및 응답 수정: 실시간으로 웹 요청이나 응답을 수정하여 어떤 결과가 나오는지 테스트할 수 있습니다.
- 성능 분석: 웹 페이지 로딩 시간을 분석하여 성능 문제를 찾을 수 있습니다.
- 보안 테스팅: 웹 애플리케이션의 보안 취약점을 확인하는 데 도움을 줍니다.
간단한 예를 들면, Fiddler를 사용하여 웹 페이지가 이미지나 스크립트, 스타일 시트 등 어떤 리소스들을 요청하는지, 그리고 그 리소스들이 얼마나 빨리 또는 느리게 로드되는지를 확인할 수 있습니다.
Fiddler를 사용하면 브라우저에서 일어나는 "백스테이지" 작업을 들여다보고, 웹 애플리케이션의 작동 방식을 더 잘 이해할 수 있습니다.
- 소켓 통신을 스스로 분석할 수 있다
- 분석 용이
- 조작도 가능
- Chrome이 구글 접속할 때 '나는 chrome 이다'라고 HTTP안에 써 있음
- Fiddler를 이용해 조작 → 모바일 환경인 마냥 조작 (실제로는 PC인데 모바일인 척)
- 브라우저가 모바일에 붙었을 때 처럼 콘텐츠가 날라옴
- 개발시 도움
출처: https://youtu.be/fkJx3T26BL0?si=jRrC7qPkT7LvEItO
'백엔드 > 네트워크' 카테고리의 다른 글
[네트워크기초이론]#24. Proxy의 활용 네 번째, Reverse Proxy (1) | 2023.10.17 |
---|---|
[네트워크기초이론]#23. Proxy의 활용 세 번째, 감시와 보호 (0) | 2023.10.17 |
[네트워크기초이론]#12. WAS, JVM 그리고 RESTful API (2) | 2023.10.16 |
[네트워크기초이론]#38. 서브넷팅 보강 (1) | 2023.10.11 |
[네트워크기초이론]#37. 네트워크를 다시 또 내부로 자르는 서브넷팅 (0) | 2023.10.11 |