Computer >> 컴퓨터 >  >> 프로그래밍 >> 프로그래밍

정보 보안의 핵심, SHA(보안 해시 알고리즘)란 무엇일까?

SHA(Secure Hash Algorithm, 보안 해시 알고리즘)는 MD5를 개선한 버전으로, 정보와 인증서를 해싱하는 데 사용되는 알고리즘입니다. 해시 알고리즘은 비트 연산(bitwise operation), 모듈러 덧셈(modular addition), 압축 함수(compression function) 등을 활용해 입력된 정보를 원래 내용을 알아낼 수 없는 더 작은 형태로 변환합니다.

메시지 변조 여부 확인

SHA는 원본 메시지가 어떤 방식으로든 변경되었는지 확인하는 데에도 활용됩니다. 사용자가 원본 해시 다이제스트(hash digest)를 입력해 비교하면, 단 한 글자만 바뀌어도 해시 값이 완전히 달라지기 때문에 아주 사소한 수정도 즉시 감지할 수 있습니다.

결정론성(Determinism): SHA의 핵심 특징

SHA의 가장 중요한 특성은 결정론성입니다. 이는 사용된 해시 함수만 알면 어떤 컴퓨터나 사용자든 동일한 해시 다이제스트를 재현할 수 있다는 의미입니다. 바로 이 결정론적 성질 덕분에 인터넷상의 모든 SSL 인증서는 SHA-2 함수로 해싱되어야 하는 것입니다.

SHA의 탄생 배경

보안 해시 알고리즘은 미국 국립표준기술연구소(NIST)를 비롯한 정부 기관과 민간 파트너들이 공동으로 개발한 일련의 알고리즘입니다. 이러한 암호화 또는 '파일 검증(file check)' 기능들은 21세기 최대의 사이버 보안 과제에 대응하기 위해 만들어졌으며, 여러 공공 서비스가 연방 정부 기관과 협력해 조직과 일반 대중을 위한 더 나은 온라인 보안 표준을 마련하는 데 기여하고 있습니다.

SHA의 종류와 발전 과정

디지털 보안 강화를 위해 개발된 SHA에는 여러 버전이 있습니다.

  • SHA-0: 1993년에 처음 공개된 최초의 보안 해시 알고리즘입니다. 후속 버전인 SHA-1과 마찬가지로 160비트 해시 값을 생성합니다.
  • SHA-2: 256비트와 512비트 기술을 각각 적용한 두 가지 함수로 구성된 차세대 알고리즘으로, 현재 SSL/TLS 인증서에 널리 사용됩니다.
  • SHA-3(Keccak): 새로운 사이버 보안 알고리즘을 설계하는 공모전(크라우드 소싱 방식)에서 선정된 최상위 보안 해시 알고리즘입니다.

이 모든 보안 해시 알고리즘은 민감한 정보를 안전하게 보호하고 다양한 유형의 공격을 방지하기 위한 최신 암호화 표준의 일부입니다.

이 중 일부는 미국 국가안보국(NSA) 같은 정부 기관이, 일부는 독립 개발자가 만들었지만, 모두 특정 데이터베이스 및 네트워크 환경에서 정보를 보호하는 해시 암호화의 공통된 기능과 연관되어 있으며, 디지털 시대의 정보 보안 발전에 크게 기여하고 있습니다.

디지털 인증서와 해싱 구조

디지털 인증서도 동일한 해싱 구조를 따릅니다. 인증서 파일이 해싱되면, 해시된 파일은 해당 인증서를 발급한 CA(Certificate Authority, 인증 기관)가 디지털 서명을 하게 됩니다. 이를 통해 인증서가 위변조되지 않았음을 검증할 수 있습니다.

TLS 프로토콜과 인증의 중요성

모든 디지털 통신의 핵심 요소는 인증(authentication)입니다. 즉, 채널 반대편에 있는 개체가 세션 개시자가 실제로 통신하려는 상대가 맞는지 확인하는 과정입니다. 그렇기 때문에 TLS 프로토콜은 비대칭 암호화(asymmetric cryptography)를 활용하는 더욱 엄격한 인증 절차를 제공하여 안전한 통신을 보장합니다.