*패스워드는 크게 안전하지않은 패스워드, 안전한 패스워드로 나눌 수 있을 것이다.
안전하지 않은 패스워드는 짧은 단어, 사전에 나오는 단어를 사용하거나, 추측하기 쉬운 것들을 말한다.
안전한 패스워드는 기억하기 쉽지만 crack하기에는 어려워야 한다.
패스워드 보호 방법
1. 안전한 해시(hash)
- 안전한 해시 함수 H, 입력 데이터: x, 출력 데이터: m 이라고 할때, H(x)= M(message digest) 의 공식을 사용할 수 있다.
- 해시 함수로는 MD5, SHA-1, SHA-256 등이 있다.
- One-way: H의 -1승(M)= x를 찾는 것은 산술적으로 가능하지 않다.
- Weak collision resistance
: y가 주어질 때, H(x)= H(y)조건을 만족하는 x=/=y를 찾는 것은 산술적으로 가능하지 않다.
- Strong collision resistance
: H(x)= H(y)조건을 만족하는 (x,y)들을 찾는 것은 산술적으로 가능하지 않다. (아무것도 주어지지 않기 때문에)
2. 암호화
- 암호함수 E, 평문 P, 암호문 C이라고 할때, 암호화는 E(P)= C, 복호화는 E의 -1제곱(C)= P 이다.
- 종류: DES, 3DES, AES, RSA, RC4
3. 패스워드 보호
- 평문 패스워드 자체를 보관하면 안됨
- 해시된 또는 암호화된 패스워드를 보관해야한다.
- salt를 사용해서 패스워드 해시 또는 암호화의 안전성을 향상시킨다.
- /etc/passwd: 사용자 이름, 사용자/그룹 ID, 홈 디렉토리, 쉘
- /etc/shadow: 해시된 또는 암호화된 패스워드 보관
4. Salt
: salt+ password를 암호화하거나 해시한다.
salt생성에는 다양한 방법이 있지만 간단한 방법은 난수를 이용해서 생성하는 것이다.
패스워드 크래킹
1. 무차별 대입 공격(brute-force)
: 패스워드의 일부분이 될 수 있는 문자 또는 숫자의 모든 가능한 조합을 이용해서 패스워드를 크랙한다.
2. 사전(dictionary)공격
: 많은 사용자들이 사전에 나오는 단어나 특정 패턴을 이용해서 패스워드를 설정한다. 때문에 자주사용되는 사전 단어나 패턴을 이용해서 패스워드를 크랙한다.
3. 레인보우 테이블 공격
: 패스워드와 해시들의 체인들로 구성된 레인보우 테이블을 이용해서 패스워드를 크랙한다.
R함수와 MD5 해시함수를 이용한다
* R함수는 공격자가 정의한 함수
>> 이 공격은 난이도가 높지만, 공격 성공확률이 높다.
'study > OS&System Security' 카테고리의 다른 글
1-2. 리눅스 시스템, bash shell (0) | 2020.10.11 |
---|---|
1. 리눅스 시스템 (0) | 2020.10.11 |
시스템 보안이란? (0) | 2020.10.05 |
윈도우 시스템 (0) | 2020.09.16 |
취약점에 대한 이해 (0) | 2020.09.16 |