왼쪽에는 주황색으로 빛나는 원이 있고 오른쪽에는 청록색 물결 모양이 있는 추상적인 배경이며, 두 개의 흰색 사각형 모서리 괄호가 겹쳐져 있습니다.

해싱이란 무엇인가요?

해싱은 수학적 알고리즘을 사용하여 데이터를 해시, 해시 값 또는 다이제스트라고 하는 고정 길이 값으로 변환하는 프로세스입니다. 사이버 보안 분야 에서 해싱은 데이터 무결성 검증, 비밀번호 보호, 파일 식별, 정보 변경 여부 감지 등에 일반적으로 사용됩니다.

암호화와 달리 암호화 해싱은 단방향으로 설계되었습니다. 원본 데이터는 해시 값만으로는 실질적으로 복구할 수 없어야 합니다.

원래 입력값에 아주 작은 변화만 있어도 해시값이 크게 달라지기 때문에 해싱은 파일, 메시지, 암호 또는 기타 정보가 변경되었는지 여부를 판단하는 데 유용합니다.

핵심 요약

  • 해싱은 데이터를 해시 또는 다이제스트라는 고정 길이 값으로 변환하는 암호화 프로세스로서 조직이 데이터 무결성을 확인하고, 암호를 보호하고, 잠재적 보안 위협을 식별하는 데 도움이 돼요.
  • 해싱과 암호화는 서로 다른 목적을 가지고 있습니다. 암호화 해싱은 단방향으로 설계되었지만, 암호화는 권한이 있는 사용자가 적절한 복호화 키를 사용하여 원래 정보를 복구할 수 있도록 합니다.
  • 일반적인 해싱 알고리즘에는 SHA-256, SHA-3, MD5 및 SHA-1이 있습니다. SHA-256 같은 최신 알고리즘은 더 강력한 암호화 보안을 제공하는 반면 MD5와 SHA-1 같은 구형 알고리즘은 더 이상 많은 보안 응용 프로그램에 권장되지 않아요.
  • 해싱만으로는 모든 사이버 공격을 탐지하거나 예방할 수 없습니다. 조직은 해싱과 위협 탐지, 네트워크 가시성, 침해 억제를 결합하여 의심스러운 활동을 식별하고 측면 이동을 제한하며 보안 침해의 영향을 줄여야 해요.

해싱은 어떻게 작동하나요?

해시 함수는 입력을 받아 수학적 알고리즘을 통해 처리하여 고정 길이의 출력을 생성합니다.

기본적인 과정은 다음과 같습니다.

입력 → 해시 함수 → 해시 값

입력값은 비밀번호, 문서, 애플리케이션, 메시지 또는 기타 디지털 정보 등 거의 모든 것이 될 수 있습니다.

입력값의 크기에 관계없이, 주어진 해시 알고리즘은 정해진 길이의 출력값을 생성합니다. 동일한 입력값을 동일한 알고리즘으로 처리하면 동일한 해시값이 생성되어야 합니다.

입력값이 조금이라도 변하면 결과 해시값도 크게 변해야 합니다.

해시 함수란 무엇인가요?

해시 함수는 입력 데이터를 해시 값으로 변환하는 데 사용되는 알고리즘입니다.

암호화 해시 함수는 정보 보호 및 확인에 유용하게 사용할 수 있는 보안 속성으로 설계돼요.

강력한 암호화 해시 함수는 다음과 같은 작업을 계산적으로 불가능하게 만들어야 합니다.

  • 해시로부터 원래 입력을 확인합니다.
  • 동일한 해시값을 생성하는 서로 다른 두 입력값을 찾으세요.
  • 입력값 변경이 결과 해시에 어떤 영향을 미칠지 예측합니다.

이러한 속성 덕분에 보안 시스템은 원래의 민감한 정보를 저장하거나 전송하지 않고도 해시를 사용할 수 있어요.

해시 값이란 무엇인가요?

해시 값은 해시 함수가 생성하는 출력값입니다. 해시, 다이제스트, 메시지 다이제스트 또는 디지털 지문이라고도 합니다. 동일한 입력은 동일한 알고리즘으로 처리될 때 동일한 출력을 생성해야 하므로 시스템은 해시 값을 비교하여 정보가 변경되었는지 여부를 판단할 수 있습니다.

예를 들어, 소프트웨어 제공업체는 다운로드 가능한 파일의 암호화 해시값을 공개할 수 있습니다. 다운로드 후 사용자 또는 시스템은 파일의 해시값을 계산하고 이를 공개된 값과 비교할 수 있습니다. 값이 다르면 파일이 수정되었거나 손상되었을 수 있습니다.

사이버 보안에서 해싱은 무엇에 사용되나요?

해싱은 여러 중요한 사이버 보안 기능을 지원합니다.

일반적인 용도는 다음과 같습니다.

  • 저장된 비밀번호 보호
  • 파일 무결성 확인
  • 무단 변경 감지
  • 디지털 서명 지원
  • 알려진 악성 소프트웨어 또는 의심스러운 파일 식별
  • 다운로드한 소프트웨어 확인 중
  • 원본 정보를 노출하지 않고 데이터를 비교하기
  • 인증 시스템 지원

해싱은 시스템이 원본 값을 직접 읽을 수 있는 형태로 저장하지 않고 정보를 검증해야 할 때 특히 유용합니다. 또한 토큰화와 같은 다른 데이터 보호 기술과 함께 사용할 수 있는데, 토큰화는 민감한 정보를 민감하지 않은 토큰으로 대체하여 원본 데이터의 노출을 줄이는 데 도움이 됩니다.

‍

해싱은 비밀번호를 보호하는 데 어떻게 사용되나요?

보안 시스템은 일반적으로 사용자 암호를 읽을 수 있는 평문으로 저장해서는 안 됩니다.

대신 사용자가 비밀번호를 생성할 때 시스템은 비밀번호 해싱 함수를 사용하여 이를 처리하고 결과 해시 값을 저장할 수 있습니다.

사용자가 로그인할 때 입력하는 비밀번호는 다시 처리됩니다. 시스템은 결과 값을 저장된 비밀번호 해시 값과 비교합니다. 일치하는 경우 시스템은 원래 비밀번호를 저장하지 않고도 비밀번호를 확인할 수 있습니다.

최신 비밀번호 저장 방식은 단순히 빠르고 범용적인 해시 함수에만 의존하는 대신, 비밀번호 전용 해싱 알고리즘과 솔팅과 같은 추가적인 보호 조치를 사용해야 합니다.

비밀번호 해싱에서 솔트(Salt)란 무엇인가요?

솔트는 비밀번호를 해시하기 전에 비밀번호에 추가되는 고유한 임의 값입니다.

솔팅은 동일한 비밀번호가 자동으로 동일한 해시값을 생성하는 것을 방지하는 데 도움이 됩니다. 이로 인해 대량의 암호 해시 모음에 대한 특정 공격이 더 어려워집니다.

예를 들어, 두 사용자가 동일한 비밀번호를 선택했지만 각 비밀번호에 서로 다른 솔트를 조합한 경우, 결과적으로 저장되는 값은 서로 달라야 합니다.

소금은 비밀일 필요는 없지만, 고유해야 하고 적절한 방식으로 생성되어야 합니다.

해싱과 암호화의 차이점은 무엇인가요?

해싱과 암호화는 모두 데이터를 변환하지만, 목적은 다릅니다.

암호화는 기밀성을 보호하는 동시에 권한이 있는 사용자가 원래 정보를 복구할 수 있도록 설계되었습니다. 암호화된 데이터는 적절한 암호화 키를 사용하여 복호화할 수 있습니다.

암호화가 무엇인지 자세히 알아보려면 이 암호화 전체 가이드를 참조하세요.

해싱은 일반적으로 단방향으로 설계됩니다. 생성된 해시값으로부터 원본 정보를 복구하려는 의도는 없습니다.

암호화는 보호된 정보에 다시 접근해야 할 때 적합합니다. 해싱은 시스템이 암호나 파일과 같은 정보를 검증해야 하지만 해시 값에서 원래 값을 복구할 필요가 없을 때 유용합니다.

해싱과 인코딩의 차이점은 무엇인가요?

해싱과 인코딩은 서로 다른 목적을 가지고 있습니다.

해싱은 고정 길이 값을 생성하며, 암호화 해시 함수를 사용할 경우 단방향 방식으로 설계되었습니다.

인코딩은 정보를 다른 표현 방식으로 변환하여 정확하게 전송, 저장 또는 처리할 수 있도록 하는 과정입니다. 암호화는 되돌릴 수 있도록 설계되었으며 비밀 키가 필요하지 않습니다.

인코딩은 기밀성이나 단방향 보호를 제공하기 위한 것이 아니므로 암호화 또는 안전한 암호화 해싱을 대체하는 것으로 간주해서는 안 됩니다.

일반적인 해싱 알고리즘이란 무엇인가요?

시간이 흐르면서 여러 가지 해싱 알고리즘이 개발되었습니다.

예를 들면 다음과 같습니다:

  • MD5: 실제 충돌 공격이 존재하기 때문에 더 이상 암호화 목적으로 안전하지 않다고 여겨지는 오래된 해시 알고리즘이에요.
  • SHA-1: 충돌 방지 기능이 필요한 애플리케이션에는 더 이상 안전하다고 여겨지지 않는 오래된 알고리즘입니다.
  • SHA-2: SHA-256 및 SHA-512를 포함하는 널리 사용되는 암호화 해시 함수 계열.
  • SHA-3: SHA-2와는 다른 설계 방식을 기반으로 하는 최신 암호화 해시 함수 계열입니다.

비밀번호 저장을 위해 조직은 비밀번호 해킹에 필요한 계산 비용을 높이도록 설계된 특수 비밀번호 해싱 알고리즘을 사용해야 합니다.

SHA-256이란 무엇인가요?

SHA-256은 SHA-2 계열의 암호화 해시 함수입니다.

이 함수는 원본 입력의 크기에 관계없이 256비트 해시 값을 생성합니다.

SHA-256은 파일 무결성 검증, 디지털 서명, 인증서 및 기타 암호화 프로세스와 같은 응용 분야에 널리 사용됩니다.

하지만 SHA-256과 같은 일반적인 해시 함수는 비밀번호를 저장하는 데 단독으로 사용해서는 안 됩니다. 비밀번호 전용 해싱 알고리즘은 비밀번호 해킹 시도에 대한 추가적인 저항력을 제공하도록 설계되었습니다.

해싱은 되돌릴 수 있을까요?

안전한 암호화 해싱은 단방향으로 설계되어 있어, 해시 값을 원래 입력값으로 되돌릴 수 있는 복호화 키가 존재하지 않습니다.

하지만 공격자는 가능한 입력값을 추측하고, 이를 해싱한 후 결과를 비교하는 방식으로 원래 값을 알아내려고 시도할 수 있습니다.

이는 특히 비밀번호와 관련하여 중요한 사항입니다. 약하거나 자주 사용되는 암호는 여전히 사전 공격, 무차별 대입 공격, 미리 계산된 데이터를 통해 발견될 수 있어요.

강력한 암호 해싱 관행, 고유한 솔트, 강력한 암호 및 적절한 인증 제어가 이러한 공격을 더 어렵게 만들 수 있어요.

파일 무결성을 위해 해싱은 어떻게 사용되나요?

해싱은 파일이 변경되었는지 여부를 판단하는 데 도움이 될 수 있습니다.

시스템은 알려진 파일에 대한 해시 값을 계산하고 해당 값을 저장하거나 공개할 수 있습니다. 나중에 해시값을 다시 계산하고 두 결과를 비교할 수 있습니다.

해시값이 일치하면 파일이 변경되지 않았다는 강력한 증거가 됩니다. 두 값이 다르면 파일이 수정되었거나 손상된 것입니다.

보안팀은 이 기술을 사용하여 응용 프로그램, 구성 파일, 시스템 파일 및 기타 중요한 리소스의 예상치 못한 변경을 식별할 수 있어요.

해싱의 한계점은 무엇인가요?

해싱은 중요한 보안 기법인데 그 자체로 사이버 공격을 막지는 못해요.

공격자는 멀웨어를 변경하여 새 해시를 생성하거나, 합법적인 자격 증명을 손상시키거나, 취약점을 악용하거나, 알려진 악성 파일 해시와 일치하지 않는 도구를 사용할 수 있어요.

해시는 알려진 정보가 일치하는지 또는 변경되었는지 여부를 판단하는 데 도움이 될 수 있지만, 시스템이 무엇을 하고 있는지 또는 그 동작이 악의적인지 여부를 반드시 설명해 주는 것은 아닙니다.

이것이 바로 조직들이 해싱을 광범위한 위반 탐지, 모니터링, 액세스 제어, 네트워크 가시성, 세분화 및 위협 인텔리전스와 결합하는 이유예요.

해싱 및 침해 격리

해싱은 보안팀이 알려진 악성 파일을 식별하고 예상치 못한 변경을 탐지하는 데 도움이 되지만 조직도 이러한 탐지 방법을 우회하는 위협에 대비해야 해요.

공격자가 엔드포인트나 워크로드를 침해하면 단순한 해시 기반 탐지를 피하기 위해 합법적인 도구, 도난당한 자격 증명 또는 변형된 맬웨어를 사용할 수 있어요.

일단 시스템에 침입하면 공격자는 다른 시스템과 통신을 시도하고 민감한 데이터나 중요 자원으로 측면 이동을 시도할 수 있습니다.

환경 전반의 커뮤니케이션을 가시화하면 보안팀이 손상된 시스템이 무엇을 하는지 이해하고 공격이 확산될 수 있는 경로를 식별하는 데 도움이 돼요.

Go Beyond Known Threats With Illumio Insights

파일 해시는 알려진 위협을 식별하는 데 도움이 될 수 있어요. 하지만 공격자들은 이전에 본 적 있는 파일이나 행동을 항상 사용하는 것은 아닙니다.

Illumio Insights는 보안팀에 워크로드 통신 방식에 대한 가시성을 제공하여 기존 지표만으로는 놓칠 수 있는 의심스러운 연결, 위험한 경로, 잠재적 측면 움직임을 찾아내는 데 도움이 돼요.

네트워크 활동을 실행 가능한 인텔리전스로 바꾸고 환경 전체로 확산되기 전에 위협을 식별하세요.

Illumio Insights 살펴보기 →

자주 묻는 질문

해싱이란 간단히 말해서 무엇인가요?

해싱은 수학적 알고리즘을 사용하여 데이터를 고정 길이 값으로 변환하는 과정입니다. 이렇게 생성된 해시값을 사용하면 원본 데이터를 노출하지 않고도 정보를 검증할 수 있습니다.

해싱은 무엇에 사용되나요?

해싱은 일반적으로 암호 보호, 파일 무결성 확인, 디지털 서명, 위협 탐지, 인증 및 기타 사이버 보안 기능에 사용돼요.

해싱은 암호화와 같은 것인가요?

아니요. 암호화는 적절한 키를 사용하면 되돌릴 수 있도록 설계되었습니다. 암호화 해싱은 단방향 방식으로 설계되어 있어, 해시값만으로는 원래 입력값을 사실상 복구할 수 없습니다.

위협 탐지에 해싱은 어떻게 사용돼요?

보안팀은 잠재적 위협을 조사할 때 파일 해시를 하나의 정보로 사용할 수 있어요. 하지만 공격자는 파일을 수정하여 다른 해시값을 생성하도록 만들 수 있습니다. 결과적으로 해시 기반 탐지만으로는 모든 악성 파일이나 사이버 공격을 식별할 수 없습니다. 보안팀에는 환경 전반의 행동, 네트워크 통신, ID 정보, 활동 등 추가 컨텍스트가 필요해요.

해시값을 복호화할 수 있나요?

아니요. 해싱은 암호화처럼 복호화 과정을 사용하지 않습니다. 하지만 공격자는 값을 추측하고 해시값을 비교하는 방식으로 원래 입력값을 알아내려고 시도할 수 있습니다.

해시 충돌이란 무엇인가요?

해시 충돌은 서로 다른 두 입력값이 동일한 해시값을 생성할 때 발생합니다.

해시 함수는 잠재적으로 엄청나게 많은 입력값을 고정된 크기의 출력값으로 매핑하기 때문에 수학적으로 충돌이 발생할 수 있습니다. 이것이 MD5나 SHA-1 같은 구형 알고리즘이 더 이상 많은 보안 애플리케이션에 권장되지 않는 이유 중 하나예요.

해싱과 솔팅의 차이점은 무엇인가요?

해싱은 정보를 고정 길이 값으로 변환합니다. 솔팅은 특정 암호 해킹 기법에 대한 보안을 강화하기 위해 암호와 같은 정보를 해싱하기 전에 고유한 난수 값을 추가하는 기술입니다.

SHA-256은 암호화인가요, 아니면 해싱인가요?

SHA-256은 암호화 알고리즘이 아니라 암호화 해시 함수입니다. 이 함수는 256비트 해시값을 생성하며 단방향으로 설계되었습니다.

해시는 사이버 보안에서 왜 유용한가요?

원본 데이터를 직접 저장하거나 비교할 필요 없이 보안팀과 시스템이 해시를 사용하여 정보를 확인하고, 알려진 파일을 식별하고, 변경을 감지하고, 자격 증명을 보호할 수 있어요.

위반 가정.
영향 최소화.
복원력 향상.

예상치 못한 일이 언제든지 발생할 수 있다는 전제에서 시작하면 다음과 같은 행동을 유도할 수 있습니다.