Cryptographic Failures

오서영·2022년 4월 13일
0
post-thumbnail

🏷️Cryptographic Failures가 발생할 수 있는 경우들(암호화가 필요한 경우)

1. 데이터 저장 과정

파일, 데이터베이스, 메모리 등에 중요한 데이터를 저장할 때 암호화가 필요하다.

2. 데이터 전송 과정

인터넷과 같은 통신 채널로 중요한 정보를 보낼 때 암호화가 필요하다.

🏷️데이터 저장 과정

데이터 저장 과정에서 신경 써야 하는 것이 세 가지가 있다.

1. 암호화해야 한다

중요한 정보를 지키려고 할 때, 정보가 유출되더라도 공격자가 이를 읽지 못하게 하려면 암호화해야 한다.

2. 암호화 알고리즘이 안전해야 한다

아무나 못 들어오게 현관에 자물쇠를 설치했는데, 자물쇠가 조금만 건드렸더니 금방 망가진다면 무용지물일 것이다. 마찬가지로 암호화 알고리즘도 안전한 알고리즘이어야 한다.

3. 사용하는 암호화 알고리즘에 적당한 키 길이를 지켜야 한다

길이가 짧을수록 보안성이 낮은 암호가 될 것이다.

🏷️데이터 전송 과정

인터넷과 같은 통신 채널로 민감한 정보를 보낼 때, SSL/TLS 라는 프로토콜을 이용해 기밀성을 지킬 수 있다.

SSL/TLS란

통신 채널을 통해 주민등록번호와 같은 민감한 정보를 서버에게 보내야 한다고 생각해보자. 그러면 중간에 공격자가 이 정보를 가로채거나 엿보지 않게 하고 싶을 것이다. 그래서 해당 정보를 암호화해서 전송하는 방법을 고안해냈고, 대칭키(비밀키) 를 이용해 수신자와 송신자만 데이터를 볼 수 있도록 하는 기술이 바로 SSL/TLS라는 보안용 프로토콜이다.

SSL/TLS의 과정 - SSL Handshake

클라이언트가 서버에게 중요한 정보를 보내고자 한다. 이때 둘이 정해야 하는 것을 생각해보자. 클라이언트는 어떤 암호화 알고리즘을 사용할 수 있는지, 그중에서 무슨 알고리즘을 선택하는 것이 좋을지, 그리고 그 알고리즘을 수행하기 위해 필요한 공개키나 대칭키(비밀키) 등이 무엇인지 등이 논의되어야 할 것이다. 이를 수행하는 것이 바로 SSL Handshake 이다.

참고로 그 구체적인 과정은 해당 사이트에 자세히 설명되어 있다.

대표적인 SSL/TLS의 예시로 HTTPS의 사용이 있다.

profile
개발과 보안에 관심 있는 대학생입니다😎

0개의 댓글