패스워드의 중요성에 대해 알아보도록 하겠습니다.
우리가 흔히 로그인 할 때 ID/PW 형식으로 로그인을 하는데, 사용자의 입장에서 본인을 인증하기에 필수적인 요소인
PW 에 대한 취약한 부분에 대해서 알아보도록 하겠습니다.
패스워드는 무작위 대입 공격, 레인보우 테이블 공격,사전 대입 공격 등에 취약한데 해당 취약점에 대해 알아보도록 하겠습니다.
1. 패스워드 공격기법
Ⅰ. 무작위 대입 공격(Brute Force Attack)
무작위 대입 공격이란 조합 가능한 모든 패스워드를 대입해보는 것으로 대입하여 똑같은 해시값이 나오면 성공합니다.
기본적으로 모든 해시는 무작위 대입공격으로 뚫을 수 있습니다.
패스워드 길이에 따라 시간이 짧을 수도 있지만 천문학적인 시간이 걸릴 수도 있습니다.
따라서 패스워드 길이를 길게 늘여 찾는데 걸리는 시간을 최대한 오래 걸리게 함으로써 쉽게 뚫리는 것을 방지할 수 있다. 패스워드 길이를 늘린다면 당연히 찾아내는데 오랜시간이 걸려 안전하겠지만 지금과 같이 수치 연산에 강력한 GPU 사용으로 인해 좀더 획기적인 패스워드 설정 방법이 나오는 것이 필요하다.
- 장점 : 100% 성공률을 보장하고 패스워드 길이가 짧으면 패스워드를 찾는데 짧은 시간이 소요된다.
- 단점 : 패스워드 길이가 짧지 않은 경우가 대부분이어서 평균적으로 오랜 시간이 걸린다.
Ⅱ. 레인보우 테이블 공격(Rainbow Table Attack)
현재 패스워드는 '패스워드 + 해시'를 통해 저장되어 있다. 따라서 패스워드별로 해당 해시값을 미리 저장한 이후 해당 해시값을 통해 역으로 패스워드를 찾아내는 방식이다. 하지만 해시함수는 다양하며 해당 데이터를 모두 저장한다는 것은 메모리 적으로 많은 부담이 됩니다.
레인보우 테이블을 만드는 데에도 많은 시간이 소요되며 해시에 대한 알고리즘 수행 시간이 길수록 해당 테이블을 얻어내는 것 역시 아주 어렵다. 이러한 단점을 보완하기 위해 나온 것이 R(Reduction) 함수이다. R함수는 레인보우 테이블을 작은 크기로 줄이는 데 사용되며 일정한 패턴이나 유사한 것들을 이용하여 모든 값을 저장하는 것이 아닌 특정 값만 저장하여 패스워드를 역으로 알아내는 것이다.
- 장점 : 해시 함수를 통한 패스워드 크래킹이 가능하다.
- 단점 : 테이블 생성에 많은 시간이 소요된다.
Ⅲ. 사전 대입공격(Dicitionary Attack)
사전 대입 공격은 예상되는 흔히 쓰이는 패스워드를 모두 사전처럼 모두 저장하여 대입해 보는 방식이다.
무작위의 경우 모든 경우의 수를 따지기 때문에 많은 시간이 소요되고 패스워드가 해당 사전에 저장되어 있지 않을 경우 패스워드 크래킹에 실패한다. 하지만 사전에 저장된 패스워드만 대입하기 때문에 짧은 시간이 소요된다.
- 장점 : 무작위 공격에 비해 짧은 시간이 소요된다.
- 단점 : 사전에 저장된 패스워드가 없을 경우 크래킹이 불가하다.
Ⅳ. 충돌 공격(Collision Attack)
충돌 공격은 충돌이 발생하는 경우를 공격하는 것으로, 해시 함수 특성상 같은 문자의 경우 같은 해시값을 가져 충돌이 발생한다는 것이다. 따라서 해당 해시함수를 통해 무작위로 패스워드를 입력하여 같은 해시값이 나올 때까지 반복하는 작업을 한다. 해당 공격을 방지하기 위해 나온 것이 다양한 해시함수를 사용하는 것과 솔트(salt) 기술을 병합하는 것이다. 해당 기술은 앞서 충돌 공격을 방지하기 위한 것으로 같은 패스워드일지라도 '패스워드 + 해시 + 솔트' 구조로 인해 해시값은 다른 결과를 가져온다.
- 장점 : 무작위 공격과 유사하여 패스워드를 100% 찾아낸다.
- 단점 : 현재 보안 정책이나 기술로는 충돌 공격을 하는 것이 불가능하다.
Ⅴ. 혼합 공격(Hybrid Attack)
혼합 공격이란 앞서 설명한 무작위 대입 공격과 사전 대입 공격 기술을 혼합한 것을 의미합니다.
사전에 포함된 패스워드를 기반으로 무작위로 대입하여 찾아내기도 하며, 이를 기반으로 무작위 대입을 실행하는 것이다.
Ⅵ. 사회공학적 공격(Guessing Attack)
사회공학적 공격이란 해당 사용자가 버린 포스트잇, 메모, 쪽지, 서류 등 행동, 실수을 통해 패스워드를 알아내는 것입니다. 실수나 행동을 통해 사용자의 계정정보와 암호 등을 통해 유추해내어 패스워드를 알아내는 것입니다.
현재 암호화가 강화되어 위에 기술된 방법을 통해 찾는 것은 많은 시간이 걸려 상황에 따라 비효율적일 수 있으며 찾지 못하는 경우도 있으나 짧은 시간에 찾을 수 있다는 장점이 있다.
2. 패스워드 크래킹 툴
- 존 더 리퍼(John the ripper) : 패스워드 크래킹 툴의 대표적인 툴이다. 패스워드 크래킹의 대두분의 기법들이 포함되어 있습니다.
- Ophcracker : 레인보우 테이블을 통한 크래킹 툴이다.
- 카인과 아벨(Cain & Abel) : 윈도우 GUI 기반 도구로 스니핑(Sniffing)과 ARP 포이스닝(Posisoning), 중간자 공격(MITM)에 주로 사용됩니다.
- 히드라(Hydra) : 네트워크 패스워드 크래킹 툴이다.
- 메두사(Medusa) : 히드라와 유사한 툴로 히드라에 비해 빠른 속도를 지니고 있다.
- 에어크랙(Aircrack) : 무선 네트워크의 패스워드를 크래킹하는 툴이다.
3. 솔트(Salt)
패스워드는 해쉬와 암호화 알고리즘으로 변경되어 저장되는데 솔트는 똑같은 패스워드를 숨기기 위한 값으로 패스워드 크래킹을 어렵게 만드는 보안 강화 기법이다.
같은 패스워드라도 다른 값으로 저장이 되게 하여 해시의 고유함이라는 단점을 보완해줍니다.
솥트 미적용 시 알고리즘이 동일하기 때문에 암호화 및 해시 모두 똑같은 값으로 저장된다. 반대로 솔트 적용시 다른 해시값이 저장된다.
4. 안전한 패스워드
- 특수문자, 영어 소문자/대문자, 숫자 조합 중 3개 사용 시 8글자 이상 2개 사용 시 10글자 이상 패스워드 생성 시 비교적 안전함
- 반복적인 숫자,단어, 유추 가능한 패스워드는 취약함
- 6개월 내 패스워드 변경 시 비교적 안전함
'ISMS-P' 카테고리의 다른 글
망분리에 대해 알아보도록 하겠습니다. (0) | 2022.12.22 |
---|---|
위험 관리(Risk Management)에 대해 알아보겠습니다. (0) | 2022.12.06 |
BCP 와 DR 에 대해 알아보겠습니다. (0) | 2022.11.26 |
정보보호(Information Security) 란 ? (0) | 2022.11.23 |
개인정보 유형별 정리 (0) | 2022.11.23 |