You cannot see this page without javascript.

비밀번호를 잊어버리셨나요?
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부

안뇽하세용~ 심심할때마다 익명 게시판에 보안정보를 쓰기로 하였습니다~

읽기 귀찮다면 쭉 내려서 3줄 요약을 보시면 됩니다.

 

HTTP와 HTTPS의 차이를 알려면 우선 HTTP부터 알아 봅시다.

 

HTTP는 HyperText Transfer Protocol 또는  HyperTexT Protocol 의 약자 입니다.

 

이것은 하이퍼텍스트를 빠르게 교환하기 위한 프로토콜(표준통신규약)의 일종 입니다.

 

*하이퍼텍스트=웹에서 사용되는 하이퍼링크와 하이퍼링크를 통해서 이어지는 비선형적인 텍스트가 신개념이라는 의미에서 만들어진 용어

*포트=컴퓨터의 주변 장치와 연결하기 위한 연결로.

 

그러므로 서버와 클라이언트(사용자)의 사이에서 어떻게 메세지를 교환할 지 정해놓은 규칙입니다.

 

사용하는 포트는 80번이고 구조는 요청 과 응답으로 구성되어 있습니다.

 

예시를 들자면 '클라이언트(사용자)가 웹 페이지에서 링크가 걸려있는 텍스트를 클릭(요청)하면 링크를 타고 새로운 페이지로 넘어간다(응답)'.

 

 

그다음은 HTTPS인데요 다른말로는 TLS(Transport Layer Security)라고도 합니다.

 

 

image.png

(일일이 찍기 귀찮아서 가져왔습니다.)

 

(지료 출처: 나무위키)

 

각 웹 브라우저(크롬, 오페라, 엣지, 인터넷 익스플로러, 모질라 파이어폭스)에서 나무위키에 TLS 연결을 한 모습입니다.

 

인터넷에서의 정보를 암호화해서 송수신하는 프로토콜 입니다.

 

넷스케이프 커뮤니케이션스사가 개발한 SSL(Secure Sockets Layer)에서 기반한 기술로, 국제 인터넷 표준화 기구에서 표준으로 인정받은 프로토콜 입니다.

 

-작동방식

 

우선 HTTP는 응답과 요청이 있습니다 예를 들기 위해 3명의 등장인물을 소게합니다.

철수(사용자 또는 클라이언트) 영희(서버) 홍길동(제 3자 또는 해커)

 

우선 HTTP의 상황을 봅시다.

-------------------

철수:영희야! 안녕!(요청)

 

영희:어 철수야 안녕!(응답)

------------------

(여기부터 서로 만난것을 확인하고 대화합니다.)

------------------

철:내일 시험 문제 정답지를 훔쳤어 너에게 줄까?

 

영:오 좋아!

 

홍길동:그거 나도 필요하니 나도 가져갈께

----------------

 

이렇게 서로 대화하던중 정보가 탈취됩니다.

 

이유는 서로 대화하는중에 보호할 수단이 없어서 입니다.

 

--------------

반면 HTTPS는

 

--------------

철:영희야 안녕!(ClientHello)

 

영:철수야 안녕!(ServerHello)

 

영: 잠깐! 우리 비밀 대화하자! 이 주소로 나에게 연락해!-종이와 자물쇠를 건내줌(Certificate) 확인해 줄레?(ServerHelloDone)

 

철:(종이를 확인하고 주소가 유효한지 확인함)알있어! 여기로 연락할게

 

철:우리 이대로는 누가 들을지도 모르니 종이에 마스터 키를 적고 나의 자물쇠와 같이 자물쇠로 잠궈서 보낼깨!(RSA 암호화기법은 나중에 후술)(ClientKeyExchange)

 

영:확인했어! 이제 이 키를 니가준 자물쇠로 잠궈서 보낼께!

 

철:확인했어 잘들려?(ChangeCipherSpec)

 

영:응! 잘들려!(ChangeCipherSpec)

 

철:그럼 우리 비밀대화 할까?(Finished)

 

영:그래!(Finished)

 

홍길동:저녀석들 뭘 하는거지?

--------------

홍길동이 철수와 영희가 하는 대화를 들을수 없게 되엇습니다.

 

이 과정을 핸드쉐이킹 이라고 합니다.

 

우선 첫번째. 먼저 클라이언트에서 서버에 ClientHello 메시지를 보냅니다.

 

여기에는 클라이언트에서 가능한 TLS 버전, 세션 식별자, 암호 설정 등의 정보가 포함됩니다.

 

-

 

그리고 두번째. 이 메세지를 받은 서버는 ServerHello 로 답신합니다.

 

여기에는 ClientHello 메시지의 정보 중 서버에서 사용하기로 선택한 TLS 버전, 세션 식별자, 암호 설정 등의 정보가 포함 됩니다.

 

-

 

세번째. 서버가 클라이언트에 Certificate 메시지를 보냅니다.

 

여기에는 서버의 인증서가 들어간다. 이 인증서는 별도의 인증 기관에서 발급받은 것이며, 서버가 신뢰할 수 있는 자임을 인증한다. 전송이 끝나면 ServerHelloDone 메시지를 보내 끝났음을 알립니다.

 

-

 

네번째. 클라이언트는 서버에서 받은 인증서를 검증합니다.

 

인증서의 유효 기간이 만료되지 않았는지, 그 인증서가 해당 서버에게 발급된 인증서가 맞는지 등을 확인한다.

 

인증서를 신뢰할 수 있다고 판단하였다면 다음 단계로 넘어간다.

(간혹 방인싸가 접속되지 않는 이유가 여기서 막히기 때문입니다.)

 

-

 

다섯번째. 클라이언트는 임의의 pre-master secret을 생성한 뒤, 서버가 보낸 인증서에 포함된 공개 키를 사용해 암호화를 합니다.

 

이렇게 암호화된 pre-master secret을 ClientKeyExchange 메시지에 포함시켜 서버에 전송합니다.

 

-

 

여섯번째. 서버는 전송받은 정보를 복호화하여 pre-master secret을 알아낸 뒤, 이 정보를 사용해 master secret을 생성합니다,

 

그 뒤 master secret에서 세션 키를 생성해내며, 이 세션 키는 앞으로 서버와 클라이언트 간의 통신을 암호화하는데 사용할 것입니다.

 

물론 클라이언트 역시 자신이 만들어낸 pre-master secret을 알고 있으므로, 같은 과정을 거쳐 세션 키를 스스로 만들 수 있습니다.

 

-

 

7.이제 서버와 클라이언트는 각자 동일한 세션 키를 가지고 있으며, 이를 사용해 대칭 키 암호를 사용하는 통신을 할 수 있다. 따라서 우선 서로에게 ChangeCipherSpec 메시지를 보내 앞으로의 모든 통신 내용은 세션 키를 사용해 암호화해 보낼 것을 알려준 뒤, Finished 메시지를 보내 각자의 핸드셰이킹 과정이 끝났음을 알린다.

 

-

 

8. 이제 서버와 클라이언트 간에 보안 통신이 구성됩니다.

 

 

쉽게 요약해서, 먼저 서로가 어떤 TLS 버전을 사용 가능한지를 확인하고, 인증서를 사용해 서로를 믿을 수 있는지 확인한 뒤, 서로간의 통신에 쓸 암호를 교환하는 것입니다.

 

그 다음부터는 서로 교환한 암호를 사용해 제3자가 도청할 수 없는 암호화된 통신을 합니다.

 

대신 이렇게 복잡하다보니 일반HTTP에 비해서 조금 느려지고 데이터 통신량도 매우 많아집니다.

(사이트에서 하나라도 HTTPS로 암호화 하지 않으면 보안경고를 뿜어냄 최신 웹 브라우저는 로드하지 않기도함.)

 

3줄 요약

 

HTTP

1.빠르다

2.대신 보호되어있지 않음

3.그레서 제3자가 정보를 탈취함

 

HTTPS

1.느리다

2.대신 안전하게 보호되어있음

3.제3자가 정보를 가져가도 내용물을 못본다.

 

  • ?
    anonymous 2018.08.06 22:27
    3줄 요약 추
  • ?
    anonymous 2018.08.07 23:15
    그러므로 방싸는 전 페이지 https를 사용하도록 안전하게 설계되어 있습니다. :)
    정성추!
  • ?
    anonymous 2018.08.15 18:05
    이런 분야 1도 모르는데 쉽게 설명해주셨네요 정성추+3줄요약추

List of Articles
번호 제목 글쓴이 날짜 조회 수
148 이거 방싸포인트 5 anonymous 2018.10.25 98
147 아프리카 우가우가3 1 file anonymous 2018.10.21 90
146 아 너무 힘들다 anonymous 2018.09.06 122
145 CG같은 일본 오사카 피해상황 gif anonymous 2018.09.05 216
144 고이지 못한 타린이(타이탄폴 하는 어린이 이라는뜻 ㅎ) file anonymous 2018.08.27 73
143 오버워치 팬페스티벌 미스터리 1 file anonymous 2018.08.22 128
142 25년인생 첫 자취를 시작합니다 ㄷㄷ 8 anonymous 2018.08.19 162
141 (보안정보) 암호학 4 file anonymous 2018.08.08 136
140 18시 칼퇴근 개꿀!!ㅎㅎㅎ anonymous 2018.08.07 60
» (보안 정보) 심심할때마다 쓰는 보안 정보 HTTP와 HTTPS의 차이(스압) 3 file anonymous 2018.08.06 66
138 사이트에 보안 연결할 수 없음이 떴다 말았다 하네요 3 file anonymous 2018.08.04 103
137 다이나믹 마이크 잡음나는거 질문좀 하겠습니다.전문가 구해요.답좀 ;ㅅ; anonymous 2018.07.28 51
136 플스패드를삿는데 뭐지 1 anonymous 2018.07.28 71
135 드디어ㅓㅓㅓㅓ 2 file anonymous 2018.07.28 140
134 저만 문제인지 모르는데 파이어폭스에서 보안 연결이 안됩니다. 4 file anonymous 2018.07.19 72
133 노맨즈스카이 멀티플레이 공개 트레일러 anonymous 2018.07.19 63
132 직장인 분들은 보통 출퇴근 시간 어느정도 걸리시나요? 6 anonymous 2018.07.18 70
131 요즘 할게임이 없어서 오랜만에 FM하고있는데 2 anonymous 2018.07.16 63
130 옵치=망겜 3 anonymous 2018.07.16 100
129 7월 15일 레식 일기 1 anonymous 2018.07.15 52
Board Pagination Prev 1 2 3 4 5 6 7 8 Next
/ 8