SockS

개요

Socket Secure
풀어 말하자면 소켓을 안전하게 연결하는 프로토콜이다.
소켓 연결을 하는데 있어서 보안을 강화하는 것인데, 실체는 그냥 SSH 터널링 기술을 조금 더 추상화한 개념이라고 보면 되겠다.
주로 프록시로서 활용되며, vpn 회사들이 자신들의 제품이 안전하다는 것을 내세우기 위해 설명하는 글이 많다.

HTTP와의 비교 및 장점

프록시 프로토콜이기 때문에 흔히 HTTP 프록시와 비교된다.
http 프록시 서버는 그냥 자신이 받은 요청을 토대로 타겟에 요청을 보내고, 결과를 돌려주는 역할을 한다.
그러나 socks는 서버와 ssh 터널링 연결을 한다.
그 후에 요청을 처리한다!
즉, 프록시 서버와 클라 서버 간 통신이 암호화된 상태로 이뤄진다는 것이다.
그러면서 프록시 서버에 대해 원하는 통신 관련 명령을 내릴 수 있다.

요약하여 http보다..

느리다고는 하는데, 사실 HTTPS와 비교해보면 또 빨라서 단점이라 이야기하기도 뭣하다.

그래서 흔히 동영상 스트리밍에 대해 강점을 가진다고 많이 표현된다.

5계층 프로토콜..?

SockS에는 Sock4, Sock5 버전이 존재한다.
그런데 이 중에서 Sock5를 5계층 프로토콜이라고 표현하는 글이 존재한다.
세션 계층의 단위의 프로토콜이라는 것인데..

과거

나는 이 부분을 제대로 이해하지 못 해서 당장은 넘어가려고 한다.
누군가 질문할 때 조금 더 탐구해보는 것으로.

지금 봤을 때 이 의미는 꽤 단순하다.
4계층부터는 포트를 가지고 프로세스를 구분할 수 있게 한다.
5계층부터는 한 포트에 여러 연결이 있을 수 있다는 것을 가정하고, 그 각각을 세션으로 구분한다는 것이다.
즉, 기본적으로 4계층 이상에서 연결을 유지하고자 하기에 세션을 구분하고, 이것을 5계층이라 표현하는 것이다.
http라면 stateless하니까 구태여 이렇게 표현되지 않는 것 같다.

사용법

SSH 터널링#다이나믹 터널링을 참조한다.
이게 그냥 이 프로토콜의 실체라고 보면 된다.

프록시 세팅을 할 수 있는 모든 곳에 적용된다.

참고

https://m.blog.naver.com/aepkoreanet/221609890153
https://docs.oracle.com/cd/E19438-01/819-3161/agsocks.html
더 좋게 정리된 글들을 많이 봤었는데, 찾으려니 또 없네..
https://www.youtube.com/watch?v=g2iSPBmRZ7M&list=LL&index=1
이 유튜브가 개념을 정리하는데 큰 도움을 줬다.