발자취
시스템보안 02. 패스워드 본문
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자리 수
'3-2 > 시스템보안' 카테고리의 다른 글
| 시스템 보안 06. 쉘코드 기본 개념 및 연습문제 (0) | 2023.11.21 |
|---|---|
| 시스템 보안 05-1. 버퍼 오버플로우 공격 (0) | 2023.11.03 |
| 시스템 보안 04. gdb 디버거 (0) | 2023.10.31 |
| 시스템 보안 03. 리눅스 시스템 보안 (0) | 2023.10.04 |
| 시스템보안 01. 리눅스 시스템 (0) | 2023.09.30 |