최근 AWS의 Hacking과 보안 관련 스터디를 하고 있다. 나는 인프라를 안전하게 보안하는 것이야 기본적으로 권장하는 Base를 지키는게 제일 중요하다 생각한다. 참고로 관련된 정보를 다루는 곳이라면 아래의 사이트를 참조하면 된다.
위 정보 말고도 다양한 정보들이 있으며 Control Tower에 있는 각 보안 감사 Control을 통해 감사가 가능하다. 그러니 보다 딥하게 들어가서 과거 DRM회사에서 있던 시절 살짝 맛본 암호학에 대해 다시 한번 훑어 보려한다.(물론 찍먹이다. 암호학은 석박사 분들이 하는 일이니...)
기본적으로 암호학이란 제 3자의 방해 행위로부터 프로토콜을 방어하는것으로 만들어 졌다. 프로토콜이라면 이미 모두가 알고 있을것이다. 한명 이상의 사람이 어떠한 목적을 가지고 따르는 단계를 이야기 하는데 그렇다면 이런 것을 어떻게 막을수 있을까? 간단하다. 전달되는 정보를 제 3자가 못 읽게 하면 된다. 따라서, 암호화란 기밀성(Confidentiality)과 무결성(Integrity), 가용성(Availability), 부인봉쇄(Non-repudiation), 인증(Authentication), 인가(Authorization) 등의 목적과 역할을 한다.
그렇다면 위의 역할과 목적을 위한 방식을 간단하게 정리해 보겠다. 대표적 으로 두가지 방식의 암호화 방식이 있다.
- 대칭 암호화
- 비대칭 암호화
- 단방향 암호화 - 간단하게 한번 암호화 하면 풀수 없다
대칭암호화(Symmetric Encryption or Cipher)
아마 대부분 알고 있을 것이다. Encrypt, Decrypt를 하기위한 특정 키가 있으며 해당 키를 통해 우리가 알고 있는 알고리즘을 통해 암호화 한다. 따라서, 해당 키를 알고 있지 못하다면 중간에 데이터를 가로체도 데이터를 확인할 수 없다. 대표적으로 AES 알고리즘이 있다.
비대칭 암호화(Asymmetric Cryptography or Public Key Cryptography)
대칭 암호화를 사용한다면 하나의 키를 통해 암복호화가 이루어 지기 때문에 어떤 프로토콜이라도 한번씩은 해당 키를 교환하는 과정이 필요하다. 현 시대의 웹 서비스 세상에서 이러한 방식은 매우 비 효율적일 것이다. 따라서 서로 다른 키를 사용하여 데이터를 암복호화 하여 데이터를 전달 하거나 서로 다른 제 3의 제공자로부터 다른 키를 받아 데이터를 전달하기도 한다. (우리가 알고 있는 PKI 암호화 방식이 대표적이다)
자 그렇다면 키는 하나보다 둘이 낫고 비대칭 암호화를 많이 쓰는데 키 교환을 어떻게 해야할까? 대칭 암호화는 한번은 서로 만나야 한다. 비대칭 암호화라면 공개키를 누군가에게 획득하거나 받아야 한다. 참고로 이런 키 교환 알고리즘은 아주아주 오래전 1976년에 DH(디피-헬먼) 키 교환 방식이 생겼다. 물론 이 방식이 100% 안전하진 않다.
공개키 조차도 유출이 된다면 문제가 생기는 것이다. 따라서 RSA 알고리즘이 개선되어 개발되었다. RSA 알고리즘에서는 디지털 서명 체계라는 개념이 추가 되었다.
좀더 자세한 내용은 역시 위키피디아를 찾아보자
https://ko.wikipedia.org/wiki/RSA_%EC%95%94%ED%98%B8
이번 글에선 암호화에 대한 아주 기본적인 대칭, 비대칭, 단방향 에 대해 알아 보았다. 특히 대칭과 비대칭 암호화 방식에 대해서 살짝 양념은 찍어 먹어 본것 같다. 다음 챕터는 단방향 암호화에서 사용하는 해시 함수를 알아보겠다.
이 책 공부중입니댜. https://product.kyobobook.co.kr/detail/S000200629765
'Server Infra > Security' 카테고리의 다른 글
보안 스터디 - 비대칭/하이브리드 암호화 (5/?) (0) | 2023.09.10 |
---|---|
보안 스터디 - 인증 암호화 (4/?) (0) | 2023.09.10 |
보안 스터디 - 메시지 인증 코드 (3/?) (0) | 2023.09.10 |
보안 스터디 - 해시 함수 (2/?) (0) | 2023.09.03 |
S3 Block all public access 상태에서 Object를 접근 해보자 (0) | 2023.08.27 |