우선 코인과는 그리 밀접한 내용이 아닐 수도 있으므로 자게에 글을 쓰겠습니다. 평소에 보안쪽으로 관심이 많았던터라 나름 최근 이슈이므로 저도 땡글에 자그마한 도움이 될까 해서 한 번 써봅니다 ㅎㅎ.
물론 틀린내용이 있을 수도 있고 내용도 부실할 수 있습니다. 저는 아직 공부하는 학생이라서요 ㅠㅠ 댓글로 피드백은 언제나 환영입니다.
지나가는길에 '아 이런일이 일어나구 있구나~' 하는 정도로만 읽어주시면 감사하겠습니다.
(쓰고나니 많이 부족해보이네요 고수님들 꼭 꼭 피드백 부탁드립니다!!)
----------------------------------------------------------------------------------------------------------------------------------
모두들 예전부터 참 많이들 보시던 싸이트들이 있을겁니다.
바로 warning.or.kr
물론 의도는 불법 도박 사이트, 토렌트 공유 사이트, 성인 사이트, 웹툰 공유 사이트 등을 막기 위해 만들어졌죠. 한마디로 불법 사이트들을 일반인들이 접근하지 못하게 하겠다는 소리입니다. 네 취지는 좋아 보이네요.
자 그럼 예전부터 저 워닝이 떴는데 갑자기 이제와서 무슨 난리냐? 하시는분들이 있을겁니다. (물론 원한다면 우리는 다 우회해서 들어가봤죠... )
우선 그걸 알기위해서는 우리 컴퓨터에서 워닝이 뜨는 과정을 약간이나마 알아야 합니다.
잘 생각해보면 우리는 분명 예)avcdef.com에 접속한다고 명령을 보냈는데 어째서 warning.or.kr에서 뿅하고 답장이 오는 것일까요?
정부가 얼마 전까지 사용한 차단 방법들은 몇가지가 있는데 우선 현재 제일 이슈인 https차단 관련된 부분 위주로 살펴보겠습니다.
여러분들은 DNS(도메인 네임 시스템)에 대해서 많이 들어봤을 겁니다. 쉽게 말해서 'www.ddengle.com'을 주소창에 치면 DNS가 주소를 받아서 땡글의 IP로 변환해 주죠.
이 DNS라는것은 보통 컴퓨터마다 '자동으로 DNS서버 주소 받기'가 되어있을 겁니다.
이 '자동' 이라는것은 자기가 가입한 인터넷 회사에서 받아오는 것이라고 생각하면 편합니다. SKT, KT, LG 등..
그래서 이 대형 인터넷 회사들(ISP라고합니다)이 미리 차단 사이트들을 가지고 있으면 우리가 이상한 사이트에 들어갈 때 자동으로 워닝으로 연결시켜주는 방식입니다.
예) 유저: 인터넷아 avcdef.com에 접속시켜줘 -> DNS서버: 잠깐만 IP좀 알아올게 -> DNS서버: 어? 뭐야 표를 보니 이 사이트 불법이잖아. 이 나쁜놈아 워닝으로 가버렷~(avcdef의 IP가 아닌 워닝의 IP를 알려줌) -> 유저: 어 고마ㅇ.. 어 뭐야 왜 워닝사이트가 뜨는거야!!
자 그럼 여기서 우리는 한가지 꼼수를 생각해 냅니다.
'이거 정부 따까리인 우리나라 ISP의 DNS를 사용 안하고 외부에 차단없는 DNS를 쓰면 되겠다!'
차단없는 클린한 DNS 서버를 가지고 있는 사람들은 누구일까요?? 그중에서 가장 믿을만한 곳은? (DNS를 이용한 치명적인 해킹 수법도 많기에 아무 DNS서버는 매우 위험합니다)
바로 구글이었습니다.
DNS 서버를 1.1.1.1 이나 8.8.8.8등으로 연결해두면 우리의 갓-구글님들은 우리나라의 검열된 워닝 사이트가 아니라 정상적인 사이트의 IP를 받아 올 수 있죠.
(수정: 1.1.1.1 은 구글이 아니라 cloudflare의 DNS라고 합니다. 피드백 주신 '페이리아'님 감사합니다)
이것이 과거에 주로 사용하던 방법입니다.
그리고 이것들 가능한 기본적인 이유는 패킷(여러분이 보내고 받는 데이터)이 HTTP형식으로 되어 있다고 가정했기 때문입니다.
왜그런가 하냐면 어차피 여러분의 모든 요청은 (DNS서버에 IP주소를 알려달라고 하는것도 하나의 요청이죠) 여러분이 가입된 인터넷 회사를 통해 밖으로 나갈 수 밖에 없다는 아주 중요한 사실입니다. 여러분의 인터넷이 구글이랑 바로 연결되어 있진 않잖아요?
결국 ISP회사를 통해 우리의 패킷을 인터넷에 던지는거고 그게 찾아 찾아 목적지에 들어가고 거기서 다시 우리쪽으로 패킷을 던져주면 ISP가 그걸 받아서 우리한테 주는 겁니다.
그런 일들을 하면서 인터넷 비용을 받아먹는 거구요 ^^
그런데 사실 01로 되어있는 이 데이터 쪼가리가 불법 사이트에 접속하는건지 아니면 정상적인 네이버에 접속하는건지 ISP가 확인할 방법이 있을까요? 네 원래는 알 수 없습니다. 그냥 패킷의 앞부분만 따서 '아 누구한테 온거구나~ 누구한테 갈꺼구나~' 하는 정도로만 봐도 정상적인 통신은 가능합니다. 하지만 정부는 이 패킷이 불법 사이트로 가는 것인가? 하는 것을 검사하기 위해 그 데이터를 열어보는 거죠.
정말 기분나쁜 일이 아닐 수 없습니다. 여자친구한테 연애편지를 써서 보내는데 갑자기 정부가 '이거 테러 계획 아니야?' 하면서 다 열어보는거랑 똑같죠.(흠 사실 여친이 없어서 와닿는 비유였는지는 모르겠네요 헷)
그래서 첫 warning 도입 시에도 말이 많았습니다. 애초에 패킷을 까보는 것 자체가 충분히 문제될 여지가 많거든요. 심지어 만약 나쁜 사이트면 '정부 맘대로' 들어가는 사이트를 바꿔버립니다. (이걸 강제 포워딩이라고 합니다)
정부나 해커나 겉으로 말하는 목적만 다를 뿐 하는 행동은 똑같다는 이야기죠.
네 정부는 둘째 치더라도 해커가 남의 패킷을 자꾸 훔쳐보면 큰일나겠죠? 여러분이 코인지갑의 비밀번호를 쳐서 거래를 하는데 그게 전송되면서 남들한테 다 보인다면 당연히 큰 문제이고 말고요. 여러분의 계좌번호와 비밀번호를 봉투에 담아서 부모님한테 보내는데 중간에 집배원이 한번 보고 지나가던 호기심 많은 꼬맹이가 집앞에 꽂혀있는 우편을 또 열어보고 그러면 안되잖아요.
그래서 사람들은 http에서 암호를 걸은 HTTPS(무려 이 s는 secure이랍니다)를 만들어 냅니다. 자세한 방식은 여기 쓰긴 너무 복잡하고 기네요.. 그냥 둘만의 암호를 걸었다고 생각합시다.
이는 정부도 마찬가지입니다. '이 패킷들이 어디로 가냐! 불법사이트랑 통신하는거 아니야?' 라고 생각해서 까봐도 '메롱메롱 메루미' 이렇게 되있으면 이게 불법 패킷인지 정상 패킷인지 알 수 없다는 것입니다.
그렇다고 https 패킷들이 다 이상한 패킷이라고 가정할 수도 없습니다. 모든 소중한 개인정보들은 보안을 위해 https를 사용해야 하니까요.
그래서 여태 우리는 https를 사용해서 정부를 골려온겁니다. '너네 이거 해석 가능해? 못하지? ㅎㅎ'
-----------------------------------------------------------------------------------------------------
잠깐 쉬고 갑시다.... 끝없는 창과 방패의 역사군요
정부는 빡이돕니다. 계속해서 불법 복제가 판치고 불법 포르노 사이트들은 버젓히 운영되며 미디어 제작자들은 정부 원망에 윗대가리들은 너네 능력이 이것밖에 안되냐며 계속 쪼아대니까요.
그래서 보다보다 새로운 강력한 방패를 치켜세웁니다.
자 우리는 이제 https를 통해서 정보를 주고받는다고 하였지요? 위에 땡글 주소창만 보아도 https가 써있을겁니다.
그런데 이 암호화라는것도 하나의 연산이자 과정이죠. 데이터들을 보낼 때 시간과 자원이 기존에 깡으로 보낼때보다 많이 든다는 것입니다.
그리고 이 암호는 그냥 둘이 맘대로 정하는 게 아닌 검증된 SSL서버를 거쳐야 합니다. 쉽게 말해서 무진장 귀찮다는 것이죠. 철수와 영희가 연애편지를 보내려면 둘 다 믿을만한 담임선생님에게 암호를 만들어달라 하는겁니다.
여기서 하나의 취약점이 생겼고 그걸 정부가 파고들었습니다.
담임선생님이 영희에게 '너 영희가 확실하니?' 라고 물어볼 때 반 아이들이 숨어서 듣고 있었던 것입니다.
이 질의에 사용되는 부분이 SNI라는 부분이고 안타깝게도 이 부분은 암호화가 되어 있지 않던 것이죠!!
그래서 영희를 짝사랑하고있던 바둑이.. 아니 길동이는 영희에게 가는 철수의 편지를 모조리 찢어버린다는 내용입니다.
비유는 찢어버린다고 했지만 현실에서는 정부가 https패킷을 감시하다가 암호화되지 않았던 SNI부분을 캡쳐해내서 여기 써진 주소를 확인한다는 겁니다. 그래서 그 주소가 불법이면?? 네 바로 워닝행이죠
한마디로 해커보다 더 심하게 집요하게 내 정보를 뜯어본다는 겁니다. 물론 그 암호화된 내용들은 정부가 볼 수 없습니다만 이 패킷이 어디에서 어디로 가는지정도는 파악이 가능합니다.
만약 감시의 목적으로 쓰인다면 '어떤넘이 자꾸 불법도박 사이트에 들어갈라고 하네? 이넘 불법 도박장 운영하는넘 아냐? 앞으로 얘가 들어가는 모든곳 기록해놔'
더 심하다면 '이놈 자꾸 극우사이트에 들어가네. 빨갱이아냐? 잘 감시해'
이런 일들이 일어날 수 있다는 거죠.
나쁜짓 안하면 상관없다고 생각할 수 있지만 나쁜짓 안해도 피해입니다. 왜냐하면 정부 즉 ISP업체에서 모든 https패킷을 까보고 검사한 뒤에 인터넷세상으로 던질것이기 때문에 속도가 이전보다 느려진다는 것이죠
우선 여기까지가 현재까지의 이야기입니다.
--------------------------------------------------------------------------------------------------------------
네 이제 정부의 새 방패가 나왔으니 또 새로운 창들이 생겨날 것입니다.
위에서 SNI필드가 암호화되있지 않아서 체크가 가능하다고 했죠? 이번에 https 업뎃에 SNI필드도 암호화 하는 것을 준비중이라고 합니다. 이렇게 되면 또다시 판도가 뒤집어 질 수 있으리라 기대해봅니다.
중국에서는 위에서 말했던 해외 DNS를 완전히 차단박았는데요. 이건 진짜 단순 검열을 넘어 감시 수준인겁니다. 만약 우리나라에서 단순 불법 사이트를 막겠다고 저런 짓을 하면... 상식밖의 일이라 할말이 없네요.
중국처럼 그냥 해외로 나가는 모~든 데이터를 막거나 심한 검열을 한다는 이야기죠.
(그런데 지금 우리나라도 ISP에 해외 DNS 전부 차단하라고 이야기 나온거 같기도 합니다. 미쳐돌아가네요.)
-----------------------------------------------------------
이제 제 주관적인 잡소리 좀만 하고 마칠게요
항상 해킹과 보안은 끊임없는 창과 방패의 대결이었고 이 과정이 너무나 재밌어서 공부중입니다.
하지만 공부를 하면서 느끼는것은 정말 쓰는 곳에 따라서 약이될수도 독이될수도 있다는 것입니다.
우리의 아디를 털리지 않으려고 만든 https가 오히려 불법적인 사이트 접속에 사용되며 정부는 마치 해커처럼 그 https를 공격하고 있으니...
개인적으로 불법 사이트를 제제하겠답시고 이렇게 심한 관리를 하는 건 이해가 되질 않습니다. 이런 나라가 거의 없어요..
우리나라가 뭐 테러가 만연한 나라도 아니고 IT강국 내세우면서 막상 뒤에서는 이런 심한 필터링이라니요
남의 패킷 자체를 까보는 행위자체가 불법인데 나라에서는 그걸 대놓고 하겠다는 겁니다. 불법사이트 막는건 좋은데 그걸위해 또 불법을 저지르는 정부라니요.
적당히좀 햇으면 합니다 ㅋㅋ
이걸 땡글에 올리는 이유가 무엇이냐면요. 그 불법 사이트의 리스트가 사실상 정부 맘대로잖아요. 지금은 불법토렝이, 포르노, 웹툰공유 사이트들이 타겟이라면 얼마 뒤에 '불법 가상화폐 사이트' 라는 이름으로 땡글도 막힐 수 있다는 겁니다. 지금 정부 하는 꼴 보면 아시잖아요 충분히 가능한거... 작은 거래소들까지 막힐 것은 불보듯 뻔하죠
물론 늘 그러듯 우리는 그걸 뚫어내는 창을 다시 다듬을 것이지만 불법 행위자 취급 받아가면서, 심하면 블랙 리스트에 들어가면서 땡글에 들어오는 날이 온다면 썩 유쾌하진 않을것 같네요.
-------------------------------------
꼬리말
* 게시글 내용 삭제시 레벨 강등
* 질문은 각 주제별 게시판에.
비트코인 암호화화폐 커뮤니티 땡글~ 땡글~
-------------------------------------