누구냐 넌
목차
- 인증(Authentication)이란
- 메시지 인증
- 사용자 인증
인증(Authentication)이란
컴퓨터 보안에서 말하는 인증이란 어떤 실체가 그 실체가 맞는지 확인하는 것입니다. 이를테면 어떤 메시지를 받았을 때 이 메시지가 위변조 된 것은 아닌지 체크하는 것, 시스템 (서버)에 접속한 사용자가 정상적인 사용자인지 확인하는 것 등이 있습니다. 인증하고자 하는 실체 (대상)는 메시지, 사용자, 출처, 장치 등 여러 종류가 될 수 있습니다.
메시지 인증
메시지를 받았을 때 해당 메시지가 위변조 되지 않고 정확하고 안전하게 수신된 것이 맞는지 메시지의 무결성을 인증하는 것을 말합니다.
MAC (Message Authentication Code)
* mac address와 다른 개념
메시지 인증에는 메시지 인증 코드 (Message Authentication Code, MAC)를 메시지에 추가하여 인증하는 방법이 있습니다. MAC은 메시지 인증을 위한 부가적인 정보입니다. 송신자는 메시지를 보낼 때 MAC을 메시지에 추가하여 전송하고, 수신자는 메시지를 받으면 MAC을 통해 메시지 변조여부를 확인합니다.
MAC 인증의 핵심은 송/수신자가 같은 비밀키로 같은 알고리즘으로 해싱하여 메시지를 인증하는 것입니다. MAC 알고리즘과 비밀키만 가지고 있으면 MAC을 만들어낼 수 있고, 또한 메시지와 MAC은 서로 독립적으로 존재하기 때문에 메시지 원문 자체가 노출되었을 때는 위/변조 여부를 따지지 않고 위험할 수 있습니다.
- 비밀키를 이용하기 때문에 제 3자가 개입하여 메시지 위변조 불가능
- 기밀성을 제공하지 못함 (메시지와 MAC은 서로 독립적)
- MAC은 메시지 크기와 무관한 작은 크기
그 외에도 아래와 같은 MAC을 기반으로한 인증 방법들이 있습니다.
- HMAC : 해시함수를 기반으로 비밀키를 메시지에 붙인 후 해시함수를 적용하는 방법
- CMAC : 블록암호 기반, CBC 모드를 메시지에 적용하는 방법
사용자 인증
시스템 (서버, PC, 웹 페이지, 건물 보안 시스템 등)에 접근하려는 사용자를 인증하는 것을 말합니다. 즉 접근하려는 사용자 (실체)가 정말 그 사용자가 맞는지 진실성을 확인하는 과정입니다. 인증 과정에는 다음과 같은 방법들이 사용됩니다.
- 비밀번호
- 생체인식
- 토큰
- 2단계 인증
- 그 외 ...
비밀번호
가장 보편화 (일반적)되어 사용되고 있는 인증 방식입니다. 사용자가 입력한 비밀번호가 시스템에 이미 저장된 비밀번호와 일치하는지를 확인하여 인증합니다. 대부분 사용자 아이디와 같이 쌍으로 사용하고 있습니다.
시스템에 저장된 비밀번호는 유출될 것을 대비하여 해시코드로 저장되어있어야 합니다.
생체인식
사람 개개인의 고유 정보인 생체 정보들을 이용하는 방법입니다. 사전에 사용자의 생체 정보가 시스템에 저장되어있어야 합니다. 사용될 수 있는 생체정보는 홍채, 얼굴, 지문, 손바닥 혈관 등이 있습니다. 최근에는 앱 결제, 스마트폰 인증, 건물 출입 시스템 등에 사용되고 있습니다.
토큰 (Token)
사용자가 이미 소유하고 있는 특정 정보를 이용하는 방법입니다. 이 정보를 토큰이라 하며 토큰에는 보안토큰, 스마트카드, 실물 키(자동차 키), 휴대전화 등이 있습니다. 휴대폰으로 일회용 인증번호를 발송하여 사용자를 인증하는 방법이 휴대폰을 토큰으로 사용한 방식입니다.
2단계 인증 (2FA, Two-Factor Authentication)
사용자가 알고 있는 정보와 소유하고 있는 정보를 둘 다 사용하는 방법입니다. 이를테면 비밀번호 (사용자가 아는 정보)와 토큰 (사용자가 소유한 정보)을 같이 사용하는 것입니다. 서로 다른 성격의 인증방식을 혼합하여 사용함으로써 더 강화된 인증 방법이라고 봅니다. 그 외에도 MFA (Multi-Factor Authentication)와 같이 2가지 이상의 속성을 사용하여 인증하는 방식도 있습니다.
민간 인증서의 등장
http://www.dailypop.kr/news/articleView.html?idxno=65853
http://www.sisaon.co.kr/news/articleView.html?idxno=144311
근래에는 민간 기업들이 민간(사설) 인증서 서비스들을 내놓고 있습니다. 인터넷에서 본인인증을 하는 절차가 굉장히 까다롭고 빈번해짐에 따라 이미 사용자들 모바일 기기에 설치되어 있는 앱을 기반으로 빠르게 인증하도록 하는 것입니다. 사용자의 앱을 토큰으로 간주한 토큰 기반의 인증이라고 볼 수도 있겠습니다. 다만, 해당 토큰 (앱)에서 사전에 인증절차 동의, 인증서 생성 등과 같은 절차를 진행해 두어야 합니다.
'Programming > DevOps, Tools' 카테고리의 다른 글
[정보통신] DNS는 어떻게 동작하는가 (0) | 2023.03.29 |
---|---|
[보안] 사이버 공격 (0) | 2023.03.29 |
[Software] 소프트웨어 프로세스 모델 - 어떻게 만들 것인가 (0) | 2023.03.09 |
[Software] 소프트웨어란 (0) | 2023.03.08 |
JWT (JSON Web Token) 도입기 - JWT는 만능해결사인가 (0) | 2023.03.02 |
댓글