Information System Security

5. Authentication (1)

Hangii 2024. 10. 19. 16:13

먼저, system authentication의 여러가지 방법을 소개한다.

1) Login

  • 일반적으로 알고있는 패스워드 입력 방식이다. 
  • 이 때, 암호화된 키보드를 사용해 공격자가 실제로 어떤 key를 눌렀는지 알 수 없도록 하는 방식도 존재한다.

2) Matrix Card

  • 결제 등 민감한 정보를 입력하기 전에 퀴즈를 풀도록 하는 방식이다.
  • 예를 들어, D3이 뭐냐? 라는 질문에 올바르게 대답해야만 정보를 입력할 수 있게 된다.

3) One Time Password (OTP)

  • 위와 같이 생긴 하드웨어 장치이다. 숫자 왼쪽에 있는 bar는 잔여시간을 표시한 것이다. 카드처럼 생긴 OTP도 있음.
  • 2)번의 password matrix card보다 secure하다. 
  • 은행과 OTP장치는 동일한 clock을 공유한다. 그래서 일정 시간이 만료되면, 둘이 동시에 숫자를 업데이트한다. 이러한 특성 때문에 OTP 장치에는 internal clock과 battery가 필요하다.

4) 공인인증서

  • Public Key Infrastructure (PKI)를 구현한 것.
  • Public Key Cryptography에 따르면, encryption과 decryption에 서로 다른 key 쌍이 요구된다. 나에게 메세지를 보내고자 하는 누구든 나의 public key를 가지고 있어야 한다. 
  • 이 방법의 단점은, public key가 공격자에 의해 manipulate될 수 있다는 점이다.

 

Authentication은, 인증하려는 대상에 따라 message authenticationhuman authentication으로 분류할 수 있다.

1) Human Authentication

  • Authentication Factors
    • 알고 있는 정보(Something you know): password, pass phrase, PIN, etc.
    • 가지고 있는 정보(Something you have): identity document, credit card, security token, mobile phone, etc.
    • 나 자체인 정보(Something you are): fingerprint, retinal pattern, DNA sequence, signature, voice, etc.
  • CAPTCHA: Completely Automated Public Turing Test to tell Computers and Humans Apart
    • It is a mechanism to determine whether the user is human or not.
    • 사람은 통과할 수 있고, 최신 컴퓨터 프로그램은 통과하지 못하는 test를 만들어내는 프로그램이다.
    • 사용예시: online polls, search engine bot, worm and spam, preventing dictionary attack, protecting website registration, preventing comment spam in blogs, etc.
    • Text-based(무슨 글자인지 맞추기), Image-based(무슨 그림인지 맞추기), Sound-based(어떤 음성인지 맞추기) 등의 방식이 존재한다. 
    • CAPTCHA는 현재로선 잘 작동하는 방식일지 몰라도, future-proof하지는 않다. AI의 발전으로 이 test를 통과하는 SW를 만들어낼 수 있게 되었기 때문이다.
  • Human memory and Password
    • 연구에 따르면, 사람이 기억할 수 있는 문자열의 최대 길이는 7자리이다.
    • 이름, 전화번호, 주민등록번호, 생일 등의 정보가 포함된 패스워드를 만들면 기억하기엔 쉽겠지만, 해킹당하기도 쉽다. 이런 패스워드를 low-entropy라고 표현한다.
  • Encrypted QR code

 

  •  PC에서 PIN번호를 입력할 것을 요구하는 상황인데, 어디에도 keypad가 보이지 않는다. 대신 QR code가 보이는데, 모바일로 이 QR을 스캔하면, keypad를 볼 수 있다. 이 keypad에서 PIN번호를 입력하면 인증된다.
  • 이 방법의 장점은, 공격자가 PC 스크린 전체를 캡쳐하더라도 비밀번호를 알 수 없다는 것이다.
  • 이때 사용되는 QR은 encrypted된 형태여서, key를 가지고 있는 mobile에서만 화면을 볼 수 있다.
  • Quick Look

  • RGB 카드를 대야만 noise처럼 보였던 화면에 passkey가 표시된다.
  • Biometrics
    • 생체 정보를 활용하는 방식 중 상대적으로 정적인 방법이며, 변경할 수 없다(non-cancelable)는 특징을 가진다.
    • 활용되는 주요 생체 정보에는 retina, iris, fingerprint, face, palmprint 등이 있다.
  • Behaviormetrics
    • 행동 양식으로부터 정보를 얻는 방식이다. gait(==walking pattern), typing rhythm, mouse dynamics, swiping, behaviosec 등이 사용된다.
    • 생체 정보를 활용하는 인증 방식 중, Biometrics 보다 동적인 방법이다. 
  • 그렇다면, 어떤 biometrics를 authentication에 사용 가능한지 판단하는 기준은 무엇일까?
    • Universality: each person should have the biometric characteristic.
    • Distinctiveness: any two persons are not equal in terms of the characteristic.
    • Permanence: the characteristic remains the same over time or has not abrupt changes.
    • Collectability: the characteristic should be able to be measured quantitatively.
    • Performance: the achievable recognition accuracy and speed that the biometric system can achieve.
    • Acceptability: the acceptance of the end-users in using the biometric system in their daily lives.
    • Circumvention: the degree of security of the system given fraudulent attacks.
  • Issues with fingerprints
    • 많은 전자기기에서 user authentication 방식으로 fingerprint를 택한다. 그런데, fingerprint sensor spying attack을 통해 지문 정보를 탈취하는 공격 사례가 존재한다. (안드로이드폰, 2015)
    • 그래서 지문 대신 gestures를 사용하는 경우도 있음(?) 
    • 그렇다면, 이 biometric 정보를 client 기기의 storage에 저장하는 것이 안전할까, 아니면 server storage에 저장하는 것이 안전할까?
      • 최신 보안 트렌드는 client 기기에 저장하는 것이 좋다고 한다. server에 생체 정보를 저장하게 되면, system 내부 사용자가 접근할 수 있게 되기 때문이다.
      • 그래서 FIDO(Fast Identification Online)라는 2-step authentication 방식이 사용되고 있다.(애플과 삼성 기기에도 적용됨) STEP 1에서는 biometric 정보가 local device의 key를 unlock하기 위해 사용되고, STEP2에서는 인증을 통해 얻은 key를 사용해 remote server를 authenticate한다.

2) Message Authentication

  • Digital Signature
    • Public key cryptography에 해당한다. 보내려는 메세지를 private key로 encrpyt하여 signature를 만들고, 이 signature를 msg에 concatenate한다. 이후 받은 사람은 public key로 signature를 verify할 수 있다. 
    • Message가 중간에서 위조되지 않았는지 확인함을 통해 integrity를 보장하고, 보내는 주체만이 private key로 signature를 생성할 수 있기 때문에 non-repudiation도 보장된다.
  • Message Authentication Code (MAC)
    • Symmetric Key cryptography이다. MAC = MAC(key, M)
    • integrity를 보장할 수 있다.