암호화

암호화의 종류는 크게 단방향 암호화 , 양방향 암호화 으로 나눌 수 있다.

단방향

대표적인 해싱 기법으로 MD5, SHA 가 있다. 해싱은 기본적으로 복호화가 불가능하다.

MD5는 파일의 일치 여부 정도로만 사용하며 보안에 문제가 많아 사용을 권장하지 않음.

SHA는 관련 암호 알고리즘의 묶음인데 SSL, TLS, SSH 등 많은 프로토콜 & 프로그램에서 사용됨. 대표적인 SHA로 SHA256, SHA512가 있음. 요즘엔 SHA512같이 해시값이 큰 알고리즘을 사용하라고 함.

양방향

암호화와 복호화가 모두 가능한 기법이다. 대칭키, 비대칭키 알고리즘으로 나뉜다.

대칭키 알고리즘의 경우 암호화, 복호화를 할 때 사용되는 키가 동일하다. 사용하기 편할 수 있지만 대칭키(Secret Key)를 탈취당하면 의미가 없다. 대표적으로 AES가 있다.

비대칭키 알고리즘은 public key와 secret key 를 따로 사용한다. public key는 누구에게나 노출될 수 있다. 송신자는 public key를 통해 암호화를 하고 수신자는 secret key를 통해 복호화를 해서 데이터를 받는 방식이다.

대표적으로 RSA가 있다. EC2 SSH에 사용되는 PEM파일도 RSA 기법의 secret key라고 보면 된다.

SSH KEY가 동작하는 방식 : https://opentutorials.org/module/432/3742

JWT

JSON WEB TOKEN의 약자로 header, payload, signature가 담긴다. JWT는 처음 생성될 때 Secret Key를 이용해 유효기간과 함께 암호화해서 사용한다. Stateless하고 세션 방식에 비해 확장성이 뛰어나다는 장점이 있음.

내 블로그 : https://tansfil.tistory.com/58

OAUTH2