사진 암호를 이용한 로그인
사진 암호는 현재 개발자 프리뷰 상태인 Windows 8에 로그인하는 새로운 방법입니다. 이 로그인 방법을 개발하게 된 배경과 안전성 및 개발 방식에 대해 알아보겠습니다. 터치스크린을 사용하게 되어 좋은 점 중 하나는 PC에 로그인하는 새로운 방식을 생각해 낼 수 있는 기회가 생긴다는 것입니다. 많은 사람들은 암호 없이 PC를 실행하면 불편이 해소될 것으로 생각하지만 실제로 그렇지 않은 경우가 대부분이며 그다지 현명한 생각은 아닙니다. 터치스크린에서 빠르고 자연스럽게 로그인할 수 있는 방식을 제공하는 일은 매우 중요하며, 터치스크린 휴대전화에서 알파벳 암호를 사용하는 것이 불편하다는 점은 누구나 알고 있습니다. 이 글은 사용자 중심 경험 팀(You-Centered Experience team)에서 프로그램 관리자로 근무하는 Zach Pace가 작성했으며 Windows 8에서 사진 암호의 구현과 보안에 대한 내용을 살펴봅니다. 참고로, 사진 암호에서도 마우스의 클릭 및 끌기 동작을 사용할 수 있습니다.
- Steven
터치스크린으로 PC에 로그인하는 것은 다들 번거롭다고 생각합니다. 오늘날에는 숫자, 기호, 대소문자 등을 조합하여 사용해야 하는 엄격한 암호 정책이 시행되고 있기 때문에 터치 키보드로 길고 복잡한 암호를 입력하려면 30초 이상 걸릴 때도 있습니다. Windows 8은 사용감이 빠르고 자연스러워야 한다는 신념에 따라 개발되고 있으며 그 시작은 로그인입니다.
시장에 나와 있는 다른 터치스크린 환경에서도 이 문제를 해결하기 위해 고심해 왔으며 전통적으로는 숫자 PIN을 사용하기도 했습니다. PIN은 훌륭한 해결책입니다. 이 방법은 거의 대부분의 사람들이 알고 있거나 사용해 본 적이 있으며 키패드를 터치하는 방식이라 사용하기도 간편합니다. 하지만 개선의 여지가 있다는 것도 알고 있습니다.
숫자 조합을 사용하는 경우 기억하기 쉬운 숫자일수록 안전하지 못하다는 점 때문에 문제가 되기도 합니다. 1111 또는 1234 등 너무 평범한 숫자 조합도 문제가 되지만 해커가 특정인에 대한 개인 정보를 알고 있는 경우라면(개인 정보 입수도 그리 어렵지 않음) 흔히 알려진 사적인 날짜로 구성된 PIN도 유추할 수 있습니다. 이러한 경우 개인에게 특정한 숫자는 보안 취약성을 높이는 역할을 할 수 있습니다. 이 때문에 새로운 암호 방식을 모색하게 되었고 사용자 개인에게 특정하면서도 빠르고 자연스러운 터치 로그인 방식을 고안해 내게 되었습니다.
개인적 로그인 경험
사진 암호의 핵심은 두 가지 상호 보완적 요소로 이루어집니다. 사용자가 선택한 사진과 일련의 동작이 바로 그것입니다. 정형화된 Microsoft 이미지를 선택하는 대신 사용자가 사진을 제공합니다. 이렇게 하면 보안 효과가 커지고 암호를 기억하기도 쉬우니까요. 사용자가 사진 내용을 결정하고 자신에게 중요한 부분을 선택합니다. 이 경우 사용자들이 휴대전화 잠금 화면에 좋아하는 사진을 넣는 것과 마찬가지로 자신이 좋아하는 사진을 보게 되는 효과도 있습니다.
기본적으로 사진 암호 기능은 사용자에게 중요한 이미지 부분이 강조되도록 디자인되었으며, 이를 빠르고 확실하게 수행하려면 일련의 동작이 필요합니다. 사용하기 가장 좋은 일련의 동작을 판별하기 위해 연구 참가자들에게 여러 개의 사진을 나눠 주고 이미지에서 각자 중요하게 느끼는 부분을 강조 표시하도록 요청했습니다. 그 밖에 다른 언급은 하지 않았습니다. 그 결과 이들로부터 세 가지 기본적인 행동을 관찰할 수 있었습니다. 즉, 위치를 표시하고, 영역을 서로 연결하거나 경로를 강조하고, 여러 영역을 하나로 묶는 행동입니다. 이러한 아이디어를 각각 터치, 선 및 원과 연결시켰습니다. 이는 사람들이 가장 중요하게 느끼는 이미지 부분을 나타낼 수 있었던 최소한의 동작입니다.
또한 원과 선 동작에는 개별화와 보안을 추가할 수 있는 특성인 방향성이 있습니다. 선택한 사진에서 원이나 선을 그릴 때 Windows는 사용자가 원이나 선을 그리는 방법을 기억합니다. 따라서 사용자의 사진 암호를 그대로 따라 하려면 사용자가 강조한 이미지 부분과 순서를 알아야 할 뿐만 아니라 사용자가 그린 원 및 선의 방향과 시작 및 끝 지점까지 알아야 합니다.
자유 형식 동작 사용에 대해서도 연구했습니다. 여러 가지 디자인 반복과 연구를 통해 이 개념을 탐구하면서 이 시스템에 중대한 문제가 있음을 발견했습니다. 바로 로그인에 걸리는 시간입니다. 앞서 언급했듯이 터치 키보드보다 빠른 방법을 찾는 것이 목적이었습니다. 이 기능을 혁신적으로 구현하는 과정에서 새로운 방식의 성공 여부를 판단한 기준은 터치 키보드로 로그인하는 데 걸리는 시간이었습니다. 사람들에게 자유 형식 동작을 사용하도록 했을 때는 로그인 시간이 상당히 길어졌습니다. 그 원인은 개념 자체에 있었는데, 필요 이상으로 정확해야 한다는 생각 때문에 이미지를 너무 세부적으로 따라가려고 하기 때문입니다.
제한적 동작을 사용하는 방법은 사람들이 세부적으로 따라가는 대신 영역을 강조하기만 하면 되기 때문에 자유 형식을 사용하는 방법보다 평균 3배 이상 빨랐습니다. 또한, 일련의 동작을 반복적으로 사용하면서 사람들이 이 작업을 수행하는 시간이 4초 이내로 일관되게 단축될 수 있다는 사실도 알게 되었습니다. 자유 형식 모델의 경우 평균 17초인 것과 비교하면 매우 빠른 시간입니다. 자유 형식 방법을 계속해서 사용한 결과 많은 참가자들이 자유 형식 동작을 변화시켜 간단한 선과 위치를 선택하고 싶어한다는 것을 알게 되었습니다.
작동 방식
이미지를 선택하면 이미지가 격자로 세분됩니다. 이미지에서 가장 긴 길이가 100개의 선분으로 나눠집니다. 그러면 이 비율을 바탕으로 더 짧은 길이가 세분되어 동작을 그릴 수 있는 격자가 만들어집니다.
사진 암호를 설정하기 위해 방금 만든 격자 위에 동작을 놓습니다. 개별 지점은 격자에서 해당 좌표(x,y) 위치로 정의됩니다. 선의 경우 시작 좌표와 끝 좌표 및 선이 그려지는 순서가 기록됩니다. 순서 정보는 선이 그려지는 방향을 확인하는 데 이용됩니다. 원의 경우에는 중앙 지점의 좌표, 원의 반경 및 원을 그리는 방향이 기록됩니다. 터치의 경우 터치 지점의 좌표가 기록됩니다.
사진 암호로 로그인할 때는 사용자가 제공하는 동작을 평가하여 사진 암호 설정 시 사용한 동작과 비교합니다. 각 동작 사이의 차이를 중점적으로 살펴보고 일련의 동작에 존재하는 오차 범위를 기준으로 로그인을 인증할 것인지 여부를 결정합니다. 원을 그려야 하는데 선을 그린 경우와 같이 동작 종류가 틀린 경우 인증은 항상 실패합니다. 동작의 종류, 순서 및 방향이 모두 정확하게 일치하면 각 동작이 지난 번 동작과 얼마나 떨어져 있는지를 평가하여 로그인을 인증하기에 충분히 근접한지를 결정합니다.
터치 동작을 예로 들어 보겠습니다. 터치는 고유 순열의 수 및 이후 분석 측면에서 세 가지 동작 중 가장 단순합니다. 사용자가 터치한 지점이 기준점과 일치하는지를 평가할 때는 사용자가 사진 암호의 일부로 기록한 동작과 방금 수행한 동작 사이의 거리를 비교하는 스코어링 함수가 이용됩니다. 점수는 완벽하게 일치할 때를 100%로 하여 완전히 멀어져 있을 때의 0%까지 감소합니다. 점수가 90% 이상이면 지점이 일치하는 것입니다. 100% 일치에 거의 인접한 지점에 대한 스코어링 함수를 시각적으로 나타내 보았습니다.
일치하는 것으로 점수가 매겨진 영역은 반경이 3인 원입니다. 특정 터치의 경우에는 총 37개의 (X,Y) 위치가 일치 결과로 나옵니다. 선이나 원에 연관된 변수에 대해서도 이와 유사한 계산을 수행합니다.
보안 및 동작 수
사진 암호를 사용하기 위해 필요한 동작 수를 살펴보면서 보안, 기억 용이성, 속도 등도 고려했습니다. 서로 상충되기도 하는 이러한 특성들을 균형적으로 조절하여 사용하기에 안전한 최적의 사용자 경험을 실현하려고 노력했습니다. 보안 목표에 부합하는 적합한 동작 수를 결정하기 위해 사진 암호를 PIN이나 일반 텍스트 암호 등 다른 인증 방법들과도 비교했습니다.
고유 PIN 수에 대한 분석은 매우 간단합니다. 4자리 PIN(각각 10개의 독립적 가능성을 가진 4개의 숫자)은 104 = 10,000개의 고유한 조합이 존재한다는 것을 의미합니다.
영숫자 암호의 경우, 암호가 소문자(26개), 대문자(26개), 숫자(10개) 및 기호(10개)로 구성된 문자 수열이라고 가정하여 분석을 단순화할 수 있습니다. 가장 기본적인 형태로 암호가 n개의 소문자로만 구성된다면 **26n**개의 순열이 존재합니다. 암호가 1 ~ n개까지의 길이를 갖는 문자일 수 있다면 아래 개수만큼의 순열이 존재합니다.
예를 들어, 8자리 문자 암호에는 2,080억 개의 조합이 가능하므로 대부분의 사람들은 매우 안전하다고 생각할 것입니다.
그러나 사용자가 암호를 선택하는 방식은 대부분 임의성이 매우 떨어집니다. 사람들은 자신이 사용하는 장치 암호로 평범한 단어와 문구, 가족 이름 등을 사용합니다.
이 시나리오에서는 사용자가 소문자 2개, 대문자 1개, 숫자 또는 기호 1개만으로 암호를 구성할 경우를 가정하겠습니다. 여기서, 대문자와 숫자/기호는 암호의 어떤 위치에든 올 수 있습니다. 이 경우 고유한 암호의 수는 다음과 같습니다.
다음 표는 암호 길이에 따라 다양한 문자 집합을 가정했을 때 결과 값이 차지하는 크기가 어떻게 달라지는지를 보여 줍니다.
암호 길이 |
고유한 암호 수 |
1 |
해당 없음 |
2 |
해당 없음 |
3 |
81,120 |
4 |
4,218,240 |
5 |
182,790,400 |
6 |
7,128,825,600 |
7 |
259,489,251,840 |
8 |
8,995,627,397,120 |
사진 암호를 고려해 볼 때 각 동작 종류에 대해 유사한 분석을 해 볼 수 있습니다. 아래 표 정보에는 고유한 동작의 위치와 인식 알고리즘의 관용도가 모두 고려되어 있습니다.
가장 단순한 동작인 터치의 경우, 터치 수의 함수로 나타낸 고유 동작 집합의 수는 다음과 같습니다.
터치 수 |
고유한 동작 수 |
1 |
270 |
2 |
23,535 |
3 |
2,743,206 |
4 |
178,832,265 |
5 |
15,344,276,658 |
6 |
1,380,314,975,183 |
7 |
130,146,054,200,734 |
8 |
13,168,374,201,327,200 |
원 동작은 터치보다 복잡하지만 선보다는 덜 복잡합니다. 원의 상대적 보안 수준을 수치로 알아보기 위해, 해커가 원의 반경이 6 ~ 25 사이라는 사실을 알고 있다는 가정하에(원 동작을 추측하는 작업은 줄임) 추가적으로 X 및 Y 좌표 범위가 5 ~ 95 사이가 될 것으로 알고 있다고 가정할 경우 해커가 찾아내야 할 가능한 해법 수는 다음과 같습니다.
원의 개수 함수에 따른 고유 동작 집합의 수는 다음과 같습니다.
원의 수 |
고유한 동작 수 |
1 |
335 |
2 |
34,001 |
3 |
4,509,567 |
4 |
381,311,037 |
5 |
44,084,945,533 |
6 |
5,968,261,724,338 |
7 |
907,853,751,472,886 |
세 가지 종류 중 가장 복잡한 동작은 선입니다. 선은 정규화된 100 x 100 격자에 있는 2개의 지점과 이 지점을 연결하는 순서로 구성됩니다. 그 결과로 1억 개의 선을 그릴 수 있지만 선의 길이는 최소 5단위 이상이어야 하므로 사실상 고유한 선의 개수는 99,336,960개입니다. 해커가 해법 수를 상당히 줄이는 단순화 가정이 가능했던 원 추측에서와는 달리 선에는 이와 같은 확실한 단순화 해법이 없습니다. 선은 매우 짧은 선분일 수도 있지만 화면의 끝에서 끝을 가로지르는 선일 수도 있습니다. 선의 경우에 일치하는 개수는 다음과 같습니다.
선의 수 |
고유한 동작 수 |
1 |
1,949 |
2 |
846,183 |
3 |
412,096,718 |
4 |
156,687,051,477 |
5 |
70,441,983,603,740 |
각 동작의 보안 수준을 이해했으므로 이제 이러한 정보를 결합하여 여러 개의 동작을 포함하는 동작 집합을 평가할 수 있습니다. 이를 위해 3가지 동작 종류 모두에 대해 특정 동작 길이 n의 고유 동작 수를 합산하고 이것을 n 제곱 합니다. 이 사진 암호를 PIN 및 영숫자 암호 방식과 비교한 결과가 아래 표에 나와 있습니다.
길이 |
10자리 PIN |
단순한 a-z 문자 집합 암호 |
복잡한 문자 집합 암호 |
다중 동작 사진 암호 |
1 |
10 |
26 |
해당 없음 |
2,554 |
2 |
100 |
676 |
해당 없음 |
1,581,773 |
3 |
1,000 |
17,576 |
81,120 |
1,155,509,083 |
4 |
10,000 |
456,976 |
4,218,240 |
612,157,353,732 |
5 |
100,000 |
11,881,376 |
182,790,400 |
398,046,621,309,172 |
6 |
1,000,000 |
308,915,776 |
7,128,825,600 |
|
7 |
10,000,000 |
8,031,810,176 |
259,489,251,840 |
|
8 |
100,000,000 |
208,827,064,576 |
8,995,627,397,120 |
위에서 볼 수 있듯이 3가지 동작을 사용하면 충분한 수의 고유 동작 조합을 얻을 수 있으며 5개 또는 6개의 문자를 임의로 선택하여 사용하는 암호와 비슷한 보안 수준이 보장됩니다. 또한, 3가지 동작을 사용하면 사진 암호를 기억하기 쉽고 사용하기도 편리합니다.
고유한 조합의 수 외에도 반복적 공격 시도에 대한 두 가지 안전책을 도입하여 이 기능의 보안 수준을 더욱 높였습니다. PIN을 사용하는 휴대전화의 잠금 기능과 마찬가지로 사진 암호를 5회에 걸쳐 잘못 입력하면 일반 텍스트 암호로 로그인할 때까지 이 기능을 다시 사용할 수 없게 됩니다. 또한, 원격 및 네트워크 환경에서는 사진 암호의 사용이 금지되어 네트워크 공격으로부터 기능이 보호됩니다.
사진 암호는 텍스트 암호를 대체하는 것이 아니라 부가적인 로그인 방식으로 제공된다는 점을 알아야 합니다. 따라서 텍스트 암호에 대한 효과적인 힌트를 잘 관리하고 보호 메커니즘을 사용하여 언제나 로그인에 사용할 수 있도록 해야 합니다. 로그인 화면에는 한 번만 클릭하면 다른 암호 입력 방식으로 전환할 수 있는 옵션도 제공됩니다.
손자국으로 인한 보안 문제
사진 암호를 사용하는 사용자를 보호하기 위한 실용적 조치도 고려했습니다. 사람들은 터치스크린에 생긴 손자국 때문에 암호를 알아내기 쉬운 것은 아닌지 궁금해 합니다. 동작에는 순서, 방향 및 위치가 모두 변수로 작용하기 때문에 일상적으로 터치를 사용하는 화면에서는 물론, 완전히 깨끗한 화면에서도 손자국을 가지고 일련의 동작을 추측해 내는 것은 매우 어렵습니다.
그러나 여기서 제기되는 잠재적 위험성은 로그인하면서 남겨진 손자국이 인증 암호를 알아내는 단서를 제공할 수도 있다는 점입니다. 터치 키보드, 4자리 PIN, 사진 암호, 이 3가지 로그인 방식을 비교하여 로그인 암호 추측이 어느 정도로 용이한지를 살펴볼 수 있는데, 최악의 시나리오를 가정해 보겠습니다.
- 사용자가 화면을 먼지 하나 없이 깨끗하게 닦습니다.
- 사용자가 로그인 인증에 필요한 최소 위치만을 정확하게 터치합니다.
- 그런 다음 사용자가 더 이상 화면을 터치하지 않고 자리를 떠납니다.
- 해커가 태블릿을 훔쳐 인증에 사용된 모든 동작을 100% 정확하게 볼 수 있습니다.
물론, 이러한 상황은 일어나기 힘들겠지만 이 시나리오를 통해 3가지 형태의 인증과 이러한 공격 형태에 대한 각 인증 방식의 상대적 취약성을 비교해 볼 수 있습니다.
PIN 코드의 각 숫자는 이에 해당하는 자리에 손자국을 남깁니다. PIN에 n개의 숫자가 있고 모든 숫자가 고유하다면(유추하기 가장 어려운 경우), PIN의 숫자를 n! 가지 형태로 나열할 수 있습니다. 일반적인 4자리 PIN의 경우에는 24가지 조합이 가능합니다.
화상 키보드의 경우, n개 문자로 된 암호를 나열할 수 있는 방법의 수도 n! 가지입니다. 규정을 따른 암호라면 대체 문자 집합을 선택하기 위해 사용자가 일반적으로 Shift 키(또는 다른 단추)를 사용하게 됩니다. 물론 이 키를 사용한다는 점이 해커에게 노출되기는 하지만 입력 순서 중 언제 Shift 키를 사용했는지를 알아낼 수는 없습니다. 암호 입력에 Shift 키를 한 번만 누른다는 단순화 조건을 가정해 보더라도 가능한 암호 수는 n!·n가지나 됩니다.
동작을 배열할 수 있는 방법도 n!가지입니다. 동작 집합에 사용된 원과 선 요소가 하나씩 추가될 때마다 순열의 수는 2의 승수로 증가합니다. 모든 동작이 원이나 선이라면 가능한 순열 집합은 Shift 키를 사용하는 암호와 동일한 이 됩니다.
다음 표에는 다양한 암호 길이에 대한 각 방법의 순열 수가 요약되어 있습니다.
길이 |
PIN |
암호 |
Shift를 이용한 암호 |
터치만 있는 동작 |
선 및 원 동작 |
1 |
1 |
1 |
1 |
1 |
2 |
2 |
2 |
2 |
4 |
2 |
8 |
3 |
6 |
6 |
18 |
6 |
48 |
4 |
24 |
24 |
96 |
24 |
384 |
다시 말하지만 이러한 계산은 완전이 깨끗한 화면에서 손자국만으로 동작을 볼 수 있는 상황을 가정한 것입니다. 시스템을 매우 많이 사용하여 손자국이 많은 경우나 마우스와 키보드만 사용하는 경우와 같이 해커가 손자국을 가지고 어떤 유용한 정보도 얻을 수 없는 상황을 생각한다면 올바른 암호 조합을 찾아낼 가능성은 점점 더 없어집니다. 3가지 동작 종류와 방향이 있고 암호에 3개 이상의 동작을 사용해야 한다는 조건이 있기 때문에 가능한 동작 조합의 수는 위에서 언급했듯이 1,155,509,083가지에 이릅니다.
마지막으로 살펴볼 공격 형태는 이미지의 관심 지점 또는 이미지가 제시되었을 때 사람들이 일반적으로 선택하는 영역에 관한 것입니다. 연구 결과를 보면 사람들이 선택하는 영역 및 이들이 이 영역에서 그리는 동작의 종류 사이에 상관 관계를 찾기 어려웠기 때문에 이러한 종류의 공격은 대단히 신뢰성이 없는 것으로 입증되었지만 주어진 사진에 개의 관심 지점이 있다고 가정하고 이러한 공격을 분석해 볼 수 있습니다. 사용자가 터치, 원 및 선의 모든 조합을 자유롭게 사용하는 경우 총 순열의 수는 입니다. 여기서 n은 사진 암호의 길이입니다. 이것을 가지고 다음과 같이 가능한 조합의 수를 얻을 수 있습니다.
관심 지점 |
길이 |
5 |
10 |
15 |
20 |
1 |
75 |
200 |
375 |
600 |
2 |
5,625 |
40,000 |
140,625 |
360,000 |
3 |
421,875 |
8,000,000 |
52,734,375 |
216,000,000 |
4 |
31,640,625 |
1,600,000,000 |
19,775,390,625 |
129,600,000,000 |
일반적 이미지에 10개의 관심 지점이 있고 동작 연속 길이가 3개라고 가정했을 때 가능한 조합의 수는 800만 개이기 때문에 5번의 시도로 올바른 암호 순서를 추측해 낼 가능성은 매우 희박합니다.
사진 암호의 보안 수준에 상당히 만족하고는 있지만, 보안이 절대적으로 중요하고 완벽한 암호가 아니면 수용하지 않는 비즈니스 분야가 많다는 사실도 잘 알고 있습니다. 이 때문에 도메인 관리자에게 사진 암호를 사용해도 될지 여부를 자유롭게 결정할 수 있는 선택권을 주는 그룹 정책을 구현했습니다. 물론, 홈 PC에서도 사진 암호는 선택 사항입니다.
사진 암호 디자인 과정을 시작하면서 빠르고 자연스러우며 Windows 8의 일반 사용자에게 개별화된, 하지만 강력한 보안 수준도 제공하는 로그인 방법을 구상하려고 했습니다. 로그인 경험과 개념을 연구하고 개선하는 과정을 거치면서 안전하면서도 재미있게 사용할 수 있는 로그인 방법을 찾게 되었다고 생각합니다. 저희는 사진 암호에 매우 만족하고 있으며 Windows 8에서 이 사진 암호를 통해 나타나는 개인적인 특성에도 만족하고 있습니다. 여러분도 모두 만족하시기를 바랍니다.
- Zach