* 암호화, 인증 알고리즘
암호화는 대칭키, 비대칭키로 하고 인증은 해쉬 알고리즘을 이용한다.
→ 암호화 알고리즘 : DES, 3DES, AED(대칭키) rsa(비대칭키) 등이 있다.
→ 해쉬 알고리즘 : SHA, MD5가 있다. (해쉬는 무결성을 검증함, 해쉬값을 보고 데이터가 바뀐 지 확인한다.)
MD5 : 512bit 블럭을 생성 -> 128bit 키를 사용 -> 해쉬값 생성
SHA : 512bit 블럭을 생성 -> 160bit 키를 사용 -> 해쉬값 생성
* 해쉬 동작
데이터를 전송할 때 데이터에 해쉬값을 붙여서 보낸다. 서로 해쉬값을 비교해서 같으면 data 무결성이 보장(데이터가 안 바뀐 지 확인)이 되고 data를 수신하게 된다. 서로 해쉬값을 비교해서 다르면 data 무결성이 보장되지 않기 때문에 data를 버린다.
예를 들어 내가 상대방에게 "오늘 홍대에서 몇 시에 만나자"라고 메시지를 보내면 그거에 맞는 해쉬값을 보낸다. 근데 누가 내 데이터를 뺏어가서 홍대에서 만나자는 말을 신촌에서 만나자 라는 식으로 바꾸면 상대방은 신촌에서 만나자는 메시지를 받았기 때문에 오해가 생긴다. 그래서 상대방 측에서 해쉬값이 바뀐 지 안 바뀐 지 검증을 해서 바뀌었으면 그 data를 드롭시키는 것이다.
해쉬는 암호화할 때 무조건 붙는다. 내가 해쉬 알고리즘을 선택하지 않아도 sha 알고리즘이 자동으로 사용됨.
* 암호화 방식
Symmetnickey(대칭키) : 암호화, 해독 동일한 키를 사용 (DES[56bit], 3DES[56bit*3], AES[128bit])
Asymmetrickey(비대칭키) : 암호화에 쓰이는 키와 복호화에 쓰이는 키가 다름 (RSA)
* 이 키들은 언제 사용될까?
비대칭키는 전자서명(내가 진짜 OOO인지 아닌지를 제 3자가 보증하는 거, 공인인증서), 신분확인, 대칭키를 안전하게 전송하기 위해 사용되고 이 외에는 모두 대칭키가 사용된다.
* 키 교환 방식을 통한 암호화된 통신 (ex. HTTPS)
키 교환 방식을 이해하기 위해 HTTP 프로토콜에 보안을 추가한 HTTPS 동작 방식에 대해서 간단하게 알아보자!
① RSA 방식의 Private key(개인키) 생성
② 서버에서 CSR(인증서 서명 요청서)를 CA로 보낸다.
③ Public key(공개키) 생성한다.
④ Client에게 공개키를 전달한다.
⑤ 공개키를 받은 Client는 아래 목록들을 확인
- issuer(서명자) 확인
- Serial Number 확인
- CN 확인 (여기까진 확인이 안 돼도 신뢰된 웹사이트인지만 판단하지 못하고 HTTP로는 통신이 가능하다.)
- CDP 확인 (CDP 확인이 안 되면 통신이 불가능하다. 인증서에 CDP 정보가 포함되어 있는데 CDP에는 인증서 해지된 곳의 URL이 있음, URL에 해지된 인증서의 시리얼 넘버를 보고 인증서가 그 목록에 있으면 해지되었다고 판단해서 통신이 불가능하다.)
⑥ 키가 확인되면 자신의 대칭키를 만들어서 전달.
⑦ 서버는 클라이언트의 대칭키를 얻어서 서로 암호화된 통신을 한다.
'IT Network System > Network' 카테고리의 다른 글
게이트웨이(Gateway) (0) | 2022.02.18 |
---|---|
Kerberos (0) | 2021.05.20 |
IPsec VPN (0) | 2021.04.28 |
FTP (0) | 2021.02.25 |
공인 IP, 사설 IP, NAT (0) | 2021.02.24 |
댓글