정보 보안 기초

비밀번호 저장에 SHA-256 같은 고속 해시 함수를 그대로 사용하지 않고, bcrypt나 Argon2처럼 일부러 계산에 시간이 걸리도록 설계된 방식을 사용하는 것이 권장되는 이유로 올바른 것은?

  1. A계산에 시간이 걸리는 방식은 출력이 길어서 충돌이 일어나지 않게 되기 때문에
  2. B계산에 시간을 들이면 해시값으로부터 원래 비밀번호를 정당한 이용자만 복원할 수 있게 되기 때문에
  3. C저장된 해시값이 유출되었을 때, 공격자가 후보 비밀번호 하나를 시도하기 위한 계산도 무거워져 무차별 대입나 사전 공격에 걸리는 시간이 크게 늘어나기 때문에
정답과 해설 보기

정답: C. 저장된 해시값이 유출되었을 때, 공격자가 후보 비밀번호 하나를 시도하기 위한 계산도 무거워져 무차별 대입나 사전 공격에 걸리는 시간이 크게 늘어나기 때문에

비밀번호의 해시값이 유출되면 공격자는 자신의 컴퓨터로 후보 비밀번호를 차례로 해시하여 일치하는 것을 찾을 수 있습니다. SHA-256 같은 범용 해시 함수는 대량의 데이터를 빠르게 처리하도록 만들어졌으므로, GPU 등을 사용하면 초당 막대한 수의 후보를 시도할 수 있습니다. bcrypt나 Argon2 같은 비밀번호 저장용 방식은 계산 반복 횟수(비용)를 조정할 수 있어 1회의 계산을 일부러 무겁게 합니다. 예를 들어 1회의 계산을 100만 배 느리게 하면 무차별 대입에 걸리는 시간도 100만 배가 됩니다. 정당한 이용자가 로그인할 때는 한 번 계산할 뿐이므로 0.1초 정도의 지연이라면 문제가 되지 않습니다. Argon2는 계산에 많은 메모리도 사용하도록 설정할 수 있어, GPU나 전용 회로로 대량으로 병렬 계산하는 것을 어렵게 합니다. 어느 방식이든 이용자별 솔트와 조합하여 사용합니다.

이 분야 연습하기 분야로 돌아가기

정보 보안 기초의 다른 문제

  1. 8자 비밀번호를 모든 후보를 시도하는 무차별 대입로 찾는다. 초당 1×10^10개의 후보를 시도할 수 있을 때, 영문 소문자(26종류)만으로 만든 비밀번호와 영문 대문자·영문 소문자·숫자(62종류)로 만든 비밀번호에 대해 모든 후보를 다 시도할 때까지의 시간의 조합으로 가장 가까운 것은?
  2. A 씨가 B 씨에게 보내는 문서에 디지털 서명을 붙인다. 서명의 생성과 검증에 사용하는 키와, 디지털 서명으로 확인할 수 있는 것의 조합으로 올바른 것은?
  3. 메시지 인증 코드(MAC)와 디지털 서명을 비교한 설명으로 올바른 것은?
  4. 웹 서버의 서버 인증서에 대응하는 개인 키가 유출되었을 우려가 있음이 밝혀졌다. 인증서의 유효 기간은 아직 남아 있다. 운영자가 취해야 할 대응으로 가장 적절한 것은?
  5. 이용자를 확인하는 인증의 3요소(지식·소유·생체) 중 사원증 IC 카드를 사용하는 인증이 해당하는 것은?