CS 스터디 2주차

HR·2023년 1월 26일
0

SSL, TLS

SSL(Secure Sockets Layer)

TCP/IP 암호화 통신에 사용되는 규약
넷스케이프에서 만듦

TLS(Transport Layer Security)

SSL 3.0 버전부터는 IETF에서 표준으로 정해서 TLS 1.0이 되었다.

대칭키 암호화, 비대칭키 암호화

대칭키(Symmetric Key)

대표적인 예시가 AES
하나의 키로 암호화와 복호화를 모두 하는 방식

비대칭키(Asymmetric Key)

대표적인 예시가 RSA
두 개의 키로 암호화와 복호화.
A로 암호화 -> B로 복호화
B로 암호화 -> A로 복호화

보통 하나는 내가 가지고, 하나는 상대방에게 공개함. 따라서 공개키 방식 암호화라고도 함.

동작 방식

1) 사용자가 웹브라우저로 사이트에 접속
2) 웹 서버가 웹 브라우저에게 인증서 전송 (암호화된 사이트 정보와 공개 키)
3) 웹 브라우저는 공개키를 통해 인증서 복호화
4) 브라우저가 실제 데이터의 암호화에 사용될 대칭 키 생성
5) 2에서 받은 공개 키로 암호화 후 웹 서버에 전송
6) 웹 서버는 개인키를 통해 브라우저에서 받은 대칭키 복호화
7) 받은 대칭키를 통해 다시 데이터를 암호화

IPv4, IPv6

IPv4

컴퓨터의 네트워크에 배정된 이름인 Network ID와 컴퓨터 자체에 할당된 이름인 Host ID로 구분된다.
A-E의 5개 클래스로 구분되며, 뒤로 갈 수록 해당 클래스가 표현할 수 있는 네트워크와 호스트의 수가 많아진다. 현재 인터넷에는 A-C가 사용되고 있다.

IPv6?

컴퓨터의 보급과 IoT기기 등의 등장으로 IPv4 주소가 고갈되기 시작함
이런 주소 고갈 문제를 해결하기 위해 등장
IPv6를 이용하면 NAT와 같은 기술도 불필요

이렇게 통합된 네트워크가 아니라 개별 IP주소를 사용하면 기기마다 각자의 대역폭을 할당해줄 수 있다. 이를 통해

  • 일정 수준 이상의 품질을 요구하는 실시간 서비스(QoS) 품질 충족 가능
  • 인증, 데이터 무결성, 보안 등의 기능을 강화 가능

와 같은 장점을 얻을 수 있다.

비교 (IPv4 vs IPv6)

  • 사용 비트
    32비트 vs 128비트
  • 주소 개수
    2^32 vs 2^128개
  • 표기법
    8비트씩 4부분, 10진수 vs 16비트씩 8부분, 16진수
  • 헤더 크기
    가변 vs 고정

NAT(Network Access Translation)

하나의 공인 IP주소를 통해 여러대의 기기가 접근할 수 있다.
대표적인 예가 집에 하나의 공유기를 설치하고 개통하면, 여러 대의 기기가 접속해 사용하는 것이다. 물론 공유기에 NAT기능이 지원되어야 가능하다.
이런 기능을 통해 IPv4의 부족한 공인 IP를 절약할 수 있다.

NAT 기술은 보안에도 강점이 있다. 외부로 트래픽이 나갈 때 사설 IP가 공인 IP로 변경되어 나가므로, 외부에서는 사설 IP를 알 수 없어 공격하기 어렵다.

사설 IP -> 공인 IP -> 웹 서버

사설 IP에서 패킷에 출발지 정보(사설 IP)와 도착지 정보(웹 서버)를 담는다.
공인 IP를 통과할 때, 게이트웨이에서 사설 IP를 자신의 공인 IP로 변환한다. 변환할 때에, NAT 테이블에 사설 및 공인 IP와 목적지 정보를 저장한다.

웹 서버 -> 공인 IP -> 사설 IP

서버는 응답 패킷에 출발지 정보(웹 서버)와 도착지 정보(사설 IP)를 담는다.
게이트웨이가 패킷을 받으면, NAT 테이블을 참고해 목적지를 사설 IP 주소로 변경해 패킷을 전달한다.

관련 개념

  • 터널링
    통신 양측이 모두 IPv6를 사용하는데, 중간에 IPv4인 지역을 통과할 경우, IPv6 패킷은 IPv4 패킷으로 캡슐화 되었다가, 지역을 벗어날 때 역 캡슐화
  • 헤더 변환
    IPv4가 굉장시 소수만 남았을 경우, IPv4 주소의 헤더를 완전히 변경
  • 이중 스택
    모든 IP가 v6가 될 때까지 v4, v6를 동시에 지원

로컬 스토리지, 세션 스토리지

자바스크립트에서 로컬 스토리지 사용하기

0개의 댓글