의견.png

"레인보우 테이블"의 두 판 사이의 차이

위키원
이동: 둘러보기, 검색
(새 문서: '''레인보우 테이블'''<!--Rainbow Table, 레인보우, 레인보 테이블-->(Rainbow Table)은 해시함수(MD-5, SHA-1, SHA-2 등)를 사용하여 만들어낼 수 있는 값...)
 
잔글 (같이 보기)
37번째 줄: 37번째 줄:
  
 
{{블록체인 기술|토막글}}
 
{{블록체인 기술|토막글}}
 +
{{보안}}

2019년 7월 28일 (일) 16:11 판

레인보우 테이블(Rainbow Table)은 해시함수(MD-5, SHA-1, SHA-2 등)를 사용하여 만들어낼 수 있는 값들을 대량으로 저장한 표이다. 보통 해시 함수를 이용하여 저장된 비밀번호로 부터 원래의 비밀번호를 추출해 내는데 사용된다.

개요

1980년 마틴 헬만에 의해 소개가 되었고 MD5 암호화가 쉽게 복호화 될 수 있다는 것을 보여준 해킹기법중 하나이다. 하나의 패스워드에서 시작해 변이된 형태의 여러 패스워드를 생성하여 그 패스워드의 해시를 고리처럼 연결 해 일정 수의 패스워드와 해시로 이루어진 테이블이다.

활용

패스워드 크래킹

패스워드 크래킹(Password Cracking)이란 시스템의 비밀번호를 각종 툴(프로그램)을 통해 알아내는 공격기법이다. 패스워드 트래킹에는 3가지 공격 방법이 있다.

  • 사전 대입 공격
  • 무작위 대입 공격
  • 레인보우 테이블을 이용한 공격

레인보우 테이블을 이용한 공격

  1. 레인보우 테이블에 크래킹하려는 해시 값과 같은 MD5 해시 값이 있는지 확인
  2. 레인보우 테이블에 크래킹하려는 해시 값이 없으면 크래킹할 해시 값에 R함수를 적용한다. 패스워드를 구하고 다시 해시 값을 구한다.
  3. 구한 해시 값이 레인보우 테이블이 있는지 확인한다.
  4. 레인보우 테이블에서 확인한 해시 값을 발견한 뒤 그 해시 값에 해당하는 최초 패스워드를 구한다.
  5. 확인한 최초 패스워드에서 다시 패스워드와 일치하는 해시 값이 나올 때까지 MD5 해시와 R함수를 반복 수행한다. 해당 해시 값이 확인 되면 찾는 패스워드는 해당 해시 값을 생성한 문자열이다.[1]

대안

솔티드 해시(Salted hased)

기존에는 패스워드만 해시함수에 통과시켰으나 최근에는 가입 시간이나 난수를 비밀번호와 같이 해시 값에 포함시킨다. 이 때 추가적으로 포함된 가입 시간이나 난수를 솔트(salt)라고 한다. 이는 서로 다른 계정이 같은 비밀번호를 사용하더라고 솔트가 다르면 완전 다른 해시 값이 생성되며, 설령 같은 해시 값을 같더라 하여도 솔트 값이 전혀 다르기 때문에 평문을 유추하기 힘들다는 논리다.

블룸 필터(Bloom filter)

블룸 필터는 원소가 집합에 속하는지 여부를 검사하는데 사용되는 확률적 자료 구조이다. 즉, 개발자들은 사용자가 회원 가입을 할때 레인보우 테이블에 있는 비밀번호에 대하여 사용을 금지하는 방법을 선택하는데 이러한 과정속에서 금지된 비밀번호를 걸러 내는 역할을 한다. 이 방법을 사용하면 사용자는 취약한 비밀번호의 사용이 금지되어 공격자가 가지고 있는 패스워드 사전도 취약하게 된다. 설령 공격자가 갱신을 한 패스워드 사전을 가지고 있다 하여도 개발자가 해당 사전을 수집할 수 있으므로 금지 비밀번호를 갱신하면 된다.[2]

각주

  1. 달콤맛마이쮸, 〈https://dalkom7.tistory.com/12 유동현]〉, 《네이버 블로그》, 2016-09-18
  2. 수니감자, 〈(보안)SALTED HASH / BLOOM FILTER〉, 《티스토리》, 2016-10-23

참고자료

같이 보기


  의견.png 이 레인보우 테이블 문서는 블록체인 기술에 관한 토막글입니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 이 문서의 내용을 채워주세요.