발자취

시스템보안 02. 패스워드 본문

3-2/시스템보안

시스템보안 02. 패스워드

해린 2023. 9. 30. 01:45

1. 패스워드

1. 안전하지 않은 패스워드

- 짧은 단어

- 사전에 나오는 단어

- 추측하기 쉬움

 

 

2. 안전한 패스워드

기억하기 쉽고, 크랙(crack)하기 어려워야 함

 

 

2. 패스워드 보호 방법

1. 안전한 해시

- 안전한 해시 함수 H, 입력 데이터: x, 출력 데이터: ㅡ

- H(x) = M

- One-way: 해시값으로 원본 값을 알아낼 수 없음

- Weak collision resistance: y가 주어질 때, H(x) = H(y) 조건을 만족하는 x!=y를 찾는 것은 산술적으로 가능하지 않음

- Strong collision resistance: H(x) = H(y) 조건을 만족하는 (x, y)들을 찾는 것은 산술적으로 가능하지 않음

 

 

3. 패스워드 보호 방법

1. 암호화

- 암호 함수 E, 평문 P, 암호문 C

- 암호화: E(P) = C

 

 

2. 패스워드 보호

- 평문 패스워드 자체를 보관하면 안됨

- 해시된 또는 암호화된 패스워드를 보관해야 함

- Salt를 사용해서 패스워드 해시 또는 암호화의 안전성을 향상시킴

- /etc/passwd: 사용자, 이름, 사용자/그룹ID, 홈디렉토리, 쉘 (패스워드와 연관된 계정 정보... 패스워드 자체는 저장X)

- /etc/shadow: 해시된 또는 암호화된 패스워드

 

3. Salt

- salt + password를 암호화하거나 해시함

- salt 생성에는 다양한 방법이 있지만, 간단한 방법은 난수를 이용해서 생성하는 것임

 

 

4. 패스워드 크래킹 (Cracking)

1. 무차별 대입 공격

- 패스워드의 일부분이 될 수 있는 문자 또는 숫자의 모든 가능한 조합을 이용해서 패스워드를 크랙함

 

 

2. 사전 공격

- 많은 사용자들이 사전에 나오는 단어나 특정 패턴을 이용해서 패스워드를 설정함

- 자주 사용되는 사전 단어나 패턴을 이용해서 패스워드를 크랙함

 

 

3. 레인보우 테이블 공격

- 패스워드 후보군과 해시들의 체인들로 구성된 레인보우 테이블 이용해서 패스워드를 크랙

- R 함수와 MD5 해시함수를 이용

- R 함수 출력값 = MD5 해시값의 처음 6자리 수