ES2753359T3 - Sistema de mensajes no retenidos - Google Patents

Sistema de mensajes no retenidos Download PDF

Info

Publication number
ES2753359T3
ES2753359T3 ES14767599T ES14767599T ES2753359T3 ES 2753359 T3 ES2753359 T3 ES 2753359T3 ES 14767599 T ES14767599 T ES 14767599T ES 14767599 T ES14767599 T ES 14767599T ES 2753359 T3 ES2753359 T3 ES 2753359T3
Authority
ES
Spain
Prior art keywords
message
module
computing devices
identifier
globally unique
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
Application number
ES14767599T
Other languages
English (en)
Inventor
John R Thorpe
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Application granted granted Critical
Publication of ES2753359T3 publication Critical patent/ES2753359T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/07User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
    • H04L51/18Commands or executable codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

Un método (500, 600), configurado para su ejecución en un dispositivo de mensajería no retenida (101a, 220a, 101b, 220b, 101c, 220c, 101, 220), que comprende: recibir (502, 602), usando uno o más dispositivos informáticos del dispositivo de mensajería no retenida (101a, 220a, 101b, 220b, 101c, 220c, 101, 220), un mensaje de un cliente de mensajería (120a, 120b, 120c) de un usuario remitente; generar (504, 608), usando el uno o más dispositivos informáticos, una clave globalmente única; generar (508, 612), usando el uno o más dispositivos informáticos, un índice hash en base, al menos en parte, a la clave globalmente única y una clave de dispositivo; generar, usando el uno o más dispositivos informáticos, una clave de cifrado en base, al menos en parte, a la clave globalmente única; cifrar (510, 614), usando el uno o más dispositivos informáticos, el mensaje usando la clave de cifrado; almacenar (512, 616), usando el uno o más dispositivos informáticos, el mensaje cifrado en una memoria no transitoria y no persistente del uno o más dispositivos informáticos usando el índice hash; generar (514, 620), usando el uno o más dispositivos informáticos, un identificador de mensaje en base, al menos en parte, a la clave globalmente única; enviar (514, 620), usando el uno o más dispositivos informáticos, el identificador de mensaje a un dispositivo destinatario; eliminar (516, 622), usando el uno o más dispositivos informáticos, quitando la clave globalmente única, el índice hash y el identificador de mensaje del uno o más dispositivos informáticos en respuesta al envío del identificador de mensaje al dispositivo destinatario; determinar, usando el uno o más dispositivos informáticos, si se recibe una selección del identificador de mensaje; en respuesta a la determinación de que se ha recibido la selección del identificador de mensaje: (a) determinar, usando el uno o más dispositivos informáticos, el índice hash de la clave globalmente única recibida en respuesta a la selección del identificador de mensaje; (b) recuperar, usando el uno o más dispositivos informáticos, el mensaje cifrado de la memoria no transitoria y no persistente usando el índice hash; (c) determinar, usando el uno o más dispositivos informáticos, la clave de cifrado usando la clave globalmente única y descifrar el mensaje cifrado usando la clave de cifrado; (d) enviar el mensaje al dispositivo destinatario para su presentación; y (e) eliminar (522, 632), usando el uno o más dispositivos informáticos, quitando el mensaje cifrado del uno o más dispositivos en respuesta al envío del mensaje al dispositivo destinatario para su presentación; en respuesta a la determinación de que no se ha recibido la selección del identificador del mensaje: (a) determinar, usando uno o más dispositivos informáticos, si se ha excedido una vida útil de mensaje definida por el usuario o una vida útil de mensaje definida por el sistema; y (b) en respuesta a determinar que se ha excedido al menos una de la vida útil del mensaje definida por el usuario y la vida útil del mensaje definida por el sistema, eliminar (522, 632), usando el uno o más dispositivos informáticos, quitando el mensaje cifrado del uno o más dispositivos.

Description

DESCRIPCIÓN
Sistema de mensajes no retenidos
Esta solicitud se refiere a mensajería electrónica. En particular, la especificación se refiere a mensajería electrónica no retenida.
Antecedentes
Productos y sistemas existentes, por ejemplo, sistemas de correo electrónico, implican el envío de mensajes a través de una red compleja de servidores tales como servidores SMTP, IMAP y POP. Cuando los mensajes se envían a través de estos servidores, copias de los mensajes a menudo se almacenan y retienen con el propósito de entrega. Incluso después de que se hayan entregado los mensajes, es altamente probable que se retengan numerosas copias del mensaje en la red, o bien como copias de seguridad, copias de correos electrónicos basadas en la nube, archivos, bandejas de entrada, correo basura, elementos de basura, etc. En muchas circunstancias, especialmente cuando están siendo transmitidos mensajes o documentos altamente sensibles o confidenciales, el objetivo es solamente comunicarse con la parte de recepción y no tener ninguna información retenida en ningún otro lugar en todo el sistema. Tener mensajes o documentos retenidos, muchas veces de manera permanente, significa que las partes comunicantes han perdido el control de esos mensajes y documentos. Tal pérdida de control puede conducir a resultados perjudiciales, incluyendo la divulgación accidental de información, indicaciones no deseadas de comunicaciones y otras numerosas consecuencias no deseadas.
El documento US 2010/0057869 A1 se refiere a revocación de correo electrónico en la que se proporciona que el correo electrónico transmitido se pueda retirar antes de que un destinatario sea capaz de leer el correo electrónico transmitido. Un servidor de eventos almacena un correo electrónico transmitido durante un período de tiempo dado o hasta que se recupere por un cliente de correo electrónico de recepción. Si el período de tiempo dado expira o se retira el correo electrónico, el cliente de correo electrónico de recepción es incapaz de recuperar el correo electrónico.
Compendio
Los objetos de la presente invención se logran mediante los temas de las reivindicaciones independientes. Se presentan en las reivindicaciones dependientes realizaciones ejemplares adicionales de la presente invención. La especificación supera las deficiencias y limitaciones de la técnica anterior, al menos en parte, proporcionando un sistema y método para mensajería electrónica no retenida.
La especificación describe un sistema, método y producto de programa de ordenador para mensajería electrónica no retenida según algunas realizaciones. En una realización, el sistema comprende un módulo receptor de mensajes, un módulo identificador y de almacenamiento de mensajes, un módulo de recuperación de mensajes y un módulo de eliminación. El módulo receptor de mensajes recibe un mensaje. El módulo de almacenamiento de mensajes y generación de identificador almacena el mensaje en una memoria no transitoria y no persistente de uno o más dispositivos informáticos, genera un identificador de mensaje y envía el identificador de mensaje a un dispositivo destinatario. El módulo de recuperación de mensajes recibe una selección del identificador de mensaje desde el dispositivo destinatario, recupera el mensaje de la memoria no transitoria y no persistente y envía el mensaje al dispositivo destinatario para su presentación. El módulo de eliminación elimina el mensaje del uno o más dispositivos en respuesta al módulo de recuperación de mensajes que envía el mensaje al dispositivo destinatario para su presentación.
En algunas realizaciones, el módulo de eliminación elimina el identificador de mensaje del uno o más dispositivos informáticos en respuesta al envío del identificador de mensaje al dispositivo destinatario. En algunas realizaciones, el identificador de mensaje y el mensaje se envían de manera anónima en base a una preferencia del usuario asociada con un remitente del mensaje. En algunas realizaciones, el identificador de mensaje es un URL. En algunas realizaciones, el sistema carece de una memoria escribible y persistente. En algunas realizaciones, el identificador de mensaje y el mensaje se envían a un cliente de correo electrónico a través de un protocolo de correo electrónico estándar.
En algunas realizaciones, el sistema incluye un módulo de generación de claves para generar una clave globalmente única. En algunas realizaciones, el identificador de mensaje se basa, al menos en parte, en la clave globalmente única. En algunas realizaciones, el módulo de eliminación elimina la clave globalmente única del uno o más dispositivos informáticos en respuesta al envío del identificador de mensaje al dispositivo destinatario, y recibir la selección del identificador de mensaje incluye recibir la clave globalmente única.
En algunas realizaciones, el sistema incluye un módulo de índice hash para generar un índice hash en base, al menos en parte, a la clave globalmente única, y el mensaje se almacena en la memoria no transitoria y no persistente usando el índice hash. En algunas realizaciones, el índice se comprueba aleatoriamente en base, al menos en parte, a una clave de dispositivo, la clave de dispositivo asociada con un dispositivo informático que comprende la memoria no transitoria y no persistente en la que se almacena el mensaje. En algunas realizaciones, el módulo de eliminación elimina el índice hash del uno o más dispositivos informáticos en respuesta al envío del identificador de mensaje al dispositivo destinatario.
En algunas realizaciones, el sistema incluye un módulo de generación de índice para generar un índice globalmente único en respuesta a la recepción del mensaje. En algunas realizaciones, el índice hash generado por el módulo de índice hash se basa, al menos en parte, en el índice globalmente único, el módulo de eliminación elimina el índice globalmente único del uno o más dispositivos informáticos en respuesta al envío del identificador de mensaje al dispositivo destinatario, el identificador de mensaje se basa, al menos en parte, en el índice globalmente único y recibir la selección del identificador de mensaje incluye recibir el índice globalmente único.
En algunas realizaciones, el sistema incluye un módulo de cifrado de mensajes para cifrar el mensaje antes de almacenar el mensaje en la memoria no transitoria y no persistente. En algunas realizaciones, un módulo de generación de claves genera una clave globalmente única, el módulo de cifrado de mensajes cifra el mensaje usando una clave de cifrado antes de almacenar el mensaje en la memoria no transitoria y no persistente, en donde la clave de cifrado se basa, al menos en parte, en la clave globalmente única, y descifra el mensaje recuperado de la memoria no transitoria y no persistente antes de enviar el mensaje al dispositivo destinatario para su presentación, y el módulo de eliminación elimina la clave globalmente única y la clave de cifrado del uno o más dispositivos informáticos en respuesta al envío del identificador de mensaje al dispositivo destinatario, el identificador de mensaje en base, al menos en parte, a la clave globalmente única, y en donde recibir la selección del identificador de mensaje incluye recibir la clave globalmente única.
En algunas realizaciones, el módulo de eliminación establece un temporizador en base a un período de tiempo definido por el usuario y elimina el mensaje de la memoria no transitoria y no persistente del uno o más dispositivos informáticos en respuesta a un fallo al recibir la selección del identificador de mensaje desde el dispositivo destinatario dentro del período de tiempo definido por el usuario. En algunas realizaciones, el módulo de eliminación establece un temporizador en base a un período de tiempo definido por el sistema para el sistema y elimina el mensaje de la memoria no transitoria y no persistente del uno o más dispositivos informáticos en respuesta a un fallo al recibir la selección del identificador de mensaje desde el dispositivo destinatario dentro del período de tiempo definido por el sistema.
Las características y ventajas descritas en la presente memoria no incluyen todo y muchas características y ventajas adicionales serán evidentes en vista de las figuras y la descripción. Además, se debería observar que el lenguaje usado en la especificación se ha seleccionado principalmente con propósitos de legibilidad e instrucción, y no para limitar el alcance del tema descrito en la presente memoria.
Breve descripción de los dibujos
Las realizaciones se ilustran a modo de ejemplo, y no a modo de limitación en las figuras de los dibujos que se acompañan en los que se usan números de referencia iguales para referirse a elementos similares.
La Figura 1 ilustra un sistema para mensajería electrónica no retenida según una realización.
La Figura 2A es un diagrama de bloques que ilustra un dispositivo informático para mensajería no retenida según una realización.
La Figura 2B es un diagrama de bloques que ilustra un servidor de mensajería de no retención según una realización.
La Figura 3 es un diagrama de bloques que ilustra un módulo de mensajería no retenida según una realización. La Figura 4 es un diagrama de flujo que ilustra un método para mensajería electrónica no retenida según una realización.
La Figura 5 es un diagrama de flujo que ilustra un método para mensajería electrónica no retenida según otra realización.
La Figura 6A-6B es un diagrama de flujo que ilustra un método para mensajería electrónica no retenida según otra realización más.
Descripción detallada
Un sistema y método para mensajería electrónica no retenida. En la siguiente descripción, con propósitos de explicación, se exponen numerosos detalles específicos con el fin de proporcionar una comprensión minuciosa de las realizaciones. Será evidente, no obstante, que las realizaciones se pueden practicar sin estos detalles específicos. En otros casos, las estructuras y dispositivos se muestran en forma de diagrama de bloques con el fin de evitar oscurecer las realizaciones. Por ejemplo, se describe a continuación una realización con referencia a interfaces de usuario y hardware particular. No obstante, las presentes realizaciones pueden aplicarse a diferentes tipos de dispositivos informáticos que pueden recibir datos y comandos, y dispositivos periféricos que proporcionan servicios.
Una referencia en la especificación a “una realización” significa que un rasgo, estructura o característica particular descrita en conexión con la realización se incluye en al menos una realización. Las apariciones de la frase “en una realización” en diversos lugares de la especificación no están refiriéndose todas necesariamente a la misma realización.
Algunas partes de las descripciones detalladas que siguen se presentan en términos de algoritmos y representaciones simbólicas de operaciones en bits de datos dentro de una memoria de ordenador. Estas descripciones y representaciones algorítmicas son los medios usados por los expertos en las técnicas de procesamiento de datos para transportar lo más eficazmente la sustancia de su trabajo a otros expertos en la técnica. Un algoritmo está aquí, y generalmente, concebido para ser una secuencia consistente en sí misma de pasos que conducen a un resultado deseado. Los pasos son aquellos que requieren manipulaciones físicas de cantidades físicas. Normalmente, aunque no necesariamente, estas cantidades toman la forma de señales eléctricas o magnéticas capaces de ser almacenadas, transferidas, combinadas, comparadas y manipuladas de otro modo. Ha demostrado ser conveniente a veces, principalmente por razones de uso común, hacer referencia a estas señales como bits, valores, elementos, símbolos, caracteres, términos, números o similares.
Se debería tener en cuenta, no obstante, que todos estos términos y otros similares se han de asociar con las cantidades físicas apropiadas y son meramente etiquetas convenientes aplicadas a estas cantidades. A menos que se exprese específicamente de otro modo, como es evidente a partir de la siguiente discusión, se aprecia que en toda la descripción, las discusiones que utilizan términos que incluyen, por ejemplo, “procesamiento” o “computación” o “cálculo” o “determinación” o “visualización” o similares, se refieren a la acción y los procesos de un sistema informático, o dispositivo informático electrónico similar, que manipula y transforma datos representados como cantidades físicas (electrónicas) dentro de los registros del sistema informático y las memorias en otros datos representados de manera similar como cantidades físicas dentro de la memorias o registros del sistema informático u otros de tales dispositivos de almacenamiento, transmisión o visualización de información.
Las presentes realizaciones también se refieren a un aparato para realizar las operaciones en la presente memoria. Este aparato se puede construir especialmente con los propósitos requeridos, o puede comprender un ordenador de propósito general activado selectivamente o reconfigurado por un programa de ordenador almacenado en el ordenador. Tal programa de ordenador se puede almacenar en un medio de almacenamiento legible por ordenador, incluyendo, pero no limitado a, cualquier tipo de disco, incluyendo discos flexibles, discos ópticos, CD-ROM y discos magnéticos, memorias de sólo lectura (ROM), memorias de acceso aleatorio (RAM), EPROM, EEPROM, tarjetas magnéticas u ópticas, memorias rápidas incluyendo llaves USB con memoria no volátil o cualquier tipo de medio adecuado para almacenar instrucciones electrónicas, cada uno acoplado a un bus del sistema informático.
Las realizaciones pueden tomar la forma de una realización completamente de hardware, una realización completamente de software o una realización que contiene tanto elementos de hardware como de software. Una realización ejemplar se implementa en software, que incluye pero no se limita a microprogramas, software residente, microcódigo, etc.
Además, las realizaciones pueden tomar la forma de un producto de programa de ordenador accesible desde un medio utilizable por ordenador o legible por ordenador que proporciona un código de programa para su uso por o en conexión con un ordenador o cualquier sistema de ejecución de instrucciones. Con los propósitos de esta descripción, un medio utilizable por ordenador o legible por ordenador puede ser cualquier aparato que pueda contener, almacenar, comunicar, propagar o transportar el programa para su uso por o en conexión con el sistema, aparato o dispositivo de ejecución de instrucciones.
Un sistema de procesamiento de datos adecuado para almacenar y/o ejecutar un código de programa incluirá al menos un procesador acoplado directa o indirectamente a elementos de memoria a través de un bus del sistema. Los elementos de memoria pueden incluir memoria local empleada durante una ejecución real del código de programa, almacenamiento masivo y memorias caché que proporcionan almacenamiento temporal de al menos algún código de programa con el fin de reducir el número de veces que el código se debe recuperar del almacenamiento masivo durante su ejecución.
Los dispositivos de entrada/salida o I/O (incluyendo, pero no limitados a, teclados, visualizadores, dispositivos de apuntamiento, etc.) se pueden acoplar al sistema o bien directamente o bien a través de controladores de I/O intervinientes.
Los adaptadores de red también se pueden acoplar al sistema para permitir que el sistema de procesamiento de datos llegue a ser acoplado a otros sistemas de procesamiento de datos o impresoras remotas o dispositivos de almacenamiento a través de redes públicas o privadas intervinientes. Módems, módem de cable y tarjetas Ethernet son sólo unos pocos de los tipos de adaptadores de red disponibles actualmente.
Finalmente, los algoritmos y visualizadores presentados en la presente memoria no están inherentemente relacionados con ningún ordenador u otro aparato en particular. Diversos sistemas de propósito general se pueden usar con programas según las enseñanzas en la presente memoria, o puede resultar conveniente construir un aparato más especializado para realizar los pasos requeridos del método. La estructura requerida para una variedad de estos sistemas aparecerá a partir de la descripción a continuación. Además, las presentes realizaciones no se describen con referencia a ningún lenguaje de programación particular. Se apreciará que se pueden usar una variedad de lenguajes de programación para implementar las enseñanzas de las realizaciones que se describen en la presente memoria.
Descripción general del sistema
La Figura 1 ilustra un diagrama de bloques de un sistema 100 para mensajería electrónica no retenida. El sistema ilustrado 100 incluye dispositivos cliente 115a, 115b y 115n (a los que también se hace referencia colectivamente como dispositivos cliente 115 o individualmente como dispositivo cliente 115) a los que se accede por los usuarios 125a, 125b y 125n (a los que también se hace referencia colectivamente como usuarios 125 o individualmente como usuario 125), servidores de mensajes no retenidos (NRM) 101a, 101b y 101c (a los que también se hace referencia colectivamente como servidores NRM 101 o individualmente como servidor NRM 101), un servidor de directorio de mensajes no retenidos 180, un servidor de terceros 190 y un servidor de autorizaciones 107. En la realización ilustrada, estas entidades se acoplan comunicativamente a través de una red 105. Aunque se ilustran tres dispositivos cliente 115, cualquier número de dispositivos cliente 115 está disponible para cualquier número de usuarios 125.
Los dispositivos cliente 115 en la Figura 1 se usan a modo de ejemplo. Mientras que la Figura 1 ilustra tres dispositivos cliente 115, la presente especificación se aplica a cualquier arquitectura de sistema que tenga uno o más dispositivos cliente 115. Además, aunque solamente una red 105 está acoplada a los dispositivos cliente 115, los servidores NRM 101 y el servidor de autorización 107, en la práctica, se puede conectar a las entidades cualquier número de redes 105. Además, aunque solamente se muestra un servidor de directorio de mensajes no retenidos 180, el sistema 100 puede incluir cualquier número de servidores de directorio de mensajes no retenidos 180. Además, aunque solamente se muestra un servidor de terceros 190, el sistema 100 puede incluir cualquier número de servidores de terceros 190.
Además, aunque solamente se muestra un servidor de autorización 107, el sistema 100 puede incluir cualquier número de servidores de autorización 107. En una realización, el sistema 100 incluye múltiples servidores de autorización 107 direccionados por un único URL, dirección o nombre de dominio. En una realización, el sistema 100 incluye múltiples servidores de autorización 107 al frente de un balanceador de carga (no mostrado).
Además, aunque la Figura 1 ilustra tres servidores NRM 101, la presente especificación se aplica a cualquier arquitectura de sistema que tenga uno o más servidores NRM 101. En una realización, el sistema 100 incluye servidores NRM 101 direccionados por un único URL, dirección o nombre de dominio. En una realización, el sistema 100 incluye múltiples servidores NRM 101 al frente de un balanceador de carga.
En una realización, se incluye un módulo de mensajería no retenida 220a en el servidor NRM 101a y es operable en el servidor NRM 101a, que se conecta a la red 105 a través de la línea de señal 104. En otra realización, el módulo de mensajería no retenida 220b está incluido en el servidor NRM 101b y es operable en el servidor NRM 101b, que se conecta a la red 105 a través de la línea de señal 106. En otra realización más, el módulo de mensajería no retenida 220c está incluido en el servidor NRM 101c y es operable en el servidor NRM 101c, que se conecta a la red 105 a través de la línea de señal 108. Se reconocerá que el módulo de mensajería no retenida 220a/220b/220c (al que se hace referencia generalmente como el módulo de mensajería no retenida 220) se puede almacenar en cualquier combinación de uno o más servidores NRM 101. En algunas realizaciones, el módulo de mensajería no retenida 220 incluye múltiples módulos distribuidos que cooperan unos con otros para realizar las funciones descritas a continuación. Los detalles que describen la funcionalidad y los componentes del módulo de mensajería no retenida 220 se explican con detalle adicional a continuación con respecto a la Figura 3.
La red 105 permite las comunicaciones entre los dispositivos cliente 115, los servidores NRM 101 y el servidor de autorización 107. De este modo, la red 105 puede incluir enlaces que usan tecnologías que incluyen, por ejemplo, Wi-Fi, Wi-Max, 2G, Sistema Universal de Telecomunicaciones Móviles (UMTS), 3G, Ethernet, 802.11, red digital de servicios integrados (RDSI), línea de abonado digital (DSL), modo de transferencia asíncrono (ATM), InfiniBand, Conmutación Avanzada Rápida PCI, etc. De manera similar, los protocolos de interconexión de redes usados en la red 105 pueden incluir el protocolo de control de transmisión/protocolo de Internet (TCP/IP), conmutación de etiquetas multiprotocolo (MPLS), el Protocolo de Datagramas de Usuario (UDP), el protocolo de transporte de hipertexto (HTTP), el protocolo simple de transferencia de correo (SMTP), el protocolo de transferencia de archivos (FTP), el protocolo ligero de acceso a directorios (LDAP), Acceso Múltiple por División de Código (CDMA), Acceso Múltiple por División de Código de Banda Ancha (WCDMA), Sistema Global para Comunicaciones Móviles (GSM), Acceso a Paquetes de Enlace Descendente de Alta Velocidad (HSDPA), etc. Los datos intercambiados sobre la red 105 se pueden representar usando tecnologías y/o formatos que incluyen el lenguaje de marcado de hipertexto (HTML), el lenguaje de marcado extensible (XML), la Notación de Objetos JavaScript (JSON), los Valores Separados por Comas (CSV), etc. Además , todos o algunos de los enlaces se pueden cifrar usando tecnologías de cifrado convencionales, por ejemplo, la capa de conexiones seguras (SSL), HTTP seguro (HTTPS) y/o redes privadas virtuales (VPN) o seguridad de Protocolo de Internet (IPsec). En otra realización, las entidades pueden usar tecnologías de comunicaciones de datos personalizadas y/o dedicadas en lugar de, o además de, las descritas anteriormente. Dependiendo de la realización, la red 105 también puede incluir enlaces a otras redes.
En una realización, la red 105 es una red parcialmente pública o totalmente pública, por ejemplo, Internet. La red 105 también puede ser una red privada o incluir una o más redes privadas distintas o lógicas (por ejemplo, redes privadas virtuales, Redes de Área Extensa (“WAN”) y/o Redes de Área Local (“LAN”)). Además, los enlaces de comunicación hacia y desde la red 105 pueden ser cableados o inalámbricos (es decir, transceptores terrestres o basados en satélites). En una realización, la red 105 es una red de área extensa o metropolitana basada en IP.
En la realización ilustrada, los dispositivos cliente 115a, 115b y 115n se acoplan a la red 105 a través de las líneas de señal 108, 112 y 114, respectivamente. El usuario 125a puede interactuar con el dispositivo cliente 115a. De manera similar, el usuario 125b puede interactuar con el dispositivo cliente 115b, y el usuario 125n puede interactuar con el dispositivo cliente 115n. El servidor NRM 101a se acopla comunicativamente con la red 105 a través de la línea de señal 104. El servidor NRM 101b se acopla comunicativamente con la red 105 a través de la línea de señal 106. El servidor NRM 101c se acopla comunicativamente con la red 105 a través de la línea de señal 108. El servidor de autorización 107 se acopla comunicativamente con la red 105 a través de la línea de señal 116. En una realización, el servidor de autorización 107 se acopla comunicativamente con el almacenamiento de datos 130 a través de la línea de señal 102. En una realización, el servidor de directorio de mensajes no retenidos 180 se acopla comunicativamente con la red 105 a través de la línea de señal 118. En una realización, los servidores de terceros 190 se acoplan comunicativamente con la red a través de la línea de señal 122.
En una realización, el almacenamiento de datos 130 almacena datos e información de cada usuario 125 del sistema 100. En una realización, los datos e información almacenados incluyen credenciales asociadas con cada usuario 125. Las credenciales se pueden basar, al menos en parte, en uno o más de lo que un usuario 125 sabe (por ejemplo, una contraseña), lo qué un usuario 125 es y lo que un usuario 125 posee. Ejemplos de credenciales incluyen, pero no se limitan a, un nombre de usuario y/o contraseña, un alias de usuario, una dirección de correo electrónico, un identificador biométrico, un identificador electrónico o cualquier otra cosa capaz de identificar a un usuario 125 y/o a una cuenta de usuario asociada. En una realización, que se trata a continuación, se incluye un dispositivo de almacenamiento 214 (véase la Figura 2) en el servidor de autorización 107 (es decir, una realización de un dispositivo informático 200) y el dispositivo de almacenamiento 214 almacena los datos e información de los usuarios 125 del servidor de autorizaciones 107.
En una realización, un dispositivo cliente 115a/115b/115n es un dispositivo electrónico que tiene un cliente de mensajería 120a/120b/120n (al que también se hace referencia colectivamente como clientes de mensajería 120 o individualmente como cliente de mensajería) para interactuar con los diversos servidores 101, 107 y dispositivos cliente 115 del sistema 100 a través de la red 105. El dispositivo cliente 115 puede ser, por ejemplo, un ordenador portátil, un ordenador de sobremesa, una tableta, un teléfono móvil, un asistente digital personal (PDA), un dispositivo de correo electrónico móvil, un reproductor portátil de juegos, un reproductor portátil de música, un televisor con uno o más procesadores integrados en el mismo o acoplados al mismo, o cualquier otro dispositivo electrónico capaz de acceder a una red. Se reconocerá que son posibles otros tipos de dispositivos cliente 115. En una realización, el sistema 100 comprende una combinación de diferentes tipos de dispositivos cliente 115. Por ejemplo, una combinación de un ordenador personal, un teléfono móvil y una tableta. En una realización, el sistema comprende una combinación de diferentes clientes de mensajería 120. Por ejemplo, el cliente de mensajería 120a es el Cliente de Mensajería A ofrecido por la Compañía A, el cliente de mensajería 120b es el Cliente de Mensajería B ofrecido por la Compañía B y el cliente de mensajería 120c es el Cliente de Mensajería C ofrecido por la Compañía C. En una realización, el dispositivo cliente incluye un navegador web (no mostrado). El usuario 125 es un usuario humano del dispositivo cliente 115.
En una realización, el servidor de directorio de mensajes no retenidos 180 localiza un servidor NRM 101 para el almacenamiento y la recuperación de un mensaje por un servidor NRM 101. En una realización, el servidor de directorio de mensajes no retenidos 180 se comunica con los servidores NRM 101 para determinar qué servidores NRM almacenarán copias redundantes de un mensaje para copia de seguridad. En una realización, el servidor de directorio de mensajes no retenidos 180 no es un servidor separado, sino que se incorpora en un servidor NRM 101. Por ejemplo, el módulo de copia de seguridad de mensajes 322, tratado a continuación en referencia a la Figura 3, determina qué servidores NRM 101 almacenarán copias redundantes de un mensaje para copia de seguridad.
En una realización, los servidores de terceros 190 son un servidor asociado con un sistema de mensajería tradicional (por ejemplo, correo electrónico, mensaje instantáneo, redes sociales, microblogs, servicios de mensajes cortos (SMS), etc.) y proporciona servicios de mensajería tradicional (por ejemplo, correo electrónico, mensajería instantánea, redes sociales, microblogs, mensajes SMS, etc.). En una realización, el servidor de terceros 190 se usa por el sistema de mensajería no retenida 100 para enviar el identificador de mensaje (no el mensaje en sí mismo) a un destinatario. El identificador de mensaje se trata a continuación en referencia a la Figura 3. En una realización, el almacenamiento y envío de mensajes es exclusivo para los servidores NRM 101 y un servidor de terceros 190 u otro servidor (por ejemplo, el servidor de autorización 107) no se usa para enviar o almacenar un mensaje.
Ejemplo de dispositivo informático 200
La Figura 2A es un diagrama de bloques de un dispositivo informático 200 para mensajería no retenida según una realización. Como se ilustra en la Figura 2A, el dispositivo informático 200 incluye un adaptador de red 202 acoplado a un bus 204. Según una realización, también acoplado al bus 204 están al menos un procesador 206, una memoria 208, un adaptador de gráficos 210, un dispositivo de entrada 212, un dispositivo de almacenamiento 214. La memoria 208 almacena uno o más módulos, que se ejecutan por el procesador 206. En una realización, la funcionalidad del bus 204 se proporciona por un conjunto de chips de interconexión. El dispositivo informático 200 también incluye un visualizador 218, que se acopla al adaptador de gráficos 210.
El procesador 206 puede ser cualquier procesador de propósito general. El procesador 206 comprende una unidad de lógica aritmética, un microprocesador, un controlador de propósito general o alguna otra agrupación de procesadores para realizar cálculos y ejecutar código y rutinas. El procesador 206 se acopla al bus 204 para comunicación con los otros componentes del dispositivo informático 200. El procesador 206 procesa señales de datos y puede comprender diversas arquitecturas informáticas que incluyen una arquitectura de ordenador de conjunto de instrucciones complejas (CISC), una arquitectura de ordenador de conjunto de instrucciones reducidas (RISC), o una arquitectura que implementa una combinación de conjuntos de instrucciones. Aunque solamente se muestra un único procesador en la Figura 2A, se pueden incluir múltiples procesadores. La capacidad de procesamiento se puede limitar para soportar la visualización de imágenes y la captura y transmisión de imágenes. La capacidad de procesamiento podría ser suficiente para realizar tareas más complejas, incluyendo diversos tipos de extracción de características y muestreo. El dispositivo informático 200 también incluye un sistema operativo ejecutable por el procesador que incluye, pero no se limita a, sistemas operativos basados en WINDOWS®, MacOS X, Android o UNIX®. Se reconocerá que son posibles otros procesadores, sistemas operativos, sensores, visualizadores y configuraciones físicas.
La memoria 208 es un medio de almacenamiento no transitorio. La memoria 208 contiene instrucciones y/o datos que se pueden ejecutar por el procesador 206. En una realización, las instrucciones y/o datos almacenados en la memoria 208 comprenden código para realizar cualquiera y/o todas las técnicas descritas en la presente memoria. La memoria 208 puede ser un dispositivo de memoria de acceso aleatorio dinámica (DRAM), un dispositivo de memoria de acceso aleatorio estática (SRAM), memoria rápida u algún otro dispositivo de memoria. En una realización, la memoria 208 también incluye una memoria no volátil o dispositivo de almacenamiento permanente similar y medios, por ejemplo, una unidad de disco duro, una unidad de disco flexible, un dispositivo CD-ROM, un dispositivo DVD-ROM, un dispositivo DVD-RAM, un dispositivo DVD-RW, un dispositivo de memoria rápida o algún otro dispositivo de almacenamiento masivo conocido para almacenar información sobre una base más permanente. En algunas realizaciones, la memoria 208 incluye solamente una memoria volátil. La memoria 208 se acopla por el bus 204 para comunicación con los otros componentes del dispositivo informático 200. En una realización, el dispositivo informático 200 es un servidor NRM 101 y un módulo de mensajería no retenida 220 se almacena en la memoria 208 y es ejecutable por el procesador 206. En una realización, el dispositivo informático 200 es un módulo de autorización 107 y un módulo de autenticación 240 se almacena en la memoria 208 y es ejecutable por el procesador 206. En una realización, el dispositivo informático 200 es un dispositivo cliente 115 y el cliente de mensajería 120 se almacena en la memoria 208 y es ejecutable por el procesador 206.
En una realización, el dispositivo informático 200 es un servidor NRM 101 e incluye un módulo de mensajería no retenida 220. El módulo de mensajería no retenida 220, al que se hace referencia ocasionalmente en la presente memoria como un “módulo NRM 220”, incluye código y rutinas ejecutables por el procesador 206 para mensajería electrónica no retenida. En una realización, el módulo de mensajería no retenida 220 es un conjunto de instrucciones ejecutables por el procesador 206. En otra realización, el módulo de mensajería no retenida 220 se almacena en la memoria 208 y es accesible y ejecutable por el procesador 206. Los detalles que describen la funcionalidad y los componentes del módulo de mensajería no retenida 220 se explican en más detalle a continuación en referencia a la Figura 3.
En una realización, el dispositivo informático 200 es un servidor de autorización 107 e incluye un módulo de autenticación 240. El módulo de autenticación 240 incluye código y rutinas ejecutables por el procesador 206 para autenticar credenciales y autorizar el uso del sistema de mensajería no retenida 100. En una realización, el módulo de autenticación 240 es un conjunto de instrucciones ejecutables por el procesador 206. En otra realización, el módulo de autenticación 240 se almacena en la memoria 208 y es accesible y ejecutable por el procesador 206.
El módulo de autenticación 240 autentica las credenciales y autoriza el uso del sistema de mensajería no retenida 100. En una realización, el módulo de autenticación 240 compara las credenciales de usuario proporcionadas por un usuario con las almacenadas por el servidor de autorización 107 (por ejemplo, en un almacén de datos 130 o dispositivo de almacenamiento 214 del servidor de autorización 107), y autentica al usuario si hay una coincidencia. En una realización, las credenciales de usuario incluyen un nombre de usuario y contraseña y el nombre de usuario y el hash de la contraseña de cada usuario se almacenan (por ejemplo, como un archivo plano o una base de datos relacional) en el almacén de datos 130 o el dispositivo de almacenamiento 214 del servidor de autorización 107. En una realización, las contraseñas se comprueban aleatoriamente para evitar la adquisición y explotación ilegítimas de las contraseñas por parte de un pirata informático u otro usuario malvado. En una realización, se incluyen múltiples servidores de autorización 107 en el sistema de mensajería no retenida 100 y los múltiples servidores de autorización 107 comparten una base de datos común de credenciales de usuario. Se reconocerá que otras realizaciones pueden incluir credenciales distintas de, o diferentes de, nombre de usuario y contraseña.
En una realización, el dispositivo informático 200 es un dispositivo cliente 115 e incluye un cliente de mensajería 120. El cliente de mensajería 120 incluye código y rutinas ejecutables por el procesador 206 para enviar y recibir mensajes sobre el sistema de mensajería electrónica no retenida 100. En una realización, el cliente de mensajería 120 es un conjunto de instrucciones ejecutables por el procesador 206. En otra realización, el cliente de mensajería 120 se almacena en la memoria 208 y es accesible y ejecutable por el procesador 206.
Un cliente de mensajería 120 puede incluir uno o más de un cliente de correo electrónico, cliente de mensajería instantánea o cualquier otro cliente de mensajería. Con propósitos de claridad y simplificación, muchos de los ejemplos contenidos en la presente memoria suponen que el cliente de mensajería 120 es un cliente de correo electrónico. No obstante, se reconocerá que la descripción se puede aplicar también a otros tipos de clientes de mensajería 120.
En una realización, el usuario configura el cliente de mensajería 120 de la misma forma que lo haría el usuario para un servicio de mensajería típico. Por ejemplo, en una realización, el remitente añade una cuenta de servidor de correo electrónico al cliente de correo electrónico de la misma manera que cualquier otra cuenta de correo electrónico, excepto que el servidor de correo saliente para la cuenta sea la dirección, o el nombre de dominio, de los servidores NRM 101.
En una realización, el cliente de mensajería 120 permite que el usuario redacte un mensaje (por ejemplo, que incluya uno o más de un asunto, texto, audio, video, imágenes, archivos, archivos adjuntos, etc.), identifique a un destinatario y envíe el mensaje. En una realización, las interfaces de usuario para redactar un mensaje a ser enviado usando el sistema de mensajería no retenida 100 pueden ser idénticas, o casi idénticas, a aquéllas para enviar un mensaje tradicional usando el cliente de mensajería 120. En una realización, el cliente de mensajería 120 formatea el mensaje igual que un mensaje a ser enviado en un sistema de mensajería tradicional (por ejemplo, correo electrónico, mensaje instantáneo, etc.). Por ejemplo, supongamos que el cliente de mensajería 120 es un cliente de correo electrónico; en una realización, el cliente de correo electrónico formatea el mensaje usando un protocolo de correo electrónico estándar (por ejemplo, SMTP) para enviar a través del sistema de mensajería no retenida 100. Se reconocerá que lo anterior es meramente un ejemplo de un formato y que existen otros.
En una realización, el cliente de mensajería 120 recibe y almacena las preferencias de usuario localmente en el dispositivo cliente 115. Ejemplos de preferencias de usuario incluyen, pero no se limitan a, uno o más de si el remitente de un mensaje se identifica con el destinatario, un período de tiempo definido por el usuario que define la vida útil de un mensaje en el servidor o servidores NRM 101 y el evento del que se mide la vida útil. Algunos de estos ejemplos se tratan aún más a continuación. Se reconocerá que los anteriores son meramente ejemplos y existen otros ejemplos de preferencias de usuario. En una realización, el cliente de mensajería 120 permite que un usuario destinatario guarde o imprima localmente un mensaje enviado a través del sistema de mensajes no retenidos 100. En una realización, suponiendo que un usuario decida no guardar o imprimir localmente un mensaje entregado a través del sistema 100, ese mensaje se pierde permanentemente y es irrecuperable, debido a que los mensajes se eliminan automáticamente del sistema 100 después de la recuperación/entrega.
El dispositivo de almacenamiento 214 es cualquier dispositivo capaz de contener datos, como un disco duro, una memoria de sólo lectura de disco compacto (CD-ROM), DVD, o un dispositivo de memoria de estado sólido. El dispositivo de almacenamiento 214 es un dispositivo de memoria no volátil o un dispositivo y medios de almacenamiento permanente similar. El dispositivo de almacenamiento 214 almacena datos e instrucciones para el procesador 206 y comprende uno o más dispositivos que incluyen una unidad de disco duro, una unidad de disco flexible, un dispositivo CD-ROM, un dispositivo DVD-Ro M, un dispositivo DVD-RAM, un dispositivo DVD-RW, un dispositivo de memoria rápida u otro dispositivo de almacenamiento masivo. En una realización, el dispositivo de almacenamiento 214 almacena datos e información de un usuario 125. Por ejemplo, en una realización, el dispositivo informático 200 es un servidor de autorización 107 y el dispositivo de almacenamiento 214 almacena los datos de usuario y la información tratada anteriormente en referencia al almacenamiento de datos 130 (por ejemplo, credenciales). En otro ejemplo, en una realización, el dispositivo informático 200 es un dispositivo cliente 115 y el dispositivo de almacenamiento 214 almacena mensajes.
El dispositivo de entrada 212 puede incluir un ratón, una bola de seguimiento u otro tipo de dispositivo de apuntamiento para introducir datos en el dispositivo informático 200. El dispositivo de entrada 212 también puede incluir un teclado, por ejemplo, un teclado QWERTY, un escáner de código gráfico o cualquier otro teclado físico o virtual en cualquier idioma. El dispositivo de entrada 212 también puede incluir un micrófono, una cámara web o un dispositivo similar de captura de audio o video. El adaptador de gráficos 210 muestra imágenes y otra información en el visualizador 218. El visualizador 218 es de un tipo convencional, por ejemplo, un visualizador de cristal líquido (LCD) o cualquier otro dispositivo de visualización, pantalla, pantalla táctil o monitor equipado de manera similar. El visualizador 218 representa cualquier dispositivo equipado para mostrar imágenes y datos electrónicos como se describe en la presente memoria. El adaptador de red 202 acopla el dispositivo informático 200 a una red de área local o extensa.
Como se conoce en la técnica, un dispositivo informático 200 puede tener diferentes componentes y/u otros distintos de los mostrados en la Figura 2A. Por ejemplo, el dispositivo informático 200 puede tener altavoces u otra forma de salida de audio. Además, el dispositivo informático 200 puede carecer de ciertos componentes ilustrados. Por ejemplo, en una realización, el dispositivo informático 200 es un servidor de autorización 107 y carece de un dispositivo de entrada 212, adaptador de gráficos 210 y/o visualizador 218. Además, el dispositivo de almacenamiento 214 puede ser local y/o remoto del dispositivo informático 200 (por ejemplo, una red de área de almacenamiento (SAN)).
Ahora con referencia a la Figura 2B, que ilustra un diagrama de bloques de un servidor NRM 101 según una realización. En un ejemplo, el dispositivo informático 200 es un servidor NRM 101 y, según la realización ilustrada, carece de un dispositivo de entrada 212, dispositivo de almacenamiento 214, adaptador de gráficos 210 y un visualizador 218. Además, según una realización, un servidor NRM 101 incluye una memoria no persistente 207 y una memoria persistente 205. Las memorias 205, 207 se acoplan por el bus 204 para su comunicación con los otros componentes del servidor NRM 101.
En una realización, la memoria no persistente 207 almacena un mensaje 230a, 230n enviado usando el sistema de mensajería no retenida 100 pendiente de entrega al destinatario. En una realización, la memoria no persistente 207 es una memoria volátil. Ejemplos de memoria volátil incluyen, pero no se limitan a, un dispositivo de memoria de acceso aleatorio dinámica (DRAM), un dispositivo de memoria de acceso aleatorio estática (SRAM), una memoria caché de procesador, etc.
En una realización, el servidor NRM 101 incluye una memoria persistente 205 para almacenar el módulo de mensajería no retenida 220. Ejemplos de memoria persistente incluyen una memoria no volátil o dispositivos y medios de almacenamiento permanente similares, por ejemplo, una unidad de disco duro, una unidad de disco flexible, un dispositivo CD-ROM, un dispositivo Dv D-ROM, un dispositivo DVD-RAM, un dispositivo DVD-RW, un dispositivo de memoria rápida u algún otro dispositivo de almacenamiento masivo para almacenar información sobre una base más permanente. En una realización ejemplar, la memoria persistente 205 es una memoria de sólo lectura (ROM) e incapaz de almacenar mensajes enviados usando el sistema de mensajería no retenida 100. En una realización, el dispositivo informático 200 es un servidor NRM 101 y un módulo de mensajería no retenida 220 se almacena en la memoria persistente 205 y es ejecutable por el procesador 206. Dado que la memoria no persistente 207 (por ejemplo, RAM) no es permanente y generalmente es más costosa y proporciona menos capacidad que la memoria persistente 205 (por ejemplo, una unidad de disco duro), las realizaciones en las que el servidor NRM 101 carece de una memoria escribible y persistente o una memoria totalmente persistente puede disminuir las posibilidades y desincentivar mensajes de retención indefinidamente en el sistema de mensajería no retenida 100. Como se conoce en la técnica, el dispositivo informático 200 está adaptado para ejecutar módulos de programas informáticos para proporcionar la funcionalidad descrita en la presente memoria. Como se usa en la presente memoria, el término “módulo” se refiere a lógica de programa de ordenador utilizada para proporcionar la funcionalidad especificada. De este modo, un módulo se puede implementar en hardware, microprogramas y/o software. En una realización, los módulos de programa se ejecutan por el procesador 206.
Las realizaciones de las entidades descritas en la presente memoria pueden incluir otros módulos y/o diferentes que los descritos aquí. Además, la funcionalidad atribuida a los módulos se puede realizar por otros módulos o diferentes en otras realizaciones. Además, esta descripción omite ocasionalmente el término “módulo” con propósitos de claridad y comodidad.
Ejemplo de módulo de mensajería no retenida 220
Con referencia ahora a la Figura 3, el módulo de mensajería no retenida 220 se muestra con más detalle según una realización. La Figura 3 es un diagrama de bloques del módulo de mensajería no retenida 220 incluido en un servidor NRM 101.
En una realización, el módulo de mensajería no retenida 220 comprende una interfaz de comunicaciones 302, un módulo receptor de mensajes 304, un módulo de almacenamiento de mensajes y generación de identificador 318, un módulo de recuperación de mensajes 322 y un módulo de eliminación 324. En algunas realizaciones, el módulo de mensajería no retenida 220 también incluye opcionalmente uno o más de un módulo de solicitud de autenticación 306, un módulo de generación de claves 308, un módulo de generación de índices 310, un módulo de índice hash 312, un módulo de generación de claves de cifrado 314, un módulo de cifrado de mensajes 316 y un módulo de copia de seguridad de mensajes 320.
Se reconocerá que los módulos 302, 304, 306, 308, 310, 312, 314, 316, 318, 320, 322, 324 comprendidos en el módulo de mensajería no retenida 220 no están necesariamente todos en el mismo servidor NRM 101. En una realización, los módulos 302, 304, 306, 308, 310, 312, 314, 316, 318, 320, 322, 324 se distribuyen a través de múltiples servidores NRM 101. Por ejemplo, en una realización, el módulo de copia de seguridad de mensajes 316 se incluye en el servidor NRM 101a y los otros módulos 302, 304, 306, 308, 310, 312, 314, 318, 320, 322 y 324 se incluyen en el servidor NRM 101b. Se reconocerá que lo anterior es meramente un ejemplo de distribución de módulos a través de múltiples servidores NRM 101 y que existen otros ejemplos.
La interfaz de comunicación 302 incluye código y rutinas para manejar las comunicaciones entre el módulo receptor de mensajes 304, el módulo de solicitud de autenticación 306 (dependiendo de la realización), el módulo de generación de claves 308 (dependiendo de la realización), el módulo de generación de índices 310 (dependiendo de la realización), el módulo de índice hash 312 (dependiendo de la realización), el módulo de generación de claves de cifrado 314 (dependiendo de la realización), el módulo de cifrado de mensajes 316 (dependiendo de la realización), el módulo de almacenamiento de mensajes y generación de identificador 318, el módulo de copia de seguridad de mensajes 320 (dependiendo de la realización), el módulo de recuperación de mensajes 322, el módulo de eliminación 324 y otros componentes del servidor NRM 101. En una realización, la interfaz de comunicación 302 es un conjunto de instrucciones ejecutables por el procesador 206. En otra realización, la interfaz de comunicación 302 se almacena en la memoria persistente 205 y es accesible y ejecutable por el procesador 206. En cualquier realización, la interfaz de comunicación 302 está adaptada para cooperación y comunicación con el procesador 206, otros componentes del servidor NRM 101 y otros componentes del módulo de mensajería no retenida 220.
La interfaz de comunicación 302 maneja las comunicaciones entre el módulo receptor de mensajes 304, el módulo de solicitud de autenticación 306 (dependiendo de la realización), el módulo de generación de claves 308 (dependiendo de la realización), el módulo de generación de índices 310 (dependiendo de la realización), el módulo de índice hash 312 (dependiendo de la realización), el módulo de generación de claves de cifrado 314 (dependiendo de la realización), el módulo de cifrado de mensajes 316 (dependiendo de la realización), el módulo de almacenamiento de mensajes y generación de identificador 318, el módulo de copia de seguridad de mensajes 320 (dependiendo de la realización), el módulo de recuperación de mensajes 322, el módulo de eliminación 324 y otros componentes del servidor NRM 101. Por ejemplo, en una realización, la interfaz de comunicación 202 se comunica con el módulo de generación de claves 308 y el módulo de índice hash 312 para pasar la salida del módulo de generación de claves 308 (es decir, una clave globalmente única) para el módulo de índice hash 312. No obstante, esta descripción puede omitir ocasionalmente la mención de la interfaz de comunicación 302 con propósitos de claridad y comodidad. Por ejemplo, con propósitos de claridad y comodidad, el escenario anterior se puede describir como el módulo de generación de claves 308 que pasa la clave globalmente única al módulo de índice hash 312. El módulo receptor de mensajes 304 incluye código y rutinas para recibir un mensaje. En una realización, el módulo receptor de mensajes 304 es un conjunto de instrucciones ejecutables por el procesador 206. En otra realización, el módulo receptor de mensajes 304 se almacena en la memoria persistente 205 y es accesible y ejecutable por el procesador 206. En cualquier realización, el módulo receptor de mensajes 304 se adapta para cooperación y comunicación con el procesador 206, otros componentes del servidor NRM 101 y otros componentes del módulo de mensajería no retenida 220.
El módulo receptor de mensajes 304 recibe un mensaje. En una realización, el módulo receptor de mensajes 304 recibe un mensaje del cliente de mensajería de un usuario remitente 120. Por simplicidad y claridad, se hace referencia ocasionalmente a un usuario 125 que envía un mensaje como “remitente”. Por ejemplo, el módulo receptor de mensajes 304 se acopla comunicativamente para recibir el mensaje desde el cliente de mensajería 120 del dispositivo de cliente de un remitente 115 a través de la red 105.
Un cliente de mensajería 120 puede incluir uno o más de un cliente de correo electrónico, cliente de mensajería instantánea o cualquier otro cliente de mensajería. En una realización, el módulo receptor de mensajes 304 recibe un mensaje desde un cliente de mensajería 120 con poca o ninguna modificación al cliente de mensajería 120. Por ejemplo, en una realización, el módulo receptor de mensajes 304 recibe mensajes de un cliente de correo electrónico. Ejemplos de pequeñas modificaciones incluyen la instalación de un enchufable, un complemento, un paquete de expansión, etc. Se reconocerá que los ejemplos anteriores son meramente ejemplos de clientes de correo electrónico existentes y disponibles comercialmente y que existen otros ejemplos de clientes de mensajería y clientes de correo electrónico.
En una realización, el módulo receptor de mensajes 304 recibe un mensaje que incluye un identificador de destinatario y un cuerpo de mensaje. El identificador de destinatario es un identificador único asociado con el destinatario previsto del mensaje del remitente. Ejemplos de un identificador de destinatario incluyen, pero no se limitan a, direcciones de correo electrónico, números de teléfono, nombres de usuario o cualquier otro identificador asociado con un usuario y único dentro del sistema de mensajería no retenida 100. El cuerpo de un mensaje incluye el contenido, que el remitente desea comunicar al destinatario. El cuerpo de mensaje puede incluir, por ejemplo, uno o más de texto, audio, video, imágenes, archivos, archivos adjuntos, etc.
En una realización, el mensaje recibido tiene un formato idéntico al de un mensaje enviado usando un sistema de mensajería tradicional. Por ejemplo, supongamos que el cliente de mensajería 120 es un cliente de correo electrónico; en una realización, el módulo receptor de mensajes 304 recibe un mensaje formateado usando un protocolo de correo electrónico estándar (por ejemplo, SMTP). Se reconocerá que lo anterior es meramente un ejemplo de un formato y que existen otros.
En una realización, el módulo receptor de mensajes 304 pasa el mensaje recibido al módulo de almacenamiento de mensajes y generación de identificador 318. Por ejemplo, el módulo receptor de mensajes 304 se acopla comunicativamente al módulo de almacenamiento de mensajes y generación de identificador 318 para enviar el mensaje recibido al módulo de almacenamiento de mensajes y generación de identificador 318. En otra realización, el módulo receptor de mensajes 304 pasa el mensaje recibido al módulo de cifrado de mensajes 316. Por ejemplo, el módulo receptor de mensajes 304 se acopla comunicativamente al módulo de cifrado de mensajes 316 para enviar el mensaje recibido al módulo de cifrado de mensajes 316.
En algunas realizaciones, puede ser deseable autenticar usuarios. Por ejemplo, puede ser deseable autenticar a un usuario con el fin de que el usuario acceda al sistema 100 y/o a un rasgo o funcionalidad del mismo. Por ejemplo, puede ser deseable autenticar al usuario antes de uno o más de redactar un mensaje, enviar un mensaje, enviar un identificador de mensaje, etc. En una realización tal, el módulo de mensajería no retenida 220 incluye un módulo de solicitud de autenticación 306 opcional.
El módulo de solicitud de autenticación 306 incluye código y rutinas para solicitar autenticación de usuario. En una realización, el módulo de solicitud de autenticación 306 es un conjunto de instrucciones ejecutables por el procesador 206. En otra realización, el módulo de solicitud de autenticación 306 se almacena en la memoria persistente 205 y es accesible y ejecutable por el procesador 206. En cualquier realización, el módulo de solicitud de autenticación 306 se adapta para cooperación y comunicación con el procesador 206, otros componentes del servidor NRM 101 y otros componentes del módulo de mensajería no retenida 220.
El módulo de solicitud de autenticación 306 solicita autenticación de usuario. En algunas realizaciones, la autenticación de usuario se basa en credenciales. En una realización, el módulo de solicitud de autenticación 306 solicita autenticación de usuario desde un servidor de autorización 107. Por ejemplo, supongamos que el servidor NRM 101 no almacena credenciales debido a que, por ejemplo, el servidor NRM 101 carece de un dispositivo de almacenamiento 214 y una memoria persistente escribible 205.
En una realización, el módulo de solicitud de autenticación 306 solicita las credenciales de usuario y pasa las credenciales, recibidas desde el usuario 125, al servidor de autorización 107 como parte de la solicitud de autenticación de usuario. En otra realización, el módulo de solicitud de autenticación 306 pasa una solicitud de autenticación de usuario al servidor de autorización 107, y el servidor de autorización 107 solicita y recibe las credenciales de usuario. En cualquier realización, el servidor de autorización 107 determina si el usuario está autorizado en base, al menos en parte, a las credenciales e informa al módulo de solicitud de autenticación 306. Por ejemplo, el servidor de autorización 107 determina si el usuario está autorizado en base a si un nombre de usuario y una contraseña proporcionados por el usuario coinciden con un nombre de usuario y contraseña asociados almacenados por el servidor de autorización 107 y notifica al módulo de solicitud de autenticación 306 si el usuario está autenticado o no.
En algunas realizaciones, uno o más de los módulos del módulo de mensajería no retenida 220 se ejecutan sujetos a la autenticación de usuario. Por ejemplo, en una realización, el módulo receptor de mensajes 304 se ejecuta pendiente de la autenticación de usuario del usuario remitente. En otro ejemplo, en una realización, el módulo de almacenamiento de mensajes y generación de identificador 318 se ejecuta pendiente de la autenticación de usuario del usuario remitente.
En una realización, el módulo de solicitud de autenticación 306 pasa la autenticación de usuario a uno o más de los otros módulos del módulo de mensajería no retenida 220. Por ejemplo, el módulo de solicitud de autenticación 306 se acopla comunicativamente a uno o más de los otros módulos del módulo de mensajería no retenida 220 para enviar la autenticación de usuario a uno o más de los otros módulos del módulo de mensajería no retenida 220. El módulo de generación de claves 308 opcional incluye código y rutinas para generar una clave globalmente única para cada mensaje. En una realización, el módulo de generación de claves 308 es un conjunto de instrucciones ejecutables por el procesador 206. En otra realización, el módulo de generación de claves 308 se almacena en la memoria persistente 205 y es accesible y ejecutable por el procesador 206. En cualquier realización, el módulo de generación de claves 308 se adapta para cooperación y comunicación con el procesador 206, otros componentes del servidor NRM 101 y otros componentes del módulo de mensajería no retenida 220.
El módulo de generación de claves 308 genera una clave globalmente única para cada mensaje. Una clave globalmente única es un sólo objeto único que es único en el mundo a través de todos los dispositivos informáticos. Por ejemplo, en una realización, la clave globalmente única es un número aleatorio de 128 bits, que tiene 2128 posibilidades (aproximadamente 3,48x1038) y, por lo tanto, extremadamente improbable que tenga conflictos o sea adivinado. En otro ejemplo, la clave globalmente única se genera de manera similar a un Identificador Globalmente Único (GUID).
En una realización, el módulo de generación de claves 308 también genera una clave de dispositivo. Una clave de dispositivo es una clave globalmente única. En una realización, la clave de dispositivo es extremadamente grande de modo que la clave de dispositivo sea virtualmente imposible de ser adivinada o descifrada. Por ejemplo, en una realización, la clave de dispositivo es un número aleatorio de 128 bits, que tiene 2128 posibilidades (aproximadamente 3,48x1038) y, por lo tanto, extremadamente improbable que tenga conflictos o sea adivinado. En otro ejemplo, la clave de dispositivo se genera similar a un Identificador Globalmente Único (GUID). En una realización, la clave de dispositivo se conoce solamente por el servidor NRM 101 asociado con la clave de dispositivo. Por ejemplo, en una realización, el módulo de generación de claves 308 del servidor NRM 101a genera una clave de dispositivo asociada con y conocida solamente por el servidor NRM 101a, y el módulo de generación de claves 308 del servidor NRM 101b genera una clave de dispositivo asociada y conocida solamente por el servidor NRM 101b. En una realización, la clave de dispositivo se asocia con un servidor NRM 101, pero se conoce por al menos otro servidor NRM 101.
En una realización, la clave de dispositivo es dinámica. Por ejemplo, en algunas realizaciones, el módulo de generación de claves 308 genera una nueva clave de dispositivo cada vez que se pone en marcha el servidor NRM 101 o después de detectar un acceso (no) autorizado y de eliminar de la memoria no persistente todos los mensajes, claves, índices, etc. En una realización alternativa, la clave de dispositivo puede ser una clave estática y única asignada por el fabricante. Independientemente de si la clave de dispositivo es estática o dinámica, en algunas realizaciones, cada copia de un mensaje que puede existir en múltiples servidores NRM 101 (por ejemplo, para copia de seguridad) puede tener un índice hash y una clave de cifrado diferentes para cada copia del mismo mensaje en los diversos servidores NRM 101, debido a que cada servidor NRM 101 está asociado con una clave de dispositivo diferente.
En una realización, el módulo de generación de claves 308 pasa la clave globalmente única a uno o más del módulo de índice hash 312, el módulo de generación de claves de cifrado 314 y el módulo de almacenamiento de mensajes y generación de identificador 318. Por ejemplo, el módulo de generación de claves 308 se acopla comunicativamente a uno o más del módulo de índice hash 312, el módulo de generación de claves de cifrado 314 y el módulo de almacenamiento de mensajes y generación de identificador 318 para enviar la clave globalmente única a uno o más del módulo de índice hash 312, el módulo de generación de claves de cifrado 314 y el módulo de almacenamiento de mensajes y generación de identificador 318.
En una realización, el módulo de generación de claves 308 pasa la clave de dispositivo a uno o más del módulo de índice hash 312, el módulo de generación de claves de cifrado 314 y el módulo de almacenamiento de mensajes y generación de identificador 318. Por ejemplo, el módulo de generación de claves 308 se acopla comunicativamente a uno o más del módulo de índice hash 312, el módulo de generación de claves de cifrado 314 y el módulo de almacenamiento de mensajes y generación de identificador 318 para enviar la clave de dispositivo a uno o más del módulo de índice hash 312, el módulo de generación de claves de cifrado 314 y el módulo de almacenamiento de mensajes y generación de identificador 318.
El módulo de generación de índices 310 opcional incluye código y rutinas para generar un índice globalmente único. En una realización, el módulo de generación de índices 310 es un conjunto de instrucciones ejecutables por el procesador 206. En otra realización, el módulo de generación de índices 310 se almacena en la memoria persistente 205 y es accesible y ejecutable por el procesador 206. En cualquier realización, el módulo de generación de índices 310 se adapta para cooperación y comunicación con el procesador 206, otros componentes del servidor NRM 101 y otros componentes del módulo de mensajería no retenida 220.
El módulo de generación de índices 310 opcional genera un índice globalmente único para cada mensaje. La generación de un índice globalmente único es opcional y el sistema de mensajes no retenidos 100 funciona y es seguro sin un índice globalmente único. No obstante, en una realización, la generación de un índice globalmente único puede aumentar la cantidad de esfuerzo necesario para localizar y descifrar un mensaje, añadiendo por ello seguridad adicional al sistema.
En una realización, el módulo de generación de índices 310 pasa el índice globalmente único al módulo de índice hash 312. Por ejemplo, el módulo de generación de índices 310 se acopla comunicativamente al módulo de índice hash 312 para enviar el índice globalmente único al módulo de índice hash 312.
El módulo de índice hash 312 opcional incluye código y rutinas para generar un índice hash. En una realización, el módulo de índice hash 312 es un conjunto de instrucciones ejecutables por el procesador 206. En otra realización, el módulo de índice hash 312 se almacena en la memoria 208 y es accesible y ejecutable por el procesador 206. En cualquier realización, el módulo de índice hash 312 se adapta para cooperación y comunicación con el procesador 206, otros componentes del servidor NRM 101 y otros componentes del módulo de mensajería no retenida 220. El módulo de índice hash 312 genera un índice hash. En una realización, el módulo de índice hash 312 genera un índice hash en base a una clave globalmente única. Por ejemplo, en una realización, el módulo de índice hash 312 genera un índice hash mediante el hash de la clave globalmente única. En una realización, el módulo de índice hash 312 genera un índice hash en base a una clave globalmente única y una clave de dispositivo. Por ejemplo, en una realización, el módulo de índice hash 312 genera un índice hash mediante el hash de la clave globalmente única como la sal y la clave de dispositivo.
En una realización, el módulo de índice hash 312 genera un índice hash en base a la clave globalmente única recibida desde el módulo de generación de claves 308 y el índice globalmente único recibido desde el módulo de generación de índices 310. Por ejemplo, en una realización, el módulo de índice hash 312 genera un índice hash mediante el hash de la clave globalmente única como la sal y el índice globalmente único. Por ejemplo, en otra realización, el módulo de índice hash 312 genera un índice hash mediante el hash de la clave globalmente única como la sal en combinación con el índice globalmente único y la clave de dispositivo.
En una realización, el módulo de índice hash 312 pasa el índice hash al módulo de almacenamiento de mensajes y generación de identificador 318. Por ejemplo, el módulo de índice hash 312 se acopla comunicativamente al módulo de almacenamiento de mensajes y generación de identificador 318 para enviar el índice hash al módulo de almacenamiento de mensajes y generación de identificador 318.
El módulo de generación de claves de cifrado 314 incluye código y rutinas para generar una clave de cifrado. En una realización, el módulo de generación de claves de cifrado 314 es un conjunto de instrucciones ejecutables por el procesador 206. En otra realización, el módulo de generación de claves de cifrado 314 se almacena en la memoria persistente 205 y es accesible y ejecutable por el procesador 206. En cualquier realización, el módulo de generación de claves de cifrado 314 se adapta para cooperación y comunicación con el procesador 206, otros componentes del servidor NRM 101 y otros componentes del módulo de mensajería no retenida 220.
El módulo de generación de claves de cifrado 314 genera una clave de cifrado. En algunas realizaciones, el módulo de generación de claves de cifrado 314 genera una clave de cifrado para un mensaje en base a la clave globalmente única asociada con ese mensaje. Por lo tanto, en algunas realizaciones, la clave de cifrado es única para cada mensaje.
En una realización, el módulo de generación de claves de cifrado 314 genera una clave de cifrado en base a la clave globalmente única. Por ejemplo, en una realización, el módulo de generación de claves de cifrado 314 genera una clave de cifrado usando la clave globalmente única. En una realización, el módulo de generación de claves de cifrado 314 genera una clave de cifrado en base a la clave globalmente única y la clave de dispositivo. Por ejemplo, en una realización, el módulo de generación de claves de cifrado 314 genera una clave de cifrado combinando la clave globalmente única y la clave de dispositivo, o usando la clave de dispositivo como clave de cifrado y la clave globalmente única como el vector de inicialización para el cifrado.
En algunas realizaciones, que incluyen tanto el módulo de índice hash 312 como el módulo de generación de claves de cifrado 314, el módulo de generación de claves de cifrado 314 genera una clave de cifrado usando un proceso diferente al que usa el módulo de índice hash 312 para generar el índice hash. Por ejemplo, en una realización, el módulo de generación de claves de cifrado 314 genera la clave de cifrado usando la clave globalmente única en combinación con la clave de dispositivo y el módulo de índice hash 312 genera un índice hash mediante el hash de la clave globalmente única como la sal combinada con el índice globalmente único, y la clave de dispositivo.
En una realización, el módulo de generación de claves de cifrado 314 pasa la clave de cifrado al módulo de cifrado de mensajes 316. Por ejemplo, el módulo de generación de claves de cifrado 314 se acopla comunicativamente al módulo de cifrado de mensajes 316 para enviar la clave de cifrado al módulo de cifrado de mensajes 316.
El módulo de cifrado de mensajes 316 opcional incluye código y rutinas para cifrar un mensaje. En una realización, el módulo de cifrado de mensajes 316 es un conjunto de instrucciones ejecutables por el procesador 206. En otra realización, el módulo de cifrado de mensajes 316 se almacena en la memoria persistente 205 y es accesible y ejecutable por el procesador 206. En cualquier realización, el módulo de cifrado de mensajes 316 está adaptado para cooperación y comunicación con el procesador 206, otros componentes del servidor NRM 101 y otros componentes del módulo de mensajería no retenida 220.
El módulo de cifrado de mensajes 316 cifra opcionalmente el mensaje recibido por el módulo receptor de mensajes 304. En una realización, el módulo de cifrado 316 cifra el mensaje recibido por el módulo receptor de mensajes 304 usando la clave de cifrado generada por, y recibida desde, el módulo de generación de claves de cifrado 314. En otra realización, el módulo de cifrado 316 cifra el mensaje usando una clave de cifrado diferente. En una realización, el mensaje no cifrado se borra de la memoria no persistente 207 en respuesta al cifrado. Por ejemplo, en una realización, el mensaje no cifrado se elimina por el módulo de eliminación 324 en respuesta al cifrado. En una realización, el módulo de cifrado 316 descifra un mensaje recuperado por el módulo de recuperación de mensajes 322.
En una realización, el módulo de cifrado de mensajes 316 pasa el mensaje cifrado al módulo de almacenamiento de mensajes y generación de identificador 318 para su almacenamiento en la memoria no persistente. Por ejemplo, el módulo de cifrado de mensajes 316 se acopla comunicativamente al módulo de almacenamiento de mensajes y generación de identificador 318 para enviar el mensaje cifrado al módulo de almacenamiento de mensajes y generación de identificador 318.
El módulo de almacenamiento de mensajes y generación de identificador 318 incluye código y rutinas para almacenar un mensaje, generar un identificador y enviar el identificador a un destinatario. En una realización, el módulo de almacenamiento de mensajes y generación de identificador 318 es un conjunto de instrucciones ejecutables por el procesador 206. En otra realización, el módulo de almacenamiento de mensajes y generación de identificador 318 se almacena en la memoria persistente 205 y es accesible y ejecutable por el procesador 206. En cualquier realización, el módulo de almacenamiento de mensajes y generación de identificador 318 se adapta para cooperación y comunicación con el procesador 206, otros componentes del servidor NRM 101 y otros componentes del módulo de mensajería no retenida 220.
El módulo de almacenamiento de mensajes y generación de identificador 318 almacena el mensaje. En una realización, el módulo de almacenamiento de mensajes y generación de identificador 318 en la memoria no persistente 207 de un servidor NRM 101. En una realización, el módulo de almacenamiento de mensajes y generación de identificador 318 recibe el índice hash generado por el módulo de índice hash 312 y almacena el mensaje usando el índice hash como un identificador para almacenar y recuperar el mensaje. Tal realización proporciona beneficiosamente un índice ofuscado para almacenar el mensaje. En una realización, el mensaje almacenado por el módulo de almacenamiento de mensajes y generación de identificador 318 es una versión cifrada del mensaje.
El módulo de almacenamiento de mensajes y generación de identificador 318 genera un identificador de mensaje. El identificador de mensaje es un identificador único que tiene un número enorme de valores potenciales, de modo que es virtualmente imposible adivinar o iterar un paso para descubrir un identificador válido, especialmente dado que un mensaje no se retiene indefinidamente en el sistema 100. El identificador de mensaje se asocia únicamente con un mensaje almacenado en la memoria no persistente 207 de al menos un servidor NRM 101. En una realización, el identificador de mensaje es un URL para el sistema de mensajería no retenida 100.
En realizaciones donde una clave globalmente única se generó por el módulo de generación de claves 308 y se usó por el módulo de índice hash 312 para generar un índice hash y/o por el módulo de generación de claves de cifrado 314 para generar una clave de cifrado, el identificador de mensaje incluye la clave globalmente única. Por ejemplo, el módulo de almacenamiento de mensajes y generación de identificador 318 genera un URL que contiene la clave globalmente única.
En realizaciones donde un índice globalmente único se generó por el módulo de generación de índices 310 y se usó por el módulo de índice hash 321 para generar un índice hash, el identificador de mensaje incluye el índice globalmente único. Por ejemplo, el módulo de almacenamiento de mensajes y generación de identificador 318 genera un URL que contiene la clave globalmente única y opcionalmente un índice globalmente único. En una realización, el URL no es un URL de HTTP indeterminado. En una realización, el URL es un URL de HTTPS indeterminado, que puede proporcionar beneficiosamente una mayor seguridad que un URL de HTTP. Se reconocerá que un u Rl es meramente un ejemplo de un identificador de mensaje y existen otros identificadores de mensaje.
El módulo de almacenamiento de mensajes y generación de identificador 318 envía el identificador de mensaje al destinatario. En una realización, el mensaje no se envía usando un servidor de terceros 190 (por ejemplo, los de servicios de mensajes tradicionales tales como correo electrónico, que retiene copias del mensaje). En cambio, el módulo de almacenamiento de mensajes y generación de identificador 318 envía el identificador de mensaje usando un servidor de terceros. Por ejemplo, el módulo de almacenamiento de mensajes y generación de identificador 318 envía el identificador de mensaje a través de un servicio de correo electrónico estándar alojado por un servidor de terceros 190. En una realización, el módulo de almacenamiento de mensajes y generación de identificador 318 usa un servicio de pasarela, por ejemplo, un servicio de pasarela de correo electrónico para evitar problemas con los filtros de correo no deseado y/o balanceo de carga de red.
En algunas realizaciones, en respuesta al envío del identificador, la información se elimina de la memoria no persistente del servidor o servidores NRM 101. En algunas realizaciones, la información eliminada del servidor o servidores NRM 101 asegura que el servidor o servidores NRM no tengan toda la información para identificar, localizar y descifrar el mensaje de manera independiente. Tales realizaciones pueden evitar beneficiosamente que un mensaje sea accedido por alguien distinto del destinatario. Ejemplos de información que se puede eliminar incluyen una o más de la clave globalmente única, el índice globalmente único, el índice hash, la clave de cifrado y el identificador de mensaje. Por ejemplo, en una realización, la clave globalmente única, el índice globalmente único, el índice hash, la clave de cifrado y el identificador de mensaje se eliminan del servidor o servidores NRM 101. En algunas realizaciones, la información eliminada del servidor o servidores NRM 101 y el identificador de mensajería aseguran que ni el servidor o servidores NRM 101 ni el destinatario del identificador de mensajería tengan toda la información para identificar, localizar y descifrar el mensaje de manera independiente. Por ejemplo, el identificador incluye la clave globalmente única, pero no la clave de dispositivo y el servidor NRM 101 no tiene la clave globalmente única, pero tiene la clave de dispositivo.
La información eliminada después de que se envía el identificador depende de la realización y de qué información existe. Por ejemplo, un índice globalmente único no se elimina cuando no se generó uno (por ejemplo, el módulo de mensajería no retenida 220 no incluía el módulo de generación de índices 310 opcional). En una realización, la información se elimina por el módulo de eliminación 324 tratado a continuación.
En algunas realizaciones, la identidad del remitente puede no ser compartida con el destinatario. Por ejemplo, el correo electrónico que incluye el identificador de mensaje no identifica el usuario de envío. En otro ejemplo, el mensaje recuperado por el módulo de recuperación de mensajes 322 y presentado al usuario destinatario no identifica al usuario remitente. En una realización, si el usuario remitente se identifica con el destinatario y/o en qué punto se determina en base a una preferencia de usuario del remitente. En una realización, si el usuario remitente no se identifica, el remitente identificado es el servidor NRM 101 que contiene el URL para el mensaje.
En una realización, el módulo de almacenamiento de mensajes y generación de identificador 318 pasa el identificador de mensaje a un servidor de terceros 190. Por ejemplo, el módulo de almacenamiento de mensajes y generación de identificador 318 se acopla comunicativamente al servidor de terceros 190 para enviar el identificador de mensaje al destinatario a través del servidor de terceros 190.
El módulo de copia de seguridad de mensajes 320 opcional incluye código y rutinas para proporcionar redundancia. En una realización, el módulo de copia de seguridad de mensajes 320 es un conjunto de instrucciones ejecutables por el procesador 206. En otra realización, el módulo de copia de seguridad de mensajes 320 se almacena en la memoria persistente 205 y es accesible y ejecutable por el procesador 206. En cualquier realización, el módulo de copia de seguridad de mensajes 320 se adapta para cooperación y comunicación con el procesador 206, otros componentes del servidor NRM 101 y otros componentes del módulo de mensajería no retenida 220.
En algunas realizaciones, la configuración del servidor NRM 101 hace más probable que un mensaje se pierda permanentemente antes de la entrega que en un sistema de mensajería tradicional (por ejemplo, correo electrónico). Por ejemplo, en algunas realizaciones, el servidor NRM 101 carece de almacenamiento persistente y escribible y los mensajes se almacenan en memoria no persistente; por lo tanto, una interrupción en la alimentación del servidor NRM 101 (por ejemplo, corte de energía o desastre natural) puede eliminar los mensajes no entregados en ese servidor n Rm 101. En otro ejemplo, en algunas realizaciones, el servidor NRM 101 se configura para eliminar activamente toda la memoria si el servidor NRM 101 se registra con el fin de mejorar la seguridad. Bajo tales circunstancias, los mensajes no entregados también se perderían de manera permanente.
En una realización, el módulo de copia de seguridad de mensajes 320 proporciona redundancia enviando información de copia de seguridad a al menos un servidor NRM 101 adicional. Tal realización aumenta beneficiosamente las posibilidades de que el mensaje sea entregable incluso si se elimina una memoria del servidor NRM. En una realización, la información de copia de seguridad incluye el mensaje recibido desde el cliente de mensajería del remitente 120. Por ejemplo, el módulo receptor de mensajes 304 del servidor NRM 101a recibe un mensaje y el módulo de copia de seguridad de mensajes 320 reenvía automáticamente una copia del mensaje recibido al servidor NRM 101b donde el módulo receptor de mensajes 304 del servidor NRM 101b recibe la copia. En algunas realizaciones, cuando una clave globalmente única asociada con un mensaje recibido se genera por el módulo de generación de claves 308, esa clave globalmente única es información de copia de seguridad y se envía por el módulo de copia de seguridad 320 a al menos otro servidor NMR 101. Por ejemplo, en una realización, el módulo receptor de mensajes 304 del servidor NMR 101a recibe un mensaje, el módulo de generación de claves 308 genera una clave globalmente única para ese mensaje y el módulo de copia de seguridad de mensajes 320 reenvía automáticamente una copia del mensaje recibido y la clave globalmente única al servidor NRM 101b.
En alguna realización, cuando un índice globalmente único asociado con un mensaje recibido se genera por el módulo de generación de índices 310 y se asocia con un mensaje recibido, ese índice globalmente único es información de copia de seguridad y se envía por el módulo de copia de seguridad 320 a al menos otro servidor NRM 101. Por ejemplo, en una realización, el módulo receptor de mensajes 304 del servidor NRM 101a recibe un mensaje, el módulo de generación de claves 308 genera una clave globalmente única para ese mensaje, el módulo de generación de índices 310 genera un índice globalmente único para el mensaje y el módulo de copia de seguridad de mensajes 320 reenvía automáticamente una copia del mensaje recibido, la clave globalmente única y el índice globalmente único al servidor NRM 101b.
En algunas realizaciones, cualquier índice hash o clave de cifrado generada para el al menos otro servidor NRM 101 (por ejemplo, el servidor NRM 101b) será diferente del índice hash o de la clave de cifrado para el servidor NRM 101 que recibió originalmente el mensaje (por ejemplo, el servidor NRM 101a) independientemente de si la misma clave globalmente única y/o índice globalmente único se reenvía y usa, debido a que cada servidor NRM 101 se asocia con una clave de dispositivo diferente.
A diferencia de los sistemas de mensajería tradicionales, tales como correo electrónico, cualquier mensaje redundante, al que también se hace referencia ocasionalmente en la presente memoria como “copias de seguridad”, “copias” o similares se eliminan del sistema de mensajería no retenida 101 cuando, dependiendo de la realización, el mensaje se recupera por el módulo de recuperación de mensajes 322, el mensaje se entrega para su presentación al destinatario o expira la vida útil del mensaje.
En una realización, el módulo de copia de seguridad de mensajes 320 pasa información de copia de seguridad a al menos otro servidor NRM 101. Por ejemplo, el módulo de copia de seguridad de mensajes 320 se acopla comunicativamente a al menos otro servidor NRM 101 para enviar la información de copia de seguridad a al menos otro servidor NRM 101.
El módulo de recuperación de mensajes 322 incluye código y rutinas para recuperar un mensaje. En una realización, el módulo de recuperación de mensajes 322 es un conjunto de instrucciones ejecutables por el procesador 206. En otra realización, el módulo de recuperación de mensajes 322 se almacena en la memoria persistente 205 y es accesible y ejecutable por el procesador 206. En cualquier realización, el módulo de recuperación de mensajes 322 se adapta para cooperación y comunicación con el procesador 206, otros componentes del servidor NRM 101 y otros componentes del módulo de mensajería no retenida 220.
El módulo de recuperación de mensajes 322 recupera un mensaje usando el identificador. En una realización, el módulo de recuperación de mensajes 322 recupera un mensaje usando el identificador en respuesta a la selección del identificador. Por ejemplo, supongamos que el identificador de mensaje es un URL de HTTPS que se envió al destinatario a través de correo electrónico. En una realización, el destinatario recibe el correo electrónico, abre el correo electrónico y selecciona el URL de HTTPS, el módulo de recuperación de mensajes 322 recibe el URL de HTTPS en respuesta a la selección y recupera el mensaje asociado y envía ese mensaje para su presentación al usuario (por ejemplo, en un cliente de mensajería 120 o una ventana del navegador web (no mostrada)).
Dado que muchos módulos del módulo de mensajería no retenida 220 son opcionales, existen muchas combinaciones de módulos y, por lo tanto, realizaciones. Los pasos que el módulo de recuperación de mensajes 322 da para recuperar un mensaje varían dependiendo de la realización y que, en su caso, los módulos opcionales (por ejemplo, 308, 310, 312, 314 y 316) se incluyen en el módulo de mensajería no retenida 200. Por ejemplo, supongamos que el módulo de mensajería no retenida 220 incluye un módulo de índice hash 312; en una realización, el módulo de recuperación de mensajes 322 recupera un mensaje usando una clave globalmente única incluida en el identificador de mensaje para obtener el índice hash para recuperar el mensaje desde la memoria no persistente. En otro ejemplo, supongamos que el módulo de mensajería no retenida 220 incluye un módulo de cifrado 316; en una realización, el módulo de recuperación de mensajes 322 recupera una versión cifrada del mensaje y debe obtener una versión descifrada antes de enviar el mensaje para su presentación al usuario.
En una realización, el módulo de recuperación de mensajes 322 recupera un mensaje usando el identificador en combinación con una clave de dispositivo. Por ejemplo, en una realización, el módulo de recuperación de mensajes 322 pasa la clave globalmente única (y, dependiendo de la realización, el índice globalmente único) desde el URL al módulo de índice hash 312 que recupera la clave de dispositivo asociada con el servidor NRM 101 y genera el índice hash que se usó para almacenar el mensaje. El módulo de recuperación de mensajes 322 recupera el mensaje usando el índice hash como identificador.
Dependiendo de la realización, el mensaje que recupera el módulo de recuperación de mensajes 322 está cifrado y necesita ser descifrado. En una realización, el módulo de recuperación de mensajes 322 pasa la clave globalmente única al módulo de generación de claves de cifrado 314 que recupera la clave de dispositivo asociada con el servidor NRM 101 y genera la clave de cifrado usada para descifrar el mensaje. En una realización, el módulo de recuperación de mensajes 322 descifra el mensaje en sí mismo. Por ejemplo, el módulo de recuperación de mensajes 322 recibe la clave de cifrado del módulo de clave de cifrado 314 y descifra el mensaje. En otra realización, el módulo de cifrado de mensajes 316 recibe la clave de cifrado y descifra el mensaje.
El módulo de recuperación de mensajes 322 envía el mensaje para su presentación al usuario en base al identificador. Por ejemplo, supongamos que el identificador de mensaje es un URL; en una realización, el módulo de recuperación de mensajes 322 envía el mensaje a la localización asociada con el URL para su presentación al usuario. En una realización, cuando el mensaje se presenta al usuario, el mensaje tiene un formato visual similar al de un correo electrónico. Por ejemplo, el mensaje se presenta a través del cliente de mensajería 120 o del navegador web con una línea de asunto, un cuerpo del mensaje y archivos adjuntos.
En una realización, el módulo de recuperación de mensajes 322 pasa información incluida en el identificador de mensaje (por ejemplo, una clave globalmente única) recibida de un usuario a uno o más de los otros módulos (por ejemplo, 312, 314, 316) del módulo de mensajería no retenida 220 con el fin de recuperar el mensaje y enviar el mensaje para su presentación. Por ejemplo, el módulo de recuperación de mensajes 322 se acopla comunicativamente al módulo de índice hash 312 para pasar la clave globalmente única recibida al módulo de índice hash 312 con el fin de obtener el identificador para recuperar el mensaje (es decir, el índice hash).
En una realización, el módulo de recuperación de mensajes 322 pasa un mensaje para su presentación a un usuario. Por ejemplo, el módulo de recuperación de mensajes 322 se acopla comunicativamente al cliente de mensajería 120, o al navegador web, del dispositivo cliente 115 del destinatario para enviar el mensaje al cliente de mensajería 120, o al navegador web, del dispositivo cliente 115 del destinatario. En una realización, el módulo de recuperación de mensajes 322 pasa una indicación de que el mensaje se ha recuperado al módulo de eliminación 324. Por ejemplo, el módulo de recuperación de mensajes 322 se conecta comunicativamente al módulo de eliminación 324 para enviar la indicación de que se ha recuperado el mensaje al módulo de eliminación 324.
El módulo de eliminación 324 incluye código y rutinas para eliminar mensajes de un servidor NRM 101. En una realización, el módulo de eliminación 324 es un conjunto de instrucciones ejecutables por el procesador 206. En otra realización, el módulo de eliminación 324 se almacena en la memoria persistente 205 y es accesible y ejecutable por el procesador 206. En cualquier realización, el módulo de eliminación 324 se adapta para cooperación y comunicación con el procesador 206, otros componentes del servidor NRM 101 y otros componentes del módulo de mensajería no retenida 220.
El módulo de eliminación 324 elimina los mensajes de un servidor NRM 101. En una realización, el módulo de eliminación 324 elimina un mensaje de un servidor de NRM 101 en respuesta a la recuperación del mensaje. Por ejemplo, supongamos que el módulo de eliminación 324 recibe una indicación desde el módulo de recuperación de mensajes 322 de que el mensaje se ha recuperado para su entrega o el módulo de eliminación 324 en sí mismo detecta que el módulo de recuperación de mensajes 322 detecta la recuperación del mensaje para su entrega; en una realización, el módulo de eliminación 324 elimina el mensaje del servidor o servidores NRM 101 que almacenan ese mensaje.
En una realización, el módulo de eliminación 324 elimina un mensaje de un servidor NRM 101 en respuesta a la entrega del mensaje. Por ejemplo, supongamos que el módulo de eliminación 324 recibe una indicación desde el cliente de mensajería de mensajes 120, o desde el navegador web, de que se ha recibido el mensaje; en una realización, el módulo de eliminación 324 elimina el mensaje del servidor o servidores NRM 101 que almacenan ese mensaje. En una realización, eliminar el mensaje incluye eliminar la información del remitente y del receptor en respuesta a la recuperación o entrega. En otras palabras, en una realización, el sistema de mensajería no retenida 100 no retiene ninguna información del remitente o del receptor, incluyendo registros de quién envió a quién un mensaje.
En una realización, el módulo de eliminación 324 elimina un mensaje de un servidor NRM 101 en respuesta a la expiración de un período de tiempo asociado con el mensaje. Se hace referencia ocasionalmente en la presente memoria a la expiración de un período de tiempo asociado con el mensaje como el “mensaje que excede su vida útil” o similar. En una realización, el período de tiempo, al que se hace referencia ocasionalmente en la presente memoria como “vida útil” de un mensaje, se define por el usuario. Por ejemplo, supongamos que el usuario especifica un período de tiempo usando el cliente de mensajería 120, y el período de tiempo se almacena en el dispositivo cliente 115 (por ejemplo, como preferencia de un usuario) y se envía con cada mensaje saliente enviado usando ese cliente de mensajería 120; en una realización, el módulo de eliminación 324 recibe el período de tiempo definido por el usuario y establece un temporizador en consecuencia. Cuando expira el temporizador (es decir, el período de tiempo definido por el usuario ha pasado), el módulo de eliminación 324 elimina el mensaje del servidor o servidores NRM 101 suponiendo que el mensaje no se ha eliminado aún (por ejemplo, el mensaje se recuperó y se eliminó del servidor o servidores NRM 101 en respuesta a la recuperación y antes de la expiración del temporizador). Dependiendo de la realización, el usuario puede definir un período de tiempo para cada mensaje individual o definir un período de tiempo a ser usado para todos los mensajes salientes a menos que se redefinan. Las realizaciones que proporcionan la eliminación de mensajes después de un tiempo definido por el usuario permiten beneficiosamente a un usuario asegurarse de que un mensaje no esté disponible en el servidor o servidores NRM 101 cuando el usuario ya no quiere que el mensaje esté disponible.
En una realización, el período de tiempo se define por el sistema. En una realización, el período de tiempo definido por el sistema incluye un valor por defecto usado cuando no se ha establecido un período de tiempo definido por el usuario. Por ejemplo, no define una vida útil del mensaje; en una realización, el módulo de eliminación 324 establece un temporizador por defecto que se define por el sistema. Cuando expira el temporizador por defecto, el módulo de eliminación 324 elimina el mensaje del servidor o servidores NRM 101 suponiendo que el mensaje no se ha eliminado ya.
En una realización, el período de tiempo definido por el sistema define una vida útil máxima del mensaje. Por ejemplo, en una realización, el módulo de eliminación 324 establece un temporizador que se define por el sistema, y cuando expira el temporizador definido por el sistema, el módulo de eliminación 324 elimina el mensaje del servidor o servidores NRM 101 suponiendo que el mensaje no se ha eliminado ya e independientemente de si ha expirado el temporizador definido por el usuario. Las realizaciones que proporcionan la eliminación de mensajes después de un período de tiempo máximo definido por el sistema reducen beneficiosamente los costes de ejecutar el sistema NRMS 100. Por ejemplo, la memoria no persistente 207 es a menudo más costosa por byte de capacidad que el almacenamiento persistente; por lo tanto, es deseable una tasa de rotación de memoria más alta, debido a que eliminar mensajes que no se han recuperado después de un cierto período de tiempo de modo que la memoria no persistente 207 se pueda usar por otros mensajes puede evitar el coste de añadir servidores NRM 101 adicionales y/o memoria no persistente 207 para acomodar mensajes que pueden no ser recuperados nunca. Las realizaciones que proporcionan la eliminación de mensajes después de un período de tiempo máximo definido por el sistema también pueden proporcionar seguridad adicional al sistema NRMS 100 limitando la cantidad de tiempo que un pirata informático u otra entidad malvada podría acceder potencialmente al mensaje en ruta desde el remitente al destinatario.
Un período de tiempo, independientemente de si el período de tiempo se define por el usuario o se define por el sistema, se puede medir a partir de uno de una pluralidad de eventos. Ejemplos de eventos incluyen, pero no se limitan a, la recepción del mensaje, el envío del identificador asociado con el mensaje al destinatario, recuperación del mensaje y entrega del mensaje. Las realizaciones en las que el período de tiempo se mide a partir de la recuperación o entrega del mensaje pueden permitir potencialmente a un destinatario otra oportunidad de recibir el mensaje a condición de que ocurra un error durante la recuperación o entrega del mensaje.
En una realización, el módulo de eliminación 324 elimina otra información del servidor NRM 101 además de los mensajes. Ejemplos de otra información incluyen, pero no se limitan a, una o más de la clave y el índice globalmente único y el identificador de mensaje, la clave de cifrado, el mensaje no cifrado, el remitente y el destinatario. Por ejemplo, en una realización, en respuesta al envío del identificador de mensaje asociado con un mensaje, el módulo de eliminación 324 elimina la clave globalmente única y el identificador de mensaje asociado con ese mensaje del servidor NRM 101 asegurando que el servidor NRM carece de la información necesaria para identificar y localizar el mensaje de manera independiente.
En una realización, el módulo de eliminación 324 elimina todo de la memoria en respuesta a la detección de un acceso no autorizado del servidor NRM 101. Por ejemplo, supongamos que el servidor NRM 101 detecta un número predeterminado de intentos fallidos de inicio de sesión usando el nombre de usuario de un administrador del sistema; en una realización, el servidor NRM 101 elimina todo de la memoria. En una realización, el módulo de eliminación 324 elimina todo de la memoria en respuesta a la detección de un acceso del servidor NRM 101, independientemente de si el acceso está autorizado o no autorizado. Por ejemplo, supongamos que el servidor NRM 101 detecta un inicio de sesión del administrador del sistema con éxito; en una realización, el servidor NRM 101 elimina todo de la memoria en respuesta a la detección del inicio de sesión.
La eliminación impide el acceso a los datos eliminados. La eliminación que realiza el módulo de eliminación 324 puede variar dependiendo de la realización. Ejemplos de eliminación incluyen, pero no se limitan a, eliminar identificadores (por ejemplo, punteros) de los datos eliminados, sobrescribir los datos eliminados con datos nuevos (por ejemplo, un nuevo mensaje o escribir con ceros) o cualquier otro método de borrado de datos de la memoria, lo que permite que la memoria se reutilice.
Procesos de ejemplo
Las Figuras 4, 5 y 6A-B representan diversos métodos 400, 500, 600 realizados por el sistema descrito anteriormente en referencia a las Figuras 1-3.
La Figura 4 es un diagrama de flujo que ilustra un método 400 para mensajería electrónica no retenida según una realización. En el bloque 402, el módulo receptor de mensajes 304 del módulo de mensajería no retenida 220 recibe un mensaje del cliente de mensajería de un remitente 120. En el bloque 410, el módulo de cifrado de mensajes 316 cifra opcionalmente el mensaje recibido en el bloque 402. En el bloque 412, el módulo de almacenamiento de mensajes y generación de identificador 318 almacena el mensaje en la memoria no persistente 207. En el bloque 414, el módulo de almacenamiento de mensajes y generación de identificador 318 genera y envía un identificador de mensaje asociado con el mensaje almacenado en el paso 412. En el bloque 418, el módulo de recuperación de mensajes 322 recibe una selección del identificador de mensaje. En respuesta a recibir la selección del identificador de mensaje en el bloque 418, el módulo de recuperación de mensajes 322, en el bloque 420, recupera el mensaje, descifra el mensaje si se cifró en el bloque 410, y envía el mensaje para su presentación. En el bloque 422, el módulo de eliminación 324 elimina el mensaje de la memoria no persistente 207.
La Figura 5 es un diagrama de flujo que ilustra un método 500 para mensajería electrónica no retenida según otra realización. En el bloque 502, el módulo receptor de mensajes 304 del módulo de mensajería no retenida 220 recibe un mensaje del cliente de mensajería 120 del remitente. En el bloque 504, el módulo de generación de claves 308 genera una clave globalmente única. En el bloque 506, el módulo de generación de índices 310 genera opcionalmente un índice globalmente único. En el bloque 508, el módulo de índice hash genera un índice hash en base, al menos en parte, a la clave globalmente única generada en el bloque 504 y el índice globalmente único si se generó en el bloque 506. En el bloque 510, el módulo de cifrado de mensajes 316 cifra el mensaje usando una clave de cifrado en base, al menos en parte, a la clave globalmente única generada en el bloque 504. En el bloque 512, el módulo de almacenamiento de mensajes y generación de identificador 318 almacena el mensaje cifrado en memoria no persistente según el índice hash generado en el bloque 508. En el bloque 514, el módulo de almacenamiento de mensajes y generación de identificadores 318 genera y envía un identificador de mensaje que incluye la clave globalmente única generada en el bloque 504. Cuando se genera un índice globalmente único en el bloque 506 y se usa para generar el índice hash en el bloque 508, el identificador de mensaje generado en el bloque 514 también incluye ese índice globalmente único. En el bloque 516, la información (por ejemplo, la clave globalmente única generada en el bloque 504, el índice globalmente único generado opcionalmente en el bloque 506, el índice hash generado en el bloque 508 y el identificador de mensaje generado en el bloque 514) se elimina de la memoria no persistente 207 por el módulo de eliminación 324. En el bloque 518, el módulo de recuperación de mensajes 322 recibe la selección del identificador de mensaje enviado en el bloque 514. En respuesta a la recepción de la selección del identificador de mensaje, en el bloque 518, el módulo de recuperación de mensajes 322 recupera, en el bloque 520, el mensaje y envía el mensaje para su presentación. En el bloque 522, el módulo de eliminación 324 elimina el mensaje de la memoria no persistente 207.
Las Figuras 6A y 6B son diagramas de flujo que ilustran un método 600 para mensajería electrónica no retenida según otra realización más.
En el bloque 602, el módulo receptor de mensajes 304 del módulo de mensajería no retenida 220 recibe un mensaje del cliente de mensajería del remitente 120. En el bloque 604, el módulo de solicitud de autenticación 306 solicita y recibe la autenticación del remitente desde un servidor de autorización 107. En el bloque 606, en respuesta a la autenticación en el bloque 604, el módulo de mensajería no retenida 220 recupera las preferencias del remitente, incluyendo una preferencia de vida útil del mensaje y la preferencia de identificación del remitente. En el bloque 608, el módulo de generación de claves 308 genera una clave globalmente única. En el bloque 610, el módulo de generación de índices 310 genera opcionalmente un índice globalmente único. En el bloque 612, el módulo de índice hash 312 genera un índice hash en base, al menos en parte, a la clave globalmente única generada en el bloque 608 y el índice globalmente único si se generó en el bloque 610. En el bloque 614, el módulo de cifrado de mensajes 316 cifra el mensaje usando una clave de cifrado en base, al menos en parte, a la clave globalmente única generada en el bloque 608. En el bloque 616, el módulo de almacenamiento de mensajes y generación de identificador 318 almacena el mensaje cifrado en memoria no persistente según el índice hash. En el bloque 618, el módulo de eliminación 324 establece un temporizador asociado con el mensaje. En el bloque 620, el módulo de almacenamiento de mensajes y generación de identificador 318 genera y envía un identificador de mensaje que incluye la clave globalmente única generada en el bloque 608. Cuando se genera un índice globalmente único en el bloque 610 y se usa para generar el índice hash en el bloque 612, el identificador de mensaje generado en el bloque 620 también incluye ese índice globalmente único.
Con referencia ahora a la Figura 6B, en el bloque 622, la información (por ejemplo, la clave globalmente única generada en el bloque 608, el índice globalmente único generado opcionalmente en el bloque 610, el índice hash generado en el bloque 612, la clave de cifrado usada en el bloque 614 y el identificador de mensaje generado en el bloque 620) se elimina de la memoria no persistente 207 por el módulo de eliminación 324.
En el bloque 624, el módulo de recuperación de mensajes 322 determina si se ha recibido una selección del identificador de mensaje. Si el módulo de recuperación de mensajes 322 determina que se ha recibido una selección del identificador de mensaje (624-Sí), el método 600 continúa en el bloque 630. En el bloque 630, el módulo de recuperación de mensajes 322 recupera el mensaje y envía el mensaje para su presentación al usuario. El módulo de eliminación 324 elimina, en el bloque 632, el mensaje de la memoria no persistente 207, y el método 600 termina. Si el módulo de recuperación de mensajes 322 determina que no se ha recibido una selección del identificador de mensaje (624-No), el método 600 continúa en el bloque 626. En el bloque 626, el módulo de eliminación 324 determina si se ha cumplido o excedido la vida útil del mensaje definida por el usuario. Si el módulo de eliminación 324 determina que se ha cumplido o excedido la vida útil del mensaje definida por el usuario (626-Sí), el método 600 continúa en el bloque 632. Si el módulo de eliminación 324 determina que no se ha cumplido o excedido la vida útil del mensaje definida por el usuario (626-No), el método 600 continúa en el bloque 628.
En el bloque 628, el módulo de eliminación 324 determina si se ha cumplido o excedido la vida útil del mensaje definida por el sistema. Si el módulo de eliminación 324 determina que se ha cumplido o excedido la vida útil del mensaje definida por el sistema (628-Sí), el método 600 continúa en el bloque 632. Si el módulo de eliminación 324 determina que no se ha cumplido o excedido la vida útil del mensaje definida por el sistema (628-No), el método 600 continúa en el bloque 624. En el bloque 632, el módulo de eliminación 324 elimina el mensaje de la memoria no persistente 207, y el método 600 termina.
La descripción anterior de las realizaciones se ha presentado con propósitos de ilustración y de descripción. No se pretende que sea exhaustiva o que limite las presentes realizaciones a las formas precisas descritas. Muchas modificaciones y variaciones son posibles a la luz de la enseñanza anterior. Se pretende que el alcance de las presentes realizaciones no se limite por esta descripción detallada, sino más bien por las reivindicaciones de esta solicitud. Como se entenderá por los familiarizados con la técnica, las presentes realizaciones pueden adoptar otras formas específicas sin apartarse del alcance o de las características esenciales de las mismas. Del mismo modo, la denominación y división particular de los módulos, rutinas, rasgos, atributos, metodologías y otros aspectos no son obligatorios o significativos, y los mecanismos que implementan una realización o sus características pueden tener diferentes nombres, divisiones y/o formatos. Además, como será evidente, los módulos, rutinas, características, atributos, metodologías y otros aspectos de las realizaciones se pueden implementar como software, hardware, microprogramas o cualquier combinación de los tres. También, siempre que un componente, un ejemplo del cual es un módulo, se implemente como software, el componente se puede implementar como un programa autónomo, como parte de un programa más grande, como una pluralidad de programas separados, como una biblioteca vinculada estática o dinámicamente, como un módulo cargable del núcleo, como un controlador de dispositivo, y/o de todas y cada una de otras formas conocidas ahora o en el futuro. Además, las realizaciones no se limitan de ninguna forma a la implementación en ningún lenguaje de programación específico, o para cualquier sistema operativo o entorno específico. En consecuencia, la descripción se pretende que sea ilustrativa, pero no limitativa, del alcance, que se expone en las siguientes reivindicaciones.

Claims (14)

REIVINDICACIONES
1. Un método (500, 600), configurado para su ejecución en un dispositivo de mensajería no retenida (101a, 220a, 101b, 220b, 101c, 220c, 101,220), que comprende:
recibir (502, 602), usando uno o más dispositivos informáticos del dispositivo de mensajería no retenida (101a, 220a, 101b, 220b, 101c, 220c, 101, 220), un mensaje de un cliente de mensajería (120a, 120b, 120c) de un usuario remitente;
generar (504, 608), usando el uno o más dispositivos informáticos, una clave globalmente única;
generar (508, 612), usando el uno o más dispositivos informáticos, un índice hash en base, al menos en parte, a la clave globalmente única y una clave de dispositivo;
generar, usando el uno o más dispositivos informáticos, una clave de cifrado en base, al menos en parte, a la clave globalmente única;
cifrar (510, 614), usando el uno o más dispositivos informáticos, el mensaje usando la clave de cifrado; almacenar (512, 616), usando el uno o más dispositivos informáticos, el mensaje cifrado en una memoria no transitoria y no persistente del uno o más dispositivos informáticos usando el índice hash;
generar (514, 620), usando el uno o más dispositivos informáticos, un identificador de mensaje en base, al menos en parte, a la clave globalmente única;
enviar (514, 620), usando el uno o más dispositivos informáticos, el identificador de mensaje a un dispositivo destinatario;
eliminar (516, 622), usando el uno o más dispositivos informáticos, quitando la clave globalmente única, el índice hash y el identificador de mensaje del uno o más dispositivos informáticos en respuesta al envío del identificador de mensaje al dispositivo destinatario;
determinar, usando el uno o más dispositivos informáticos, si se recibe una selección del identificador de mensaje;
en respuesta a la determinación de que se ha recibido la selección del identificador de mensaje:
(a) determinar, usando el uno o más dispositivos informáticos, el índice hash de la clave globalmente única recibida en respuesta a la selección del identificador de mensaje;
(b) recuperar, usando el uno o más dispositivos informáticos, el mensaje cifrado de la memoria no transitoria y no persistente usando el índice hash;
(c) determinar, usando el uno o más dispositivos informáticos, la clave de cifrado usando la clave globalmente única y descifrar el mensaje cifrado usando la clave de cifrado;
(d) enviar el mensaje al dispositivo destinatario para su presentación; y
(e) eliminar (522, 632), usando el uno o más dispositivos informáticos, quitando el mensaje cifrado del uno o más dispositivos en respuesta al envío del mensaje al dispositivo destinatario para su presentación;
en respuesta a la determinación de que no se ha recibido la selección del identificador del mensaje:
(a) determinar, usando uno o más dispositivos informáticos, si se ha excedido una vida útil de mensaje definida por el usuario o una vida útil de mensaje definida por el sistema; y
(b) en respuesta a determinar que se ha excedido al menos una de la vida útil del mensaje definida por el usuario y la vida útil del mensaje definida por el sistema, eliminar (522, 632), usando el uno o más dispositivos informáticos, quitando el mensaje cifrado del uno o más dispositivos.
2. El método (500, 600) de la reivindicación 1 que comprende además:
establecer, usando el uno o más dispositivos informáticos, un temporizador en base al período de tiempo definido por el usuario; y
eliminar, usando el uno o más dispositivos informáticos, el mensaje de la memoria no transitoria y no persistente del uno o más dispositivos informáticos en respuesta a un fallo al recibir la selección del identificador de mensaje desde el dispositivo destinatario dentro del período de tiempo definido por el usuario en base al temporizador.
3. El método (500, 600) de la reivindicación 1 que comprende además:
establecer, usando el uno o más dispositivos informáticos, un temporizador en base al período de tiempo definido por el sistema; y
eliminar, usando el uno o más dispositivos informáticos, el mensaje de la memoria no transitoria y no persistente del uno o más dispositivos informáticos en respuesta a un fallo al recibir la selección del identificador de mensaje desde el dispositivo destinatario dentro del período de tiempo definido por el sistema en base al temporizador.
4. El método (500, 600) de la reivindicación 1 en donde el identificador de mensaje y el mensaje se envían anónimamente en base a una preferencia del usuario asociada con un remitente del mensaje.
5. El método (500, 600) de la reivindicación 1 en donde el identificador de mensaje es un localizador de recursos uniforme, URL.
6. El método (500, 600) de la reivindicación 1 en donde el identificador de mensaje y el mensaje se envían a un cliente de correo electrónico a través de un protocolo de correo electrónico estándar.
7. El método (500, 600) de la reivindicación 1 en donde el uno o más dispositivos informáticos carecen de una memoria escribible y persistente.
8. Un dispositivo de mensajería no retenida (101a, 220a, 101b, 220b, 101c, 220c, 101,220) que comprende: un módulo receptor de mensajes (304) para recibir un mensaje de un cliente de mensajería de un usuario remitente;
un módulo de generación de claves (308) para generar una clave globalmente única;
un módulo de índice hash (312) para generar un índice hash en base, al menos en parte, a la clave globalmente única y una clave de dispositivo, en donde el mensaje se almacena en una memoria no transitoria y no persistente usando el índice hash;
un módulo de cifrado de mensajes (316) para generar una clave de cifrado en base, al menos en parte, a la clave globalmente única y cifrar el mensaje usando la clave de cifrado antes de almacenar el mensaje en la memoria no transitoria y no persistente;
un módulo de almacenamiento de mensajes y generación de identificador (318) para almacenar el mensaje cifrado en la memoria no transitoria y no persistente de uno o más dispositivos informáticos, para generar un identificador de mensaje en base, al menos en parte, a la clave globalmente única y para enviar el identificador de mensaje a un dispositivo destinatario;
un módulo de recuperación de mensajes (322) para recibir una selección del identificador de mensaje desde el dispositivo destinatario, para recuperar el mensaje desde la memoria no transitoria y no persistente y para enviar el mensaje al dispositivo destinatario para su presentación; y
un módulo de eliminación (324) para eliminar quitando (1) la clave globalmente única, el índice hash y el identificador de mensaje del uno o más dispositivos informáticos en respuesta al envío del identificador de mensaje al dispositivo destinatario y para eliminar quitando (2) el mensaje del uno o más dispositivos en respuesta al envío del mensaje al dispositivo destinatario para su presentación, la eliminación del mensaje en respuesta a uno de:
(a) determinar, usando el uno o más dispositivos informáticos, el índice hash de la clave globalmente única recibida en respuesta a la selección del identificador de mensaje; recuperar, usando el uno o más dispositivos informáticos, el mensaje cifrado de la memoria no transitoria y no persistente usando el índice hash; determinar, usando el uno o más dispositivos informáticos, la clave de cifrado usando la clave globalmente única y descifrar el mensaje cifrado usando la clave de cifrado; y enviar el mensaje al dispositivo destinatario para su presentación; y
(b) determinar, usando uno o más dispositivos informáticos, si se ha excedido la vida útil del mensaje definida por el usuario o la vida útil del mensaje definida por el sistema.
9. El dispositivo de mensajería no retenida (101a, 220a, 101b, 220b, 101c, 220c, 101, 220) de la reivindicación 8 que comprende además:
un módulo de eliminación (324) para establecer un temporizador en base al período de tiempo definido por el usuario y para eliminar el mensaje de la memoria no transitoria y no persistente del uno o más dispositivos informáticos en respuesta a un fallo al recibir la selección del identificador de mensaje desde el dispositivo destinatario dentro del período de tiempo definido por el usuario en base al temporizador.
10. El dispositivo de mensajería no retenida (101a, 220a, 101b, 220b, 101c, 220c, 101, 220) de la reivindicación 8 que comprende además:
un módulo de eliminación (324) para configurar un temporizador en base al período de tiempo definido por el sistema para el sistema y para eliminar el mensaje de la memoria no transitoria y no persistente del uno o más dispositivos informáticos en respuesta a un fallo al recibir la selección del identificador de mensaje del dispositivo destinatario dentro del período de tiempo definido por el sistema en base al temporizador.
11. El dispositivo de mensajería no retenida (101a, 220a, 101b, 220b, 101c, 220c, 101, 220) de la reivindicación 8 en donde el identificador de mensaje y el mensaje se envían anónimamente en base a una preferencia del usuario asociada con un remitente del mensaje.
12. El dispositivo de mensajería no retenida (101a, 220a, 101b, 220b, 101c, 220c, 101, 220) de la reivindicación 8 en donde el identificador de mensaje es un URL.
13. El dispositivo de mensajería no retenida (101a, 220a, 101b, 220b, 101c, 220c, 101, 220) de la reivindicación 8 en donde el sistema carece de una memoria escribible y persistente.
14. El dispositivo de mensajería no retenida (101a, 220a, 101b, 220b, 101c, 220c, 101, 220) de la reivindicación 8 en donde el identificador de mensaje y el mensaje se envían a un cliente de correo electrónico a través de un protocolo de correo electrónico estándar.
ES14767599T 2013-03-15 2014-03-12 Sistema de mensajes no retenidos Active ES2753359T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/844,136 US8837717B1 (en) 2013-03-15 2013-03-15 Non-retained message system
PCT/US2014/025078 WO2014151140A1 (en) 2013-03-15 2014-03-12 Non-retained message system

Publications (1)

Publication Number Publication Date
ES2753359T3 true ES2753359T3 (es) 2020-04-08

Family

ID=51493446

Family Applications (1)

Application Number Title Priority Date Filing Date
ES14767599T Active ES2753359T3 (es) 2013-03-15 2014-03-12 Sistema de mensajes no retenidos

Country Status (6)

Country Link
US (1) US8837717B1 (es)
EP (1) EP2974162B1 (es)
CA (1) CA2907058C (es)
DK (1) DK2974162T3 (es)
ES (1) ES2753359T3 (es)
WO (1) WO2014151140A1 (es)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230379340A1 (en) * 2016-08-22 2023-11-23 Paubox, Inc. Method for securely communicating email content between a sender and a recipient

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10666590B2 (en) * 2013-10-21 2020-05-26 Dropbox, Inc. Secure sent message identifier
JP6265783B2 (ja) * 2014-03-06 2018-01-24 キヤノン株式会社 暗号化/復号化システム及びその制御方法、並びにプログラム
ES2758124T3 (es) * 2014-09-15 2020-05-04 John R Thorpe Sistema de mensajes no retenidos
US10423441B2 (en) * 2016-09-06 2019-09-24 James CATTERMOLE Computer-implemented methods and systems of automatically generating and storing tasks for messaging applications
US10581808B2 (en) * 2017-03-23 2020-03-03 Microsoft Technology Licensing, Llc Keyed hash contact table
US11330003B1 (en) * 2017-11-14 2022-05-10 Amazon Technologies, Inc. Enterprise messaging platform
US11327735B2 (en) * 2018-10-16 2022-05-10 Intel Corporation Attestation manifest derivation and distribution using software update image

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001010090A1 (en) * 1999-07-28 2001-02-08 Tomkow Terrance A System and method for verifying delivery and integrity of electronic messages
US7146009B2 (en) * 2002-02-05 2006-12-05 Surety, Llc Secure electronic messaging system requiring key retrieval for deriving decryption keys
US7496631B2 (en) * 2002-08-27 2009-02-24 Aol Llc Delivery of an electronic communication using a lifespan
US7523314B2 (en) * 2003-12-22 2009-04-21 Voltage Security, Inc. Identity-based-encryption message management system
JP2005346182A (ja) * 2004-05-31 2005-12-15 Fujitsu Ltd 情報処理装置、耐タンパ方法、耐タンパプログラム
US7545163B2 (en) * 2006-02-22 2009-06-09 Delphi Technologies, Inc. Three phase motor diagnostics and phase voltage feedback utilizing a single A/D input
US8601555B2 (en) * 2006-12-04 2013-12-03 Samsung Electronics Co., Ltd. System and method of providing domain management for content protection and security
US8554176B2 (en) * 2007-09-18 2013-10-08 Qualcomm Incorporated Method and apparatus for creating a remotely activated secure backup service for mobile handsets
US8185521B2 (en) * 2008-02-29 2012-05-22 Research In Motion Limited System and method for presentation of local and remote message search results
US8191147B1 (en) * 2008-04-24 2012-05-29 Symantec Corporation Method for malware removal based on network signatures and file system artifacts
US20100057869A1 (en) * 2008-08-27 2010-03-04 Angelos Stavrou Event Driven Email Revocation
US9773431B2 (en) * 2009-11-10 2017-09-26 Maxim Integrated Products, Inc. Block encryption security for integrated microcontroller and external memory system
US8327157B2 (en) * 2010-02-15 2012-12-04 Vistech LLC Secure encrypted email server

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230379340A1 (en) * 2016-08-22 2023-11-23 Paubox, Inc. Method for securely communicating email content between a sender and a recipient

Also Published As

Publication number Publication date
US8837717B1 (en) 2014-09-16
EP2974162A4 (en) 2016-11-16
WO2014151140A1 (en) 2014-09-25
US20140301548A1 (en) 2014-10-09
CA2907058A1 (en) 2014-09-25
EP2974162A1 (en) 2016-01-20
DK2974162T3 (da) 2019-11-11
EP2974162B1 (en) 2019-08-07
CA2907058C (en) 2021-10-26

Similar Documents

Publication Publication Date Title
US9805210B2 (en) Encryption-based data access management
US8837717B1 (en) Non-retained message system
US8489889B1 (en) Method and apparatus for restricting access to encrypted data
EP3565174B1 (en) Access management system, access management method, and program
US9202076B1 (en) Systems and methods for sharing data stored on secure third-party storage platforms
US10924486B2 (en) Secure access management for tools within a secure environment
US9245139B2 (en) Non-retained message system
CN104662870A (zh) 数据安全管理系统
JP2018121334A (ja) アプリケーション間でユーザ情報を安全に転送すること
CN109076054B (zh) 用于管理单点登录应用程序的加密密钥的系统和方法
US9276887B2 (en) Systems and methods for managing security certificates through email
CN103563278A (zh) 保护加密的虚拟硬盘
US7930754B2 (en) Method for concealing user identities on computer systems through the use of temporary aliases
EP3282670B1 (en) Maintaining data security in a network device
US10740478B2 (en) Performing an operation on a data storage
ES2758124T3 (es) Sistema de mensajes no retenidos
JP2007095077A (ja) 安全で回復可能なパスワード
JP2017055274A (ja) メールシステム、電子メールの転送方法及びプログラム
Artemi et al. SecureCloud: A Cross-Platform Encrypted File Sharing Solution with Forensic Imaging Capability