티스토리 뷰
0. 대칭키 암호화와 비대칭키 암호화
대칭키 암호화 (Symmetric Encryption) | 비대칭키 암호화 (Asymmetric Encryption) | |
암호화 및 복호화 방식 | 동일한 키로 암호화하고 복호화 | 공개키로 암호화하고 비공개키로 복호화 |
키 관리 | - 키 관리가 매우 중요 - 키 유출 시 위험 |
- 공개키는 자유롭게 배포 가능, - 비공개키는 보호 필요 |
연산 속도 | - 빠름 | - 느림 |
보안성 | - 키 유출 시 보안 위험 있음 | - 매우 안전 (공개키는 노출되어도 안전) |
적합한 용도 | - 대량 데이터 암호화 - 빠른 통신 (클라이언트-서버 간) |
- 인증, 개인 정보 보호, - 1: N 통신 (단일 서버와 다수 클라이언트) |
- 비대칭 암호화는 갑을 관계를 내포, 갑(비공개키)과 을(공개키)
=> 데이터 관리의 주체에 따라 구분됨
1) 1 : N = 단일 서버 : 다수 클라이언트
2) 1 = 단일 서버만 사용 가능한 키 : 비공개
3) N = 다수 클라이언트라면 모두 사용 가능한 키 : 공개키
- 대칭키 암호화 장점 : 키가 노출되면 매우 위험 But, 암호화/복호화 연산 속도가 빠르다.
- 연산속도가 빨라 매번 클라이언트와 서버가 요청/응답을 주고받을때 성능/영향을 덜 줌
1. HTTP의 목적
: SSL(Secure Sockets Layer) or TLS(Transport Layer Security) 프로토콜을 통해 HTTP 보안 강화
: 요청을 보내고, 응답을 받는 두 주체(End-to-End)만 HTTP 요청 및 응답을 읽을 수 있게 암호화
- MITM (Man-In-The-Middle) 공격 방지
- MITM 공격 종류
1) 스니핑(Sniffing, 도청): Wireshark 를 통해 여러분의 모든 웹 서핑 패킷 도청 가능
2) 패킹 주입(Packet Injection): DHCP/ARP 로 LAN 내 컴퓨터 인지 후 패킷 대신 받아 조작 주입
=> ARP Spoofing/Poisoning 를 통해 해커 MAC 주소로 LAN 내 컴퓨터 인지
=> Spoofing 위변조 (혹은 아기돼지 삼형제 늑대) ↔ Sniffing 도청 (혹은 가로채기)
3) 세션 하이재킹 공격(Session Hijacking)
4) SSL 스트리핑(SSL Stripping) 등
2. HTTPS 보안 적용 방식
- 대칭키(비공개키) + 비대칭키(공개키) 암호화 방식 사용
- 비대칭키(Public, Private), 대칭키(’세션키’로 부름) - 서버는 클라이언트에게 비대칭키 중 공개키(Public)를 그냥 전달하지 않고 CA 인증기관의 인증 후 전달
- CA : SSL 인증서를 발급하는 기관, 신뢰할 수 있는 기관
- 인증 기관에 의해 인증된 서버인지 = 인증 기관에 의해 암호화된 ‘서버의 공개키’인지
- 피싱 방지 : 클라이언트가 실제로 도메인을 소유하고 있는 올바른 서버와 통신하고 있는지 확인 목적
- CA : SSL 인증서를 발급하는 기관, 신뢰할 수 있는 기관
3. HHTPS (SSL/TLS 핸드세이크)

- 서버는 기본적으로
- WS -> CA : 인증서 서명 요청(CSR: "WS의 public키"+"서버의 정보") 를 인증서 서명 발급 요청 및 일부 발급
- "시그니처" - WB는 기본적으로
- CA -> WB : 서버의 인증서(시그니처: 서버의 공개키, 서버 정보, CA의 서명 )를 저장 및 보관
1) WB -> WS : 평문1 + 지원하는 암호화 방법 (Cipher Suites), TLS 버전 등의 정보 전송
2) WS -> WB : 평문2 + 서버가 사용할 암호화 방식(지원하는 Cipher Suite)을 선택 + 서버 인증서(Server Certificate) 응답
3) WB : 인증서의 유효성 확인 후, 내재 or 인증을 설치한 CA의 public 키를 통해 위의 키 복호화
4) WB: pre-master-key생성(WB에서 생성한 랜덤 값을 서버의 public키를 사용하여 암호화) 및 서버 전달
5) WS: private key를 이용하여 pre-master-key 복호화
6) 공유된 평문 1, 평문2, pre-master-key를 이용하여 Master Key 생성
7) 선택된 암호화 방식과 Master key를 겹쳐 Session key 생성
8) 이를 바탕으로 비공개 키 알고리즘을 사용하여 통신
출처
ASAC
'ASAC > 정리용' 카테고리의 다른 글
[06-01] JavaScript 기본 - 2 변수 선언과 스코프 (0) | 2024.12.30 |
---|---|
[06-01] JavaScript 기본 - 1 함수형 프로그래밍과 순수 함수성 (0) | 2024.12.30 |
[04-02] JS 기반 WB의 취약성 - CSRF와 CORS (0) | 2024.12.20 |
[04-01] Storage, Session (1) | 2024.12.20 |
[04-01] Stateful VS Stateless (0) | 2024.12.20 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- ssh
- asac#asac7기
- Nginx
- useContext
- asac7
- useRef
- acac
- git
- useEffect
- asac7기
- acas#acas7기
- useCallback
- react
- useLayoutEffect
- asac7#asac
- useState
- useMemo
- memo
- ASAC
- useReducer
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
글 보관함