꼬물꼬물

Day2 질문 본문

코딩/CS

Day2 질문

멩주 2022. 4. 25. 01:30

1. HTTP란?

hypertext transfer protocol로 웹 상에서 정보를 주고 받는 통신 규약이다.

TCP/IP 위에서 작동하며 기본 포트는 80이다.

http는 상태를 가지고 있지 않는 stateless 프로토콜이며 Method, Path, version, header, body로 구성된다.

http는 정보를 텍스트로 주고 받기 때문에 네트워크에서 전송 신호를 인터셉트하는 경우 데이터 유출이 발생할 수 있어 이러한 보안 취약점 해결을 위해 Secure Socket이 추가된 https를 사용한다.

 

2. HTTPS란?

hypertext transfer protocol over Secure Socket Layer으로 http에 보안이 강화된 버전이다.

기본 포트로 443를 사용하고 SSL이나 TLS 프로토콜을 사용해 세션 데이터를 암호화 한다.

 

3. SSL이란?

Secure Socket Layer으로 데이터를 안전하게 전송하기 위한 인터넷 암호화 통신 프로토콜이다.

 

4. TLS란?

Transport Layer Security로 SSL을 표준화한 것.

 

5. 암호화 메커니즘을 통해 얻는 보안 기능성 3개

첫째로 기밀성(Confidentiality). 데이터를 도청해도 알 수 없게 암호화 한다. 대칭 알고리즘을 통해 암복호화 한다.

둘째, 무결설(Integrity). 정보가 중간에 변질되지 않도록 보장한다. 클라이언트와 서버가 전자 서명을 통해 통신을 맺어 신뢰성을 확보한다.

셋째, 인증(Authentification). 응답자가 안전한 응답자인지 인증서 제도를 통해 확인한다.

 

6. 공개키(비대칭키) 암호화와 대칭키 암호화 기법을 설명해 주세요

비대칭 키 기법은 공개키로 데이터를 암호화하고 개인키로 복호화한다. 비용이 크고 절차가 까다로워서 서로의 신원 확인이나 대칭키를 공유하는 용도로 사용된다.

대칭키 기법은 암호화, 복호화에 같은 키를 사용한다. 비대칭키보다 빠르지만 상대방이 안전한지 확인할 수 없다.

 

7. https의 연결 흐름

  1. 클라이언트가 서버로 최초 연결 시도
  2. 서버는 공개키를 브라우저에게 넘김
  3. 브라우저는 인증서의 유효성을 검사하고 세션키 발급
  4. 브라우저는 세션키를 보관하며 추가로 서버의 공개키로 세션키를 암호화해 서버로 전송
  5. 서버는 개인키로 암호화된 세션키를 복호화하여 세션키를 얻음
  6. 클라이언트와 서버는 동일한 세션키를 공유하므로 데이터를 전달할 때 세션키로 암호화/복호화를 진행

 

 

참고:

[네트워크](https://juicyjerry.tistory.com/196)

[CS면접질문정리](https://velog.io/@dbsrud11/CS-%EB%A9%B4%EC%A0%91-%EC%A7%88%EB%AC%B8-%EC%A0%95%EB%A6%AC)

'코딩 > CS' 카테고리의 다른 글

CPU 작동 원리  (0) 2022.09.20
JDBC, SQL Mapper, ORM  (0) 2022.09.05
HTTP/HTTPS  (0) 2022.04.25
Day01 질문  (0) 2022.04.17
TCP 3 Way-Handshake  (0) 2022.04.17