인증은 신원을 확인하는 프로세스입니다. 비밀번호, 하드웨어 토큰, 기타 여러 방법을 사용해야 합니다.
이 글을 읽은 후에 다음을 할 수 있습니다:
관련 콘텐츠
인터넷에서 가장 인기 있는 인사이트를 한 달에 한 번 정리하는 Cloudflare의 월간 요약본 theNET를 구독하세요!
글 링크 복사
사이버 보안에서 인증은 누군가 또는 무언가의 신원을 확인하는 프로세스입니다. 인증은 일반적으로 비밀번호, 하드웨어 토큰, 신원을 증명하는 기타 정보를 확인하여 이루어집니다. 항공사 직원이 비행기에 탑승할 때 사람의 신원을 확인하기 위해 여권이나 신분증을 확인하는 것처럼, 컴퓨터 시스템은 확인 대상이 실제로 자신이 주장하는 사람인지 확인해야 합니다. 공항에서는 이 인증 절차를 통해 티켓을 소지한 사람만 비행기에 탑승할 수 있습니다. 디지털 시스템의 경우 이를 통해 올바른 사람이 데이터를 보고 사용할 수 있습니다.
인증은 인간 사용자를 확인하는 데만 적용되는 것이 아닙니다.컴퓨터 시스템은 또한 서버, 소프트웨어, API, 기타 컴퓨터가 스스로 "주장하는" 사람인지 확인해야 합니다.
인증은 데이터를 볼 수 있는 사용자와 데이터로 수행할 수 있는 작업을 지정하는 ID 및 액세스 관리(IAM)의 중요한 부분입니다.그러나 인증은 다음을 포함한 다른 많은 보안 영역에도 적용됩니다.
컴퓨터는 사람이 하는 방식으로 사람이나 다른 컴퓨터를 "인식"할 수 없으므로 인증 프로세스는 컴퓨터가 측정할 수 있는 객관적인 기준에 의존합니다. 객관적인 기준의 한 유형은 인증 대상인 사람이나 컴퓨터가 가지고 있는 것으로 알려진 일부 특징을 확인하는 것과 관련됩니다. 다른 유형은 공개 키 암호화라는 기술을 사용하여 신원을 증명하는 것과 관련이 있습니다.
이러한 유형의 인증에는 해당 디지털 기록과 비교하여 측정 가능한 신원 특성을 확인하는 작업이 포함됩니다. 인증 시스템이 확인할 특성을 "요소"라고 합니다. 일반적인 인증 요소 세 가지가 요즘 널리 사용됩니다.
1. 그 사람이 알고 있는 사항
이 인증 요소는 실제 대상자만 알고 있는 비밀 지식을 확인합니다. 사용자 이름과 비밀번호의 조합은 이 요소의 전형적인 예입니다. 보안 질문 및 PIN 코드도 하나의 예입니다.
2. 그 사람이 가지고 있는 품목
이 인증 요소는 대상자가 발급받았거나 가지고 있는 것으로 알려진 물리적 품목을 소유하고 있는지 확인합니다. 많은 사람이 매일 이 인증 요소를 사용합니다. 그들은 금속 키로 잠금을 해제할 수 있는 집이나 아파트에 살고 있습니다. 따라서 이 키를 가지고 있으면 구내에 들어갈 수 있는 권한이 있음을 증명하고 들어갈 수 있습니다.
디지털 시스템에서 이 인증 요소는 구식 자물쇠와 열쇠에 의존하지 않습니다. 그러나 유사한 원리를 사용하여 물리적 토큰을 확인합니다. 토큰에는 소프트 토큰과 하드 토큰의 두 가지 유형이 있습니다.
소프트 토큰: 소프트 토큰에는 스마트폰과 같은 장치에 코드를 보내고 사용자에게 입력하도록 요청하여 장치의 소유를 확인하는 것이 포함됩니다.코드는 문자 메시지로 전송되거나 임의의 코드를 생성하는 앱을 통해 전송될 수 있습니다.
하드 토큰: 하드 토큰은 블루투스, USB 포트, 기타 포트를 통해 컴퓨터 또는 모바일 장치에 연결하는 작은 물리적 품목입니다.사용자는 이 토큰을 장치에 연결하여 신원을 확인해야 합니다.
일부 보안 전문가는 하드 토큰이 소프트 토큰보다 더 안전하다고 생각합니다. 공격자는 원격으로 사용자의 전화로 가는 코드를 가로채고 해당 코드를 사용하여 사용자를 가장할 수 있습니다. 그러나 하드 토큰을 훔치는 것은 훨씬 더 어렵습니다. 공격자는 훔치려면 물리적으로 토큰에 액세스해야 합니다.
3. 대상자 자체
이 인증 요소는 개인의 고유한 특성을 평가합니다. 실생활에서 사람들은 항상 이런 평가를 합니다. 예를 들어 친구 두 명이 외모나 말투로 서로를 알아볼 수 있습니다. 컴퓨터는 사람의 얼굴이나 망막을 스캔하고, 지문을 확인하며, 목소리의 주파수를 측정하거나, 혈액 검사 결과를 확인하여 똑같은 작업을 수행할 수 있습니다(마지막 방법은 더 드물지만).
추가 인증 요소
보안 업계의 일부 구성원은 위에 나열된 세 가지 주요 인증 요소 외에 추가 인증 요소를 제안하거나 사용했습니다. 이러한 추가 요소 중 두 가지는 위치(사용자가 있는 위치)와 시간(시스템에 액세스하는 시간)입니다.
위에서 설명한 인증 요소를 사용하는 것 외에도 알려지고 신뢰할 수 있는 엔터티에게 디지털 인증서를 발급할 수도 있습니다. 디지털 인증서는 신분증에 실제 삶에서 개인의 신원을 확인하는 정보가 포함되어 있는 것처럼 신원 확인을 위한 정보가 포함된 작은 디지털 파일입니다.
디지털 인증서는 여권, ID 카드, 지폐에 위조가 아님을 증명하는 워터마크가 있는 것과 같이 인증서를 발급하는 기관으로부터 진위를 증명하는 디지털 서명을 받습니다.
디지털 인증서에는 공개 키라고 하는 임의 값 문자열도 포함되어 있습니다.공개 키는 별도로 저장되는 개인 키에 해당합니다.인증서가 있는 엔터티는 이러한 키로 데이터에 디지털 서명하여 개인 키를 소유하고 있으므로 인증되었음을 증명할 수 있습니다.
현재 디지털 인증서는 개인의 신원을 확인하는 데 자주 사용되지 않습니다. 그러나 대부분의 사람은 자신도 모르게 매일 디지털 인증서에 의존합니다.
누군가가 HTTPS, HTTP의 보안 버전을 사용하는 웹 사이트를 로드할 때마다 TLS 프로토콜에서는 웹 사이트의 디지털 인증서(SSL 인증서 또는 TLS 인증서라고 함)를 사용하여 웹 사이트를 인증합니다.이메일 발신자를 인증하는 DKIM은 인증 요소를 확인하는 대신 이 방법을 사용하는 기술의 또 하나의 예입니다.DKIM은 이메일 공급자가 스팸 이메일을 분류하고 차단하는 데 도움이 됩니다.
다단계 인증(MFA)은 하나가 아닌 두 가지 이상의 인증 요소를 확인하여 개인의 신원을 확인하는 프로세스입니다.MFA는 단일 요소 인증보다 강력한 인증 유형입니다. 그 이유는 이러한 요소 중 하나를 위조하는 것보다 두 가지 요소를 위조하는 것이 훨씬 더 어렵기 때문입니다.
공격자는 Bob의 사용자 이름과 비밀번호를 훔칠 수 있습니다( 피싱 공격을 통해).그러나 Bob이 얼굴도 스캔해야 하는 경우 공격자는 얼굴이 Bob의 얼굴과 같지 않기 때문에 Bob의 신원을 위조할 수 없습니다.또는 Bob이 비밀번호를 입력하는 것 외에 하드 토큰을 컴퓨터에 연결해야 하는 경우 공격자는 이 토큰도 훔쳐야 합니다.가능하기는 하지만, 그러한 절도는 훨씬 더 어려우므로 계정 탈취 가능성이 줄어듭니다.
진정한 MFA의 경우 별도의 요소를 확인해야 합니다. 한 요소의 여러 인스턴스를 평가하는 것은 MFA가 아닙니다. 예를 들어 애플리케이션에서 사용자에게 비밀번호를 입력하고 보안 질문에 답하여 인증하도록 하는 경우 이는 여전히 단일 요소 인증입니다. 비밀번호 입력 및 보안 질문은 모두 "대상자가 알고 있는 것" 요소를 평가합니다.
MFA에서 제공하는 보안 강화로 인해 MFA는 개인 네트워크에 액세스하는 모든 사용자 및 장치에 대해 ID 확인이 필요한 보안 모델인 Zero Trust 보안의 핵심 원칙입니다.
2단계 인증(2FA)은 정확히 두 가지 요소가 사용될 때 MFA를 지칭하는 이름입니다.2단계 인증의 가장 일반적인 유형은 "알고 있는 것" + "가지고 있는 것"입니다.예를 들어, 비밀번호를 입력하는 것 외에도 많은 사람들이 은행 계좌에 액세스하기 전에 휴대전화로 코드를 전송받았습니다(이 요소의 "소프트 토큰" 버전의 예).
오늘날 많은 기업에서 피싱 공격의 영향을 줄이기 위해 2FA를 사용합니다. 예를 들어 Google은 인증을 위해 하드 토큰과 함께 2FA를 사용하여 계정 탈취 공격을 제거할 수 있었습니다.
인증은 신원 확인과 관련이 있는 반면 권한 부여는 권한 또는 보호된 시스템 또는 리소스에 대한 액세스 권한을 얻은 사람이 수행할 수 있는 작업과 관련됩니다.
Bob이 회사의 마케팅 부서에서 일한다고 가정해 보겠습니다. Bob은 비밀번호를 입력하고 얼굴을 스캔하며 하드 토큰을 삽입하여 회사 네트워크에 로그인합니다. 이 때 인증이 완료됩니다.
로그인 후 Bob은 회사 소유의 모든 데이터 파일에 액세스할 수는 없습니다. 권한 부여에 따라 Bob이 볼 수 있는 것과 볼 수 없는 것이 결정됩니다. 마케팅 담당자로서 Bob은 회사에서 마케팅 메시지를 보낼 잠재 고객 목록과 같은 일부 데이터를 볼 수 있는 권한이 있지만, 회사의 주요 코드베이스나 직원 급여 목록 등 다른 데이터는 볼 수 없습니다.
자세한 내용은 인증과 권한 부여의 에 대한 글을 참조하세요.
현대의 기업 직원은 다양한 클라우드 기반 애플리케이션에 인증받아 접속해야 합니다. 이로 인해 직원들은 여러 인증 요소 집합(각 애플리케이션에 대해 하나씩)을 설정해야 하며 잠재적인 보안 문제가 발생합니다.
싱글 사인온(SSO)은 사용자가 한 번만 인증할 수 있도록 해주는 서비스입니다.사용자는 SSO 서비스에 로그인한 다음 필요에 따라 각 애플리케이션에 디지털 인증 메시지를 보내면 이 인증이 모든 애플리케이션에 전달됩니다.
SSO를 사용하면 또한 IT 팀에 보안 정책을 시행할 단일 지점이 제공됩니다. 모든 애플리케이션에서 2FA를 지원하는 것은 아니지만, SSO 서비스가 지원하는 경우 2FA를 어쨌든 사용할 수 있습니다. IT 팀은 또한 SSO 서비스를 통해 암호 길이 및 복잡성에 대한 요구 사항을 적용할 수 있으므로 사용자가 여러 암호를 기억해야 하는 부담을 덜 수 있습니다.
SSO 인증 메시지는 SAML(Security Assertion Markup Language)이라는 프로토콜을 사용합니다.SAML은 사용자가 자신이 누구인지 외부 애플리케이션에 알리는 표준화된 방법입니다.
사용자를 인증하는 메시지를 SAML "어설션"이라고 합니다. 애플리케이션에서 사용자에 대한 SAML 어설션을 수신하면 SSO 서비스가 이미 이를 수행했다는 것을 알고 있으므로 자체적으로 사용자를 인증할 필요가 없습니다.
OpenID Connect(OIDC)는 SSO 공급자가 점점 더 많이 사용하고 있는 또 하나의 인증 프로토콜입니다. OIDC는 SAML과 유사하게 작동하지만, 데이터 형식을 다르게 지정합니다. SAML은 XML을 통해 데이터 형식을 지정하지만, OIDC는 JSON을 사용합니다.
Cloudflare에서는 모든 주요 SSO 공급자와 함께 작동하는 Zero Trust 플랫폼을 제공합니다.사용자가 SSO 서비스에 인증하면 Cloudflare에서는 클라우드 및 온프레미스 애플리케이션 전반에 걸쳐 일관된 액세스 제어를 시행합니다.브라우저 격리, 보안 웹 게이트웨이, DNS 필터링 , 기타 Zero Trust 기능을 포함하는 이 플랫폼에 대한 자세한 내용은 제품 페이지를 참조하세요.