ES3035600T3 - Method of remote access - Google Patents
Method of remote accessInfo
- Publication number
- ES3035600T3 ES3035600T3 ES21700343T ES21700343T ES3035600T3 ES 3035600 T3 ES3035600 T3 ES 3035600T3 ES 21700343 T ES21700343 T ES 21700343T ES 21700343 T ES21700343 T ES 21700343T ES 3035600 T3 ES3035600 T3 ES 3035600T3
- Authority
- ES
- Spain
- Prior art keywords
- user interface
- application
- computer
- sensitive data
- remote
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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
- 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)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Human Computer Interaction (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- Computer Hardware Design (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Computation (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- User Interface Of Digital Computer (AREA)
- Communication Control (AREA)
- Optical Communication System (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
Abstract
La presente invención se refiere a un método para evitar que los datos sensibles recibidos mediante un protocolo de acceso remoto se envíen a un operador humano. El método comprende recibir, desde un servidor remoto mediante un protocolo de acceso remoto, la interfaz de usuario de una aplicación que se ejecuta en dicho servidor; recibir, desde el servidor remoto, una representación textual de la aplicación; identificar los datos sensibles en la interfaz de usuario o en la representación textual de la aplicación mediante uno o más filtros preseleccionados; modificar la interfaz de usuario para eliminar los datos sensibles identificados; y enviar la interfaz de usuario modificada a uno o más periféricos de salida de un ordenador para su recepción por el operador humano. (Traducción automática con Google Translate, sin valor legal)
Description
DESCRIPCIÓN
Método de acceso remoto
Campo técnico
La presente invención se refiere a un método para evitar que datos sensibles recibidos a través de un protocolo de acceso remoto se envíen a un operador humano.
Antecedentes
Los protocolos de acceso remoto permiten a un operador humano interactuar remotamente con una aplicación que se está ejecutando en un servidor remoto. La interacción remota se logra mediante tales protocolos mediante el envío de la interfaz de usuario (UI) de la aplicación desde el servidor remoto al ordenador del operador humano. Usando la UI recibida, el operador humano puede interpretar las acciones que puede realizar la aplicación y los controles que están disponibles en la aplicación. A continuación, el operador humano puede decidir qué acciones debe realizar la aplicación e introducir las señales de control adecuadas en su ordenador. Estas señales de control se envían posteriormente desde el ordenador del operador humano al servidor remoto, donde se realizan las acciones deseadas.
Se conocen varios protocolos de acceso remoto. Un ejemplo es el protocolo de memoria intermedia de imagen remota (RFB, remote framebuffer), que envía imágenes renderizadas de la interfaz gráfica de usuario (GUI) desde el servidor remoto al ordenador del operador humano. Un segundo ejemplo de protocolo de acceso remoto es el protocolo de escritorio remoto (RDP) de Microsoft. El RDP es similar al protocolo RFB, salvo que, en lugar de enviar la imagen de la GUI renderizada desde el servidor remoto al ordenador del operador humano, se envían los datos para renderizar la imagen de la GUI.
Un problema de estos protocolos de acceso remoto es que la UI recibida del servidor remoto al ordenador del operador humano puede incluir datos sensibles (es decir, información personal, información financiera, información médica). Los datos sensibles recibidos en el ordenador del operador humano son problemáticos si se envían a un operador humano porque puede que no esté autorizado a ver los datos sensibles. Además, existe el riesgo de que se produzca una violación de datos a través del operador humano. Las violaciones de datos sensibles pueden dar como resultado la destrucción accidental o ilegal, pérdida, alteración, divulgación no autorizada o acceso a datos sensibles, que llevan a importantes consecuencias humanas. Además, el acceso por parte de un operador humano a los datos sensibles puede ser ilegal en virtud de la normativa de varias jurisdicciones. Por lo tanto, es deseable un método para evitar que se envíen datos sensibles al operador humano.
El documento US 2015/0278534 A1 describe una aplicación de atención al cliente que permite compartir la pantalla del dispositivo informático del usuario con un agente de atención al cliente remoto, permitiendo de este modo al agente de atención al cliente ver el contenido mostrado en el dispositivo del usuario. La información sensible que se muestra en el dispositivo informático de un usuario se ofusca desde el dispositivo informático del agente de atención al cliente remoto, y se muestra una notificación de dicha ofuscación en el dispositivo informático del usuario. Puede determinarse que la información es sensible sobre la base de una etiqueta indicadora de sensibilidad o de una heurística.
Sumario
La presente invención está definida por las reivindicaciones independientes, con características opcionales adicionales definidas por las reivindicaciones dependientes.
En un primer aspecto de la invención, se proporciona un método implementado por ordenador para evitar que los datos sensibles recibidos a través de un protocolo de acceso remoto se envíen a un operador humano, el método comprendiendo: recibir, desde un servidor remoto a través de un protocolo de acceso remoto, una interfaz de usuario de una aplicación que se está ejecutando en el servidor remoto; determinar, o recibir desde el servidor remoto, una representación basada en texto de la aplicación; identificar datos sensibles en la interfaz de usuario y/o la representación basada en texto de la aplicación usando uno o más filtros preseleccionados; modificar la interfaz de usuario para eliminar los datos sensibles identificados; enviar la interfaz de usuario modificada a uno o más periféricos de salida de un ordenador para su recepción por el operador humano. De esta manera, se evita que se envíen datos sensibles a un operador humano usando la UI de la aplicación y/o de una representación basada en texto de la aplicación.
En una realización, el protocolo de acceso remoto es un protocolo de memoria intermedia de imagen remoto. Por ejemplo, el servidor remoto puede ser un servidor de computación en red virtual (VNC), y el ordenador puede ser un cliente VNC. En esta realización, la interfaz de usuario recibida está en la forma de una imagen de la interfaz de usuario, el paso de modificar comprendiendo modificar la imagen de la interfaz de usuario, y el paso de enviar comprendiendo enviar la imagen modificada de la interfaz de usuario. Por tanto, el método puede usarse con el protocolo de memoria intermedia de imagen remoto.
En otra realización, el protocolo de acceso remoto es un protocolo de escritorio remoto. En esta realización, la interfaz de usuario recibida está en la forma de datos para renderizar una imagen de la interfaz de usuario, el paso de modificar comprendiendo modificar los datos para renderizar una imagen de la interfaz de usuario, y el paso de enviar comprende enviar los datos modificados para renderizar una imagen de una interfaz de usuario modificada. Por tanto, el método puede usarse con el protocolo de escritorio remoto.
La representación basada en texto de la aplicación puede comprender texto extraído de la interfaz de usuario y/o de la aplicación. Adicional o alternativamente, la representación basada en texto de la aplicación puede comprender una representación programática de la aplicación. En algunas realizaciones, la representación programática comprende un modelo de objetos de documento de la aplicación. La representación basada en texto de la aplicación se usa para identificar datos sensibles adicionales que pueden no haber sido identificados usando la interfaz de usuario de la aplicación. Una ventaja particular de usar una representación de la aplicación basada en texto en particular es que puede utilizarse la información subyacente a la aplicación para identificar datos sensibles, lo que significa que los datos sensibles se identifican con más precisión.
Cuando los datos sensibles están en forma de texto, el filtro preseleccionado comprende una regla, por ejemplo una regla de correspondencia de expresiones regulares. Alternativamente, el filtro preseleccionado comprende un modelo de aprendizaje automático que está configurado para identificar texto. Ambas alternativas permiten que se identifiquen los datos sensibles en forma de texto y, por lo tanto, evitan que se envíen al operador humano.
Cuando los datos sensibles están en forma de imagen, el filtro preseleccionado comprende un modelo de aprendizaje automático configurado para identificar una imagen. Esto permite que se identifiquen los datos sensibles en forma de imagen y, por tanto, se evita que se envíen al operador humano.
El método puede comprender además, antes del paso de determinar, o recibir del servidor remoto, preseleccionar uno o más filtros sobre la base de datos sensibles en la aplicación. Los datos sensibles pueden incluir información personal como uno o más de: un nombre, una dirección, una fecha de nacimiento, un número de teléfono, una imagen de un documento de identificación, una imagen facial. Adicional o alternativamente, los datos sensibles pueden incluir información financiera como uno o más de: números de tarjeta de crédito, números de banco. Adicional o alternativamente, los datos sensibles pueden incluir información médica. Esto permite que se personalicen los uno o más filtros sobre la base del tipo de datos sensibles que se espera que contenga la aplicación.
La interfaz de usuario modificada puede configurarse para su interacción con el operador humano a través de uno o más periféricos de entrada del ordenador. De este modo, el operador humano puede introducir controles en el servidor remoto a través del protocolo de acceso remoto. La interfaz de usuario no modificada no se envía a los uno o más periféricos de salida del ordenador para garantizar que los datos sensibles no puedan ser filtrados por el operador humano.
Típicamente para el protocolo de memoria intermedia de imagen remoto y el protocolo de escritorio remoto, la interfaz de usuario es una interfaz gráfica de usuario. Además, el paso de recibir una interfaz de usuario comprende recibir una interfaz de usuario de un escritorio del servidor remoto, la interfaz de usuario de la aplicación formando una parte de la interfaz de usuario del escritorio. La aplicación puede ser un navegador web, aunque para su uso con el método es adecuado cualquier tipo de aplicación de escritorio.
En un segundo aspecto de la invención, se proporciona un programa informático que comprende instrucciones que, cuando el programa es ejecutado por un procesador, hacen que el procesador lleve a cabo el método del primer aspecto de la invención.
En un tercer aspecto de la invención, se proporciona un medio legible por ordenador que comprende instrucciones que, cuando son ejecutadas por un procesador, hacen que el procesador lleve a cabo el método del primer aspecto de la invención.
En un cuarto aspecto de la invención, se proporciona un procesador configurado para realizar el método del primer aspecto de la invención.
En un quinto aspecto de la invención, se proporciona un sistema informático que comprende: un procesador configurado para realizar el método del primer aspecto de la invención; un servidor remoto acoplado comunicativamente al procesador; y un ordenador acoplado comunicativamente al procesador y al servidor remoto, el ordenador teniendo uno o más periféricos de salida configurados para enviar la interfaz de usuario modificada y uno o más periféricos de entrada para su recepción por un usuario humano, en donde la interfaz de usuario modificada está configurada para su interacción con el operador humano a través de uno o más periféricos de entrada.
En algunas realizaciones, el sistema informático es un sistema informático de red virtual, el servidor remoto es un servidor VNC y el ordenador es un cliente VNC. Los periféricos de entrada pueden incluir un teclado y/o un ratón. Los periféricos de salida pueden incluir una pantalla.
Breve descripción de los dibujos
A continuación se describen las realizaciones de la invención, a modo de ejemplo, con referencia a los siguientes dibujos, en los que:
La Fig. 1 representa un sistema informático para implementar la invención.
La Fig. 2 representa una vista detallada del sistema informático de la Fig. 1.
La Fig. 3Ay la Fig. 38 representan ejemplos de protocolos de acceso remoto para su uso con la invención. La Fig. 4 representan una interfaz de usuario de ejemplo que tiene datos sensibles para su uso con la invención. La Fig. 5 representa un diagrama de flujo de acuerdo con el método de la invención.
La Fig. 6Ay la Fig. 68 representan cada una un ejemplo de interfaces de usuario modificadas basadas en la interfaz de usuario de la Fig. 4.
La Fig. 7 representa una implementación de ejemplo del método de la invención en Automatización Robótica de Procesos (RPA).
Descripción detallada
La Fig. 1 muestra un sistema informático 10 en el que, de acuerdo con una realización, se implementa el método de la invención. El sistema informático 10 comprende uno o más ordenadores 20 que son físicamente accesibles por uno o más operadores humanos 60. El sistema informático 10 también comprende uno o más servidores remotos 40. El servidor remoto 40 es "remoto" en el sentido de que está situado en una localización diferente a la del ordenador 20, de tal manera que el operador humano 60 no puede acceder físicamente al servidor remoto 40. En algunos casos, esto puede deberse a que el servidor remoto 40 es un servidor remoto virtual. El ordenador 20 y el servidor remoto 40 están acoplados comunicativamente entre sí a través de por lo menos una red de comunicaciones 50. Este acoplamiento comunicativo permite que se comuniquen datos entre el ordenador 20 y el servidor remoto 40. La por lo menos una red de comunicaciones 50 puede incluir Internet (es decir, IP, 1 Pv4, 1 Pv6), una red celular (es decir, 3G, 4G LTE, 5G), una red de área local, una red en la nube, una red inalámbrica o cualquier otra red de comunicaciones conocida. En el sistema informático 10 también está presente un ordenador administrador 70 al que puede acceder un administrador humano 80 del sistema informático 10. El ordenador administrador 70 está acoplado comunicativamente con el ordenador 20 y con el servidor remoto 40, de tal manera que el administrador humano 80 puede mantener y controlar las políticas para la interacción entre el ordenador 20 y el servidor remoto 40. El sistema informático 10 descrito es sólo ejemplar y son posibles modificaciones en el mismo, incluyendo la eliminación o adición de componentes del sistema.
La Fig. 2 muestra aspectos seleccionados del sistema informático 10 mostrado en la Fig. 1. Específicamente, la Fig. 2 muestra el ordenador 20 en comunicación con el servidor remoto 40 a través de la red de comunicaciones 50. El ordenador 20 comprende una o más aplicaciones de software 21, procesador 22, memoria 23, uno o más periféricos de entrada 24 y uno o más periféricos de salida 25. El procesador 22 incluye una unidad central de procesamiento (CPU) y/o una unidad de procesamiento gráfico (GPU). La memoria 23 comprende un dispositivo de almacenamiento de datos y/o una memoria semiconductora. El dispositivo de almacenamiento de datos adopta la forma de una unidad de disco duro, una unidad de estado sólido, una unidad externa, un disco óptico extraíble y/o una tarjeta de memoria. La memoria semiconductora adopta la forma de memoria volátil para almacenar datos temporalmente, por ejemplo, memoria de acceso aleatorio (RAM), y memoria no volátil para almacenar datos a largo plazo, por ejemplo, memoria de sólo lectura (ROM), memoria Flash.
Una o más aplicaciones 21 se almacenan como programas de ordenador en la memoria 23 y se ejecutan en el ordenador 20 a través del procesador 22. Estas aplicaciones, que facilitan la interacción directa con el operador humano 60 a través de los periféricos de entrada 24 y los periféricos de salida 25, incluyen el sistema operativo (OS) y las aplicaciones de escritorio. Ejemplos de sistemas operativos conocidos incluyen Microsoft Windows, MacOS y Linux. Ejemplos de aplicaciones de escritorio conocidas para el ordenador 20' incluyen navegadores web como Google Chrome, aplicaciones de documentación como Microsoft Word, y aplicaciones de acceso remoto, que se analizan más adelante en la presente. Sin embargo, debe apreciarse que la invención no se limita a las aplicaciones específicas mencionadas aquí.
Como se ha mencionado, el ordenador 20 comprende uno o más periféricos de entrada 24. El propósito del periférico de entrada 24 es permitir que el operador humano 60 envíe instrucciones al ordenador 20. Ejemplos de periféricos de entrada 24 incluyen un ratón, un teclado, una pantalla táctil, un escáner de imágenes, un lector de códigos de barras, un controlador de juegos, un micrófono, una cámara digital, una webcam, y similares. El periférico de entrada 24 puede estar integrado en el ordenador 20, como el que se encuentra en ordenadores portátiles, o puede ser externo al ordenador 20, como en los ordenadores de sobremesa. El operador humano 60 envía instrucciones al ordenador 20 usando el periférico de entrada 24 interactuando con la aplicación 21. En particular, el operador humano 60 usa el periférico de entrada 24 para interactuar con una interfaz de usuario (UI) de la aplicación 21. En el caso de una interfaz gráfica de usuario (GUI), esta interacción se consigue, por ejemplo, pulsando un botón, haciendo clic, arrastrando, desplazándose, etc. en la GUI a través del periférico de entrada 24.
El ordenador 20 también comprende uno o más periféricos de salida 25. El propósito del periférico de salida 25 es permitir que el operador humano 60 reciba información del ordenador 20. Ejemplos de periféricos de salida 25 incluyen un dispositivo de visualización (por ejemplo, un monitor de ordenador o un proyector), una impresora, auriculares y altavoces de ordenador. De manera similar al periférico de entrada 24, el periférico de salida 25 puede estar integrado con el ordenador 20 o puede ser externo al ordenador 20. El operador humano 60 recibe información del ordenador 20 usando el periférico de salida 25 interpretando la UI de la aplicación 21 usando sus sentidos, como la vista o el oído.
En el ordenador 20 hay otros componentes (no mostrados en la Fig. 2). Por ejemplo, el ordenador 20 comprende uno o más de: una tarjeta adaptadora de red para permitir la comunicación a través de la red de comunicaciones 50, una fuente de alimentación, una placa base, una tarjeta de sonido y similares.
La Fig. 2 también muestra el servidor remoto 40. El servidor remoto 40 comprende una o más aplicaciones 41, un procesador 42, una memoria 43 y una interfaz de máquina 44. Las una o más aplicaciones 41 se almacenan como programas informáticos en la memoria 43 y se ejecutan en el servidor remoto 40 a través del procesador 42. Estas aplicaciones no tienen interacción directa con el operador humano 60 a través de los periféricos de entrada 24 y los periféricos de salida 25 (aunque existe interacción indirecta a través de un protocolo de acceso remoto, como se describe a continuación). En su lugar, las una o más aplicaciones 41 son aplicaciones que interactúan directamente con el ordenador 20 a través de la red de comunicaciones 50 y la interfaz de máquina 44. Ejemplos de aplicaciones para el servidor remoto 40 incluyen las aplicaciones mencionadas anteriormente para el ordenador 20, y aplicaciones de automatización de procesos robóticos (RPA) como las descritas en la Solicitud de Patente de los Estados Unidos N° 14/053319 y la Patente de los Estados Unidos N° 10,469,572.
El servidor remoto 40 puede adoptar la forma de un servidor único o de múltiples servidores, o alternativamente puede adoptar la forma de un servidor distribuido. Los servidores distribuidos funcionan distribuyendo el procesamiento y los datos entre los componentes constituyentes.
El servidor remoto 40 puede ser un servidor remoto físico o un servidor remoto virtual. Cuando el servidor remoto 40 es un servidor remoto virtual, las aplicaciones 41, el procesador 42, la memoria 43 y la interfaz de máquina 44 son todos entidades virtuales.
La Fig. 1 también muestra la plataforma remota opcional 90 comprendida en el sistema informático 10. La plataforma remota 90 es un tipo de servidor remoto físico que aloja uno o más servidores remotos virtuales 40. De la misma manera que el servidor remoto 40, la plataforma remota 90 es "remota" en el sentido de que está situada en una localización diferente a la del ordenador 20 de tal manera que el operador humano 60 no puede acceder físicamente a la plataforma remota 90. El ordenador 20 y la plataforma remota 90 están acoplados comunicativamente entre sí a través de por lo menos una red de comunicaciones 50. Este acoplamiento comunicativo permite comunicar los datos entre el ordenador 20 y la plataforma remota 90 (y cualquiera de los uno o más servidores remotos virtuales 40 alojados en la misma). Además de los uno o más servidores remotos virtuales 40, la plataforma remota 90 comprende una o más aplicaciones, un procesador, una memoria y una interfaz de máquina (no mostrada). Ejemplos de aplicaciones para la plataforma remota 90 incluyen las aplicaciones mencionadas anteriormente para el ordenador 20 y el servidor remoto 40, así como aplicaciones de máquina virtual para proporcionar los uno o más servidores remotos virtuales 40.
Protocolos de acceso remoto
Aunque, como se ha mencionado anteriormente, el operador humano 60 no puede interactuar directamente con el servidor remoto 40, el operador humano 60 puede interactuar indirectamente con el servidor remoto 40 a través del ordenador 20 usando un protocolo de acceso remoto. En particular, el protocolo de acceso remoto permite al operador humano 60 interactuar de manera remota con la aplicación 41 en el servidor remoto 40. Esto se logra recibiendo en el ordenador 20, de una forma u otra, la UI de la aplicación 41, de tal manera que el operador humano 60 pueda interpretar los controles que están disponibles en la aplicación 41. A continuación, el operador humano 60 introduce señales de control en el ordenador 20 a través del periférico de entrada 24, y estas señales de control se envían desde el ordenador 20 al servidor remoto 40 a través de la red de comunicaciones 50. En consecuencia, el servidor remoto 40 ejecuta las señales de control a través del procesador 42 para provocar una interacción con la aplicación 41 en el servidor remoto 40.
Hay varios protocolos de acceso remoto conocidos que funcionan de la manera descrita anteriormente y que pueden usarse con la invención. Un primer ejemplo de un protocolo de acceso remoto para su uso con la invención es el protocolo de memoria intermedia de imagen remota (RFB), que se representa en la Fig. 3A. El protocolo RFB trabaja en el nivel de memoria intermedia, que corresponde a las imágenes GUI renderizadas, en este caso las imágenes GUI renderizadas del servidor remoto 40. En consecuencia, el protocolo RFB puede aplicarse a cualquier aplicación 41 que se ejecute en el servidor remoto 40, incluyendo el sistema operativo (es decir, Microsoft Windows, MacOS, etc.) y otras aplicaciones como navegadores web.
El funcionamiento básico del protocolo RFB es el siguiente. Como se muestra en la Fig. 3A, el ordenador 20 recibe imágenes de la memoria intermedia de imagen del servidor remoto 40, es decir, imágenes GUI renderizadas del servidor remoto 40. Por "imagen" se entiende que los datos son datos de píxeles. El formato y la codificación de estos datos de píxeles varían a medida que son negociados por el ordenador 20 y el servidor 40 para adaptarse al escenario particular en el que se está implementando el protocolo RFB. Estas imágenes GUI se envían secuencialmente y forman un 'vídeo' de la GUI del servidor remoto 40 para su interpretación por el operador humano 60 a través del ordenador 20. Esto significa que una vez que el operador humano 60 envía señales de control al servidor remoto 40 a través del periférico de entrada 24 y el ordenador 20, dicho operador humano 60 puede ver la consecuencia de las señales de control en las imágenes GUI posteriores recibidas del servidor remoto 40. Por ejemplo, si el periférico de entrada 24 es un ratón, y la señal de control enviada por el operador humano 60 es para mover el ratón, entonces el operador humano 60 vería en las imágenes GUI recibidas posteriormente que el cursor del ratón se ha movido en el escritorio del servidor remoto 40.
En la Fig. 4 se muestra un ejemplo particular de una imagen de la GUI 400 enviada por el protocolo RFB. En particular, la Fig. 4 representa la imagen de la GUI 400 del escritorio del servidor 40, que muestra una pluralidad de aplicaciones 41, incluyendo un sistema operativo 410 (Microsoft Windows), un navegador web 411 (Google Chrome), una aplicación RPA412 (Blue Prism), y una aplicación de acceso remoto 413 (Real VNC). El navegador web 411 tiene una ventana abierta 415, donde se visualiza un Historial Clínico Electrónico que incluye datos sensibles 416. La imagen 400 de la GUI se envía típicamente en su totalidad al ordenador 20 para que sea visualizada por el operador humano 60. Obsérvese que los recuadros grises de la ventana 415 de la Fig. 4 se usan para simplificar la figura, y en la imagen de la GUI real se rellenarían con texto.
En el protocolo RFB, el ordenador 20 se denomina "cliente" y el servidor remoto 40 se denomina "servidor". Así, en el ordenador 20, la aplicación 21 comprende una aplicación de acceso remoto de cliente, mientras que en el servidor 40, la aplicación 41 comprende una aplicación de acceso remoto de servidor. Típicamente, el protocolo RFB se implementa usando aplicaciones de computación en red virtual (VNC), como Real VNC. Por tanto, el servidor remoto 40 puede ser un servidor VNC, mientras que el ordenador 20 puede ser un cliente VNC. Una explicación adicional del protocolo RFB puede encontrarse en Richardson, T. y Levine, J., 2011, "The remote memoria intermedia protocol", IETF.
Un segundo ejemplo de un protocolo de acceso remoto para su uso con la invención es el protocolo de escritorio remoto (RDP) de Microsoft, que se muestra en la Fig. 3B. El RDP es similar al protocolo RFB excepto que, en lugar de enviar la imagen de la GUI renderizada desde el servidor remoto 40 al ordenador 20, se envían los datos para renderizar la imagen de la GUI. En otras palabras, en el RDP, los datos del servidor remoto 40 no son datos de píxeles. Una vez que el ordenador 20 ha recibido los datos para renderizar la imagen de la GUI, la GUI es renderizada por el ordenador 20 y mostrada en el periférico de salida 25 para su recepción por el operador humano 60. Adicionalmente, el RDP permite al operador humano 60 interactuar con la aplicación 41 que aparece en la imagen de la GUI renderizada usando comandos del sistema operativo, incluyendo resaltar, copiar, etc. En este ejemplo, la aplicación 21 en el ordenador 20 incluye Conexión a Escritorio Remoto para implementar el RDP.
Aunque en los dos ejemplos descritos aquí los datos recibidos por el ordenador 20 se refieren a la GUI del servidor remoto 40, la invención no se limita a las GUI y puede aplicarse a otros tipos de UI. Además, con la invención funcionan otros protocolos de acceso remoto, incluyendo el protocolo de internet de línea serie (SLIP), protocolo punto a punto (PPP), punto a punto sobre Ethernet (PPPoE), servicios de acceso remoto (RAS), protocolo de tunelización punto a punto (PPTP), y otros.
Datos sensibles
Como se muestra en el ejemplo de la Fig. 4, la UI 400 recibida del servidor remoto 40 en el ordenador 20 a través del protocolo de acceso remoto puede incluir datos sensibles 416. Los datos sensibles, como se mencionan en la presente, son un tipo especial de datos que requieren mayores consideraciones de seguridad debido a su contenido cognitivo. Las violaciones de los datos sensibles pueden dar como resultado la destrucción accidental o ilegal, pérdida, alteración, divulgación no autorizada o acceso a los datos sensibles, lo que puede tener consecuencias humanas significativas. Por ejemplo, la eliminación permanente de registros médicos de una persona puede tener consecuencias significativas y duraderas para la salud de dicha persona. Por esta razón, en varias jurisdicciones están regulados el almacenamiento y el tratamiento de datos sensibles, por ejemplo, a través del Reglamento General de Protección de Datos (GDPR) en la Unión Europea, y la Ley de Protección de Datos de 2018 en el Reino Unido.
Los datos sensibles adoptan la forma de texto o imágenes. Los datos sensibles pueden incluir información personal, es decir, información relativa a una persona física identificada o identificable. Por ejemplo, los datos sensibles pueden incluir un nombre, una dirección, una fecha de nacimiento, un número de teléfono, una imagen de un documento de identificación, una imagen facial. Otros tipos de datos sensibles incluyen los datos de localización de una persona, un identificador en línea o uno o más factores específicos de la identidad física, fisiológica, genética, mental, económica, cultural o social de la persona. Adicional o alternativamente, los datos sensibles pueden incluir información financiera, como números de tarjetas de crédito y números bancarios. Como una alternativa adicional, los datos sensibles pueden incluir información médica.
Volviendo a la Fig. 4, se representa una U I400 de ejemplo del servidor remoto 40 que muestra datos sensibles 416. En particular, la Fig. 4 muestra la ventana 415 del navegador web 411 que tiene abierta una página web de Registro de Salud Electrónico que contiene datos sensibles 416. En este ejemplo, los datos sensibles 416 adoptan la forma de información personal, incluyendo un documento de identificación (mostrado a la izquierda del recuadro 416) que incluye una imagen facial, y detalles personales como nombre, dirección, fecha de nacimiento y número de teléfono (mostrados a la derecha del recuadro 416).
Los datos sensibles recibidos en el ordenador 20 a través del protocolo de acceso remoto son problemáticos si se envían al operador humano 60, ya que el operador humano puede no estar autorizado a ver dichos datos sensibles. Además, existe el riesgo de que se produzca una violación de datos a través del operador humano 60. Por otra parte, el acceso del operador humano 60 a estos datos sensibles es potencialmente ilegal en virtud de la normativa de varias jurisdicciones. Por lo tanto, es deseable un método para evitar que se envíen datos sensibles al operador humano 60.
Visión general del método
La Fig. 5 muestra el método empleado por la invención para evitar que se envíen datos sensibles recibidos a través de un protocolo de acceso remoto al operador humano 60. El método de la Fig. 5 implica el ordenador 20, el servidor remoto 40 y el procesador 30. El procesador 30 puede ser uno del procesador 22 y el procesador 42, o un procesador diferente al procesador 22 y al procesador 42. Para reducir posibles riesgos de seguridad es preferible que el procesador 30 sea el procesador 42 del servidor remoto 40 (es decir, el método se realiza del lado del servidor). Además, el hecho de que el procesador 30 sea el procesador 42 reduce la carga computacional del ordenador 20.
Como se muestra en la Fig. 5, el método comprende los siguientes pasos que se realizan en el procesador 30:
- recibir, del servidor remoto 40 a través del protocolo de acceso remoto, una UI de la aplicación 41 que se ejecuta en el servidor remoto 40 (paso 510);
- determinar, o recibir, del servidor remoto 40, una representación basada en texto de la aplicación 41 (paso 520); - identificar datos sensibles en la UI y/o la representación basada en texto de la aplicación 41 usando uno o más filtros preseleccionados (paso 530);
- modificar la UI para eliminar los datos sensibles identificados (paso 540);
- enviar la UI modificada a uno o más periféricos de salida 25 del ordenador 20 para su recepción por el operador humano 60 (paso 550).
Por tanto, el método de la invención se centra en el procesador 30, que se sitúa entre el servidor remoto 40 y el operador humano 60, y controla lo que el operador humano 60 recibe de la UI de la aplicación 41. En particular, el procesador 30 identifica datos sensibles usando la UI de la aplicación 41 y/o una representación basada en texto de la aplicación 41 y, en consecuencia, modifica la UI para eliminar los datos sensibles con el fin de enviar al operador humano 60 en el ordenador 20 una UI que no incluya datos sensibles. De esta manera, el operador humano 60 no tiene acceso a los datos sensibles del servidor remoto 40 a través del protocolo de acceso remoto, reduciendo el riesgo de violación de datos.
Con más detalle, en el paso 510, el procesador 30 recibe del servidor remoto 40 una UI de la aplicación 41 que se ejecuta en el servidor remoto 40. Este paso es típico para los protocolos de acceso remoto, como se ha descrito anteriormente, excepto que la UI es recibida en el procesador 30 en lugar de necesariamente en el ordenador 20. La forma de la UI de la aplicación 41 depende de la aplicación y del protocolo de acceso remoto que se esté usando. La aplicación 41 puede ser cualquiera de las aplicaciones mencionadas en la presente, incluyendo un sistema operativo u otras aplicaciones como un navegador web, una aplicación de máquina virtual, una aplicación de RPA, etc.
Cuando se usa un protocolo RFB o RDP, el paso 510 implica recibir una GUI de escritorio del servidor remoto 40 en el procesador 30. Sin embargo, en algunos casos, la aplicación 41 de interés para la interacción con el operador humano 60 será una GUI de aplicación que reside en la GUI de escritorio, como el navegador web 411 en el ejemplo de la Fig. 4. En estos casos, la GUI de la aplicación 41 de interés forma una parte de la GUI de escritorio. Esto puede verse en la Fig. 4, donde la ventana 415 del navegador web 411 forma sólo una parte de la GUI del escritorio 400.
Los pasos siguientes, 520 a 550, se analizan con detalle en las secciones siguientes. En particular, el paso 520 se analiza en la sección titulada "representación de la aplicación basada en texto". El paso 530 se analiza en la sección titulada "filtrado y personalización de filtros". Los pasos 540 y 550 se analizan en la sección denominada "interfaz de usuario modificada".
Representación de aplicaciones basada en texto
En el paso 520, el procesador 30 determina una representación basada en texto de la aplicación 41, o recibe una representación basada en texto de la aplicación 41 del servidor remoto 40. Una representación basada en texto de la aplicación 41 es una representación compuesta de caracteres alfanuméricos, incluyendo letras, dígitos, puntuación y otros caracteres especiales. Las letras pueden pertenecer a cualquier sistema de escritura (por ejemplo, latín, cirílico, hangeul, árabe, griego, etc.). Los dígitos pueden pertenecer a cualquier sistema numérico (por ejemplo, números árabes, números chinos, números japoneses, números romanos). Puntuación y otros caracteres especiales incluyen, por ejemplo, [ ] ! " # $ % & ' ( ) * ,. / : ; < = > ? @ \ a _ ' | { } ~ -.
El propósito de la representación basada en texto de la aplicación 41 es proporcionar información adicional sobre la UI de la aplicación 41, que es útil para identificar y posteriormente eliminar datos sensibles en la UI de la aplicación 41. Por ejemplo, la representación basada en texto de la aplicación 41 puede revelar que un determinado campo de la UI de la aplicación 41 es un campo de "nombre" de una persona (por ejemplo, <nombre="BETTY DIXON">), mientras que la propia UI puede revelar únicamente el nombre real de la persona (por ejemplo, "BETTY DIXON"), y este nombre puede no estar en una forma que pueda extraerse fácilmente (por ejemplo, datos de píxeles en lugar de texto). Al referirse específicamente al "nombre" y al proporcionar el texto del nombre, la representación basada en texto de la aplicación 41 proporciona información contextual adicional que hace que los datos sensibles sean más fáciles de identificar que usando únicamente la interfaz de usuario de la aplicación 41.
La representación basada en texto de la aplicación 41 puede adoptar una variedad de formas. En algunos casos, la representación basada en texto de la aplicación 41 comprende texto extraído de la UI y/o de la aplicación 41. Por ejemplo, extrayendo texto de la imagen de la GUI 400 de la Fig. 4, se obtendría el siguiente texto:
"Registro Médico Electrónico
Mi Paciente Diario
Resumen de paciente
Problemas Medicamentos Dispositivos Implantados
Seleccionar Encuentro...
signos Vitales de hoy
Recordatorios de salud pendientes
Vacunas pendientes
Tareas
11:45 13/11/2019"
Además del texto de la ventana 415, que aparece en la Fig. 4 como recuadros grises.
El texto se extrae usando reconocimiento óptico de caracteres (OCR). Cuando se usa el protocolo RFB, el texto es extraído por el procesador 30 usando OCR en la imagen de la GUI de la aplicación 41 enviada desde el servidor remoto 40. Cuando se usa RDP, el texto es extraído por el procesador 30 identificando palabras naturales y números en los datos para renderizar la imagen de la GUI de la aplicación 41 enviada desde el servidor remoto 40. Alternativamente, cuando se usa RDP, el texto es extraído por el procesador 30 usando OCR en la imagen de la GUI renderizada de la aplicación 41.
En algunos casos, la representación basada en texto de la aplicación 41 comprende una representación programática de la aplicación 41. Una representación programática es una representación que se basa en el programa subyacente de la aplicación 41. Por ejemplo, la representación programática de la aplicación 41 puede ser un modelo de objetos de documento (DOM) de la aplicación 41 o un DOM de la UI de la aplicación 41. El DOM es una interfaz de programación de aplicaciones para para aplicaciones basadas en HTML y XML. El DOM define la estructura lógica de la aplicación 41. En particular, las etiquetas (como "nombre" en el ejemplo anterior <nombre="BETTY DIXON">) se convierten en nodos de elemento y forman la estructura del DOM, mientras que el texto (como "BETTY DIXON" en el mismo ejemplo) se convierte en nodos de texto. El DOM tiene forma de texto, como JSON o XML, o similar. Información adicional sobre el DOM puede encontrarse en Hors, A. et al, 2004, "Document Object Model (DOM) Level 3 Core Specification", W3C Recommendation.
Cuando se usa el protocolo RFB, para recibir la representación programable de la aplicación 41, el procesador 30 envía un mensaje al servidor remoto 40 para solicitar la representación programable. Alternativamente, el servidor remoto 40 está programado para enviar la representación programable de la aplicación 41 siempre que esté en uso el protocolo de acceso remoto. Como alternativa adicional, la representación programable puede ser determinada por el procesador 30 usando la UI de la aplicación 41. En el caso de que la representación programable sea un DOM, el procesador 30 determina el DOM a partir de la imagen de la<g>U<i>usando un modelo de aprendizaje profundo. Un ejemplo de modelo de aprendizaje profundo adecuado para ello es el "pix2code". Cuando se usa RDP, el procesador 30 determina la representación programare de la aplicación 41 basándose en los datos para renderizar la imagen de la GUI enviada desde el servidor remoto 40.
Los expertos en la técnica apreciarán que para su uso con la invención también son adecuadas otras formas de representación basada en texto de la aplicación 41, además de las mencionadas aquí.
Filtrado y personalización de filtros
El paso 530 de la Fig. 5 es para identificar datos sensibles en la UI de la aplicación 41 y/o la representación basada en texto de la aplicación 41 usando uno o más filtros preseleccionados. El propósito del paso 530 es determinar partes particulares de la interfaz de usuario de la aplicación 41 recibida en el paso 510 que contengan datos sensibles, de tal manera que estas partes puedan modificarse en el paso 540. Como se ha mencionado anteriormente, los datos sensibles adoptan la forma de texto o imágenes. Por lo tanto, los filtros preseleccionados usados para la aplicación 41 dependen por tanto de si los datos sensibles se basan en texto, en imágenes o en ambos.
Cuando los datos sensibles adoptan la forma de texto, el filtro preseleccionado comprende una regla. La representación basada en texto de la aplicación 41 se analizará para determinar si una o más partes de la UI de la aplicación 41 cumplen la regla y, por tanto, contienen datos sensibles. Por ejemplo, para una aplicación 41 relacionada con datos personales, la regla podría determinar la presencia de nombres de países (por ejemplo, "Reino Unido", "Estados Unidos de América", "Japón", "Corea del Sur", etc.), ya que es probable que estos nombres de países sean el país de nacimiento o el país de residencia de la persona y, por tanto, sean datos sensibles. La lista de nombres de países puede estar almacenada en una base de datos o similar.
Los DOM son particularmente buenos en combinación con reglas. Esto se debe a que los nodos de elemento de los DOM identifican típicamente el tipo de información del nodo de texto correspondiente. Por ejemplo, en el ejemplo < nombre="BETTY DIXON"> mencionado anteriormente, el nodo de elemento "nombre" identifica que el nodo de texto "BETTY DIXON" es un nombre, que es un dato sensible. En este caso, la regla es que si el nodo de elemento es "nombre", entonces el nodo de texto correspondiente es un dato sensible. De esta manera, usando los nodos elemento pueden identificarse fácilmente los datos sensibles.
En algunos casos, la regla puede ser una regla de coincidencia de expresión regular (regex). Una expresión regular, a menudo llamada patrón, es una expresión usada para especificar un conjunto de cadenas de manera concisa. Esta concisión se logra usando operaciones como "?", que indica una o ninguna aparición (por ejemplo, colou?r coincide tanto con "color" como con "color"), "{min, max}", que indica el número mínimo y máximo de coincidencias,"[ ]" coincide con un único carácter que esté contenido entre los corchetes, "<a>" coincide con la posición inicial de la cadena, "$" coincide con la posición final de la cadena, y otras. Por ejemplo, los códigos postales del Reino Unido tienen el formato "área-sector de distrito-unidad", para el que: área es una o dos letras; distrito es un dígito, dos dígitos o un dígito seguido de una letra; sector es un solo dígito; y unidad son dos letras. Por ejemplo, "WA20XP", "E7 0AQ" y "WC1B 5HA" son todos códigos postales válidos en el Reino Unido. Buscar cada combinación posible de letras y dígitos sería engorroso, por lo que en su lugar se usa la siguiente expresión regular. Una expresión regular básica para los códigos postales del Reino Unido es:
<a>[A-Z] {1, 2} [0 -9] [A-Z0-9] ? [0-9] [A-Z] {2} $
donde área es [A-Z] {1, 2}, el distrito es [0 9] [A-Z0-9] ?, el sector es [0 -9], y la unidad es [A-Z] {2}. Como puede apreciarse en este ejemplo, la búsqueda de una coincidencia con esta expresión regular en la representación basada en texto de la aplicación 41 es mucho más eficiente que la búsqueda de cada combinación posible de letras y dígitos. Además, las expresiones regulares tienen una tendencia a ser adecuadas para los datos sensibles, ya que a menudo se conoce el formato de los datos sensibles.
En algunos casos, el filtro preseleccionado comprende un modelo de aprendizaje automático que está configurado para identificar texto. Un ejemplo de modelo de aprendizaje automático adecuado para este propósito es el procesamiento del lenguaje natural (NLP). Los modelos de NLP identifican datos sensibles usando el Reconocimiento de Entidades Nombradas (NEP), que busca localizar y clasificar las menciones de entidades nombradas en texto no estructurado en categorías predefinidas, como nombres de personas, localizaciones, códigos médicos, expresiones de tiempo, cantidades, valores monetarios, porcentajes, etc. Por ejemplo, en la frase "Betty Dixon tiene una cita en la East London Clinic el 15/11/2019 a las 14:50", el<n>E<p>produce un bloque de texto anotado que resalta los nombres de entidades de la siguiente manera:
[Betty Dixon]<persona>tiene una cita en [East London Clinic]<localización>el [15/11/2019]<iiem po>a las [14: 50]<iiem po>
En este ejemplo, se han detectado y clasificado un nombre de persona, un nombre de lugar y dos expresiones temporales. Los modelos NLP son fáciles y eficientes de entrenar, así como de ejecutar. Por tanto, cuando los datos sensibles están en forma de texto, es preferible identificarlos usando modelos de NLP.
Cuando los datos sensibles están en forma de imagen, como la imagen de un documento de identificación o la imagen facial de una persona, o cuando no se usa la representación basada en texto de la aplicación 41, el filtro preseleccionado comprende un modelo de aprendizaje automático que está configurado para identificar una imagen a partir de la imagen de la GUI de la aplicación 41. Los ejemplos de modelos de aprendizaje automático que son adecuados para este propósito son los modelos de visión por ordenador. Los modelos de visión por ordenador detectan los elementos de la GUI (imágenes, cuadros de texto, botones, iconos, listas desplegables, etc.) que pueden contener datos sensibles usando información contextual. Por ejemplo, un cuadro de texto junto a la etiqueta "Nombre" se considera un dato sensible. Estos elementos de la GUI se detectan usando algoritmos de detección de objetos. Además, los modelos de visión por ordenador son capaces de detectar determinados objetos, como imágenes faciales o imágenes de documentos de identificación, usando algoritmos de detección de objetos.
Una vez que se han identificado los datos sensibles usando los uno o más filtros preseleccionados, debe identificarse la localización de los datos sensibles en la imagen de la GUI cuando se usa el protocolo RFB. Esto es para que en el paso 540 la GUI pueda ser modificada sólo en estas localizaciones de la imagen de la GUI (es decir, sólo en los píxeles pertenecientes a los datos sensibles). La identificación de la localización de los datos sensibles identificados se basa en el método usado para identificar los datos sensibles. Si los datos sensibles se identifican a partir de la imagen de la GUI usando un modelo de aprendizaje automático, entonces el modelo de aprendizaje automático también puede extraer la localización de los elementos de la GUI correspondientes en la imagen. En caso contrario, se usan uno o más modelos de visión por ordenador para identificar la localización de los elementos de la GUI en la imagen de la GUI, los uno o más modelos de visión por ordenador usados dependiendo de que tipo de elemento de la GUI se esté identificando. En particular, si el elemento de la GUI corresponde a una imagen (por ejemplo, una imagen de un documento de identificación, una imagen facial), entonces para identificar la localización de la imagen se usa la correspondencia de plantillas en la imagen de la GUI. Si el elemento GUI corresponde a un texto, entonces se detecta el cuadro de texto en la imagen de la GUI (por ejemplo, usando OCR) y se compara con el elemento de la GUI. La localización de los datos sensibles adopta típicamente la forma de cuadros delimitadores en la imagen de la GUI, cada uno de los cuales se define mediante las coordenadas u otra referencia de píxel a las cuatro esquinas del cuadro delimitador respectivo.
Como se ha mencionado anteriormente, se usan uno o más filtros preseleccionados. Cuando se usa más de un filtro preseleccionado (es decir, una pluralidad de filtros preseleccionados), cada uno de la pluralidad de filtros preseleccionados es diferente de tal manera que puedan identificarse diferentes datos sensibles. Cuando hay más de un filtro preseleccionado, puede haber más de un tipo de filtro preseleccionado. Por ejemplo, los filtros preseleccionados pueden incluir una regla de coincidencia de expresión regular que use la representación basada en texto de la aplicación 41, y un modelo de aprendizaje automático que use la imagen de la GUI de la aplicación 41.
Típicamente, el contenido probable de la aplicación 41 se conoce antes de que se ponga en uso el protocolo de acceso remoto, por lo que se preseleccionan los filtros para identificar los datos sensibles que se esperan en el contenido de la aplicación 41. Dicho de otro modo, los uno o más filtros preseleccionados se personalizan de acuerdo con el contenido de la aplicación 41. Por ejemplo, si la aplicación 41 es un navegador web que a menudo contiene información médica y personal porque el servidor remoto 40 forma parte de un centro médico, entonces los filtros se preseleccionan para identificar esta información médica y personal. Por el contrario, si la aplicación 41 es una aplicación de cámara web, entonces se preselecciona un filtro para identificar imágenes faciales. Para este fin, el método de la invención comprende opcionalmente, antes del paso de recepción, la preselección de uno o más filtros sobre la base de los datos sensibles de la aplicación.
El ordenador administrativo 70 y la administración humana 80 de la Fig. 1 mantienen y controlan las políticas para la interacción entre el ordenador 20 y el servidor remoto 40, por lo que los uno o más filtros preseleccionados pueden ser preseleccionados por el administrador humano 80 usando el ordenador administrativo 70. Con este fin, el ordenador administrativo 70 puede contener una base de datos de filtros, para permitir al administrador humano 80 personalizar los uno o más filtros preseleccionados para el contenido de la aplicación 41. Para que el administrador humano 80 seleccione los uno o más filtros apropiados, el ordenador administrativo 70 comprende una UI para establecer los uno o más filtros. Por ejemplo, la U<i>puede ser una GUI que puede usarse para añadir filtros. Los uno o más filtros preseleccionados se almacenan en un archivo de configuración. Opcionalmente, el archivo de configuración también puede dictar cómo modificar ciertos tipos de datos sensibles en el paso 540. Por ejemplo, el archivo de configuración puede contener directrices que especifiquen "buscar números de la Seguridad Social y difuminar el campo".
Interfaz de usuario modificada
En los pasos 540 y 550 de la Fig. 5, la UI recibida en el paso 510 es modificada para eliminar los datos sensibles identificados en el paso 530 para formar una UI modificada. El término "eliminar" en este contexto puede significar expulsar u ocultar. Esta UI modificada se envía a uno o más periféricos de salida 25 del ordenador 20 para su recepción por el operador humano 60.
Con más detalle, para el paso 540, el método usado para modificar la UI para eliminar datos sensibles depende del protocolo de acceso remoto usado. Esto se debe a que la forma de la UI recibida en el paso 510 desde el servidor remoto 40 viene dictada por el protocolo de acceso remoto. Por ejemplo, cuando el protocolo de acceso remoto es el protocolo RFB, la UI recibida tiene la forma de una imagen de la GUI, por lo que el paso 540 comprende modificar una imagen de la GUI. En otro ejemplo, cuando el protocolo de acceso remoto es RDP, la UI recibida está en forma de datos para renderizar una imagen de la GUI, de tal manera que el paso 540 comprende modificar los datos para representar una imagen de la GUI.
Hay varios enfoques que pueden usarse para modificar una imagen de la GUI (es decir, cuando se usa el protocolo RFB). Un enfoque es usar una o más transformaciones de imagen para manipular los píxeles pertenecientes a los datos sensibles de tal manera que el operador humano 60 ya no pueda interpretar los datos sensibles. Por ejemplo, la imagen de la GUI puede difuminarse en las localizaciones de la imagen de la GUI en los que se hayan identificado datos sensibles. La cantidad de difuminación debe ser suficiente para hacer que el operador humano 60 no pueda interpretar los datos sensibles. Un ejemplo de difuminación de la imagen de la GUI se muestra en la imagen de la GUI 600 de la Fig. 6A, que corresponde a la imagen de la GUI 400 de la Fig. 4. Como se muestra en la Fig. 6A, el recuadro 616, que corresponde al recuadro 416 de la Fig. 4 que contiene información personal que incluye un documento de identificación y detalles personales, se ha difuminado de tal manera que el operador humano 60 ya no puede interpretar los datos sensibles.
Una transformación de imagen alternativa a la aplicación de una difuminación consiste en aplicar un color sólido en las localizaciones de la imagen de la GUI en los que se han identificado datos sensibles. En la imagen de la GUI 600 de la Fig. 6B se muestra un ejemplo de imagen de la GUI con color sólido aplicado. En particular, como se muestra en la Fig. 6B, al recuadro 616 se ha aplicado color sólido blanco de tal manera que el operador humano 60 ya no puede interpretar los datos sensibles. Alternativamente pueden usarse otros colores sólidos. En algunos casos, el color sólido elegido se basa en el color de fondo de la aplicación 41 de tal manera que el operador humano 60 no pueda darse cuenta de que se ha modificado la UI. Una alternativa adicional de transformación de la imagen es disminuir la resolución de la imagen (es decir, aumentar la pixelización de la imagen de la GUI). Los expertos en la materia apreciarán que para el método de la invención es adecuada cualquier transformación de imagen que signifique que el operador humano 60 ya no puede interpretar los datos sensibles.
para modificar los datos para la representación de una imagen de la GUI (es decir, cuando se usa RDP) hay varios enfoques que pueden usarse. En general, estos enfoques editan los datos para eliminar los datos sensibles, que habitualmente tienen forma de texto o imagen, de tal manera que la imagen de la GUI renderizada no contenga los datos sensibles. Esto se hace para que el operador humano 60 no pueda interactuar con la aplicación 41 que aparece en la imagen de la GUI renderizada usando comandos del sistema operativo (por ejemplo, resaltar y copiar) para extraer los datos sensibles. Cuando los datos sensibles están en forma de texto, un enfoque de ejemplo es reemplazar los caracteres del texto por caracteres aleatorios o asteriscos. Por ejemplo, si los datos sensibles que deben eliminarse son un nombre, el nombre "BETTY DIXON" puede convertirse en caracteres aleatorios como "DLNN 1 56OLP" o "***** *****". Alternativamente, los caracteres pueden ser sustituidos por espacios en blanco de tal manera que el operador humano 60 no se dé cuenta de que la interfaz de usuario ha sido modificada. Cuando los datos sensibles tienen forma de imagen, entonces el archivo de imagen puede ser expulsado de los datos. Para ello, el archivo de imagen se identificaría en los datos por la extensión del archivo (por ejemplo,.tiff,.jpg,.gif,.png, etc.), y luego se eliminaría de los datos. Alternativamente, puede usarse una o más de las transformaciones de imagen mencionadas anteriormente para ocultar los datos sensibles de la imagen.
En general, para modificar la UI para eliminar datos sensibles se prefieren los métodos que no son computacionalmente intensivos, ya que esto asegura que el tiempo transcurrido entre que el procesador 30 recibe la UI en el paso 510 y envía la UI en el paso 550 sea mínimo. Esto asegura que la UI del servidor remoto 40 responda rápidamente a las entradas del operador humano 60, y por lo tanto no tiene alta latencia.
La forma de la UI modificada también depende del protocolo de acceso remoto que se esté usando. Esto es debido a que la UI modificada adopta la misma forma que la UI recibida en el paso 510 desde el servidor remoto 40. Para el protocolo RFB, la UI recibida tiene la forma de una imagen de la GUI, por lo que la salida al ordenador 20 es la UI modificada en la forma de una imagen de la GUI. Para RDP, la UI recibida tiene forma de datos para renderizar una imagen de la GUI, por lo que la salida al ordenador 20 son datos modificados para renderizar una imagen de la GUI modificada.
Una vez que se ha enviado la UI modificada al operador humano 60 a través de los periféricos de salida 25 del ordenador 20, el operador humano 60 puede interactuar con la UI modificada de la misma manera que habría interactuado con la UI original no modificada cuando no se usa el método de la invención. En otras palabras, el operador humano 60 puede interactuar con la aplicación 41 en la UI modificada usando los periféricos de entrada 24. Como las modificaciones realizadas en la UI son específicas del tipo de protocolo de acceso remoto, esto garantiza que el operador humano 60 no pueda acceder a los datos sensibles interactuando con la UI modificada usando periféricos de entrada 24. Por ejemplo, en el caso de un protocolo RFB, la UI es una imagen de la GUI, y como esta imagen ha sido alterada, el operador humano 60 no es capaz de acceder a los datos sensibles. En el caso de RDP, los datos para la renderización de una imagen de la GUI se alteran de tal manera que se eliminan los datos sensibles de la renderización de la aplicación 41, lo que significa que el operador humano 60 no puede resaltar y copiar los datos sensibles (por ejemplo, usando el comando copiar en el sistema operativo).
En aras de la exhaustividad, cabe señalar que la UI original no modificada no se envía a uno o más periféricos de salida 25 del ordenador 20. Esto haría que los datos sensibles fueran revelados al operador humano 60 y por lo tanto frustraría el propósito de la invención.
Ejemplo
El método divulgado para evitar que los datos sensibles recibidos a través de un protocolo de acceso remoto sean enviados al operador humano 60 es útil para varias implementaciones de protocolos de acceso remoto. Por ejemplo, en el caso de asistencia técnica subcontratada, a menudo el operador humano 60 (es decir, el miembro del personal de asistencia técnica) no está autorizado a ver datos sensibles en el servidor remoto 40. Sin embargo, el operador humano 60 debe conectarse al servidor remoto 40, a través de su ordenador 20 y un protocolo de acceso remoto, para proporcionar soporte técnico al servidor remoto 40. Ventajosamente, implementando el método divulgado, el operador humano 60 no vería los datos sensibles, pero seguiría siendo capaz de proporcionar soporte técnico.
Una implementación particular de protocolos de acceso remoto para su uso con el método divulgado implica la Automatización Robótica de Procesos (RPA). La RPA usa procesos automatizados que imitan la interacción que un operador humano habría tenido con la interfaz de usuario (por ejemplo, la GUI) de una aplicación. De esta manera, los procesos automatizados pueden considerarse un operador virtual. La interacción con una aplicación de esta manera es necesaria para las aplicaciones con las que no se puede interactuar usando únicamente una interfaz de máquina, como las aplicaciones que no tienen API.
Los procesos automatizados en RPA se implementan usando máquinas virtuales, cada máquina virtual teniendo su propio escritorio virtual para la interacción con un operador virtual. Típicamente, hay una pluralidad de máquinas virtuales que se están ejecutando en un servidor físico en paralelo que realizan los mismos procesos automatizados en una aplicación o unos similares. Esto garantiza que se necesite menos hardware físico en comparación con el uso de operadores humanos (donde se necesita un ordenador físico por operador humano). La RPA proporciona interacciones seguras y precisas con la aplicación porque no hay necesidad de un operador humano o de discreción humana. Por tanto, al usar operadores virtuales en lugar de operadores humanos para interactuar con las aplicaciones, se mejora la seguridad de los datos, ya que se reduce la probabilidad de que se produzca una violación de los mismos. Información adicional sobre las RPA puede encontrarse en la Solicitud de Patente de Estados Unidos N° 14/053319 y en la Patente de Estados Unidos N° 10.469.572.
A veces en la RPA es útil para el operador humano 60 comprobar que la máquina virtual esté funcionando correctamente para depurar y similares. Sin embargo, debido a que habitualmente las máquinas virtuales no tienen interfaz en el sentido de que no tienen un dispositivo de visualización conectado, y debido a que las máquinas virtuales tienden a estar remotas del operador humano 60, la mejor manera para que el operador humano 60 acceda a una máquina virtual es mediante un protocolo de acceso remoto. Sin embargo, esto es problemático porque el operador humano 60 es capaz de ver todos los datos en el escritorio virtual de la máquina virtual, incluyendo datos sensibles. Esto reduce drásticamente la seguridad de la RPA. El método de la invención para evitar que los datos sensibles recibidos sean emitidos al operador humano 60 es por lo tanto útil para la RPA.
La Fig. 7 muestra una implementación de RPA del método de la invención. En la Fig. 7, el servidor remoto 40 es un servidor remoto virtual en forma de máquina virtual. Así, el servidor remoto 40 es capaz de realizar procesos automáticos sobre la aplicación 41. En particular, los procesos automáticos son realizados por un operador virtual de la máquina virtual usando la interfaz de usuario de la aplicación 41. Típicamente, no hay participación del operador humano 60, y no es posible que el operador humano 60 vea directamente los procesos automatizados que están siendo realizados por el operador virtual, ya que la máquina virtual no tiene interfaz y está alejada del operador humano 60.
Cuando el operador humano 60 desea ver los procesos automatizados que están siendo realizados por un operador virtual en la máquina virtual (por ejemplo, uno de los servidores remotos 40C, 408, 40C), lo hace a través de su ordenador 20 y el protocolo de acceso remoto. Típicamente, hay una pluralidad de máquinas virtuales, como se muestra en la Fig. 7 por los servidores remotos 40A, 408 y 40C, alojados por la plataforma remota 90. El operador humano 60 puede seleccionar con cuál de las máquinas virtuales desea interactuar a través del ordenador 20 usando la aplicación de RPA 21. La aplicación de escritorio remoto 41 es capaz de enviar al ordenador 20 la interfaz de usuario del escritorio virtual de la máquina virtual seleccionada (incluyendo la interfaz de usuario de una aplicación 41). Sin embargo, debido al método de la invención, el procesador 30 (no mostrado en la Fig. 7) garantiza que se eliminen los datos sensibles de la interfaz de usuario antes de que se envíen al operador humano 60 en el ordenador 20.
Por ejemplo, como se muestra en la Fig. 7, el operador humano 60 ha seleccionado el servidor remoto 408 de la plataforma remota 90 y por lo tanto puede ver e interactuar con la interfaz de usuario del servidor remoto 408 a través del ordenador 20. En particular, el operador humano 60 verá procesos automatizados que interactúan con la aplicación 41 en la máquina virtual, que en este ejemplo es un navegador web. Sin embargo, como la interfaz de usuario del servidor remoto 408 contiene datos sensibles, estos datos sensibles han sido eliminados en la salida de la interfaz de usuario al operador humano 60 a través del ordenador 20 (visto mediante la comparación de las interfaces de usuario respectivas). Por consiguiente, se mantiene el nivel de seguridad previo a la participación del operador humano 60.
General
Cuando se implementa en software, la invención puede adoptar la forma de un programa de ordenador. El programa de ordenador puede incorporarse como un medio legible por ordenador que contiene código ejecutable por ordenador para su uso por o en conexión con un procesador. Un medio legible por ordenador es cualquier dispositivo tangible que pueda contener, almacenar, comunicar, propagar o transportar el programa para su uso por o en relación con un procesador. Además, un medio legible por ordenador puede ser un dispositivo electrónico, magnético, óptico, electromagnético, infrarrojo o semiconductor, o un medio de propagación. Ejemplos de un medio legible por ordenador incluyen una memoria semiconductora, una memoria de acceso aleatorio (RAM), una memoria de sólo lectura (ROM), una memoria Flash, una unidad de disco duro, una unidad de estado sólido, un disco óptico y tarjetas de memoria. Ejemplos actuales de discos ópticos incluyen CD, DVD y Blue-Ray. Ejemplos actuales de tarjetas de memoria incluyen unidades flash USB, tarjetas SD, tarjetas microSD, tarjetas MMC, tarjetas xD y lápices de memoria.
Cuando se implementa en hardware, la invención no está limitada al hardware específico descrito en la presente. Los expertos en la técnica apreciarán que la invención puede implementarse en un hardware diferente al del ordenador 20 y el servidor remoto 40 y seguir funcionando de la manera descrita.
Los diagramas de flujo de las figuras ilustran la arquitectura, funcionalidad y funcionamiento de posibles implementaciones de los métodos de la invención. En algunas implementaciones alternativas, los pasos indicados en las figuras pueden producirse fuera del orden indicado en las figuras. Por ejemplo, dos pasos mostrados en sucesión pueden, de hecho, realizarse sustancialmente concurrentemente o, a veces, los bloques pueden realizarse en el orden inverso, dependiendo de la funcionalidad implicada.
Se entenderá que la descripción anterior se da únicamente a modo de ejemplo y que los expertos en la materia pueden realizar varias modificaciones. Aunque con anterioridad se han descrito varias realizaciones con un cierto grado de particularidad, o con referencia a una o más realizaciones individuales, los expertos en la materia podrían hacer numerosas modificaciones a las realizaciones divulgadas sin apartarse del alcance de esta invención.
Claims (15)
1. Un método implementado por ordenador para evitar que los datos sensibles (416) recibidos a través de un protocolo de acceso remoto sean enviados a un operador humano (60), el método comprendiendo:
recibir, desde un servidor remoto virtual (40) a través de un protocolo de acceso remoto, una interfaz de usuario de una aplicación que se está ejecutando en el servidor remoto virtual, en donde el servidor remoto virtual tiene forma de máquina virtual y en donde los procesos automatizados son realizados en la aplicación que se está ejecutando en el servidor remoto virtual por un operador virtual de la máquina virtual usando la interfaz de usuario de la aplicación (41);
determinar, o recibir del servidor remoto virtual, una representación basada en texto de la aplicación; identificar datos sensibles en la interfaz de usuario y/o la representación basada en texto de la aplicación usando uno o más filtros preseleccionados;
modificar la interfaz de usuario para eliminar los datos sensibles identificados;
enviar la interfaz de usuario modificada a uno o más periféricos de salida de un ordenador para su recepción por el operador humano.
2. El método de la reivindicación 1, en donde el protocolo de acceso remoto es un protocolo de memoria intermedia de imagen remota.
3. El método de la reivindicación 2, en donde la interfaz de usuario recibida tiene la forma de una imagen de la interfaz de usuario, el paso de modificar comprende modificar la imagen de la interfaz de usuario, y el paso de enviar comprende enviar la imagen modificada de la interfaz de usuario.
4. El método de la reivindicación 1, en donde el protocolo de acceso remoto es un protocolo de escritorio remoto.
5. El método de la reivindicación 4, en donde la interfaz de usuario recibida está en forma de datos para renderizar una imagen de la interfaz de usuario, el paso de modificar comprende modificar los datos para renderizar una imagen de la interfaz de usuario, y el paso de enviar comprende enviar los datos modificados para renderizar una imagen de una interfaz de usuario modificada.
6. El método de cualquier reivindicación anterior, que comprende además, antes del paso de determinar, o recibir del servidor remoto, preseleccionar uno o más filtros sobre la base de los datos sensibles que se esperan en el contenido de la aplicación.
7. El método de cualquier reivindicación anterior, en donde el paso de recibir una interfaz de usuario comprende recibir una interfaz de usuario de un escritorio del servidor remoto, la interfaz de usuario de la aplicación formando una parte de la interfaz de usuario del escritorio.
8. El método de cualquier reivindicación anterior, en donde la representación basada en texto de la aplicación comprende texto extraído de la interfaz de usuario y/o de la aplicación.
9. El método de cualquier reivindicación anterior, en donde la representación basada en texto de la aplicación comprende una representación programática de la aplicación.
10. El método de la reivindicación 9, en donde la representación programática comprende un modelo de objetos de documento de la aplicación.
11. El método de cualquier reivindicación anterior, en donde el filtro preseleccionado comprende una regla.
12. El método de cualquier reivindicación anterior, en donde el filtro preseleccionado comprende un modelo de aprendizaje automático.
13. El método de cualquier reivindicación anterior, en donde la interfaz de usuario modificada está configurada para interactuar con el operador humano a través de uno o más periféricos de entrada del ordenador.
14. Un programa de ordenador que comprende instrucciones que, cuando el programa es ejecutado por un procesador, hacen que el procesador lleve a cabo el método de cualquier reivindicación anterior.
15. Un sistema informático que comprende:
un procesador configurado para realizar el método de cualquiera de las reivindicaciones 1 a 13;
un servidor remoto acoplado comunicativamente al procesador; y
un ordenador acoplado comunicativamente al procesador y al servidor remoto, el ordenador teniendo uno o más periféricos de salida configurados para enviar la interfaz de usuario modificada y uno o más periféricos de entrada para su recepción por un usuario humano, en donde la interfaz de usuario modificada está configurada para interactuar con el operador humano a través de los uno o más periféricos de entrada.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| GB2000363.8A GB2590967A (en) | 2020-01-10 | 2020-01-10 | Method of remote access |
| PCT/GB2021/050047 WO2021140338A1 (en) | 2020-01-10 | 2021-01-08 | Method of remote access |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES3035600T3 true ES3035600T3 (en) | 2025-09-05 |
Family
ID=69626265
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES21700343T Active ES3035600T3 (en) | 2020-01-10 | 2021-01-08 | Method of remote access |
Country Status (11)
| Country | Link |
|---|---|
| US (2) | US11983552B2 (es) |
| EP (1) | EP4088211B1 (es) |
| JP (1) | JP7650276B2 (es) |
| KR (1) | KR20220125282A (es) |
| CN (1) | CN115087980A (es) |
| AU (1) | AU2021205669A1 (es) |
| CA (1) | CA3164261A1 (es) |
| ES (1) | ES3035600T3 (es) |
| GB (1) | GB2590967A (es) |
| PL (1) | PL4088211T3 (es) |
| WO (1) | WO2021140338A1 (es) |
Families Citing this family (10)
| 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 | 昆山翦统智能科技有限公司 | 一种企业远程智能服务的免疫计算与决策方法及系统 |
| EP4131047B1 (en) | 2021-08-05 | 2026-01-07 | Blue Prism Limited | Data obfuscation |
| 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 | 株式会社エクストーン | ソフトウェアの試験方法 |
| KR102539282B1 (ko) | 2022-12-16 | 2023-06-02 | 주식회사 유니온플레이스 | 인공 지능을 이용한 코드 생성 방법 |
| KR102539283B1 (ko) | 2022-12-19 | 2023-06-02 | 주식회사 유니온플레이스 | 인공 지능을 이용한 코드 생성 방법 |
| KR102527572B1 (ko) | 2022-12-20 | 2023-05-02 | 주식회사 유니온플레이스 | 인공 지능을 이용한 코드 생성 방법 |
| US12265502B1 (en) * | 2023-03-08 | 2025-04-01 | Medicratic Inc. | Multi-program applicant review system with adjustable parameters |
Family Cites Families (47)
| 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 |
| US20080086700A1 (en) * | 2006-10-06 | 2008-04-10 | Rodriguez Robert A | Systems and Methods for Isolating On-Screen Textual Data |
| US7673113B2 (en) | 2006-12-29 | 2010-03-02 | Intel Corporation | Method for dynamic load balancing on partitioned systems |
| US9417895B2 (en) | 2007-10-19 | 2016-08-16 | Kubisys Inc. | Concurrent execution of a first instance and a cloned instance of an application |
| 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 | 配信印刷システム |
| EP2131271A1 (en) | 2008-06-04 | 2009-12-09 | NEC Corporation | Method for enabling a mobile user equipment to drag and drop data objects between distributed applications |
| 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 |
| US20110072355A1 (en) | 2009-09-24 | 2011-03-24 | Fuji Xerox Co., Ltd. | At-a-distance magic lenses for privacy-sensitive, collaborative document viewing across mobile devices and large displays |
| JP5671297B2 (ja) | 2009-11-16 | 2015-02-18 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | Imsネットワークを介してマルチメディア・サービスを最適化するための方法及びシステム |
| EP2569698B1 (en) | 2010-05-10 | 2019-07-10 | Citrix Systems, Inc. | Redirection of information from secure virtual machines to unsecure virtual machines |
| US8661286B2 (en) | 2010-05-21 | 2014-02-25 | Unisys Corporation | QProcessor architecture in a cluster configuration |
| 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 | 演奏データ提供システム、方法、サーバ、携帯端末およびコンピュータプログラム |
| US20120246740A1 (en) | 2011-03-22 | 2012-09-27 | Brooker Marc J | Strong rights management for computing application functionality |
| 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 |
| US20140282978A1 (en) | 2013-03-15 | 2014-09-18 | Sergio Demian LERNER | 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 |
| US9898619B1 (en) * | 2014-10-22 | 2018-02-20 | State Farm Mutual Automobile Insurance Company | System and method for concealing sensitive data on a computing device |
| US9514333B1 (en) * | 2014-12-16 | 2016-12-06 | Amazon Technologies, Inc. | Secure remote application shares |
| WO2016100545A1 (en) | 2014-12-16 | 2016-06-23 | Noderprime, Inc. | Computer servers for datacenter managment |
| GB2535744A (en) * | 2015-02-25 | 2016-08-31 | Elekta ltd | Computer system integration |
| KR102328193B1 (ko) * | 2015-06-24 | 2021-11-18 | 한국전자통신연구원 | 가상 데스크탑 서비스를 위한 장치 및 방법 |
| US10970646B2 (en) * | 2015-10-01 | 2021-04-06 | Google Llc | Action suggestions for user-selected content |
| US10810317B2 (en) | 2017-02-13 | 2020-10-20 | Protegrity Corporation | Sensitive data classification |
| 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 |
| US10635939B2 (en) * | 2018-07-06 | 2020-04-28 | Capital One Services, Llc | System, method, and computer-accessible medium for evaluating multi-dimensional synthetic data using integrated variants analysis |
| 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 not_active Withdrawn
-
2021
- 2021-01-08 PL PL21700343.3T patent/PL4088211T3/pl unknown
- 2021-01-08 KR KR1020227026619A patent/KR20220125282A/ko active Pending
- 2021-01-08 AU AU2021205669A patent/AU2021205669A1/en active Pending
- 2021-01-08 WO PCT/GB2021/050047 patent/WO2021140338A1/en not_active Ceased
- 2021-01-08 ES ES21700343T patent/ES3035600T3/es active Active
- 2021-01-08 JP JP2022542219A patent/JP7650276B2/ja active Active
- 2021-01-08 EP EP21700343.3A patent/EP4088211B1/en active Active
- 2021-01-08 CA CA3164261A patent/CA3164261A1/en active Pending
- 2021-01-08 US US17/144,640 patent/US11983552B2/en active Active
- 2021-01-08 CN CN202180013465.9A patent/CN115087980A/zh active Pending
-
2024
- 2024-04-09 US US18/630,839 patent/US20240256309A1/en active Pending
Also Published As
| Publication number | Publication date |
|---|---|
| EP4088211B1 (en) | 2025-06-25 |
| KR20220125282A (ko) | 2022-09-14 |
| BR112022013625A2 (pt) | 2022-09-13 |
| CA3164261A1 (en) | 2021-07-15 |
| EP4088211C0 (en) | 2025-06-25 |
| WO2021140338A1 (en) | 2021-07-15 |
| GB202000363D0 (en) | 2020-02-26 |
| JP7650276B2 (ja) | 2025-03-24 |
| GB2590967A (en) | 2021-07-14 |
| US11983552B2 (en) | 2024-05-14 |
| JP2023522290A (ja) | 2023-05-30 |
| CN115087980A (zh) | 2022-09-20 |
| US20240256309A1 (en) | 2024-08-01 |
| US20210216336A1 (en) | 2021-07-15 |
| EP4088211A1 (en) | 2022-11-16 |
| PL4088211T3 (pl) | 2025-09-29 |
| AU2021205669A1 (en) | 2022-09-01 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES3035600T3 (en) | Method of remote access | |
| US20200026485A1 (en) | Selective screen sharing | |
| US9754120B2 (en) | Document redaction with data retention | |
| US10614249B2 (en) | Sanitization of content displayed by web-based applications | |
| US9858698B2 (en) | Text resizing within an embedded image | |
| KR102867602B1 (ko) | 데이터 난독화 | |
| US9870484B2 (en) | Document redaction | |
| JP2020504402A (ja) | オブジェクト固有の画像ドメインにおけるデータ損失防止のための構造化テキスト及びパターン照合 | |
| JP6098611B2 (ja) | 画像処理装置、端末装置、処理方法、および制御プログラム | |
| BR112022013625B1 (pt) | Método implementado por computador, meio legível por computador e sistema de computação para acesso remoto | |
| HK40051845A (en) | Method of remote access | |
| HK40077599A (en) | Method of remote access | |
| US20250209202A1 (en) | Computer system and methods for augmenting a graphical user interface | |
| HK40086169A (en) | Data obfuscation | |
| HK40108968A (zh) | 数据混淆 | |
| JP2012252629A (ja) | 入力支援用プログラム、入力支援方法、および、入力支援装置 |