본문 바로가기

study/OS&System Security

1-3. 시스템 보안에서의 패스워드

728x90

*패스워드는 크게 안전하지않은 패스워드, 안전한 패스워드로 나눌 수 있을 것이다. 

안전하지 않은 패스워드는 짧은 단어, 사전에 나오는 단어를 사용하거나, 추측하기 쉬운 것들을 말한다. 

안전한 패스워드는 기억하기 쉽지만 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함수는 공격자가 정의한 함수

>> 이 공격은 난이도가 높지만, 공격 성공확률이 높다.  

 

728x90
반응형

'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