'Interesting'에 해당되는 글 2건

  1. 2021.01.25 SSL 원리
  2. 2013.11.03 Java, Objective C, C# 언어적 차이점 정리 2
Interesting2021. 1. 25. 18:00

우리가 https로 서비스를 제공하는 사이트에 접속할때의 데이터 흐름을 정리해 보겠다.

 

https로 서비스를 제공하기 위해서는 먼저 인증서를 발급받아야 한다. 

이는 인증기관에 등록을 요청하여 발급이 가능하며 매년 재발급시마다 비용을 지불해야 한다.

발급받은 인증서는 웹서버에 설치되어 브라우저에서 접속시마다 일련의 인증과정을 거칠때 사용된다.

 

이 과정 전체를 나타낸 시쿼스다이어그램이다.

 

1. 인증기관(CA)에 인증서 발급요청을 한다.

2. 인증기관은 검토를 거친 후 인증서에 CA공개키와 사이트정보를 포함한 후 CA개인키로 암호화한다.

3. 암호화된 인증서가 발급이된다.

4. C공개키는 브라우저에 제공된다.

 

여기까지가 인증서 발급의 단계이다. 이어서 브라우저에서 접속시의 시나리오는 다음과 같다.

 

5. 브라우저에서 접속을 시도한다.

6. 웹서버는 사이트 인증서를 제공한다.

7. 브라우저는 사이트인증서를 CA공개키로 복호화한다. 복호화하면 사이트공개키를 얻을 수 있다.

8. 브라우저는 대칭키를 생성한다.

9. 브라우저는 사이트공개키로 대칭키를 암호화한다.

10. 웹서버는 암호화된 대칭키를 사이트개인키로 복호화한다.

11. 웹서버는 복호화된 대칭키로 요청받은 웹사이트 리소스들을 암호화하여 응답한다.

12. 브라우저는 암호화된 리소스들을 대칭키로 복호화하여 렌더링한다.

 

6과 7과정에서 웹서버에서 제공한 인증서를 브라우저에서 CA공개키로 복호화 시 복호화가 되고 복호화된 정보가 현재 접속한 사이트 정보와 동일하면 이는 허가된 접근으로 판정이 나게되며 

이 후 통신구간에는 대칭키를 서로 교환하여 통신함으로써 통신시 오버로드를 줄이는 방식으로 프로세스가 진행된다.

 

 

 

 

 

 

 

Posted by 삼스

세가지 언어가 최근에 화두가 되고 있는 언어이며 주요 플랫폼의 개발언어이다.

자바개발자가 ObjectiveC를 배울때 어렵고 힘들어하는 부분이 있으며 역으로 ObjectiveC개발자가 자바를 배울때 어려와 하는 부분들이 있다. C#을 포함하여 모두 객체지향 언어로 일맥상통하는 부분이 있기 때문에 이런 부분들에 대해 정리하여 서로 다른 플랫폼개발자가 다른 언어를 배우는데 있어서 좀더 쉽게 배울수 있는 자료를 작성하려고 한다.


Posted by 삼스