
라이브니스(Liveness)는 인증 대상이 실제 살아있는 사람이며, 지금 현재 이 시간에 이 자리에 있다는 것을 증명하는 개념입니다. 정지된 이미지, 녹화된 영상, 3D 모델, 마스크 같은 것이 아니라, 실제 살아있는 얼굴이 카메라를 통해 전송되고 있다는 것을 확인하는 것입니다. 이는 단순한 얼굴 인식을 넘어 더욱 높은 수준의 보안을 제공합니다.
라이브니스 검증이 중요한 이유는 앞서 논의한 여러 공격 기법들을 동시에 방어하기 때문입니다. 사진 공격, 영상 재생 공격, 딥페이크, 3D 마스크, 종이 마스크 등 다양한 방식의 스푸핑 공격이 있지만, 라이브니스 검증은 이 모든 공격에 대응할 수 있습니다. 왜냐하면 이들 공격은 모두 실제 사람의 자연스러운 생체 신호를 완벽하게 복제할 수 없기 때문입니다.
라이브니스 검증에는 두 가지 접근 방식이 있습니다. 수동적 라이브니스는 사용자가 아무 행동도 하지 않은 채, 시스템이 자동으로 생체 신호를 감지하는 방식입니다. 눈깜빡임, 눈동자 움직임, 피부 색상 변화, 미세한 얼굴 움직임 같은 자연스러운 신호들을 모니터링합니다. 이 방식의 장점은 사용자 불편이 거의 없다는 것입니다.
반면 능동적 라이브니스는 사용자에게 특정 행동을 요청합니다. ''고개를 좌우로 움직여 주세요'', ''입을 벌려 주세요'', ''눈을 크게 떠 주세요'' 같은 지시를 사용자가 수행하면, 시스템이 이 행동의 자연스러움과 진정성을 평가합니다. 이 방식의 장점은 더욱 정교한 공격도 차단할 수 있다는 것입니다. 두 가지 방식을 적절히 결합하면, 높은 수준의 보안과 사용자 편의성을 동시에 확보할 수 있습니다.

라이브니스를 검증하기 위해 감지할 수 있는 생체 신호는 매우 다양합니다. 가장 기본적인 것은 눈깜빡임입니다. 자동으로 발생하는 눈깜빡임은 개인마다 고유한 패턴을 가지며, 이를 모방하기는 매우 어렵습니다. 또한 눈깜빡임은 정지된 이미지에서는 발생할 수 없고, 단순한 영상 재생에서도 자연스럽게 나타나지 않습니다.
동공의 반사도 중요한 신호입니다. 카메라에서 나오는 빛이 눈에 반사될 때 발생하는 반사광 위치는 사람의 실제 얼굴에서만 특정 방식으로 나타납니다. 또한 동공은 주변 조명에 따라 자동으로 수축과 팽창을 반복합니다. 피부의 혈류 신호도 매우 미세하지만 중요합니다. 피부 아래의 혈관을 흐르는 혈액의 색상 변화를 감지하면, 실제 혈류가 있는지를 확인할 수 있습니다. 이 신호는 사진이나 정교한 마스크에서는 나타날 수 없습니다.

사용자에게 특정 행동을 요청할 때는 무작위성이 중요합니다. ''고개를 오른쪽으로 기울이세요''와 같이 매번 다른 지시를 사용합니다. 이렇게 함으로써 미리 준비된 동작이나 반복된 행동으로 우회하는 것을 방지합니다.
또한 요청된 행동의 자연스러움을 평가합니다. 사람이 실제로 고개를 움직일 때의 가속도, 감속도, 움직임의 부드러움 같은 물리적 특성이 있습니다. 반면 마스크를 쓴 사람이나 녹화 영상에서는 이러한 물리적 특성이 다르게 나타납니다. 또한 사용자의 반응 시간도 평가됩니다. 지시를 받은 후 행동을 시작할 때까지의 시간, 행동의 정확도, 행동 완료 후의 자세 같은 요소들을 종합적으로 평가하여, 실제 사람이 자발적으로 행동했는지를 판정합니다.

라이브니스는 사용자가 주변 환경과 상호작용하는 방식으로도 확인할 수 있습니다. 카메라 앞에서 손가락을 움직이면 손가락이 얼굴을 가리는 방식으로 자연스럽게 일시적 폐색(occlusion)이 발생합니다. 정지된 이미지나 영상 재생에서는 이러한 현실적인 상호작용이 나타날 수 없습니다.
또한 조명의 반응도 중요합니다. 사용자가 움직일 때 조명이 얼굴에 비추는 방식이 변하면, 피부에 반사되는 빛도 자연스럽게 변합니다. 이 변화는 순간적이고 자연스러워야 하는데, 마스크나 인쇄물에서는 이러한 변화가 부자연스럽거나 일어나지 않습니다. 카메라와의 거리 변화도 라이브니스의 신호입니다. 사용자가 카메라에 더 가까워졌다 멀어질 때, 얼굴의 크기와 각도가 자연스럽게 변합니다. 이 변화의 물리성을 분석하면, 실제 움직임인지 가짜 영상인지를 판단할 수 있습니다.
여러 신호들을 개별적으로 분석하는 것도 중요하지만, 이들을 종합하여 최종 라이브니스 점수를 산출하는 것이 더욱 중요합니다. 머신러닝 모델을 사용하여 다양한 신호들의 조합을 학습하고, 종합적인 판정을 내립니다.
훈련 데이터에는 실제 사람의 얼굴 영상과 다양한 스푸핑 공격의 영상이 포함되어야 합니다. 모델은 이들로부터 공통의 특징과 차이를 학습하고, 새로운 입력에 대해 얼마나 강한 라이브니스 신호가 있는지를 점수로 표현합니다. 또한 모델은 연속적으로 개선됩니다. 미탐지된 공격 사례가 발견되면 이를 훈련 데이터에 추가하고, 모델을 재훈련합니다. 이러한 지속적 개선을 통해 새로운 스푸핑 공격에도 대응할 수 있게 됩니다.

라이브니스 검증의 난이도는 상황에 따라 조정될 수 있습니다. 저위험 거래의 경우 간단한 수동 신호 감지만으로도 충분하지만, 고위험 거래의 경우 더욱 복잡한 능동 행동 검증이 필요합니다. 또한 고객의 과거 기록도 고려됩니다. 평소 검증에 성공하는 고객은 더욱 간단한 검증으로도 충분하지만, 이전에 의심 거래가 있었던 고객은 더욱 강화된 검증이 필요합니다.
또한 검증 과정에서 확신도가 낮으면 자동으로 난이도를 상향합니다. 첫 번째 검증에서 라이브니스 점수가 임계값을 간신히 통과했다면, 추가 검증을 자동으로 요청합니다. 이러한 적응형 접근으로 인해, 정상 고객의 불편함을 최소화하면서도 보안은 최대화할 수 있습니다.
인증 과정이 끝난 후에도 라이브니스 모니터링이 계속될 수 있습니다. 거래가 진행되는 동안 카메라가 계속 사용자의 얼굴을 모니터링하여, 갑자기 다른 사람으로 바뀌거나 스푸핑 신호가 나타나는지 확인합니다. 이를 통해 거래 중간에 일어날 수 있는 계정 탈취 같은 사건도 탐지할 수 있습니다.
또한 세션 동안의 라이브니스 신호도 추적됩니다. 처음에는 높은 라이브니스 점수였지만 시간이 지나면서 점수가 떨어진다면, 카메라의 연결이 손상되었거나 영상이 조작되기 시작했을 가능성이 있습니다. 이러한 실시간 모니터링을 통해 거래의 안전성을 지속적으로 보장할 수 있습니다.
라이브니스 검증은 높은 수준의 보안을 제공하지만, 카메라를 통한 지속적 모니터링으로 인한 프라이버시 우려도 있습니다. 따라서 수집된 얼굴 영상을 최소한으로 유지하고, 검증 목적으로만 사용하며, 일정 기간 후 자동 삭제하는 정책이 필요합니다.
또한 사용자에게 투명하게 설명해야 합니다. 어떤 정보를 왜 수집하는지, 어떻게 보호하는지, 언제 삭제하는지를 명확하게 알려야 합니다. 또한 사용자는 라이브니스 검증을 거부할 권리도 있어야 합니다. 대신 거부할 경우 다른 높은 수준의 인증 방식을 사용해야 하는 등의 대안이 제공되어야 합니다. 이러한 방식으로 보안과 프라이버시 사이의 균형을 맞출 수 있습니다.
