KR102665644B1 - 인증을 위한 방법 및 그 장치 - Google Patents
인증을 위한 방법 및 그 장치 Download PDFInfo
- Publication number
- KR102665644B1 KR102665644B1 KR1020160119199A KR20160119199A KR102665644B1 KR 102665644 B1 KR102665644 B1 KR 102665644B1 KR 1020160119199 A KR1020160119199 A KR 1020160119199A KR 20160119199 A KR20160119199 A KR 20160119199A KR 102665644 B1 KR102665644 B1 KR 102665644B1
- Authority
- KR
- South Korea
- Prior art keywords
- server
- mobile device
- ucr
- context
- authenticity
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 76
- 230000015654 memory Effects 0.000 claims abstract description 43
- 238000012795 verification Methods 0.000 claims description 7
- 230000000977 initiatory effect Effects 0.000 claims description 6
- 230000003542 behavioural effect Effects 0.000 claims 4
- 238000004458 analytical method Methods 0.000 description 23
- 238000005259 measurement Methods 0.000 description 23
- 230000008569 process Effects 0.000 description 21
- 230000006870 function Effects 0.000 description 18
- 230000033001 locomotion Effects 0.000 description 18
- 101150030970 ucr-1 gene Proteins 0.000 description 17
- 238000010586 diagram Methods 0.000 description 15
- 230000001413 cellular effect Effects 0.000 description 11
- 238000004891 communication Methods 0.000 description 11
- 238000012545 processing Methods 0.000 description 9
- 238000012502 risk assessment Methods 0.000 description 9
- 239000011159 matrix material Substances 0.000 description 8
- 238000013459 approach Methods 0.000 description 7
- 238000004422 calculation algorithm Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 6
- 230000014509 gene expression Effects 0.000 description 6
- 230000002452 interceptive effect Effects 0.000 description 6
- 238000012360 testing method Methods 0.000 description 5
- 230000001133 acceleration Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 3
- 238000010276 construction Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000012358 sourcing Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000002591 computed tomography Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000013499 data model Methods 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 239000013589 supplement Substances 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 2
- 238000002583 angiography Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 239000008280 blood Substances 0.000 description 1
- 210000004369 blood Anatomy 0.000 description 1
- 230000036772 blood pressure Effects 0.000 description 1
- 230000036760 body temperature Effects 0.000 description 1
- 238000005336 cracking Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000002595 magnetic resonance imaging Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000035755 proliferation Effects 0.000 description 1
- 238000002601 radiography Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000002604 ultrasonography Methods 0.000 description 1
- 238000005406 washing Methods 0.000 description 1
Images
Classifications
-
- 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/3271—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 challenge-response
- H04L9/3273—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 challenge-response for 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
네트워크에서 모바일 디바이스와 양방향 인증을 수행하기 위한 엔터프라이즈 서버의 장치가 제공된다. 상기 서버는 메모리 및 상기 메모리와 기능적으로 결합된 적어도 하나의 프로세서를 포함하며, 상기 적어도 하나의 프로세서는, 상기 모바일 디바이스에 의해 생성된 사용자 컨텍스트 기록(user context record, UCR)을 수신하고, 상기 수신된 UCR에 기초하여 신빙성 스코어(authenticity score)를 계산하고, 상기 신빙성 스코어에 기초하여 상기 모바일 디바이스의 신빙성(authenticity)을 검증하고, 상기 모바일 디바이스의 상기 서버에 대한 신빙성을 검증하기 위한 정보를 생성하고, 상기 모바일 디바이스에게 상기 정보를 송신하도록 구성된다.
Description
본 발명은 모바일 디바이스와 네트워크 간의 양방향 인증을 위한 장치 및 방법에 관한 것이다. 보다 구체적으로, 본 발명은 현재 및 과거의 사용자 컨텍스트 측정들에 기초하여, 모바일 디바이스의 사용자를 엔터프라이즈 네트워크(enterprise network)에 연결하며 또한 엔터프라이즈 네트워크를 모바일 디바이스의 사용자에게 연결하기 위한 양방향 위험성 평가를 제공하는 장치 및 방법에 관한 것이다.
모바일 단말기는 사용자들 간의 무선 통신을 제공하기 위하여 개발되었다. 기술이 진보함에 따라, 이제 모바일 단말기는 단순한 전화 통화 이외에 다수의 추가 기능들을 제공한다. 예를 들어, 이제 모바일 단말기는 알람, 단문 메시징 서비스(SMS), 멀티미디어 메시지 서비스(MMS), 이-메일, 게임, 단거리 통신의 원격 제어, 탑재되어 있는 디지털 카메라를 이용한 이미지 캡처 기능, 오디오 및 비디오 컨텐츠를 제공하기 위한 멀티미디어 기능, 스케줄링 기능 등과 같은 추가 기능들을 제공할 수 있다. 이제, 이러한 복수의 기능들이 제공된 모바일 단말기는 사실상 일상 생활의 필수품이 되었다.
모바일 단말기의 보급으로, 사용자들은 점점 이 모바일 단말기를 사용하여 예를 들어, Wi-Fi, 블루투스, 3G/4G 또는 LTE 네트워크들을 통해 엔터프라이즈 네트워크들에 액세스하고 있다. 이것은 엔터프라이즈 정보 보안에 대한 위험을 불러일으킬 수도 있다. 모바일 네트워크들의 개방성은 엔터프라이즈 네트워크에 대한 악의적 공격 가능성을 증가시킨다. 또한, 취약한 패스워드들을 가진 사용자들은 엔터프라이즈 네트워크들 상의 데이터 및 정보에 대한 위험을 초래할 수도 있다.
종래의 인증 방법들은, 완료되고 나면 자유로운 액세스를 허용하는 하나 이상의 동시 테스트들에 기초하여 민감한 정보나 네트워크들에 액세스할 수 있는, 패스워드, 크리덴셜(credential), 토큰(token), 바이오메트릭(biometric) 또는 제스처에 의존한다.
미국 정부는 엔드 유저(end user)를 인증하기 위한 사용자 성명 및 패스워드의 약점을 인식하여, 이러한 방법들에 대한 단계적인 폐지를 지시하였다. 디지털 인증서들은 사용자의 컴퓨터를 입증할 수 있는 강력한 접근방식을 제공할 수 있지만, 사용자의 신빙성(authenticity)을 보장하지는 않는다.
신용 카드 회사들은, 카드 및 PIN에 대한 지식을 요구하는 "테스트 통과(passing a test)"가 신빙성을 보장하지 않는다는 것을 알게 되었다. 수준 높은 신용 카드 회사들은 이제 신빙성의 추가 증거로서 위치, 트랜잭션 타입 및 트랜잭션 양과 같은 컨텍스트 정보를 사용한다. 그들은 컨텍스트를 사용하여, 더욱 미묘한 방식으로 위험성을 측정하여, 그 위험성이 충분히 작은지의 여부, 또는 그 컨텍스트가 트랜잭션을 허용하기에 충분히 가까운지 여부를 결정한다.
매우 민감하거나 매우 중요한 데이터를 처리하는 조직은, 사용자나 장치가 "정상" 동작 또는 "사이버-안전" 동작을 위한 가이드라인 내에서 운용될 것이라는 것을 보장하지 않는다는 것을 알게 되었다.
사용자 및 디바이스 아이덴티티들이 스푸핑(spoofing)될 수 있기 때문에, 인증 테스트의 통과는, 네트워크 액터가 이전에 그 테스트를 통과했던 것과 동일한 것인지 여부를 밝히지 않게 된다.
마지막으로, "테스트 통과"는 당신을 문 안으로 들여놓기는 하지만, 암호 또는 데이터 유출의 문제점들을 해결하진 않는다. 이들은 그들 자신의 리소스들을 필요로 하는 별도의 프로세스들이다.
따라서, 사용자 성명 및 패스워드를 대체 또는 보충하기 위하여, 사용자-엔터프라이즈 및 엔터프라이즈-사용자의 개선된 양방향 인증을 제공하는 장치 및 방법에 대한 필요성이 존재한다.
본 발명의 실시예들은 적어도 전술한 문제점들 및/또는 단점들을 해결하며 또한 적어도 후술하는 장점들을 제공하는 것이다. 따라서, 본 발명의 실시 예들은 현재 및 과거의 사용자 컨텍스트 측정들에 기초하여, 모바일 디바이스의 사용자를 엔터프라이즈 네트워크에 연결시키고 또한 엔터프라이즈 네트워크를 모바일 디바이스의 사용자에게 연결시키기 위한 양방향 위험성 평가를 제공하는 장치를 제공하는 것이다.
본 발명의 일 실시예에 따르면, 네트워크에서 모바일 디바이스와 양방향 인증을 수행하기 위한 서버(server)가 제공된다. 상기 서버는 메모리 및 상기 메모리와 기능적으로 결합된 적어도 하나의 프로세서를 포함하며, 상기 적어도 하나의 프로세서는, 상기 모바일 디바이스에 의해 생성된 사용자 컨텍스트 기록(user context record, UCR)을 수신하고, 상기 수신된 UCR에 기초하여 신빙성 스코어(authenticity score)를 계산하고, 상기 신빙성 스코어에 기초하여 상기 모바일 디바이스의 신빙성(authenticity)을 검증하고, 상기 모바일 디바이스의 상기 서버에 대한 신빙성을 검증하기 위한 정보를 생성하고, 상기 모바일 디바이스에게 상기 정보를 송신하도록 구성된다.
본 발명의 일 실시예에 따르면, 네트워크에서 모바일 디바이스와 양방향 인증을 수행하기 위한 서버의 방법이 제공된다. 상기 방법은 상기 모바일 디바이스에 의해 생성된 사용자 컨텍스트 기록(UCR)을 수신하는 동작과, 상기 수신된 UCR에 기초하여 신빙성 스코어를 계산하는 동작과, 상기 신빙성 스코어에 기초하여 상기 모바일 디바이스의 신빙성(authenticity)를 검증하는 동작과, 상기 모바일 디바이스의 상기 서버에 대한 신빙성을 검증하기 위한 정보를 생성하는 동작을 포함한다.
본 발명의 일 실시예에 따르면, 네트워크에서 서버와 양방향 인증을 수행하기 위한 모바일 디바이스가 제공된다. 상기 모바일 디바이스는 메모리, 및 상기 메모리와 기능적으로 결합된 적어도 하나의 프로세서를 포함하며, 상기 적어도 하나의 프로세서는, 상기 서버에 대한 연결 요청을 개시하고, 상기 연결 요청이 개시된 경우, 사용자 컨텍스트 기록(UCR)을 생성하고, 상기 서버에게 상기 UCR을 송신하고, 상기 서버로부터 정보를 수신하고, 상기 수신된 정보에 기초하여, 상기 서버의 신빙성(authenticity)을 검증하도록 구성된다.
본 발명의 다른 실시예에 따르면, 네트워크에서 서버와 양방향 인증을 수행하기 위한 모바일 디바이스의 방법이 제공된다. 상기 방법은 상기 서버에 대한 연결 요청을 개시하는 동작과, 상기 연결 요청이 개시된 경우, 사용자 컨텍스트 기록(UCR)을 생성하는 동작과, 상기 서버에게 상기 UCR을 송신하는 동작과, 상기 서버로부터 정보를 수신하는 동작과, 상기 수신된 정보에 기초하여, 상기 서버의 신빙성(authenticity)을 검증하는 동작을 포함한다.
본 발명의 다른 양태, 장점, 및 현저한 특징은 첨부된 도면과 함께 취해지는, 본 발명의 다양한 실시예들을 나타내는 다음의 상세한 설명으로부터 당업자에게 명백할 것이다.
다양한 실시예에 따른 방법 및 장치는 사용자-엔터프라이즈 및 엔터프라이즈-사용자의 개선된 양방향 인증을 제공하는 장치 및 방법을 제공한다.
도 1은 본 발명의 다양한 실시예들에 따른 모바일 디바이스의 블록도의 예를 도시한다.
도 2는 본 발명의 다양한 실시예들에 따른 엔터프라이즈 서버의 블록도의 예를 도시한다.
도 3은 본 발명의 다양한 실시예들에 따른 서브시스템들로 구성되는 컨텍스트 무결성 측정 아키텍처(context integrity measurement architecture, CIMA)의 최상위 레벨 아키텍처의 예를 도시한다.
도 4는 본 발명의 다양한 실시예들에 따른 CIMA 클라이언트 구조의 예를 도시한다.
도 5는 본 발명의 다양한 실시예들에 따른 컨텍스트 데이터 블록들로부터의 초기 Merkle 컨텍스트 트리 구조의 예를 도시한다.
도 6은 본 발명의 다양한 실시예들에 따른 후속하는 세션들과 초기 세션 간의 컨텍스트의 연속성을 보장할 수 있는 Merkle 컨텍스트 트리들에서의 블록 체이닝의 예를 도시한다.
도 7은 본 발명의 다양한 실시예들에 따른 컨텍스트 및 동작의 연속성의 예를 도시한다.
도 8은 본 발명의 다양한 실시에들에 따른 CIMA에서 컨텍스트 파라미터들의 추가 및 차감을 도시한다.
도 9는 본 발명의 다양한 실시예들에 따른 상이한 스케일들에서의 Merkle 컨텍스트 트리들의 블록 체인 링키지(linkage)를 도시한다.
도 10은 본 발명의 다양한 실시예들에 따른 연속성 및 컨텍스트 정보를 엔프라이즈에게 전송하는 메시지 스키마를 도시한다.
도 11은 본 발명의 다양한 실시예들에 따른 EPC(evidence package client) 암호화된 데이터 블롭(blob)을 도시한다.
도 12는 본 발명의 다양한 실시예들에 따른, 암호화 키 생성, 암호화 및 병합을 통해 EPC 메시지를 생성하는 것을 포함하는, 도 4의 메시지 핸들러의 EPC 메시지 구성 프로세스의 예를 도시한다.
도 13은 본 발명의 다양한 실시예들에 따른 CIMA 서버 구조의 예를 도시한다.
도 14a는 본 발명의 다양한 실시예들에 따른 엔터프라이즈 서버(CIMA 서버)에 의해 수행되는 EPC 메시지의 복호화를 위한 프로세스의 예를 도시한다.
도 14b는 본 발명의 다양한 실시예들에 따른 도 13의 메시지 핸들러에 의해 수행되는 EPS(evidence package server) 메시지의 구성을 위한 프로세스의 예를 도시한다.
도 15는 본 발명의 다양한 실시예들에 따른 동일한 사이즈를 갖는 두 개의 트리를 비교할 때 개념적 거리의 측정으로서 해석될 수 있는 Merkle 트리의 계층들의 예를 도시한다.
도 16은 본 발명의 다양한 실시예들에 따른 동작 연속성을 설정하기 위해 엔터프라이즈에게 해시 리프 노드들을 전송하는 엔드 포인트 디바이스에 대한 Merkle 트리의 예를 도시한다.
도 17 내지 도 19는 본 발명의 다양한 실시예들에 따른 컨텍스트 프라이버시(context privacy)를 보존하기 위한 방식의 예를 도시한다.
도 20은 본 발명의 다양한 실시예들에 따른 공유 비밀을 사용하는 위험성-기반 연결 결정의 예를 도시한다.
도 21은 본 발명의 다양한 실시예들에 따른 CIMA 컨텍스트 레저(ledger)의 예를 도시한다.
도 22는 본 발명의 다양한 실시예들에 따른 CIMA 메시지 포맷들의 예를 도시한다.
도 23은 본 발명의 다양한 실시예들에 따른 제어 패널 기능들의 예를 도시한다.
도 24는 본 발명의 다양한 실시예들에 따른 클라이언트 세션 셋업을 위한 흐름도의 예를 도시한다.
도 25는 본 발명의 다양한 실시예들에 따른 서버 인증 및 셋업을 위한 흐름도의 예를 도시한다.
도 26은 본 발명의 다양한 실시예들에 따른 CIMA 클라이언트에 대한 세션 개시를 위한 흐름도의 예를 도시한다.
도 27은 본 발명의 다양한 실시예들에 따른 모바일 디바이스의 관점에서의 모바일 디바이스와 엔터프라이즈 서버 간의 양방향 인증 프로세스에 대한 흐름도의 예를 도시한다.
도 28은 본 발명의 다양한 실시예들에 따른 UCR 비교의 예를 도시한다.
도 29a 내지 도 29b는 본 발명의 다양한 실시예들에 따른 지리적 거리에 기초한 UCR 분석의 예를 도시한다.
도 30a 내지 도 30b는 본 발명의 다양한 실시예들에 따른 네트워크 거리에 기초한 UCR 분석의 예를 도시한다.
도 31a 내지 31b는 본 발명의 다양한 실시예들에 따른 바이오메트릭의 거리에 기초한 UCR 분석의 예를 도시한다.
도 32a 내지 도 32b는 본 발명의 다양한 실시예들에 따른 주중 요일 에 기초한 UCR 분석의 예를 도시한다.
도 33a 내지 33b는 본 발명의 다양한 실시예들에 따른 주중 시간에 기초한 UCR 분석의 예를 도시한다.
도 34a 내지 도 34b는 본 발명의 다양한 실시예들에 따른 해밍 거리(Hamming distance) 분석의 예를 도시한다.
도 35는 본 발명의 다양한 실시예들에 따른 가장 가까운 UCR 매치(match)에 대한 가중 처리된 스코어 분석의 예를 도시한다.
도 36은 본 발명의 다양한 실시예들에 따른 엔터프라이즈 서버 관점에서의 모바일 디바이스와 엔터프라이즈 서버 간의 양방향 인증 프로세스에 대한 흐름도의 예를 도시한다.
도 37은 본 발명의 다양한 실시예들에 따른 방법 및 장치의 아키텍처 및 흐름도의 예를 도시한 것이다.
본 도면들 전반에 걸쳐서, 동일한 참조 번호들은 동일하거나 유사한 구성요소, 특징, 및 구조를 나타내는 사용되고 있음에 유의해야 한다.
도 2는 본 발명의 다양한 실시예들에 따른 엔터프라이즈 서버의 블록도의 예를 도시한다.
도 3은 본 발명의 다양한 실시예들에 따른 서브시스템들로 구성되는 컨텍스트 무결성 측정 아키텍처(context integrity measurement architecture, CIMA)의 최상위 레벨 아키텍처의 예를 도시한다.
도 4는 본 발명의 다양한 실시예들에 따른 CIMA 클라이언트 구조의 예를 도시한다.
도 5는 본 발명의 다양한 실시예들에 따른 컨텍스트 데이터 블록들로부터의 초기 Merkle 컨텍스트 트리 구조의 예를 도시한다.
도 6은 본 발명의 다양한 실시예들에 따른 후속하는 세션들과 초기 세션 간의 컨텍스트의 연속성을 보장할 수 있는 Merkle 컨텍스트 트리들에서의 블록 체이닝의 예를 도시한다.
도 7은 본 발명의 다양한 실시예들에 따른 컨텍스트 및 동작의 연속성의 예를 도시한다.
도 8은 본 발명의 다양한 실시에들에 따른 CIMA에서 컨텍스트 파라미터들의 추가 및 차감을 도시한다.
도 9는 본 발명의 다양한 실시예들에 따른 상이한 스케일들에서의 Merkle 컨텍스트 트리들의 블록 체인 링키지(linkage)를 도시한다.
도 10은 본 발명의 다양한 실시예들에 따른 연속성 및 컨텍스트 정보를 엔프라이즈에게 전송하는 메시지 스키마를 도시한다.
도 11은 본 발명의 다양한 실시예들에 따른 EPC(evidence package client) 암호화된 데이터 블롭(blob)을 도시한다.
도 12는 본 발명의 다양한 실시예들에 따른, 암호화 키 생성, 암호화 및 병합을 통해 EPC 메시지를 생성하는 것을 포함하는, 도 4의 메시지 핸들러의 EPC 메시지 구성 프로세스의 예를 도시한다.
도 13은 본 발명의 다양한 실시예들에 따른 CIMA 서버 구조의 예를 도시한다.
도 14a는 본 발명의 다양한 실시예들에 따른 엔터프라이즈 서버(CIMA 서버)에 의해 수행되는 EPC 메시지의 복호화를 위한 프로세스의 예를 도시한다.
도 14b는 본 발명의 다양한 실시예들에 따른 도 13의 메시지 핸들러에 의해 수행되는 EPS(evidence package server) 메시지의 구성을 위한 프로세스의 예를 도시한다.
도 15는 본 발명의 다양한 실시예들에 따른 동일한 사이즈를 갖는 두 개의 트리를 비교할 때 개념적 거리의 측정으로서 해석될 수 있는 Merkle 트리의 계층들의 예를 도시한다.
도 16은 본 발명의 다양한 실시예들에 따른 동작 연속성을 설정하기 위해 엔터프라이즈에게 해시 리프 노드들을 전송하는 엔드 포인트 디바이스에 대한 Merkle 트리의 예를 도시한다.
도 17 내지 도 19는 본 발명의 다양한 실시예들에 따른 컨텍스트 프라이버시(context privacy)를 보존하기 위한 방식의 예를 도시한다.
도 20은 본 발명의 다양한 실시예들에 따른 공유 비밀을 사용하는 위험성-기반 연결 결정의 예를 도시한다.
도 21은 본 발명의 다양한 실시예들에 따른 CIMA 컨텍스트 레저(ledger)의 예를 도시한다.
도 22는 본 발명의 다양한 실시예들에 따른 CIMA 메시지 포맷들의 예를 도시한다.
도 23은 본 발명의 다양한 실시예들에 따른 제어 패널 기능들의 예를 도시한다.
도 24는 본 발명의 다양한 실시예들에 따른 클라이언트 세션 셋업을 위한 흐름도의 예를 도시한다.
도 25는 본 발명의 다양한 실시예들에 따른 서버 인증 및 셋업을 위한 흐름도의 예를 도시한다.
도 26은 본 발명의 다양한 실시예들에 따른 CIMA 클라이언트에 대한 세션 개시를 위한 흐름도의 예를 도시한다.
도 27은 본 발명의 다양한 실시예들에 따른 모바일 디바이스의 관점에서의 모바일 디바이스와 엔터프라이즈 서버 간의 양방향 인증 프로세스에 대한 흐름도의 예를 도시한다.
도 28은 본 발명의 다양한 실시예들에 따른 UCR 비교의 예를 도시한다.
도 29a 내지 도 29b는 본 발명의 다양한 실시예들에 따른 지리적 거리에 기초한 UCR 분석의 예를 도시한다.
도 30a 내지 도 30b는 본 발명의 다양한 실시예들에 따른 네트워크 거리에 기초한 UCR 분석의 예를 도시한다.
도 31a 내지 31b는 본 발명의 다양한 실시예들에 따른 바이오메트릭의 거리에 기초한 UCR 분석의 예를 도시한다.
도 32a 내지 도 32b는 본 발명의 다양한 실시예들에 따른 주중 요일 에 기초한 UCR 분석의 예를 도시한다.
도 33a 내지 33b는 본 발명의 다양한 실시예들에 따른 주중 시간에 기초한 UCR 분석의 예를 도시한다.
도 34a 내지 도 34b는 본 발명의 다양한 실시예들에 따른 해밍 거리(Hamming distance) 분석의 예를 도시한다.
도 35는 본 발명의 다양한 실시예들에 따른 가장 가까운 UCR 매치(match)에 대한 가중 처리된 스코어 분석의 예를 도시한다.
도 36은 본 발명의 다양한 실시예들에 따른 엔터프라이즈 서버 관점에서의 모바일 디바이스와 엔터프라이즈 서버 간의 양방향 인증 프로세스에 대한 흐름도의 예를 도시한다.
도 37은 본 발명의 다양한 실시예들에 따른 방법 및 장치의 아키텍처 및 흐름도의 예를 도시한 것이다.
본 도면들 전반에 걸쳐서, 동일한 참조 번호들은 동일하거나 유사한 구성요소, 특징, 및 구조를 나타내는 사용되고 있음에 유의해야 한다.
이하, 본 문서의 다양한 실시예들이 첨부된 도면을 참조하여 기재된다. 실시예 및 이에 사용된 용어들은 본 문서에 기재된 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 해당 실시예의 다양한 변경, 균등물, 및/또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 본 문서에서, "A 또는 B" 또는 "A 및/또는 B 중 적어도 하나" 등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. "제 1," "제 2," "첫째," 또는 "둘째,"등의 표현들은 해당 구성요소들을, 순서 또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다. 어떤(예: 제 1) 구성요소가 다른(예: 제 2) 구성요소에 "(기능적으로 또는 통신적으로) 연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제 3 구성요소)를 통하여 연결될 수 있다.
본 문서에서, "~하도록 구성된(또는 설정된)(configured to)"은 상황에 따라, 예를 들면, 하드웨어적 또는 소프트웨어적으로 "~에 적합한," "~하는 능력을 가지는," "~하도록 변경된," "~하도록 만들어진," "~를 할 수 있는," 또는 또는 "~하도록 설계된"과 상호 호환적으로(interchangeably) 사용될 수 있다. 어떤 상황에서는, "~하도록 구성된 장치"라는 표현은, 그 장치가 다른 장치 또는 부품들과 함께 "~할 수 있는" 것을 의미할 수 있다. 예를 들면, 문구 "A, B, 및 C를 수행하도록 구성된(또는 설정된) 프로세서"는 해당 동작을 수행하기 위한 전용 프로세서(예: 임베디드 프로세서), 또는 메모리 장치에 저장된 하나 이상의 소프트웨어 프로그램들을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서(예: CPU(centural processing unit) 또는 AP(application processor))를 의미할 수 있다.
본 문서의 다양한 실시예들에 따른 전자 장치(또는 모바일 디바이스)는, 예를 들면, 스마트폰, 태블릿 PC, 이동 전화기, 영상 전화기, 전자책 리더기, 데스크탑 PC, 랩탑 PC, 넷북 컴퓨터, 워크스테이션, 서버, PDA(personal data assistant), PMP(portable multimedia player), MP3(Motion Picture Experts Group-1 audio layer-3) 플레이어, 의료기기, 카메라, 또는 웨어러블 장치 중 적어도 하나를 포함할 수 있다. 웨어러블 장치는 액세서리형(예: 시계, 반지, 팔찌, 발찌, 목걸이, 안경, 콘택트 렌즈, 또는 머리 착용형 장치(head-mounted-device, HMD), 직물 또는 의류 일체형(예: 전자 의복), 신체 부착형(예: 스킨 패드 또는 문신), 또는 생체 이식형 회로 중 적어도 하나를 포함할 수 있다. 어떤 실시예들에서, 전자 장치는, 예를 들면, 텔레비전, DVD(digital video disk) 플레이어, 오디오, 냉장고, 에어컨, 청소기, 오븐, 전자레인지, 세탁기, 공기 청정기, 셋톱 박스, 홈 오토매이션 컨트롤 패널, 보안 컨트롤 패널, 미디어 박스(예: 삼성 HomeSyncTM, 애플TVTM, 또는 구글 TVTM), 게임 콘솔(예: XboxTM, PlayStationTM), 전자 사전, 전자 키, 캠코더, 또는 전자 액자 중 적어도 하나를 포함할 수 있다.
다른 실시예에서, 전자 장치는, 각종 의료기기(예: 각종 휴대용 의료측정기기(혈당 측정기, 심박 측정기, 혈압 측정기, 또는 체온 측정기 등), MRA(magnetic resonance angiography), MRI(magnetic resonance imaging), CT(computed tomography), 촬영기, 또는 초음파기 등), 네비게이션 장치, 위성 항법 시스템(GNSS(global navigation satellite system)), EDR(event data recorder), FDR(flight data recorder), 자동차 인포테인먼트 장치, 선박용 전자 장비(예: 선박용 항법 장치, 자이로 콤파스 등), 항공 전자기기(avionics), 보안 기기, 차량용 헤드 유닛(head unit), 산업용 또는 가정용 로봇, 드론(drone), 금융 기관의 ATM, 상점의 POS(point of sales), 또는 사물 인터넷 장치(예: 전구, 각종 센서, 스프링클러 장치, 화재 경보기, 온도조절기, 가로등, 토스터, 운동기구, 온수탱크, 히터, 보일러 등) 중 적어도 하나를 포함할 수 있다. 어떤 실시예에 따르면, 전자 장치는 가구, 건물/구조물 또는 자동차의 일부, 전자 보드(electronic board), 전자 사인 수신 장치(electronic signature receiving device), 프로젝터, 또는 각종 계측 기기(예: 수도, 전기, 가스, 또는 전파 계측 기기 등) 중 적어도 하나를 포함할 수 있다. 다양한 실시예에서, 전자 장치는 플렉서블하거나, 또는 전술한 다양한 장치들 중 둘 이상의 조합일 수 있다. 본 문서의 실시예에 따른 전자 장치는 전술한 기기들에 한정되지 않는다. 본 문서에서, 사용자라는 용어는 전자 장치를 사용하는 사람 또는 전자 장치를 사용하는 장치(예: 인공지능 전자 장치)를 지칭할 수 있다.
본 발명의 다양한 실시예들에 따르면, 모바일 디바이스는 전술한 디바이스들의 임의의 조합이 될 수도 있다. 또한, 본 발명의 다양한 실시예들에 따른 모바일 단말기는 전술한 디바이스들에 한정되는 것이 아니라는 것이 당업자에게 자명할 것이다.
본 발명의 다양한 실시예들에 따르면, 엔터프라이즈 네트워크는 공용 네트워크 또는 개인 네트워크일 수 있다. 이것은 LAN(local area network), MAN(metropolitan area network) 또는 WAN(wide area network) 예를 들어 인터넷 등이 될 수 있다.
본 발명의 다양한 실시예들에 따르면, 엔터프라이즈 네트워크는 전술한 네트워크들의 임의의 조합이 될 수도 있다. 또한, 본 발명의 다양한 실시예들에 따른 엔터프라이즈 네트워크는 전술한 네트워크들에 한정되는 것이 아니라는 것이 당업자에게 자명할 것이다.
본 발명의 다양한 실시예들은 모바일 디바이스와 네트워크(예를 들어, 엔터프라이즈 네트워크) 간의 연결을 설정하기 위한 양방향 인증 장치 및 방법을 개시한다.
다기능 모바일 디바이스들은 바이오메트릭 컨텍스트, 위치 컨텍스트, 및/또는 동작 컨텍스트와 같은 컨텍스트에 의하여 엔드 사용자들을 식별하는 센서들 및 처리 전력을 갖고 있다. 효율적인 컨텍스트-처리 알고리즘들 및 데이터 구조들로 인하여 이러한 접근방식이 모바일 디바이스들에 대하여 실현될 수 있다. 본 발명의 다양한 실시예들은 사용자 성명 및 패스워드를 대체 또는 보충하기 위한 양방향 인증 장치 및 방법을 포함한다.
특히, 본 발명의 다양한 실시예들에 따른 장치 및 방법은 현재 및 과거의 사용자 컨텍스트 측정들에 기초하여, 사용자-엔터프라이즈 및 엔터프라이즈-사용자의 양방향 위험성 평가를 제공한다. 엔터프라이즈 서버는 위험성 스코어에 기초하여 사용자를 검증하며, 모바일 디바이스는 이전의 연결에 관한 일회용 정보 수신에 기초하여 엔터프라이즈 서버의 신빙성을 검증한다.
도 1은 본 발명의 다양한 실시예들에 따른 모바일 디바이스의 블록도의 예를 도시한다.
이하 사용되는 '…부', '…기' 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어, 또는, 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
도 1을 참조하면, 모바일 디바이스(100)는 센서들(101), 프로세서(107), 메모리(108), 사용자 입력 디바이스(114), 무선 통신부(109) 및 디스플레이(115)를 포함할 수 있다.
센서들(101)은, 예를 들어, 물리적 양들을 측정하거나 모바일 디바이스(100)와 관련된 동작 상태들을 검출할 수 있으며, 또한 그 측정되거나 검출된 정보를 전기 신호들로 변환할 수가 있다. 이 센서들(101)은 바이오메트릭(biometric) 센서(102), 위치 센서(103), 동작 센서(104), 네트워크 센서(105), 시간 센서(106), 제스처 센서(미도시), 자이로(gyro) 센서(미도시), 대기압 센서(미도시), 자기 센서(미도시), 가속도 센서(미도시), 그립(grip) 센서(미도시), RGB 컬러 센서(미도시), 온도 센서(미도시), 습도 센서(미도시), 조도 센서(미도시), 근접 센서(미도시) 및 자외선(ultraviolet, UV) 센서(미도시)를 포함할 수 있다.
예를 들어, 위치 센서(103)는 GPS(Global Positioning System) 디바이스, 또는 GPS 좌표와 같은 위치 정보를 제공할 수 있는 삼각 측량 디바이스일 수 있다. 시간 센서(106)는 GPS 디바이스, 또는 시, 분 및 초와 같은 시간 정보를 제공할 수 있는 시계일 수 있다. 네트워크 센서(105)는 IP 주소를 검출할 수 있는 송신 제어 프로토콜(transmit control protocol, TCP) 및 인터넷 프로토콜(internet protocol, IP) 호환 디바이스일 수 있다. 동작 센서(104)는, 로그인 이벤트들, 애플리케이션 사용 및 사용자에 의해 무시된 통지들과 같은 사용자 동작을 모니터링할 수 있는, 모바일 디바이스에서 실행되는 컨텍스트 인식 애플리케이션일 수 있다. 예를 들어, 디바이스 잠금해제 이벤트는 사용자 존재와 같은 사용자 동작의 가능성을 높게 나타내는 반면, 장기간 동안 사용자에 의해 무시된 팝-업 통지는 사용자 부재의 가능성을 높게 나타낸다. 동작 센서(104)는 사용자의 동작을 예측하기 위해, 바이오메트릭 센서(102), 위치 센서(103), 동작 센서(104), 네트워크 센서(105), 시간 센서(106), 제스처 센서, 자이로 센서, 대기압 센서, 자기 센서, 가속도 센서, 그립 센서, RGB 컬러 센서, 온도 센서, 습도 센서, 조도 센서, 근접 센서 및 자외선(UV) 센서 중의 하나 이상의 조합으로부터 데이터를 수신할 수 있는 컨텍스트 인식 애플리케이션일 수 있다.
다양한 실시예들에 따르면, 모바일 디바이스(100)는, 프로세서(107)의 일부로서 또는 프로세서(107)와는 별도로, 센서들(101)을 제어하도록 구성되는 마이크로 프로세서를 더 포함할 수 있다. 따라서, 모바일 디바이스(100)가 슬립 상태(sleep state)에 있는 동안, 별도의 마이크로 프로세서가 센서들(101)을 제어할 수도 있다.
센서들(101)은 바이오메트릭 측정들, 위치 팩터들, 네트워크 팩터들, 소프트웨어 상태, 모션(motion) 및 시간을 포함할 수 있는, 사용자를 식별하기 위한 관련 정보를 수집한다.
무선 통신부(109)는, 예를 들어, 셀룰러 인터페이스(cellular interface)(110), Wi-Fi(wireless fidelity) 인터페이스(111), 블루투스(Bluetooth; BT) 인터페이스(112) 및 무선 주파수(Radio Frequency, RF) 트랜시버(113)를 포함할 수 있다. RF 트랜시버(113)는 안테나에 연결되어, 셀룰러 인터페이스(110), Wi-Fi 인터페이스(111), 및 BT 인터페이스(112)와 결합된다.
셀룰러 인터페이스(110)는 통신 네트워크를 통해 음성 통화, 영상 통화, 문자 메시지, 또는 인터넷 서비스와 같은 서비스들을 제공할 수 있다. 본 발명의 일 실시예에 따르면, 셀룰러 인터페이스는 프로세서(107)의 기능들 중의 적어도 일부를 수행할 수 있다.
Wi-Fi, BT 및 셀룰러 인터페이스들은 모바일 디바이스(100)를 엔터프라이즈 네트워크에 연결하는데 사용될 수 있다. RF 트랜시버(113)는, 예를 들어, 셀룰러, BT 및/또는 BT 인터페이스들과 교환하는 통신 신호들(예를 들어, RF 신호들)을 송신 및 수신할 수 있다. RF 트랜시버(113)는, 예를 들어, 송신기, 수신기, 전력 증폭기, 주파수 필터, 저잡음 증폭기(low noise amplifier; LNA), 안테나 등을 포함할 수 있다.
무선 통신부(109)는 도 2의 엔터프라이즈 서버(200)와 교환하는 데이터를 송신 및 수신할 수 있다.
입력 디바이스(114)는, 예를 들어, 터치 패널, 및/또는 키(미도시)를 포함할 수 있다. 터치 패널은, 예를 들어, 정전용량 방식, 저항 방식, 적외선 방식, 및 초음파 방식 중 적어도 하나로 동작될 수 있다. 키는, 예를 들어, 물리적 버튼, 광학 키, 또는 키패드를 포함할 수 있다.
프로세서(107)는 중앙 처리 장치(CPU), FPGA(Field Programmable Gate Array), 범용 컴퓨터, 특수용 컴퓨터, 또는 다른 프로그램 가능한 데이터 처리 장치일 수 있다.
메모리(108)는 내장 메모리 또는 외부 메모리일 수 있다. 내장 메모리는 휘발성 메모리, 예를 들어, DRAM(dynamic random access memory), SRAM(static RAM), SDRAM(synchronous DRAM), 또는 비휘발성 메모리, 예를 들어, OTPROM(one-time programmable read only memory), PROM(programmable ROM; PROM), EPROM(erasable and programmable ROM), EEPROM(electrically erasable and programmable ROM), 마스크 ROM, 플래시 ROM, 플래시 메모리(예를 들어, NAND 플래시 메모리, NOR 플래시 메모리 등), 하드 드라이브, SSD(solid state drive) 중 적어도 하나를 포함할 수 있다.
도 2는 본 발명의 다양한 실시예들에 따른 엔터프라이즈 서버의 블록도의 예를 도시한다.
도 2를 참조하면, 엔터프라이즈 서버(200)는 프로세서(202), 메모리(203) 및 RF 트랜시버(201)를 포함할 수 있다. RF 트랜시버(201)는 셀룰러 인터페이스(미도시), Wi-Fi 인터페이스(미도시), 및 BT 인터페이스(미도시)를 포함할 수 있다. RF 트랜시버(201)는 안테나에 연결되어 있으며, 모바일 디바이스(도 1)로부터 데이터를 송신 및 수신할 수 있다.
프로세서(202)는 중앙 처리 장치(CPU), FPGA(Field Programmable Gate Array) 등일 수 있다.
메모리(203)는 내장 메모리 또는 외부 메모리일 수 있다. 내장 메모리는 휘발성 메모리, 예를 들어, DRAM(dynamic random access memory), SRAM(static RAM), SDRAM(synchronous DRAM), 또는 비휘발성 메모리, 예를 들어, OTPROM(one-time programmable read only memory), PROM(programmable ROM), EPROM(erasable and programmable ROM), EEPROM(electrically erasable and programmable ROM), 마스크 ROM, 플래시 ROM, 플래시 메모리(예를 들어, NAND 플래시 메모리, NOR 플래시 메모리 등), 하드 드라이브, SSD(solid state drive) 중 적어도 하나를 포함할 수 있다:.
도 3은 본 발명의 다양한 실시예들에 따른 서브시스템들로 구성되는 컨텍스트 무결성 측정 아키텍처(context integrity measurement architecture, CIMA)의 최상위 레벨 아키텍처의 예를 도시한다.
도 3을 참조하면, CIMA의 서브시스템들은 CIMA 클라이언트(엔드 포인트 디바이스)(10), CIMA 서버(11), 컨텍스트 레저(ledger)(12), 메시지 포맷들(13) 및 제어 패널(14)을 포함할 수 있다. 이들 서브시스템들은, Merkle 컨텍스트 트리를 구축하고, 최초 네트워크 세션으로부터 현재의 세션까지의 컨텍스트의 연속성을 검증하고, 현재의 컨텍스트가 이전에 알려진 컨텍스에 얼마나 "근접"해 있는지를 결정하고, 과거의 컨텍스트를 엔터프라이즈, 디바이스 및 사용자 간의 공유된 비밀로서 사용하고, 컨텍스트 연속성, 동작 근접성 및 공유된 비밀들을 위험성 평가 스코어를 위한 기준으로서 사용하여 엔드 사용자 디바이스(모바일 디바이스)와 엔터프라이즈의 신빙성을 검증하고, 모바일 디바이스 및 사용자에 대한 컨텍스트의 전체 히스토리에 대한 검토를 가능하게 하고, 연속성 검증, 동작 근접성 측정, 공유된 비밀들, 상호 위험성 평가, 및 감사성(auditability)을 가능하게 하면서 암호 해시들을 사용하여 컨텍스트 데이터를 난독화하고, 현재 및 이전의 해시 트리들, 그리고 가능하게는 이전의 트리들의 루트 해시들만을 저장하고, 사용자, 추가 센서들, 및 추가 컨텍스트 소스들에 대한 추가 보안 과제들에 기초하여, 필요에 따라 새로운 컨텍스트들을 연속성 측정들에 포함시키는데 사용될 수 있다. 이들 서브시스템들 각각은 아래의 도 4 내지 도 26와 관련하여 설명될 것이다.
도 4는 본 발명의 다양한 실시예들에 따른 CIMA 클라이언트 구조의 예를 도시한다.
도 4를 참조하면, CIMA 클라이언트(10)는, 센서들(20), 해셔(hasher)(21), 아카이브(archive)(22), 엔크립터(encryptor)(23), 메시지 핸들러(message handler)(24), 증거 패키지 클라이언트(evidence package client; EPC) 프로세서(25), 증거 패키지 서버(evidence package server; EPS) 프로세서(26), 밸리데이터(validator)(27) 및 세션 매니저(28)를 포함할 수 있는 하드웨어 및/또는 소프트웨어 기능들을 포함할 수 있다. 이러한 아키텍처 서브시스템들은 서로 간에 상호작용하며, 또한 도 3에 도시된 바와 같은 CIMA 서버(11)와 상호작용한다.
해셔(21), 아카이브(22), 엔크립터(23), 메시지 핸들러(24), 증거 패키지 클라이언트(EPC) 프로세서(25), 증거 패키지 서버(EPS) 프로세서(26), 밸리데이터(27) 및 세션 매니저(28)는 메모리(108)에 저장된 컴퓨터 프로그램 명령들, 컨텍스트-프로세싱 알고리즘들 및 데이터 구조들의 방식에 의해 구현될 수 있음을 이해할 것이다.
세션 매니저(28)에 의한 세션 개시는 바이오메트릭, 위치, 동작, 네트워크 및 시간(도 1)과 같은 센서들(20)로부터 컨텍스트 스냅샷(snapshot)을 트리거한다. 센서들(20)로부터 캡처되는 데이터는 바이오메트릭 측정, 위치 팩터, 네트워크 팩터, 소프트웨어 상태, 모션 및 시간을 포함할 수 있다.
CIMA 클라이언트(10)의 해셔(21)는 데이터를 해싱하고, 그 해싱된 데이터에 기초하여 Merkle 컨텍스트 트리를 구축한다. Merkle 트리는 2n개의 데이터 리프들을 해싱하는 것에 의하여 구성되는 이진 트리이다.
이제, 도 5에 관한 CIMA에 의한 Merkle 컨텍스트 트리 구성에 대하여 설명하도록 한다.
도 5는 본 발명의 다양한 실시예들에 따른 컨텍스트 데이터 블록들로부터의 초기 Merkle 컨텍스트 트리 구조의 예를 도시한다.
도 5를 참조하면, 컨텍스트 데이터 블록들은 일회용 랜덤 '넌스(nonce)', GPS 좌표, Wi-Fi 네트워크 IP 주소, 및 바이오메트릭 데이터를 포함할 수 있다. GPS 좌표, Wi-Fi 네트워크 IP 주소, 및 바이오메트릭 데이터는 네트워크 세션의 시작 시에 센서(20)에 의해 캡처되는 사용자의 동작 컨텍스트에 관한 정보를 포함할 수 있다. 예를 들어, 일 블록은 데시멀 각도로서 저장된 위도 및 경도(예컨대, 37.7699833333336 및 -122.46626166666668), 그리고 데시멀 미터로서 저장된 고도(예컨대, 2.35)를 갖는, GPS 좌표의 스트링과 같은 위치 정보를 포함할 수 있다. 다른 블록은 가시적 Wi-Fi 네트워크의 IPv6 주소를 나타내는 문자 스트링(예컨대, ABC:567::8888:9999:1111:0)과 같은 네트워크 정보일 수 있다. 다른 블록은 바이오메트릭 데이터, 예를 들어 지문을 나타내는 300-바이트 스트링을 포함할 수 있다. 또한, CIMA 측정을 위한 초기 데이터 블록은 랜덤 암호화 넌스, 예를 들어, 랜덤 또는 의사-랜덤 번호와 같은 넌스를 포함할 수도 있다.
이들 데이터 블록들(도 5의 데이터 리프들)로부터, Merkle 트리는 데이터 블록들의 해시를 가지고 해시 리프들 a[0,0], a[0,1], a[0,2] 및 a[0,3]를 생성하도록 구성된다. 각각의 해시는 다른 해시와 페어링되며, 그 결과 생성된 접합(concatenation)이 다시 해싱된다. 예를 들어, 해시 a[0,0]가 a[0,1]와 페어링되어 내부 노드 a[1, 0]를 생성하며, 또한 해시 a[0,2]가 a[0,3]와 페어링되어 내부 노드 a[1,1]를 생성하게 된다. 이러한 페어링 및 해싱 프로세스는, 도 5에 도시된 바와 같이, 하나의 해시 A[2,0]만이 남게 될 때까지 계속된다(이하, Merkle 루트로 지칭됨). 트리는 h 레벨들의 높이를 가지며, 인덱스 값 i는 특정 레벨의 높이를 나타낸다. 도 5에서, 해시 리프들은 레벨 i = 0으로 존재하며, 내부 노드들은 i = 1로 존재하고, 또한 Merkle 루트는 i = 2로 존재한다. 높이 h의 트리는 2h 리프들을 갖게 된다. 즉, 각 데이터 블록의 해시는 해시 리프를 생성하게 된다. 해시 리프들이 다시 페어링 및 해싱됨으로써 내부 노드들을 생성하게 된다. 이 해싱 프로세스는 정점 해시, 또는 Merkle 루트를 생성하게 될 때까지 계속된다.
도 6은 본 발명의 다양한 실시예들에 따른 후속하는 세션들과 초기 세션 간의 컨텍스트의 연속성을 보장할 수 있는 Merkle 컨텍스트 트리들에서의 블록 체이닝의 예를 도시한다.
도 6을 참조하면, 후속 세션들에서, 도 5의 넌스(nonce) 데이터 블록은 컨텍스트의 연속성을 제공하기 위해 이전의 루트로 대체된다. 즉, CIMA 접근방식 하에서, 최초에 모바일 디바이스는 CIMA-인식 네트워크에 연결되며, 컨텍스트를 인코딩하는 Merkle는 데이터 블록들 중의 하나로서 넌스를 사용한다. 모든 후속 네트워크 세션들은, 도 6에 도시된 바와 같이, 그 넌스를, 이전의 세션 동안에 생성된 Merkle 루트로 대체한다.
도 7은 본 발명의 다양한 실시예들에 따른 컨텍스트 및 동작의 연속성의 예를 도시한다.
도 7을 참조하면, 현재의 세션, 이전의 세션, 더 이전의 세션 및 제 1 세션으로부터의 Merkle 컨텍스트 트리들은, 현재의 세션으로부터 제 1 세션까지의 컨텍스트 및 동작의 연속성을 설정하도록 연동될 수 있다.
도 8은 본 발명의 다양한 실시에들에 따른 CIMA에서 컨텍스트 파라미터들의 추가 및 차감을 도시한다.
CIMA는 세 가지 방식으로 적응 및 스케일링될 수 있다. 첫째, 컨텍스트 파라미터들 중의 어떤 임의의 수를 포함시킬 수 있다. 둘째, 다수의 디바이스들을 소유하는 사용자들에게 적응될 수 있다. 셋째, 다수의 사람들이 동일한 엔드 포인트 디바이스를 사용하는 경우, 동작 무결성을 보존 및 처리할 수 있다.
도 8을 참조하면, Merkle 컨텍스트 트리들은 이진 트리들이기 때문에, 이들은 2n 데이터 블록들로 구축될 수 있다. 도 5 및 도 6은 22 = 4 데이터 블록들, 및 2n - 1 = 7 노드들을 보여준다. 후속 사이즈 트리는 23 = 8 데이터 블록들(Hy[0] 내지 Hy[7]) 및 2n-1 = 15 노드들(a[0,0] 내지 a[3,0])을 갖는다. 이러한 스케일링 속성은, 컨텍스트 데이터가 어떤 임의의 수로 확장될 수 있지만, 특정 스케일에서 "사용되지 않은" 데이터 블록들은 암호화 넌스에 의해 채워져야 한다는 것을 의미한다.
도 9는 본 발명의 다양한 실시예들에 따른 상이한 스케일들에서의 Merkle 컨텍스트 트리들의 블록 체인 링키지(linkage)를 도시한다.
도 9를 참조하면, Merkle 컨텍스트 트리들의 루트-1, 루트-2, 및 루트-3은 서로 상이한 스케일을 갖더라도, 서로 블록 체인들로 링크(link)될 수 있다. 이것은 센서-기반 컨텍스트 측정들이 시간에 따라 변화하는 경우라도, 동작 연속성의 확실성(assertion)을 가능하게 할 수 있다.
엔드 포인트 디바이스들은, 세션을 위한 Merkle 컨텍스트 트리들을 구성하기 위해, 단지 엔터프라이즈 서버에 대하여 요구되는 최소한의 데이터만을 전송할 필요가 있을 수 있다. 디바이스가 리프 노드 해시들을 전송하는 경우, 엔터프라이즈 서버는 내부 노드들, 및 루트 노드를 산출할 수 있다. 데이터 블록들의 해시들만으로 송신을 제한하는 것은, 통신의 효율성을 개선할 수 있다. 마찬가지로, 신빙성을 증명하기 위하여, 엔터프라이즈 서버는 단지 이전의 내부 노드 해시에 대한 정보만을 송신할 수가 있다. 하나의 해시는 단지 한번만 사용될 수 있다.
Merkle 컨텍스트 트리가 시간의 경과에 따라 확장 또는 수축하는 경우, 엔터프라이즈 서버가 하나의 세션으로부터의 리프 노드 해시들을 다음 세션과 비교하는 능력을 가지면, 엔터프라이즈 서버는 계속하여 컨텍스트의 연속성 및 동작의 근접성을 측정할 수 있다. 엔터프라이즈 서버는, 리프 노드 해시들 모두가 라벨링되어 있는 경우, 이러한 비교들을 수행할 수 있다. 해시들은 명시적 또는 암시적으로 라벨링될 수 있다. 명시적 라벨의 일 예는 다음과 같다: GPS-DFCD3454BBEA788A751A696C24097009CA992D17, 여기서 'GPS'는 특정 포맷에서의 데이터 해시를 나타내는 라벨이며, 'DCF . . .'는 그 해시의 리프 노드 인스턴스이다. 암시적 라벨의 일 예는 다음과 같다: '버전 1.23', 여기서 포맷 버전은 첫번째 해시가 특정 포맷에서의 GPS 데이터이며, 두번째 해시가 IPv6 네트워크 주소라는 등을 나타낸다(버전 커탈로그로). 버전 번호는 구조화된 메시지에서 모든 데이터에 대한 스키마 카탈로그 레퍼런스로서 사용될 수 있으며, 따라서 이것은 명시적 라벨들보다 더 효율적일 수 있다.
리프 노드 해시 데이터가 명시적 또는 암시적으로 라벨링(labelling)되는 것으로 가정하면, 위험성 스코어는 사용 가능한 컨텍스트 센서들이 변경될 경우에도, 산출될 수가 있다. 컨텍스트 애퍼처(context aperture)는 모바일 디바이스(CIMA 클라이언트)가 사용 가능한 컨텍스트 센서들에 기초하여 측정할 수 있는 것이다. 예를 들어, 사용자가 빌딩으로 모바일 디바이스를 가져가는 경우에는, GPS 신호가 더 이상 잡히지 않아, 컨텍스트 애퍼처는 감소한다. 컨텍스트 애퍼처는 외부 또는 내부 조건으로 인해 시간의 경과에 따라 증가하거나 감소할 수 있다.
동작 근접성을 측정하기 위하여, 컨텍스트 애퍼처가 동일한 경우에는, 세션 1을 위한 컨텍스트 애퍼처가 센서 측정들 A, B, C, 및 D에 의해 정의될 수 있다. 세션 2를 위한 컨텍스트 애퍼처는 센서 측정들 A', B', C', 및 D'에 의해 정의될 수 있으며, 여기서 센서들은 세션 1과 동일한 타입을 가지며, 세션 1에서와 동일한 포맷으로 데이터를 생성할 수 있다.
wa = 센서 A로부터의 데이터에 할당된 가중치
wb = 센서 B로부터의 데이터에 할당된 가중치
wc = 센서 C로부터의 데이터에 할당된 가중치
wd = 센서 D로부터의 데이터에 할당된 가중치
인 것으로 하고,
H(A) = 데이터 블록 A의 해시; H(A') = 데이터 블록 A'의 해시
H(B) = 데이터 블록 B의 해시; H(B') = 데이터 블록 B'의 해시
H(C) = 데이터 블록 C의 해시; H(C') = 데이터 블록 C'의 해시
H(D) = 데이터 블록 D의 해시; H(D') = 데이터 블록 D'의 해시
인 것으로 하고,
XA = 1, {H(A) - H(A')} = 0인 경우; 및 XA = 0, 그렇지 않은 경우.
XB = 1, {H(B) - H(B')} = 0인 경우; 및 XB = 0, 그렇지 않은 경우.
XC = 1, {H(C) - H(C')} = 0인 경우; 및 XC = 0, 그렇지 않은 경우.
XD = 1, {H(D) - H(D')} = 0인 경우; 및 XD = 0, 그렇지 않은 경우.
인 것으로 하고,
RC는 엔드 포인트 디바이스에 의해 송신된 값과 비교되는, 엔터프라이즈에 의해 산출된 루트 해시 블록(root hash block, RHB)의 매칭 값인 것으로 한다. 예를 들어, 매칭되는 경우에는, RC = 1이고; 그렇지 않은 경우에는 RC = 0이다.
Rm은 컨텍스트에 기초하여 측정되는 동작 근접성 스코어인 것으로 한다.
그러면, Rm = RC * { (wa * XA) + (wb * XB) + (wc * XC) + (wd * XD) }가 된다.
동작 근접성을 측정하기 위하여, 컨텍스트 애퍼처가 변화하는 경우에는, 세션 1을 위한 컨텍스트 애퍼처가 센서 측정들 A, B, C, 및 D에 의해 정의될 수 있다. 세션 2를 위한 컨텍스트 애퍼처는 센서 측정들 A', B', 및 D'에 의해 정의될 수 있으며, 여기서 센서들은 세션 1과 동일한 타입을 가지며, 세션 1과 동일한 포맷으로 데이터를 생성한다. 센서 C는 세션 2에서 사용될 수 없기 때문에, 널(null) 측정의 해시는 세션 1에서 획득된 값과 상이하게 된다. 따라서, XC = 0이 된다. 동작 근접성 스코어, Rm은 이전과 같이 측정되지만, 이제 이 스코어는 증거 양의 감소로 인하여 더 낮아지게 된다. 이것이 의미하는 바는, 엔터프라이즈 네트워크 오퍼레이터가 위험성 임계값의 설정 시에 잠재적인 센서 드롭-아웃(drop-out)들을 고려해야만 한다는 것이다.
도 4를 참조하면, 아카이브(22)는 Merkle 컨텍스트 트리들을 저장한다. 아카이브(22)는 CIMA 클라이언트(모바일 디바이스와 같은 엔드 포인트 디바이스들) 및 CIMA 서버(엔터프라이즈 서버)에 의해 공유될 수 있는 블록 체인 데이터베이스(컨텍스트 레저(context ledger))일 수 있다. 아카이브(22)는 엔드 포인트 디바이스들의 메모리를 절약하기 위해서, 단지 현재 및 직전의(previous) 해시 트리들, 그리고 가능하게는 직전의 트리들의 루트 해시들만을 저장할 수 있다.
메시지 핸들러(24)는 증거 패키지 클라이언트(EPC)를 구성하여, 증거 패키지 서버(EPS) 메시지를 파싱(parsing)할 수 있다. 이 EPC 및 EPS 메시지들은 증거 패키지(Evidence Packages)이다. EPC 메시지는, 컨텍스트의 연속성 및 "정상" 동작에의 근접성을 증명하기 위해, 클라이언트 디바이스에 의해서 엔터프라이즈 서버로 송신될 수 있다. EPC 메시지는 도 5의 해시 리프 노드들, 내부 노드들 또는 Merkle 루트 중 적어도 하나를 포함할 수 있는 사용자 컨텍스트 기록(user context record; UCR)을 포함할 수 있다. 한편, 엔터프라이즈 서버(200)는 클라이언트의 이전의 컨텍스트(EPS 메시지)에 대한 정보를 저장하기 때문에, 엔터프라이즈의 신빙성을 증명하기 위해, EPS는 엔터프라이즈 서버(200)로부터 클라이언트 디바이스(모바일 디바이스(100))로 제공될 수 있다. EPS 메시지는, 이전의 Merkle 트리의 하나 이상의 내부 노드들을 포함하는 지식의 증명으로서, 사전-공유된 비밀의 형태로 정보를 포함할 수 있다.
엔크립터(23)는, 그것들이 위험성 및 아이덴티티에 관한 정보를 전달할 시에, 컨텍스트 기반 암호화를 수행함으로써 EPC 및 EPS 메시지들을 보안화할 수 있다. 엔크립터(23)는, 엔드 포인트 디바이스 및 엔터프라이즈 양쪽 모두가 그 디바이스 및 사용자의 컨텍스트 히스토리를 인식하게 되도록, 암호화된 데이터를 공유할 수 있다. 따라서, 컨텍스트 히스토리는 사전에 공유된 비밀의 타입으로서, 디바이스를 연결하는 것과 관련된 리스크를 평가하기 위해 엔터프라이즈 서버에 의해 사용될 수 있을 뿐만 아니라, 엔터프라이즈 네트워크의 신빙성을 검증하기 위해 디바이스에 의해서도 사용될 수 있다. 엔드 포인트 디바이스 및 엔터프라이즈 서버는, 상호 인증을 위해, 단지 이전의 Merkle 루트들을 서로 제공할 수 있다.
도 10은 본 발명의 다양한 실시예들에 따른 연속성 및 컨텍스트 정보를 엔프라이즈에게 전송하는 메시지 스키마를 도시한다.
도 10을 참조하면, 메시지 타입(MESSAGE TYPE)은 'EPC'일 수 있으며, 포맷 버전(FORMAT VERSION)은 메시지 스키마를 나타내는 카탈로그 레퍼런스일 수 있다. 포맷 버전은, 센서 출력을 위한 데이터 모델 및 데이터 포맷들에 대한 가정들을 나타낼 수 있기 때문에, 플랫폼에 따라 고유한 값일 수 있다. 시간 스탬프(TIME STAMP)는 EPC 컨텍스트 보고의 감사성(auditability)을 향상시킨다. 또한, 날짜와 시간이 암호화 키 생성 프로세스에 있어 이용(임베디드)되기 때문에, 리플레이(replay) 타입의 공격들을 방지할 수 있다. 엔터프라이즈 서버는 이전 세션들로부터 구성된 Merkle 컨텍스트 트리들, 및 디바이스에게 할당한 각각의 해시를 가질 수 있다. 따라서, 플랫폼은 마지막 세션으로부터의 내부 해시 노드를 '컨텍스트 인증자(context authenticator)'로서 사용하여, 데이터의 소스를 엔터프라이즈 서버에게 증명할 수 있다. 컨텍스트 인증자는 키 생성 프로세스에서도 사용될 수 있다. 컨텍스트 인증자가 수정되는 경우, 컨텍스트 페이로드를 운반하는 암호화된 데이터 블롭은 복호화되지 않는다. 메시지 페이로드가 복호화되지 않는 경우에는, 잠재적인 탬퍼링의 증거가 존재할 수 있다.
도 11은 본 발명의 다양한 실시예들에 따른 EPC 암호화된 데이터 블롭을 도시한다.
도 11을 참조하면, EPC 암호화된 데이터 블롭은 데이터 해시들 HASH-1 내지 HASH-N의 결합일 수 있으며, 전체 페이로드는 컨텍스트 기반 암호화 키를 사용하여 암호화될 수 있다. 코드 크래킹(code cracking)을 위한 레퍼런스로서 사용될 수 있는 반복 클리어 텍스트 마커가 없기 때문에, 컨텍스트 기반 암호화 키를 사용한 암호화 방식은 사이드-채널 암호화 공격을 더욱 어렵게 만든다. 넌스는 단순한 랜덤 스트링(random string)이다. 넌스의 목적은 다음의 두 가지이다: (1) 메시지 페이로드에서 운반되는 해시들의 번호를 난독화(obfuscate)함으로써, 컨텍스트에 관하여 공격자가 사용할 수 있는 정보 양을 제한하고; 또한 (2) 엔드 포인트 디바이스와 엔터프라이즈 서버 간의 공유된 비밀로서 재사용될 수 있다.
도 12는 본 발명의 다양한 실시예들에 따른, 암호화 키 생성, 암호화 및 병합을 통해 EPC 메시지를 생성하는 것을 포함하는, 도 4의 메시지 핸들러의 EPC 메시지 구성 프로세스의 예를 도시한다.
도 12를 참조하면, 동작 500에서, 메시지 핸들러(24)는 컨텍스트 인증자(CA)로서, 이전 세션으로부터 무작위로 내부 해시를 선택할 수 있다. 동작 501에서, 메시지 핸들러(24)는 날짜-시간을 해시 코드(DT)로 변환할 수 있다. 동작 502에서, 메시지 핸들러(24)는 이전 세션의 루트 해시(root hash, RH)를 얻을 수 있다. 동작 503에서, 메시지 핸들러(24)는 도 12에 도시된 것과 같은 수학식을 사용하여 암호화된 블롭을 위한 일회성 암호화 키를 구성할 수 있다. 이 수학식은 본 발명을 제한할 목적이 아니라 단지 예로서 제공되는 것으로 이해될 것이다. 생성된 "KEY"는 암호화 키일 뿐만 아니라, 중간자 공격 하이재킹(man-in-the-middle hijacking)에 대한 세이프가드(safeguard)를 포함하는 아이덴티티의 영지식 증명(zero-knowledge proof)일 수 있다. 이 "KEY"는 한번만 사용되고, 또한 이것은 참조로서 어떠한 클리어 텍스트 데이터도 포함하지 않는 페이로드를 암호화하며, 또한 실제의 페이로드의 길이는 넌스에 의해 숨겨져 있기 때문에, 어떠한 브루트 포스(brute force) 및/또는 사이드-채널(side-channel) 공격도 이 키에 대하여는 작동될 가능성이 낮다.
동작 504에서, 메시지 핸들러(24)는 XOR(exclusive OR)을 사용하여 암호화 키로부터 페이로드를 암호화하고, EPC 메시지를 생성하기 위한 모든 요소들을 결합할 수 있다.
도 4를 다시 참조하면, CIMA 클라이언트의 EPC 프로세서(25)는 엔터프라이즈 서버에게 EPC를 송신하기 이전에, EPC 메시지에 헤더(header)를 추가할 수 있다. 또한, EPS 프로세서(26)는 엔터프라이즈로부터 수신되는 EPS 메시지를 복호화할 수 있다.
밸리데이터(27)는 신빙성의 증명으로서 엔터프라이즈 서버로부터 수신된 이전의 Merkle 루트의 해시와 같은 정보에 기초하여, 엔터프라이즈 서버의 신빙성을 검증할 수 있다. 특히, 엔드 포인트 디바이스 상의 CIMA 클라이언트의 밸리데이터(27)는, 엔터프라이즈에 의해 제공되는 이전의 컨텍스트의 지식에 기초하여 위험성을 평가한다.
도 13은 본 발명의 다양한 실시예들에 따른 CIMA 서버 구조의 예를 도시한다.
도 13을 참조하면, CIMA 서버(11)는 메시지 핸들러(30), 해셔(31), 아카이브(32), 엔크립터(33), 리스크 어세서(34), 증거 패키지 클라이언트(EPC) 프로세서(35), 및 증거 패키지 서버(EPS) 프로세서(36)를 포함할 수 있는 하드웨어 및/또는 소프트웨어 기능들을 포함할 수 있다. 이러한 아키텍처 서브시스템들은 서로 간에 상호작용하며, 또한 도 3에 도시된 바와 같은 CIMA 서버(11)와 상호작용한다.
메시지 핸들러(30), 해셔(31), 아카이브(32), 엔크립터(33), 리스크 어세서(34), 증거 패키지 클라이언트(EPC) 프로세서(35), 및 증거 패키지 서버(EPS) 프로세서(36)는 메모리(108)에 저장되는 컴퓨터 프로그램 명령들, 컨텍스트-프로세싱 알고리즘들 및 데이터 구조들의 방식으로 구현될 수 있음이 이해될 것이다.
메시지 핸들러(30)는 증거 패키지 서버(EPS)메시지를 구성할 수 있으며 또한 증거 패키지 클라이언트(EPC) 메시지를 파싱할 수도 있다. EPC 및 EPS 메시지들은 증거 패키지(Evidence Packages)이다. EPC 메시지는 컨텍스트의 연속성 및 "정상" 동작에 대한 근접성을 증명하기 위해, 클라이언트 디바이스에 의해서 엔터프라이즈 서버로 송신될 수 있다. EPC 메시지는 도 5에 도시된 해셔 리프 노드들, 내부 노드들 또는 Merkle 루트 중의 적어도 하나를 포함할 수 있는 사용자 컨텍스트 기록(UCR)을 포함할 수 있다. 한편, 엔터프라이즈 서버(200)는 클라이언트의 이전 컨텍스트(EPS 메시지)의 지식을 갖고 있기 때문에, 엔터프라이즈의 신빙성을 증명하기 위해, EPS가 엔터프라이즈 서버(200)에 의해서 클라이언트 디바이스(모바일 디바이스(100))에게 제공될 수 있다. 이 EPS 메시지는 이전 Merkle 트리의 하나 이상의 내부 노드들을 포함하는 지식의 증명으로서, 사전-공유된 비밀의 형태로 정보를 포함할 수 있다.
도 14a는 본 발명의 다양한 실시예들에 따른 엔터프라이즈 서버(CIMA 서버)에 의해 수행되는 EPC 메시지의 복호화를 위한 프로세스의 예를 도시한다.
도 14a를 참조하면, 엔터프라이즈 서버(200)의 메시지 핸들러(30)는 동작 700에서 EPC 메시지를 수신할 수 있으며, 동작 701에서는, 사용자 및 디바이스에 컨텍스트 인증자를 맵핑함으로써 컨텍스트 인증자를 검증할 수가 있다. 동작들 702 및 703에서, 엔터프라이즈 서버는 도 14a에 도시된 수학식을 사용하여 복호화 키를 구성할 수 있으며, 복호화 키로 XOR을 행하여 데이터 블롭(페이로드)을 복호화할 수가 있다. 복호화 키를 구성하는 이 수학식은 본 발명을 제한하기 위한 목적이 아니라 단지 예로서 제공되는 것으로 이해될 것이다. 동작 704에서, 해셔(31)는 재사용을 위해 복호화된 넌스를 별도로(set aside) 확보할 수 있다. 동작 705에서, 해셔(31)는 새로운 Merkle 트리를 구성하여, 해시들을 사용자 및 플랫폼과 연관시킬 수 있다. 동작(706)에서, 메시지 핸들러(30)는 아래의 도 14b에서 설명되는 프로세스에 따라 EPS 메시지를 구성한다.
도 14a는 본 발명의 다양한 실시예들에 따른 엔터프라이즈 서버(CIMA 서버)에 의해 수행되는 EPC 메시지의 복호화를 위한 프로세스의 예를 도시한다.
도 14b를 참조하면, 동작들 750 및 751에서, 메시지 핸들러(30)는 마지막 세션 트리로부터의 미사용 내부 노드를 컨텍스트 인증자로서 사용하여, EPS 메시지를 구성할 수 있다. EPC 메시지로부터의 넌스는 EPS 응답을 위한 새로운 일회용 암호화 키를 생성하는데 사용될 수 있다. 이 메지지 타입은 'EPS'일 수 있으며, 그 포맷 버전 번호는 메시지 스키마를 나타내는 카탈로그 레퍼런스일 수 있다. 포맷 버전은 플랫폼에 대해 고유한 것일 수 있으며, 그 이유는 이것이 센서 출력을 위한 데이터 포맷들 및 데이터 모델에 대한 가정들을 나타내기 때문이다. 시간 스탬프는 EPC 컨텍스트 보고의 감사성(auditability)을 향상시킨다. 또한, 날짜와 시간에 대한 정보는 암호화 키 생성 프로세스에 이용(임베디드)되기 때문에, 리플레이 타입의 공격들을 방지할 수 있다. 엔터프라이즈 서버는 이전 세션들로부터 구성된 Merkle 컨텍스트 트리들, 및 디바이스에게 할당한 각각의 해시를 저장할 수 있다. 따라서, 플랫폼은 마지막 세션으로부터의 내부 해시 노드를 '컨텍스트 인증자'로서 사용하여, 데이터의 소스를 엔터프라이즈 서버에게 증명할 수가 있다. 컨텍스트 인증자는 키 생성 프로세스에서도 사용될 수 있다. 컨텍스트 인증자가 수정되는 경우, 컨텍스트 페이로드를 운반하는 암호화된 데이터 블롭은, 복호화되지 않는다. 메시지 페이로드가 복호화되지 않는 경우에는, 잠재적인 탬퍼링의 증거가 존재할 수 있다.
다시 도 13을 참조하면, CIMA 서버(11)의 해셔(31)는 CIMA 클라이언트(10)로부터 수신된 해시 리프 노드들에 기초하여, Merkle 컨텍스트 트리를 구성한다. Merkle 컨텍스트 트리들을 구성하는 프로세스는 상기 도 5 내지 도 9에 관하여 설명한 바와 같다.
아카이브(32)는 Merkle 컨텍스트 트리들을 저장한다. 아카이브(32)는 CIMA 클라이언트(모바일 디바이스와 같은 엔드 포인트 디바이스들) 및 CIMA 서버(엔터프라이즈 서버)에 의해 공유될 수 있는 블록 체인 데이터베이스(컨텍스트 레저)일 수 있다.
엔크립터(33)는, 위험성 및 아이덴티티와 관련된 정보가 전송될 때, EPC 및 EPS 메시지들을 보안화하기 위해 컨텍스트 기반 암호화를 수행할 수 있다. 엔크립터(33)는 엔드 포인트 디바이스 및 엔터프라이즈 서버 모두가 그 디바이스 및 사용자의 컨텍스트 히스토리를 인식하도록, 암호화된 데이터를 공유할 수 있다. 따라서, 컨텍스트 히스토리는 사전에 공유된 비밀의 타입으로서, 디바이스를 연결하는 것과 관련된 위험성을 평가하기 위해 엔터프라이즈 서버에 의해 사용될 수 있을 뿐만 아니라 엔터프라이즈 네트워크의 신빙성을 검증하기 위해 엔드 포인트 디바이스에 의해서도 사용될 수 있다. 엔드 포인트 디바이스 및 엔터프라이즈 서버는 상호 인증을 위해, 단지 이전의 Merkle 루트들을 서로 간에 제공할 수 있다.
도 15 내지 도 20을 참조하여 설명되는 바와 같이, CIMA 서버에 있는 리스크 어세서(34)는, 현재의 컨텍스트를 이전의 컨텍스트와 비교하는, 가중 처리된 매치 스코어에 기초하여 연결의 위험성을 평가할 수 있다.
도 15는 본 발명의 다양한 실시예들에 따른 동일한 사이즈를 갖는 두 개의 트리를 비교할 때 개념적 거리의 측정으로서 해석될 수 있는 Merkle 트리의 계층들의 예를 도시한다.
도 15를 참조하면, CIMA 클라이언트를 이용하는 사용자는 민감한 엔터프라이즈 네트워크에 연결될 경우, 양방향 위험성 평가에 참여할 수가 있다. 엔터프라이즈는 현재의 세션 또는 후속의 세션에 대한 Merkle 트리(예를 들면, 도 5 또는 도 6의 트리)를 수신(또는 계산)할 수 있으며, 그것을 아카이브(32)에 저장된 이전의 트리들과 비교할 수 있다. 루트 해시 a[3,0]가 매칭되는 경우에는, 항상 데이터 블록들이 매칭된다. 루트들에서 미스 매칭이 존재하는 경우에는, 다음으로 낮은 계층 a[2, 0] 내지 a[0,7]를 체크하여, 임의의 하위 노드들이 매칭되는지 여부를 확인하게 된다. 내부 노드들 중의 하나를 제외한 모든 노드들이 매칭되는 경우에는, 미스 매칭되는 영역이 식별된다.
현재의 Merkle 트리를, 동일한 사이즈를 가진 참조 트리와 비교할 경우, 트리의 계층이 공지 또는 승인된 표준으로부터의 개념적 거리와 연관될 수 있다. 트리 매칭이 더 낮아지는 것으로 판정될 경우, 개념적 거리는 더 커지게 된다. 이전의 트리들로부터의 해시 리프들과 매칭되는 해시 리프들의 수는 이전에 식별 및 인증된 컨텍스트들에 대한 근접성과 연관된다. 매칭 정도를 평가함에 있어서, 엔터프라이즈는 연결을 허용하기 위한 미리 결정된 위험성 레벨을 가질 수 있다. 이 위험성은 정량화될 수 있다. 각각의 데이터 블록은 상이한 가중치가 부여될 수 있다. 예를 들어, 바이오메트릭 데이터 블록은 날짜-시간 데이터 블록보다 더 중요한 것으로 간주될 수 있다.
엔터프라이즈 위험성 측정은 이전의 컨텍스트들에 대하여 상대적인 데이터 블록 근접성의 가중치 값에 기초할 수 있다. 궁극적으로, 근접성은 이전의 컨텍스트 히스토리에서 발견되는 데이터 블록들에 대한 매칭을 평가함으로써 측정된다. 예를 들면:
S = 세션 시작 시에 컨텍스트로서 캡처되는 모든 데이터 블록들의 세트 D 인 것으로 하며, 즉,
{D1, D2, D3 . . . Dn}
n = 데이터 블록들의 수
i = S의 i번째 요소
wi = i번째 요소에 부여된 가중치
X = i번째 데이터 블록에 대한 바이너리 (0,1) 매칭 값, 매칭되는 경우에는 X=1, 그렇지 않은 경우에는 X=0
Rt = 엔터프라이즈에 의해 설정되는 허용 가능한 위험성의 임계값(이 값을 초과하는 경우에는, 엔터프라이즈가 연결을 허용함)
Rm = 컨텍스트에 기초하여, 측정되는 동작 근접성의 값
그러면, 동작 근접성 값 Rm은 아래의 <수학식 1>과 같이 정의될 수 있다.
그리고, 엔터프라이즈는 만일 동작 근접성 값이 허용 가능한 위험성의 임계값보다 큰 경우(Rm > R)에는 위험성 스코어에 기초하여 연결을 허용하게 된다.
도 16은 본 발명의 다양한 실시예들에 따른 동작 연속성을 설정하기 위해 엔터프라이즈에게 해시 리프 노드들을 전송하는 엔드 포인트 디바이스에 대한 Merkle 트리의 예를 도시한다.
도 16을 참조하면, 이전의 해시 트리의 루트를 포함하는 데이터 블록의 해시는 특별하며, "루트 해시 블록(root hash block)" 또는 "RHB"로 지칭될 것이다.
RHB는 초기 디바이스 사용으로 연장되는 컨텍스트 연속성에 대한 즉각적인 증거를 제공한다. 히스토리 루트 해시가 잘못되어 있거나 계산 가능하지 않은 경우에는, 조사될 필요가 있는 컨텍스트 내의 불연속성이 존재한다. 하나의 가능성은 인증된 사용자가, 그 사용자의 이전의 컨텍스트에 대한 지식이 없는 새로운 디바이스로 로그인하는 것이다. 또 다른 가능성은, 사용자가 어떻게든 절취(spoofing)되는 것이며, 신뢰성을 확립하기 위한 추가적인 보안 챌린지 질문이 필요하게 될 수도 있다. 위험성 스코어를 계산할 경우에는, RHB에 대한 특수한 상태가 고려되어야만 한다. 도 11의 예에서는, 이 스코어가 다음과 같이 산출될 수 있다:
RC = 엔드 포인트 디바이스에 의해 송신된 값과 비교되는, 엔터프라이즈에 의해 산출된 RHB의 매칭 값인 것으로 한다. 이들이 매칭되는 경우에는, RC = 1이고; 그렇지 않은 경우에는 RC = 0이다.
앞서의 표기법을 사용하면 다음의 <수학식 2>와 같다.
그리고, 엔터프라이즈 서버는 만일 동작 근접성 값이 허용 가능한 위험성의 임계값보다 큰 경우(Rm > Rt)에는 위험성 스코어에 기초하여 연결을 허용하게 된다.
RHB는 X1, X2,...Xn 세트의 일부로서 카운트되지 않으며, 대신에, 그 스코어에 대한 불린 멀티플라이어(Boolean multiplier)가 된다.
엔터프라이즈 서버 및/또는 모바일 디바이스 사용자는 극도의 기밀로서 현재 및 과거 컨텍스트 정보를 볼 수가 있다. 예를 들어, 기밀 정부 시설에서 네트워크의 IP 주소는 매우 민감하다. 마찬가지로, 불변형 바이오메트릭, 디지털 인증서, 또는 보안 챌린지 응답의 해시 값은 기밀로 할 수 있다. 그러나, 이러한 데이터 항목들은 컨텍스트의 중요한 요소들일 수 있다. 도 17 내지 도 19에 관하여 아래에서 설명되는 바와 같이, CIMA에 있어서는, (주장된) 엔터프라이즈 서버에게 그것들을 직접 공개하지 않고 개념적 거리의 측정들로 이 기밀 요소들을 사용하는 방식이 존재한다.
도 17 내지 도 19는 본 발명의 다양한 실시예들에 따른 컨텍스트 프라이버시(context privacy)를 보존하기 위한 방식의 예를 도시한다.
도 17 내지 도 19를 참조하면, 세션 시작시에, 엔드 포인트 디바이스는 디바이스의 컨텍스트의 스냅샷을 취할 수 있으며, 그것을 데이터 블록들에 저장할 수 있다. 이러한 데이터 블록들은 매우 민감한 정보를 포함할 수 있다. 이어서, 디바이스는 데이터 블록들로부터 Merkler 트리를 구성할 수 있다. 도 17은 현재의 세션 해시 트리 A 및 데이터 블록들, 즉 이전의 루트, 위치, 네트워크 및 바이오메트릭을 나타낸 것이다. 이어서, 엔드 포인트 디바이스는 도 18에 나타낸 바와 같이, 데이터 블록들에서 모든 원시 데이터(raw data)를 생략하면서, 해시 트리 A를 구성할 필요가 있는 정보를 엔터프라이즈 CIMA 서버에게 전송할 수 있다. 엔드 포인트 디바이스(CIMA 클라이언트)는 A[2,0]에게 루트들 a[0,0]만을 전송할 수가 있다. 이 수신된 정보에 기초하여, 엔터프라이즈는 위험성(Rm)을 평가한다. Rm > Rt인 경우에는, 그 연결을 허용한다. 세션 트리 내의 리프 노드들 중 하나가 이전의 Merkle 루트의 해시였기 때문에, 엔터프라이즈는, 도 19에 도시된 바와 같은 신빙성의 증명으로서, 해당 루트를 생성했던 트리의 내부 노드들 b[1,0] 및 b[1,1]을 반환하게 된다.
도 20은 본 발명의 일 실시예에 따른 공유된 비밀을 사용하여 위험성-기반 연결 결정을 도시한 것이다.
도 20을 참조하면, 엔드 포인트 디바이스(10)는, 현재 및 과거의 컨텍스트에 기초하여 신빙성의 증거를 엔터프라이즈 서버(11)에게 제공하기 위하여, 라이트-웨이트 알고리즘(light-weight algorithm)을 사용한다. 엔터프라이즈 서버(11)는, 엔드 포인트의 현재의 컨텍스트가, 해당 플랫폼 및 개인에 대하여 이전에 알려진 컨텍스트들과 얼마나 잘 매칭되는지에 따라, 위험성 스코어를 산출할 수가 있다. 엔터프라이즈 서버(11)가 EPC 메시지를 복호화할 수 있다는 사실은, 엔드 포인트 디바이스가 마지막 세션에 로깅했던 디바이스와 동일한 것이라는 것을 증명한다.
엔드 포인트 디바이스(10)는 현재의 세션에 대한 것 및 이전의 세션에 대한 것인 적어도 두 개의 Merkle 컨텍스트 트리를 보유할 수 있다. 엔터프라이즈 서버(11)는 트리들에 대한 전체 데이터베이스를 보유할 수 있다. 산출된 루트 해시는 디바이스와 사용자 모두를 식별하게 되며, 내장 스푸핑(spoofing) 세이프가드들을 갖는, 아이덴티티의 제로-지식 증명이다. 루트 해시는 디바이스 및 사용자 아이덴티티를 신속하게 찾아내기 위한 검색 키이고, 리프 노드 해시들은 이전의 컨텍스트에 대한 빠른 검색을 가능하게 하며, 이것은 컨텍스트-기반 위험성 스코어들의 계산을 가능하게 한다.
다시 도 13을 참조하면, EPC 프로세서(35)는 엔드 포인트 디바이스로부터 수신되는 EPC 메시지를 복호화할 수 있다. EPS 프로세서(36)는 CIMA 클라이언트에게 EPS 메시지를 송신하기 이전에 EPS 메시지에 헤더를 추가할 수 있다.
도 21은 본 발명의 일 실시예에 따른 CIMA 컨텍스트 레저(context ledger)를 도시한 것이다.
도 21을 참조하면, 컨텍스트 레저는 튜플들(40), 튜플 규칙들(41), 튜플 관계들(42), 스키마들(43), 및 데이터 요소들(44)을 포함할 수 있다. 컨텍스트 레저는 트랜잭션(transaction) 시스템에 참여하는 모든 노드들에 의해 공유되는 트랜잭션 데이터베이스이다. 컨텍스트 레저는 해시 튜플들(해싱된 트리 노드들)을 저장하고, 예를 들어 Merkler 트리들을 구성하는 것과 같은 튜플 구성 규칙들을 포함하는 튜플 스키마들을 저장하고, 튜플들 간의 관계를 저장하고, 데이터 구조 및 신택스를 포함하는 스키마들을 저장하며, 또한 데이터 요소들을 저장한다.
도 22는 본 발명의 다양한 실시예들에 따른 CIMA 메시지 포맷들의 예를 도시한다.
도 22를 참조하면, 메시지 포맷(13)은 EPC 메시지(50)(도 10), EPS 메시지(51)(도 14), 경고 및 관리 메시지들과 같은 기타 메시지들(52), 스키마들(53) 및 데이터 요소들(54)을 포함할 수 있다. 기타 메시지들(52)은 경고 및 관리 메시지들을 포함할 수 있다. 경고 및 관리 메시지들은, 컨텍스트가 변경된 CIMA 서버(엔터프라이즈 서버)(11)를 통지하는 컨텍스트 변경 통지, 컨텍스트가 더 이상 보고되지 않게 되는 CIMA 서버(11)를 통지하는 컨텍스트 종료 통지, EPC에 대한 포맷이 변경되는 서버를 통지하는 컨텍스트 포맷 변경, CIMA 클라이언트 또는 CIMA 서버가 마지막 메시지의 재송신을 요청하는 컨텍스트 재송신 요청, CIMA 서버가 특정 컨텍스트 요소의 상태를 요청하는 컨텍스트 요소 요청, CIMA 클라이언트 또는 CIMA 서버가 마지막 세션으로부터의 해시의 송신을 요청하는 공유된 비밀 요청, CIMA 클라이언트 또는 CIMA 서버가 상이한 공유된 비밀을 사용하여 EPC 또는 EPS의 재송신을 요청하는 증거 패키지 챌린지, CIMA 클라이언트가 CIMA 서버에게 플랫폼의 변경이 있음을 통지하는 컨텍스트 플랫폼 변경 메시지 등을 포함할 수 있다. 스키마들(53)은 데이터 구조 및 신택스를 포함할 수 있다.
도 23은 본 발명의 다양한 실시예들에 따른 제어 패널 기능들의 예를 도시한다.
도 23을 참조하면, 제어 패널(14)은 컨텍스트 가중 함수(60), 근접성 임계값 함수(61) 및 기타 조정 함수(62)를 포함할 수 있다. 제어 패널(14)의 컨텍스트 가중 함수는 네트워크 오퍼레이터(operator)가 각각의 데이터 블록에 대하여 상이한 가중치들을 할당하는 것을 허용한다. 예를 들어, 바이오메트릭 데이터 블록은 날짜-시간 데이터 블록보다 더 중요한 것으로 간주될 수 있다. 제어 패널(14)의 근접성 임계값 함수는 네트워크 오퍼레이터가, 허용 가능한 위험성의 임계값(이 값을 초과하는 경우에는, 엔터프라이즈가 연결을 허용함)을 설정하는 것을 허용한다. 예를 들어, 현재의 컨텍스트가 이전에 알려진 컨텍스에 얼마나 "근접"해 있는지가 결정될 수 있다. 기타 조정 함수(62)는 컨텍스트 처리 기능들을 삭제, 추가, 또는 수정할 수 있다.
도 24는 본 발명의 다양한 실시예들에 따른 클라이언트 세션 셋업을 위한 흐름도의 예를 도시한다.
도 24를 참조하면, 모바일 디바이스(100)(CIMA 클라이언트)가 엔터프라이즈 서버(200)(CIMA 서버)에게 연결 요청을 개시할 경우, 동작 70에서, 모바일 디바이스는 컨텍스트 센서들을 이용(샘플링)하여, 센서 데이터를 획득할 수 있다. 동작들 71 및 72에서, 모바일 디바이스는 도 5에서 설명된 방식으로 센서 데이터를 해싱하여 Merkle 컨텍스트 트리를 구성함으로써, UCR을 생성할 수 있다. 동작 73에서, 모바일 디바이스(100)는 아카이브(22)에 Merkle 컨텍스트 트리를 저장할 수 있다. 동작 74에서, 모바일 디바이스(100)는 도 12에서 설명된 프로세스를 사용하여, EPC 메시지를 구성할 수 있다. 동작 75에서, EPC 메시지는 도 12에서와 같이 이전의 Merkle 컨텍스트 트리를 사용하여 암호화될 수 있다. 동작 76에서, 모바일 디바이스(100)는 동작 77에서 엔터프라이즈 서버(200)에게 EPC 메시지를 전송하기 이전에, EPC 메시지에 헤더를 추가할 수 있다.
도 25는 본 발명의 다양한 실시예들에 따른 서버 인증 및 셋업을 위한 흐름도의 예를 도시한다.
도 25를 참조하면, 엔터프라이즈 서버(200)는 동작 80에서 모바일 디바이스(100)로부터 EPC 메시지를 수신할 수 있다. 동작들 81, 82 및 83에서, 엔터프라이즈 서버의 메시지 핸들러는 넌스 익명 모니커(moniker)(할당된 ID) 및 이전의 Merkle 트리에 기초하여 복호화 키를 구성하고, EPC 메시지를 복호화하며, 이전의 루트를 추가하여 현재 Merkle 트리를 구성한다. 동작 84에서, 엔터프라이즈 서버는 근접성 스코어를 계산할 수 있다. 동작 85 에서, 엔터프라이즈 서버는 근접성 스코어가 충분히 가까운지 여부를 결정할 수 있다. 예를 들어, 근접성 스코어가 허용 가능한 위험성에 관한 임계값보다도 큰 경우, 그 근접성 스코어는 충분히 가까운 것일 수 있다. 근접성 스코어가 충분히 가깝지 않은 것으로 결정되는 경우, 엔터프라이즈 서버는 모바일 디바이스에의 연결을 거부하게 된다. 연결이 충분히 가까운 것으로 결정되는 경우, 엔터프라이즈 서버는 동작 86에서 내부 Merkle 트리 노드("씨드(seed)")를 사용하여 새로운 일회용 키를 구성할 수 있으며, 동작 87에서 대칭 세션 키를 생성한다. 동작 88에서, 엔터프라이즈 서버는 도 14b에서 설명한 바와 같이 EPS 메시지를 구성한다.
동작 89에서, 엔터프라이즈 서버는 EPS 메시지의 페이로드에 대칭 세션 키를 추가(임베드)할 수 있다. 일 실시예에서, 일회용 대칭 세션 키는 단순히 그 세션과 연관된 해시 리프 노드들의 결합일 수 있다.
동작 90에서, 엔터프라이즈 서버는 일회용 키를 사용하여 EPS 메시지를 암호화할 수 있다. 동작 91에서, 엔터프라이즈 서버는 모바일 디바이스에게 그것의 신빙성의 증명으로서 EPS 메시지를 전송할 수 있다.
도 26은 본 발명의 다양한 실시예들에 따른 CIMA 클라이언트에 대한 세션 개시를 위한 흐름도의 예를 도시한다.
도 26을 참조하면, 동작 90에서, 모바일 디바이스(100)(CIMA 클라이언트)는 엔터프라이즈 서버(200)(CIMA 서버)로부터 EPS 메시지를 수신할 수 있다. 동작 91에서, 모바일 디바이스는 키에 대한 씨드로서 내부 노드를 사용하여, EPS를 복호화할 수 있다. 엔터프라이즈 서버가 동작 92에서 내부 노드에 기초하여 EPS 메시지 페이로드를 복호화할 수 있는 경우, 모바일 디바이스는 엔터프라이즈 서버의 신빙성에 대한 증명을 갖는다. 모바일 디바이스는 동작 93에서 EPS 메시지를 파싱하고, 동작 94에서 대칭 세션 키를 획득하고, 동작 95에서 세션을 시작한다. 엔터프라이즈 서버가 동작 92에서 내부 노드에 기초하여 EPS 메시지 페이로드를 복호화할 수 없는 경우에는, 엔터프라이즈 서버와의 세션 개시가 종료된다.
도 27은 본 발명의 다양한 실시예들에 따른 모바일 디바이스의 관점에서의 모바일 디바이스와 엔터프라이즈 서버 간의 양방향 인증 프로세스에 대한 흐름도의 예를 도시한다.
도 27을 참조하면, 흐름도는 현재 및 과거의 사용자 컨텍스트 측정들에 기초하는 사용자-엔터프라이즈 및 엔터프라이즈-사용자의 양방향 위험성 평가에 대한 모바일 관점을 도시한 것이다. 엔터프라이즈 서버(200)는 위험성 스코어에 기초하여 모바일 디바이스(100)를 검증하고, 모바일 디바이스(100)는 이전의 연결에 관한 일회용 정보 수신에 기초하여 엔터프라이즈 서버(200)의 신빙성을 검증한다.
동작 401에서, 모바일 디바이스(100)는 엔터프라이즈 서버(200)와의 연결을 개시한다. 모바일 디바이스(100)가 엔터프라이즈 서버(200)에 대한 연결 요청을 개시하면, 모바일 디바이스는 동작 402에서 컨텍스트 센서들을 샘플링하고, 동작 403에서 UCR을 생성한다. 컨텍스트 기록은 바이오메트릭 측정, 위치 팩터, 네트워크 팩터, 소프트웨어 상태, 모션 또는 시간 또는 이들의 임의의 조합(들)을 포함할 수 있다.
모바일 디바이스(100)는 동작들 404 및 405 각각에서 UCR의 해시를 생성 및 암호화한다. 동작 406에서, 모바일 디바이스는 컨텍스트 레저에 UCR 및 해시를 저장한다.
동작 407에서, 모바일 디바이스(100)는 UCR에서 컨텍스트 데이터를 패키징하고, 신빙성의 증거로서, 엔터프라이즈 서버에게 컨텍스트 데이터를 전송한다.
동작 408에서, 모바일 디바이스(100)는 엔터프라이즈 네트워크의 신빙성을 확인하기 위해 일회용 사전에 공유된 비밀(이전의 UCR에 대한 일회용 해시)로서 엔터프라이즈 서버로부터 이전의 UCR에 대한 해시를 수신한다.
동작 409에서, 모바일 디바이스(100)는 엔터프라이즈 서버(200)로부터 수신된 이전의 UCR에 대한 일회용 해시를 비교하고, 이전 해시들과 비교한다. 유효한 것으로 검증되는 경우, 동작 410에서 모바일 디바이스(100)는 동작 411에서 엔터프라이즈 서버(200)에 연결된다.
다양한 실시예들에 따르면, 컨텍스트 무결성 측정 아키텍처(CIMA)는 컨텍스트를 공유된 비밀로서 사용하는, 양방향 인증을 위한 해밍(Hamming) 매트릭스 접근방식을 사용할 수 있다.
해밍 매트릭스 접근방식에 있어서, 엔드 포인트 모바일 디바이스(예를 들어, 모바일 폰)는 센서 데이터를 기록하고, 그 데이터를 해시들(예를 들어, H1, H2, H3, and H4 등)로 변환한다. 그 후에, 모바일 디바이스(100)는 해시들 각각 사이의 해밍 거리를 살출 및 저장할 수 있다.
해밍 거리는 해당 알파벳의 메트릭으로 측정되는, 두 개의 스트링(단어)이 다른 문자의 수이다. 예를 들어, X가 스트링 '000'이고 Y가 스트링 '111'인 경우에는, 이 두 개의 스트링들에 대한 각각의 문자가 다르기 때문에, 해밍 거리가 '3'이 된다. G가 스트링 '101'이고 H가 스트링 '110'인 경우에는, 이 스트링들의 두번째 및 세번째 문자가 다르기 때문에, 해밍 거리는 '2'가 된다.
모바일 디바이스는 이전의 세션에서 측정된 해밍 거리들에 기초하여 키를 구성할 수 있다. 모바일 디바이스(100)는 이 키를 사용하여 엔터프라이즈 서버(200)에게 그 해시들을 송신할 수 있다. 모바일 디바이스(100) 및 엔터프라이즈 서버(200)가 이전에 연결된 경우에는, RF 트랜시버(201)가 마지막 세션의 지식을 사용하여 컨텍스트 해시들을 복호화할 수 있다. 모바일 디바이스(100) 및 엔터프라이즈 서버(200)가 이전에 연결되지 않은 경우, 그들은 연결 시간 및/또는 사전-공유된 키의 적용과 같은 공유된 방법을 사용할 수가 있다. 해밍 매트릭스 접근방식을 이용한 CIMA 옵션의 일 예가 도 28 내지 도 36에서 설명된다.
도 28 내지 도 36은 UCR을 구성하는 방법; 분석 및 벡터 변환을 통해 UCR들을 비교하는 방법; 변환을 사용하여 근접-기반 위험성 스코어를 생성하는 방법; 및 평가된 위험성에 기초하여 모바일 사용자와의 연결을 설정할지의 여부를 결정하는 방법에 대한 예들을 제공한다. 논리적 다중-팩터 거리에 기초한 위험성 스코어 계산의 예가 후술될 것이다. 개념적 거리에 기초하여 위험성 스코어를 산출하는 다수의 가능한 방식들이 존재하며, 이 예가 본 발명의 범위를 제한하는 것으로 의도되지 않음을 이해할 것이다.
전술한 바와 같이, 모바일 디바이스는 레저 매니저의 센서 데이터에 기초하여 UCR을 구축한다. UCR은 세션을 개시할 때의 사용자 환경에 관한 센서 정보를 포함하는 데이터 구조이다. UCR에 의해 캡처되는 변수들은 연속 변수이거나, 이산 변수이거나, 또는 분류 변수일 수 있다. 레저의 센서 데이터는 위치(x, y, z), 가시적 네트워크들(N1, N2, N3,...Nn), 바이오메트릭들(B1, B2, B3,...Bm), 시간(날짜, 요일, 시간), 소프트웨어 상태(예컨대, 개방형 앱), 및 모션(예컨대, 속도, 가속도)를 포함할 수 있다. 예를 들어, 아래의 <표 1>에 나타낸 바와 같이, UCR 데이터 구조가 다음과 같이 규정할 경우:
LAT | 위도 |
LON | 경도 |
ELV | 고도 |
N1 | 가시적 네트워크-1 |
B1 | 바이오메트릭-1 |
D | 요일 |
T | 시간 |
, UCR 데이터 구조는 다음과 같이 표현될 수 있다:
UCR: = {<Lat><Lon><Elv>}
{<N1><N2> . . . <Nn>}
{<B1><B2> . . . <Bm>}
{<D><T>}
이 UCR 데이터 구조에서, Lat, Lon, Elv는 GPS로부터의 연속 변수들을 나타낼 수 있고, N1, N2 … Nn은 가시적 네트워크의 IP 주소를 나타낼 수 있고, B1, B2 …Bm은 사용자의 바이오메트릭 템플릿에 대한 "매칭 정도"에 대응하는, 0.00 내지 1.00 사이 범위의 정규화된 바이오메트릭 판독을 나타낼 수 있고, D는 한자리 1-7로 나타나는 요일(예를 들면, "월요일")을 나타낼 수 있으며, T는 00:00 - 23:59 사이 범위의 시간(예를 들면, 16:25(시:분))을 나타낼 수 있다.
도 28은 본 발명의 다양한 실시예들에 따른 UCR 비교의 예를 도시한다.
도 28을 참조하면, UCR 1, UCR 2 및 UCR 3에 대한 UCR 데이터 구조는 위치, IP 주소, 바이오메트릭 측정들, 요일 및 시간을 각기 포함한다.
도 29a 내지 도 29b는 본 발명의 다양한 실시예들에 따른 지리적 거리에 기초한 UCR 분석의 예를 도시한다.
도 29a 내지 도 29b를 참조하면, 도 29a의 매트릭스는 UCR 1 내지 UCR 2 및 UCR 1 내지 UCR 3 사이에서 측정되는 지리적 거리들을 보여준다. 도 29a에 도시된 바와 같이, UCR-1과 그 자신 사이의 거리는 항상 0이다. UCR-1 내지 UCR-2 및 UCR-1 내지 UCR-3 사이의 거리들은 각기 14 미터와 75,317.3 미터이다. 다음으로, 엔터프라이즈 서버(200)는, 거리들이 근접성 임계값(예컨대, 이 경우에는 150 미터) 내에 있는지 여부를 결정하며; 이 근접성 임계값이 조정될 수 있다. 거리가 근접성 임계값 미만인 경우, UCR 값은 '0'('근접(near)')으로 변환되며; 그렇지 않은 경우에는, 도 29b에 도시된 바와 같이 '1'('원접(far)')로 변환된다. 변환되는 0, 0, 1의 UCR 값들은 UCR-1 및 UCR-2 사이의 거리가 허용 오차 범위 내에 있지만, UCR-1 및 UCR-3 사이의 거리는 그렇지 않다는 것을 보여준다.
도 30a 내지 도 30b는 본 발명의 다양한 실시예들에 따른 네트워크 거리에 기초한 UCR 분석의 예를 도시한다.
도 30a 내지 도 30b를 참조하면, 도 30a의 매트릭스는 UCR-1, UCR-2 및 UCR-3의 UCR들에 포함된 네트워크 주소들을 나타낸다. 도 30a 및 도 30b에 도시된 바와 같이, UCR-1의 IP 주소는 UCR-2 및 UCR-3의 IP 주소들과 비교된다. IP 주소들이 서로 매칭되는 경우, 해당 UCR의 매칭 값은 '0'('근접')으로 변환되며, 그렇지 않은 경우에는, UCR 값이 '1'('원거리')로 변환된다. UCR-1의 네트워크 주소들이 UCR-2의 네트워크 주소와 매칭되면, 그것은 해당 UCR의 매칭 값은 '0'으로 변환된다. 그러나, UCR-1의 네트워크 주소는 UCR-3의 네트워크 주소와 매칭되지 않기 때문에, 해당 UCR 값의 매칭 값은 '1'로 변환된다.
도 31a 내지 31b는 본 발명의 다양한 실시예들에 따른 바이오메트릭의 거리에 기초한 UCR 분석의 예를 도시한다.
도 31a 내지 도 31b를 참조하면, 도 31a의 매트릭스는 절대 표준값(예를 들면, 0.6)과 비교되는 3개의 매칭 값들(0.8, 0.4, 0.9)을 보여준다. 이 매칭 값들은 사용자의 바이오메트릭 템플릿에 대한 "매칭 정도"에 대응하는, 0.00 내지 1.00 사이 범위의 정규화된 바이오메트릭 판독을 나타낸다. 도 31b에 도시된 바와 같이, 측정된 바이오메트릭 값이 0.6 이하인 경우, 도 31a에서의 UCR 값은 '0'('근접')으로 변환되며; 그렇지 않은 경우에는, '1'('원거리')로 변환된다. 바이오메트릭의 경우에는, 예를 들어 엔터프라이즈 네트워크에 의해 설정되는, 절대 표준값에 대한 매칭이 행해지며, 상대적 UCR 값에 대한 매칭이 이루어지는 것이 아닐 수 있다.
도 32a 내지 도 32b는 본 발명의 다양한 실시예들에 따른 주중 요일 에 기초한 UCR 분석의 예를 도시한다.
도 32a 및 도 32b를 참조하면, 도 32a의 매트릭스는 3개의 날짜를 나타내는 값들을 보여준다(예를 들어, 2 = 월요일, 3 = 화요일, 5 = 목요일(1-7로 번호가 매겨지며, 일요일은 1임)). 날짜 1, 3, 및 5가 '허용 가능"으로 지정되고, 다른 날짜들은 그렇지 않은 경우, 도 32b에 도시된 바와 같이, 각 날짜를 나타내는 값이 허용 가능한 날짜에 포함되는 경우에는 그 날짜 번호가 '0'('근접')으로 변환되며, 그렇지 않은 경우에는, '1'('원거리')로 변환된다. 즉, 예를 들어, 엔터프라이즈 서버에 의해 설정되는, 절대 표준값과 비교할 때, UCR-2 및 UCR-3 모두는 허용 가능하지만, UCR-1은 그렇지가 않다.
도 33a 내지 33b는 본 발명의 다양한 실시예들에 따른 주중 시간에 기초한 UCR 분석의 예를 도시한다.
도 33a 및 도 33b를 참조하면, 도 33a의 예는 군사 시간으로도 알려진 24-시간 표기 법에서 0 내지 23:59 사이 범위인 시간에 기초하는 3개의 시간 값들을 보여준다. 08:00에서 19:00 사이의 시간은 허용 가능하지만, 다른 시간들은 그렇지 않은 경우, 허용 가능인 경우에는 그 시간이 '0'('근접')으로 변환되며, 그렇지 않은 경우에는, '1'('원거리')로 변환된다. 즉, 모든 시간(절대 표준에 포함된 시간)이 허용 가능하다.
도 34a 내지 도 34b는 본 발명의 다양한 실시예들에 따른 해밍 거리(Hamming distance) 분석의 예를 도시한다.
도 34a 및 도 34b를 참조하면, 도 34a의 매트릭스는 도 29b, 30b, 31b, 32b 및 33b의 예로부터 변환된 UCR 값들을 나타낸다. 도 34b는 UCR 1 내지 UCR 2 및 UCR 1 내지 UCR 3 사이의 해밍 거리의 예를 나타낸다. 여기서, 해밍 거리는 2개의 이진 스트링들 사이의 차이를 나타내는 값이다. 도 34b에 도시된 바와 같이, 해밍 거리 'h'는 "비트들" 또는 범주 요소들의 수이며, 서로 다른 비트들 또는 서로 다른 값일 수 있다. 각각의 '비트' 값은 다음에 의해 결정된다: '매칭(Match)' = 0, (근접) '비-매칭(Non-Match)' = 1 (원거리). 두 개의 이진 스트링 간의 원시 해밍 거리는 '매칭' 비트들의 합이다. 상술한 방식에 따라, UCR-1은 UCR-3(h = 3)보다 UCR-2(h = 2)에 더 가깝게 된다. 따라서, UCR-2가 참조 스트링이 된다.
도 35는 본 발명의 다양한 실시예들에 따른 가장 가까운 UCR 매치(match)에 대한 가중 처리된 스코어 분석의 예를 도시한다.
도 35를 참조하면, 참조 스트링 UCR-2(위치, 바이오메트릭, 날짜, 시간)에서 각각의 변환되는 UCR 값들에 대해 적용되는 가중치의 예들이 도시되어 있다. 예를 들면, UCR 값 0의 위치 팩터에 0.5의 가중치가 적용되고, UCR 값 0의 네트워크 팩터에 0.1의 가중치가 적용되고, UCR 값 1의 바이오메트릭 팩터에 0.2의 가중치가 적용되고, UCR 값 1의 날짜 팩터에 0.1의 가중치가 적용되며, 또한 UCR 값 0의 시간 팩터에 0.1의 가중치가 적용된다. 도 35의 예시적인 가중치들은 엔터프라이즈 서버에 의해 설정될 수 있다. 가중처리된 위험성 스코어는, 가장 가까운 것으로 결정된 UCR에 대하여, 각 팩터 마다 변환된 UCR 값에 곱해짐으로써 전체 가중처리된 위험성 스코어가 산출된다(이 경우에, UCR-1은 UCR-3(h = 3)에 대하여보다 UCR-2(h = 2)에 대하여 더 가까움). 예를 들어, 이에 대한 전체 가중처리된 위험성 스코어가 도 35에서는 0.3이다.
본 발명의 다양한 실시예에 따르면, 현재의 UCR로부터 이전의 유효한 연결과 가장 가까운 UCR까지의 거리-기반 위험성 스코어가 Sm으로 설정되고, 최대 임계값 거리-기반 스코어(이것을 넘으면 연결이 허용되지 않음)가 St으로 설정되는 경우, 이 결정 규칙은 Sm < St인 경우에 연결을 허용하게 된다. 그렇지 않은 경우에는, 연결이 거부될 수 있다.
모바일 디바이스의 엔터프라이즈 서버 연결에 대한 위험성 평가는 모바일 디바이스가 수신하는 해시 값에 의존하며, 이것은 결국 서버에 대한 이전의 유효한 연결에 의존한다. 초기 셋업 동안에는, 즉, 모바일 디바이스가 최초로 연결될 때에는, 어떠한 이전의 UCR도 존재하지 않는다. 따라서, 초기 연결은 초기 셋업 이전에 서버 및 플랫폼 모두에 의해 알려진 사전-공유된 키를 사용할 수가 있다.
도 36은 본 발명의 다양한 실시예들에 따른 엔터프라이즈 서버 관점에서의 모바일 디바이스와 엔터프라이즈 서버 간의 양방향 인증 프로세스에 대한 흐름도의 예를 도시한다.
도 36의 흐름도는 현재 및 과거의 사용자 컨텍스트 측정들에 기초하여 사용자-엔터프라이즈 및 엔터프라이즈-사용자의 양방향 위험성 평가에 대한 엔터프라이즈 서버의 관점에 따른 동작을 도시한다. 엔터프라이즈 서버는 위험성 스코어에 기초하여 사용자를 검증하며, 사용자는 이전의 연결에 관한 일회용 수신 정보에 기초하여 엔터프라이즈 서버의 신빙성을 검증한다. 보다 구체적으로, 도 2의 엔터프라이즈 서버(200)는 UCR을 수신하고, 현재와 과거의 UCR들 간의 논리적 "거리"에 기초하여, 사용자에 대한 위험성 스코어를 계산한다. 위험성 스코어가 허용 가능한 것인 경우, 엔터프라이즈 서버(200)는, 엔터프라이즈 서버의 신빙성의 증거로서, 이전의 UCR에 대한 해시를 모바일 디바이스에게 송신한다. 이 고유 해시는 단지 한번만 사용될 수 있다.
동작 601에서, 엔터프라이즈 서버(200)는 모바일 디바이스의 모바일 플랫폼으로부터 사용자 컨텍스트 기록을 수신한다. 동작 602에서, 엔터프라이즈 서버(200)는 현재의 UCR과 가장 근접한 과거의 UCR 간의 논리적 "거리"를 분석한다. 동작 603에서, 엔터프라이즈 서버(200)는 그 거리가 허용 오차 범위 내에 있는지 여부를 결정한다. 그 거리가 허용 오차 범위 내에 있지 않은 경우, 엔터프라이즈 서버(200)는 동작 609에서 이 연결을 거부한다. 그 거리가 허용 오차 범위 내에 있는 경우, 엔터프라이즈 서버(200)는 동작 604에서 이 연결을 허용한다.
동작들 605 및 606에서, 엔터프라이즈 서버(200)는 UCR에 대한 해시를 생성, 암호화 및 저장한다(여기서 이 데이터는 Log n 번 검색될 수 있음). 동작들 607 및 608에서, 엔터프라이즈 서버(200)는 이전의 UCR에 대한 해시를 추출하고, 그 해시를 모바일 디바이스(100)의 모바일 플랫폼에게, 신빙성의 증거로서 제공한다.
상기 예들은 모바일 디바이스(100)의 모바일 플랫폼에서 수행될 수 있는 알고리즘 접근방식을 사용하고 있다. 그러나, 이 알고리즘은 UCR의 '레저(ledger)'를 엔터프라이즈 레벨에서 생성하기 때문에, 이 레저가 NumentaTM과 같은 학습 엔진에 의해 마이닝됨으로써, 위험성 스코어 계산 시의 가중치들을 조정할 수가 있다. 따라서, 본 예시적 알고리즘은 충분한 한계치가 존재할 경우, 장래의 머신 학습 개선을 지원할 수 있다.
정보 보안을 개선하기 위한 장치 및 방법이 제공된다.
군중이 모이는 공항, 스포츠 경기장, 쇼핑몰 및 고정된 위치는, 모바일 디바이스들에 대한 중간자 공격 기술들을 사용하는 사이버 공격자들에게 이상적이고 타겟이 풍부한 환경이 될 수 있다. 민감한 데이터 네트워크들을 가진 민간 보안 구역들도 또한 사이버 스파이 활동을 위한 잠재적인 타겟 영역들일 수 있다. 셀룰러 및 Wi-Fi 네트워크들 모두는 모바일 디바이스에 대하여 신빙성 있는 것으로 나타나게 되는 가짜(false) 기지국들에 의해 공격당할 수 있다. 가짜 기지국들은 저렴하고, 휴대성 있는 소프트웨어로 정의된 라디오들(예를 들어, Gnu)이거나 또는 타겟들에 대한 근접성 및 생성 신호 강도에 기초하여 연결을 유인하는 인텔리전스-그레이드 도청 기능들을 수행하는 장치일 수 있다.
본 발명의 방법 및 장치는, 로컬 환경으로부터의 데이터를 수집하고 그 로컬 신호 환경을 분석한 다음에, 기지국들의 위치-특정 화이트 리스트들 및 블랙 리스트들을 설정하고 사용함으로써, "악성(rogue)" 기지국들로부터 이러한 위협을 완화한다. 중간자 공격들에 대항하여 보호하기 위하여, 높은 트래픽 영역들 내의 셀룰러 기지국들 및 무선 액세스 포인트들에 관한 디바이스들에게는 자동적인 화이트 리스트를 제공한다.
본 발명의 방법 및 장치는 셀룰러, Wi-Fi 및 그 밖의 통신들 채널들에 관한 기지국들의 위치-특정 화이트 리스트들 및 블랙 리스트들을 사용하여, 모바일 디바이스들이 악성 기지국들에 연결되는 것을 방지한다. 본 발명의 방법 및 장치는 로컬 신호 환경을 분석함으로써 이러한 리스트들을 관리한다.
본 발명의 방법 및 장치는 일 영역 내에서의 신호 환경을 샘플링하여 무선 에미터들을 결정하며, 그 후에 샘플들을 분석함으로써 "진정" 대 "악성" 기지국들을 추론해 낸다. 본 발명의 방법 및 장치는 이러한 분석을 사용하여, 특정 영역에 대한 화이트 리스트들("진정한" 에미터들) 및 블랙 리스트들("악성" 에미터들)을 구성한다.
이 영역들은 확률에 기초하여 결정될 수 있다. "영역"은 지역별로(특정 수집 포인트들 또는 수집 포인트들의 장소들) 또는 가시적 무선 네트워크들에 의해 대략적으로 규정될 수 있다. 본 발명의 방법 및 장치는 영역을 통한 사용자(들) 및 모바일 플랫폼(들)의 움직임을 이용하여, 무선 에미터들의 상대적인 위치 및 신호 강도를 평가한다. 본 발명의 방법 및 장치는, 중복된 ID들을 가지면서 또한 위치 및 강도의 분석을 통해 더 낮은 전력을 갖는 것으로 판단되는 기지국들에게, "높은 위험성(high risk)"을 할당한다. 또한, 본 발명의 방법 및 장치는, 움직이고 있는 것으로 보이는 기지국들에게 "높은 위험성"을 할당한다. 또한, 본 발명의 방법 및 장치는 거리와 독립적으로 변동이 심한 전력 레벨들을 갖는 기지국들에게 "높은 위험성"을 할당한다. 또한, 본 발명의 방법 및 장치는 위험한 연결들을 방지하고/하거나 그 위험성을 사용자에게 통지한다. 또한, 본 발명의 방법 및 장치는 단일의 플랫폼 수집 및/또는 분석뿐만 아니라 신호 샘플링 및/또는 분석의 크라우드 소싱(crowd sourcing)을 사용할 수 있다. 또한, 본 발명의 방법 및 장치는 캐리어 기지국 화이트 리스트들, 정부-공급한 화이트 리스트들, 또는 엔터프라이즈-개발한 화이트 리스트들과 같은 제 3 자 정보를 사용하여, 자체적으로 화이트 리스트/블랙 리스트 생성을 증가시킬 수 있다.
본 발명 시스템의 방법 및 장치는, 휴대폰, 태블릿 컴퓨터, 랩톱 컴퓨터, 웨어러블 컴퓨터, 또는 자율형 로봇 컴퓨터와 같은 모바일 플랫폼이, 평가된 위험성 레벨에 기초하여, 신호 소스(650)에 연결될 수 있는지의 여부를 결정하는 하드웨어 및 소프트웨어를 포함한다.
도 37은 본 발명의 다양한 실시예들에 따른 방법 및 장치의 아키텍처 및 흐름도의 예를 도시한 것이다.
도 37을 참조하면, 방법 및 장치는 신호 컬렉터(900), 신호 분석기(901), 화이트 리스트 생성기(902), 블랙 리스트 생성기(903), 및 연결 로직(904)을 포함한다. 이러한 아키텍처 요소들이 아래에서 설명되며, 또한 도 37에 도시되어 있다.
신호 컬렉터(900)는 특정 영역 내의 무선 신호 환경에 대한 정보를 샘플링한다. 수집된 데이터는 신호 컬렉터들의 지리적 좌표들, 셀룰러 기지국 및 Wi-Fi 액세스 포인트들을 포함하고 이에 한정되지 않는 위치에서 볼 수 있는 신호 에미터(905)들, 각 에미터(905)의 측정 신호 강도 및 다른 측정 가능한, 신호-고유의 현상을 포함한다.
신호 분석기(901)는 에미터(905) 위치, 에미터(905) 전력 및 고유의 에미터 현상(예를 들어, 신호 "지문(finger print)")을 추정하기 위해, 하나 이상의 신호 컬렉터들로부터 정보를 분석한다.
화이트 리스트 생성기(902)는 고정된 위치들, 가장 강한 전력 레벨들, 중복없음 및 안정된 전력 레벨들에 기초하여, 연결을 위한 낮은 위험성으로 고려되는 에미터들의 "화이트 리스트(white list)"를 생성한다.
블랙 리스트 생성기(903)는 위험한 연결들로 간주되는 에미터들의 "블랙 리스트"를 생성한다. 이것은 다음 기준을 충족하는 에미터들의 리스트이다: 이동 에미터, 또는 중복되고 가장 약한 신호, 또는 불안정한 전력 레벨들, 또는 "화이트 리스트"를 만들지 않는 임의의 에미터.
연결 로직(904)은, 그 연결이 화이트 리스트에 대한 것인지 블랙 리스트에 대한 것인지 여부에 기초하여, 연결을 허용할지 차단할지 여부를 결정한다. 연결 로직 블록들은 블랙 리스트 상의 에미터들에 대한 연결을 시도한다.
신호 컬렉터(900)는 신호 분석기(901)에게 그 신호 환경에 대한 데이터를 공급한다. 분석 결과들이 화이트 리스트 생성기(902) 및 블랙 리스트 생성기(903)에 의해 사용됨으로써, 낮은 위험성 및 높은 위험성 에미터들에 대한 그들 각각의 리스트들을 생성하게 되며, 또한 사용자 및/또는 엔터프라이즈에 대하여 잠재적으로 경고하게 된다. 연결 로직(904)은, 화이트 리스트 또는 블랙 리스트 내의 에미터(904)의 구성원에 기초하여, 연결을 허용하거나 차단하는 것으로 결정한다.
일 실시예(론 플랫폼(Lone platform))에 따르면, 이 신호 환경의 분석은 샘플들의 장소에 기초하여, 개별 이동 플랫폼 상에서 행해질 수 있다. 사용자는 위험성이 있는 연결들을 인식하게 되지만, 차단되는 연결을 무시할 수 있다.
일 실시예(피어-투-피어(Peer-to-Peer))에 따르면, 분석은 피어-투-피어 데이터 공유를 통해 공통 동작 화상을 생성하는 다수의 이동 플랫폼들에 의해 행해질 수도 있다.
일 실시예(크라우드 소싱(Crowd souring))에 따르면, 이 신호 환경의 분석은 다수의 이동 플랫폼들에 의해 행해진다. 본 발명의 방법 및 장치가 인에이블되는 디바이스들은, 그들의 위치에 맞춤화된, 디바이스들에게 기지국들의 화이트 리스트들 및 블랙 리스트들을 송신하는 클라우드-기반 분석 서비스에 샘플링된 신호 데이터를 릴레이(relay)한다.
일 실시예(고정된 센서들)에 따르면, 별도의 고정된 센서 박스들 및/또는 PC들이 영역 전체에 배포됨으로써, 잠재적인 악성 기지국들을 수집, 분석 및 보고하게 된다.
일 실시예(제 3 자)에 따르면, 이 제 3 자는 파트너들로부터의 화이트 리스트/블랙 리스트 소싱을 사용한다.
일 실시예(하이브리드 모델(Hybrid model))에 따르면, 본 발명의 방법 및 장치가 인에이블되는 디바이스들은, 연결들 및 정보의 이용 가능성에 따라 상기 실시예들 중 하나 이상의 방법들을 사용할 수 있다.
본 개시의 청구항 또는 명세서에 기재된 실시 예들에 따른 방법들은 하드웨어, 소프트웨어, 또는 하드웨어와 소프트웨어의 조합의 형태로 구현될(implemented) 수 있다.
소프트웨어로 구현하는 경우, 하나 이상의 프로그램(소프트웨어 모듈)을 저장하는 컴퓨터 판독 가능 저장 매체가 제공될 수 있다. 컴퓨터 판독 가능 저장 매체에 저장되는 하나 이상의 프로그램은, 전자 장치(device) 내의 하나 이상의 프로세서에 의해 실행 가능하도록 구성된다(configured for execution). 하나 이상의 프로그램은, 전자 장치로 하여금 본 개시의 청구항 또는 명세서에 기재된 실시 예들에 따른 방법들을 실행하게 하는 명령어(instructions)를 포함한다.
이러한 프로그램(소프트웨어 모듈, 소프트웨어)은 랜덤 액세스 메모리(random access memory), 플래시(flash) 메모리를 포함하는 불휘발성(non-volatile) 메모리, 롬(ROM: Read Only Memory), 전기적 삭제가능 프로그램가능 롬(EEPROM: Electrically Erasable Programmable Read Only Memory), 자기 디스크 저장 장치(magnetic disc storage device), 컴팩트 디스크 롬(CD-ROM: Compact Disc-ROM), 디지털 다목적 디스크(DVDs: Digital Versatile Discs) 또는 다른 형태의 광학 저장 장치, 마그네틱 카세트(magnetic cassette)에 저장될 수 있다. 또는, 이들의 일부 또는 전부의 조합으로 구성된 메모리에 저장될 수 있다. 또한, 각각의 구성 메모리는 다수 개 포함될 수도 있다.
또한, 프로그램은 인터넷(Internet), 인트라넷(Intranet), LAN(Local Area Network), WLAN(Wide LAN), 또는 SAN(Storage Area Network)과 같은 통신 네트워크, 또는 이들의 조합으로 구성된 통신 네트워크를 통하여 접근(access)할 수 있는 부착 가능한(attachable) 저장 장치(storage device)에 저장될 수 있다. 이러한 저장 장치는 외부 포트를 통하여 본 개시의 실시 예를 수행하는 장치에 접속할 수 있다. 또한, 통신 네트워크상의 별도의 저장장치가 본 개시의 실시 예를 수행하는 장치에 접속할 수도 있다.
상술한 본 개시의 구체적인 실시 예들에서, 개시에 포함되는 구성 요소는 제시된 구체적인 실시 예에 따라 단수 또는 복수로 표현되었다. 그러나, 단수 또는 복수의 표현은 설명의 편의를 위해 제시한 상황에 적합하게 선택된 것으로서, 본 개시가 단수 또는 복수의 구성 요소에 제한되는 것은 아니며, 복수로 표현된 구성 요소라 하더라도 단수로 구성되거나, 단수로 표현된 구성 요소라 하더라도 복수로 구성될 수 있다.
한편 본 개시의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 개시의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 개시의 범위는 설명된 실시 예에 국한되어 정해져서는 아니 되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.
Claims (30)
- 네트워크에서 모바일 디바이스와 양방향 인증을 수행하기 위한 서버(server)에 있어서,
메모리; 및
상기 메모리와 결합된 적어도 하나의 프로세서를 포함하며,
상기 적어도 하나의 프로세서는,
상기 모바일 디바이스에 의해 생성된, 상기 모바일 디바이스와 관련된 메트릭(metric)을 포함하는, 사용자 컨텍스트 기록(user context record, UCR)을 수신하고, 상기 수신된 UCR에 기초하여 신빙성 스코어(authenticity score)를 계산하고,
상기 신빙성 스코어에 기초하여 상기 모바일 디바이스의 신빙성(authenticity) 검증 여부를 판단하고,
상기 모바일 디바이스의 신빙성이 검증되지 않으면, 상기 모바일 디바이스가 상기 네트워크에 연결되는 것을 거부하고,
상기 모바일 디바이스의 신빙성이 검증되면, 일회용 사전-공유된 비밀(one-time pre-shared secret)을 생성하고,
상기 모바일 디바이스가 상기 일회용 사전-공유된 비밀에 기초하여 상기 서버를 검증함으로써 상기 양방향 인증을 수행하도록 하기 위해, 상기 모바일 디바이스에게 상기 일회용 사전-공유된 비밀을 송신하도록 구성되며,
상기 신빙성 스코어는 상기 모바일 디바이스의 검증을 위해 상기 수신된 UCR 및 이전에 저장된 UCR에 기초하여 계산되고, 상기 이전에 저장된 UCR은 상기 서버가 상기 모바일 디바이스로부터 이전에 수신한 것이고, 이전 동작 컨텍스트(prior behavioral context)를 포함하며,
상기 일회용 사전-공유된 비밀은 상기 서버의 신빙성에 대한 증거로서 상기 이전에 저장된 UCR에 기초하여 생성되는 서버.
- 삭제
- 제 1 항에 있어서,
상기 신빙성 스코어는, 상기 수신된 UCR과 상기 이전에 저장된 UCR 간의 논리적 다중-팩터(multi-factor) 거리인 서버.
- 제 3 항에 있어서,
상기 적어도 하나의 프로세서는, 상기 신빙성 스코어가 미리 정해진 위험성 임계값을 충족할 경우, 상기 모바일 디바이스가 상기 네트워크에 연결되는 것을 허용하도록 더 구성되는 서버.
- 제 1 항에 있어서,
상기 일회용 사전-공유된 비밀은, 상기 이전에 저장된 UCR에 대한 해시 값(hash value)을 포함하고,
상기 해시 값은, 상기 서버의 신빙성을 검증하기 위하여 일시적으로 생성된 사전-공유된 비밀(pre-shared secret)을 나타내기 위한 값을 포함하는 서버.
- ◈청구항 6은(는) 설정등록료 납부시 포기되었습니다.◈제 1 항에 있어서,
상기 수신된 UCR은, 해싱된 데이터 블록들을 포함하는 서버.
- ◈청구항 7은(는) 설정등록료 납부시 포기되었습니다.◈제 6 항에 있어서,
상기 해싱된 데이터 블록들은, 상기 서버와의 초기 세션을 위한 일회용 랜덤 넌스 블록(random nonce block)을 포함하며,
상기 적어도 하나의 프로세서는, 상기 서버와의 임의의 후속 세션들을 위하여, 이전의 Merkle 컨텍스트 트리의 루트 해시(root hash) 또는 하나 이상의 내부 해시 블록들 중의 적어도 하나를, 상기 해싱된 블록들로 대체하도록 더 구성되는 서버.
- ◈청구항 8은(는) 설정등록료 납부시 포기되었습니다.◈제 6 항에 있어서,
상기 적어도 하나의 프로세서는, 상기 해싱된 데이터 블록들에 기초하여 Merkle 컨텍스트 트리를 구성하며, 상기 Merkle 컨텍스트 트리의 내부 해시 블록들 및 루트 해시를 포함하는 해시 블록들을 생성하도록 더 구성되는 서버.
- ◈청구항 9은(는) 설정등록료 납부시 포기되었습니다.◈제 8 항에 있어서,
상기 적어도 하나의 프로세서는, 상기 Merkle 컨텍스트 트리 및 이전의 Merkle 컨텍스트 트리 간의 매칭 정도에 기초하여, 상기 신빙성 스코어를 계산하며, 상기 신빙성 스코어가 상기 서버에 의해 설정된 허용 가능한 신빙성 스코어의 임계값보다 큰 경우에, 상기 모바일 디바이스에 대한 연결을 허용하도록 더 구성되는 서버.
- ◈청구항 10은(는) 설정등록료 납부시 포기되었습니다.◈제 8 항에 있어서,
상기 일회용 사전-공유된 비밀은, 이전의 Merkle 트리의 하나 이상의 해시 데이터 블록들을 포함하는 서버.
- 네트워크에서 모바일 디바이스와 양방향 인증을 수행하기 위한 서버의 동작 방법에 있어서,
상기 모바일 디바이스에 의해 생성된, 상기 모바일 디바이스와 관련된 메트릭(metric)을 포함하는, 사용자 컨텍스트 기록(UCR)을 수신하는 동작;
상기 수신된 UCR에 기초하여 신빙성 스코어를 계산하는 동작;
상기 신빙성 스코어에 기초하여 상기 모바일 디바이스의 신빙성(authenticity)를 검증 여부를 판단하는 동작;
상기 모바일 디바이스의 신빙성이 검증되지 않으면, 상기 모바일 디바이스가 상기 네트워크에 연결되는 것을 거부하는 동작;
상기 모바일 디바이스의 신빙성이 검증되면, 일회용 사전-공유된 비밀(one-time pre-shared secret)을 생성하는 동작; 및
상기 모바일 디바이스가 상기 일회용 사전-공유된 비밀에 기초하여 상기 서버를 검증함으로써 상기 양방향 인증을 수행하도록 하기 위해, 상기 모바일 디바이스에게 상기 일회용 사전-공유된 비밀을 송신하는 동작을 포함하며,
상기 신빙성 스코어는 상기 모바일 디바이스의 검증을 위해 상기 수신된 UCR 및 이전에 저장된 UCR에 기초하여 계산되고, 상기 이전에 저장된 UCR은 상기 서버가 상기 모바일 디바이스로부터 이전에 수신한 것이고, 이전 동작 컨텍스트(prior behavioral context)를 포함하며,
상기 일회용 사전-공유된 비밀은 상기 서버의 신빙성에 대한 증거로서 상기 이전에 저장된 UCR에 기초하여 생성되는 방법.
- 삭제
- ◈청구항 13은(는) 설정등록료 납부시 포기되었습니다.◈제 11 항에 있어서,
상기 신빙성 스코어는, 상기 수신된 UCR과 상기 이전에 저장된 UCR 간의 논리적 다중-팩터(multi-facter) 거리인 방법.
- ◈청구항 14은(는) 설정등록료 납부시 포기되었습니다.◈제 11 항에 있어서,
상기 신빙성 스코어가 미리 정해진 위험성 임계값을 충족할 경우, 상기 모바일 디바이스가 상기 네트워크에 연결되는 것을 허용하는 동작을 더 포함하는 방법.
- ◈청구항 15은(는) 설정등록료 납부시 포기되었습니다.◈제 11 항에 있어서,
상기 일회용 사전-공유된 비밀은, 상기 이전에 저장된 UCR에 대한 해시 값(hash value)을 포함하고,
상기 해시 값은, 상기 서버의 신빙성을 검증하기 위하여 일시적으로 생성된 사전-공유된 비밀을 나타내기 위한 값을 포함하는 방법.
- ◈청구항 16은(는) 설정등록료 납부시 포기되었습니다.◈제 11 항에 있어서,
상기 수신된 UCR은, 해싱된 데이터 블록들을 포함하는 방법.
- ◈청구항 17은(는) 설정등록료 납부시 포기되었습니다.◈제 16 항에 있어서,
상기 해싱된 데이터 블록들은, 상기 서버와의 초기 세션을 위하여, 일회용 랜덤 넌스 블록(random nonce block)을 포함하며,
상기 해싱된 데이터 블록들은, 상기 서버와의 후속 세션을 위하여, Merkle 컨텍스트 트리의 루트 해시 또는 하나 이상의 내부 해시 블록들 중의 적어도 하나를 포함하는 방법.
- ◈청구항 18은(는) 설정등록료 납부시 포기되었습니다.◈제 16 항에 있어서,
상기 해싱된 데이터 블록들에 기초하여 Merkle 컨텍스트 트리를 구성하는 동작; 및
상기 Merkle 컨텍스트 트리의 내부 해시 블록들 및 루트 해시를 포함하는 해시 블록들을 생성하는 동작을 더 포함하는 방법.
- ◈청구항 19은(는) 설정등록료 납부시 포기되었습니다.◈제 18 항에 있어서,
상기 Merkle 컨텍스트 트리 및 이전의 Merkle 컨텍스트 트리 간의 매칭 정도에 기초하여, 상기 신빙성 스코어를 계산하는 동작; 및
상기 신빙성 스코어가 상기 서버에 의해 설정된 허용 가능한 신빙성 스코어의 임계값보다 큰 경우에, 상기 모바일 디바이스에 대한 연결을 허용하는 동작을 더 포함하는 방법.
- ◈청구항 20은(는) 설정등록료 납부시 포기되었습니다.◈제 18 항에 있어서,
상기 일회용 사전-공유된 비밀은, 이전의 Merkle 트리의 하나 이상의 해시 블록들을 포함하는 방법.
- 네트워크에서 서버와 양방향 인증을 수행하기 위한 모바일 디바이스에 있어서,
메모리; 및
상기 메모리와 결합된 적어도 하나의 프로세서를 포함하며,
상기 적어도 하나의 프로세서는,
상기 서버에 대한 연결 요청을 개시하고,
상기 연결 요청이 개시된 경우, 상기 모바일 디바이스와 관련된 메트릭(metric)을 포함하는 사용자 컨텍스트 기록(user context record, UCR)을 생성하고,
상기 모바일 디바이스의 검증을 위해 상기 서버에게 상기 UCR을 송신하고,
상기 서버에 의해 상기 모바일 디바이스가 검증됨에 따라, 상기 서버로부터, 상기 서버의 신빙성(authenticity)에 대한 증거로서 일회용 사전-공유된 비밀(one-time pre-shared secret)을 수신하되, 상기 일회용 사전-공유된 비밀은 이전에 제공된 UCR에 기초하고, 상기 이전에 제공된 UCR은 상기 모바일 디바이스가 상기 서버로 이전에 전송한 것이고, 이전 동작 컨텍스트(prior behavioral context)를 포함하며,
상기 양방향 인증을 수행하기 위해, 상기 수신된 일회용 사전-공유된 비밀에 기초하여, 상기 서버의 신빙성을 검증하도록 구성되는 모바일 디바이스.
- 제 21 항에 있어서,
상기 수신된 일회용 사전-공유된 비밀은, 상기 이전에 제공된 UCR에 대한 해시 값을 포함하고,
상기 해시 값은, 상기 서버의 신빙성을 검증하기 위하여 일시적으로 생성된 사전-공유된 비밀을 나타내기 위한 값을 포함하는 모바일 디바이스.
- 제 22 항에 있어서,
상기 적어도 하나의 프로세서는, 상기 해시 값과 상기 메모리에 저장된 이전의 해시 값과 비교함으로써, 상기 서버에 연결되기 이전에, 상기 서버의 신빙성을 검증하도록 더 구성되는 모바일 디바이스.
- 제 21 항에 있어서,
상기 UCR은, 해싱된 데이터 블록들을 포함하는 모바일 디바이스.
- ◈청구항 25은(는) 설정등록료 납부시 포기되었습니다.◈제 24 항에 있어서,
상기 적어도 하나의 프로세서는, 상기 해싱된 데이터 블록들에 기초하여 Merkle 컨텍스트 트리를 구성하고, 상기 Merkle 컨텍스트 트리의 내부 해시 블록들 및 루트 해시를 포함하는 해시 블록들을 생성하도록 더 구성되는 모바일 디바이스.
- 네트워크에서 서버와 양방향 인증을 수행하기 위한 모바일 디바이스의 동작 방법에 있어서,
상기 서버에 대한 연결 요청을 개시하는 동작;
상기 연결 요청이 개시된 경우, 상기 모바일 디바이스와 관련된 메트릭(metric)을 포함하는 사용자 컨텍스트 기록(user context record, UCR)을 생성하는 동작;
상기 모바일 디바이스의 검증을 위해 상기 서버에게 상기 UCR을 송신하는 동작;
상기 서버에 의해 상기 모바일 디바이스가 검증됨에 따라, 상기 서버로부터, 상기 서버의 신빙성(authenticity)에 대한 증거로서 일회용 사전-공유된 비밀(one-time pre-shared secret)을 수신하되, 상기 일회용 사전-공유된 비밀은 이전에 제공된 UCR에 기초하고, 상기 이전에 제공된 UCR은 상기 모바일 디바이스가 상기 서버로 이전에 전송한 것이고, 이전 동작 컨텍스트(prior behavioral context)를 포함하는 동작; 및
상기 양방향 인증을 수행하기 위해, 상기 수신된 일회용 사전-공유된 비밀에 기초하여, 상기 서버의 신빙성을 검증하는 동작을 포함하는 방법.
- ◈청구항 27은(는) 설정등록료 납부시 포기되었습니다.◈제 26 항에 있어서,
상기 수신된 일회용 사전-공유된 비밀은, 상기 이전에 제공된 UCR에 대한 해시 값을 포함하고,
상기 해시 값은, 상기 서버의 신빙성을 검증하기 위하여 일시적으로 생성된 사전-공유된 비밀을 나타내기 위한 값을 포함하는 방법.
- ◈청구항 28은(는) 설정등록료 납부시 포기되었습니다.◈제 27 항에 있어서,
상기 해시 값과 상기 모바일 디바이스의 메모리에 저장된 이전의 해시 값과 비교함으로써, 상기 서버에 연결되기 이전에, 상기 서버의 신빙성을 검증하는 동작을 더 포함하는 방법.
- ◈청구항 29은(는) 설정등록료 납부시 포기되었습니다.◈제 26 항에 있어서,
상기 UCR은, 해싱된 데이터 블록들을 포함하는 방법.
- ◈청구항 30은(는) 설정등록료 납부시 포기되었습니다.◈제 29 항에 있어서,
상기 해싱된 데이터 블록들에 기초하여 Merkle 컨텍스트 트리를 구성하는 동작; 및
상기 Merkle 컨텍스트 트리의 내부 해시 블록들 및 루트 해시를 포함하는 해시 블록들을 생성하는 동작을 더 포함하는 방법.
Applications Claiming Priority (10)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562220164P | 2015-09-17 | 2015-09-17 | |
US201562220141P | 2015-09-17 | 2015-09-17 | |
US62/220,164 | 2015-09-17 | ||
US62/220,141 | 2015-09-17 | ||
US201662279167P | 2016-01-15 | 2016-01-15 | |
US62/279,167 | 2016-01-15 | ||
US201662321095P | 2016-04-11 | 2016-04-11 | |
US62/321,095 | 2016-04-11 | ||
US15/248,723 US11398915B2 (en) | 2016-08-26 | 2016-08-26 | Apparatus and method for two-way authentication |
US15/248,723 | 2016-08-26 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20170033788A KR20170033788A (ko) | 2017-03-27 |
KR102665644B1 true KR102665644B1 (ko) | 2024-05-17 |
Family
ID=58497068
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020160119199A KR102665644B1 (ko) | 2015-09-17 | 2016-09-19 | 인증을 위한 방법 및 그 장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102665644B1 (ko) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108881120B (zh) * | 2017-05-12 | 2020-12-04 | 创新先进技术有限公司 | 一种基于区块链的数据处理方法及设备 |
WO2019063852A1 (es) * | 2017-09-27 | 2019-04-04 | Tecteco Security Systems, S.L. | Autenticación multi-factor de usuarios por rasgos biométricos/biotecnológicos mejorada |
KR102124355B1 (ko) * | 2019-01-31 | 2020-06-23 | (주)엘렉스정보통신 | 사물 인터넷 데이터 인덱싱 시스템 |
WO2021176252A1 (en) * | 2020-03-05 | 2021-09-10 | Redbend Ltd. | Detection of wireless communication hijacking |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150222619A1 (en) * | 2012-08-30 | 2015-08-06 | Los Alamos National Security, Llc | Multi-factor authentication using quantum communication |
-
2016
- 2016-09-19 KR KR1020160119199A patent/KR102665644B1/ko active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150222619A1 (en) * | 2012-08-30 | 2015-08-06 | Los Alamos National Security, Llc | Multi-factor authentication using quantum communication |
Non-Patent Citations (1)
Title |
---|
Markus Jakobsson, "Implicit Authentication for Mobile Devices" (2009.01.)* |
Also Published As
Publication number | Publication date |
---|---|
KR20170033788A (ko) | 2017-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11398915B2 (en) | Apparatus and method for two-way authentication | |
US11888839B1 (en) | Continuous authentication through orchestration and risk calculation post-authentication system and method | |
US12074886B1 (en) | Identification (ID) proofing to deter threat actors | |
US10985913B2 (en) | Method and system for protecting data keys in trusted computing | |
US11005839B1 (en) | System and method to identify abnormalities to continuously measure transaction risk | |
US12086808B1 (en) | System and method for using user context and behavior for providing access to a secure computer network | |
US11184766B1 (en) | Systems and methods for continuous authentication, identity assurance and access control | |
US20190342096A1 (en) | Online identity and credential verification systems and methods protecting user data | |
US10484177B2 (en) | Method and apparatus for generation of a time-based one-time password for session encryption of sensor data gathered in low-performance and IOT environments | |
US10348699B2 (en) | Identity binding systems and methods in a personal data store in an online trust system | |
JP2021043986A (ja) | 高度な認証技術及びその応用 | |
JP2021510978A (ja) | 検証可能なクレームをバインドするシステム及び方法 | |
JP2021504860A (ja) | トランザクション確認及び暗号通貨のためのセキュアな鍵記憶装置の拡張 | |
US10607263B2 (en) | Computerized systems and methods for authenticating users on a network device via dynamically allocated authenticating state machines hosted on a computer network | |
US20210099431A1 (en) | Synthetic identity and network egress for user privacy | |
Khalil et al. | A comparative analysis on blockchain versus centralized authentication architectures for IoT-enabled smart devices in smart cities: a comprehensive review, recent advances, and future research directions | |
KR102665644B1 (ko) | 인증을 위한 방법 및 그 장치 | |
Mahinderjit Singh et al. | A novel out-of-band biometrics authentication scheme for wearable devices | |
Trocoso-Pastoriza et al. | Orchestrating collaborative cybersecurity: a secure framework for distributed privacy-preserving threat intelligence sharing | |
US11784809B2 (en) | Constrained key derivation in temporal space | |
Jindal et al. | Multi-factor authentication scheme using mobile app and camera | |
US11387997B2 (en) | Constrained key derivation in geographical space | |
US20200186535A1 (en) | Methods, systems, apparatuses and devices for facilitating security of a resource using a plurality of credentials | |
Kanak et al. | Integrated secure distance bounding and hardware-based security: A case study for the insurance claim verification of farmers during COVID-19 | |
Morrison | Context integrity measurement architecture: a privacy-preserving strategy for the era of ubiquitous computing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |