일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 프로그래머스
- C++
- 동적계획법
- 코테연습
- 리액트
- sql
- javascript
- 고득점Kit
- LeetCode
- Medium
- react
- Level3
- typescript
- Doitvue.js입문
- dp
- CS
- 백준
- Level1
- 파이썬
- VUE
- OS
- python
- 프로그래밍
- 배열
- 카카오
- Level2
- 리트코드
- 웹프로그래밍
- 자바스크립트
- web
- Today
- Total
[네트워크] 네트워크 보안 (대칭키, 공개키) 본문
네트워크 보안
- Confidentially : 메시지를 교환할 때 해당 내용을 다른 사람이 확인할 수 없어야 함
- authentication: 내가 메시지를 주고 받는 상대방에 대한 검증
- message intergrity: 메시지 내용이 변하지 말아야함
- access and avaiablity
대칭키 = 개인키 암호화 (Symmetric Key, Private key)
암호화와 복호화에 같은 암호키를 사용하는 알고리즘이다.
장점
- 동일한 키를 주고 받기 때문에 매우 빠르다.
단점
- 대칭키 전달 과정에서 해킹 위험에 노출 될 수 있다.
- 사용자의 증가에 따라 관리해야할 키의 수가 상대적으로 많아진다.
공개키 (Public key)
암호와 복호화에 사용되는 암호키를 분리한 알고리즘이다. 자신이 가지고 있는 개인키로만 복호화할 수 있는 공개키를 대중에 공개한다.
- 앨리스는 웹 상에 공개된 밥의 공개키를 이용해 평문을 암호화하여 밥에게 보낸다.
- 밥은 자신의 개인키 (= 비밀키)로 해당 내용을 복호화한 후 확인하고 앨리스의 공개키로 응답을 암호화하여 앨리스에게 보낸다.
- 앨리스는 자신의 개인키로 해당 내용을 복호화해 확인한다.
장점
- 키의 분배가 용이하고 관리해야할 키의 개수가 적다.
단점
- 암호화/복호화 속도가 느리며, 알고리즘이 복잡하고 개인키 암호화 기법보다 파일의 크기가 크다.
대표적으로 RSA 기법이 있다.
RSA
모든 사람이 public key, private key를 가지고 있어서 public key로 암호화 시키면 private key로 복호화할 수 있도록 한다.
어떤 키를 먼저 적용시키던지 똑같은 결과가 나온다.
Digital Signature
사용자를 증명하기 위해 암호화에는 private key를 복호화에는 public key를 사용하는 것을 digital signature라고 하며 메시지 전체를 암호화하는 것이 아니라 해시 값을 사용한다.
- 밥은 앨리스에게 랜덤 번호를 보낸다.
- 앨리스는 해당 번호를 자신의 개인키로 암호화해 밥에게 보낸다.
- 밥은 앨리스의 공개키로 해당 내용을 복호화한다.
- 만약 메시지가 해독된다면 앨리스임을 인증하게 되는 것이다.
공개키는 어떻게 얻을까? (public key cryptography)
공개키에 대한 정보들은 인증 기관의 개인키로 암호화하여 저장되어 있다. 그렇기 때문에 인증 기관의 공개키가 필요한데 이는 브라우저에 기본적으로 들어있다.
SSL(Secure Socket Layer = TLS)
ssl은 tcp connection의 보안을 위한 것이다. 애플리케이션 계층에서 HTTP 메시지가 들어왔을 때 TCP 소켓을 통해서 내려보내면 IP 패킷은 링크 계층에서 여러 디바이스에 의해 확인할 수 있게 될 위험이 있다.
애플리케이션 메시지를 암호화 라이브러리를 거쳐서 TCP 소켓으로 내려가게 하기 위해서 생긴 것이 SSL 계층이다.
HTTPS는 HTTP + SSL 이다.
simple handshake
TCP 연결이 생성된 상태에서 클라이언트는 SSL로 메세지를 보낸다. 서버는 클라이언트에게 자신의 공인 인증서를 넘겨준 다음 인증 과정을 거쳐서 Master key를 교환한다.
대칭키 + 공개키
SSL 탄생의 시초가 된 방식이다. 암호화 통신에 사용할 대칭키를 만들어 사용한다.
- 앨리스는 밥의 공개키로 암호화 통신에 사용할 대칭키를 암호화하고 밥에게 보낸다.
- 밥은 이를 받아서 자신의 비밀키로 복호화한다.
- 밥은 앨리스에게로부터 받아서 해독한 대칭키로 평문을 암호화하여 앨리스에게 보낸다.
- 앨리스는 자신의 대칭키로 암호문을 복호화한다.
- 계속 이 대칭키로 암호화를 통신한다.
'CS > 네트워크' 카테고리의 다른 글
[네트워크] TCP, UDP (0) | 2022.04.18 |
---|---|
[네트워크] OSI 7 계층 (0) | 2022.04.18 |