KR-20260060733-A - AUTHENTICATION METHOD, AUTHENTICATION DEVICE AND AUTHENTICATION SYSTEM
Abstract
실시예는, 인증 장치를 통해 등록을 수행하는 단계; 및 상기 등록이 이루어진 인증 장치를 통해 인증을 수행하는 단계;를 포함하고, 상기 등록을 수행하는 단계는, 등록 챌린지와 자격 증명 생성 요청을 사용자 단말로부터 수신하는 단계; 상기 인증 장치는 개인키-공개키 쌍과 상기 개인키를 기반으로 자격증명(Credential) ID를 생성하는 단계; 및 상기 공개키와 상기 자격 증명 ID를 사용자 단말로 송신하는 단계;를 포함하고, 상기 자격증명 ID는 PUF 값이 적용되는 인증 방법을 개시한다.
Inventors
- 심형섭
- 강봉호
- 황우중
Assignees
- 아이씨티케이 주식회사
Dates
- Publication Date
- 20260506
- Application Date
- 20241025
Claims (20)
- 인증 장치를 통해 등록을 수행하는 단계; 및 상기 등록이 이루어진 인증 장치를 통해 인증을 수행하는 단계;를 포함하고, 상기 등록을 수행하는 단계는, 등록 챌린지와 자격 증명 생성 요청을 사용자 단말로부터 수신하는 단계; 상기 인증 장치는 개인키-공개키 쌍과 상기 개인키를 기반으로 자격증명(Credential) ID를 생성하는 단계; 및 상기 공개키와 상기 자격 증명 ID를 사용자 단말로 송신하는 단계;를 포함하고, 상기 자격증명 ID는 PUF 값이 적용되는 인증 방법.
- 제1항에 있어서, 상기 자격증명(Credential) ID를 생성하는 단계에서, 상기 생성된 자격증명 ID, Authenticator Data와 Client Data Hash에 증명 개인키로 증명 서명을 생성하는 단계;를 포함하는 인증 방법.
- 제2항에 있어서, 상기 증명 개인키는 상기 인증 장치에 내장된 PUF 값으로 생성되는 인증 방법.
- 제2항에 있어서, 상기 증명 개인키는 PUF 값을 통해 암호화되어 상기 인증 장치 내에 저장되는 인증 방법.
- 제2항에 있어서, 상기 증명 개인키는 AES-256-CBC 방식으로 상기 PUF 값을 사용해 암호화되는 인증 방법.
- 제2항에 있어서, 상기 증명 개인키로 증명 서명을 생성하는 단계 이후에, 증명 객체를 생성하고 상기 사용자 단말을 통해 서버로 전송하는 단계;를 더 포함하는 인증 방법.
- 제6항에 있어서, 증명 객체는 Authenticator Data, Client Data Hash 및 증명 서명(Attestation Statement)을 포함하는 인증 방법.
- 제7항에 있어서, 상기 서버에 의해 상기 증명 서명이 검증되어 상기 인증 장치가 신뢰할 수 있는지 판단되는 인증 방법.
- 제8항에 있어서, 상기 서버에 의해 증명 공개키로 상기 증명 서명을 검증되는 인증 방법.
- 제9항에 있어서, 상기 증명 공개키는 상기 서버가 상기 인증 장치로부터 상기 증명 객체를 송신할 때 함께 송신되는 인증 방법.
- 제9항에 있어서, 상기 자격증명(Credential) ID를 생성하는 단계에서, PUF 기반으로 HMAC-SHA256 값을 생성하는 단계;를 더 포함하는 인증 방법.
- 제11항에 있어서, 상기 HMAC-SHA256 값은 상기 자격증명 ID와 함께 사용자 단말로 송신되는 인증 방법.
- 제1항에 있어서, 상기 자격증명(Credential) ID를 생성한 이후에, 상기 개인키를 저장하는 단계;를 더 포함하는 인증 방법.
- 제1항에 있어서, 상기 사용자 단말로 송신된 공개키와 자격 증명 ID는 서버로 재송신되는 인증 방법.
- 제1항에 있어서, 상기 공개키는 서버에 저장되어 등록되는 인증 방법.
- 제1항에 있어서, 상기 자격 증명 생성 요청을 송신하는 단계 이후에, 제1 인증 정보를 수신하는 단계; 및 상기 제1 인증 정보를 저장하는 단계;를 더 포함하는 인증 방법.
- 제1항에 있어서, 상기 등록이 이루어진 인증 장치를 통해 인증을 수행하는 단계는, 인증 챌린지와 자격 증명 ID를 수신하는 단계; 상기 개인키로 인증 챌린지에 서명하여 사용자 단말로 송신하는 단계;를 포함하는 인증 방법.
- 제17항에 있어서, 상기 서명된 챌린지는 서버로 전송되는 인증 방법.
- 제1항에 있어서, 서버에 의해 서명된 챌린지가 상기 공개키에 의해 복호화되어 유효성이 확인되는 인증 방법.
- 사용자 단말과 통신하는 인증 장치에 있어서, 통신 모듈; 메모리; 및 상기 통신 모듈 및 저장부 메모리 중 적어도 하나와 작동적으로 연결되는 프로세서를 포함하고, 상기 프로세서는, 인증 장치에 대한 등록을 수행하고, 그리고 상기 등록된 인증 장치에 대해 인증을 수행하며, 상기 등록을 수행하는 경우, 등록 챌린지와 자격 증명 생성 요청을 사용자 단말로부터 수신하고, 상기 인증 장치는 개인키-공개키 쌍과 상기 개인키를 기반으로 자격증명(Credential) ID를 생성하고, 그리고 상기 공개키와 상기 자격 증명 ID를 사용자 단말로 송신하고, 상기 자격증명 ID은 PUF 값이 적용되는 인증 장치.
Description
인증 방법, 인증 장치 및 인증 시스템{AUTHENTICATION METHOD, AUTHENTICATION DEVICE AND AUTHENTICATION SYSTEM} 실시예는 인증 방법, 보안 모듈 및 이를 포함하는 전자 장치에 관한 것이다. 70년대 초반, UNIX에서 처음 사용되기 시작한 아이디/패스워드 인증(이하, 패스워드 인증)은 50년이 지난 현재까지도 여전히 가장 많이 사용되는 사용자 인증 방식이다. 패스워드 인증은 사용자가 기억하고 직접 입력해야 하는 특성상 경우의 수가 적기 때문에, 무차별 대입 공격(Brute-force attack)에 취약하다. 특히,'password','123456','asdf1234'와 같은 널리 알려진 패스워드들이 빈번히 사용됨으로 인해, 이를 이용한 사전공격(Dictionary attack)에 더욱 용이하게 패스워드가 해킹될 수 있다. IT 기술이 인터넷에서 스마트폰, 더 나아가 IoT까지 급속히 발전하면서 사용자 1인당 가입한 서비스들이 급증하고, 이와 함께 사용자가 관리해야 하는 계정정보 또한 증가한다. 이에 사용의 편의를 위해서 사용자는 보통 대부분의 가입 서비스에서 동일한 아이디와 패스워드를 사용하는데, 이는 하나의 서버 또는 계정 해킹 시에 파급력을 증폭시키는 원인이 된다. 최근, 이러한 취약한 패스워드 사용을 막기 위해 서버 측에서 패스워드 생성 정책, 예컨대, 0자리 이상 사용, 영어/특수문자/숫자 각 1자 포함 및 6개월마다 교체 등을 강제하고 있다. 따라서, 사용자는 복잡하고 자주 변경해야 하는 패스워드를 기억하는 것이 쉽지 않아, 패스워드를 적어 놓거나, 파일로 저장해 놓거나 또는 정책에 위배되지 않는 패턴화된 패스워드, 예컨대 '아이피@01', '아이피@02', '아이피@03'등을 사용하는 방식으로 우회하면서 오히려 패스워드 보안성을 더 저하시킨다. 전술한 바와 같은 패스워드의 취약점을 개선하기 위한 기술로 크게 두 가지가 존재한다. 첫번째는 패스워드를 사용자 대신 관리해주는 소프트웨어를 사용하는 것이다. 예컨대, LastPass, 알패스, 크롬 비밀번호 자동완성 등과 같은 패스워드 관리 도구로, 이는 사용자의 패스워드를 대신 저장하고, 사용자가 필요할 때 대신 입력해주는 도구들로 2010년 전후로 개발되어 사용 중이다. 그런데, 이러한 패스워드 관리 도구는 다음과 같은 문제점이 있다. 우선, 사용자가 저장된 패스워드를 사용할 때, 사용자 인증이 필요한데 이 사용자 인증 역시 패스워드 인증이라는 점이다. 즉, 마스터 패스워드로 다른 패스워드를 암호화하게 된다. 따라서, 마스터 패스워드 유출 시, 사용자의 모든 계정 정보가 유출될 위험이 있다. 실제로 2017년 9월에 알패스가 해킹되어 이슈가 된 바 있다. 또한, 항상 인터넷에 연결되어 있어야 하므로 서버 장애 시에는 서비스가 되지 않을 수 있고, 기업/기관의 사내 사설망에서 사용하기에 한계가 있다. 또한, 사용자의 모든 계정정보가 서버에 저장되기 때문에 데이터에 대한 소유권 등이 보장되지 않으며, 서비스 사업자를 전적으로 신뢰해야 한다. 두번째는 패스워드 대신에 지문, 홍채와 같은 생체정보 등을 이용해 사용자를 인증하는 방식이다. 이러한 인증 시장표준인 FIDO(Fast Identity Online)는 기존 인증 기술인 패스워드, 공인인증서 등을 대체하는 차세대 인증 기술로 2014년 12월 FIDO Alliance에서 제정되었으며, FIDO의 규격 중 일부(CTAP)가 국제표준인 W3C의 'WebAuthn'으로 발표된 바 있다. 더욱 나아가, 최근에는 단일 FIDO USB를 이용한 인증 방식이 주목받고 있다. FIDO USB는 사용자가 설정한 패턴 인식을 통해 소유권을 확인할 수 있다. 이에 따라 이러한 인증 방식은 인터넷을 통한 은행 업무, 증명서 발급 등의 개인 인증이 필요한 다양한 서버에 접속할 때 사용된다. 이러한 과정에서 사용자의 정보 유출을 방지하고, 인증의 안전성을 보장하기 위해 FIDO USB가 활용된다. 이처럼. 다양한 인증 수단의 조합 없이, 단일 장치를 통해 사용자의 소유권을 더욱 확실하게 인증할 수 있는 방법이 점점 더 중요해지고 있다. 도 1은 실시예에 따른 인증 시스템의 개념도이고, 도 2는 실시예에 따른 인증 시스템에서 인증 장치와 사용자 단말을 통한 인증을 나타낸 도면이고, 도 3은 실시예에 따른 인증 방법에서 등록 절차를 도시한 흐름도이고, 도 4는 실시예에 따른 인증 방법에서 인증 절차를 도시한 흐름도이고, 도 5는 도 3에서 CTAP(Client to Authenticator Protocol)을 설명하는 흐름도이고, 도 6는 도 4에서 CTAP(Client to Authenticator Protocol)을 설명하는 흐름도이다. 본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 제2, 제1 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제2 구성요소는 제1 구성요소로 명명될 수 있고, 유사하게 제1 구성요소도 제2 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다. 어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다. 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다. 또한, 일부 실시예는 기능적인 블록 구성들 및 다양한 처리 단계들로 나타내어질 수 있다. 이러한 기능 블록들의 일부 또는 전부는, 특정 기능들을 실행하는 다양한 개수의 하드웨어 및/또는 소프트웨어 구성들로 구현될 수 있다. 예를 들어, 본 개시의 기능 블록들은 하나 이상의 프로세서 또는 마이크로 프로세서들에 의해 구현되거나, 의도하는 기능을 수행하기 위한 회로 구성들에 의해 구현될 수 있다. 또한, 예를 들어, 본 개시의 기능 블록들은 다양한 프로그래밍 또는 스크립트 언어로 구현될 수 있다. 기능 블록들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다. 또한, 본 개시는 전자적인 환경 설정, 신호 처리, 및/또는 데이터 처리 등을 위하여 종래 기술을 채용할 수 있다. 모듈 및 구성 등과 같은 용어는 넓게 사용될 수 있으며, 기계적이고 물리적인 구성들로서 한정되는 것은 아니다. 이하, 첨부된 도면을 참조하여 실시예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 대응하는 구성 요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 도 1은 실시예에 따른 인증 시스템의 개념도이고, 도 2는 실시예에 따른 인증 시스템에서 인증 장치와 사용자 단말을 통한 인증을 나타낸 도면이다. 실시예에 따른 인증 시스템은 인증 장치(100), 사용자 단말(200) 및 서버(300)를 포함할 수 있다. 먼저, 클라이언트(client) 또는 사용자는 사용자 단말(200)(예: 랩톱 컴퓨터)에서 자신의 자격(신원)을 인증하려고 한다. 인증 장치(100)는 사용자의 인증 정보(소정의 패턴)를 획득하여 사용자 단말(200)로 전달하고, 사용자 단말(200)은 서버(300)와 협조 동작하여 FIDO 인증을 수행할 수 있다. 인증 정보(소정의 패턴)은 사용자 단말(200)에 실장된 버튼을 통해 사용자가 푸쉬, 터치 등을 동작하는 것들을 포함할 수 있다. 예컨대, 사용자가 버튼을 길게, 짧게, 강하게, 약하게 등으로 푸쉬 또는 터치하고, 이러한 패턴이 인증 정보가 될 수 있다. 나아가, 이러한 패턴을 이용하여 사용자에 대한 인증이 수행될 수 있다. 그리고 인증 장치(100)는 사용자 단말(200)과 일체로 구성될 수도 있고, USB 등으로 연결하여 사용할 수도 있다. 예를 들어, 사용자 단말(200)은 스마트폰, 태블릿, 랩탑, 퍼스널 컴퓨터 등 다양한 컴퓨팅 장치, 스마트 시계, 스마트 안경 등 다양한 웨어러블 기기, 스마트 스피커, 스마트 TV, 스마트 냉장고 등 다양한 가전장치, 스마트 신분증, 스마트 신용카드, 데이터 저장 장치, 스마트 차량, IoT 기기 등을 포함할 수 있다. 그리고 실시예에 따른 인증 장치(100)는 프로세서, PUF, 메모리 및 통신 모듈을 포함할 수 있다. 프로세서는 인증 장치(100)에서 수행되는 동작들을 제어하는 장치로서, 예를 들어, CPU, MCU 등을 포함할