MD5

이정훈·2024년 7월 1일
0

웹 보안

목록 보기
2/11

MD5란?

MD5는 해싱 알고리즘으로 단방향 암호화에 쓰입니다.
특정 길이의 입력을 받아 고정된 길이의 digset을 반환합니다.
이 disget을 통해 본문 메세지를 인증할 수 있습니다.

원래 MD5는 암호화를 위해 사용되어 왔지만 현재에 와서는 MD5의 취약성 떄문에 보안이 필요해 암호화를 적용하는 영역에서는 사용하지 않습니다.
현재에는 무결성 검사를 하는데 MD5가 사용되고 있습니다.

MD5는 어떻게 작동하는가?

MD5는 512비트 길이의 문자열 데이터를 가지고 작업합니다.
이를 32비트로 이루어진 16부분으로 나누고 처리하며 결과적으로 128비트 길이의 digset을 반환합니다.

아래는 MD5를 사용한 해싱을 그림으로 표현한 것입니다.

MD5는 왜 현재에 와서 암호화에 사용되지 않는가?

  1. Brute Force 공격에 취약하다.
    Brute Force공격이란 일일히 하나하나 값을 대입해서 결과값과 일치하는지 확인하는 고전적인 방법입니다.
    MD5가 과거에는 일일히 대입하여 결과값과 일치하는 대입값을 찾는것이 힘들었지만 컴퓨터가 발전하며 계산 속도가 빨라져 현재에 와서는 매우 빠르게 찾는것이 가능해져 Brute Force 공격에 취약해졌습니다.

  2. MD5의 사전 테이블이 크다.
    여기서 말하는 사전 테이블이란 과거의 특정 값에 대한 MD5의 결과를 키 값- 필드 값 형태로 매핑한 것을 저장한 테이블입니다.
    약 20년 전부터 MD5가 사용되었기에 현재에 와서는 매우 많은 값에 대한 MD5 결과값이 매핑되어 있는 사전이 있어 이러한 사전을 이용해 결과값에 대한 입력값을 찾는 것이 쉬워졌습니다.

  3. MD5는 충돌의 위험이 존재한다.
    해싱에서 충돌이란 서로 다른 입력값이 같은 결과값을 만들어 같은 공간에 저장되어야 해서 생기는 문제입니다.
    다른 비밀번호를 입력해도 MD5의 결과값이 같다면 인증된 것으로 처리되기 때문에 이는 매우 위험한 것입니다.

MD5에 대한 해결책이 무엇이 존재하는가?

  1. Salt를 이용한다.
    Salt는 암호화할 문자열에 추가적으로 특정 문자열을 넣는 등의 행위를 해주는 것입니다.

  2. 긴 비밀번호를 사용한다.

  3. 다른 암호화 알고리즘을 이용한다.
    CRC나 SAH 시리즈 암호화 방식을 사용하는 것입니다.

profile
기록으로 흔적을 남깁니다.

0개의 댓글

관련 채용 정보