slide-image

 

사용자 인증해야 한다. 지금 약간 노답임.

 

Token-based authentication은 뭐 별건 없고, 토큰에는 memory cards와 smart cards 등등이 있다. 

일반적으로 토큰은 물리적인 물체를 말한다.

 

memory cards는 뒷면에 magnetic stripe있는 카드고, 이 마그네틱 띠에 간단한 정보가 들어있다. 다들 아는 것처럼 카드 리더기가 필요하고, 자석 같은 걸로 덮어쓰기가 가능하다. reprogramming이 가능하다는 것. 

사용 예시로는 호텔 룸키나 ATM에서 PIN과 함께 사용가능하다.

 

smart cards는 마이크로프로세서가 내장된 카드 형태의 토콘으로 사실상의 경량 컴퓨터 이다. 메모리나 프로세서, I/O등도 가능하고, 연산이나 암호화도 사실상 가능하다. 경우에 따라 UI가 있는 경우도 있는데, 키패드나 디스플레이가 있는 경우도 있다. OPT라던가.. 그 중에서도 electronic interface는 접촉식은 금 도금 단자를 접촉시켜 통신이 가능하고, 비접촉식은 안테나를 통해 전자기 유도로 전원을 확보해서 통신할 수 있다.

스마트 카드는 static, dynamic password generator, challenge-response 방법으로 인증이 가능한데, static 방법으로 인증하는 것은 사용자가 자신을 토큰(리더기)에게 인증하고, 이 토큰은 메모리 카드와 같이 단순하게 사용자를 컴퓨터에 인증하는 방식이다. dynamic password generator으로는 OTP 카드 같은 아이들이다. challenge-response는 컴퓨터가 난수로 이루어진 'challenge'를 제시하여 토큰은 이에 대응하는 response를 생성하는 방식이다. 블록체인 논스같은 느낌인 것 같다. 책을 봐야할 듯.

 

electronic identity card는 eID(전자신분증)이 있는데, 스마트 카드의 한 예시이다. 국가에서 발급하는 스마트 카드 형태의 신분증이고 독일의 eID가 대표적인 사례이다. eID는 ePass, eID, eSign의 기능을 할 수 있는데, ePass는 정부만 사용하며, 생체정보 등의 개인 정보를 저장한다. eID는 정부나 민간이 생체정보를 제외한 정보로 온라인/오프라인 검증을 하는 것이다. eSIgn은 비밀키와 인증서를 저장할 수 있고, 서명의 기능을 한다. 

 

eID를 이용한 사용자 인증은 공인 인증서 로그인과 유사하나 eID card 리더기가 필요하고, eID server와 host/application server가 각각 user와 통신을 한다. 일단 유저가 request하면, host에서 eID 메시지를 리다이렉트하고, 유저는 eID server에 인증 request를 한다. 그러면 eID server에서 PIN request를 하고, User는 PIN을 입력한다. eID는 이제 그걸 인증하고, 결과를 user에게 주면, 그 결과를 user가 host에게 전달해 서비스를 제공받을 수 있다.

 

생체 인식은 고유 신체 특성에 기반한 사용자 인증인데, 저적 특성과 동적 특성으로 나눌 수 있다.

정적 특성은 지문, 손, 얼굴, 홍채, 망막 등이 있고, 동적 특성은 성문(음성), 서명 등이 있다. 이들은 모두 패턴 인식에 의한 인증 방식이며, 패스워드나 토큰 방식에 비해 복잡하고 비싸다.

 

얼굴 특성은 상대적 위치나 형태, 적외선을 이용해 혈관 모양을 추출하고, 지문은 고유 지문 형태 특성을 추출한다. 손은 손 모양이나 길이, 너비를 추출하고, 망막은 망막 뒷면 혈관의 모양을 추출한다. 홍채는 고유 홍채 모양을 추출한다. 서명은 고유의 필체를 추출하고, 목소리는 추출 보다는 고유 신체적 속성에 가깝다고 한다.

 

2015년 기준 가장 정확한 것은 홍채(iris)이지만 비싸고, 가장 비싸면서 정확도가 떨어지는건 손(hand)인식이다. (not finger) 그리고 가장 정확도가 낮으면서 비용도 적은 것은 음성 인식이라고 한다.

 

생체 인증은 enrollment와 verification, identification 과정으로 나눌 수 있는데, enrollment에서는 그냥 센서를 통해 특징을 추출하고, 그 특징을 name(PIN)과 함께 DB에 저장한다.

verification은 똑같이 센서로 특징을 추출하는데, DB에서 name(PIN)을 기준으로 하나의 template을 골라서 추출한 특징과 비교한다. 

identificaion은 verification과 달리 DB에서 name(PIN)을 기준으로 여러 N개의 template을 골라서 추출한 특징과 비교한다.

 

생체 인식의 딜레마는 책 읽고 마저 정리하겠음.

 

remote user authentication은 local user authentication과 대조되는 개념으로 멀리 떨어져 있는 사용자를 network를 통해서 인증하는 개념이다. network를 통하므로 가능한 위협으로는 도청(eavesdropping)과, replay attack이 있다. remote user authentication에 패스워드, 토큰, 생체 정보 등이 사용 가능하고, 위협에 대처하기 위해 일종의 challenge-response protocol이 필요하다.

 

password protocol은 client가 user 내용을 host에게 전달하면, host가 랜덤 넘버, 논스를 생성해 패스워드의 해쉬값만을 비교하는 대신에 이 논스값을 포함해서 비교하는 방식이다. 즉, host가 (r, h(), f())을 보내면, client가 P'와 return of r인 r'을 생성해 host에 f(r', h(P'))을 주면, client는 이 값과 f(r, h(p(user)))을 비교해서 검증하는 방식이다. 그냥 노느를 생성해서 그걸 이용해서 증명한다고 보면 될 것 같다. 현대암호하는 기분이라 급짜증.. 어쨌든 적절한 f()에 따라서 도청이나 replay attack에 안전할 수 있다. 

 

token protocol은 password protocol과 같은데, 중간에 (r, h(), f())을 보내면, client가 사용자와 토큰만 공유하는 패스워드에 의해서 토큰이 사용자 인증을 해주고, 이를 통해서 static password(one-time password)를 생성한다. 그래서 client가 f(r', h(static password))을 보내면, host가 이 값을 검증한다.

 

static biometric protocol은 사용자가 U를 전달하면, 호스트에서 논스를 생성하고, 논스와 E()를 같이 전달하면, 사용자의 생체 정보를 토대로 사용자의 biometric template을 생성하여E(r', D', BT')를 호스트에 보낸다. 이걸 호스트는 복호화하고, r=r'이고 D(device)=D'이면 인증이 완료된다.

 

dynamic biometric protocol은 유저가 U를 전달하고, 호스트는 논스와 랜덤 sequece x를 생성한다. 호스트는 유저에게 r, x, E()를 보내는데, 유저는 생체 정보와 x를 토대로 x에 대한 생체 신호BS(x')와 r'을 암호화하여 보낸다. 호스트는 이를 복호화해서 r=r', x=x', B'=B(U)이면 인증이 완료된다. 만약 x가 숫자나 단어들의 열이면, BS(x)는 x를 읽은 음성 신호가 되는 것이다.

 

와 이거 다 뭐지?

 

Security issuse는 client attack, host attack, eavesdropping,theft, copying, replay attack, trojan horse, Denial of service가 있다.

 

client attack은 서버나 통신 채널이 아닌 사용자를 공격하는 방법이다. 해당 사용자를 사칭하기 위해서 하며, 방법으로는 password token biometric을 탈취하는 방법이 있다. password를 attack하려면 guessing, exhaustive search할 수 있는데, 이를 막기 위해서는 large entropy하거나 limited attempts를 적용하면 된다. token attack으로는 exhaustive search가 있으며, 똑같이 large entropy, limited attempts에다가 tehft of object requires presence가 있다. biometric attack으로는 false match가 있는데, 이를 막는 것은 똑같이 large entropy거나 limited attemps할 수 있다.

 

host attack은 서버를 공격해서 등록된 인증 정보를 탈취하는 것이다. password나, token, biometric 등을 탈취할 수 있다. password를 attack하는 방법은 paintext theft, dictionary/exhaustive search가 있고, 이를 막으려면 hashing이나, large entropy, protection of password database을 할 수 있다. token을 attack하는 방법은 passcode theft가 있고, 이를 막는 것은 password attack을 막는 방법과 동일하며 거기에 추가해서 one-time passcode를 사용하는 방법이 있다. 그리고 biometric을 attack하는 방법은 template theft할 수 있는데, 이를 막기 위해서는 capture device authentication하거나 challenge response하는 방법이 있다.

 

eavesdropping은 통신 채널을 도청해서 인증 정보를 탈취하는 것이고, theft는 토큰 방식에서의 도청이다. 그리고 copying은 생체 인증에서의 도청이다. 이들은 공통적으로 password attack할 때 shoulder surfing할 수 있고, 이를 막기 위해서는 user diligence to keep secret, administrator diligence to quickly revoke compromised passwords, multifactor authentication을 할 수 있다. token attack으로는 theft, counterfeiting hardware할 수 있으며, 이를 막기 위해서는 multifactor authentication, tamper resistant/evident token할 수 있다. biometric attck하려면 copy(sppofing)할 수 있고 이를 막기 위해서는 copy detection at capture device and capture device authentication이 있다.

 

 reply attack은 기존에 도청한 사용자의 입력을 나중에 되풀이 하는 것인데, password attack으로는 replay stolen password reponse가 있고, 이를 막으려면 challenge-response protocol이 있다. 그리고 token attack으로는 replay stolen passcode response가 있고, 막기 위해서는 challenge-response protocol과 1-time passcod를 쓰는 방법이 있다. 또한 biometric attack으로는 replay stolen biometric template response가 있고, 이를 방지하기 위해서는 copy detection at capture device and capture device authentication via challenge-response protocol이 있다.

 

마지막으로 trojan horse는 intstallation of rogue clinet or capture device할 수 있고, 이를 막으려면 authentication of client or capture device within trusted security perimeter할 수 있다. 그리고 DoS는 lockout by multiple failed authenticaions로 attack할 수 있고, 이를 방지하려면 multifactor with token할 수 있다...

 

ATM에서 Issuer은카드 발급자, 은행을 뜻한다.

Processor은 처리 대행자이고, EFT는 electronic funds transfer을 뜻한다. 

ATM은 접근이 어려운 전용선으로 연결되며, PIN은 DES에 의해 암호화된다.

그 후에 인터넷이 보편화되고 OS가 변화되면서 DES에서 3DES로 바뀌었고, 인터넷에 의한 shared connect가 이루어졌다.

 

따라서 이전에는 ATM에서 Processor을 통해 EFT가 교환되었다면, 이제는 ATM에서 issuer's internal network를 통해서 issuer를 거쳐 processor로 가서 EFT를 교환하는 것이다. 이 때 PIN말고는 아무것도 암호화 되지 않은 채로 전송된다는 것이 문제가 된다..