paros와 같은 프록시 툴을 사용하실 떄 제일 많이 볼 거라 생각이 됩니다.

저 또한 프록시 툴을 쓸 때 제일 많이 보니까요..

HTTP 1.0은 또 무엇이며 HTTP 1.1은 또 무엇일까요?

HTTP가 뭔지부터 알아야 겠죠?

HTTP(HyperText Transfer Protocol)는 WWW(World Wide Web) 상에서 정보를 주고 받는 프로토콜 이다. 주로
HTML 문서를 주고 받는 데에 쓰이고 TCPUDP를 사용하며, 80번 포트를 사용한다. 1996년 버전 1.0, 그리고 1999년 1.1이 각각 발표되었으며, 현재 가장 널리 쓰이는 버전이 1.1이다.(출처 : 위키백과)

또, HTTP 프로토콜은 연결상태를 유지하지 않는(Connection less) 프로토콜 입니다. 만들어질 때 부터 가지고 있는 특징 이죠.

이유는 웹의 기본 개념은 불특정 사용자에게 서비스를 하는 것 입니다. 그렇기에 특정사용자와 계속 연결을 하고 있을 이유가 없기 때문에 다른 새로운 특정 사용자와 연결을 하기 위해 Connection을 데이터 전송 후 바로 끊도록 설계 되어 있습니다.

HTTP 1.0은 Connection을 할 때 마다 3way-handshaking을 합니다. 계속 연결을 해줬다, 끊어줬다 하면 초창기에는 효율적일지 모르나 요즘같은 멀티미디어 시대에는 효율적이지 못한 방식 입니다.

이러한 불필요한 방식을 개선하여 나온 것이 HTTP 1.1입니다.

HTTP 1.1 은 HTTP 1.0과는 다르게 Connection을 한번 할 때 동시에 여러클라이언트와 하게 됩니다.

그렇기에 여러 클라이언트와 Connection을 한다 하여도 3way-handshaking을 한번 하게 되는 것 입니다.

또한 한번에 여러 클라이언트와 동시에 Connection을 하기 때문에 1.0처럼 데이터 전송후 바로 연결을 종료 해 주지 않아도 됩니다. 그래서 1.1은 일정시간동안 계속 연결을 유지 합니다.

또, 데이터를 전송완료 했는데도 불구하고 어느정도 시간까지 계속 연결을 하고 있는것이 1.1 입니다.

서버 입장에서는 사용자가 연결을 끊었는지 웹 특성상 알 수 없으므로 오랜시간 연결을 지속합니다.

제 생각에는 HTTP 1.1에 단점이라고 생각이 됩니다.

HTTP 버전은 브라우저 설정을 통해 변경 할 수 있습니다.

또 버전마다 보안 취약성이 있기 때문에 상황에 맞게 적절히 이용하는게 좋겠습니다.

어떠한 취약점이 있는지는 나중에 더 자세하게 공부를 해서 포스팅 해야 할 듯 하네요..

알고는 있지만 설명하기에는 뭔가 부족한 부분이 있어서...

혹시 제가 쓴 내용중에 틀린부분이 있거나 미숙한 부분이 있으면 댓글 달아주세요~ ^^


  1. Favicon of http://blueh4g.org BlogIcon BlueH4G 2009.09.10 22:22

    배고파

    • Favicon of https://maj3sty.tistory.com BlogIcon MaJ3stY 2009.09.10 23:00 신고

      저두요 ㅠㅠ 야식먹고 싶어지는 시간이네요 ㅠㅠ ㅋㅋ

  2. 개털이야 2011.01.04 01:22

    http1.1을 사용하는데 Synflooding 공격을 한다고 생각해 보자.

    저는 만약에 공격자가 1.1로 Synflooding 공격을 한다고 생각해 봤습니다.
    1.1은 앞에서 살펴본것과 같이 connection을 맺기위해 한번의 3way-handshaking을 하죠?
    그렇다면 한번 connection이루어진 상태에서 공격자가 아무리 syn을 날린다고해도 드랍을
    시키게 될것이므로 보안적으로는 장점이 될수있다고 생각 합니다 ㅎㅎ

    • Favicon of https://maj3sty.tistory.com BlogIcon MaJ3stY 2011.01.04 10:29 신고

      ㅎㅎㅎ 그래서 요즘은 syn플루딩을 잘 안쓴다죠... ^^;; ㅋ 아무튼 굿 아이디어 ㅋ

  3. Favicon of https://blog.naver.com/xowns4817 BlogIcon 김태준 2018.09.03 22:14

    위 글에서 http/1.1에서 일정시간동안 연결을 유지한다고 했는데 혹시, 그 유지되는 시간을 사용자가 지정할 수 도 있나요?? 그리고 클라이언트(사용자)입장에서 현재 Connection이 되어 있는건지 끊긴건지 어떻게 확인할 수 있을까요??

Sun2Day 님의 댓글에 힘입어 간단한 포스팅 하나 할려고 합니다.

KISA 서비스중에 IP들의 실시간 현황을 볼 수 있는 서비스가 있는데요.

아래 URL로 가시면 KISA 메인 화면이 보이실 겁니다.

http://www.kisa.or.kr/index.html

그리고 메인화면 상단에 보시면 아래와 같이 드롭박스가 보이실 거에요.


위 사진을 보시면

국내IP주소/AS번호관리및공급 서비스가 보이실 겁니다.

서비스로 들어가셔서 페이지 오른쪽에 보시면 아래와 같은 곳이 있을 거에요.


더보기 부분을 클릭하시면 아래와 같이 자세하게 볼수 있는 페이지로 보입니다.


자세하게 IPv4, IPv6에 할당에 대해 보실수 있습니다.

Sun2Day님의 댓글을 보고 생각이 나 포스팅글 수도 늘려볼겸 해서 한번 작성해보았습니다. ㅋ

KISA 서비스 말고도 다른 네트워크 업체에서 지원하는 실시간 카운트 서비스도 있는데 업체 이름이 생각나지 않아 여기서 이만 마쳐야 할 듯 해요 ㅠㅠ



  1. Favicon of http://blog.naver.com/jjysrh BlogIcon Sun2Day 2009.08.27 11:35

    호.. 제 닉이.. =ㅁ=;;ㅋ

    피드백이 바로바로 오는데요? ㅎㅎ

  2. ut0pian 2009.12.05 12:15

    헉 Sun2Day님게서 제 네이버 아이디를 아시다니...
    아무것도 없는 네이버 블로그에 방문기록이...ㅠㅠ

공인아이피와 사설아이피에 대하여 아직 잘 모르시는 분들이나 사설아이피 대역을 아직도 잘 모르시는 분들을

위하여 간단하게 이렇게나마 적습니다.

공인아이피(Public IP Address) :
전세계에서 자신만이 가지고 있는 인터넷상의 고유 주소.
공인아이피가 있음으로서 우리는 인터넷에서 다른 사람으로부터 필요한 자료를 받을 수 있는 것이다.

사설아이피(Virtual IP Address) : 인터넷을 이루고 있는 네트워크 내부에서 부여되는 고유 가상 주소
공인아이피는 전세계에서 유일하지만, 사설아이피는 네트워크 내부에서만 유일하다.
네트워크 내부에서는 사설아이피를 가지고 있지만 인터넷으로 나갈 경우, 해당 네트워크에 부여된 공인아이피로 인터넷을 하게 된다. 외부에서 사설아이피를 찾는건 힘들고, 해당 네트워크 내부에서만 찾는것이 가능하다.


이해하기 쉽도록 실생활 예를 하나 들어보자.

필자가 나온 고등학교는 xxxx고등학교이다.

반은 3-1이다. 번호는 19이다.

전세계에서 xxxx고등학교는 유일하기 때문에 공인아이피이다.

하지만 반 부터는 어느 학교에나 다 있는 것이다. 필자의 옆학교에도 3-1반이 있고 그 반에 19번 학생이 있을 것이다.

3-1, 19번이 사설아이피인 셈이다.

이 예와 마찬가지로 공인아이피는 전세계에 단 하나뿐인 것이고, 사설아이피는 어느 네트워크던 있는 주소이다.(A네트워크에도 1.1.1.1이라는 아이피가 있고 B네트워크에도 1.1.1.1 이라는 아이피가 있을수 있는 것이다.)
즉, 1.1.1.1 이것이 사설아이피이다.


사설아이피는 정해져있다. 우리가 쓰고 싶은 아이피를 쓰는것이 아니다.

10.0.0.0 ~ 10.255.255.255
172.16.0.0 ~ 172.31.255.255
192.168.0.0 ~ 192.168.255.255

위와 같이 정해져있다. 내가 컴퓨터를 하면서 제일 많이본건 192.168 범위이다.

사설아이피가 있는 건 간단하다. 컴퓨터수가 증가하면서 각 컴퓨터마다 공인아이피를 줄 수 없기 때문이다.

공인아이피를 주다보면 결국 고갈되고 말아, 혼란이 초래될수도 있다.

그렇기에 네트워크 내부에서만 이라도 쓸 수 있는 사설아이피를 만든 것이다.

또 돈때문인 경우도 있다. 공인아이피를 사용하려면 돈을 내고 '내가 이 아이피를 사용합니다.'라고 알려줘야 한다.

각 컴퓨터마다 공인아이피 돈을 낸다면 얼마나 부담스럽겠는가.

그렇기에 공인아이피는 하나만 쓰고 네트워크 내부에서 사설아이피를 쓰는 것이다.

어차피 인터넷으로 나갈때는 공인아이피로 나가기 때문에 인터넷 사용에 불편이 없다.

대표적으로 공유기를 생각하면 될 것이다.

참고로 지금 우리가 쓰고 있는 아이피 버전은 IPv4라는 것이다.

이것도 범위가 있는 숫자이기 때문에 공인아이피로 할당해주고 나면 고유주소이므로 다른사람이 쓰질 못한다.

그렇기에 자연스레 시간이 지나면 부족해지기 마련이다.

요즘 그 부족현상이 일어나고 있어 IPv6라는 버전을 상용화 시키려 각고의 노력이 펼쳐지고 있다.

  1. Favicon of https://maj3sty.tistory.com BlogIcon MaJ3stY 2009.08.22 02:31 신고

    쓰고 보니 간단하지 않아 보이넹 ㅡㅡ;;

  2. Favicon of http://blog.naver.com/jjysrh BlogIcon Sun2Day 2009.08.23 03:32

    ㅎㅎ;;

    어디였지.. KISA 페이지중 하나였나;;

    보면 IP가 언제 바닥이 날지.. 남은 시간을 알려주는 페이지도 있죠 +_+;;

    흥미 삼아서 그런 부분도 적어주시면 좋을 듯 합니다.

    • Favicon of https://maj3sty.tistory.com BlogIcon MaJ3stY 2009.08.23 04:01 신고

      아 그거 알아요!! ㅋㅋ

      실시간으로 아이피 숫자가 줄어드는걸 보여주고 있죠..

      암울한 카운트다운 ㅠㅠ

  3. bbongnam1 2010.05.25 09:27

    감사합니다. 사설아이피에 대해서 궁금했었던 점이 많이 해결됐습니다. ^^

어느분 블로그를 보고 이러한 것이 있다는 것을 알고 프로그램으로 짜보았습니다.


가끔 뉴스동영상을 소지하고 싶을 때가 있더라구요.

그때 좋을 듯 합니다.

근데 작업 도중에 아주 중요한 사실을 알아냈습니다.

조금만 조작을 하면 네이버 서버에서 SQL 쿼리문을 통째로 날려주더군요.

웹으로도 이 페이지에 접근을 할 수가 있는데 웹으로 접근하여 문제가 생기게 조작하여도 해당 부분은 보이지 않습니다.

하지만 패킷으로는 훤히 보이는군요.

이게 취약점이 될지 안될지는 아직 모르겠지만 아무튼 이런건 보안하는것이 좋을 듯 합니다.

네이버는 하루 빨리 패치하시기 바래요~

P.s - 네이버 관계자에게 삭제 신청이 들어오면 바로 삭제하겠습니다. 또한 공부 목적으로 프로그램을 구현하였음을 알려드립니다.

  1. Favicon of https://tistory.hackerc.com BlogIcon 해커 C 2009.08.13 23:52 신고

    난 언제 이렇게 해보나 . ㅠㅠ .... 아주 기본적인것들 밖에 아직 못하는데 .. !!

    대단하심~!! .. 언제 날 잡아서 .... 미팅? ㅋㅋ .. 좀 배워야 겠어요 ^ㅜ^

대충 이렇게 이루어지지 않을까 하고 통신부분만 짜보았습니다.

여기에 공격 코드만 추가되면 바로 써먹을 수 있을거 같아 소스는 올리지 않아요..

공부목적으로 만들어봤는데 재밌네요 ㅋㅋ


 
실제 공격 시나리오로 보자면 위 그림에 프로그램이 C&C 서버 입니다.

포트를 열어놓고 대기하면 악성봇 공격 프로그램은 그 포트로 접속을 시도 하겠죠.

접속이 성공되면 위와같이 명령을 내릴수 있게끔..

 
악성 봇 공격 프로그램이 서버와 연결을 시도하여 성공한 후 명령을 받아 공격하는 그림인데요.

위에서는 그냥 명령을 제대로 받았을 때 저러한 메시지만 뿌리도록 만들어 주었습니다.

원래는 악성봇에 저 메시지를 뿌리지 않고 C&C서버측에 뿌려줄려고 했으나 머리가 복잡해서 그만뒀습니다 ㅋㅋㅋ

소켓 프로그래밍을 공부하고 계시는 분들이라면 통신 부분만 만들어보시는것도 좋겠네요 ㅎㅎ

저도 공부중이라 ... ㅋㅋㅋㅋ
  1. ddddd 2015.09.10 20:34

    잘보고갑니다

+ Recent posts