처음 만나는 클라우드 보안

암호화 핵심정리 본문

정보보안

암호화 핵심정리

영민하게 2022. 5. 3. 09:57
반응형

암호화 포인트 정리

: 대칭성(기밀성), 공개키(인증, 기밀성), 해쉬함수(무결성)

 

대칭키(세션키)

장점: 속도가 빠름 --> 데이터를 암호화/복호화 하는데 유리하다.

단점: 키 전달의 문제, 키 개수의 문제 존재 N(N-1)/2개

표준대칭키: DES, 3DES, AES

국내대칭키: SEED, ARIA, HIGHT, LEA

유명대칭키: RC6, Blowfish 등

대칭키의 원리: 치환, 순열(전치), 매트릭스 등 => AES는 SPN(치환, 순열 네트워크) 구조를 갖는다.

 

공개키

장점: 인증, 기밀성, 키 전달 및 개수의 문제 해결 ex) 개인키 공개키 한쌍씩 가짐->N명의 사용자, 2N개 필요

단점: 속도가 대칭키에 비해서 약 100~1000배 느리다.

데이터는 주로 대칭키로 암호화, 대칭키를 암호화 할때는 공개키를 사용한다.

Diffiee-Hellman: 세션키를 교환하지 않고, 자신의 개인키와 상대방의 공개키로 세션키를 생성한다. (취약점: MITM)

RSA: 양방향 암호화 (개인키 암호화는 공개키로 복호화 한다.)

ECC(Elliptic Curve Cryptography): 짧은 키 길이로 암호화 지원, 모바일과 같은 Hardware에서 동작한다.

    참고) ECC160bit와 RSA1024bit와 비슷한 수준의 암호화를 제공한다., (ex. Youtube 공개키 인증서 ECC 활용)

 

Hash Function

특징: 고정길이 출력, 역연산불가, 충돌방지

MD5, SHA1: 일부 크래킹이 가능하여 인증되지 않는 암호화 방식임, 단 SHA-2(256bit): 공동인증서, Bitcoin에 사용된다.

무결성(Integrity): 내용이 바뀌지 않았다는 것을 증명, 원문이 바뀌면 해쉬값이 바뀐다. (해쉬값만 보고도 확인 가능)

 

전자서명

원문의 해쉬값에 송신자의 개인키로 서명한다. => 무결성, 인증, 부인방지 (기밀성은 제공하지 않는다.)

검증: 송신자의 공개키로 서명을 복호화하면 해쉬값이 나온다. 원문의 해쉬값과 계산해서 비교하면 된다.

 

인증서

공개키의 해쉬값에 인증기관의 개인키로 서명한다.

공개키의 주인을 확인해주는 효과가 있다. 공개키를 믿고 사용할 수 있다.

 

PKI(Public Key Infrastructure)

최상위 인증기관(Root CA): 인증기관을 인증한다.

인증기관(CA) - 인증서를 발급한다.

등록기관(RA) - 인증기관의 인증서 발급을 위해서 사용자 검증, 서류 접수한다.

 

SSL (Secure Socket Layer) 

Netscape사에서 웹서버와 웹브라우저간 암호화를 위해서 만듬, 하지만 취약점이 너무 많았음

표준화하면서 이름을 TLS(Transport Layer Security)로 바꿈

*Socket: IP주소 + Port번호 --> 비표준용어

웹서버의 인증서(공개키+기타정보)를 클라이언트에 제공(자물통 모양이보임, TCP443포트 사용)

웹브라우저는 세션키를 생성해서 웹서버의 공개키로 암호화해서 제공한다.

양쪽이 모두 세션키를 가지게 된다. => 데이터를 모두 세션키로 암호화 하여 양방향 기밀성 가능

 


SSL/TLS

출처-https://www.lesstif.com/ws/ssl-tls-https-43843962.html

Application계층과 Transport계층 사이에서 SSL/TLS 암복호화가 일어난다. 

 

인터넷 익스플로러에서 확인할 수 있는 버전별 TLS

 

SSL Handshake를 통해 서로의 암호화키를 교환을 마친후, 데이터는 암호화 하며 통신한다.

서버와 클라이언트 간의 암호화 커뮤니케이션 (출처-https://blogs.sap.com/2021/09/08/demystifying-ssl-tls/)

반응형
Comments