네트워크 보안

천진우·2022년 1월 24일
0
  • 대칭키 & 비대칭키
  • http & https
  • TLS/SSL handshake

1. 대칭키 & 비대칭키

1. 대칭키

동일한 키를 사용하여 암호화와 복호화

ex)

대칭키(secret key) k = 01011001

전송메시지(m = 10110011) XOR 비밀키(k = 01011001) => 암호화된 메세지 (c = 11101010)

암호화된 메세지(c = 11101010) XOR 비밀키(k = 01011001) => 전송메세지(m)

이러한 방법을 통해, 중간에 해커들은 암호화 된 메세지(c=11101010)를 가로챈다고 한들, 전송메세지(m=10110011)를 유추할 수 없게 된다.

예를 들어, XOR 계산을 통해 암호화 된 메세지(c)의 첫 이진수가 0이라면, 전송메세지(m)의 이진수와 비밀키(k)의 이진수가 같다는 뜻이지만, 그 이진수가 0인지 1인지는 알 수 없다.

대칭키 방식 알고리즘 종류

AES, DES, SEED, ARIA 등

AES 알고리즘 : https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=zzbksk&logNo=221004912621

2. 비대칭키

비대칭키 방식 알고리즘 종류

RSA, DSA, ECC 등

RSA 원리

참고 : https://ko.wikipedia.org/wiki/RSA_%EC%95%94%ED%98%B8

m=(me)dmodNm = (m^{e})^{d}\mod {N}

N, e를 알아도 d를 찾기 매우 힘들다
공개키 : <N, e>
비밀키 : <N, d>

c=memodNc=m^{e}\mod {N}
m=cdmodNm=c^{d}\mod {N}

대칭키 vs 비대칭키

대칭키

<장점>
빠른 속도(대용량 데이터 암호화에 적합)

<단점>
키 교환에 따른 보안상 취약점 발생
=> 대칭키와 비대칭키 함께 사용(비대칭키를 대칭키 교환에 사용)
사람이 많아지면 관리해야 할 키 많아진다

비대칭키

<장점>
키 교환/분배 필요없다
인증/부인방지 기능

<단점>
비교적 느린 속도

비대칭키 - 인증/부인방지

사용자 a : a의 개인키 ---> 서버 : 사용자의 공개키
사용자 a의 개인키는 a만 들고있기 때문에 서버에서는 내용을 a가 보낸 것이라는 것을 알 수 있다.

2. diffie-hellman algorithm

  • 세션키(대칭키)를 직접적으로 전달하지 않고 대칭키를 만들 수 있다.

취약점 - Man In The Middle Attack

3. TLS & SSL & HTTPS

1. SSL(Secure Sockets Layer)

: 웹사이트와 브라우저(혹은 두 서버) 사이에 전송된 데이터를 암호화하여 인터넷 연결 보안을 유지하는 기술

2. TLS(Transport Layer Security)

: 더 강력한 버전의 SSL

3. HTTPS

: SSL/TLS를 통해 암호화한 HTTP 프로토콜의 보안 버전

4. 인증서

  • 클라이언트가 접속한 서버가 신뢰할 수 있는 서버임을 알려준다
  • 서버의 공개키를 클라이언트에 전달
    인증서를 발행하는 기업들 : CA(Certificate authority) 혹은 Root Certificate

ex) 해커가 사용자가 사용하는 은행 서버와 똑같이 생긴 서버를 만들어서 개인정보 탈취
-> 인증서를 통해 방지 가능

5. SSL/TLS handshake

0개의 댓글