Access Control = Authentication + Authorization
- Authentication : 사람 ↔ 기계 간 인증, “접근 허용 여부” 결정
- sth you KNOW (password)
- sth you HAVE (smartcard - OTP)
- OTP(One-Time Password) : Symmetric key / 시간 계산 함수 이용
- sth you ARE (biometrics)
- Authorization : 접근이 가능하다면, 어떤 action을 할 수 있는가
Something you 'KNOW'
passwords, passphrase, secret code … → Biggest practical security problem
- 문제점
- 사용자는 password를
랜덤하게 선택하지 않는다. (사람은 high-quality cryptographic key를 저장하거나 암기할 수 없다.) - 여러 사이트에서 password를 재사용하고, hacker들도 안다. (poorly protected site)
- 사용자가 password를 종이에 쓰기도 해서 훔쳐볼 수 있다.
- Social engineering attack에 취약하다.
(tail-gating, 보이스피싱, pre-texting, scare-ware)
- 사용자는 password를
- 사용하는 이유
- Cost - 거의 무료
- Convenience - 관리자가 문제가 생겼을 때 reset하기 편리
Password Experiment
Password로 무엇을 사용할까? (사용자 비번 30% / passphrase 10% / random 10%)
→ Assigned passwords가 나을 수도..?
→ 만약 password가 할당되지 않았다면, Passphrase가 제일 좋다!
- 사용자 입장에서 잘 기억할 수 있는 특징(규칙)을 기반으로 만든다.
- Hacker입장에서 유추하거나 알아내기 어렵다.
- Random도 안전하지만, 기억할 수 있다는 ‘용이성’ 측면에서 더 낫다!
→ Periodic(주기적인) password 변경은 굳이 필요없다.
- 2019년부터 Microsoft는 password-expiration policy 없앰.
Attacks & Password Retry
- Common attack Path : 권한이 높은 계정으로
- APT(Advanced Persistent Threat) 공격
Outsider → Normal User → Administrator
1개의 취약한 password만 있어도…
- APT(Advanced Persistent Threat) 공격
- 잘못된 비밀번호 입력 시도 시, (실패 횟수 → Lock time을 지수적으로 증가)
너무 짧으면 계속 시도할 것이고, 5분이면 DDos 공격에 취약
Password File → Dictionary Attack
Plaintext password를 파일에 저장하면 안되지만, verify하고 싶다!
⇒ Plaintext password를 Hash해서 password file에 저장! (빠른 연산, one-way, fixed-length)
- $y=h(pwd)$ 저장
- hashing에 의해 입력한 password verify 가능
- password file이 있더라도, 공격자는 hash함수의 one-way 특성때문에 password 얻을 수 없다.
< Dictionary Attack >
$y=h(x)$를 만족하는 (x,y) pair를 찾는 forward search(brute-force search)
- 흔한 password로 사용되는 dictionary의 x → (모든 $h(x)$) 미리 계산
- (2012년 LinkedIn password - SHA1 유출)
⇒ Salt (and/or) Pepper를 Hash와 같이 사용하자!
- Hash password + Salt
- random salt $s$
→ $y=h(password,s)$ 계산
→ password file에 $(s,y)$ 저장 - salt는
비밀이아니고, password file에 y와 함께 저장된다. - Salted password $y$는 verify하기 쉽다.
BUT 공격자는 각 사용자에 대해 dictionary hash를 재계산해야한다.
- random salt $s$
- Hash password + Pepper
- common pepper $p$
→ $y=h(password,p)$ 계산
→ password file에 모든 $y$ 저장 & configuration file에 따로 $p$ 저장 - pepper는 비밀이다.
- Peppered password는 verify하기 쉽다. (p를 가지고 있다면)
BUT 공격자는 pepper을 추측하거나 회수해야만 한다.
- common pepper $p$
- Hash iterations(반복) 적용
- 정상 사용자에게 계산은 오래 걸릴 수 있다.
BUT 공격자는 수백만의 시도 & password 회수하는데 추가 시간 while iteration_counter > 0: hash = sha512(hash) decrement iteration_counter
- 정상 사용자에게 계산은 오래 걸릴 수 있다.
Other Password Issues
- Reset done - SMS messages(secret code)
(SIM swapping, Malware stealing SMS) - Default password 변경 실패 - I/O가 없는 IoT devices의 규칙성(wireless router)
- Attacker-Installed/Spoofed WiFi Access points
→ 실제와 같이 만든 bogus Website 만들어 옳지 않은 경로로 이동시킴. - Social engineering - phishing(피싱)
- Error logs - bugs, keystroke logging, master PW
- Credential stuffing : 유출된 비밀번호를 사용하여
알람을유발하지 않고 가장 보호된 사이트에 침투하려고 시도 - Modern Web browsers는 password를 cache할 수 있다. (브라우저의 자동완성 기능)
- Password managers(browser add-on) : 모든 것을 암호화하는 master password를 기억해야 한다.
Something you 'ARE'
Biometrics - 지문, 홍채, 자필 서명, 얼굴 인식, 목소리 인식, gait(walking) 인식
<사용 이유>
- password보다 더 secure
- Cheap & Reliable
- 최근 많이 사용되고 있다 → 홍채 매우 정확 / 손바닥 인쇄
<한계>
- Hostile environment에서 무시할 수 없는 오차경보율(false-alarm rates)
(적대적 : sensor 등에 대해 얼마나 stable한가) - High cost → 등록/사용/관리
- forensic에 제한된 application
Historical Biometrics
- Handwritten Signatures - court(법정) case
- tablet-based 서명 인식 시스템은 dynamics도 인식(손 움직임 속도, 펜 떨어뜨림) → 등록된 서명과 captured 서명 비교 - Face Recognition
- 가장 오래된 identification mechanism. (Photo ID-based 인증 널리 사용)
- Neural Network 혁명(2012~)
- RGB 카메라 + 적외선 depth 카메라(TOF: Time of Flight 방식)
→ CNN → 더 빠르고 정확한 알고리즘 - side-view photos → frontal photos (pose invariance)
- iPhone X: dot projector → hardware-based scheme
- RGB 카메라 + 적외선 depth 카메라(TOF: Time of Flight 방식)
- Voice Recognition (Speaker Recognition)
- short utterance(발언) → speaker identification
speech recognition: speech 번역, 언어의 특이점 무시- noisy 환경, real-time 등에 따라 인식 정확도가 다르다.
- 공격 : 가로챈 메시지를 4분의 1초 단위로 분할한 다음 이를 잘라 붙여 위조
Ideal Biometric 조건
- Universal - 모든 사람에게 적용 가능해야 한다. (사실 힘듦)
- Distinguishing - certainty 가지고
- Permanent - 절대
변하지 않는 물리적 특성측정, 오랜 시간 valid - Collectable - 대상이 cooperative한가
safe / user-friendly…
Biometric Modes
- Identification (포렌식) : one-to-many 비교
- FBI 지문 database → Who goes there?- 더 어려운 문제 ← 더 “random matches”라 비교 횟수↑
- Uncooperative subjects
- Authentication : one-to-one 비교
- Cooperative subjects → 일반적으로 더 쉽다.
(1:1 질문, Y/N 결정)
- Cooperative subjects → 일반적으로 더 쉽다.
< Enrollment v/s Recognition >
(1) Enroll 단계
- 대상의 biometric → database에 등록
- carefully & precise → slow & repeated 측정 작업일 때 좋다.
(2) Recognition 단계
- biometric detection → fast & simple & 합리적으로 정확해야(낮은 오차율)
Biometric Errors
- False accept (fraud, 기만율) : A가 B로 잘못 인증되는 비율
- False reject (insult, 모욕률) : A가 A로 인증되지 않는 비율
→ threshold가 높을, 깐깐할 때 : FA는 낮고 FR은 높다.
→ threshold가 낮을, 널널할 때 : FA는 높고 FR은 다.
- Equal error rate
FA rate = FR rate → 다양한 biometric 비교 성능 지표로 많이 사용
Fingerprints
- fingerprint identification - systematic studies
- 지문 패턴 분류 / indexing system(1-bit)
- 2가지 목적 : Identifying people + Crime scene forensics(police forces)
- Identifying people
- FBI - NGI(Next Generation Identifcation) service
India - Aadhaar : 지문&홍채 code → welfare payment, fraud detection - 자동 지문 인식 시스템의 Equal Error Rate: 손가락 당 1% 아래
- FBI - NGI(Next Generation Identifcation) service
- Crime scene Forensics
- crime scene ↔ DB 비교. Forensic error rate 은근 실패
- 문제 : 손상된 지문 & 전통적인 지문 형태가 아닐 때
- 공격 방법 - 지문 위조는 쉽다!
- molded fingerprints + gelatin / rubber
- 최근 지문 reactivated(transferred) + tape
- social media에서 photo 가져오기
- master print : 위조 지문 + 3D 프린터
- 정전기, 광센서, 초음파
- Fingerprint Comparison - 실제 지문 인증
- features → Minutia (특징점, branches & endpoints of ridges)
- 일란성 쌍둥이도 지문 ≠
Enrollment
: capture → enhance → identify points
Recognition
: compare → match
Iris Patterns
현대적, 혁신적 → Large-scale deployments
- “chaotic”, 다시 생성하기 어렵다.
-
거의 받지 않고, 일란성 쌍둥이도 거의 다르며, 2개의 눈들 사이에서도 다르다.
유전적 영향 - Lifetime에 걸쳐 Stable(불변)
- Best Error Rates (실험실 환경에서 측정)
- FA rate 거의 0으로 / EER < 1/million
- 하지만 실제로 False Reject Rate는 조금 더 높다…(4~6%)
→ eyelash, hangover로 카메라 홍채 인식 실패
- Equal Error Rates(EER)
- Fingerprint EER <5%
- Iris scan EER → 거의 0 (Enrollment 단계가 정확하다면)
- ⇒ Iris Code가 가장 강력/정확한 Biometric
< Iris 유사도 측정 >
- Hamming distance 기반
- 2048-bit Iris code → $d(x,y)$ 계산
- (불일치 bit 수) / (비교하는 bit 수)
- $d(0010,0101)=3/4$
$d(101111,101001)=1/3$
→ Match되어 Accept된 Iris scan < 0.32
같은 iris도 0.08, 예상 random 거리는 0.5
< Iris Scan Attack >
- Good photo of eye
- photo-based 공격 방지 → “live” Iris 또는 hippus(동공 경련, 수축) 측정
- → 타겟의 iris pattern이 print된 콘택트 렌즈
< 그 외 Biometrics > ⇒ Deepfake
- Typing patterns(keystroke dynamics)
- Vein patterns(정맥)
- Hand gemotry
- Facial thermograms(온도)
- 강아지 코 주름(비문)
- DNA → 범죄 현장 forensic / parenthood / 실시간일 때 느리고 비싸며 사생활 문제
Attacks on Biometric systems
- Forensic Biometric 샘플 → “freshness” 증명 어렵다. (지문, DNA ‘planted’ 가능)
- “recording”에 취약한 경우 - 음성 인식, 홍채 스캔 → 컨택트 렌즈, molding
- 모든 사람들에 대해 정확하지 않다. - 손상 지문
- 대부분 Collusion(공모)에 취약. → 자동화돼있어 알리바이
직접 모니터링안함 - 2개 이상의 Biometrics 조합 → FA 또는 FR 향상시킬 수도 있다.
- ‘Physiological(생리학적)’ Biometrics → 다시 생성하기 어렵다.
Biometrics Conclusion
- Biometrics는 위조(forge)하기 어렵다.
- 공격자: 신체 도난, Photocopy / Subvert SW, DB, “trusted path”…
- “Broken” biometric? → 비상, 생리학적이라 다시 생성하기 어렵다.
⇒ Not foolproof! (잘못될 수도)
'Security' 카테고리의 다른 글
Network Security (1) | 2024.06.19 |
---|---|
Security Protocols (0) | 2024.05.05 |
Cryptography(3) - Public Key Encryption & Digital Signatures (2) | 2024.05.05 |
Cryptography(2) - Stream cipher & Block cipher (1) | 2024.05.05 |
Cryptography(1) - Ciphers & Hash function (0) | 2024.05.05 |