KR20190128531A - 씰링 및 원격 증명을 기반으로 하는 2차 인증 방법 및 시스템 - Google Patents
씰링 및 원격 증명을 기반으로 하는 2차 인증 방법 및 시스템 Download PDFInfo
- Publication number
- KR20190128531A KR20190128531A KR1020180076944A KR20180076944A KR20190128531A KR 20190128531 A KR20190128531 A KR 20190128531A KR 1020180076944 A KR1020180076944 A KR 1020180076944A KR 20180076944 A KR20180076944 A KR 20180076944A KR 20190128531 A KR20190128531 A KR 20190128531A
- Authority
- KR
- South Korea
- Prior art keywords
- authentication
- public key
- user terminal
- authenticator
- user
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0869—Network architectures or network communication protocols for network security for authentication of entities for achieving mutual authentication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/321—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
- H04L9/3213—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3226—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
- H04L9/3228—One-time or temporary data, i.e. information which is sent for every authentication or authorization, e.g. one-time-password, one-time-token or one-time-key
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3242—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Power Engineering (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
씰링 및 원격 증명을 기반으로 하는 2차 인증 방법 및 시스템이 개시된다. 컴퓨터로 구현되는 2차 인증 방법(Universal 2nd Factor)에 있어서, 인증자(authenticator) 설치를 위한 링크를 사용자 단말로 제공하는 단계, 상기 인증자를 기반으로 생성된 공개키를 등록하기 위한 등록 페이지를 제공하는 단계, 및 상기 사용자 단말로부터 신뢰 사이트(Relying Party)의 인증이 요청됨에 따라, 등록된 상기 공개키를 기반으로 상기 신뢰 사이트의 인증을 수행하는 단계를 포함할 수 있다.
Description
본 발명의 실시예들은 씰링(sealing) 및 원격 인증을 기반으로 웹인증 등을 제공하는 기술에 관한 것이다.
급증하는 사용자의 암호를 공격대상으로 하는 스피어 피싱(spear phishing) 캠페인은 공격 당하는 사람이 취약한 신뢰 사이트(Relying Parity, RP)의 암호를 추출한다. 서로 다른 웹서비스에서 같은 암호를 사용하는 추세는 암호가 쓸데없는 인증요소가 되는 문제를 악화시키고 있다. 이로 인해, 웹서비스 신뢰 사이트(RP)가 2차 인증(2nd Factor, 2FA)를 지원하는 것이 필연적으로 요구되고 있다.
2FA는 추가 증명을 요청하여 사용자의 신원 또는 계정이 도용당하지 않도록 웹 인증을 강화하도록 설계되었다. 수 많은 2FA 공급업체가 OTP, SMS 기반 OTP, 모바일 앱 인증자 등 다양한 인증자(authenticator)를 제안하였으나, 2FA 인증자는 한계가 존재한다. 예컨대, 아래의 비특허 문헌 [1] N. Cybersecurity and C. I. Center, "GRIZZLY STEPPE-Russian Malicious Cyber Activity," https://www.us-cert.gov/security-publications/GRIZZLY-STEPPE-Russian-Malicious-Cyber-Activity, February 2017. 및 [2] "APT28: At The Center of The Storm," https://www2.fireeye.com/WEB-2017-RPT-APT28.html, January 2017.에 제시된 DNC를 해킹한 APT28 해킹 그룹은 배치된 2FA 조치를 무력화 시킨 것으로 알려져 있으며, 피해를 입히는데 성공했다. 그리고, 국가표준기술 연구소(NIST)는 SNS 기반 OTP가 안전하지 못하면 정부 기관에서의 사용이 권장되지 않는다고 발표한 바 있다.
FIDO 동맹은 Universal Second Factor(U2F)라고 하는 2FA 공개 표준을 제안했다. 아래의 비특허 문헌 [3]S. Srinivas, D. Balfanz, and E. Tiffany, "Universal 2nd Factor (U2F) Overview," http://fidoalliance.org/specs/fido-u2f-v1.0-rd-20140209/fido-u2f-overview-v1.0-rd-20140209.pdf.에 제시된 U2F는 특수 목적의 하드웨어 장치를 사용하여 간단하고 강력한 인증을 제공하도록 설계된 프로토콜 사양이다. U2F 장치의 펌웨어를 제외한 U2F 장치 소유자를 포함한 모든 인증 참가자는, U2F 소유자의 ID를 나타내는 개인 키에 액세스할 수 없으므로, 순 사용자가 자신의 2FA 장치의 루트 암호를 제공할 가능성을 제거한다. 또한 장치의 제조업체의 개인 키가 절대로 장치를 떠나지 않는다는 전제하에, 신뢰할 수 있는 당사자에게 인증 펌웨어의 무결성을 입증한다. U2F의 보안은 호스트 실행환경에서 유효한 인증 로직의 격리를 활용하는 것이다. 또한 유효한 인증자격증명을 생성하는 유일한 방법은 물리적 접촉 또는 U2F 장치의 존재이다. 크롬(Chrome)과 오라클(Oracle) 브라우저는 내장된 U2F 프로토콜을 지원하도록 구현되므로, 신뢰 사이트(RP)는 U2F 전용 장치를 소요한 사용자의 인증 서비스에서 U2F를 지원 가능하다.
이처럼, U2F가 강력한 보안 보장을 제공함에도 불구하고, 널리 채택하는데 여러가지 제약이 존재한다. 예컨대, 사용자는 $15 내지 $60의 추가 비용을 지불하고, 비싼 추가 장치를 구입해야 한다. 일반적으로, 안전한 2FA 장치를 이유로, 일반 사용자가 비싼 장치를 구입하지 않으며, 장치의 분실 및 도용으로 인해 사용자가 다른 장치를 구입하게 되어 배포성 및 경제성 문제가 악화된다. 즉, U2F 장치를 분실하거나 도난 당한 경우, 즉시 보안을 위해 다른 장치가 필요하므로 대중적으로 사용하는데 어려움이 존재한다.
따라서, 추가적인 장치를 별도로 요구하지 않으면서 U2F와 동일 수준의 보안 보호를 제공하는 인증 기술이 요구된다.
[1] N. Cybersecurity and C. I. Center, "GRIZZLY STEPPE-Russian Malicious Cyber Activity," https://www.us-cert.gov/security-publications/GRIZZLY-STEPPE-Russian-Malicious-Cyber-Activity, February 2017.
[2] "APT28: At The Center of The Storm," https://www2.fireeye.com/WEB-2017-RPT-APT28.html, January 2017.
[3]S. Srinivas, D. Balfanz, and E. Tiffany, "Universal 2nd Factor (U2F) Overview," http://fidoalliance.org/specs/fido-u2f-v1.0-rd-20140209/fido-u2f-overview-v1.0-rd-20140209.pdf.
원격 인증 및 데이터 씰링(sealing) 기능을 기반으로 웹 인증을 강화하는 인증자(Authenticator) 및 인증 프로토콜을 제공하여, 추가적인 하드웨어 장치 없이도 U2F 수준의 보안 보호를 제공하기 위한 2차 인증 방법 및 시스템을 제공한다.
컴퓨터로 구현되는 2차 인증 방법(Universal 2nd Factor)에 있어서, 인증자(authenticator) 설치를 위한 링크를 사용자 단말로 제공하는 단계, 상기 인증자를 기반으로 생성된 공개키를 등록하기 위한 등록 페이지를 제공하는 단계, 및 상기 사용자 단말로부터 신뢰 사이트(Relying Party)의 인증이 요청됨에 따라, 등록된 상기 공개키를 기반으로 상기 신뢰 사이트의 인증을 수행하는 단계를 포함할 수 있다.
일측면에 따르면, 상기 링크를 사용자 단말로 제공하는 단계는, 인증을 위한 브라우저 확장 프로그램 및 엔클레이브(enclave) 응용 프로그램을 포함하는 상기 인증자를 상기 사용자 단말에 설치하기 위한 링크를 제공할 수 있다.
다른 측면에 따르면, 상기 등록 페이지를 제공하는 단계는, 상기 등록 페이지를 통해 상기 사용자 단말에 설치된 엔클레이브(enclave)가 실행되는 SGX(Software Guard eXtensions) 실행 환경을 검증하는 단계, 및 상기 등록 페이지를 통해 상기 공개키를 등록하는 단계를 포함할 수 있다.
또 다른 측면에 따르면, 상기 신뢰 사이트의 인증을 수행하는 단계는, 상기 공개키에 기초하여 사용자의 서명을 검증함으로써 상기 신뢰 사이트의 인증을 수행할 수 있다.
또 다른 측면에 따르면, 상기 사용자 단말에 상기 인증자가 설치됨에 따라, 상기 공개키 및 개인키가 한 쌍(pair)으로 생성될 수 있다.
또 다른 측면에 따르면, 생성된 상기 한 쌍의 공개키 및 개인키는 해시값(hash value)에 라벨링(labeling)될 수 있다.
또 다른 측면에 따르면, 상기 등록 페이지를 제공하는 단계는, SGX(Software Guard eXtensions) 실행 환경을 증명하는 EPID 멤버 개인키로 서명된 원격 증명 서명을 수신하는 단계, 및 수신된 상기 원격 증명 서명의 유효성을 검사하는 단계를 포함할 수 있다.
또 다른 측면에 따르면, 상기 인증을 수행하는 단계는, 상기 신뢰 사이트의 인증 시도가 발생하였음을 나타내는 메시지를 수신하는 단계, 및 수신된 상기 메시지를 상기 공개키 및 공개키와 라벨링된 해시값에 기초하여 검증하는 단계를 포함할 수 있다.
또 다른 측면에 따르면, 수신된 상기 메시지는 상기 공개키와 한 쌍(pair)인 개인키에 기초하여 서명된 메시지를 나타낼 수 있다.
또 다른 측면에 따르면, 상기 해시값에 기초하여 검증하는 단계는, 상기 검증을 통해 상기 서명된 메시지의 유효성을 검증됨에 따라, 사용자가 인증되었음을 증명하는 쿠키정보를 생성하는 단계를 포함할 수 있다.
2차 인증 시스템은, 인증자(authenticator) 설치를 위한 링크를 사용자 단말로 제공하는 설치 제어부, 상기 인증자를 기반으로 생성된 공개키를 등록하기 위한 등록 페이지를 제공하는 등록 제어부, 및 상기 사용자 단말로부터 신뢰 사이트(Relying Party)의 인증이 요청됨에 따라, 등록된 상기 공개키를 기반으로 상기 신뢰 사이트의 인증을 수행하는 인증부를 포함할 수 있다.
일측면에 따르면, 상기 설치 제어부는, 인증을 위한 브라우저 확장 프로그램 및 엔클레이브(enclave) 응용 프로그램을 포함하는 상기 인증자를 상기 사용자 단말에 설치하기 위한 링크를 제공할 수 있다.
다른 측면에 따르면, 상기 등록 제어부는, 상기 등록 페이지를 통해 상기 사용자 단말에 설치된 엔클레이브(enclave)가 실행되는 SGX(Software Guard eXtensions) 실행 환경을 검증하고, 상기 등록 페이지를 통해 상기 공개키를 등록할 수 있다.
또 다른 측면에 따르면, 상기 인증부는, 상기 공개키에 기초하여 사용자의 서명을 검증함으로써 상기 신뢰 사이트의 인증을 수행할 수 있다.
또 다른 측면에 따르면, 상기 사용자 단말에 상기 인증자가 설치됨에 따라, 상기 공개키 및 개인키가 한 쌍(pair)으로 생성될 수 있다.
또 다른 측면에 따르면, 생성된 상기 한 쌍의 공개키 및 개인키는 해시값(hash value)에 라벨링(labeling)될 수 있다.
또 다른 측면에 따르면, 상기 등록 제어부는, SGX(Software Guard eXtensions) 실행 환경을 증명하는 EPID 멤버 개인키로 서명된 원격 증명 서명을 수신하고, 수신된 상기 원격 증명 서명의 유효성을 검사할 수 있다.
또 다른 측면에 따르면, 상기 인증부는, 상기 신뢰 사이트의 인증 시도가 발생하였음을 나타내는 메시지를 수신하고, 수신된 상기 메시지를 상기 공개키 및 공개키와 라벨링된 해시값에 기초하여 검증할 수 있다.
또 다른 측면에 따르면, 수신된 상기 메시지는 상기 공개키와 한 쌍(pair)인 개인키에 기초하여 서명된 메시지를 나타낼 수 있다.
또 다른 측면에 따르면, 상기 인증부는, 상기 검증을 통해 상기 서명된 메시지의 유효성을 검증됨에 따라, 사용자가 인증되었음을 증명하는 쿠키정보를 생성할 수 있다.
본 발명의 실시예에 따르면, 원격 인증 및 데이터 씰링(sealing) 기능을 기반으로 웹 인증을 강화하는 인증자(Authenticator) 및 인증 프로토콜을 제공하여, 추가적인 하드웨어 장치 없이도 U2F 수준의 보안 보호를 제공할 수 있다.
도 1은 본 발명의 일 실시예에 있어서, 컴퓨터 시스템의 내부 구성의 일례를 설명하기 위한 블록도이다.
도 2는 본 발명의 일실시예에 있어서, 2차 인증 방법을 도시한 흐름도이다.
도 3은 도 1의 프로세서의 세부 구성을 도시한 블록도이다.
도 4는 본 발명의 일실시예에 있어서, 2차 인증을 위한 등록 프로세스를 도시한 흐름도이다.
도 5는 본 발명의 일실시예에 있어서, 2차 인증을 위한 인증 프로세스를 도시한 흐름도이다.
도 2는 본 발명의 일실시예에 있어서, 2차 인증 방법을 도시한 흐름도이다.
도 3은 도 1의 프로세서의 세부 구성을 도시한 블록도이다.
도 4는 본 발명의 일실시예에 있어서, 2차 인증을 위한 등록 프로세스를 도시한 흐름도이다.
도 5는 본 발명의 일실시예에 있어서, 2차 인증을 위한 인증 프로세스를 도시한 흐름도이다.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
본 실시예들은, 씰링 및 원격 증명을 기반으로 하는 2차 인증 방법 및 시스템에 관한 것으로, 특히, 인텔 SGX 기술과 같은 최신의 격리된 실행 환경에서 사용할 수 있는 데이터 인증 및 원격 증명 기능을 활용하는 클라이언트 인증 프로그램(예컨대, X2F)을 설계 및 구현하는 기술에 관한 것이다. 개인키 씰링, 인증자 코어의 원격인증 및 TEE(Trusted Execution Environment) 내 인증자 코어의 제한 등 SGX 기능을 기반으로 X2F를 프로토타입으로 구현하는 기술에 관한 것이다.
본 실시예들에서, "X2F"는 추가적인 특수목적 장치 없이 사용자에게 인증을 제공하는 2차 FA 인증자(authenticator)를 나타낼 수 있다. 그리고, X2F는 씰링 기능을 활용하여 인증 서명을 위해 사용자 및 도메인(domain) 별 개인 키의 기밀성을 유지하고, 원격 증명 기능을 통해 인증자 로직을 증명하는 기능을 신뢰 사이트(RP)에 제공할 수 있다.
본 실시예들에서, "2차 FA 인증자(authenticator)"는 사용 프로세서에서 제공되는 씰링 및 원격 인증 기능을 갖춘 안전한 가상의 2FA 인증기를 나타내는 것으로서, 예컨대, 인텔 SGX 환경에서 사용자의 개인 정보를 보호하면서 웹 인증을 제공할 수 있다.
본 실시예들에서, "SGX(Intel Software Guard Extension)"는 보안에 민감한 계산의 무결성과 기밀성을 제공하도록 설계된 인텔 아키텍처에 대한 새로운 CPU 확장 세트로서, 하드웨어 기반의 TEE(Trusted Execution Environment)를 활용하고, 사용자가 생성한 개인 데이터가 포함된 보안 컨테이너(enclave) 및 해당 컨테이너에서 작동하는 코드를 실행할 수 있다. 인텔 SGX 아키텍처는 메모리 액세스 컨트롤을 통해 엔클레이브(enclave)를 격리하고, CPU가 엔클레이브(enclave) 실행 모드에 들어갈 때만 선택적으로 액세스할 수 있도록 제어할 수 있다. 엔클레이브 실행 모드는 엔클레이브 안의 코드에서 메모리 액세스만 서용하고, 비 엔클레이브(non-enclave) 모듈이나 다른 엔클레이브는 허용하지 않을 수 있다. 이에 따라 SGX 프로세서는 개인 데이터 및 실행 코드를 캡슐화(capsulation)하는 엔클레이브를 운영체제 및 하이퍼바이저로부터 분리할 수 있다.
본 실시예들에서, "씰링(sealing)"은 격리된 하드웨어 플랫폼에서만 사용할 수 있는 봉인키를 이용하여, 데이터 컨텐츠를 암호화하여 격리된 실행 환경에서 사용되는 데이터의 기밀성을 보정하는 프로세스를 나타낼 수 있다.
본 실시예들에서, "원격 증명"은 SGX 기능 중 하나로서, 격리된 플랫폼 외부에 위치한 원격 당사자가 응용 프로그램 논리의 일부가 적절하게 인스턴스화되어 실행되고 있음을 증명하거나 확인할 수 있는 메커니즘을 나타낼 수 있다. IAS(Intel Attestation Service)는 서비스 제공자가 클라이언트 측에서 SGX 실행 환경에서 실행되는 엔클레이브(enclave)의 무결성을 검증할 수 있는 인터페이스를 제공할 수 있다. 즉, 서비스 제공자는 사용자가 중요한 코드 및 데이터를 손상시키지 않으면서 SGX TEE에서 특정 엔클레이브를 실행했는지 여부를 확인할 수 있다.
본 실시예들에서 "U2F(Universal 2nd Factor Authentication)"는 개방형 인증 표준으로, 사용자의 개인 정보를 보호하면서 웹 인증을 강화할 수 있다. 모바일 U2F 하드웨어 장치를 사용하려면, 사용자가 이를 호스트 시스템에 연결하며, 연결된 사용자는 호스트 시스템의 사이트(RP)로부터 신원을 증명하기 위해 장치를 터치할 수 있다.
본 실시예들에서, 제안하는 2차 인증 방법(즉, X2F)와 다른 보안들(예컨대, U2F 등)을 비교하기 위해 아래와 같이 세 가지 공격 모델을 정의할 수 있다. 첫 번째는 실시간 피싱(real-time phishing) 공격자 모델이고, 두 번째는 로컬 공격자(local adversary) 모델, 세 번째는 상태 스냅샷 공격자 모델(state snapshot adversary)을 나타낼 수 있다.
실시간 피싱(real-time phishing) 공격자 모델은 피해자가 적의 통제 하에 피해자의 자격증명을 웹페이지에 입력하도록 유인할 수만 있는 공격 모델을 나타낼 수 있다. 이에 따라, 상대방은 피해자의 ID, 암호 및 피해자의 2FA 인증자가 생성한 토큰을 수집할 수 있다. 그러나, 공격자는 피해자의 선택에 따라, 피해자와 신뢰 사이트(RP) 간에 인증메시지를 도청하거나 변경할 수 없다. 또한 공격자는 피해자의 호스트에서의 응용프로그램의 데이터 및 실행을 조작할 수 없다. 따라서 상대방은 스피어 피싱(spear phishing)을 포함한 social-engineering공격에 의해 도난된 피해자의 자격증명으로만 신뢰당사자를 인증하려고 할 수 있다.
로컬 공격자(local adversary) 모델은 데이터 및 실행을 변조하여 피해자의 OS는 물론 응용 프로그램을 원격으로 제어하는 강력한 공격자 모델을 나타낼 수 있다. 이때, 공격자는 임의의 코드의 실행뿐만 아니라 엔클레이브(enclave)를 무시하고 X2F 인증자를 포함하여 enclave로 보내거나 받은 메시지를 읽고 변조할 수 있다. 그러나 공격자는 SGX enclave의 무결성을 변조하거나, 인텔 SGX아키텍처로 보호되는 봉인된 개인 키를 추출할 수 없다. 로컬 공격자는 브라우저를 손상시키고 브라우저에 신뢰할 수 있는 URL이 포함된 악성 웹페이지를 표시할 수도 있다. 이에 따라, 공격자는 피해자가 신뢰할 수 있는 URL을 제시하여서, 피해자가 공격자의 악의적인 RP(Relying Party)를 선택하도록 인증을 하게 할 수 있다.
상태 스냅샷 공격자 모델(state snapshot adversary)은 공격자로서 인증 자격증명 또는 비밀을 획득하여, 공격자가 과거의 신뢰 사이트(Relying Party, RP)에 대하여 희생자를 도용하는 공격 모델을 나타낼 수 있다. 공격자는 과거에 신뢰 사이트(RP)에 대해 제로-데이 취약점을 악용하거나, 설치된 맬웨어로 피해자의 호스트를 손상시킬 수 있다. 그러나, 공격자는 현재 이러한 정보에 액세스 할 특권을 상실하고 실시간 피싱 공격자가 될 수 있으며, 이로 인해, 공격자는 과거의 관측만을 악용하고 자격증명을 도용하여 피해자인 RP(Relying Party)를 원격으로 인증할 수 있다.
본 실시예들에서, 2FA 방법의 보안을 분석하기 위해 중요한 2FA 보안 목표(Security Goal, SG)를 아래의 다섯 가지로 정의할 수 있다. 아래의 보안 목표는 클래식 및 시시간 피싱 공격으로부터의 계정도용을 차단하고, 적법한 2FA 인증자를 복제하지 못하게 하고, 사용자의 프라이버시를 보호하는 데 중요하다.
1) 사용자 활성(SG1): RP(Relying Party)는 사용자를 인증할 때 사용자의 새로운 동의를 확인할 수 있다.
2) 자격증명 공개 복원력(Credential disclosure resilience : SG2): 공격자는 사용자의 2FA 장치/응용프로그램에 포함된 루트 암호를 추측하거나 도용할 수 없다.
3) 장치/소프트웨어 무결성(SG3): RP(Relying Party)는 사용자 인증과 관련된 2FA장치/응용프로그램의 무결성을 확인할 수 있다.
4) 도메인별 인증(SG4): RP(Relying Party)는 사용자의 2FA장치/응용프로그램에 RP(Relying Party) 도메인에만 유효하지만 다른 도메인에는 유효하지 않은 도메인 고유 토큰을 생성하도록 요청할 수 있다.
5) 불연계성(SG5): 공격자를 포함하는 다른 RP(Relying Party)는, 사용자의 2FA장치/응용 프로그램의 정보를 기반으로만 동일한 사용자의 다른 ID를 연결할 수 없다.
도 1은 본 발명의 일 실시예에 있어서, 컴퓨터 시스템의 내부 구성의 일례를 설명하기 위한 블록도이다.
컴퓨터 시스템(100)은 2차 인증 시스템을 나타내는 것으로서, 적어도 하나의 프로세서(processor)(110), 메모리(memory)(120), 주변장치 인터페이스(peripheral interface)(130), 입/출력 서브시스템(I/O subsystem)(140), 전력 회로(150) 및 통신 회로(160)를 적어도 포함할 수 있다. 이때, 컴퓨터 시스템(100)은 가상 객체 브라우징을 위한 디바이스에 해당될 수 있다.
메모리(120)는, 일례로 고속 랜덤 액세스 메모리(high-speed random access memory), 자기 디스크, 에스램(SRAM), 디램(DRAM), 롬(ROM), 플래시 메모리 또는 비휘발성 메모리를 포함할 수 있다. 메모리(120)는 컴퓨터 시스템(100)의 동작에 필요한 소프트웨어 모듈, 명령어 집합 또는 그밖에 다양한 데이터를 포함할 수 있다. 이때, 프로세서(110)나 주변장치 인터페이스(130) 등의 다른 컴포넌트에서 메모리(120)에 액세스하는 것은 프로세서(110)에 의해 제어될 수 있다.
주변장치 인터페이스(130)는 컴퓨터 시스템(100)의 입력 및/또는 출력 주변장치를 프로세서(110) 및 메모리(120)에 결합시킬 수 있다. 프로세서(110)는 메모리(120)에 저장된 소프트웨어 모듈 또는 명령어 집합을 실행하여 컴퓨터 시스템(100)을 위한 다양한 기능을 수행하고 데이터를 처리할 수 있다.
입/출력 서브시스템(140)은 다양한 입/출력 주변장치들을 주변장치 인터페이스(130)에 결합시킬 수 있다. 예를 들어, 입/출력 서브시스템(140)은 모니터나 키보드, 마우스, 프린터 또는 필요에 따라 터치스크린이나 센서 등의 주변장치를 주변장치 인터페이스(130)에 결합시키기 위한 컨트롤러를 포함할 수 있다. 다른 측면에 따르면, 입/출력 주변장치들은 입/출력 서브시스템(140)을 거치지 않고 주변장치 인터페이스(130)에 결합될 수도 있다.
전력 회로(150)는 단말기의 컴포넌트의 전부 또는 일부로 전력을 공급할 수 있다. 예를 들어 전력 회로(150)는 전력 관리 시스템, 배터리나 교류(AC) 등과 같은 하나 이상의 전원, 충전 시스템, 전력 실패 감지 회로(power failure detection circuit), 전력 변환기나 인버터, 전력 상태 표시자 또는 전력 생성, 관리, 분배를 위한 임의의 다른 컴포넌트들을 포함할 수 있다.
통신 회로(160)는 적어도 하나의 외부 포트를 이용하여 다른 컴퓨터 시스템과 통신을 가능하게 할 수 있다. 또는 상술한 바와 같이 필요에 따라 통신 회로(160)는 RF 회로를 포함하여 전자기 신호(electromagnetic signal)라고도 알려진 RF 신호를 송수신함으로써, 다른 컴퓨터 시스템과 통신을 가능하게 할 수도 있다.
이러한 도 1의 실시예는, 컴퓨터 시스템(100)의 일례일 뿐이고, 컴퓨터 시스템(100)은 도 1에 도시된 일부 컴포넌트가 생략되거나, 도 9에 도시되지 않은 추가의 컴포넌트를 더 구비하거나, 2개 이상의 컴포넌트를 결합시키는 구성 또는 배치를 가질 수 있다. 예를 들어, 모바일 환경의 통신 단말을 위한 컴퓨터 시스템은 도 1에 도시된 컴포넌트들 외에도, 터치스크린이나 센서 등을 더 포함할 수도 있으며, 통신 회로(160)에 다양한 통신 방식(WiFi, 3G, LTE, Bluetooth, NFC, Zigbee 등)의 RF 통신을 위한 회로가 포함될 수도 있다. 컴퓨터 시스템(100)에 포함 가능한 컴포넌트들은 하나 이상의 신호 처리 또는 어플리케이션에 특화된 집적 회로를 포함하는 하드웨어, 소프트웨어, 또는 하드웨어 및 소프트웨어 양자의 조합으로 구현될 수 있다.
도 2는 본 발명의 일실시예에 있어서, 2차 인증 방법을 도시한 흐름도이고, 도 3은 도 1의 프로세서의 세부 구성을 도시한 블록도이다.
도 1의 참고하면, 2차 인증 시스템(즉, 컴퓨터 시스템, 100)의 프로세서(110)는 설치 제어부(111), 등록 제어부(112) 및 인증부(113)를 포함할 수 있다.
도 2의 각 단계들(210 내지 230 단계)은 프로세서(110), 즉, 설치 제어부(111), 등록 제어부(112) 및 인증부(113)에 의해 수행될 수 있다.
210 단계에서, 설치 제어부(111)는 인증자(authenticator) 설치를 위한 링크를 사용자 단말로 제공할 수 있다.
예컨대, 설치 제어부(111)는 인증을 위한 브라우저 확장 프로그램 및 엔클레이브(enclave) 응용 프로그램을 포함하는 인증자(authenticator)를 사용자 단말에 설치하기 위한 링크를 제공할 수 있다.
220 단계에서, 등록 제어부(112)는 인증자를 기반으로 생성된 공개키를 등록하기 위한 등록 페이지를 제공할 수 있다. 즉, 등록 페이지를 통해 공개키가 사용자의 ID 및 패스워드(password) 등과 연관하여 등록될 수 있다.
일례로, 등록 제어부(110)는 등록 페이지를 통해 사용자 단말에 설치된 엔클레이브(enclave)가 실행되는 SGX(Software Guard eXtensions) 실행 환경을 검증할 수 있으며, 실행 환경이 검증되면, 등록 페이지를 통해 사용자 단말에서 생성된 공개키를 등록할 수 있다. 예컨대, 공개키는 사용자 단말에 설치된 엔클레이브에서 생성될 수 있으며, 공개키 및 개인키가 한 쌍(pair)으로 생성될 수 있다. 그리고, 생성된 공개키와 개인키는 해시값(hash)과 연관하여 등록될 수 있다. 즉, 공개키와 개인키에 해시값이 라벨링(labeling)될 수 있다.
이때, 실행 환경의 검증은, SGX 실행 환경을 증명하는 EPID 멤버 개인키를 기반으로 수행될 수 있다. 예컨대, EPID 멤버 개인키로 서명된 원격 증명 서명을 수신하고, 수신된 상기 서명의 유효성을 검사함으로써, 상기 SGX 실행 환경을 검증할 수 있다.
230 단계에서, 인증부(113)는 사용자 단말로부터 신뢰 사이트(Relying Party)의 인증이 요청됨에 따라, 등록된 공개키를 기반으로 상기 신뢰 사이트의 인증을 수행할 수 있다. 예컨대, 인증부(113)는 등록된 공개키에 기초하여 사용자의 서명을 검증함으로써, 신뢰 사이트의 인증을 수행할 수 있다. 즉, 인증부(113)는 신뢰 사이트(RP)의 인증 시도가 발생하였음을 알리는 메시지를 수신하고, 수신된 메시지를 공개키 및 해시값에 기초하여 검증할 수 있다. 여기서, 메시지는 개인키에 기초하여 서명된 메시지에 해당할 수 있다. 이때, 검증을 통해 상기 서명된 메시지의 유효성이 검증 완료되면, 인증부(113)는 사용자가 인증되었음을 증명하는 쿠키정보를 생성할 수 있다.
이처럼, 2차 인증 방법은 설치, 등록 및 인증이라는 세 단계의 프로세스로 구성될 수 있다. 설치 단계에서는 사용자에게 X2F 브라우저 확장 프로그램과 X2F 엔클레이브(enclave) 응용 프로그램이 포함된 X2F 인증자(authenticator)를 설치하도록 요구할 수 있으며, 서비스 제공자의 사이트(RP)는 사용자가 인증자를 설치하기 위한 링크(Link) 정보를 제공할 수 있다.
상기 RP는 사용자가 자신의 인증자(즉, 사용자 단말에 설치된 인증자, X2F)에서 생성한 공개키를 등록하기 위한 등록 페이지를 사용자에게 제공할 수 있다. 여기서, 등록된 공개키는 각 RP 및 등록된 사용자 별로 고유할 수 있다.
인증 단계에서, 사용자가 RP를 인증하려고 하면, RP의 자바스크립트(JavaScript) 응용프로그램은 X2F 브라우저 확장 프로그램에 RP의 인증을 수행하도록 요청할 수 있으며, X2F 화장 프로그램에 표시된 로그인 버튼을 클릭하라는 메시지가 표시되도록 제어할 수 있다. 사용자가 로그인 정보를 입력하고, 로그인 버튼을 나타내는 표시 정보를 선택하면, X2F 엔클레이브(enclave) 응용 프로그램은 확장 프로그램 및 RP가 제공한 메시지에 서명할 수 있다. RP는 등록된 공개키로 서명을 검증할 수 있다.
도 4는 본 발명의 일실시예에 있어서, 2차 인증을 위한 등록 프로세스를 도시한 흐름도이다.
도 4의 인증 프로세스를 수행하기 이전에 2차 인증 시스템(100)은 먼저 설치 프로세스를 수행할 수 있다. 설치 단계에서, 사용자 단말은 X2F 인증자(X2F Authenticator, 401)를 설치할 수 있다. X2F 인증자(X2F Authenticator, 401)는 X2F 엔클레이브 어플리케이션(App)과 X2F 크롬(chrome) 브라우저 확장 프로그램으로 구성된 X2F 인증 프로그램을 나타낼 수 있다.
일례로, 사용자 단말에서 처음으로 X2F 엔클레이브 응용 프로그램이 호출되면, 엔클레이브 응용 프로그램은 IAS(404)에 연결되고, 인텔의 EPID(Enhanced Privacy Identifier) 권한설정(Provisioning)을 수행할 수 있다. 인텔의 EPID 권한설정은 EPID 그룹 ID와 해당 EPID 멤버 개인키의 쌍(pair)을 설정하는 것을 나타내며, 권한설정을 통해 서비스 제공자의 신뢰 사이트(RP)가 원격 증명을 수행할 수 있다.
도 4의 등록 프로세스는 X2F 엔클레이브(enclave)를 등록하는 X2F 등록 프로토콜을 나타낼 수 있다. 도 4에서, 각 단계들(410 내지 470)은 도 3의 등록 제어부(112)에 의해 수행될 수 있다.
410 단계에서, X2F 엔클레이브의 등록은 서비스 제공자(403)가 클라이언트 브라우저(즉, 사용자 단말의 브라우저, 402)로 웹기반 응용 프로그램 ID와 RP의 챌린지(challenge)를 전송함에 따라 시작될 수 있다.
420 단계에서, 상기 응용 프로그램의 ID와 챌린지가 수신되면, 클라이언트 브라우저(402)에 표시되는 웹페이지는 X2F 확장 프로그램을 호출하고, 호출된 확장 프로그램은 서비스 제공자(403)로부터 수신된 챌린지(challenge)와 출처(origin, 예컨대, 웹페이지의 출처 등)를 사용자 단말로 전달할 수 있다. 즉, 사용자 단말에 설치된 X2F 인증자(401)로 전달할 수 있으며, 상세하게는, 사용자 단말에 설치된 X2F 엔클레이브로 전달할 수 있다.
430 단계에서, X2F 인증자(401), 즉, X2F 엔클레이브는 개인키 및 공개기 쌍(pair)을 생성하고, 생성된 공개키 및 개인키 쌍(pair)을 해시값에 라벨링(labeling)할 수 있다. 여기서, 해시값 h는 개인키와 출처(origin)의 SHA-256 값을 포함할 수 있다
440 단계에서, X2F 엔클레이브는 생성된 공개키, 해시값 h, EPID 그룹 ID 및 서명 s를 브라우저(402)로 전달할 수 있다. 여기서, 상기 서명 s()는 fc, 공개키, 해시값 h의 서명 및 EPID 그룹 ID에 해당하는 EPID 멤버 개인키에 기초하여 서명된 EPID 그룹 ID를 포함할 수 있다. 즉, EPID 멤버 개인키에 기초하여 서명된 상기 EPID 그룹 ID는 원격 증명 서명을 나타내며, EPID 멤버 개인키는 무결성을 포함하여 유효한 SGX 실행환경을 증명하기 위해 이용될 수 있다. 그리고, fc는 응용 프로그램의 id(app_id), 출처(origin), 및 챌린지(challenge)를 포함할 수 있다.
450 단계에서, 브라우저(402)에 표시된 웹페이지는, 해시값 h, fc, 공개키, EPID 그룹 ID 및 서명 s를 포함한 모든 메시지를 서비스 제공자(403)에게 전송할 수 있다. 즉, 서비스 제공자(403)의 신뢰 사이트(RP)로 전송할 수 있다.
460 단계에서, 서비스 제공자(403)는 IAS(404)에 요청하여 수신된 서명의 유효성을 검사할 수 있다. 그러면, IAS(404)는 요청된 서명이 실제로 SGX TEE 환경에서 실행되는 X2F 엔클레이브에서 생성된 것인지 여부를 확인할 수 있다.
470 단계에서, IAS(404)에서 서명이 유효한 것으로 검사됨에 따라, 서비스 제공자(403)는 공개키 및 해시값을 저장 장치에 저장 및 등록할 수 있다.
도 5는 본 발명의 일실시예에 있어서, 2차 인증을 위한 인증 프로세스를 도시한 흐름도이다.
도 5는 X2F 인증 프로토콜을 나타내는 것으로서, 도 5에서, 각 단계들(510 내지 570 단계)은 도 3의 인증부(113)에 의해 수행될 수 있다. 그리고, 도 5에서, 인증 프로세스는 사용자가 등록을 성공적으로 완료했음을 가정하고 수행될 수 있다.
510 단계에서, 사용자 단말에 표시되는 서비스 제공자(503)의 웹페이지를 통해 사용자가 사용자 ID 및 패스워드를 입력하면, 신뢰 사이트(RP)는 핸들(handle), 챌린지(challenge) 및 응용 프로그램 ID(app_id)를 브라우저(502)로 전송함으로써, X2F 인증 프로토콜을 시작할 수 있다.
이때, 상기 웹페이지에서 호출한 사용자 단말에 설치된 X2F 확장 프로그램은, 사용자가 RP를 인증하는데 동의한다는 내용을 포함하는 메시지가 사용자 단말의 화면에 표시되도록 제어할 수 있다.
520 단계에서, 사용자가 인증 동의를 선택하면, 확장 프로그램은 수신된 상기 핸들(handle), 챌린지(challenge) 및 응용 프로그램 ID(app_id)를 포함하는 메시지 fc를 사용자 단말에 설치된 X2F 인증자(501), 즉, X2F 엔클레이브(enclave)로 전달할 수 있다.
530 단계에서, X2F 엔클레이브(enclave)는 인증 시도의 발생을 나타내는 cntr에 수신된 메시지를 첨부할 수 있다. 이때, X2F 엔클레이브(enclave)는 등록 단계에서 생성된 개인키에 기초하여 전체 메시지에 서명하고(sig(app_id,fc,cntr)), 540 단계에서, 서명된 메시지를 브라우저(502)를 통해 신뢰 사이트(RP)로 전송할 수 있다. 할 수 있다.
550 단계에서, 서명된 메시지는 서비스 제공자(503)의 RP에 전송될 수 있으며, 560 단계에서, 서비스 제공자(503)의 RP는 수신된 서명을 등록 및 저장된 공개키와 해시값 h에 기초하여 검증할 수 있다. 여기서, 공개키는 상기 서명에 이용된 개인키와 한 쌍(pair)을 이루는 공개키를 나타낼 수 있다.
570 단계에서, 서명이 유효한 것으로 검증되면, 서비스 제공자(503)의 RP는 사용자가 인증되었음을 증명하는 쿠키값(cookie)을 설정할 수 있다. 그리고, 설정된 쿠키값을 브라우저(502)에 제공할 수 있다.
이처럼, X2F 설치, 등록 및 인증을 통해 인증을 수행하면, 실시간 피싱 공격 모델에 대항하여, 공격자가 X2F 엔클레이브 내에 구현된 X2F 인증자 로직(logic)을 수정할 수 없으므로, 사용자 활성(SG1) 및 자격증명 공개 복원력(SG2)이 손상되지 않을 수 있다. 즉, 인증에 사용된 사용자 별 개인키는 결코 해당 엔클레이브를 떠나지 안으며, 인텔 SGX 인증 서비스로 인해 소프트웨어 무결성(SG3) 역시 달성될 수 있다. 이에 따라, RP가 인증에 참여한 2FA 인증자의 무결성이 검증될 수 있다. 그리고, 공격자가 인증과 관련된 출처(origin)를 조작할 수 없으므로, 도메인 별 인증(SG4)dl 손상되지 않으며, 클라이언트가 전화번호와 같은 개인 식별 정보를 제공할 필요가 없고, 개인키의 해시값과 각 도메인에 대한 사용자의 신원선택을 설정하기 위한 출처(origin)을 제공하므로 불연계성(SG5)가 달성될 수 있다.
아래의 표 1은 정의된 공격자 모델에 대항하는 2FA 방법의 달성 가능한 보안 목표(Security Goal, SG)를 나타낼 수 있다.
[표 1]
표 1에서, 제1 열은 실시간 피싱(real-time phishing), 로컬 공격자 모델 및 상태 스냅샷 공격자 모델의 3가지 공격자 모델을 포함할 수 있다. 그리고, 제3 열은 각 2FA 방법 및 공격자 모델에 대해 달성 가능한 보안 목표(SG)를 나타낼 수 있다. SMS 기반 OTP의 경우, RP가 각 사용자의 시드(seed) 암호를 기반으로 TOTP 알고리즘을 구현한다고 가정한다. 시드 암호는 RP만 액세스할 수 있으며, 상태 스냅샷 공격자를 제외한 다른 공격자 모델로는 액세스 할 수 없다.실시간 피싱 공격자 모델에 대해, HOTP는 공격자에 의해 피해자가 자신의 토큰을 제공하도록 유도할 수 있고, 나중에 피해자를 도용하기 위해 사용할 수 있으므로, 사용자 활성(SG1)을 달성하는데 효과적이지 않을 수 있다. 공격자가 피해자를 유도하여 루트 암호를 제공하도록 할 수 있으므로, HOTP와 TOTP 모두 자격증명 공개 복원력(SG2)를 보장하는데 취약할 수 있다. 공격자가 도난된 암호로 언제든지 유효한 OTP 토큰을 생성할 수 있기 때문에 루트 암호가 도난 당하면, 신뢰당사자는 OTP 토큰이 진품의 OTP 장치에서 생성되었는지 여부를 더 이상 보장하지 않을 수 있다. 이에 따라, 장치 무결성(SG3)은 HOTP와 TOTP 모두에 약할 수 있다. TOTP 장치는 해시값이 현재 시간에서 계산되므로, 여러 RP에게 사용될 수 있다. 사용자가 양쪽 당사자 모두에 동일한 장치를 등록할 때, 한 RP의 유효한 OTP 토큰이 다른 RP에게도 유효하므로, TOTP 및 HOTP 장치 모두 도메인 별 인증(SG4)을 얻는 것을 불가할 수 있다. 또한, 서로 다른 RP가 동일한 루트 암호를 공유하는 여러 ID를 정확하게 찾아낼 수 있기 때문에 불연계성(SG5)를 달성할 수 없다.
SMS 기반 OTP는 실시간 피싱 공격 모델에서, SG1 및 SG2를 달성할 수 있으나, SG 3, SG4, 및 SG5를 달성할 수 없다. U2F와 X2F는 실시간 피싱 공격 모델에서, SG1 내지 SG 5를 모두 달성할 수 있다.
표 2는 세 가지 공격자 모델에 따라 희생자를 사칭하는 실행 가능성을 나타낼 수 있다.
[표 2]
표 2를 참고하면, HOTP는 피해자가 OTP를 입력하고 나중에 사용하도록 공격자가 유도할 수 있으므로, 클래식 오프라인 피싱 공격자에게는 효과가 없음을 확인할 수 있다. TOTP 및 SMS 기반 보안 토큰은 실시간 피싱 공격자에 약함을 확인할 수 있다. 그리고, U2F는 로컬 공격자가 없다는 전제 하에 프로토콜이 HTTPS 프로토콜로 보호된 유효한 출처를 요구하므로, 계정 도용을 차단하는 가정 안전한 2차 인증을 위한 인증자(2FA 인증자)임을 확인할 수 있다. 이때, U2F는 사용자의 브라우저 무결성 및 유효한 HTTPS 인증서와 같은 몇 가지 사항을 요구할 수 있다. X2F는 U2F와 동일한 계정 보호 기능을 제공함을 확인할 수 있다.표 3은 X2F 인증이 다른 인증 표준 대비 우월성을 나타낼 수 있다.
[표 3]
표 3에서, 유용성(Usability)와 배포성(Deployability) 측면에서, HOTP, TOTP, SMS 기반 OTP, 가상 U2F, U2F, X2F의 표준을 비교한 결과를 확인할 수 있다. 표 3에 따르면, HOTP, TOTP 및 U2F는 특수목적 장치를 휴대해야 하므로, 유용성에 속하는 Nothing-to-carry에 한계가 존재함을 확인할 수 있다. SMS 기반 OTP는 사용자가 일반적으로 언제나 휴대전화를 가지고 다니기 때문에 Quasi-Nothing-to-Carry에 해당하고, 가상 U2F 및 X2F는 별도의 휴대용 장치가 필요없기 때문에 Nothing-to-Carry에 해당함을 확인할 수 있다. 그리고, HOTP, TOTP 및 U2F는, 손실된 장치를 교체하기 위해 하드웨어 장치를 구입해야 하므로 쉬운 손실 복구기능(Easy-Recovery-from-Loss)을 충족할 수 없음을 확인할 수 있다. 가상 U2F 및 X2F는 사용자가 항상 유효한 등록 프로세스를 통해 SGX 머신이나 소프트웨어를 다시 등록할 수 있으므로, 쉬운 손실 복구기능(Easy-Recovery-from-Loss)을 제공함을 확인할 수 있다. HOTP, TOTP 및 U2F는 사용자가 비싼 장치를 구입해야 하므로, 무시할 수 있는 사용자당 비용(Negligible-Cost-per-User)을 만족시키지 못함을 확인할 수 있다. SMS 기반 OTP의 경우, SMS를 보내는 비용이 상대적으로 낮아야 하고, 가상 U2F 및 X2F는 소프트웨어 설치만 필요하므로, 무시할 수 있는 사용자당 비용(Negligible-Cost-per-User)을 만족시킴을 확인할 수 있다. X2F는 SGX 명령어 세트가 있는 CPU가 필요하지만, 최신 Intel 칩셋 모델은 SGX 기능과 함께 제공되기 때문에 추가 비용이 발생하지 않는다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.
Claims (20)
- 컴퓨터로 구현되는 2차 인증 방법(Universal 2nd Factor)에 있어서,
인증자(authenticator) 설치를 위한 링크를 사용자 단말로 제공하는 단계;
상기 인증자를 기반으로 생성된 공개키를 등록하기 위한 등록 페이지를 제공하는 단계; 및
상기 사용자 단말로부터 신뢰 사이트(Relying Party)의 인증이 요청됨에 따라, 등록된 상기 공개키를 기반으로 상기 신뢰 사이트의 인증을 수행하는 단계
를 포함하는 2차 인증 방법. - 제1항에 있어서,
상기 링크를 사용자 단말로 제공하는 단계는,
인증을 위한 브라우저 확장 프로그램 및 엔클레이브(enclave) 응용 프로그램을 포함하는 상기 인증자를 상기 사용자 단말에 설치하기 위한 링크를 제공하는 것
을 특징으로 하는 2차 인증 방법. - 제1항에 있어서,
상기 등록 페이지를 제공하는 단계는,
상기 등록 페이지를 통해 상기 사용자 단말에 설치된 엔클레이브(enclave)가 실행되는 SGX(Software Guard eXtensions) 실행 환경을 검증하는 단계; 및
상기 등록 페이지를 통해 상기 공개키를 등록하는 단계
를 포함하는 2차 인증 방법. - 제1항에 있어서,
상기 신뢰 사이트의 인증을 수행하는 단계는,
상기 공개키에 기초하여 사용자의 서명을 검증함으로써 상기 신뢰 사이트의 인증을 수행하는 것
을 특징으로 하는 2차 인증 방법. - 제1항에 있어서,
상기 사용자 단말에 상기 인증자가 설치됨에 따라, 상기 공개키 및 개인키가 한 쌍(pair)으로 생성되는 것
을 특징으로 하는 2차 인증 방법. - 제5항에 있어서,
생성된 상기 한 쌍의 공개키 및 개인키는 해시값(hash value)에 라벨링(labeling)되는 것
을 특징으로 하는 2차 인증 방법. - 제1항에 있어서,
상기 등록 페이지를 제공하는 단계는,
SGX(Software Guard eXtensions) 실행 환경을 증명하는 EPID 멤버 개인키로 서명된 원격 증명 서명을 수신하는 단계; 및
수신된 상기 원격 증명 서명의 유효성을 검사하는 단계
를 포함하는 2차 인증 방법. - 제1항에 있어서,
상기 인증을 수행하는 단계는,
상기 신뢰 사이트의 인증 시도가 발생하였음을 나타내는 메시지를 수신하는 단계; 및
수신된 상기 메시지를 상기 공개키 및 공개키와 라벨링된 해시값에 기초하여 검증하는 단계
를 포함하는 2차 인증 방법. - 제8항에 있어서,
수신된 상기 메시지는 상기 공개키와 한 쌍(pair)인 개인키에 기초하여 서명된 메시지를 나타내는 것
을 특징으로 하는 2차 인증 방법. - 제9항에 있어서,
상기 해시값에 기초하여 검증하는 단계는,
상기 검증을 통해 상기 서명된 메시지의 유효성을 검증됨에 따라, 사용자가 인증되었음을 증명하는 쿠키정보를 생성하는 단계
를 포함하는 2차 인증 방법. - 인증자(authenticator) 설치를 위한 링크를 사용자 단말로 제공하는 설치 제어부;
상기 인증자를 기반으로 생성된 공개키를 등록하기 위한 등록 페이지를 제공하는 등록 제어부; 및
상기 사용자 단말로부터 신뢰 사이트(Relying Party)의 인증이 요청됨에 따라, 등록된 상기 공개키를 기반으로 상기 신뢰 사이트의 인증을 수행하는 인증부
를 포함하는 2차 인증 시스템. - 제11항에 있어서,
상기 설치 제어부는,
인증을 위한 브라우저 확장 프로그램 및 엔클레이브(enclave) 응용 프로그램을 포함하는 상기 인증자를 상기 사용자 단말에 설치하기 위한 링크를 제공하는 것
을 특징으로 하는 2차 인증 시스템. - 제11항에 있어서,
상기 등록 제어부는,
상기 등록 페이지를 통해 상기 사용자 단말에 설치된 엔클레이브(enclave)가 실행되는 SGX(Software Guard eXtensions) 실행 환경을 검증하고, 상기 등록 페이지를 통해 상기 공개키를 등록하는 것
을 특징으로 하는 2차 인증 시스템. - 제11항에 있어서,
상기 인증부는,
상기 공개키에 기초하여 사용자의 서명을 검증함으로써 상기 신뢰 사이트의 인증을 수행하는 것
을 특징으로 하는 2차 인증 시스템. - 제11항에 있어서,
상기 사용자 단말에 상기 인증자가 설치됨에 따라, 상기 공개키 및 개인키가 한 쌍(pair)으로 생성되는 것
을 특징으로 하는 2차 인증 시스템. - 제15항에 있어서,
생성된 상기 한 쌍의 공개키 및 개인키는 해시값(hash value)에 라벨링(labeling)되는 것
을 특징으로 하는 2차 인증 시스템. - 제11항에 있어서,
상기 등록 제어부는,
SGX(Software Guard eXtensions) 실행 환경을 증명하는 EPID 멤버 개인키로 서명된 원격 증명 서명을 수신하고, 수신된 상기 원격 증명 서명의 유효성을 검사하는 것
을 특징으로 하는 2차 인증 시스템. - 제11항에 있어서,
상기 인증부는,
상기 신뢰 사이트의 인증 시도가 발생하였음을 나타내는 메시지를 수신하고, 수신된 상기 메시지를 상기 공개키 및 공개키와 라벨링된 해시값에 기초하여 검증하는 것
을 특징으로 하는 2차 인증 시스템. - 제18항에 있어서,
수신된 상기 메시지는 상기 공개키와 한 쌍(pair)인 개인키에 기초하여 서명된 메시지를 나타내는 것
을 특징으로 하는 2차 인증 시스템. - 제19항에 있어서,
상기 인증부는,
상기 검증을 통해 상기 서명된 메시지의 유효성을 검증됨에 따라, 사용자가 인증되었음을 증명하는 쿠키정보를 생성하는 것
을 특징으로 하는 2차 인증 시스템.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20180052432 | 2018-05-08 | ||
KR1020180052432 | 2018-05-08 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190128531A true KR20190128531A (ko) | 2019-11-18 |
KR102078920B1 KR102078920B1 (ko) | 2020-02-19 |
Family
ID=68728040
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180076944A KR102078920B1 (ko) | 2018-05-08 | 2018-07-03 | 씰링 및 원격 증명을 기반으로 하는 2차 인증 방법 및 시스템 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102078920B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111611620A (zh) * | 2020-05-26 | 2020-09-01 | 牛津(海南)区块链研究院有限公司 | 一种访问平台的访问请求处理方法及相关装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003318891A (ja) * | 2002-04-26 | 2003-11-07 | Nippon Telegr & Teleph Corp <Ntt> | 署名検証装置、その方法、コンピュータプログラム及びそのプログラムを記録した記録媒体、ならびに認証局及び公開鍵証明書発行方法 |
KR20170127330A (ko) * | 2016-05-11 | 2017-11-21 | (주)케이스마텍 | 신뢰된 실행 환경 기반의 유무선단말을 이용한 사용자 간편 인증방법 및 시스템 |
-
2018
- 2018-07-03 KR KR1020180076944A patent/KR102078920B1/ko active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003318891A (ja) * | 2002-04-26 | 2003-11-07 | Nippon Telegr & Teleph Corp <Ntt> | 署名検証装置、その方法、コンピュータプログラム及びそのプログラムを記録した記録媒体、ならびに認証局及び公開鍵証明書発行方法 |
KR20170127330A (ko) * | 2016-05-11 | 2017-11-21 | (주)케이스마텍 | 신뢰된 실행 환경 기반의 유무선단말을 이용한 사용자 간편 인증방법 및 시스템 |
Non-Patent Citations (3)
Title |
---|
[1] N. Cybersecurity and C. I. Center, "GRIZZLY STEPPE-Russian Malicious Cyber Activity," https://www.us-cert.gov/security-publications/GRIZZLY-STEPPE-Russian-Malicious-Cyber-Activity, February 2017. |
[2] "APT28: At The Center of The Storm," https://www2.fireeye.com/WEB-2017-RPT-APT28.html, January 2017. |
[3]S. Srinivas, D. Balfanz, and E. Tiffany, "Universal 2nd Factor (U2F) Overview," http://fidoalliance.org/specs/fido-u2f-v1.0-rd-20140209/fido-u2f-overview-v1.0-rd-20140209.pdf. |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111611620A (zh) * | 2020-05-26 | 2020-09-01 | 牛津(海南)区块链研究院有限公司 | 一种访问平台的访问请求处理方法及相关装置 |
Also Published As
Publication number | Publication date |
---|---|
KR102078920B1 (ko) | 2020-02-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20240259217A1 (en) | Provisioning trusted execution environment(s) based on chain of trust including platform | |
US10484185B2 (en) | Method and system for distributing attestation key and certificate in trusted computing | |
US10666642B2 (en) | System and method for service assisted mobile pairing of password-less computer login | |
US9807610B2 (en) | Method and apparatus for seamless out-of-band authentication | |
US10437985B2 (en) | Using a second device to enroll a secure application enclave | |
US9838205B2 (en) | Network authentication method for secure electronic transactions | |
JP5981610B2 (ja) | 電子取引用のネットワーク認証方法 | |
EP3061027B1 (en) | Verifying the security of a remote server | |
US20160125180A1 (en) | Near Field Communication Authentication Mechanism | |
Mannan et al. | Leveraging personal devices for stronger password authentication from untrusted computers | |
Panos et al. | A security evaluation of FIDO’s UAF protocol in mobile and embedded devices | |
CN111371726B (zh) | 安全代码空间的认证方法、装置、存储介质及处理器 | |
WO2018112482A1 (en) | Method and system for distributing attestation key and certificate in trusted computing | |
KR102078920B1 (ko) | 씰링 및 원격 증명을 기반으로 하는 2차 인증 방법 및 시스템 | |
US20240113898A1 (en) | Secure Module and Method for App-to-App Mutual Trust Through App-Based Identity | |
Kim et al. | Secure user authentication based on the trusted platform for mobile devices | |
Karthiga et al. | Enhancing performance of user authentication protocol with resist to password reuse attacks | |
KR102492553B1 (ko) | Fido기반 비밀번호 무사용 전자서명 방법 및 시스템 | |
CN109284615B (zh) | 移动设备数字资源安全管理方法 | |
Nosouhi et al. | Towards Availability of Strong Authentication in Remote and Disruption-Prone Operational Technology Environments | |
KR101737925B1 (ko) | 도전-응답 기반의 사용자 인증 방법 및 시스템 | |
Uzunay et al. | Trust-in-the-middle: towards establishing trustworthiness of authentication proxies using trusted computing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
X091 | Application refused [patent] | ||
AMND | Amendment | ||
X701 | Decision to grant (after re-examination) | ||
GRNT | Written decision to grant |