[정보보안] User Authentication - 1
by 너나나수업 들은 거 개인적으로 정리한 거!! 틀릴 수 있고 공부하면서 계속 추가/수정할 예정입니다!!
User authentication (사용자 인증)
- Fundamental security building block
- System entitiy에 의해서 혹은 system entity에 대해서 신원을 증명하는 과정
2단계를 거친다!!
1. Identification (식별) : 1-N 매칭
2. Verification (검증) : 1에서 확인된 identifier가 a라는 사람이 맞는지 확인
message authentication은 통신을 하는 두 개의 identity 간의 교환하는 메시지에 대해서 무결성을 보장해주는 것으로 user authentication이랑은 다르다!!
Authentication = user authentication + message authentication
A model for Electronic User Authentication (EUA)
NIST SP 800-63-2 defines EUA as
- 컴퓨터 상에서 이루어지는 전자적인 identification과 관련된 정보들을 기반으로 사용자가 제공하는 사용자의 신원을 확립한다.
The NIST SP 800-63-2 model
- token based authentication
Registration, credential issuance, maintenance activities & E-Authentication using Token and Credential to perform e-authentication
1. registration process를 통해 individual Applicant가 지원 (사용자 등록 과정)
2. RA가 그 Applicant의 신원을 증명 (사용자가 합법적인 사용자인지 사용자가 요구한 정보가 합법적인 정보인지 진입성을 따져봄)
3. 신원확인이 성공적으로 되면, RA가 registration confirmation message를 CSP에 전송
4. CSP와 새로운 Subscriber 사이에 비밀 토큰과 correspoding credential이 설정됨
5. CSP는 credential, 상태, 그리고 credential의 유효기간동안 수집된 registration data를 유지한다.
6. Claimant는 자신이 authentication protocol을 통해 token을 소유하거나 제어할 수 있다는 것을 증명함.
7. Verifier은 CSP와 상호작영하여 Subscriber의 identity를 자신의 token에 바인딩하는 credential을 확인한다. (저장돼있는 token이나 credential을 기반으로 해서 인증)
8. If the Verifier is seperate form the RP, the Verifier provides an assertion about the Subscriber to the RP, which uses the information in the assertion to make an access control or authorization decision.
(인증이 완료됐다는 것을 확인하는 절차)
9. Subscriber와 RP 사이에 auuthenticated session이 만들어짐.
Password Authentication
Basic idea
- User has a secret password
- System checks password to authenticate user
Widely used user authentication method
- User provieds name/login and password
- System compares password with that saved for specified login
Issues
- How is password stored?
- How does system check password?
- How easy is it to guess a password?
- Salt : 12bits encoded in 2 bytes : 저장할 때 salt라는 값을 더함
- Ciphertext : 11bytes
Baisc Password Scheme
- Hash function h : strings -> string (정해지지 않은 길이의 문자열을 넣으면 정해진 길이의 문자열로 바뀌어서 나옴 -> 역추적이 힘들다)
Salt Value를 쓰는 이유 : 만약 같은 암호가 있으면 (사용자 a와 사용자 b의 암호가 같다면) salt값을 더하지 않으면 해쉬값이 같아진다.
salt값을 쓰면 offline dictionary attack을 어렵게 함!!
When password is set, salt is chosen randomly 12-bit salt slows dictionary attack by factor of 2^12
Password Types and Cracking Types
- Password Types
- Cognitive Password (인지 password) : 생년월일, 기념일 같이 인식할 수 있는 사실들로 만든 password, 개인 경험과 관련 있다.
- One-Time Password (OPT)/Dynamic password : subject의 identity를 증명하기 위해 딱 한 번만 사용되는 문자의 조합, 엄격한 보안이 요구될 때 사용, OTP는 dedicated device가 필요하다.
- Passphrase (암호 구문 : 긴 문자열로 구성) : Passphrase program을 사용하여 vritual password로 바꾸는 방법 ex) Passwords are really important. > asdf81290#219%$
- Password Cracking Types (패스워드 공격 방식)
- Dictionary Attacks : password dictionary file을 이용하여 password를 찾는 방식 ex) NTCrack & John the Ripper -> 2 Factor authentication이나 OTP를 사용하여 방지
- Brute Force Attacks : 연속된 문자 조합들을 이용해서 password를 매칭 시키는 것. 그냥 하나씩 다 눌러보는 거라고 생각하면 된다!! ex) L0 phtcrack, random key generator -> Clipping level, delay time을 이용하여 방지
- Backdoor : Trojan horse 같은 것을 시스템에 설치하여 키보드 input을 낚아채는 것 -> Access control로 방지
- Social Engineering : 사람들 심리를 이용해서 패스워드 알아내는 거..?!?? 채팅으로 막 야야 비밀번호 보통 생일로 하지 않나?!? 이런 식으로?!?!? ㅋㅋㅋㅋ 이게 뭐지
- Sniffing : 네트워크상에서 plain text password를 엿보는 거 -> Encryption으로 방지
- Password File Access : authentication server에 있는 password file에 접근 -> Access control과 encryption을 이용해서 방지
Password Cracking
- Dictionary attacks : 패스워드에 많이 사용되는 사전적인 단어들(사람 이름, 반려동물 이름, 일상적인 단어 등등)을 미리 경우의 수를 나열하고 해쉬값으로 변환해서 암호화 값을 만들어 놓는 방식 -> 속도가 빠르다!! -> 그러니까 랜덤으로 암호 설정하자!!!! 그러면 내 암호 알아내는데 1093년 걸린다!!
- Rainbow table attacks : 가능한 패스워드에 대해서 굉장히 큰 dictionary를 미리 다 분석해서 만들어놓은 것
모든 salt에 hash values tables을 미리 계산해놓음!!! -> 더 큰 salt values가 사용되면 실현 불가능!!
Password File Access Control
Can block offline guessing attacks by denying access to encrypted passwords.
Proactive Password Checking
- Password cracker : list of bad passwords, time and space issues
- Markov mode : 추측 가능한 패스워드는 안 쓰는 것
- Bloom filter : table을 기반으로 사용자가 설정하는 패스워드가 table에 있는 패스워드는 사용하지 않도록 하는 것
'2021-1 > 정보보안' 카테고리의 다른 글
[정보보안] Operating System Security (0) | 2021.03.27 |
---|---|
[정보보안] Database Security (0) | 2021.03.24 |
[정보보안] Access Control (0) | 2021.03.21 |
[정보보안] User Authentication - 2 (0) | 2021.03.17 |
[정보보안] Cryptographic Tools (2) | 2021.03.10 |
블로그의 정보
공부 기록
너나나