KR20220125282A - 원격 액세스 방법 - Google Patents
원격 액세스 방법 Download PDFInfo
- Publication number
- KR20220125282A KR20220125282A KR1020227026619A KR20227026619A KR20220125282A KR 20220125282 A KR20220125282 A KR 20220125282A KR 1020227026619 A KR1020227026619 A KR 1020227026619A KR 20227026619 A KR20227026619 A KR 20227026619A KR 20220125282 A KR20220125282 A KR 20220125282A
- Authority
- KR
- South Korea
- Prior art keywords
- user interface
- application
- computer
- sensitive data
- remote server
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
- G06F9/452—Remote windowing, e.g. X-Window System, desktop virtualisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L67/025—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Human Computer Interaction (AREA)
- Medical Informatics (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Databases & Information Systems (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- User Interface Of Digital Computer (AREA)
- Communication Control (AREA)
- Computer And Data Communications (AREA)
- Optical Communication System (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
본 발명은 원격 액세스 프로토콜을 통해 수신된 민감한 데이터가 인간 오퍼레이터에게 출력되는 것을 방지하는 방법에 관한 것이다. 방법은, 원격 액세스 프로토콜을 통해 원격 서버로부터, 원격 서버에서 실행되는 애플리케이션의 사용자 인터페이스를 수신하는 단계; 원격 서버로부터, 애플리케이션의 텍스트-기반 표현을 수신하는 단계; 하나 이상의 미리 선택된 필터를 사용하여 애플리케이션의 사용자 인터페이스 및/또는 텍스트-기반 표현에서 민감한 데이터를 식별하는 단계; 식별된 민감한 데이터를 제거하도록 사용자 인터페이스를 수정하는 단계; 인간 오퍼레이터에 의한 수신을 위해 컴퓨터의 하나 이상의 출력 주변 기기에 수정된 사용자 인터페이스를 출력하는 단계를 포함한다.
Description
본 발명은 원격 액세스 프로토콜을 통해 수신된 민감한 데이터(sensitive data)가 인간 오퍼레이터에게 출력되는 것을 방지하는 방법에 관한 것이다.
원격 액세스 프로토콜들은 인간 오퍼레이터가 원격 서버에서 실행되는 애플리케이션과 원격으로 상호작용할 수 있게 한다. 원격 상호작용은 원격 서버로부터 인간 오퍼레이터의 컴퓨터로 애플리케이션의 사용자 인터페이스(user interface)(UI)를 전송함으로써 이러한 프로토콜들에 의해 달성된다. 수신된 UI를 사용하여, 인간 오퍼레이터는 애플리케이션이 수행할 수 있는 액션들 및 애플리케이션에서 이용가능한 제어들을 해석할 수 있다. 그런 다음, 인간 오퍼레이터는 애플리케이션에 의해 수행되어야 하는 액션들을 결정하고, 그들의 컴퓨터에 적절한 제어 신호들을 입력할 수 있다. 이러한 제어 신호들은 후속하여 인간 오퍼레이터의 컴퓨터로부터 원하는 액션들이 수행되는 원격 서버로 전송된다.
몇 가지 알려진 원격 액세스 프로토콜들이 있다. 한 가지 예는 원격 서버로부터 인간 오퍼레이터의 컴퓨터로 렌더링된 그래픽 사용자 인터페이스(graphical user interface)(GUI) 이미지들을 전송하는 원격 프레임 버퍼(remote framebuffer)(RFB) 프로토콜이다. 원격 액세스 프로토콜의 두 번째 예는 Microsoft의 원격 데스크탑 프로토콜(remote desktop protocol)(RDP)이다. RDP는, 원격 서버로부터 인간 오퍼레이터의 컴퓨터로 렌더링된 GUI 이미지를 전송하는 대신, GUI 이미지를 렌더링하기 위한 데이터가 전송된다는 점을 제외하면, RFB 프로토콜과 유사하다.
이러한 원격 액세스 프로토콜들의 문제점은 원격 서버로부터 인간 오퍼레이터의 컴퓨터로 수신된 UI가 민감한 데이터(즉, 개인 정보, 금융 정보, 의료 정보)를 포함할 수 있다는 점이다. 인간 오퍼레이터의 컴퓨터에서 수신된 민감한 데이터는 인간 오퍼레이터에게 출력되는 경우에 문제가 되는데, 왜냐하면 이들이 민감한 데이터를 볼 권한이 없을 수 있기 때문이다. 또한, 인간 오퍼레이터를 통한 데이터 브리치(data breach)의 위험이 있다. 민감한 데이터의 데이터 브리치들은 민감한 데이터의 우발적이거나 불법적인 파괴, 손실, 변경, 비인가 공개, 또는 이에 대한 액세스를 초래하여, 중요한 인적 결과들로 이어질 수 있다. 또한, 인간 오퍼레이터에 의해 민감한 데이터에 액세스하는 것은 다양한 관할권들의 규정들에 따라 불법일 수 있다. 따라서, 민감한 데이터가 인간 오퍼레이터에게 출력되는 것을 방지하기 위한 방법이 바람직하다.
본 발명은 독립항들에 의해 정의되고, 추가적인 임의적 피처들은 종속항들에 의해 정의된다.
본 발명의 제1 양태에서, 원격 액세스 프로토콜을 통해 수신된 민감한 데이터(sensitive data)가 인간 오퍼레이터에게 출력되는 것을 방지하는 컴퓨터에 의해 구현되는 방법으로서, 원격 액세스 프로토콜을 통해 원격 서버로부터, 원격 서버에서 실행되는 애플리케이션의 사용자 인터페이스를 수신하는 단계; 애플리케이션의 텍스트-기반 표현을 결정하거나, 또는 원격 서버로부터 수신하는 단계; 하나 이상의 미리 선택된 필터를 사용하여 애플리케이션의 사용자 인터페이스 및/또는 텍스트-기반 표현에서 민감한 데이터를 식별하는 단계; 식별된 민감한 데이터를 제거하도록 사용자 인터페이스를 수정하는 단계; 인간 오퍼레이터에 의한 수신을 위해 컴퓨터의 하나 이상의 출력 주변 기기에 수정된 사용자 인터페이스를 출력하는 단계를 포함하는 방법이 제공된다. 이러한 방식으로, 애플리케이션의 UI 및/또는 애플리케이션의 텍스트-기반 표현을 사용하여 민감한 데이터가 인간 오퍼레이터에게 출력되는 것이 방지된다.
일 실시예에서, 원격 액세스 프로토콜은 원격 프레임 버퍼 프로토콜이다. 예를 들어, 원격 서버는 가상 네트워크 컴퓨팅(virtual network computing)(VNC) 서버일 수 있고, 컴퓨터는 VNC 클라이언트일 수 있다. 이 실시예에서, 수신된 사용자 인터페이스는 사용자 인터페이스의 이미지의 형태이고, 수정하는 단계는 사용자 인터페이스의 이미지를 수정하는 단계를 포함하고, 출력하는 단계는 사용자 인터페이스의 수정된 이미지를 출력하는 단계를 포함한다. 따라서, 본 방법은 원격 프레임 버퍼 프로토콜과 함께 사용될 수 있다.
다른 실시예에서, 원격 액세스 프로토콜은 원격 데스크탑 프로토콜이다. 이 실시예에서, 수신된 사용자 인터페이스는 사용자 인터페이스의 이미지를 렌더링하기 위한 데이터의 형태이고, 수정하는 단계는 사용자 인터페이스의 이미지를 렌더링하기 위한 데이터를 수정하는 단계를 포함하고, 출력하는 단계는 수정된 사용자 인터페이스의 이미지를 렌더링하기 위해 수정된 데이터를 출력하는 단계를 포함한다. 따라서, 본 방법은 원격 데스크탑 프로토콜과 함께 사용될 수 있다.
애플리케이션의 텍스트-기반 표현은 사용자 인터페이스 및/또는 애플리케이션으로부터 추출된 텍스트를 포함할 수 있다. 추가적으로 또는 대안적으로, 애플리케이션의 텍스트-기반 표현은 애플리케이션의 프로그램적 표현을 포함할 수 있다. 일부 실시예들에서, 프로그램적 표현은 애플리케이션의 문서 객체 모델을 포함한다. 애플리케이션의 텍스트-기반 표현은 애플리케이션의 사용자 인터페이스를 사용하여 식별되지 않았을 수 있는 추가 민감한 데이터를 식별하는 데 사용된다. 특히, 애플리케이션의 텍스트-기반 표현을 사용하는 경우의 특별한 이점은 애플리케이션의 기본 정보가 민감한 데이터를 식별하는 데 활용될 수 있다는 것이고, 이는 민감한 데이터가 보다 정확하게 식별된다는 것을 의미한다.
민감한 데이터가 텍스트의 형태일 때, 미리 선택된 필터는 규칙, 예를 들어, 정규 표현식 매칭 규칙(regular expression matching rule)을 포함한다. 대안적으로, 미리 선택된 필터는 텍스트를 식별하도록 구성되는 머신 학습 모델을 포함한다. 이러한 대안들은 모두 텍스트의 형태의 민감한 데이터가 식별될 수 있게 하고, 따라서, 인간 오퍼레이터에게 출력되는 것이 방지될 수 있게 한다.
민감한 데이터가 이미지의 형태일 때, 미리 선택된 필터는 이미지를 식별하도록 구성되는 머신 학습 모델을 포함한다. 이는 이미지의 형태의 민감한 데이터가 식별될 수 있게 하고, 따라서, 인간 오퍼레이터에게 출력되는 것이 방지될 수 있게 한다.
본 방법은, 결정하거나, 또는 원격 서버로부터 수신하는 단계 이전에, 애플리케이션의 민감한 데이터에 기초하여 하나 이상의 필터를 미리 선택하는 단계를 추가로 포함할 수 있다. 민감한 데이터는 이름, 주소, 생년월일, 전화 번호, 신분증(identification document) 이미지, 얼굴 이미지 중 하나 이상과 같은 개인 정보를 포함할 수 있다. 추가적으로 또는 대안적으로, 민감한 데이터는 신용 카드 번호들, 은행 번호들 중 하나 이상과 같은 금융 정보를 포함할 수 있다. 추가적으로 또는 대안적으로, 민감한 데이터는 의료 정보를 포함할 수 있다. 이는 애플리케이션에 있을 것으로 예상되는 민감한 데이터의 유형에 기초하여 하나 이상의 필터가 커스터마이징될 수 있게 한다.
수정된 사용자 인터페이스는 컴퓨터의 하나 이상의 입력 주변 기기를 통해 인간 오퍼레이터와 상호작용하도록 구성될 수 있다. 이는 인간 오퍼레이터가 원격 액세스 프로토콜을 통해 원격 서버에 제어들을 입력할 수 있도록 하기 위한 것이다. 수정되지 않은 사용자 인터페이스는 인간 오퍼레이터에 의해 민감한 데이터가 유출될 수 없도록 보장하기 위해 컴퓨터의 하나 이상의 출력 주변 기기에 출력되지 않는다.
통상적으로 원격 프레임 버퍼 프로토콜 및 원격 데스크탑 프로토콜의 경우, 사용자 인터페이스는 그래픽 사용자 인터페이스이다. 또한, 사용자 인터페이스를 수신하는 단계는 원격 서버의 데스크탑의 사용자 인터페이스를 수신하는 단계를 포함하고, 애플리케이션의 사용자 인터페이스는 데스크탑의 사용자 인터페이스의 부분을 형성한다. 애플리케이션은 웹 브라우저일 수 있지만, 임의의 유형의 데스크탑 애플리케이션도 본 방법과 함께 사용하기에 적합하다.
본 발명의 제2 양태에서, 명령어들을 포함하는 컴퓨터 프로그램으로서, 명령어들은, 프로그램이 프로세서에 의해 실행될 때, 프로세서로 하여금, 본 발명의 제1 양태의 방법을 수행하게 하는 컴퓨터 프로그램이 제공된다.
본 발명의 제3 양태에서, 명령어들을 포함하는 컴퓨터 판독가능 매체로서, 명령어들은, 프로세서에 의해 실행될 때, 프로세서로 하여금, 본 발명의 제1 양태의 방법을 수행하게 하는 컴퓨터 판독가능 매체가 제공된다.
본 발명의 제4 양태에서, 본 발명의 제1 양태의 방법을 수행하도록 구성되는 프로세서가 제공된다.
본 발명의 제5 양태에서, 컴퓨팅 시스템으로서, 본 발명의 제1 양태의 방법을 수행하도록 구성되는 프로세서; 프로세서에 통신가능하게 커플링되는 원격 서버; 및 프로세서 및 원격 서버에 통신가능하게 커플링되는 컴퓨터를 포함하고, 컴퓨터는 수정된 사용자 인터페이스를 출력하도록 구성되는 하나 이상의 출력 주변 기기 및 인간 사용자에 의한 수신을 위한 하나 이상의 입력 주변 기기를 가지며, 수정된 사용자 인터페이스는 하나 이상의 입력 주변 기기를 통해 인간 오퍼레이터와 상호작용하도록 구성되는 컴퓨팅 시스템이 제공된다.
일부 실시예들에서, 컴퓨팅 시스템은 가상 네트워크 컴퓨팅 시스템이고, 원격 서버는 VNC 서버이고, 컴퓨터는 VNC 클라이언트이다. 입력 주변 기기들은 키보드 및/또는 마우스를 포함할 수 있다. 출력 주변 기기들은 디스플레이를 포함할 수 있다.
본 발명의 실시예들은 예로서 다음 도면들을 참조하여 아래에서 설명된다.
도 1은 본 발명을 구현하기 위한 컴퓨팅 시스템을 도시한다.
도 2는 도 1의 컴퓨팅 시스템의 상세도를 도시한다.
도 3a 및 도 3b는 본 발명과 함께 사용하기 위한 예시적인 원격 액세스 프로토콜들을 도시한다.
도 4는 본 발명과 함께 사용하기 위한 민감한 데이터를 갖는 예시적인 사용자 인터페이스를 도시한다.
도 5는 본 발명의 방법에 따른 흐름도를 도시한다.
도 6a 및 도 6b는 각각 도 4의 사용자 인터페이스에 기초하여 예시적인 수정된 사용자 인터페이스들을 도시한다.
도 7은 로보틱 프로세스 자동화(Robotic Process Automation)(RPA)에서 본 발명의 방법의 예시적인 구현을 도시한다.
도 1은 본 발명을 구현하기 위한 컴퓨팅 시스템을 도시한다.
도 2는 도 1의 컴퓨팅 시스템의 상세도를 도시한다.
도 3a 및 도 3b는 본 발명과 함께 사용하기 위한 예시적인 원격 액세스 프로토콜들을 도시한다.
도 4는 본 발명과 함께 사용하기 위한 민감한 데이터를 갖는 예시적인 사용자 인터페이스를 도시한다.
도 5는 본 발명의 방법에 따른 흐름도를 도시한다.
도 6a 및 도 6b는 각각 도 4의 사용자 인터페이스에 기초하여 예시적인 수정된 사용자 인터페이스들을 도시한다.
도 7은 로보틱 프로세스 자동화(Robotic Process Automation)(RPA)에서 본 발명의 방법의 예시적인 구현을 도시한다.
도 1은, 일 실시예에 따라, 본 발명의 방법이 구현되는 컴퓨팅 시스템(10)을 도시한다. 컴퓨팅 시스템(10)은 하나 이상의 인간 오퍼레이터(60)에 의해 물리적으로 액세스가능한 하나 이상의 컴퓨터(20)를 포함한다. 컴퓨팅 시스템(10)은 또한 하나 이상의 원격 서버(40)를 포함한다. 원격 서버(40)는 원격 서버(40)가 인간 오퍼레이터(60)에 의해 물리적으로 액세스될 수 없도록 컴퓨터(20)에 대해 상이한 위치에 위치된다는 점에서 "원격"이다. 일부 인스턴스들에서, 이는 원격 서버(40)가 가상 원격 서버이기 때문일 수 있다. 컴퓨터(20)와 원격 서버(40)는 적어도 하나의 통신 네트워크(50)를 통해 서로 통신가능하게 커플링된다. 이러한 통신 커플링은 데이터가 컴퓨터(20)와 원격 서버(40) 사이에서 통신될 수 있게 한다. 적어도 하나의 통신 네트워크(50)는 인터넷(즉, IP, IPv4, IPv6), 셀룰러 네트워크(즉, 3G, 4G LTE, 5G), 근거리 네트워크, 클라우드 네트워크, 무선 네트워크, 또는 임의의 기타 알려진 통신 네트워크를 포함할 수 있다. 또한, 컴퓨팅 시스템(10)에는 컴퓨팅 시스템(10)의 인간 관리자(80)에 의해 액세스가능한 관리자 컴퓨터(70)가 존재한다. 관리자 컴퓨터(70)는 컴퓨터(20) 및 원격 서버(40)에 통신가능하게 커플링되어, 인간 관리자(80)가 컴퓨터(20)와 원격 서버(40) 사이의 상호작용을 위한 정책들을 유지 및 제어할 수 있게 한다. 설명된 컴퓨팅 시스템(10)은 단지 예시에 불과하며, 시스템 컴포넌트들의 제거 또는 추가를 포함하는 그에 대한 수정들이 가능하다.
도 2는 도 1에 도시된 컴퓨팅 시스템(10)의 선택된 양태들을 도시한다. 구체적으로, 도 2는 통신 네트워크(50)를 통해 원격 서버(40)와 통신하는 컴퓨터(20)를 도시한다. 컴퓨터(20)는 하나 이상의 소프트웨어 애플리케이션(21), 프로세서(22), 메모리(23), 하나 이상의 입력 주변 기기(24) 및 하나 이상의 출력 주변 기기(25)를 포함한다. 프로세서(22)는 중앙 프로세싱 유닛(central processing unit)(CPU) 및/또는 그래픽 프로세싱 유닛(graphical processing unit)(GPU)을 포함한다. 메모리(23)는 데이터 저장 디바이스 및/또는 반도체 메모리를 포함한다. 데이터 저장 디바이스들은 하드 디스크들 드라이브, 솔리드 스테이트 드라이브, 외부 드라이브, 이동식 광 디스크, 및/또는 메모리 카드의 형태를 취한다. 반도체 메모리는 데이터를 임시로 저장하기 위한 휘발성 메모리, 예를 들어, 랜덤 액세스 메모리(random-access memory)(RAM), 및 데이터를 장기간 저장하기 위한 비휘발성 메모리, 예를 들어, 판독 전용 메모리(read-only memory)(ROM), 플래시 메모리의 형태를 취한다.
하나 이상의 애플리케이션(21)은 메모리(23)에 컴퓨터 프로그램들로서 저장되고, 프로세서(22)를 통해 컴퓨터(20)에서 실행된다. 입력 주변 기기들(24) 및 출력 주변 기기들(25)을 통해 인간 오퍼레이터(60)와의 직접적인 상호작용을 용이하게 하는 이러한 애플리케이션들은 운영 체제(operating system)(OS) 및 데스크탑 애플리케이션들을 포함한다. 알려진 운영 체제들의 예들은 Microsoft Windows, MacOS, 및 Linux를 포함한다. 컴퓨터(20')를 위한 알려진 데스크탑 애플리케이션들의 예들은 Google Chrome과 같은 웹 브라우저들, Microsoft Word와 같은 문서화 애플리케이션들, 및 본 명세서에서 추가로 논의되는 원격 액세스 애플리케이션들을 포함한다. 그러나, 본 발명은 본 명세서에서 언급된 특정 애플리케이션들에 제한되지 않는다는 것이 이해되어야 한다.
언급된 바와 같이, 컴퓨터(20)는 하나 이상의 입력 주변 기기(24)를 포함한다. 입력 주변 기기(24)의 목적은 인간 오퍼레이터(60)가 컴퓨터(20)에 명령들을 전송할 수 있게 하는 것이다. 입력 주변 기기(24)의 예들은 마우스, 키보드, 터치 스크린, 이미지 스캐너, 바코드 판독기, 게임 제어기, 마이크로폰, 디지털 카메라, 웹캠 등을 포함한다. 입력 주변 기기(24)는 랩톱 컴퓨터들에서 발견되는 것과 같이 컴퓨터(20)와 통합될 수도 있고, 또는 데스크탑 컴퓨터들의 경우와 같이 컴퓨터(20) 외부에 있을 수도 있다. 인간 오퍼레이터(60)는 애플리케이션(21)과 상호작용함으로써 입력 주변 기기(24)를 사용하여 컴퓨터(20)에 명령들을 전송한다. 특히, 인간 오퍼레이터(60)는 입력 주변 기기(24)를 사용하여 애플리케이션들(21)의 사용자 인터페이스(UI)와 상호작용한다. 그래픽 사용자 인터페이스(GUI)의 경우, 이 상호작용은, 예를 들어, 입력 주변 기기(24)를 통해 GUI 상에서 버튼 누르기, 클릭, 드래그, 스크롤 등에 의해 달성된다.
컴퓨터(20)는 또한 하나 이상의 출력 주변 기기(25)를 포함한다. 출력 주변 기기(25)의 목적은 인간 오퍼레이터(60)가 컴퓨터(20)로부터 정보를 수신할 수 있게 하는 것이다. 출력 주변 기기(25)의 예들은 디스플레이 디바이스(예를 들어, 컴퓨터 모니터 또는 프로젝터), 프린터, 헤드폰들, 및 컴퓨터 스피커들을 포함한다. 입력 주변 기기(24)와 유사하게, 출력 주변 기기(25)는 컴퓨터(20)와 통합될 수도 있고, 또는 컴퓨터(20) 외부에 있을 수도 있다. 인간 오퍼레이터(60)는 시각 또는 청각과 같은 그들의 감각들을 사용하여 애플리케이션(21)의 UI를 해석함으로써 출력 주변 기기(25)를 사용하여 컴퓨터(20)로부터 정보를 수신한다.
다른 컴포넌트들(도 2에서는 도시 생략)도 컴퓨터(20)에 존재한다. 예를 들어, 컴퓨터(20)는 통신 네트워크(50)를 통한 통신을 가능하게 하는 네트워크 어댑터 카드, 전원, 마더보드, 사운드 카드 등 중 하나 이상을 포함한다.
도 2는 또한 원격 서버(40)를 도시한다. 원격 서버(40)는 하나 이상의 애플리케이션(41), 프로세서(42), 메모리(43) 및 머신 인터페이스(44)를 포함한다. 하나 이상의 애플리케이션(41)은 메모리(43)에 컴퓨터 프로그램들로서 저장되고, 프로세서(42)를 통해 원격 서버(40)에서 실행된다. 이러한 애플리케이션들은 입력 주변 기기들(24) 및 출력 주변 기기들(25)을 통해 인간 오퍼레이터(60)와 직접적인 상호작용을 하지 않는다(그러나, 아래에서 설명되는 바와 같이, 원격 액세스 프로토콜을 통한 간접적인 상호작용은 있다). 대신에, 하나 이상의 애플리케이션(41)은 통신 네트워크(50) 및 머신 인터페이스(44)를 통해 컴퓨터(20)와 직접 상호작용하는 애플리케이션들이다. 원격 서버(40)에 대한 예시적인 애플리케이션들은 컴퓨터(20)에 대해 위에서 언급된 애플리케이션들, 및 미국 특허 출원 번호 제14/053319호 및 미국 특허 번호 제10,469,572호에서 설명된 것들과 같은 로보틱 프로세스 자동화(RPA) 애플리케이션들을 포함한다.
원격 서버(40)는 단일 서버 또는 다수의 서버들의 형태를 취할 수도 있고, 또는 대안적으로, 분산 서버의 형태를 취할 수도 있다. 분산 서버들은 구성 컴포넌트들 전반에 걸쳐 프로세싱 및 데이터를 분산함으로써 동작된다.
원격 서버(40)는 물리적 원격 서버 또는 가상 원격 서버일 수 있다. 원격 서버(40)가 가상 원격 서버일 때, 애플리케이션들(41), 프로세서(42), 메모리(43) 및 머신 인터페이스(44)는 모두 가상 엔티티들이다.
도 1은 또한 컴퓨팅 시스템(10)에 포함된 임의적 원격 플랫폼(90)을 도시한다. 원격 플랫폼(90)은 하나 이상의 가상 원격 서버(40)를 호스팅하는 물리적 원격 서버의 유형이다. 원격 서버(40)와 동일한 방식으로, 원격 플랫폼(90)은 원격 플랫폼(90)이 인간 오퍼레이터(60)에 의해 물리적으로 액세스될 수 없도록 컴퓨터(20)에 대해 상이한 위치에 위치된다는 점에서 "원격"이다. 컴퓨터(20)와 원격 플랫폼(90)은 적어도 하나의 통신 네트워크(50)를 통해 서로 통신가능하게 커플링된다. 이러한 통신 커플링은 데이터가 컴퓨터(20)와 원격 플랫폼(90)(및 그 위에서 호스팅되는 하나 이상의 가상 원격 서버(40) 중 임의의 것) 사이에서 통신될 수 있게 한다. 하나 이상의 가상 원격 서버(40)에 더하여, 원격 플랫폼(90)은 하나 이상의 애플리케이션, 프로세서, 메모리 및 머신 인터페이스(도시 생략)를 포함한다. 원격 플랫폼(90)을 위한 예시적인 애플리케이션들은 컴퓨터(20) 및 원격 서버(40)에 대해 위에서 언급된 애플리케이션들뿐만 아니라, 하나 이상의 가상 원격 서버(40)를 제공하기 위한 가상 머신 애플리케이션들을 포함한다.
원격 액세스 프로토콜들
위에서 언급된 바와 같이, 인간 오퍼레이터(60)는 원격 서버(40)와 직접적으로 상호작용할 수 없지만, 인간 오퍼레이터(60)는 원격 액세스 프로토콜을 사용하여 컴퓨터(20)를 통해 원격 서버(40)와 간접적으로 상호작용할 수 있다. 특히, 원격 액세스 프로토콜은 인간 오퍼레이터(60)가 원격 서버(40) 상의 애플리케이션(41)과 원격으로 상호작용할 수 있게 한다. 이는 인간 오퍼레이터(60)가 애플리케이션(41)에서 이용가능한 제어들을 해석할 수 있도록 애플리케이션(41)의 UI를 어떤 형태로든 컴퓨터(20) 상에서 수신함으로써 달성된다. 그런 다음, 인간 오퍼레이터(60)는 입력 주변 기기(24)를 통해 컴퓨터(20)에 제어 신호들을 입력하고, 이러한 제어 신호들은 컴퓨터(20)로부터 통신 네트워크(50)를 통해 원격 서버(40)로 전송된다. 결과적으로, 원격 서버(40)는 프로세서(42)를 통해 제어 신호들을 실행하여 원격 서버(40) 상의 애플리케이션(41)과의 상호작용을 야기한다.
본 발명과 함께 사용될 수 있는 위에서 설명된 방식으로 동작하는 몇몇 알려진 원격 액세스 프로토콜들이 있다. 본 발명과 함께 사용하기 위한 원격 액세스 프로토콜의 제1 예는 도 3a에 도시된 원격 프레임 버퍼(RFB) 프로토콜이다. RFB 프로토콜은 렌더링된 GUI 이미지들, 이 경우, 원격 서버(40)의 렌더링된 GUI 이미지들에 대응하는 프레임 버퍼 레벨에서 작동한다. 결과적으로, RFB 프로토콜은 운영 체제(즉, Microsoft Windows, MacOS 등) 및 웹 브라우저들과 같은 다른 애플리케이션들을 포함하여 원격 서버(40)에서 실행되는 임의의 애플리케이션(41)에 적용될 수 있다.
RFB 프로토콜의 기본 동작은 다음과 같다. 도 3a에 도시된 바와 같이, 컴퓨터(20)는 원격 서버(40)의 프레임 버퍼의 이미지들, 즉, 원격 서버(40)의 렌더링된 GUI 이미지들을 수신한다. "이미지"는 데이터가 픽셀 데이터임을 의미한다. 이러한 픽셀 데이터의 포맷 및 인코딩은 이들이 RFB 프로토콜이 구현되고 있는 특정 시나리오에 적합하도록 컴퓨터(20) 및 서버(40)에 의해 협상되기 때문에 다양하다. 이러한 GUI 이미지들은 순차적으로 전송되어, 컴퓨터(20)를 통한 인간 오퍼레이터(60)에 의한 해석을 위해 원격 서버(40)의 GUI의 '비디오'를 형성한다. 이는, 인간 오퍼레이터(60)가 입력 주변 기기(24) 및 컴퓨터(20)를 통해 원격 서버(40)에 제어 신호들을 전송하면, 해당 인간 오퍼레이터(60)는 원격 서버(40)로부터 수신된 후속 GUI 이미지들에서 제어 신호들의 결과를 볼 수 있음을 의미한다. 예를 들어, 입력 주변 기기(24)가 마우스이고 인간 오퍼레이터(60)에 의해 전송된 제어 신호가 마우스를 움직이는 것인 경우, 인간 오퍼레이터(60)는 마우스 커서가 원격 서버(40)의 데스크탑 상에서 이동되었음을 후속하여 수신된 GUI 이미지들에서 보게 될 것이다.
RFB 프로토콜에 의해 전송된 GUI 이미지(400)의 특정 예가 도 4에 도시되어 있다. 특히, 도 4는 운영 체제(410)(Microsoft Windows), 웹 브라우저(411)(Google Chrome), RPA 애플리케이션(412)(Blue Prism), 및 원격 액세스 애플리케이션(413)(Real VNC)을 포함한 복수의 애플리케이션들(41)을 보여주는 서버(40)의 데스크탑의 GUI 이미지(400)를 도시한다. 웹 브라우저(411)는 민감한 데이터(416)를 포함하는 전자 건강 기록이 보여지고 있는 열린 창(415)을 갖는다. GUI 이미지(400)는 통상적으로 인간 오퍼레이터(60)에 의해 보여질 수 있도록 컴퓨터(20)에 그 전체가 전송된다. 도 4의 창(415)에 있는 회색 상자들은 도면의 단순화를 위해 사용되었으며, 실제 GUI 이미지에서는 텍스트로 채워질 것이라는 점에 유의하도록 한다.
RFB 프로토콜에서, 컴퓨터(20)는 '클라이언트'로 지칭되고, 원격 서버(40)는 '서버'로 지칭된다. 따라서, 컴퓨터(20)에서, 애플리케이션(21)은 클라이언트 원격 액세스 애플리케이션을 포함하는 반면, 서버(40)에서, 애플리케이션(41)은 서버 원격 액세스 애플리케이션을 포함한다. 통상적으로, RFB 프로토콜은 Real VNC와 같은 가상 네트워크 컴퓨팅(VNC) 애플리케이션을 사용하여 구현된다. 따라서, 원격 서버(40)는 VNC 서버일 수 있는 반면, 컴퓨터(20)는 VNC 클라이언트일 수 있다. RFB 프로토콜에 대한 추가 설명은 Richardson, T. 및 Levine, J.의 2011년 "The remote framebuffer protocol", IETF에서 찾을 수 있다.
본 발명과 함께 사용하기 위한 원격 액세스 프로토콜의 두 번째 예는 도 3b에 도시된 Microsoft의 원격 데스크탑 프로토콜(RDP)이다. RDP는, 원격 서버(40)로부터 컴퓨터(20)로 렌더링된 GUI 이미지를 전송하는 대신, GUI 이미지를 렌더링하기 위한 데이터가 전송된다는 점을 제외하면, RFB 프로토콜과 유사하다. 즉, RDP에서, 원격 서버(40)로부터의 데이터는 픽셀 데이터가 아니다. 컴퓨터(20)가 GUI 이미지를 렌더링하기 위한 데이터를 수신하면, GUI가 인간 오퍼레이터(60)에 의한 수신을 위해 컴퓨터(20)에 의해 렌더링되고 출력 주변 기기(25)에 디스플레이된다. 또한, RDP는 인간 오퍼레이터(60)가 강조 표시(highlighting), 복사 등을 포함한 운영 체제 커맨드들을 사용하여 렌더링된 GUI 이미지에 나타나는 애플리케이션(41)과 상호작용할 수 있게 한다. 이 예에서, 컴퓨터(20)의 애플리케이션(21)은 RDP를 구현하기 위해 원격 데스크탑 연결(Remote Desktop Connection)을 포함한다.
본 명세서에서 설명된 두 가지 예에서, 컴퓨터(20)에 의해 수신된 데이터는 원격 서버(40)의 GUI에 관한 것이지만, 본 발명은 GUI들에 제한되지 않고, 다른 유형들의 UI에도 적용될 수 있다. 또한, SLIP(serial line internet protocol), PPP(Point-to-Point Protocol), PPPoE(Point-to-Point Over Ethernet), RAS(Remote Access Services), PPTP(Point-to-Point Tunnelling Protocol) 등을 포함한 다른 원격 액세스 프로토콜들도 본 발명과 함께 작동한다.
민감한 데이터
도 4의 예에 도시된 바와 같이, 원격 액세스 프로토콜을 통해 컴퓨터(20)에서 원격 서버(40)로부터 수신된 UI(400)는 민감한 데이터(416)를 포함할 수 있다. 본 명세서에서 참조되는 민감한 데이터는 그것의 인지 콘텐츠(cognitive content)로 인해 보안 고려 사항들을 강화해야 하는 특수한 유형의 데이터이다. 민감한 데이터의 브리치들은 민감한 데이터의 우발적이거나 불법적인 파괴, 손실, 변경, 비인가 공개, 또는 이에 대한 액세스를 초래하여, 중요한 인적 결과들로 이어질 수 있다. 예를 들어, 개인의 의료 기록들을 영구적으로 삭제하면 상기 개인의 건강에 잠재적으로 중요하고 오래 지속되는 결과들을 갖게 된다. 이러한 이유 때문에, 다양한 관할권들에서, 예를 들어, 유럽 연합의 GDPR(General Data Protection Regulation), 및 영국의 데이터 보호법 2018(Data Protection Act 2018)을 통해 민감한 데이터의 저장 및 프로세싱이 규정된다.
민감한 데이터는 텍스트 또는 이미지들의 형태를 취한다. 민감한 데이터는 개인 정보, 즉, 식별되거나 또는 식별 가능한 자연인과 관련된 정보를 포함할 수 있다. 예를 들어, 민감한 데이터는 이름, 주소, 생년월일, 전화 번호, 신분증 이미지, 얼굴 이미지를 포함할 수 있다. 다른 유형들의 민감한 데이터는 개인의 위치 데이터, 온라인 식별자 또는 개인의 신체적, 생리적, 유전적, 정신적, 경제적, 문화적 또는 사회적 아이덴티티에 특정한 하나 이상의 팩터를 포함한다. 추가적으로 또는 대안적으로, 민감한 데이터는 신용 카드 번호들, 및 은행 번호들과 같은 금융 정보를 포함할 수 있다. 추가 대안으로서, 민감한 데이터는 의료 정보를 포함할 수 있다.
다시 도 4를 참조하면, 민감한 데이터(416)를 보여주는 원격 서버(40)의 예시적인 UI(400)가 도시되어 있다. 특히, 도 4는 민감한 데이터(416)를 포함하는 전자 건강 기록(Electronic Health Record) 웹 페이지를 연 웹 브라우저(411)의 창(415)을 도시한다. 이 예에서, 민감한 데이터(416)는 얼굴 이미지를 포함하는 신분증(상자(416)의 좌측에 도시됨), 및 이름, 주소, 생년월일 및 전화 번호와 같은 개인 세부 정보들(상자(416)의 우측에 도시됨)을 포함한 개인 정보의 형태를 취한다.
원격 액세스 프로토콜을 통해 컴퓨터(20)에서 수신된 민감한 데이터는 인간 오퍼레이터(60)에게 출력되는 경우에 문제가 되는데, 왜냐하면 인간 오퍼레이터(60)가 해당 민감한 데이터를 볼 권한이 없을 수 있기 때문이다. 또한, 인간 오퍼레이터(60)를 통한 데이터 브리치의 위험이 있다. 또한, 인간 오퍼레이터(60)에 의한 이러한 민감한 데이터에 대한 액세스는 다양한 관할권들의 규정들에 따라 잠재적으로 불법이다. 따라서, 민감한 데이터가 인간 오퍼레이터(60)에게 출력되는 것을 방지하기 위한 방법이 바람직하다.
방법의 개요
도 5는 원격 액세스 프로토콜을 통해 수신된 민감한 데이터가 인간 오퍼레이터(60)에게 출력되는 것을 방지하기 위해 본 발명에 의해 채택된 방법을 도시한다. 도 5의 방법은 컴퓨터(20), 원격 서버(40) 및 프로세서(30)를 포함한다. 프로세서(30)는 프로세서(22) 및 프로세서(42) 중 하나일 수도 있고, 또는 프로세서(22) 및 프로세서(42)와 상이한 프로세서일 수도 있다. 프로세서(30)는 가능한 보안 위험들을 감소시키기 위해 원격 서버(40)의 프로세서(42)(즉, 방법이 서버 측에서 수행됨)인 것이 바람직하다. 또한, 프로세서(42)인 프로세서(30)는 컴퓨터(20)에 대한 계산 부하를 감소시킨다.
도 5에 도시된 바와 같이, 방법은 프로세서(30)에서 수행되는 다음 단계들을 포함한다:
- 원격 액세스 프로토콜을 통해 원격 서버(40)로부터, 원격 서버(40)에서 실행되는 애플리케이션(41)의 UI를 수신하는 단계(단계(510);
- 애플리케이션(41)의 텍스트-기반 표현을 결정하거나, 또는 원격 서버(40)로부터 수신하는 단계(단계(520);
- 하나 이상의 미리 선택된 필터를 사용하여 애플리케이션(41)의 UI 및/또는 텍스트-기반 표현에서 민감한 데이터를 식별하는 단계(단계(530);
- 식별된 민감한 데이터를 제거하도록 UI를 수정하는 단계(단계(540);
- 인간 오퍼레이터(60)에 의한 수신을 위해 컴퓨터(20)의 하나 이상의 출력 주변 기기(25)에 수정된 UI를 출력하는 단계(단계(550).
따라서, 본 발명의 방법은 원격 서버(40)와 인간 오퍼레이터(60) 사이에 위치하며 인간 오퍼레이터(60)가 애플리케이션(41)의 UI를 수신하는 것을 제어하는 프로세서(30)를 중심으로 한다. 특히, 프로세서(30)는 애플리케이션(41)의 UI 및/또는 애플리케이션(41)의 텍스트-기반 표현을 사용하여 민감한 데이터를 식별하고, 결과적으로 민감한 데이터를 포함하지 않는 UI를 컴퓨터(20)에서 인간 오퍼레이터(60)에게 출력하기 위해 민감한 데이터를 제거하도록 UI를 수정한다. 이러한 방식으로, 인간 오퍼레이터(60)는 원격 액세스 프로토콜을 통해 원격 서버(40)의 민감한 데이터에 액세스할 수 없으므로, 데이터 브리치의 위험을 감소시킨다.
더 상세하게는, 단계(510)에서, 프로세서(30)는 원격 서버(40)로부터 원격 서버(40)에서 실행되는 애플리케이션(41)의 UI를 수신한다. 이 단계는, UI가 반드시 컴퓨터(20)가 아니라 프로세서(30)에서 수신된다는 점을 제외하면, 위에서 설명된 바와 같이, 원격 액세스 프로토콜들에 대한 통상적인 단계이다. 애플리케이션(41)의 UI의 형태는 사용되고 있는 애플리케이션 및 원격 액세스 프로토콜에 따라 달라진다. 애플리케이션(41)은 운영 체제 또는 웹 브라우저, 가상 머신 애플리케이션, RPA 애플리케이션 등과 같은 다른 애플리케이션들을 포함한 본 명세서에서 언급된 애플리케이션들 중 임의의 것일 수 있다.
RFB 프로토콜 또는 RDP 중 어느 것이 사용될 때, 단계(510)는 프로세서(30)에서 원격 서버(40)의 데스크탑 GUI를 수신하는 단계를 포함한다. 그러나, 일부 인스턴스들에서, 인간 오퍼레이터(60)와의 상호작용에 관심 있는 애플리케이션(41)은 도 4의 예의 웹 브라우저(411)와 같은 데스크탑 GUI에 상주하는 애플리케이션 GUI일 것이다. 이러한 인스턴스들에서, 관심 있는 애플리케이션(41)의 GUI는 데스크탑 GUI의 부분을 형성한다. 이는 도 4에서 볼 수 있는데, 여기서, 웹 브라우저(411)의 창(415)은 데스크탑 GUI(400)의 부분만을 형성한다.
다음 단계들(520 내지 550)은 아래 섹션들에서 상세히 논의된다. 특히, 단계(520)는 "텍스트-기반 애플리케이션 표현"이라는 제목의 섹션에서 논의된다. 단계(530)는 "필터링 및 필터 커스터마이징" 하에서 논의된다. 단계들(540 및 550)은 "수정된 사용자 인터페이스"라는 이름의 섹션에서 논의된다.
텍스트-기반 애플리케이션 표현
단계(520)에서, 프로세서(30)는 애플리케이션(41)의 텍스트-기반 표현을 결정하거나, 또는 원격 서버(40)로부터 애플리케이션(41)의 텍스트-기반 표현을 수신한다. 애플리케이션(41)의 텍스트-기반 표현은 글자(letter)들, 숫자(digit)들, 구두점, 및 기타 특수 문자들을 포함한 영숫자 문자들로 이루어진 표현이다. 글자들은 임의의 쓰기 시스템(예를 들어, 라틴어, 키릴 문자, 한글, 아랍어, 그리스어 등)으로부터의 것일 수 있다. 숫자들은 임의의 숫자 시스템(numeral system)(예를 들어, 아라비아 숫자들, 중국 숫자들, 일본 숫자들, 로마 숫자들)으로부터의 것일 수 있다. 구두점 및 기타 특수 문자들은, 예를 들어, [ ] ! " # $ % & ' ( ) * + , . / : ; < = > ? @ \ ^ _ ` | { } ~ -를 포함할 수 있다.
애플리케이션(41)의 텍스트-기반 표현의 목적은 애플리케이션(41)의 UI에서 민감한 데이터를 식별하고 후속하여 제거하는 데 유용한 애플리케이션(41)의 UI에 대한 추가 정보를 제공하는 것이다. 예를 들어, 애플리케이션(41)의 텍스트-기반 표현은 애플리케이션(41)의 UI에 있는 특정 필드가 개인에 대한 "name" 필드임을 나타낼 수 있는 반면(예를 들어, <name="BETTY DIXON">), UI 자체가 개인의 실제 이름만을 나타낼 수 있고(예를 들어, "BETTY DIXON"), 이 이름은 쉽게 추출될 수 있는 형태가 아닐 수 있다(예를 들어, 텍스트가 아닌 픽셀 데이터). 구체적으로는 "name"을 참조하고 이름 텍스트를 제공함으로써, 애플리케이션(41)의 텍스트-기반 표현은 애플리케이션(41)의 UI를 단독으로 사용하는 것보다 민감한 데이터가 더 쉽게 식별될 수 있도록 하는 추가 컨텍스트 정보를 제공한다.
애플리케이션(41)의 텍스트-기반 표현은 다양한 형태들을 취할 수 있다. 일부 인스턴스들에서, 애플리케이션(41)의 텍스트-기반 표현은 UI 및/또는 애플리케이션(41)으로부터 추출된 텍스트를 포함한다. 예를 들어, 도 4의 GUI 이미지(400)로부터 텍스트를 추출하면 다음 텍스트를 산출할 것이다:
창(415)의 텍스트 외에는 도 4에서 회색 상자들로 나타난다.
텍스트는 광학 문자 인식(Optical Character Recognition)(OCR)을 사용하여 추출된다. RFB 프로토콜을 사용할 때, 텍스트는 원격 서버(40)로부터 전송된 애플리케이션(41)의 GUI 이미지에 OCR을 사용하여 프로세서(30)에 의해 추출된다. RDP를 사용할 때, 텍스트는 원격 서버(40)로부터 전송된 애플리케이션(41)의 GUI 이미지를 렌더링하기 위한 데이터에서 자연어들 및 자연수들을 식별함으로써 프로세서(30)에 의해 추출된다. 대안적으로, RDP를 사용할 때, 텍스트는 애플리케이션(41)의 렌더링된 GUI 이미지에 OCR을 사용하여 프로세서(30)에 의해 추출된다.
일부 인스턴스들에서, 애플리케이션(41)의 텍스트-기반 표현은 애플리케이션(41)의 프로그램적 표현을 포함한다. 프로그램적 표현은 애플리케이션(41)의 기본 프로그램에 기초하는 표현이다. 예를 들어, 애플리케이션(41)의 프로그램적 표현은 애플리케이션(41)의 문서 객체 모델(document object model)(DOM) 또는 애플리케이션(41)의 UI의 DOM일 수 있다. DOM은 HTML- 및 XML-기반 애플리케이션들을 위한 애플리케이션 프로그래밍 인터페이스이다. DOM은 애플리케이션(41)의 논리적 구조를 정의한다. 특히, 태그들(예를 들어, 위의 <name="BETTY DIXON"> 예에서의 "name")은 요소 노드들이 되어 DOM의 구조를 형성하는 반면, 텍스트(예를 들어, 동일한 예에서의 "BETTY DIXON")는 텍스트 노드들이 된다. DOM은 JSON 또는 XML 등과 같은 텍스트의 형태이다. DOM에 대한 추가 정보는 Hors, A. 등의 2004년, "Document Object Model (DOM) Level 3 Core Specification", W3C Recommendation에서 찾을 수 있다.
RFB 프로토콜을 사용할 때, 애플리케이션(41)의 프로그래밍 가능한 표현을 수신하기 위해, 프로세서(30)는 프로그래밍 가능한 표현을 요청하기 위해 원격 서버(40)에 메시지를 전송한다. 대안적으로, 원격 서버(40)는 원격 액세스 프로토콜이 사용 중일 때마다 애플리케이션(41)의 프로그래밍 가능한 표현을 전송하도록 프로그래밍된다. 추가 대안으로서, 프로그래밍 가능한 표현은 애플리케이션(41)의 UI를 사용하여 프로세서(30)에 의해 결정될 수 있다. 프로그래밍 가능한 표현이 DOM인 경우, 프로세서(30)는 심층 학습 모델(deep learning model)을 사용하여 GUI 이미지로부터 DOM을 결정한다. 이에 적합한 심층 학습 모델의 한 예는 "pix2code"이다. RDP를 사용할 때, 애플리케이션(41)의 프로그래밍 가능한 표현은 원격 서버(40)로부터 전송된 GUI 이미지를 렌더링하기 위한 데이터에 기초하여 프로세서(30)에 의해 결정된다.
본 기술분야의 통상의 기술자는 본 명세서에서 언급된 것들 이외의 애플리케이션(41)의 텍스트-기반 표현의 형태들도 본 발명과 함께 사용하기에 적합하다는 것을 이해할 것이다.
필터링
및 필터
커스터마이징
도 5의 단계(530)는 하나 이상의 미리 선택된 필터를 사용하여 애플리케이션(41)의 UI 및/또는 애플리케이션(41)의 텍스트-기반 표현에서 민감한 데이터를 식별하는 것이다. 단계(530)의 목적은 민감한 데이터를 포함하는 단계(510)에서 수신된 애플리케이션(41)의 UI의 특정 부분들을 결정하여 이러한 부분들이 단계(540)에서 수정될 수 있게 하는 것이다. 위에서 언급된 바와 같이, 민감한 데이터는 텍스트 또는 이미지들의 형태를 취한다. 따라서, 애플리케이션(41)에 사용되는 미리 선택된 필터들은 민감한 데이터가 텍스트-기반인지, 이미지-기반인지 또는 둘 다인지에 따라 달라진다.
민감한 데이터가 텍스트의 형태를 취할 때, 미리 선택된 필터는 규칙을 포함한다. 애플리케이션(41)의 텍스트-기반 표현은 애플리케이션(41)의 UI의 하나 이상의 부분이 규칙을 만족하고 따라서 민감한 데이터를 포함하는지 여부를 결정하기 위해 파싱될 것이다. 예를 들어, 개인 데이터와 관련된 애플리케이션(41)의 경우, 규칙은 국가 이름들(예를 들어, "영국", "미국", "일본", "한국" 등)의 존재를 결정할 수 있는데, 왜냐하면 이러한 국가 이름들은 개인의 출생 국가 또는 거주 국가일 가능성이 높고, 따라서, 민감한 데이터이기 때문이다. 국가 이름들의 리스트는 데이터베이스 등에 저장될 수 있다.
DOM들은 특히 규칙들과의 결합이 좋다. 이는 DOM들의 요소 노드들이 통상적으로 대응하는 텍스트 노드의 정보의 유형을 식별하기 때문이다. 예를 들어, 위에서 언급된 <name="BETTY DIXON"> 예에서, 요소 노드 "name"은 텍스트 노드 "BETTY DIXON"이 민감한 데이터인 이름임을 식별한다. 이 인스턴스에서, 규칙은, 요소 노드가 "name"인 경우, 대응하는 텍스트 노드가 민감한 데이터라는 것이다. 이러한 방식으로, 요소 노드들을 사용하여 민감한 데이터가 쉽게 식별될 수 있다.
일부 인스턴스들에서, 규칙은 정규 표현식(regex) 매칭 규칙일 수 있다. 종종 패턴이라고 하는 정규 표현식은 문자열(string)들의 세트를 간결한 방식으로 지정하는 데 사용되는 표현식이다. 이 간결함은 연산들을 사용하여 달성되는데, 예를 들어, "?"는 하나의 발생 또는 전혀 발생하지 않음을 나타내고(예를 들어, colou?r은 "color" 및 "colour" 모두와 매칭됨), "{min,max}"는 매칭들의 최소 및 최대 수를 나타내고, "[ ]"는 괄호들 내에 포함되는 단일 문자와 매칭되고,"^"는 문자열의 시작 포지션과 매칭되고, "$"는 문자열의 끝 포지션과 매칭되고, 기타 등등 마찬가지이다. 예를 들어, 영국 우편 번호들은 "지역(area)-지구 섹터(district sector)-유닛(unit)" 포맷으로 되어 있으며, 이 경우, 지역은 하나 또는 2개의 글자; 지구는 한 자리 숫자, 두 자리 숫자, 또는 한 자리 숫자 다음의 문자이고, 섹터는 한 자리 숫자이고, 유닛은 2개의 글자이다. 예를 들어, "WA2 0XP", "E7 0AQ" 및 "WC1B 5HA"는 모두 유효한 영국 우편 번호들이다. 글자들과 숫자들의 각각의 가능한 조합을 검색하는 것은 번거로울 것이므로, 대신 다음 정규 표현식이 사용된다. 영국 우편 번호들에 대한 기본 정규 표현식은 다음과 같다:
여기서, 지역은 [A-Z]{1,2}이고, 지구는 [0-9][A-Z0-9]?이고, 섹터는 [0-9]이고, 유닛은 [A-Z]{2}이다. 이 예로부터 알 수 있는 바와 같이, 애플리케이션(41)의 텍스트-기반 표현에서 이러한 정규 표현식에 대한 매칭을 검색하는 것은 글자들과 숫자들의 각각의 가능한 조합을 검색하는 것보다 훨씬 더 효율적이다. 또한, 정규 표현식들은, 민감한 데이터의 포맷이 알려진 경우가 종종 있기 때문에, 민감한 데이터에 적합한 경향을 갖는다.
일부 인스턴스들에서, 미리 선택된 필터는 텍스트를 식별하도록 구성되는 머신 학습 모델을 포함한다. 이 목적에 적합한 예시적인 머신 학습 모델은 자연어 처리(natural language processing)(NLP)가 있다. NLP 모델들은 NEP(Named Entity Recognition)를 사용하여 민감한 데이터를 식별하며, NEP는 구조화되지 않은 텍스트에서 명명된 엔티티 언급들의 위치를 찾아 개인 이름들, 위치들, 의료 코드들, 시간 표현들, 수량들, 금전적 가치들, 백분율들 등과 같은 미리 정의된 카테고리들로 분류하려고 한다. 예를 들어, "Betty Dixon has an appointment at East London Clinic on 15/11/2019 at 14:50"이라는 문장에서, NEP는 다음과 같이 엔티티들의 이름들을 강조 표시하는 주석이 달린 텍스트 블록을 생산한다:
이 예에서는, 개인 이름, 위치 이름, 및 2개의 시간적 표현이 검출되어 분류되었다. NLP 모델들은 훈련뿐만 아니라 실행이 쉽고 효율적이다. 따라서, 민감한 데이터가 텍스트의 형태인 경우, 민감한 데이터는 NLP 모델들을 사용하여 식별하는 것이 바람직하다.
민감한 데이터가 신분증 이미지 또는 개인의 얼굴 이미지와 같은 이미지의 형태일 때, 또는 애플리케이션(41)의 텍스트-기반 표현을 사용하지 않을 때, 미리 선택된 필터는 애플리케이션(41)의 GUI 이미지로부터 이미지를 식별하도록 구성되는 머신 학습 모델을 포함한다. 이 목적에 적합한 예시적인 머신 학습 모델들은 컴퓨터 비전 모델(computer vision model)들이다. 컴퓨터 비전 모델들은 컨텍스트 정보를 사용하여 민감한 데이터를 포함할 수 있는 GUI 요소들(이미지들, 텍스트 상자들, 버튼들, 아이콘들, 드롭다운 리스트들 등)을 검출한다. 예를 들어, "Name" 레이블 옆에 있는 텍스트 상자는 민감한 데이터로 간주된다. 이러한 GUI 요소들은 객체 검출 알고리즘들을 사용하여 검출된다. 또한, 컴퓨터 비전 모델들은 객체 검출 알고리즘들을 사용하여 얼굴 이미지들 또는 신분증 이미지들과 같은 특정 객체들을 검출할 수 있다.
하나 이상의 미리 선택된 필터를 사용하여 민감한 데이터가 식별되었으면, RFB 프로토콜을 사용할 때, GUI 이미지에서 민감한 데이터의 위치가 식별되어야 한다. 이는, 단계(540)에서, GUI가 GUI 이미지의 이러한 위치들에서만(즉, 민감한 데이터에 속하는 픽셀들에서만) 수정될 수 있도록 하기 위한 것이다. 식별된 민감한 데이터의 위치 식별은 민감한 데이터를 식별하는 데 사용되는 방법에 기초한다. 머신 학습 모델을 사용하여 GUI 이미지로부터 민감한 데이터가 식별되는 경우, 머신 학습 모델은 GUI 이미지에서 대응하는 GUI 요소들의 위치도 추출할 수 있다. 다르게는, GUI 이미지에서 GUI 요소들의 위치를 식별하는 데 하나 이상의 컴퓨터 비전 모델이 사용되며, 사용되는 하나 이상의 컴퓨터 비전 모델은 식별되고 있는 GUI 요소의 종류에 따라 달라진다. 특히, GUI 요소가 이미지(예를 들어, 신분증 이미지, 얼굴 이미지)에 대응하는 경우, 이미지 위치를 식별하기 위해 GUI 이미지에 템플릿 매칭이 사용된다. GUI 요소가 텍스트에 대응하는 경우, 텍스트 상자가 (예를 들어, OCR을 사용하여) GUI 이미지에서 검출된 후, GUI 요소에 대해 매칭된다. 민감한 데이터의 위치는 통상적으로 GUI 이미지에서 경계 상자(bounding box)들의 형태를 취하며, 경계 상자들은 개개의 경계 상자의 네 모서리에 대한 좌표들 또는 다른 픽셀 참조에 의해 각각 정의된다.
위에서 언급된 바와 같이, 하나 이상의 미리 선택된 필터가 사용된다. 2개 이상의 미리 선택된 필터(즉, 복수의 미리 선택된 필터들)가 사용될 때, 복수의 미리 선택된 필터들 각각은 상이한 민감한 데이터가 식별될 수 있도록 상이하다. 2개 이상의 미리 선택된 필터가 존재할 때에는, 2개 이상의 유형의 미리 선택된 필터가 있을 수 있다. 예를 들어, 미리 선택된 필터들은 애플리케이션(41)의 텍스트-기반 표현을 사용하는 하나의 정규 표현식 매칭 규칙, 및 애플리케이션(41)의 GUI 이미지를 사용하는 하나의 머신 학습 모델을 포함할 수 있다.
통상적으로, 애플리케이션(41)의 가능한 콘텐츠는 원격 액세스 프로토콜이 사용되기 전에 알려져 있으므로, 따라서, 애플리케이션(41)의 콘텐츠에서 예상되는 민감한 데이터를 식별하기 위해 필터들이 미리 선택된다. 다시 말해, 하나 이상의 미리 선택된 필터는 애플리케이션(41)의 콘텐츠에 따라 커스터마이징된다. 예를 들어, 원격 서버(40)가 의료 시설의 일부이기 때문에 애플리케이션(41)이 종종 의료 및 개인 정보를 포함하는 웹 브라우저인 경우, 이러한 의료 및 개인 정보를 식별하기 위해 필터들이 미리 선택된다. 반대로, 애플리케이션(41)이 웹캠 애플리케이션인 경우, 얼굴 이미지들을 식별하기 위해 필터가 미리 선택된다. 이를 위해, 본 발명의 방법은, 수신하는 단계 이전에, 애플리케이션의 민감한 데이터에 기초하여 하나 이상의 필터를 미리 선택하는 단계를 임의적으로 포함한다.
도 1의 관리 컴퓨터(70) 및 인간 관리(80)는 컴퓨터(20)와 원격 서버(40) 사이의 상호작용을 위한 정책들을 유지 및 제어하므로, 따라서, 하나 이상의 미리 선택된 필터는 관리 컴퓨터(70)를 사용하는 인간 관리자(80)에 의해 미리 선택될 수 있다. 이를 위해, 관리 컴퓨터(70)는 필터들의 데이터베이스를 포함하여, 인간 관리자(80)가 애플리케이션(41)의 콘텐츠에 대해 하나 이상의 미리 선택된 필터를 커스터마이징할 수 있게 한다. 인간 관리자(80)가 적절한 하나 이상의 필터를 선택하기 위해, 관리 컴퓨터(70)는 하나 이상의 필터를 설정하기 위한 UI를 포함한다. 예를 들어, UI는 필터들을 추가하는 데 사용될 수 있는 GUI일 수 있다. 그런 다음, 하나 이상의 미리 선택된 필터는 config 파일에 저장된다. 임의적으로, config 파일은 단계(540)에서 특정 유형들의 민감한 데이터를 수정하는 방법을 지시할 수도 있다. 예를 들어, config 파일은 "국민 보험 번호들을 찾아서 그 필드를 블러링(blur)한다(look for National Insurance Numbers and blur the field)"고 지정하는 지시들을 포함할 수 있다.
수정된 사용자 인터페이스
도 5의 단계들(540 및 550)에서, 단계(510)에서 수신된 UI는 단계(530)에서 식별된 민감한 데이터를 제거하도록 수정되어 수정된 UI를 형성한다. 이 컨텍스트에서 "제거(remove)"라는 용어는 없애버리거나(exorcise) 또는 모호하게 하는(obscure) 것을 의미할 수 있다. 이 수정된 UI는 인간 오퍼레이터(60)에 의한 수신을 위해 컴퓨터(20)의 하나 이상의 출력 주변 기기(25)에 출력된다.
더 상세하게 말하자면, 단계(540)의 경우, 민감한 데이터를 제거하도록 UI를 수정하는 데 사용되는 방법은 사용되는 원격 액세스 프로토콜에 따라 달라진다. 이는 원격 서버(40)로부터 단계(510)에서 수신된 UI의 형태가 원격 액세스 프로토콜에 의해 지시되기 때문이다. 예를 들어, 원격 액세스 프로토콜이 RFB 프로토콜일 때, 수신된 UI는 GUI 이미지의 형태이므로, 단계(540)는 GUI 이미지를 수정하는 단계를 포함한다. 다른 예에서, 원격 액세스 프로토콜이 RDP일 때, 수신된 UI는 GUI 이미지를 렌더링하기 위한 데이터의 형태이므로, 단계(540)는 GUI 이미지를 렌더링하기 위한 데이터를 수정하는 단계를 포함한다.
GUI 이미지를 수정하는 데 사용될 수 있는 몇 가지 접근법들이 있다(즉, RFB 프로토콜을 사용할 때). 하나의 접근법은 민감한 데이터가 인간 오퍼레이터(60)에 의해 더 이상 해석될 수 없도록 민감한 데이터에 속하는 픽셀들을 조작하기 위해 하나 이상의 이미지 변환을 사용하는 것이다. 예를 들어, GUI 이미지는 민감한 데이터가 식별된 GUI 이미지의 위치들에서 블러링될 수 있다. 블러링의 양은 민감한 데이터를 인간 오퍼레이터(60)가 해석할 수 없도록 하기에 충분해야 한다. GUI 이미지 블러링의 예는 도 4의 GUI 이미지(400)에 대응하는 도 6a의 GUI 이미지(600)에 도시되어 있다. 도 6a에 도시된 바와 같이, 신분증 및 개인 세부 정보들을 포함하는 개인 정보를 포함하는 도 4의 상자(416)에 대응하는 상자(616)가 민감한 데이터가 인간 오퍼레이터(60)에 의해 더 이상 해석될 수 없도록 블러링되었다.
블러링을 적용하는 것에 대한 대안적인 이미지 변환은 민감한 데이터가 식별된 GUI 이미지의 위치들에 단색(solid colour)을 적용하는 것이다. 단색이 적용된 GUI 이미지의 예가 도 6b의 GUI 이미지(600)에 도시되어 있다. 특히, 도 6b에 도시된 바와 같이, 민감한 데이터가 인간 오퍼레이터(60)에 의해 더 이상 해석될 수 없도록 단색인 백색이 상자(616)에 적용되었다. 다른 단색들도 대안적으로 사용될 수 있다. 일부 인스턴스들에서, 선택된 단색은 애플리케이션(41)의 배경색에 기초하므로, 인간 오퍼레이터(60)는 UI가 수정되었음을 인식하지 못할 수 있다. 또 다른 대안적인 이미지 변환은 이미지 해상도를 감소시키는 것이다(즉, GUI 이미지의 픽셀화(pixelisation) 증가). 본 기술분야의 통상의 기술자는 민감한 데이터가 인간 오퍼레이터(60)에 의해 더 이상 해석될 수 없음을 의미하는 임의의 이미지 변환이 본 발명의 방법에 적합하다는 것을 이해할 것이다.
GUI 이미지를 렌더링하기 위한 데이터를 수정하는 데 사용될 수 있는 몇 가지 접근법들이 있다(즉, RDP를 사용할 때). 일반적으로, 이러한 접근법들은 렌더링된 GUI 이미지가 민감한 데이터를 포함하지 않도록 대개 텍스트 또는 이미지의 형태인 민감한 데이터를 제거하도록 데이터를 편집한다. 이는 인간 오퍼레이터(60)가 민감한 데이터를 추출하기 위해 운영 체제 커맨드들(예를 들어, 강조 표시 및 복사)을 사용하여 렌더링된 GUI 이미지에 나타나는 애플리케이션(41)과 상호작용할 수 없도록 수행된다. 민감한 데이터가 텍스트의 형태일 때, 예시적인 접근법은 텍스트의 문자들을 랜덤 문자들 또는 별표(asterisk)들로 대체하는 것이다. 예를 들어, 제거될 민감한 데이터가 이름인 경우, 이름 "BETTY DIXON"은 "DLNN1 56OLP" 또는 "***** *****"와 같은 랜덤 문자들이 될 수 있다. 대안적으로는, 인간 오퍼레이터(60)가 UI가 수정되었음을 인식할 수 없도록 문자들이 공백들에 의해 대체될 수 있다. 민감한 데이터가 이미지의 형태일 때, 이미지 파일이 데이터로부터 없애질 수 있다. 이를 위해, 이미지 파일이 파일 확장자(예를 들어, .tiff, .jpg, .gif, .png 등)에 의해 데이터에서 식별된 후, 데이터로부터 제거될 것이다. 대안적으로, 이전에 언급된 이미지 변환들 중 하나 이상이 이미지의 민감한 데이터를 모호하게 하는 데 사용될 수 있다.
일반적으로, 민감한 데이터를 제거하도록 UI를 수정하는 데에는 계산 집약적이지 않은 방법들이 바람직한데, 이는 프로세서(30)가 단계(510)에서 UI를 수신하고 단계(550)에서 수정된 UI를 출력하는 사이에 걸리는 시간이 최소임을 보장하기 때문이다. 이는 원격 서버(40)의 UI가 인간 오퍼레이터(60)의 입력들에 신속하게 응답하고, 따라서, 높은 레이턴시를 갖지 않는 것을 보장한다.
수정된 UI의 형태도 사용되고 있는 원격 액세스 프로토콜에 따라 달라진다. 이는 수정된 UI가 원격 서버(40)로부터 단계(510)에서 수신된 UI와 동일한 형태를 취하기 때문이다. RFB 프로토콜의 경우, 수신된 UI는 GUI 이미지의 형태이므로, 따라서, 컴퓨터(20)로의 출력은 GUI 이미지의 형태의 수정된 UI이다. RDP의 경우, 수신된 UI는 GUI 이미지를 렌더링하기 위한 데이터의 형태이고, 따라서, 컴퓨터(20)로의 출력은 수정된 GUI 이미지를 렌더링하기 위해 수정된 데이터이다.
수정된 UI가 컴퓨터(20)의 출력 주변 기기들(25)을 통해 인간 오퍼레이터(60)에게 출력되었으면, 인간 오퍼레이터(60)는 본 발명의 방법을 사용하지 않을 때 원래의 수정되지 않은 UI와 상호작용했을 것과 동일한 방식으로 수정된 UI와 상호작용할 수 있다. 즉, 인간 오퍼레이터(60)는 입력 주변 기기들(24)을 사용하여 수정된 UI에서 애플리케이션(41)과 상호작용할 수 있다. UI에 행해진 수정들은 원격 액세스 프로토콜의 유형에 특정하기 때문에, 이는 인간 오퍼레이터(60)가 입력 주변 기기들(24)을 사용하여 수정된 UI와 상호작용함으로써 민감한 데이터에 대한 액세스를 얻을 수 없도록 보장한다. 예를 들어, RFB 프로토콜의 경우, UI는 GUI 이미지이고, 이 이미지는 변경되었기 때문에, 인간 오퍼레이터(60)는 민감한 데이터에 액세스할 수 없다. RDP의 경우, 애플리케이션(41)의 렌더링으로부터 민감한 데이터가 제거되도록 GUI 이미지를 렌더링하기 위한 데이터가 변경되며, 이는 인간 오퍼레이터(60)가 (예를 들어, 운영 체제에서 복사 커맨드를 사용하여) 민감한 데이터를 강조 표시하고 복사할 수 없음을 의미한다.
완전성을 위해, 원래의 수정되지 않은 UI는 컴퓨터(20)의 하나 이상의 출력 주변 기기(25)에 출력되지 않는다는 점에 유의하도록 한다. 이는 민감한 데이터가 인간 오퍼레이터(60)에게 노출되게 하여, 본 발명의 목적을 무효화할 것이다.
예
원격 액세스 프로토콜을 통해 수신된 민감한 데이터가 인간 오퍼레이터(60)에게 출력되는 것을 방지하는 개시된 방법은 원격 액세스 프로토콜들의 다양한 구현들에 유용하다. 예를 들어, 아웃소싱된 기술 지원의 경우, 인간 오퍼레이터(60)(즉, 기술 지원 직원)가 원격 서버(40)의 민감한 데이터를 볼 권한이 없는 경우가 종종 있다. 그럼에도 불구하고, 인간 오퍼레이터(60)는 원격 서버(40)에 기술 지원을 제공하기 위해, 그들의 컴퓨터(20) 및 원격 액세스 프로토콜을 통해, 원격 서버(40)에 연결되어야 한다. 유리하게는, 개시된 방법을 구현함으로써, 인간 오퍼레이터(60)는 민감한 데이터를 볼 수 없지만, 여전히 기술 지원을 제공할 수 있을 것이다.
개시된 방법과 함께 사용하기 위한 원격 액세스 프로토콜의 하나의 특정 구현은 로보틱 프로세스 자동화(RPA)를 포함한다. RPA는 인간 오퍼레이터가 애플리케이션의 사용자 인터페이스(예를 들어, GUI)와 했을 상호작용을 모방하는 자동화된 프로세스들을 사용한다. 이러한 방식으로, 자동화된 프로세스들은 가상 오퍼레이터로서 생각될 수 있다. 이러한 방식의 애플리케이션과의 상호작용은 API들을 갖지 않는 애플리케이션들과 같이 머신 인터페이스만 사용하여 상호작용될 수 없는 애플리케이션들에 필요하다.
RPA의 자동화된 프로세스들은 가상 머신들을 사용하여 구현되며, 각각의 가상 머신은 가상 오퍼레이터와의 상호작용을 위한 그들 자신의 가상 데스크탑을 갖는다. 통상적으로, 애플리케이션에서 동일하거나 유사한 자동화된 프로세스들을 수행하는 복수의 가상 머신들은 하나의 물리적 서버에서 병렬로 실행된다. 이는 인간 오퍼레이터들을 사용하는 것과 비교하여 물리적 하드웨어가 덜 필요하게 되는 것을 보장한다(여기서, 인간 오퍼레이터당 하나의 물리적 컴퓨터가 요구된다). RPA는 인간 오퍼레이터나 인간의 재량권이 필요 없기 때문에 애플리케이션과의 안전하고 정확한 상호작용들을 전달한다. 따라서, 인간 오퍼레이터들 대신 가상 오퍼레이터들을 사용하여 애플리케이션들과 상호작용함으로써, 데이터 브리치의 우도(likelihood)가 감소되기 때문에 데이터 보안이 향상된다. RPA에 대한 추가 정보는 미국 특허 출원 번호 제14/053319호 및 미국 특허 번호 제10,469,572호에서 찾을 수 있다.
때때로, RPA에서는, 인간 오퍼레이터(60)가 디버깅 등을 위해 가상 머신이 올바르게 동작하고 있음을 체크하는 것이 유용하다. 그러나, 가상 머신들은 이들이 연결된 디스플레이 디바이스를 갖지 않는다는 점에서 대개 헤드리스(headless)이기 때문에, 또한 가상 머신들이 인간 오퍼레이터(60)로부터 멀리 떨어져 있을 경향이 있기 때문에, 인간 오퍼레이터(60)가 가상 머신에 액세스하는 가장 좋은 방법은 원격 액세스 프로토콜에 의하는 것이다. 그러나, 이는 인간 오퍼레이터(60)가 민감한 데이터를 포함하여 가상 머신의 가상 데스크탑에서 모든 데이터를 볼 수 있기 때문에 문제가 된다. 이는 RPA의 보안을 크게 감소시킨다. 따라서, 수신된 민감한 데이터가 인간 오퍼레이터(60)에게 출력되는 것을 방지하기 위한 본 발명의 방법은 RPA에 유용하다.
도 7은 본 발명의 방법의 RPA 구현을 도시한다. 도 7에서, 원격 서버(40)는 가상 머신의 형태의 가상 원격 서버이다. 따라서, 원격 서버(40)는 애플리케이션(41)에 대한 자동 프로세스들을 수행할 수 있다. 특히, 자동화된 프로세스들은 애플리케이션(41)의 사용자 인터페이스를 사용하여 가상 머신의 가상 오퍼레이터에 의해 수행된다. 통상적으로, 인간 오퍼레이터(60)에 의한 개입은 없으며, 가상 머신이 헤드리스이고 인간 오퍼레이터(60)로부터 멀리 떨어져 있기 때문에, 인간 오퍼레이터(60)가 가상 오퍼레이터에 의해 수행되고 있는 자동화된 프로세스들을 직접 보는 것은 불가능하다.
인간 오퍼레이터(60)가 가상 머신(예를 들어, 원격 서버(40C, 40B, 40C) 중 하나)에서 가상 오퍼레이터에 의해 수행되고 있는 자동화된 프로세스들을 보기를 원할 때, 그들은 그들의 컴퓨터(20) 및 원격 액세스 프로토콜을 통해 그렇게 한다. 통상적으로, 원격 플랫폼(90)에 의해 호스팅되는 원격 서버들(40A, 40B 및 40C)에 의해 도 7에 도시된 바와 같이, 복수의 가상 머신들이 있다. 인간 오퍼레이터(60)는 RPA 애플리케이션(21)을 사용하여 컴퓨터(20)를 통해 상호작용하기를 원하는 가상 머신들을 선택할 수 있다. 원격 데스크탑 애플리케이션(41)은 (애플리케이션(41)의 사용자 인터페이스를 포함하여) 선택된 가상 머신의 가상 데스크탑의 사용자 인터페이스를 컴퓨터(20)에 전송할 수 있다. 그러나, 본 발명의 방법으로 인해, 프로세서(30)(도 7에서는 도시 생략)는 민감한 데이터가 컴퓨터(20)에서 인간 오퍼레이터(60)에게 출력되기 전에 사용자 인터페이스로부터 제거되는 것을 보장한다.
예를 들어, 도 7에 도시된 바와 같이, 인간 오퍼레이터(60)는 원격 플랫폼(90)의 원격 서버(40B)를 선택했고, 따라서, 컴퓨터(20)를 통해 원격 서버(40B)의 사용자 인터페이스를 보고 이와 상호작용할 수 있다. 특히, 인간 오퍼레이터(60)는 이 예에서는 웹 브라우저인 가상 머신에서 애플리케이션(41)과 상호작용하는 자동화된 프로세스들을 볼 것이다. 그러나, 원격 서버(40B)의 사용자 인터페이스가 민감한 데이터를 포함하기 때문에, 이 민감한 데이터는 컴퓨터(20)를 통해 인간 오퍼레이터(60)에게 출력되는 사용자 인터페이스에서 제거되었다(개개의 사용자 인터페이스들을 비교함으로써 알 수 있음). 따라서, 인간 오퍼레이터(60)의 개입 이전의 보안 레벨이 유지된다.
일반
본 발명은 소프트웨어로 구현될 때, 컴퓨터 프로그램의 형태를 취할 수 있다. 컴퓨터 프로그램은 프로세서에 의해 또는 프로세서와 관련하여 사용하기 위한 컴퓨터 실행가능 코드를 갖는 컴퓨터 판독가능 매체로서 구현될 수 있다. 컴퓨터 판독가능 매체는 프로세서에 의해 또는 프로세서와 관련하여 사용하기 위한 프로그램을 포함, 저장, 통신, 전파, 또는 전송할 수 있는 임의의 유형의(tangible) 디바이스이다. 또한, 컴퓨터 판독가능 매체는 전자, 자기, 광학, 전자기, 적외선, 또는 반도체 디바이스 또는 전파 매체일 수 있다. 컴퓨터 판독가능 매체의 예들은 반도체 메모리, 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 플래시 메모리, 하드 디스크 드라이브, 솔리드 스테이트 드라이브, 광 디스크, 및 메모리 카드들을 포함한다. 광 디스크들의 현재 예들은 CD들, DVD들, 및 Blu-Ray들을 포함한다. 메모리 카드들의 현재 예들은 USB 플래시 드라이브들, SD 카드들, microSD 카드들, MMC 카드들, xD 카드들, 및 메모리 스틱들을 포함한다.
본 발명은 하드웨어로 구현될 때, 본 명세서에서 설명된 특정 하드웨어로 제한되지 않는다. 본 기술분야의 통상의 기술자는 본 발명이 컴퓨터(20) 및 원격 서버(40)와 상이한 하드웨어에서 구현될 수 있고 여전히 설명된 방식으로 기능할 수 있다는 것을 이해할 것이다.
도면들의 흐름도들은 본 발명의 방법들의 가능한 구현들의 아키텍처, 기능, 및 동작을 예시한다. 일부 대안적인 구현들에서, 도면들에 표시된 단계들은 도면들에 표시된 순서와 다르게 발생할 수 있다. 예를 들어, 관련된 기능에 따라, 연속적으로 도시된 두 단계가 실제로 실질적으로 동시에 수행될 수 있고, 또는 블록들이 때때로 역순으로 수행될 수 있다.
위의 설명은 예로 주어지는 것에 불과하며, 본 기술분야의 통상의 기술자에 의해 다양한 수정들이 이루어질 수 있음이 이해될 것이다. 다양한 실시예들은 특정 정도의 특수성을 가지고 또는 하나 이상의 개별 실시예를 참조하여 위에서 설명되었지만, 본 기술분야의 통상의 기술자는 본 발명의 범위를 벗어나지 않고 개시된 실시예들에 대해 수많은 변경들을 할 수 있다.
실시예들
다음 리스트는 본 발명의 실시예들을 제공하고, 설명의 일부를 형성한다. 이러한 실시예들은 명시적으로 언급된 것들 이외의 임의의 호환가능한 결합으로 결합될 수 있다. 실시예들은 또한 본 명세서에서 설명된 임의의 호환가능한 특징들과 결합될 수 있다:
실시예 1. 원격 액세스 프로토콜을 통해 수신된 민감한 데이터(sensitive data)가 인간 오퍼레이터에게 출력되는 것을 방지하는 컴퓨터에 의해 구현되는 방법으로서,
원격 액세스 프로토콜을 통해 원격 서버로부터, 상기 원격 서버에서 실행되는 애플리케이션의 사용자 인터페이스를 수신하는 단계;
상기 애플리케이션의 텍스트-기반 표현을 결정하거나, 또는 상기 원격 서버로부터 수신하는 단계;
하나 이상의 미리 선택된 필터를 사용하여 상기 애플리케이션의 사용자 인터페이스 및/또는 텍스트-기반 표현에서 민감한 데이터를 식별하는 단계;
상기 식별된 민감한 데이터를 제거하도록 상기 사용자 인터페이스를 수정하는 단계;
상기 인간 오퍼레이터에 의한 수신을 위해 컴퓨터의 하나 이상의 출력 주변 기기에 상기 수정된 사용자 인터페이스를 출력하는 단계
를 포함하는, 방법.
실시예 2. 실시예 1에 있어서, 상기 원격 액세스 프로토콜은 원격 액세스 애플리케이션에 의해 제공되는, 방법.
실시예 3. 실시예 1 또는 실시예 2에 있어서, 상기 원격 액세스 프로토콜은 원격 프레임 버퍼 프로토콜인, 방법.
실시예 4. 실시예 3에 있어서, 상기 수신된 사용자 인터페이스는 상기 사용자 인터페이스의 이미지의 형태이고, 상기 수정하는 단계는 상기 사용자 인터페이스의 이미지를 수정하는 단계를 포함하고, 상기 출력하는 단계는 상기 사용자 인터페이스의 수정된 이미지를 출력하는 단계를 포함하는, 방법.
실시예 5. 실시예 3 또는 실시예 4에 있어서, 상기 원격 서버는 가상 네트워크 컴퓨팅(virtual network computing)(VNC) 서버이고, 상기 컴퓨터는 VNC 클라이언트인, 방법.
실시예 6. 실시예 1 또는 실시예 2에 있어서, 상기 원격 액세스 프로토콜은 원격 데스크탑 프로토콜인, 방법.
실시예 7. 실시예 6에 있어서, 상기 수신된 사용자 인터페이스는 상기 사용자 인터페이스의 이미지를 렌더링하기 위한 데이터의 형태이고, 상기 수정하는 단계는 상기 사용자 인터페이스의 이미지를 렌더링하기 위한 데이터를 수정하는 단계를 포함하고, 상기 출력하는 단계는 상기 수정된 사용자 인터페이스의 이미지를 렌더링하기 위해 상기 수정된 데이터를 출력하는 단계를 포함하는, 방법.
실시예 8. 실시예 1 내지 실시예 7 중 어느 한 실시예에 있어서, 상기 결정하거나, 또는 상기 원격 서버로부터 수신하는 단계 이전에, 상기 애플리케이션의 민감한 데이터에 기초하여 하나 이상의 필터를 미리 선택하는 단계를 추가로 포함하는, 방법.
실시예 9. 실시예 8에 있어서, 상기 민감한 데이터는 개인 정보를 포함하는, 방법.
실시예 10. 실시예 9에 있어서, 상기 개인 정보는 이름, 주소, 생년월일, 전화 번호, 신분증(identification document) 이미지, 얼굴 이미지 중 하나 이상을 포함하는, 방법.
실시예 11. 실시예 8 내지 실시예 10 중 어느 한 실시예에 있어서, 상기 민감한 데이터는 금융 정보를 포함하는, 방법.
실시예 12. 실시예 11에 있어서, 상기 금융 정보는 신용 카드 번호들, 은행 번호들 중 하나 이상을 포함하는, 방법.
실시예 13. 실시예 8 내지 실시예 12 중 어느 한 실시예에 있어서, 상기 민감한 데이터는 의료 정보를 포함하는, 방법.
실시예 14. 실시예 1 내지 실시예 13 중 어느 한 실시예에 있어서, 상기 사용자 인터페이스를 수신하는 단계는 상기 원격 서버의 데스크탑의 사용자 인터페이스를 수신하는 단계를 포함하고, 상기 애플리케이션의 사용자 인터페이스는 상기 데스크탑의 사용자 인터페이스의 부분을 형성하는, 방법.
실시예 15. 실시예 1 내지 실시예 14 중 어느 한 실시예에 있어서, 상기 애플리케이션의 텍스트-기반 표현은 상기 사용자 인터페이스 및/또는 상기 애플리케이션으로부터 추출된 텍스트를 포함하는, 방법.
실시예 16. 실시예 1 내지 실시예 15 중 어느 한 실시예에 있어서, 상기 애플리케이션의 텍스트-기반 표현은 상기 애플리케이션의 프로그램적 표현을 포함하는, 방법.
실시예 17. 실시예 16에 있어서, 상기 프로그램적 표현은 상기 애플리케이션의 문서 객체 모델을 포함하는, 방법.
실시예 18. 실시예 1 내지 실시예 17 중 어느 한 실시예에 있어서, 상기 미리 선택된 필터는 규칙을 포함하는, 방법.
실시예 19. 실시예 1 내지 실시예 18 중 어느 한 실시예에 있어서, 상기 미리 선택된 필터는 정규 표현식 매칭 규칙(regular expression matching rule)을 포함하는, 방법.
실시예 20. 실시예 1 내지 실시예 19 중 어느 한 실시예에 있어서, 상기 미리 선택된 필터는 머신 학습 모델을 포함하는, 방법.
실시예 21. 실시예 20에 있어서, 상기 머신 학습 모델은 텍스트를 식별하도록 구성되는, 방법.
실시예 22. 실시예 20에 있어서, 상기 머신 학습 모델은 이미지를 식별하도록 구성되는, 방법.
실시예 23. 실시예 1 내지 실시예 22 중 어느 한 실시예에 있어서, 상기 수정된 사용자 인터페이스는 상기 컴퓨터의 하나 이상의 입력 주변 기기를 통해 상기 인간 오퍼레이터와 상호작용하도록 구성되는, 방법.
실시예 24. 실시예 1 내지 실시예 23 중 어느 한 실시예에 있어서, 상기 사용자 인터페이스는 그래픽 사용자 인터페이스인, 방법.
실시예 25. 실시예 1 내지 실시예 24 중 어느 한 실시예에 있어서, 상기 수정되지 않은 사용자 인터페이스는 상기 컴퓨터의 하나 이상의 출력 주변 기기에 출력되지 않는, 방법.
실시예 26. 실시예 1 내지 실시예 25 중 어느 한 실시예에 있어서, 상기 애플리케이션은 웹 브라우저인, 방법.
실시예 27. 명령어들을 포함하는 컴퓨터 프로그램으로서, 상기 명령어들은, 상기 프로그램이 프로세서에 의해 실행될 때, 상기 프로세서로 하여금, 실시예 1 내지 실시예 26 중 어느 한 실시예의 방법을 수행하게 하는, 컴퓨터 프로그램.
실시예 28. 명령어들을 포함하는 컴퓨터 판독가능 매체로서, 상기 명령어들은, 프로세서에 의해 실행될 때, 상기 프로세서로 하여금, 실시예 1 내지 실시예 26 중 어느 한 실시예의 방법을 수행하게 하는, 컴퓨터 판독가능 매체.
실시예 29. 실시예 1 내지 실시예 26 중 어느 한 실시예의 방법을 수행하도록 구성되는 프로세서.
실시예 30. 컴퓨팅 시스템으로서,
실시예 1 내지 실시예 26 중 어느 한 실시예의 방법을 수행하도록 구성되는 프로세서;
상기 프로세서에 통신가능하게 커플링되는 원격 서버; 및
상기 프로세서 및 상기 원격 서버에 통신가능하게 커플링되는 컴퓨터
를 포함하고,
상기 컴퓨터는 상기 수정된 사용자 인터페이스를 출력하도록 구성되는 하나 이상의 출력 주변 기기 및 인간 사용자에 의한 수신을 위한 하나 이상의 입력 주변 기기를 가지며, 상기 수정된 사용자 인터페이스는 상기 하나 이상의 입력 주변 기기를 통해 상기 인간 오퍼레이터와 상호작용하도록 구성되는, 컴퓨팅 시스템.
실시예 31. 실시예 30에 있어서, 상기 컴퓨팅 시스템은 가상 네트워크 컴퓨팅 시스템이고, 상기 원격 서버는 VNC 서버이고, 상기 컴퓨터는 VNC 클라이언트인, 컴퓨팅 시스템.
실시예 32. 실시예 30 또는 실시예 31에 있어서, 상기 입력 주변 기기들은 키보드 및/또는 마우스를 포함하는, 컴퓨팅 시스템.
실시예 33. 실시예 30 내지 실시예 32 중 어느 한 실시예에 있어서, 상기 출력 주변 기기들은 디스플레이 디바이스를 포함하는, 컴퓨팅 시스템.
Claims (15)
- 원격 액세스 프로토콜을 통해 수신된 민감한 데이터(sensitive data)가 인간 오퍼레이터에게 출력되는 것을 방지하는 컴퓨터에 의해 구현되는 방법으로서,
원격 액세스 프로토콜을 통해 원격 서버로부터, 상기 원격 서버에서 실행되는 애플리케이션의 사용자 인터페이스를 수신하는 단계;
상기 애플리케이션의 텍스트-기반 표현을 결정하거나, 또는 상기 원격 서버로부터 수신하는 단계;
하나 이상의 미리 선택된 필터를 사용하여 상기 애플리케이션의 사용자 인터페이스 및/또는 텍스트-기반 표현에서 민감한 데이터를 식별하는 단계;
상기 식별된 민감한 데이터를 제거하도록 상기 사용자 인터페이스를 수정하는 단계;
상기 인간 오퍼레이터에 의한 수신을 위해 컴퓨터의 하나 이상의 출력 주변 기기에 상기 수정된 사용자 인터페이스를 출력하는 단계
를 포함하는, 방법. - 제1항에 있어서, 상기 원격 액세스 프로토콜은 원격 프레임 버퍼 프로토콜인, 방법.
- 제2항에 있어서, 상기 수신된 사용자 인터페이스는 상기 사용자 인터페이스의 이미지의 형태이고, 상기 수정하는 단계는 상기 사용자 인터페이스의 이미지를 수정하는 단계를 포함하고, 상기 출력하는 단계는 상기 사용자 인터페이스의 수정된 이미지를 출력하는 단계를 포함하는, 방법.
- 제1항에 있어서, 상기 원격 액세스 프로토콜은 원격 데스크탑 프로토콜인, 방법.
- 제4항에 있어서, 상기 수신된 사용자 인터페이스는 상기 사용자 인터페이스의 이미지를 렌더링하기 위한 데이터의 형태이고, 상기 수정하는 단계는 상기 사용자 인터페이스의 이미지를 렌더링하기 위한 데이터를 수정하는 단계를 포함하고, 상기 출력하는 단계는 상기 수정된 사용자 인터페이스의 이미지를 렌더링하기 위해 상기 수정된 데이터를 출력하는 단계를 포함하는, 방법.
- 제1항 내지 제5항 중 어느 한 항에 있어서, 상기 결정하거나, 또는 상기 원격 서버로부터 수신하는 단계 이전에, 상기 애플리케이션의 민감한 데이터에 기초하여 하나 이상의 필터를 미리 선택하는 단계를 추가로 포함하는, 방법.
- 제1항 내지 제6항 중 어느 한 항에 있어서, 상기 사용자 인터페이스를 수신하는 단계는 상기 원격 서버의 데스크탑의 사용자 인터페이스를 수신하는 단계를 포함하고, 상기 애플리케이션의 사용자 인터페이스는 상기 데스크탑의 사용자 인터페이스의 부분을 형성하는, 방법.
- 제1항 내지 제7항 중 어느 한 항에 있어서, 상기 애플리케이션의 텍스트-기반 표현은 상기 사용자 인터페이스 및/또는 상기 애플리케이션으로부터 추출된 텍스트를 포함하는, 방법.
- 제1항 내지 제8항 중 어느 한 항에 있어서, 상기 애플리케이션의 텍스트-기반 표현은 상기 애플리케이션의 프로그램적 표현을 포함하는, 방법.
- 제9항에 있어서, 상기 프로그램적 표현은 상기 애플리케이션의 문서 객체 모델을 포함하는, 방법.
- 제1항 내지 제10항 중 어느 한 항에 있어서, 상기 미리 선택된 필터는 규칙을 포함하는, 방법.
- 제1항 내지 제11항 중 어느 한 항에 있어서, 상기 미리 선택된 필터는 머신 학습 모델을 포함하는, 방법.
- 제1항 내지 제12항 중 어느 한 항에 있어서, 상기 수정된 사용자 인터페이스는 상기 컴퓨터의 하나 이상의 입력 주변 기기를 통해 상기 인간 오퍼레이터와 상호작용하도록 구성되는, 방법.
- 명령어들을 포함하는 컴퓨터 프로그램으로서, 상기 명령어들은, 상기 프로그램이 프로세서에 의해 실행될 때, 상기 프로세서로 하여금, 제1항 내지 제13항 중 어느 한 항의 방법을 수행하게 하는, 컴퓨터 프로그램.
- 컴퓨팅 시스템으로서,
제1항 내지 제13항 중 어느 한 항의 방법을 수행하도록 구성되는 프로세서;
상기 프로세서에 통신가능하게 커플링되는 원격 서버; 및
상기 프로세서 및 상기 원격 서버에 통신가능하게 커플링되는 컴퓨터
를 포함하고,
상기 컴퓨터는 상기 수정된 사용자 인터페이스를 출력하도록 구성되는 하나 이상의 출력 주변 기기 및 인간 사용자에 의한 수신을 위한 하나 이상의 입력 주변 기기를 가지며, 상기 수정된 사용자 인터페이스는 상기 하나 이상의 입력 주변 기기를 통해 상기 인간 오퍼레이터와 상호작용하도록 구성되는, 컴퓨팅 시스템.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB2000363.8A GB2590967A (en) | 2020-01-10 | 2020-01-10 | Method of remote access |
GB2000363.8 | 2020-01-10 | ||
PCT/GB2021/050047 WO2021140338A1 (en) | 2020-01-10 | 2021-01-08 | Method of remote access |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20220125282A true KR20220125282A (ko) | 2022-09-14 |
Family
ID=69626265
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020227026619A KR20220125282A (ko) | 2020-01-10 | 2021-01-08 | 원격 액세스 방법 |
Country Status (10)
Country | Link |
---|---|
US (2) | US11983552B2 (ko) |
EP (1) | EP4088211A1 (ko) |
JP (1) | JP2023522290A (ko) |
KR (1) | KR20220125282A (ko) |
CN (1) | CN115087980A (ko) |
AU (1) | AU2021205669A1 (ko) |
BR (1) | BR112022013625A2 (ko) |
CA (1) | CA3164261A1 (ko) |
GB (1) | GB2590967A (ko) |
WO (1) | WO2021140338A1 (ko) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102527572B1 (ko) | 2022-12-20 | 2023-05-02 | 주식회사 유니온플레이스 | 인공 지능을 이용한 코드 생성 방법 |
KR102539283B1 (ko) | 2022-12-19 | 2023-06-02 | 주식회사 유니온플레이스 | 인공 지능을 이용한 코드 생성 방법 |
KR102539282B1 (ko) | 2022-12-16 | 2023-06-02 | 주식회사 유니온플레이스 | 인공 지능을 이용한 코드 생성 방법 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2590967A (en) | 2020-01-10 | 2021-07-14 | Blue Prism Ltd | Method of remote access |
US11200073B1 (en) * | 2020-11-20 | 2021-12-14 | UiPath, Inc. | Automatic anchor determination and target graphical element identification in user interface automation |
CN113254929B (zh) * | 2021-05-21 | 2023-11-07 | 昆山翦统智能科技有限公司 | 一种企业远程智能服务的免疫计算与决策方法及系统 |
US12111955B2 (en) * | 2021-10-14 | 2024-10-08 | Avaya Management L.P. | Automatic obscuration of a portion of a screen-share view |
JP7386560B2 (ja) * | 2022-04-01 | 2023-11-27 | 株式会社エクストーン | ソフトウェアの試験方法 |
Family Cites Families (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6256637B1 (en) | 1998-05-05 | 2001-07-03 | Gemstone Systems, Inc. | Transactional virtual machine architecture |
FR2820222B1 (fr) | 2001-01-26 | 2003-03-21 | Schneider Automation | Procede de programmation d'une application d'automatisme |
US7188111B2 (en) | 2002-07-12 | 2007-03-06 | Datadirect Technologies Corp. | System and method for connectivity to structured query language database |
JP2005184165A (ja) | 2003-12-17 | 2005-07-07 | Hitachi Ltd | トラフィック制御装置およびそれを用いたサービスシステム |
JP2005196291A (ja) | 2003-12-26 | 2005-07-21 | Fujitsu Ltd | ユーザインタフェースアプリケーション開発プログラム、および開発装置 |
US7971091B1 (en) | 2006-05-02 | 2011-06-28 | Emc Corporation | Network configuration backup and restore operations using continuous data protection |
US20100027896A1 (en) | 2006-06-28 | 2010-02-04 | Amir Geva | Automated application interaction using a virtual operator |
US7673113B2 (en) | 2006-12-29 | 2010-03-02 | Intel Corporation | Method for dynamic load balancing on partitioned systems |
US8346891B2 (en) | 2007-10-19 | 2013-01-01 | Kubisys Inc. | Managing entities in virtual computing environments |
US8261248B2 (en) | 2007-11-05 | 2012-09-04 | Sap Ag | System and method of executing a dynamic program in a structured environment |
JP2009151467A (ja) | 2007-12-19 | 2009-07-09 | Canon Inc | 配信印刷システム |
US20090319990A1 (en) * | 2008-06-22 | 2009-12-24 | 7163177 Canada Limited | Object oriented genetic programming |
US20100023517A1 (en) | 2008-07-28 | 2010-01-28 | V Raja | Method and system for extracting data-points from a data file |
US8369968B2 (en) | 2009-04-03 | 2013-02-05 | Dell Products, Lp | System and method for handling database failover |
JP5671297B2 (ja) | 2009-11-16 | 2015-02-18 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | Imsネットワークを介してマルチメディア・サービスを最適化するための方法及びシステム |
US20110289343A1 (en) | 2010-05-21 | 2011-11-24 | Schaefer Diane E | Managing the Cluster |
US8560887B2 (en) | 2010-12-09 | 2013-10-15 | International Business Machines Corporation | Adding scalability and fault tolerance to generic finite state machine frameworks for use in automated incident management of cloud computing infrastructures |
US20120151479A1 (en) | 2010-12-10 | 2012-06-14 | Salesforce.Com, Inc. | Horizontal splitting of tasks within a homogenous pool of virtual machines |
US9110709B2 (en) | 2010-12-14 | 2015-08-18 | International Business Machines Corporation | Preserving changes to a configuration of a running virtual machine |
JP2012155219A (ja) | 2011-01-27 | 2012-08-16 | Nec Casio Mobile Communications Ltd | 演奏データ提供システム、方法、サーバ、携帯端末およびコンピュータプログラム |
US9600350B2 (en) * | 2011-06-16 | 2017-03-21 | Vmware, Inc. | Delivery of a user interface using hypertext transfer protocol |
JP5729209B2 (ja) | 2011-08-12 | 2015-06-03 | 富士通株式会社 | 情報処理装置、情報処理システムのテスト方法およびプログラム |
US8826068B2 (en) | 2011-11-23 | 2014-09-02 | Microsoft Corporation | Automated testing of applications in cloud computer systems |
US9916514B2 (en) | 2012-06-11 | 2018-03-13 | Amazon Technologies, Inc. | Text recognition driven functionality |
US9274742B2 (en) | 2012-10-25 | 2016-03-01 | PixiOnCloud, Inc. | Visual-symbolic control of remote devices having display-based user interfaces |
WO2014127535A1 (en) | 2013-02-22 | 2014-08-28 | Google Inc. | Systems and methods for automated content generation |
WO2014133522A2 (en) | 2013-02-28 | 2014-09-04 | Empire Technology Development, Llc | Local message queue processing for co-located workers |
WO2014145417A1 (en) | 2013-03-15 | 2014-09-18 | MARKUS, Isidoro | Method and apparatus for secure interaction with a computer service provider |
GB2517408A (en) | 2013-07-05 | 2015-02-25 | Blue Prism Ltd | System for automating processes |
US9361469B2 (en) * | 2014-03-26 | 2016-06-07 | Amazon Technologies, Inc. | Electronic communication with secure screen sharing of sensitive information |
US9563445B2 (en) * | 2014-05-05 | 2017-02-07 | Citrix Systems, Inc. | Remote assistance for managed mobile devices |
WO2016100545A1 (en) | 2014-12-16 | 2016-06-23 | Noderprime, Inc. | Computer servers for datacenter managment |
US9514333B1 (en) | 2014-12-16 | 2016-12-06 | Amazon Technologies, Inc. | Secure remote application shares |
GB2535744A (en) * | 2015-02-25 | 2016-08-31 | Elekta ltd | Computer system integration |
GB201702450D0 (en) | 2017-02-15 | 2017-03-29 | Blue Prism Ltd | System for optimising distribution of processing an automated process |
US10977155B1 (en) * | 2018-05-31 | 2021-04-13 | The Ultimate Software Group, Inc. | System for providing autonomous discovery of field or navigation constraints |
US11615208B2 (en) * | 2018-07-06 | 2023-03-28 | Capital One Services, Llc | Systems and methods for synthetic data generation |
GB2590967A (en) | 2020-01-10 | 2021-07-14 | Blue Prism Ltd | Method of remote access |
-
2020
- 2020-01-10 GB GB2000363.8A patent/GB2590967A/en active Pending
-
2021
- 2021-01-08 WO PCT/GB2021/050047 patent/WO2021140338A1/en active Application Filing
- 2021-01-08 JP JP2022542219A patent/JP2023522290A/ja active Pending
- 2021-01-08 BR BR112022013625A patent/BR112022013625A2/pt unknown
- 2021-01-08 US US17/144,640 patent/US11983552B2/en active Active
- 2021-01-08 KR KR1020227026619A patent/KR20220125282A/ko unknown
- 2021-01-08 EP EP21700343.3A patent/EP4088211A1/en active Pending
- 2021-01-08 CN CN202180013465.9A patent/CN115087980A/zh active Pending
- 2021-01-08 CA CA3164261A patent/CA3164261A1/en active Pending
- 2021-01-08 AU AU2021205669A patent/AU2021205669A1/en active Pending
-
2024
- 2024-04-09 US US18/630,839 patent/US20240256309A1/en active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102539282B1 (ko) | 2022-12-16 | 2023-06-02 | 주식회사 유니온플레이스 | 인공 지능을 이용한 코드 생성 방법 |
KR102539283B1 (ko) | 2022-12-19 | 2023-06-02 | 주식회사 유니온플레이스 | 인공 지능을 이용한 코드 생성 방법 |
KR102527572B1 (ko) | 2022-12-20 | 2023-05-02 | 주식회사 유니온플레이스 | 인공 지능을 이용한 코드 생성 방법 |
Also Published As
Publication number | Publication date |
---|---|
EP4088211A1 (en) | 2022-11-16 |
US20210216336A1 (en) | 2021-07-15 |
BR112022013625A2 (pt) | 2022-09-13 |
US11983552B2 (en) | 2024-05-14 |
GB2590967A (en) | 2021-07-14 |
CN115087980A (zh) | 2022-09-20 |
CA3164261A1 (en) | 2021-07-15 |
JP2023522290A (ja) | 2023-05-30 |
US20240256309A1 (en) | 2024-08-01 |
AU2021205669A1 (en) | 2022-09-01 |
WO2021140338A1 (en) | 2021-07-15 |
GB202000363D0 (en) | 2020-02-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11983552B2 (en) | Method of remote access | |
US10742844B2 (en) | Hiding sensitive data | |
US9886159B2 (en) | Selecting portions of computer-accessible documents for post-selection processing | |
US9483858B2 (en) | Text resizing within an embedded image | |
US20170277663A1 (en) | Digital content conversion and publishing system | |
JP2019028983A (ja) | 会話型企業文書編集、方法、プログラム、及び装置 | |
JP2020504402A (ja) | オブジェクト固有の画像ドメインにおけるデータ損失防止のための構造化テキスト及びパターン照合 | |
JP2017068841A (ja) | 画像および関連するテキストを処理するためのコンピュータ実装される方法、コンピュータ・プログラム製品、ならびにコンピュータ・システム | |
JP7328797B2 (ja) | 端末装置、文字認識システム及び文字認識方法 | |
Godbole et al. | Detection of medicine information with optical character recognition using android | |
CN117093960A (zh) | 涉密文档加密属性的显示方法、装置、介质及设备 | |
US20240005640A1 (en) | Synthetic document generation pipeline for training artificial intelligence models | |
JP2020154778A (ja) | 文書処理装置及びプログラム | |
US20230040974A1 (en) | Data obfuscation | |
US20190179877A1 (en) | Information processing system, control method, and storage medium | |
WO2015160988A1 (en) | Smart optical input/output (i/o) extension for context-dependent workflows | |
EP4027674A1 (en) | Method and apparatus for document processing | |
EP3262501B1 (en) | Print format version with machine-readable link | |
AU2024201353A1 (en) | Brand engine for extracting and presenting brand data with user interfaces | |
JP6149397B2 (ja) | 入力補助情報出力装置、入力補助情報出力方法、プログラムならびに記憶媒体 | |
JP2012252629A (ja) | 入力支援用プログラム、入力支援方法、および、入力支援装置 |