AT4261U2 - Sich selbst zerstörendes dokument oder e-mailnachrichtensystem - Google Patents

Sich selbst zerstörendes dokument oder e-mailnachrichtensystem Download PDF

Info

Publication number
AT4261U2
AT4261U2 AT0086500U AT8652000U AT4261U2 AT 4261 U2 AT4261 U2 AT 4261U2 AT 0086500 U AT0086500 U AT 0086500U AT 8652000 U AT8652000 U AT 8652000U AT 4261 U2 AT4261 U2 AT 4261U2
Authority
AT
Austria
Prior art keywords
digital object
container
document
virtual container
lifetime control
Prior art date
Application number
AT0086500U
Other languages
English (en)
Other versions
AT4261U3 (de
Original Assignee
Purdue Pharma Lp
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 Purdue Pharma Lp filed Critical Purdue Pharma Lp
Publication of AT4261U2 publication Critical patent/AT4261U2/de
Publication of AT4261U3 publication Critical patent/AT4261U3/de

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/107License processing; Key processing
    • G06F21/1076Revocation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/107License processing; Key processing
    • G06F21/1077Recurrent authorisation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/107License processing; Key processing
    • G06F21/1078Logging; Metering
    • 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
    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/107Computer-aided management of electronic mailing [e-mailing]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2101Auditing as a secondary aspect
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2137Time limited access, e.g. to a computer or data
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2143Clearing memory, e.g. to prevent the data from being stolen
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2145Inheriting rights or properties, e.g., propagation of permissions or restrictions within a hierarchy
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2151Time stamp

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Strategic Management (AREA)
  • Technology Law (AREA)
  • Multimedia (AREA)
  • Marketing (AREA)
  • Tourism & Hospitality (AREA)
  • Medical Informatics (AREA)
  • Economics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • General Business, Economics & Management (AREA)
  • Databases & Information Systems (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)
  • Storage Device Security (AREA)

Abstract

Sich selbst zerstörendes Dokument oder E-Mailnachrichtensystem, das automatisch Dokumente oder E-Mailnachrichten zu einem vorher festgelegten Zeitpunkt zerstört, indem ein Makro oder ein Virus dem Dokument oder der E-Mailnachricht angefügt wird. Ein Makro wird erzeugt (220) und der Datei, einer E-Mailnachricht (280) oder einem Dokument (270), angefügt (230), wenn sie erzeugt wird. Das Makro enthält ausführbaren Code oder ein ausführbares Programm, das den Computer anweist, die Datei, an die das Virus angefügt ist, zu einer gewünschten Zeit zu überschreiben und/oder zu löschen.

Description


   <Desc/Clms Page number 1> 
 



  Die vorliegende Erfindung betrifft das Gebiet der elektronisch erzeugten Dokumente, elektronische Nachrichten ("E-Mail") miteinbezogen, und das Feld der Verwahrung und Löschung von Dokumenten. 



  E-Mailnachrichtensysteme werden von Unternehmen oder privat weltweit rege genutzt. EMailsysteme ermöglichen es einem Benutzer, elektronische Nachrichten zu anderen Benutzern zu senden und elektronische Nachrichten von anderen Benutzern zu erhalten. Ein E-Mailsystem kann derart konfiguriert werden, dass den Benutzern, die an ein Local Area Network (LAN) angeschlossen sind, Nachrichtendienste zur Verfügung gestellt werden, und dass es den Benutzern ermöglicht wird, Nachrichten zu/von anderen Benutzern ausserhalb des LAN über ein externes Netzwerk wie das Internet zu senden/zu empfangen. E-Mailsysteme ermöglichen es den Benutzern auch, Nachrichten über das E-Mailsystem zu speichern, zu kopieren und weiterzuleiten. 



  Die Leichtigkeit, mit der es ein E-Mailsystem den Benutzern erlaubt, Nachrichten zu speichern, zu kopieren und weiterzuleiten, führt zu der ungewollten Konsequenz, dass es schwierig wird, Dokumente zu verwahren. 



  Typischerweise wird das Verfahren der Dokumentenverwahrung von einem Unternehmen implementiert, um sicherzustellen, dass Dokumente, die von dem Unternehmen erzeugt oder 

 <Desc/Clms Page number 2> 

 empfangen wurden, für einen bestimmten Zeitraum verwahrt und dann zerstört werden. Des weiteren können Zeiträume, über die Dokumente verwahrt werden sollen, für verschiedene Dokumente unterschiedlich sein. Eines der Ziele des Verfahrens der Dokumentenverwahrung ist es, ein systematisches Verfahren zum Verwahren und Zerstören von Dokumenten zu liefern, so dass das Unternehmen mit einiger Gewissheit sagen kann, welche Klassen von Dokumenten eines bestimmten Zeitraums noch existieren. 



  Ein effektives Verfahren der Dokumentenverwahrung ist auch wichtig im Zusammenhang mit Rechtsstreitigkeiten. Hier ist es wichtig, dass ein Unternehmen ein konsistentes Verfahren zur Verwahrung und Zerstörung von Dokumenten hat, und dass das Unternehmen dieses Verfahren implementiert. Zum Beispiel, falls das Verfahren der Dokumentenverwahrung eines Unternehmens festlegt, dass Briefe drei Jahre lang verwahrt werden, und falls es diesem Verfahren konsistent folgt, wird es der Anklage, dass ein bestimmter fünf Jahre alter Brief zerstört wurde, weil er im Rechtsstreit das Unternehmen belastet hätte, weniger verwundbar gegenüber stehen.

   Des weiteren ist es möglich, dass übriggebliebene Dokumente ein unvollständiges oder inakkurates Bild eines Vorgangs widerspiegeln, der in dieser Zeit ablief, falls dem Verfahren der Dokumentenverwahrung nicht konsistent gefolgt wird und nur einige Dokumente eines bestimmten Zeitraums vernichtet werden. 



  Systeme, die das Verfahren der Dokumentenverwahrung durchsetzen, sind wohl bekannt. 



  Typischerweise suchen sie die Dateien eines Netzwerks periodisch ab und löschen Dateien, die vor einer bestimmten Zeit erzeugt wurden. Da solche Systeme auf einem Netzwerk laufen, können sie keine Dateien löschen, die aufden Festplatten individueller Computer gespeichert sind. Um diese Dateien ansprechen zu können, muss ein Programm zur Dokumenten- verwahrung aufjedem Computer installiert werden. Allerdings selbst wenn das Programm zur Dokumentenverwahrung aufjedem Computer installiert wird, wird es dem System immer noch unmöglich sein, Dateien, die auf einer Diskette oder einem anderen externen Medium gespeichert sind, zu löschen. 



  Auch können diese Systeme keine Dateien löschen, die via E-Mail zu anderen Computern ausserhalb des Netzwerks geschickt wurden. Demnach werden Dateien, die auf den Heimcomputer oder das Laptop eines Mitarbeiters oder einer dritten Partei transferiert wurden, von einem konventionellen System zur Dokumentenverwahrung nicht gelöscht. 

 <Desc/Clms Page number 3> 

 



  Gemäss einer ersten Ausfuhrungsform der Erfindung wird ein sich selbst zerstörendes Dokumenten- und E-Mailsystem bereitgestellt, das Dokumente oder E-Mails zu einem vorbestimmten Zeitpunkt automatisch zerstört, indem ein ausführbares Modul wie ein "Virus" an das Dokument oder das E-Mail angehängt wird. 



  Computerviren sind wohl bekannt. Im allgemeinen ist ein Computervirus ein Stück ausführbarer Code oder Programm, das sich an eine Gast-Datei anhängt. Zum Beispiel operieren "angehängte Viren" derart, dass sie sich ans Ende des Gastprogramms anhängen und das Programm zwingen, den Virencode vor Ausführung des Gastprogramms auszuführen. 



  "Voranstehende Viren" hingegen hängen sich an den Anfang eines Gastprogramms. Andere Virenarten befinden sich in anderen Teilen des Gastprogramms. Andere Virenklassen sind als Makroviren bekannt. Diese Viren sind Makros, die in   Textdokumenten   eingebettet sind, und so konfiguriert werden können, dass sie ausgeführt werden, wenn das Dokument geöffnet, erstellt oder gespeichert wird. Typischerweise wird ein Virus, der in seiner Gastdatei oder in seinem Gastprogramm bleibt und nicht auf andere Dateien überspringt, als Trojanisches Pferd bezeichnet. 



  In Übereinstimmung mit der ersten Ausführungsform der Erfindung wird ein ausführbares Modul in Form eines Trojanischen Pferdes an eine Datei gehängt (wie etwa eine E-Mail oder ein Dokument), wenn sie erzeugt wird. Das ausführbare Modul enthält einen Teil ausführbaren Code oder ein ausführbares Programm, das den Computer anweist, die Datei, an die es angehängt ist, zu einem bestimmten Zeitpunkt zu überschreiben und/oder zu löschen. 



  Auf diese Weise wird die Lebenszeit des Dokuments oder der E-Mail vom ausführbaren Modul limitiert. Da das ausführbare Modul mit der Datei verbunden ist, wird es mit ihr mitwandem, selbst falls sie kopiert, weitergeschickt oder auf Disketten oder Bändern gesichert werden sollte. 



  In Übereinstimmung mit einem weiteren Aspekt der ersten   Ausführungsform   der Erfindung wird das ausführbare Modul jedesmal ausgeführt, wenn die Datei, an die es angeheftet ist, geöffnet wird. Das ausführbare Modul stellt fest, ob die Voraussetzung zur Dateizerstörung gegeben ist. Falls diese Voraussetzung gegeben ist, instruiert das ausführbare Modul den 

 <Desc/Clms Page number 4> 

 Computer, die Datei mit aussagelosen Zeichen zu überschreiben und dann zu sichern, zu schliessen oder zu löschen. 



  Auf diese Weise liefert die gegenwärtige Erfindung eine Reihe von Vorzügen gegenüber bekannten Systemen. Zum Beispiel kann das System in Übereinstimmung mit der Erfindung das Verfahren der Dokumentenverwahrung erzwingen, selbst wenn die Datei auf einem externen Datenträger, wie einer Diskette oder einem Computer, der nicht in das Netzwerk eingebunden ist, gespeichert wurde, da das ausführbare Modul an die Datei angehängt ist und ausgeführt wird, wenn die Datei geöffnet wird. Dies liegt daran, dass das ausführbare Modul mit der Datei mitwandert und ausgeführt wird, wann immer und wo immer die Datei geöffnet wird. 



  In Übereinstimmung mit einer zweiten Ausführungsform der Erfindung wird ein sich selbst zerstörendes E-Mailnachrichtensystem bereitgestellt, das automatisch ein   ausführbares   Modul anjede erstellte E-Mail oderjeden erstellten E-Mail Anhang anhängt. Das ausführbare Modul enthält einen Teil ausführbaren Code oder ein ausführbares Programm, das den Computer veranlasst, die Nachricht (und/oder den Anhang), an die das ausführbare Modul angehängt ist, zu einem bestimmten gewünschten Zeitpunkt zu überschreiben und/oder zu löschen. Das ausführbare Modul reist mit der Nachricht mit, wenn die Nachricht an ihre Adresse verschickt wird, da es an ihr angehängt ist.

   Des weiteren bleibt das ausführbare Modul mit der Nachricht verbunden, selbst wenn die Nachricht kopiert, an eine andere Adresse weitergeleitet oder auf Disketten oder externe Speichermedien gespeichert wird. 



  In Übereinstimmung mit einer dritten Ausführungsform der Erfindung schliesst ein Dokumentensicherheitssystem einen virtuellen Behälter mit ein, in den ein oder mehrere digitale Objekte "abgelegt" werden. In diesem Zusammenhang wird der Begriff "digitales Objekt" umfassend verwendet und schliesst Dokumente (wie Tabellen, Kurven/Grafiken, Schriftdokumente, ASCII Textdateien, Bilder und andere Dateien), Programme und alles andere, was mit einem Computer gespeichert werden kann, ein. 



  Das Dokumenten-Sicherheitssystem enthält einen Behälter-Erzeuger und einen Behälter- Öffner. Der Behälter-Erzeuger und der Behälter-Öffner sind in ein oder mehrere 
Softwareprogramme implementiert, die von einem Computer ausgeführt werden. Der 

 <Desc/Clms Page number 5> 

 Behälter-Öffner ermöglicht es dem Benutzer, ein Limit für die gültige Lebenszeit eines digitalen Objekts im Behälter zu setzen. Diese "Lebenszeitkontrollen" können zum Beispiel ein Ablaufdatum, ein Ablaufdatum und eine Ablaufzeit, eine bestimmte Anzahl, die das Dokument geöffnet werden darf, oder andere Limitierungen enthalten. Wenn der Behälter vom Behälter-Öffner geöffnet wird, überprüft der Behälter-Öffner die Lebenszeitkontrollen. 



  Wenn sie gültig sind, sind die digitalen Objekte im Behälter zum Zugriff durch den Benutzer freigegeben. Wenn allerdings die Lebenszeitkontrollen ungültig sind, wird der Behälter- Öffner das digitale Objekt umgehend zerstören. 



  Ein Vorteil des Dokumenten-Sicherheitssystems mit Behälter-Öffner und Behälter-Erzeuger besteht darin, dass es in manchen Umgebungen für eine stabilere Durchsetzung der Lebenszeitkontrollen sorgt als ein sich selbst zerstörendes Dokument, das ein ausführbares Modul enthält. Das liegt daran, dass die Fähigkeit gegenwärtiger Textverarbeitungsprogramme und Tabellenkalkulationsprogramme, ein ausführbares Modul auszuführen, von Produkt zu Produkt stark variiert. Zum Beispiel wird sich ein sich selbst zerstörendes Dokument, das ein ausführbares Modul enthält, das von Microsoft   Word   ausgeführt wird, nicht selbst zerstören, wenn es zum Beispiel als einfache ASCII Datei geöffnet wird, die nicht darauf ausgelegt ist, ein ausführbares Modul zu erkennen und auszuführen.

   Auf der anderen Seite sind die Dokumente mit dem Dokumenten-Sicherheitssystem in einem Behälter gesichert, der vom Behälter-Öffner geöffnet wird, und der Behälter-Öffner kann, wenn er eingesetzt wird, Lebenszeitkontrollen gegen jedes Dokument im Behälter durchsetzen, ganz egal welchen Typs es ist. 



  Gemäss einem weiteren Aspekt des Dokumenten-Sicherheitssystems und gemäss einer dritten Ausführungsform der gegenwärtigen Erfindung kann jedes digitale Objekt im Behälter unabhängige Lebenszeitkontrollen besitzen. Gemäss diesem Merkmal kann ein einzelnes Objekt im Behälter, wenn es ungültig wird, zerstört werden, während die anderen Objekte intakt bleiben. 



  Gemäss einer weiteren Ausführungsform des Dokumenten-Sicherheitssystems handelt es sich bei dem digitalen Objekt um ein sich selbst zerstörendes Dokument, das gemäss der ersten oder zweiten Ausführungsform der Erfindung erzeugt wurde. 

 <Desc/Clms Page number 6> 

 



  Gemäss einem weiteren Aspekt dieser Ausführungsform kann der Behälter, sein Inhalt und seine Lebenszeitkontrollen gegen einen Benutzer, der das Sicherheitssystem untergraben möchte, gesichert werden. Diese Sicherheit wird durch den Einsatz von Verschlüsselungstechnologie erreicht. Genauer gesagt wird der Behälter-Erzeuger so konfiguriert, dass er die Objekte im Behälter verschlüsselt und der Behälter-Öffner, dass er sie entschlüsselt. Auf diese Weise ist das Objekt unlesbar, falls ein Benutzer das Objekt öffnet, ohne den Behälter-Öffner zu benutzen. 



  Gemäss einem weiteren Aspekt der ersten und zweiten Ausführungsform ist das sich selbst zerstörende Dokument oder die E-Mail entweder vom ausführbaren Modul oder einer anderen Anwendung verschlüsselt und das ausführbare Modul so konfiguriert, dass es das Dokument oder die E-Mail nur entschlüsselt, falls die Lebenszeit des Dokuments oder der E-Mail noch nicht abgelaufen ist. 



  Gemäss einer weiteren Ausführungsform der gegenwärtigen Erfindung wird ein sich selbst zerstörendes Dokument erzeugt, indem mehrere ausführbare Module in das Dokument oder die E-Mail eingebettet werden, wobei jedes Modul von einem anderen Textverarbeitungs- oder E-Mailsystem ausgeführt werden kann. Zum Beispiel kann ein Dokument ein erstes Modul, das von einem ersten System ausgeführt werden kann, und ein zweites Modul, das von einem zweiten System ausgeführt werden kann, enthalten. Das Dokument selbst kann verwandt sein mit beiden Systemen. Gemäss dieser Ausführungsform werden die Lebenszeitkontrollen erzwungen, unabhängig davon, ob es vom ersten oder vom zweiten System geöffnet wurde. 



  Gemäss einer weiteren Ausführungsform der gegenwärtigen Erfindung wird ein Internet- Handelssystem zur Verfügung gestellt, das die virtuellen Behälter einsetzt. Gemäss dieser Ausführungsform plaziert eine Partei, die ein elektronisch übertragbares Produkt über das Internet verkaufen will, dieses Produkt in einem virtuellen Behälter, wobei sie eine Behälter- Erzeuger-Anwendung benutzt, die das Produkt verschlüsselt und Lebenszeitkontrollen für das Produkt setzt. Ein potentieller Käufer, der das Produkt begutachten möchte, bevor er es kauft, erhält eine Kopie des Behälters zusammen mit der Behälter-Öffner-Anwendung vom Verkäufer. Die Behälter-Öffner-Anwendung ermöglicht es dem potentiellen Käufer, das Produkt anzusehen und auszuprobieren bis zu einem vorherbestimmten Ablaufdatum.

   In 

 <Desc/Clms Page number 7> 

 dieser Ausführungsform erlaubt es der Behälter-Öffner dem Benutzer nicht, das Produkt vom virtuellen Behälter zu entfernen. Gemäss einer bevorzugten Ausführungsform wird das Produkt vom Behälter-Öffner gelöscht, wenn der Behälter nach dem Ablaufdatum geöffnet wird. Gemäss noch einer weiteren Ausführungsform der Erfindung wird der Verkäufer, wenn der Käufer für das Produkt vor Ablauf des Ablaufdatums bezahlt hat, dem Käufer einen einzigartigen Schlüssel übermitteln. Der Behälter-Öffner kann derart konfiguriert werden, dass er in diesem Fall das Produkt aus dem Behälter entlässt. 



  Die Erfindung wird nachfolgend anhand eines Ausführungsbeispiels unter Bezugnahme auf die Zeichnungen näher erläutert. 



  Fig. 1 zeigt eine Umgebung gemäss dem heutigen Stand der Technik, in welche die Erfindung implementiert werden kann. 



  Fig. 2 (a) und 2(b) zeigen E-Mails gemäss der gegenwärtigen Erfindung, die vorne und hinten angehängte Viren enthalten. 



  Fig. 3 zeigt ein Flussdiagramm zur Veranschaulichung, wie ein sich selbst zerstörendes E-Mail gemäss einer Ausführungsform der gegenwärtigen Erfindung erstellt werden kann. 



  Fig. 4 zeigt ein Flussdiagramm eines Makro-Virus, der in das sich selbst zerstörende E-Mail aus Fig. 3 eingebettet ist. 



    Fig. 5 (a) 5 (c) eine graphische Benutzerschnittstelle für ein sich selbst zerstörendes   Dokument gemäss einer Ausführungsform der Erfindung, die für ein Microsoft   Excel   Dokument implementiert wird. 



    Fig. 6 (a) 6 (c) eine graphische Benutzerschnittstelle für ein sich selbst zerstörendes   Dokument gemäss einer Ausführungsform der Erfindung, die für ein Microsoft   Word   Dokument implementiert wird. 

 <Desc/Clms Page number 8> 

 



  Fig. 7(a) bis 7(e) zeigen eine graphische Benutzerschnittstelle für ein sich selbst zerstörendes Dokument gemäss einer Ausführungsform der Erfindung, die in Microsoft OutlookTM implementiert wird. 



  Fig. 8(a) zeigt einen virtuellen Behälter eines Dokumentensatzes gemäss einer Ausführungsform der Erfindung. 



    Fig. 8 (b) einen Vertreter eines virtuellen Behälters gemäss einer Ausführungsform der   Erfindung. 



    Fig. 9 (a) 9 (b) eine weitere Ausführungsform des virtuellen Behälters eines   Dokumentensatzes der gegenwärtigen Erfindung. 



    Fig. 10 (a) ein Kopfzeilen-Format für einen Behälters eines Dokumentensatzes,   konfiguriert, um ein einzelnes Dokument zu enthalten. 



  Fig. 10(b) zeigt ein Kopfzeilen-Format für einen Behälters eines Dokumentensatzes, konfiguriert, um mehrere Dokumente zu enthalten. 



  Fig. 11zeigt eine graphische Benutzerschnittstelle für eine Behälter-Erzeuger-Anwendung und eine Behälter-Öffner-Anwendung. 



  Fig. 12 zeigt ein Flussdiagramm zum   Hinzufügen   eines Dokuments zum Behälters eines Dokumentensatzes in Figur 10(b). 



  Fig. 13 zeigt ein Flussdiagramm zum Entnehmen eines Dokuments aus dem Behälters eines Dokumentensatzes in Figur 10(b). 



  Figur 1 zeigt eine Umgebung gemäss dem heutigen Stand der Technik, in welche die Erfindung implementiert werden kann. Ein lokales Netzwerk 1 (LAN 1) schliesst eine Vielzahl von Bürocomputern 10. - 10.6 (im folgenden als Computer 10 bezeichnet) und einen Server 20 ein. Jeder Computer 10 beinhaltet einen primären Datenspeicher 12 (z. B. eine Festplatte) und einen sekundären Datenspeicher 14 (z. B. eine Floppy Disk oder ein CD 

 <Desc/Clms Page number 9> 

 ROM-Laufwerk). Der Server 20 besitzt ebenfalls einen primären Netzwerkspeicher 22 (z. B. eine Festplatte) und einen sekundären Datenspeicher 14 (z. B. Band- oder CD ROM- Laufwerk). Die Daten auf den primären oder sekundären Netzwerkspeichermedien 22, 24 können von allen Computern 10 benutzt werden.

   Im Gegensatz dazu sind die Daten aufden primären und sekundären Speichermedien 12, 14 jedes einzelnen Computers 10 privat und können nur von dem betreffenden Computer benutzt werden. Der Server 20 liefert Internetzugang auf Computer ausserhalb des Netzwerks, wie zum Beispiel ein Heimcomputer 40, mittels Datenbahnen 50. Der Heimcomputer 40 beinhaltet ein primäres Speichermedium 42 und ein sekundäres Speichermedium 44. Das LAN 1 unterstützt einen elektronischen Mail-Nachrichtenservice, der es jedem Computer 10 erlaubt, Nachrichten innerhalb des LANs 1 zu anderen Computern 10 zu senden und Nachrichten ausserhalb des LANs 1 zu Computern ausserhalb des Netzwerks zu senden, wie zum Beispiel Heimcomputer 40. Die Konfiguration, wie sie in Figur 1 gezeigt wird, ist illustrativ für typische LANs, die oft in Unternehmen Anwendung finden.

   Dem Fachmann ist allerdings klar, dass die gegenwärtige Erfindung in eine ganze Anzahl von Netzwerkkonfigurationen implementiert werden kann. Des weiteren kann das E-Mailnachrichtensystem der gegenwärtigen Erfindung auch auf Applikationen ausserhalb eines Netzwerks angewendet werden, bei denen zum Beispiel E-Mailnachrichten von einem alleinstehenden Computer via Modem oder einer anderen Verbindung gesendet und empfangen werden. Des weiteren können die Dokument-Verwahrungs- und Löschungseinrichtungen der gegenwärtigen Erfindung in einen alleinstehenden Computer implementiert werden, mit oder ohne eine Verbindung zu externen Computern. 



  Einige der Dokument-Verwahrungs- und Zerstörungsprobleme können   gemäss   der gegenwärtigen Erfindung verringert werden und werden im folgenden unter Bezugnahme auf Figur 1 erläutert. 



  Zu Illustrationszwecken nehme man an, dass das lokale Netzwerk 1 in einem Unternehmen installiert ist, das ein Dokument-Verwahrungsverfahren adoptiert hat, das fordert, dass Dokumente, die älter sind als zwei Jahre, zerstört werden. Typischerweise wird ein solches Dokument-Verwahrungsverfahren implementiert, indem ein Programm aufdem Server 20 installiert wird, das periodisch die primären Speichermedien 22 des Netzwerks überprüft und Dokumente, die vor über zwei Jahren vor der Überprüfung erstellt wurden, löscht. Ein 

 <Desc/Clms Page number 10> 

 Problem, das bei Programmen dieser Art auftritt, ist, dass Kopien der Dokumente, die nicht im Netzwerk gespeichert sind, nicht erfasst werden. 



  Zum Beispiel nehme man an, dass Benutzer-1ein Dokument aufeinem Computer 10-1 erzeugt, und es auf dem Netzwerk-Datenspeichermedium 22 speichert. Dann kopiert Benutzer-1das Dokument eine Woche später aufdie Festplatte 12-1 des Computers 10-1und auf eine Diskette mittels des sekundären Speichermediums 14.1. Des weiteren kann Be- nutzer-2, da das Dokument aufdem primären Netzwerkspeichermedium 22 gespeichert ist, ohne Kenntnis von Benutzer-1 aufein primäres Datenspeichermedium 12. 2 von Computer 10-2 und dann auf eine andere Diskette mittels des sekundären Speichermediums 14-2 kopieren. Auf diese Weise wurden fünfKopien desselben Dokuments erstellt, von denen nur eine vom Netzwerk-Dokumenten-Verwahrungsprogramm angesprochen und gelöscht werden kann. 



  Das oben angesprochene Problem wird weiter verkompliziert, da das LAN aus Figur 1 elektronischen Nachrichtenservice zu Verfügung stellt. Das bedeutet, dass Benutzer-1ein E- Mail erzeugen kann und es mittels Internet-Server 30 ausserhalb des LANs zu Computer 40 senden kann. Des weiteren können kürzlich erzeugte Dokumentdateien als Attachment dem E-Mail angehängt werden. Dies führt zu weiteren Problemen. Zum Beispiel können diese E- Mails und ihre Attachments ausserhalb des LANs zu dritten Parteien gesendet werden, die nichts von dem Dokumenten-Verwahrungsverfahren des Unternehmens wissen. Jedenfalls wird der Heimcomputer eines Angestellten, falls das E-Mail dorthin geschickt wurde, nicht vom Netzwerk-Dokumenten-Verwahrungsprogramm angesprochen. 



   Typischerweise bedingt eine Durchsetzung des Dokumenten-Verwahrungsverfahrens bei 
Dokumenten, die nicht in Netzwerk-Speichermedien gespeichert sind, dass jeder Angestellte jedes seiner Verzeichnisse seiner individuellen Festplatte und seiner Disketten und anderen sekundären Speichermedien durchsucht. Des weiteren können ältere Dokumente in neuen E- 
Mails versteckt sein, aufgrund der Fähigkeit eines E-Mailsystems, Dokumente als Attachment an E-Mails anzuhängen, was es schwierig macht, diese Dokumente zu identifizieren und zu löschen. Die Angestellten müssten auch angewiesen werden, ihre Laptops und Heimcomputer nach Unternehmensdateien zu durchsuchen. Selbst falls jeder Angestellte diesen 

 <Desc/Clms Page number 11> 

 zeitaufwendigen Verpflichtungen nachkommt, bleibt die Möglichkeit bestehen, dass Dokumente auf den Rechnern dritter Parteien weiter existieren. 



  Ein weiteres Problem der Implementierung eines Dokumenten-Verwahrungsverfahrens liegt darin, dass, falls ein Dokument von einem Speichermedium gelöscht wird, das Dokument an sich nicht entfernt wird. Statt dessen entfernt der Computer lediglich den Zeiger auf das Dokument, der den Platz im Speichermedium anzeigt. Das Dokument selbst bleibt im Speichermedium gespeichert, bis der Computer es mit einem anderen Dokument überschreibt. 



  Daher müssen Angestellte konsequenterweise, um sicherzustellen, dass ein Dokument tatsächlich gelöscht wird, es mit aussagelosen Zeichen überschreiben und es anschliessend löschen, was den Zeitrahmen für die Durchsetzung des Dokumenten-Verwahrungsverfahrens weiter vergrössert. 



   Ausführbare Module in ein Dokument oder eine E-Mailnachricht integriert Gemäss der gegenwärtigen Erfindung wird ein sich selbst zerstörendes Dokumentensystem zu Verfügung gestellt, das ein ausführbares Modul an ein Dokument anhängt. Gemäss einer anderen Ausfiihrungsform der Erfmdung wird ein sich selbst zerstörendes E- Mailnachrichtensystem zu Verfügung gestellt, das ein ausführbares Modul an eine elektronische Nachricht oder an einen Nachrichtenanhang anhängt, wenn die Nachricht oder der Nachrichtenanhang erstellt wird. Das ausführbare Modul kann an die Nachricht oder das Dokument auf jede bekannte Weise angehängt werden. Zum Beispiel kann das ausführbare Modul, gemäss Figur 2, als voranstehender Virus (Fig. 2A), als nachstehender Virus (Fig. 2B) oder in jeder anderen bekannten Art angehängt werden.

   Das Modul selbst kann in jeder bekannten Art erstellt werden, indem zum Beispiel   Assembly-Sprache,   Programmiersprachen höherer Ebene oder Makros eingesetzt werden. Das angehängte ausführbare Modul bewirkt die Selbstzerstörung des Dokuments oder der Nachricht, wenn sich eine vorherbestimmte Situation einstellt. Auf diese Weise erzeugt das Modul eine "Lebenszeitkontrolle", die die Lebenszeit des Dokuments kontrolliert. In der oben angesprochenen Illustration zum Beispiel ist das ausführbare Modul derart programmiert, dass es das Dokument oder die Nachricht, an die es angehängt ist, löscht, wenn das Erzeugungsdatum des Dokuments oder der Nachricht bezüglich dem gegenwärtigen Datum mehr als zwei Jahre zurückliegt.

   Gemäss einer weiteren Ausführungsform der gegenwärtigen Erfindung überschreibt das ausführbare Modul das 

 <Desc/Clms Page number 12> 

 Dokument oder die Nachricht, an die es angehängt ist, mit aussagelosen Zeichen (z. B. "X"), bevor das Dokument oder die Nachricht gelöscht wird. 



  Gemäss weiteren   Ausführungsformen   der Erfindung kann das Überschreiben und/oder Löschen des Dokuments oder der Nachricht vom Auftreten anderer oder weiterer Voraussetzungen abhängen. Zum Beispiel kann das System konfiguriert werden, dass die Nachricht oder das Dokument überschrieben und/oder gelöscht wird, wenn das Dokument i) geschlossen oder ii) zum zweiten Mal geöffnet wird, so dass ein Dokument erstellt wird, das nur ein einziges Mal gelesen werden kann, bevor es vernichtet wird. Alternativ kann das System so konfiguriert werden, dass die Nachricht oder das Dokument überschrieben und/oder gelöscht wird, wenn es kopiert, weitergeleitet oder gedruckt werden soll.

   Des weiteren kann das System konfiguriert werden, dass jeder Versuch, das Dokument oder die Nachricht zu kopieren, unterbunden wird, so dass ein Dokument erzeugt wird, das gelesen, aber nicht gedruckt werden kann. Diese zusätzlichen Lebenszeitkontrollen können auch von einem bestimmten Ereignis abhängen, so dass der Druck- oder Kopierschutz aufgehoben wird, wenn ein Passwort oder ein Schlüssel eingegeben wird, oder dass der Druck- oder Kopierschutz eingeschaltet wird, wenn eine bestimmte Zeit abgelaufen oder ein anderes Ereignis eingetreten ist. 



  Gemäss einer anderen Ausführungsform der Erfindung kann das System einem LAN- Administrator ermöglichen, die Überschreib-/Löschvoraussetzung(en) vorherzubestimmen, um allen Systembenutzern und allen Dokumenten und Nachrichten, die von den Systembenutzern erzeugt werden, ein Dokumenten-Verwahrungsverfahren aufzuerlegen. 



  Genauso kann das System konfiguriert werden, dass es jedem Benutzer erlaubt ist, zu wählen, ob ein bestimmtes Dokument oder eine Nachricht eine Überschreib-/Löschvoraussetzung erhalten soll. Des weiteren kann dem Benutzer erlaubt werden, aus einer Vielzahl von Überschreib-/Löschvoraussetzungen zu wählen. Dies kann zum Beispiel durch ein Tool-Menü implementiert werden. 



  Im folgenden soll eine exemplarische Software zur Implementierung eines sich selbst zerstörenden Dokuments oder zur Bereitstellung eines sich selbst zerstörenden elektronischen Nachrichtensystems beschrieben werden. Obwohl die zur Verdeutlichung aufgeführten Ausführungsbeispiele für Microsoft   WordTM-,   Microsoft Excel TM und Microsoft   Outlook-   

 <Desc/Clms Page number 13> 

 Umgebungen ausgelegt sind, wird der Fachmann erkennen, dass die gegenwärtige Erfindung in eine Vielzahl von Umgebungen in einer Vielzahl von Arten implementiert werden kann. 



  Figuren 3 und 4 zeigen die Implementierung eines sich selbst zerstörenden elektronischen Nachrichtensystems für Microsoft   Word-6.0   Dokumente. In Bezugnahme aufFigur 3 initiiert ein Benutzer in Schritt 200 die Erzeugung eines Dokuments oder einer Nachricht auf, zum Beispiel, einem Bürocomputer 10.1in Figur 1. In Schritt 220 erzeugt das System ein "AutoOpen" Makro in der "Normal.dot" Datei. Gemäss der Microsoft   Word-Architektur   wird ein erzeugtes Makro mit dem Namen AutoOpen jedes Mal, wenn ein Word-Dokument geöffnet wird, ausgeführt. Die Instruktionen, auf die bei Schritt 220 hingewiesen wird und die in Word   Basic-Programmiersprache   geschrieben sind, sind als AutoOpen-Makro in der Normal. dot-Template-Datei gespeichert.

   Normal.dot ist eine Schablone, die vom   Word-   Programm als Speicherdatei für globale Makros eingesetzt wird. In Schritt 230 wird die Datei Normal.dot, die das AutoOpen-Makro enthält, auf eine Datei mit Namen "Message.dot" kopiert. Dann wird in Schritt 240 das AutoOpen-Makro aus der Datei Normal. dot gelöscht. In den Schritten 250-260 wird die Datei Message.dot geöffnet und der Benutzer aufgefordert, den Text des Dokuments oder der Nachricht einzufügen. Dann wird in den Schritten 270 die Datei Message. dot, die das Dokument oder die Nachricht als auch eine Kopie der Datei Normal.dot enthält, gesichert. Im Gegenzug enthält die Kopie der Datei Normal. dot das AutoOpen-Makro.

   In den Schritten 280-290 wird die Datei Message.dot umgenannt in Message. doc und dann als elektronische Mailnachricht oder als Anhang an eine elektronische 
Mailnachricht verschickt. 



   Die elektronische Mailnachricht wird zum Beispiel über das Internet zu einem 
Heimcomputer 40 mittels LAN Server 20 und Internet Servern 30 geschickt. Das AutoOpen- 
Makro, das in die Message. doc-Datei eingebettet ist, wird ausgeführt, wenn die Datei 
Message. doc vom Empfänger der Nachricht geöffnet wird. Figur 4 ist ein Flussdiagramm für das AutoOpen-Makro, das in die Message. doc-Datei eingebettet ist. In Schritt 310 gibt die 
Funktion DateSerial() einen seriellen Wert als die Variable "created" zurück, der für das 
Erstellungsdatum der Nachricht repräsentativ ist. Das Argument der Funktion DateSerial wird als die Zeit gesetzt, zu der das AutoOpen-Makro erstellt wurde (Schritte 210 und 220 in 
Figur 3), und wurde in Figuren 3 und 4 willkürlich aufden 10. Juni 1997 festgelegt.

   In 
Schritt 320 gibt die Funktion Today() einen seriellen Wert als die Variable "curdate" zurück, 

 <Desc/Clms Page number 14> 

 der für das gegenwärtige Datum repräsentativ ist. Die seriellen Werte, die von diesen Funktionen zurückgegeben werden, sind ganze Zahlen zwischen 1 und 802074, wobei die Zahl 1 den 31. Dezember 1899 bedeutet und die Zahl 802074 den 31. Dezember 4095 bedeutet. In Schritt 330 wird die Variable "difference" als der Unterschied zwischen "curdate" und "created" festgelegt. Demnach stimmt die Variable "difference" mit der Anzahl von Tagen zwischen Erstellung der Datei Message.doc und dem gegenwärtigen Datum, an dem das Dokument geöffnet wurde, überein. 



  Schritte 340 bis 360 enthalten eine "If, Then" Aussage, die entscheidet, ob die Zeit zwischen Erstellungsdatum und gegenwärtigem Datum eine vorher bestimmte Schwelle überschritten hat. Zur Veranschaulichung wird diese Schwelle auf 60 Tage festgelegt. In Schritt 340 wird die Variable "difference" mit dem Wert 60 verglichen. Wenn "difference" grösser als 60 ist, d. h. wenn mehr als 60 Tage seit der Erstellung der Datei Message. doc vergangen sind, werden die Schritte 350,360 und 370 ausgeführt. In Schritt 350 wird eine EditReplace.Find- Funktion ausgeführt. Diese Funktion ersetzt jedes Zeichen der Datei Message. doc durch ein aussageloses Zeichen (das willkürlich als "X" festgelegt wurde).

   Dann wird die Datei Message. doc, die als eine Serie von "X" umgeschrieben wurde, wobei die Anzahl der "X" mit der Anzahl der Zeichen in dieser Datei übereinstimmt, in Schritt 360 gesichert und geschlossen. Aufdiese Weise wurden die Speicherplätze, auf denen die Datei Message.doc gespeichert war, mit aussagelosen Zeichen überschrieben. Falls allerdings in Schritt 340 die Variable "difference" kleiner als oder gleich 60 ist, wird direkt zu Schritt 370 gesprungen und der Empfänger der Nachricht kann die Nachricht frei betrachten und bearbeiten. 



  Natürlich kann das Makro in Figur 4 modifiziert werden, um weitere Funktionen auszuführen. 



  Zum Beispiel kann das Makro so modifiziert werden, dass die Datei Message. doc gelöscht wird, nachdem sie gesichert wurde, indem die Funktion   FileNameFromWindow$()   benutzt wird, um den Speicherplatz der Datei Message. doc zu dem Zeitpunkt, zu dem sie geöffnet wurde, zu erlangen, und dann die Funktion Kill benutzt wird, um die Datei zu löschen. Des weiteren kann das Makro dahingehend modifiziert werden, dass es dem Benutzer, der die Datei Message.doc öffnet, erlaubt, das Löschen der Nachricht zu gestatten. 



    Figuren 5 (a) 5 (c) Tabelle 1 zeigen ein sich selbst zerstörendes Dokumentensystem   unter Bezugnahme aufMicrosoft   Excel-Dokumente.   In Tabelle 1 wird ein Visual   Basic-   

 <Desc/Clms Page number 15> 

 Programm gezeigt, um ein sich selbst zerstörendes Excel-Dokument zu erzeugen, das eine Benutzerschnittstelle enthält, die für eine Microsoft Window TM Umgebung implementiert ist. 



  Die gezeigte Implementierung nutzt die Routinen "auto¯open" und   "auto¯close",   die von Microsoft   ExcelTM   unterstützt werden. Gemäss der gezeigten Ausführungsform sind diese Routinen in der Schablone "book.xlt" im Unterverzeichnis xlstart von Microsoft Excel TM gespeichert. Auf diese Weise wird book.xlt mit den auto¯open und   auto¯close   Routinen als Schablone für jedes Microsoft ExcelTM-Dokument, das erzeugt wird, benutzt. Daher sind diese Routinen selbst im Excel-Dokument angesiedelt. 



  Jedes Mal, wenn ein Excel-Dokument erzeugt wird, wird das Programm aus Tabelle 1 als Makro in das Dokument eingebettet. Wenn das Dokument geschlossen wird, wird die   auto¯close   Routine implementiert. Nach Lesen der Variablen "lcdata" und "lcmode" aus den einzelnen Dokumenteigenschaften (Tabelle 1, Zeilen 23-26), überprüft das Programm, ob die Lebenszeitkontrollen noch nicht für das Dokument festgelegt wurden (Tabelle 1, Zeile 28). 



  Wenn die Lebenszeitkontrollen bereits implementiert sind, wird die auto¯close Routine verlassen (Tabelle 1, Zeile 29). Wenn die Lebenszeitkontrollen noch nicht implementiert wurden, fragt das Programm den Benutzer, ob er/sie Lebenszeitkontrollen implementieren möchte (Figur 5a). Falls ja, fordert das Programm den Benutzer auf, ein Verfallsdatum für das   Dokument einzugeben (Figur 5 (b) Tabelle 1, Zeilen 35-36). Das Verfallsdatum wird dann   als "lcdata" gespeichert und "lcmode" wird auf "1"gesetzt (Tabelle 1, Zeilen 37-38). Wenn der Benutzer keine Lebenszeitkontrollen implementieren möchte, wird "lcmode" auf "0" und "lcdata"   auf,,"   gesetzt (Tabelle 1, Zeilen 39-41). Die Werte von "lcmode" und "lcdata" werden innerhalb des   Excel-Dokuments   als einzelne Dokumenteigenschaften gespeichert. 



  Wenn ein   Excel-Dokument,   das das eingebettete Programm enthält, geöffnet wird, wird das auto¯open Makro (Tabelle 1, Zeilen 2-20) ausgeführt. Die Werte von "lcmode" und "lcdata" werden aus den einzelnen Dokumenteigenschaften gelesen   (Tabelle!,   Zeilen 4-7). Wenn "lcmode" gleich "1"ist (Zeile 9), und das gegenwärtige Datum später ist als das Datum von "lcdata" (Zeile 10), wird der Name des Dokuments in der Variable fn (Zeile 12) gespeichert und eine Nachricht, die besagt, dass das Dokument nicht länger gültig ist, im   Nachrichtenfenster auf dem Bildschirm des Computers gezeigt (Figur 5 (c) Tabelle 1,   Zeile 14) und das Dokument geschlossen und gelöscht (Zeilen 15-16).

   Zwar überschreibt das Programm in Tabelle 1 das Excel TM Dokument nicht mit aussagelosen Zeichen, bevor es das 

 <Desc/Clms Page number 16> 

 Dokument löscht, allerdings kann eine solche Funktion leicht hinzugefügt werden, indem zum Beispiel die Clear Methode der Visual   Basic-Programmiersprache   verwendet wird, wie unten beschrieben: Range Al Select Range (Selection,   Selection.SpecialCells(xlLastCell)).Select   Selection.

   Clear ActiveWorkbook.Save Figuren 6a bis 6c und Tabelle 2(a,b) zeigen ein sich selbst zerstörendes Dokumentensystem, illustriert unter Bezugnahme aufMicrosoft Word   97-Dokumente.   In den Tabellen 2(a,b) wird ein Visual   Basic-Programm   zum Erzeugen eines sich selbst zerstörenden Word 97- Dokuments gezeigt, das eine Benutzerschnittstelle, die für eine Microsoft Windows- Umgebung implementiert ist, beinhaltet. Die Implementierung, die gezeigt wird, verwendet FileSave- und FileSaveAs-Makros, um Lebenszeitkontrollen zu starten und verwendet ein AutoOpen-Makro, um die Lebenszeitkontrollen durchzusetzen. Gemäss der gezeigten Ausführungsform ist das Programm in Tabelle 2 als Schablone in das Dokument implementiert. 



  Jedes Mal, wenn ein Word   97-Dokument   erzeugt wird, wird das Programm aus Tabelle 2 in das Dokument eingefügt. Das Programm bleibt in einer externen Dokumentenschablone auf der Workstation des Verfassers und wird in das neue Dokument kopiert, indem das AutoNew- Makro verwendet wird, wie in Tabelle 2c gezeigt. Dieses Makro führt die Funktion "InstallSDD" aus, die das Programm aus Tabelle 2 aus der Schablone SDD. dot liest und seinen Inhalt in das neue Dokument kopiert, wobei das Microsoft Word Organizer-Objekt Verwendung findet. Die Verwendung dieser Methode stellt sicher, dass das eingefügte Programm im Dokument eingebunden ist, gemäss dieser Ausführungsform der gegenwärtigen Erfindung. 



  Wenn das neue Dokument gespeichert wird (FileSave oder FileSaveAs, Tabelle 2b), wird die Variable "lcmode" gelesen. Wenn   "Icmode"   nicht definiert ist (d. h. das Dokument wurde zum ersten Mal gesichert), wird die Routine pflmplementlifetimeControls (Tabelle 2a) eingeschaltet und das Programm fragt den Benutzer, ob er/sie Lebenszeitkontrollen 

 <Desc/Clms Page number 17> 

 implementieren möchte (Figur 6a, Tabelle 2a). Falls ja, verlangt das Programm vom    Benutzer, ein Verfallsdatum für das Dokument einzugeben (Figur 6 (b) Tabelle 2a). Das   Verfallsdatum wird dann als "lcdata" gespeichert und "lcmode" auf 1 gesetzt (Tabelle 2a). 



  Wenn der Benutzer keine Lebenszeitkontrollen implementieren möchte, wird "lcmode" auf "0" gesetzt und "lcdata"   auf,,"   (Tabelle 2a). Die Werte von "lcmode" und "lcdata" werden innerhalb des Word   97-Dokuments   als Dokumentvariablen gespeichert. 



  Wenn ein Word   97-Dokument,   das das eingefügte Programm enthält, geöffnet wird, wird das AutoOpen-Makro (Tabelle 2b) ausgeführt. Die Werte von "lcmode" und "lcdata" werden gelesen, wobei die Funktionen "pfGetLcmode" und "pfGetLcdata" verwendet werden (Tabelle 2a, 2b). Falls   "Icmode"   gleich 1 ist (Tabelle 2b), und das gegenwärtige Datum später ist als das in "lcdata", wird der Name des Dokuments in der Variablen doc (Zeile 12) gespeichert, die Variable "rng" auf die Länge des Dokuments gesetzt, das Dokument mit aussagelosen Zeichen überschrieben und dann gelöscht   (Kill(dlg.name)),   und eine Nachricht, die besagt, dass das Dokument nicht länger gültig ist, im Nachrichtenfenster auf dem 
Bildschirm des Computers gezeigt (Figur 6c und Tabelle 2b). 



    Figuren 7 (a) 7 (e) Tabelle 3 zeigen ein sich selbst zerstörendes Dokumentensystem   unter Bezugnahme auf Microsoft   Outlook   98. In Tabelle 3 wird zur Veranschaulichung ein 
Visual Basic Programm gezeigt, um ein sich selbst zerstörendes Outlook 98 E-Mail zu erstellen, das eine Benutzerschnittstelle, die in eine Microsoft Windows-Umgebung    implementiert werden kann, enthält. In Figuren 7 (a) und7(b) wird ein Kasten mit der Inschrift   "Self-destruct" zur voreingestellten Schablone der E-Mailnachricht eingefügt. Figur 7 (a)   den konventionellen Nachrichtkasten 74, der gezeigt wird, wenn ein Benutzer eine E-Mail   erstellen möchte. Der Kasten 74 enthält den Text der E-Mail 76 und die Adressen der   Empfänger der E-Mail 77.

   Figur 7 (b) den Selbstzerstörungskasten, der einen   
Schaltkasten 71 enthält, der anzeigt, ob die Nachricht eine sich selbst zerstörende sein wird, und einen Datumskasten 72, in den das Zerstörungsdatum eingegeben wird. Wie unten beschrieben ist das Zerstörungsdatum in die E-Mail eingebettet und wird gelesen und verarbeitet, wenn die E-Mail geöffnet wird. 



   Outlook 98 unterstützt Outlook-Zubehör (individuelle Objekte wie Nachrichten, Kalender, 
Einträge, Aufgaben, usw. ), die Visual Basic-Code unterstützen. Eine Auswahl an Ereignissen 

 <Desc/Clms Page number 18> 

 wird fürjedes Zubehör definiert und Visual Basic-Code kann geschrieben werden, umjedes Ereignis auszuführen. Im Outlook-Objektmodell wird eine   E-Mail   "Mailltem" genannt. Unter   Outlook   ist es einem Programmierer möglich, Anwendungsverhalten zu modifizieren, und Nachrichten-Erstellungs- und Nachrichten-Öffnungsverhalten können modifiziert werden. 



  Tabelle 3 zeigt ein Visual Basic-Programm, das in eine E-Mail eingefügt ist und immer wenn die E-Mail mit Hilfe der Funktion   Item¯Open   geöffnet wird, ausgeführt wird. Wenn eine E- Mail erzeugt wird und ein Abfragen in den Schalterkasten 71 eingegeben wird und ein Datum in den Datumskasten 72 des "sich selbst zerstören" Kasten 73 eingegeben wird, wird der Wert des Schalterkastens 71 in "Item.UserProperties("DoDestrict")" gespeichert, und das Datum, das in den Datumskasten 72 eingegeben wurde, in   "Item.UserProperties("DestructDate")"   gespeichert. Diese Werte sind in der E-Mailnachricht zusammen mit dem Programm aus Tabelle 3 eingebettet. Wenn die E-Mail geöffnet wird, wird die eingebettete Programmfunktion   Item¯Open   automatisch ausgeführt.

   Gemäss Tabelle 3 wird das Programm verlassen und die E-Mail geöffnet, wenn die Eigenschaft von DoDestruct falsch ist (d. h. die Nachricht ist keine sich selbst zerstörende Nachricht). Falls aber die Eigenschaft von DoDestruct wahr ist, überprüft das Programm, ob die Nachricht verfallen ist, indem die Funktion "itemExpired" implementiert wird, die dann die Funktion "daysTilDestruct" implementiert. Die Funktion daysTilDestruct subtrahiert das gegenwärtige Datum von dem Wert von "DestructDate", und gibt den Unterschied in Tagen zurück. Der Wert, der von der Funktion daysTilDestruct zurückgegeben wird, wird in der Variablen "dt" in der Funktion itemExpired gespeichert.

   Wenn "dt" kleiner oder gleich Null ist, gibt die Funktion "itemExpired" den boolschen Wert True an die Funktion   Item¯Open   zurück, der Text der Nachricht wird überschrieben mit dem Text "This message is no longer available", wie in Figur 7(e) gezeigt, und die Nachricht "This message is no longer available" erscheint in einem   Dialogkasten, wie in Figur 7 (d) Wenn "dt" grösser als 1 ist, gibt die Funktion   "itemExpired" den boolschen Wert False zurück, und die Nachricht "This message will destruct in [daysTilDestruct] days" erscheint in einem Dialogkasten, wie in Figur 7(c) gezeigt. 



   TABELLEN 1 BIS 3 
Attribute VB Name = "Module 1 
Sub   auto¯open()   

 <Desc/Clms Page number 19> 

 
On Error GoTo ehEnd: 
Dim lcmode As String lcmode Active Workbook CustomDocunemtProperties lcmode 
Dim lcdata As String lcdata =   ActiveWorkbook.CustomDocumentProperties("Icdata")   
On Error Resume Next   If lcmode   = 1 Then 
If DateValue(Date) > = DateValue(lcdata) Then 
Dim fn As String fn = ActiveWorkbook.Name 
Dim ret ret = MsgBox + fn +", is no longer valid. ", vbCritical + vbOKOnIy, "Purdue/SDD") 
ActiveWorkbook.Close (False) 
Kill (fn) 
End [f   Endlf   ehEnd:

   End Sub Sub   auto¯close()   
On Error GoTo ehlmplement: 
Dim Icmode As String 
Icmode =   ActiveWorkbook.CustomDocumentProperties("Icmode")   
Dim Icdata As String 
Icdata = ActiveWorkbook.CustomDocumentProperties("Icdata") 
On Error Resume Next 
If lcmodeo""Then 
Exit Sub   Endlf ehlmplement:

     
Dim ret ret = MsgBox("Would you like to implement lifetime controls in this workbook?", 

 <Desc/Clms Page number 20> 

 vbQuestion + vbYesNo, "Purdue/SDD") If ret = vbYes Then 
Icdata = InputBox("Please enter the expiration date for this workbook.", "Purdue/SDD", Date) 
 EMI20.1 
 msoPropertyTypeString, 1 ret = ActiveWorkbook.CustomDocurnentProperties.Add("lcdata", False, msoPropertyTypeString, Icdata)   ElseIf ret   = vbNo Then ret ActiveWorkbook.CustomDocumenProperties.Add("lcmode", False, msoPropertyTypeString, 0 
 EMI20.2 
 msoPropertyTypeString, "")
End If
End Sub   TABELLE 1   Attribute   VB¯Name   ="Utilities" Public Function pfGetLcmode(doc As Document) As String
On Error GoTo ehUndefined
Dirn Icmode As String   lcmode   = doc.Variables("Icmode")

   pfGetLcmode = Icmode
Exit Function   ehUndefmed:   pfGetLcmode =""
End Function Public Function pfGetLcdata(doc As Document) As String 

 <Desc/Clms Page number 21> 

 
On Error GoTo   ehUndefmed   
Dim lcdata As String 
Icdata = doc.Variables("Icdata") pfGetLcdata = Icdata 
Exit Function ehUndefined:

   pfGetLcdata ="" End Function Public Function pflmplementLifetirneControls(doc As Document) As Boolean 
Dim ret ret = MsgBox("Would you like to implement lifetime controls in this document ?", vbQuestion + vbYesNo,   "Purdue/SDD")   
If ret = vbYes Then ret = doc.Variables.Add("lcmode", 1 
Dim data As String data = InputBox("Please enter the expiration date of this document.", "Purdue/SDD", Date) ret = doc.Variables.Add("Icdata", data)   Eiself ret   = vbNo Then ret =   doc.Variables.Add("Icrnode",   "0")

     Endlf     pfSetLc   = True 
End Function 
TABELLE 2A Sub   FileSavO   Attribute FileSave.VB¯Description = "Saves the active document or template" Attribute   FileSave.VB ProcData.VB Invoke Func   =   Norrnal.NewMacros.FileSave"   
Dim lcmode As String   lcrnode   =   pfGetLcrnode(ActiveDocurnent)   
If lcmode = ""Then 

 <Desc/Clms Page number 22> 

 
Dim ret As Boolean ret =   pflmplementLifetimeControls(ActiveDocurnent)   
Else   Endlf   
ActiveDocurnent.Saye End Sub Sub   FileSaveAO   Attribute FileSaveAs.VB¯Description = "Saves a copy of the document in a separate file" Attribute   FileSaveAs.VB¯ProcData.VB¯Invoke¯Func   =   &num;

  Normal.NewMacros.FileSaveAs"   
Dim lcmode As String lcmode = pfGetlcmode(ActiveDocument) 
If lcmode = ""Then 
Dim ret As Boolean ret =   pflmplementLifetimeControls(ActiveDocurnent)   
Else 
Endlf   Dialogs(wdDialogFiIeSaveAs).Show   
End Sub 
Sub   AutoOpenO   
Dim doc As Document 
Set doc = ActiveDocument 
Dim lcmode As String lcmode = pfGetLcmode(doc) 
Dim lcdata As String 
Icdata = pfGetLcdata(doc) 
If lcmode = 1 Then 
If DateValue(Date) > =   DateValue(lcdata)   Then 
Dim mg As Range 
Set mg =   doc.ContentO   

 <Desc/Clms Page number 23> 

 ret =   rng.Delete()   doc.

   Close (wdSavechanges) 
Kill (dlg.Name) ret = MsgBox("This document is no longer valid. " & Chr(13) & "lt has been destroyed.", vbCritical + vbOKOnIy, "Purdue/SDD") 
Exit Sub   Endlf   
End If End Sub 
TABELLE 2B Sub   AutoNew()   
Call InstallSDD End Sub Sub lnstallSDDO 
Dim tPath As String tPath = Options.DefaultFilePath(wdUserTemplatesPath) tPath = tPath + "\SDD.dot" 
On Error GoTo errHandler   Application.OrganizerCopy ¯    
Source:=tPath,¯ 
Destination:=ActiveDocumentName, ¯   Name:="SDDModule".-   
Object:wdorganizerObjectProjectltems 
Exit Sub errHandler:

   
MsgBox "Could not load self-destructing document module." 
Exit Sub 
End Sub 
TABELLE 2C 

 <Desc/Clms Page number 24> 

 Function ltem Open
Ifltem.UserProperties ("DoDeststruct").Value = False Then   Item¯Open   = True
Exit Function   Endlf  
If itemExpired () Then
Item.

   Body = "This message is no longer available. " ltem.Save 0
MsgBox   ("This   message is no longer available.")
Else
MsgBox ("This message will destruct in" & daysTilDestruct 0 & "days.")   Endlf   End Function Function itemExpired dt = daysTilDestruct 0
If dt < =OThen itemExpired = True
Else itemExpired = False
Endif
End Function 
Function daysTilDestruct daysTilDestruct = DateDiff("d", Now (), Item.UserProperties   ("DestructDate").Value)  
End Function
TABELLE 3 
Des weiteren können die ausführbaren Module gemäss der sich selbst zerstörenden
Dokumente, die oben beschrieben sind, auch Verschlüsselungstechniken verwenden, um 

 <Desc/Clms Page number 25> 

 einen Benutzer daran zu hindern, die Lebenszeitkontrollen zu umgehen, indem er zum Beispiel ein sich selbst zerstörendes Dokument mit einer Anwendung öffnet,

   die das ausführbare Modul nicht ausführen kann. Gemäss einer solchen Ausführungsform wird das ausführbare Modul das Dokument verschlüsseln, wenn es zum ersten Mal gespeichert oder geschlossen wird. Wenn das Dokument das nächste Mal geöffnet wird, wird es das ausführbare Modul nur dann entschlüsseln, wenn die Lebenszeitkontrollen gültig sind. Des weiteren wird es dem Benutzer nicht möglich sein, das Dokument einzusehen, wenn er es mit einer Anwendung öffnen will, die das ausführbare Modul nicht ausführen kann, da es verschlüsselt bleibt.

   Zum Beispiel, wenn ein Benutzer versucht, ein sich selbst zerstörendes Microsoft Word-Dokument mit einer Word   Perfect-Anwendung   zu öffnen, wird die Word Perfect-Anwendung das Microsoft   Word-AutoOpen-   oder FileOpen-Makro nicht ausführen, und das Dokument wird geöffnet, egal ob die Lebenszeitkontrollen des Dokuments gültig sind oder nicht.

   Wenn aber das sich selbst zerstörende Microsoft   Word-Dokument   vorher von den Makros AutoClose, FileSave oder FileSaveAs verschlüsselt wurde (indem beispielsweise ein exclusiv- oder polyalphabetischer Algorithmus verwendet wird, wie unten beschrieben), bleibt das Dokument verschlüsselt, bis der Benutzer die Datei mit einer Anwendung öffnet, die das Makro ausführt (das den entsprechenden Entschlüsselungsalgorithmus für den exclusiv- oder polyalphabetischer Algorithmus enthält). 



  Die Wahl einer passenden Verschlüsselungstechnik hängt vom gewünschten Sicherheitsgrad ab und von der Fähigkeit des Makros oder Scripts, das verwendet wird, sie zu implementieren. 



   Virtuelle Behälter Im folgenden wird ein Dokumenten-Sicherheitssystem gemäss der gegenwärtigen Erfmdung beschrieben, das virtuelle Behälter einsetzt. 



   Gemäss einer ersten Ausführungsform des Dokumenten-Sicherheitssystems, das in Figur 8a gezeigt wird, wird ein Behälter 500 für einen Dokumentensatz verwendet, um ein oder mehrere Dokumente 510 (oder andere digitale Objekte) zu speichern, jedes mit einer unabhängigen Lebenszeitkontrolle 520. Auf jeden Computer, auf dem ein Benutzer die 
Inhalte des Behälters öffnen und einsehen möchte, wird eine Anwendung installiert. Diese 
Anwendung wertet die Lebenszeitkontrollen eines Dokuments, bevor es dem Benutzer 

 <Desc/Clms Page number 26> 

 gezeigt wird. Falls die Lebenszeitkontrollen gültig sind, wird das Dokument aus dem Behälter geholt und kann vom Benutzer verwendet werden.. Falls die Lebenszeitkontrollen ungültig sind, wird das Dokument vernichtet, indem es beispielsweise mit aussagelosen Zeichen überschrieben wird. 



  Gemäss einer zweiten   Ausfiihrungsform   des Dokumenten-Sicherheitssystems zeigt Figur 8(b) einen Proxy-Behälter 500', der dazu verwendet werden kann, ein einzelnes Dokument (oder anderes digitales Objekt) zu speichern. Ein Proxy-Verwalter wird aufjedem Computer, auf dem ein Benutzer ein Dokument im Proxy-Behälter öffnen und darstellen lassen möchte, installiert. Anders als bei einem Behälter für Dokumentensätze ist die Operation eines Proxys für den Benutzer unsichtbar - ausser die Lebenszeitkontrollen 520' des Dokuments sind ungültig. Um diese Transparenz zu gewährleisten, wird der Proxy benannt oder auf andere Weise enkodiert, um als normaler Bestandteil des Dokuments zu erscheinen, und der Betriebssystemmechanismus, der Dokumente ihren Anwendungen zuordnet wird derart geändert, dass er stattdessen die Dokumente dem Proxy-Verwalter zuordnet.

   Der ProxyVerwalter komplettiert die Zuordnung zwischen Dokument und Anwendung übergangsweise, wenn die Lebenszeitkontrollen gültig sind. Diese Ausführungsform zieht Nutzen aus der Tatsache, dass, wenn auf eine Datei zugegriffen wird, indem zum Beispiel mit der Maus auf eine Datei von einer   Windows   95-Umgebung aus, von einem Windows 95Dokumentensymbol in "My Computer", oder vom Dateimanager in Windows 3. 1 geklickt wird, das Betriebssytem versucht, die Datei einer Anwendung, wie Microsoft   Word,   Microsoft   Excel   oder   WordPerfect   zuzuordnen.

   In Übereinstimmung mit dem ProxyBehälter ist die Proxy-Behälteranwendung zwischen Betriebssytem und Anwendung geschaltet, so dass, wenn ein Benutzer den Proxy-Behälter anspricht (der dem Benutzer als ein gewöhnliches Dokument erscheint), das Betriebssystem den Behälter-Öffner veranlasst, den Behälter automatisch zu öffnen und, wenn die Lebenszeitkontrollen gültig sind, die Anwendung startet und das Dokument im Behälter öffnet. Wenn die Lebenszeitkontrollen ungültig sind, wird das Dokument beispielsweise durch Überschreiben mit aussagelosen Zeichen und/oder Löschen zerstört. Gemäss weiteren Ausführungsformen des Proxy-Behälters kann das System derart konfiguriert werden, dass es das Dokument automatisch an den Proxy-
Behälter zurückgibt, wenn die Anwendung geschlossen wird. 

 <Desc/Clms Page number 27> 

 



  Im Folgenden werden mehrere Ausführungsformen des Behälters für Dokumentensätze (DS- Behälter) erläutert. Gemäss einer ersten Ausführungsform des DS-Behälters werden eine Behälter-Öffner- und eine Behälter-Erzeuger-Anwendung zu Verfügung gestellt. Die Behälter-Erzeuger-Anwendung liegt auf dem Computer eines Benutzers, der einen DS- Behälter erstellen möchte, und, wie ihr Name bereits nahe legt, ist dazu in der Lage, einen DS-Behälter zu erzeugen, Lebenszeitkontrollen zu spezifizieren und ein Dokument im DS- Behälter zu plazieren. Die Behälter-Öffner-Anwendung liegt auf dem Computer eines Benutzers, der einen DS-Behälter öffnen möchte, und kann den DS-Behälter öffnen, um die Gültigkeit der Lebenszeitkontrollen zu überprüfen und das Dokument aus dem DS-Behälter zu holen, falls die Lebenszeitkontrollen gültig sind.

   Wenn die Lebenszeitkontrollen nicht gültig sind, wird das Dokument beispielsweise durch Überschreiben mit aussagelosen Zeichen zerstört. Gemäss einer Ausführungsform enthält der DS-Behälter nur ein Dokument. 



  Gemäss weiteren Ausführungsformen können mehrere Dokumente in einem einzelnen Behälter gespeichert werden, wobei jedes Dokument seine eigene Lebenszeitkontrollen haben kann. In Situationen, in denen es angebracht erscheint, dass der Benutzer einen DS-Behälter nur öffnen, aber nicht erzeugen kann, kann die Behälter-Öffner-Anwendung aufdem Computer installiert werden, aber nicht die Behälter-Erzeuger-Anwendung. Unabhängig von der Anzahl der im DS-Behälter verbleibenden Dokumente, erscheint ein ungeöffneter DS- Behälter einem Benutzer als eine einzige Datei und beinhaltet Kopfzeilen-Information (die zum Beispiel Lebenszeitkontrollen einschliesst) und das Dokument oder die Dokumente. 



  Gemäss einem weiteren Aspekt der DS-Behälter für mehrere Dokumente gemäss einer Ausführungsform der Erfindung kann der DS-Behälter eine Behälter-Kopfzeile enthalten, die Kontrollinformation für den Behälter enthält und die sich auf zwei einzeln gekoppelte Stromlisten bezieht. Die erste gekoppelte Liste enthält aktive Ströme, die zweite enthält inaktive Ströme. Aktive Ströme beziehen sich aufDokumente mit noch gültigen Lebenszeitkontrollen und inaktive auf Dokumente mit ungültigen Lebenszeitkontrollen oder die vom Behälter entfernt (gelöscht) wurden. Sowohl aktive als auch inaktive Ströme besitzen Kopfzeilen, die die Lebenszeitkontrolle (und vorzugsweise Verschlüsselungsinformation wie unten beschrieben) für die entsprechenden Ströme enthalten.

   Diese Kopfzeilen der Ströme enthaltenjeweils eine Referenz auf den nächsten Strom in ihrer Liste (aktiv oder inaktiv), oder eine Anzeige, dass dieser Strom der letzte in seiner Liste ist. Jeder Strom ist ein angrenzender Block binärer Daten. 

 <Desc/Clms Page number 28> 

 



  Wenn ein Strom ungültig gemacht oder vom Behälter entfernt wird, wird seine Kopfzeile als inaktiv markiert, in die Liste der inaktiven Ströme gesetzt, und der Strom mit aussagelosen Zeichen überschrieben. Wenn dem Behälter ein neuer Strom hinzugefügt wird, kann ein inaktiver Strom reaktiviert und benutzt werden, wenn er lang genug ist, den neuen Strom zu enthalten. Wenn kein inaktiver Strom zu Verfügung steht bzw. lang genug ist, den neuen Strom zu enthalten, kann im Behälter ein neuer Strom erzeugt und aktiviert werden. Wenn ein Behälter viele Änderungen an den Listen aktiver und inaktiver Ströme erfährt, kann er fragmentiert werden. In anderen Worten, wenn Dokumente verfallen und durch aussagelose Zeichen ersetzt werden, können aktive Dokumente zwischen inaktive Dokumente, die nur aussagelose Zeichen enthalten, geraten.

   In einer bevorzugten Ausführungsform der Erfindung kann die Behälter-Erzeuger-Anwendung diesen Zustand erkennen und den Behälter, falls nötig, komprimieren.    



  Figuren 9(a) und 9 (b) die aktiver/inaktiver Strom-Ausführungsform der gegenwärtigen   Erfindung. Figur 9(a) zeigt einen virtuellen Behälter, der drei Dokumente enthaltend erzeugt    wurde. Wie in Figur 9 (a) enthält die Erzeuger-Information für die Behälter-Kopfzeile   (wie den Namen des Behälters, die standardmässigen Lebenszeitkontrollen für den Behälter, das Datum, an dem der Behälter erzeugt wurde, das Datum, an dem der Behälter zuletzt modifiziert wurde und das Datum, an dem der Behälter zuletzt betreten wurde), Information über den aktiven Strom (wie ein Zeiger auf das erste Dokument im aktiven Strom und die Anzahl der Dokumente im aktiven Strom), und Information über den inaktiven Strom (wie ein Zeiger auf das erste Dokument im inaktiven Strom und die Anzahl der Dokumente im inaktiven Strom).

   Jedes Dokument im Behälter enthält eine Dokumenten-Kopfzeile, die Lebenszeitkontrollinformation und einen Pfeil auf das nächste Dokument im betreffenden Strom enthält. Da der Behälter gerade erst erzeugt wurde, sind alle drei Dokumente im aktiven Strom, und die Behälter-Kopfzeile enthält eine Unter-Kopfzeile des aktiven Stroms, die einen Zeiger auf das erste Dokument und eine Anzeige, dass sich drei Dokumente im aktiven Strom befinden, enthält. Die Unter-Kopfzeile des inaktiven Stroms enthält keine   Information. Dann wurden in Figur 9 (b) neue Dokumente (Dokumente 4 und 5) zum   Behälter dazugenommen und Dokument 2 ist verfallen. Während die Unter-Kopfzeile des aktiven Strombehälters immer noch auf Dokument 1 zeigt, zeigt der Zeiger in der Kopfzeile 

 <Desc/Clms Page number 29> 

 von Dokument 1 nun aufDokument 3, anstatt aufDokument 2.

   Ausserdem zeigt die Unter- Kopfzeile des inaktiven Strombehälters nun auf Dokument 2. 



  Wie oben ausgeführt, enthält ein virtueller Behälter gemäss der gegenwärtigen Erfindung ein oder zwei Dokumente, die zerstört werden sollten, wenn sie nicht mehr gültig sind (wie von den Lebenszeitkontrollen bestimmt). Generell sollten die Kosten für den Aufwand, diese Kontrollen zu umgehen, höher sein, als der Wert, das gültige Leben der Dokumente zu verlängern. 



  Gemäss einer bevorzugten Ausführungsform der Erfindung sind die Dokumente im virtuellen Behälter verschlüsselt, um unautorisierten Zugriff auf die Dokumente im Behälter zu verhindern und um einen Benutzer daran zu hindern, die Lebenszeitkontrollen eines Dokuments zu umgehen. Diese Verschlüsselungstechnik kann zum Beispiel bei allen der hier beschriebenen Behälter angewendet werden, die DS-Behälter in Figuren 8(a), 9 (a) und 9(b) und die Proxy-Behälter in Figur 8(b) eingeschlossen. 



  Gemäss einer weiteren Ausführungsform der gegenwärtigen Erfindung ermöglicht es das System dem Autor, aus verschiedenen Sicherheitsebenen auszuwählen, abhängig vom Wert der entsprechenden Dokumente. Im allgemeinen nehmen Aufwand zum Umgehen der Sicherheitseinrichtungen - und Kosten und Komplexität der Sicherheitseinrichtungen - mit steigender Sicherheitsebene zu. Bevor beschrieben wird, wie die Verschlüsselung in virtuellen Behältern eingesetzt werden kann, werden einige Grundprinzipien der Verschlüsselungstechnologie unterbreitet. 



   Übersicht über Verschlüsselungstechniken Im allgemeinen bestehen Verschlüsselungstechniken - im folgenden   Verschlüsselungssysteme genannt - aus zwei Hauptkomponenten : und   
Schlüssel. Der Algorithmus ist eine mathematische Funktion, die Daten transformiert. Die 
Schlüssel "lenken" die exakte Art der Transformation. 



     Verschlüsselungsalgorithmen   können entweder offen oder geschlossen sein. Offene 
Algorithmen werden von ihren Designern veröffentlicht, von Akademikern verbessert und 

 <Desc/Clms Page number 30> 

 durch kommerzielle Anwendungen überprüft. Geschlossene Algorithmen bleiben Eigentum der Designer, die nicht wollen, dass sie von der Öffentlichkeit verstanden oder benutzt werden. 



  Im allgemeinen sind die Verschlüsselungsalgorithmen, die in kommerziellen Produkten verwendet werden, "offene" Algorithmen. Ein Verschlüsselungsalgorithmus, der veröffentlicht und verbessert wurde und nach seiner Implementierung weite Anwendung fand, kann im allgemeinen als sicher angesehen werden, da er sehr wahrscheinlich von grossen Forschungsuniversitäten untersucht und von Informatikstudenten in der ganzen Welt attackiert wurde, ohne in Ungnade zu fallen. 



  Die Stärke eines effektiven Verschlüsselungssystems hängt in der Regel von seinen Schlüsseln ab. Vorausgesetzt, dass der Algorithmus bekannt ist (wie oben erläutert), hängt die Sicherheit des Verschlüsselungssystems von der Erzeugung passender Schlüssel und der vorsichtigen Bewahrung ihrer Geheimhaltung ab. Ein wichtiges Mass ihrer Stärke ist ihre Länge - typischer Weise in Bits gemessen. Ein kurzer Schlüssel bedeutet schnelles Ver- und Entschlüsseln, aber auch ein einfacheres Knacken des Schlüssels. Ein langer Schlüssel bedeutet lange Ver- und Entschlüsselungszeiten, kann aber grundsätzlich unknackbar sein. 



  Diese Erkenntnis ist so überzeugend, dass die   U.S.-Regierung   die freie und öffentliche Nutzung jedes Verschlüsselungsalgorithmus erlaubt, den Längen der Schlüssel aber klare Reglementierungen auferlegt. 



  Obwohl eine ganze Reihe von offenen und geschlossenen Verschlüsselungstechniken gemäss der gegenwärtigen Erfindung Anwendung finden können, werden hier nur vier   Verschlüsselungstechniken kurz vorgestellt : Algorithmen, Öffentlicher-   
Schlüssel-Algorithmen, digitale Signaturen und one-way hashes. 



   Symmetrische Algorithmen bedienen sich im allgemeinen eines einzelnen Schlüssels zum Ver- und Entschlüsseln. Sie sind in der Regel einfach zu verstehen und zu benutzen und schaffen ein relativ hohes Mass an Sicherheit, wenn sie richtig verwendet werden. Jedenfalls müssen sich beide Parteien, bevor sie miteinander kommunizieren, auf einen gemeinsamen 
Schlüssel einigen, ohne dass Dritte von diesem Schlüssel erfahren. Auch muss der Schlüssel für immer geheim bleiben, oder alte Nachrichten können später entschlüsselt werden. 



   Symmetrische Algorithmen sind insbesondere für flüchtige Nachrichten geeignet, die nach 
Beendung der Kommunikation nicht gespeichert werden. Wenn die Nachricht nicht 

 <Desc/Clms Page number 31> 

 gespeichert wird, gibt es auch keine Gelegenheit, die Nachricht später zu entschlüsseln, selbst wenn der Schlüssel bekannt würde. Ein populärer symmetrische Algorithmus ist der Data Encryption Standard, ein ANSI und ISO Standard, seit über 20 Jahren in Gebrauch. 



  Öffentlicher-Schlüssel-Algorithmen verwenden zwei Schlüssel - einer öffentlicher Schlüssel, der andere privater Schlüssel genannt. Ein öffentlicher oder privater Schlüssel kann verwendet werden, um eine Nachricht zu entschlüsseln. Nur der private Schlüssel kann eine Nachricht entschlüsseln, die mit dem öffentlichen Schlüssel verschlüsselt wurde und nur der öffentliche Schlüssel kann eine Nachricht entschlüsseln, die mit dem privaten Schlüssel verschlüsselt wurde. Ausserdem ist es praktisch nicht möglich, einen zweiten privaten Schlüssel passend zum öffentlichen Schlüssel zu erstellen. Typischerweise wird der öffentliche Schlüssel eines jeden Paares an einem wohlbekannten, vertrauenswürdigen Ort veröffentlicht (zum Beispiel eine Datenbank oder ein Verzeichnis im Internet), während der Besitzer den privaten Schlüssel behält.

   Ein gewöhnliches Anwendungsbeispiel für die   Verwendung eines öffentlichen Schlüssels ist das folgende : möchte Bob eine geheime   Nachricht senden. Alice erlangt Bobs öffentlichen Schlüssel von einer vertrauenswürdigen Quelle. Sie verwendet diesen Schlüssel, um ihre Nachricht an Bob zu verschlüsseln. Wenn Bob die verschlüsselte Nachricht erhält, kann er sie mit seinem privaten Schlüssel entschlüsseln. Wenn a) Alice Bobs tatsächlichen öffentlichen Schlüssel (und keine Fälschung) erhalten hat, und b) Bob der einzige Besitzer seines privaten Schlüssels ist (kein anderer hat eine Kopie), dann kann Alice sicher sein, dass nur Bob ihre Nachricht lesen kann. Ein populärer öffentlicher-Schlüssel Algorithmus ist das RSA Cryptosystem, das RSA Data Security, Inc gehört. 



  Digitale Signaturen dienen, um die Identität des Erstellers der Nachricht zu authentifizieren. 



  Obwohl es viele Möglichkeiten für die Implementierung digitaler Signaturen gibt, wird oft öffentlicher-Schlüssel Verschlüsselung verwendet. Wir können das oben erläuterte Szenario ausweiten. Alice möchte Bob eine private Nachricht senden, und sie möchte, dass er ganz sicher sein kann, dass diese Nachricht auch von ihr ist. Das vorherige Szenario garantiert Bob   nicht, dass die Nachricht von Alice ist ; garantiert Alice lediglich, dass kein dritter ihre   Nachricht an Bob gelesen hat. Also verschlüsselt Alice ihre Nachricht an Bob mit ihrem privaten Schlüssel, Dann verschlüsselt sie die Nachricht noch einmal mit Bobs öffentlichem Schlüssel, wie oben. Wenn Bob die Nachricht empfängt, entschlüsselt er sie als erstes mit 

 <Desc/Clms Page number 32> 

 erstes mit seinem privaten Schlüssel.

   Dann holt er sich Alices öffentlichen Schlüssel von einer vertrauenswürdigen Quelle, um sicherzustellen, dass die Nachricht auch von ihr ist. Diesen Schlüssel verwendet er, um die Nachricht zu entschlüsseln. Wenn a) Bob sicher ist, dass Alices Schlüssel nicht durch Kopieren oder Fälschen verbreitet wurden (wie oben dargelegt), und b) Alice sicher ist, dass Bobs Schlüssel nicht verbreitet wurden, kann Alice sicher sein, dass nur Bob ihre Nachricht lesen kann und Bob kann sicher sein, dass die Nachricht von Alice kommt. RSA Data Security, Inc. Produziert einen weit verbreiteten digitale-Signatur Algorithmus. 



  Während digitale Signaturen in der digitalen Welt einen zuverlässigen Weg darstellen, die Identität zu prüfen, gibt es bestimmte Bereiche, in denen es sinnvoll ist, den Verfasser eines Dokumentes zu überprüfen, ohne das gesamte (eventuell grosse) Dokument zu versenden. 



  Sogenannte one-way hashes bieten eine exzellente Lösung. Sie bestehen aus mathematischen Funktionen, die jede Datenmenge (ein Dokument oder anderes) in einen kleinen Strom binärer Information transferieren. Eine wichtige Eigenschaft der one-way hash Funktionen ist es, dass diese Funktionen keine zwei identischen Ummischungen zweier verschiedener Quellen erzeugen. Es wurden grosse akademische und kommerzielle Forschungsanstrengungen unternommen, um one-way hashes zu erzeugen, die diese Eigenschaft besitzen. MD 5 ist eine wohl bekannte one-way hash Funktion, die eine 128 Bit Ummischung erzeugt. 



   Anwendung der   Verschlüsselungstechnologie   aufvirtuelle Behälter Gemäss einer bevorzugten Ausführungsform der Erfindung ermöglicht es das Dokumentensicherheitssystem der virtuellen Behälter einem Benutzer (und/oder einem 
Systemadministrator), aus mehreren Sicherheitsebenen auszuwählen. Eine untere 
Sicherheitsebene beinhaltet keine Verschlüsselung der Dokumente. Die Sicherheit kommt durch die Benutzung eines Behälter-Öffners beim Darstellen der Dokumente zustande. Jeder kommerziell beziehbare Editor für binäre Dateien kann verwendet werden, um den Behälter als einzelnes Dokument zu öffnen und dabei seine Inhalte anzusehen.

   Genauso können solche 
Programme dazu verwendet werden, den Behälter als einzelnes Dokument zu öffnen und den darin enthaltenen Text anzusehen, da die meisten Textverarbeitungsprogramme es einem 
Benutzer ermöglichen, die Dokumente als ASCII Text darzustellen. 

 <Desc/Clms Page number 33> 

 



  Eine zweite Sicherheitsebene kann eine Form von symmetrischer Verschlüsselung sein, "exclusive" oder "polyalphabetic cipher" genannt. Dieser Verschlüsselungsalgorithmus kann leicht in Software implementiert werden und arbeitet sehr schnell. Dieser Verschlüsselungsalgorithmus verwendet einen einzelnen Schlüssel, um die Dokumente zu ver- und zu entschlüsseln. Dieser Schlüssel kann fest in die Software eingebaut sein, kann mit der Software mitgeliefert werden und periodisch vom Benutzer getauscht werden, oder, jedes Mal, wenn er gebraucht wird, von einer vertrauenswürdigen Quelle bezogen werden. Gemäss dieser Methode wird das Dokument mit dem Schlüssel durch ein XOR verschlüsselt (d.h. 



  [Dokument]XOR[Schlüssel] = [verschlüsseltes Dokument] ). Zum Beispiel können Behälter- Öffner- und Behälter-Erzeuger-Anwendungen einen einzelnen, fest eingebauten symmetrischen Schlüssel für Ver- und Entschlüsselung besitzen. Der Verfasser eines Dokuments verschlüsselt das Dokument und optional seine Lebenszeitkontrollen, indem er den Behälter-Erzeuger verwendet. Wenn der Verfasser das Dokument verteilen möchte, schiebt er das verschlüsselte Dokument in die Behälter-Öffner-Anwendung. Der Empfänger entschlüsselt Dokument und Lebenszeitkontrollen mit der Behälter-Öffner-Anwendung. Die Behälter-Öffner-Anwendung überprüft die Lebenszeitkontrollen und zeigt, wenn sie gültig sind, das Dokument dem Empfänger. Wenn die Lebenszeitkontrollen nicht gültig sind, zerstört die Behälter-Öffner-Anwendung das Dokument. 



  Eine höhere Sicherheitsebene verwendet eine zentrale Autorität (CA), um die Sicherheit des Dokuments sicherzustellen. Gemäss einer ersten Ausführungsform des CA-Systems sendet der Autor das Dokument und seine Lebenszeitkontrollen an die CA. Die CA schickt einen einzigartigen Identifizierer für dieses Dokument zurück. Wenn der Autor das Dokument verteilen möchte, schickt er den einzigartigen Identifizierer zum Empfänger. Der Empfänger schickt diesen einzigartigen Identifizierer an die CA, um das Dokument anzusehen. Die CA überprüft die Lebenszeitkontrollen und schickt, wenn sie gültig sind, das Dokument an den Empfänger. Der Empfänger erhält das Dokument und kann es ansehen. Obgleich der Einsatz einer CA die Sicherheit steigert, hat er den Nachteil, dass eine zentrale Autorität eingreifen muss. 



  Eine weitere Ausführungsform des CA-Systems verwendet "one-way hashes". Gemäss dieser Ausführungsform sendet der Autor das Dokument und seine Lebenszeitkontrollen an die CA. 

 <Desc/Clms Page number 34> 

 



  Die CA mischt die Lebenszeitkontrollen um und kombiniert die umgemischten Lebenszeitkontrollen, die original Lebenszeitkontrollen und die Dokumente im Behälter. Die CA verschlüsselt diesen Behälter mit ihrem privaten Schlüssel und sendet das Paket zum Autor zurück. Wenn der Autor das Dokument verteilen möchte, sendet er den CA-signierten Behälter an den Empfänger. Der Empfänger öffnet den Behälter mit dem öffentlichen Schlüssel der CA und überprüft die Lebenszeitkontrollen. Wenn sie ungültig sind, wird der Behälter zerstört. Wenn sie gültig sind, mischt er sie um und vergleicht die Ummischung mit der im Behälter gespeicherten. Wenn die Ummischungen nicht übereinstimmen, wird der Behälter zerstört. Wenn die Ummischungen übereinstimmen und die Lebenszeitkontrollen gültig sind, wird das Dokument dargestellt. 



  Eine weitere Ausführungsform des CA-Systems verwendet "one-way hashes" und einen symmetrischen Schlüssel. Gemäss dieser Ausfuhrungsform sendet der Autor das Dokument und seine Lebenszeitkontrollen an die CA. Die CA erzeugt einen einzigartigen symmetrischen Schlüssel (im folgenden DK genannt) und verschlüsselt das Dokument. Der DK und einzigartiger Identifizierer (im folgenden DKID genannt) werden in einer Datenbank aufgezeichnet. Die CA mischt die Lebenszeitkontrollen um und kombiniert die umgemischten Lebenszeitkontrollen, die original Lebenszeitkontrollen, die verschlüsselten Dokumente und den DKID in einem erzeugten Behälter. Sie signiert das Paket mit ihrem privaten Schlüssel und sendet es dem Autor zurück. Wenn der Autor das Dokument verteilen möchte, sendet er den CA-signierten Behälter an den Empfänger.

   Der Empfänger öffnet den Behälter mit dem öffentlichen Schlüssel der CA. Er sendet die originalen Lebenszeitkontrollen, die umgemischten Lebenszeitkontrollen und den DKID an die CA. Die CA überprüft die 
Lebenszeitkontrollen. Wenn sie ungültig sind, stoppt die CA. Wenn sie gültig sind, mischt sie sie um und vergleicht die Ummischung mit der Ummischung, die sie vom Empfänger erhalten hat. Wenn diese Ummischungen nicht übereinstimmen, stoppt die CA. Wenn sie übereinstimmen und die Lebenszeitkontrollen gültig sind, schickt die CA den DK, der sich auf den DKID bezieht, zurück an den Empfänger. Der Empfänger entschlüsselt das Dokument mit dem DK und das Dokument kann dargestellt werden. 



   Ein Problem dieser Ausführungsform ist, dass der Empfänger das System umgehen kann, indem er neue Lebenszeitkontrollen erzeugt, sie ummischt und diese umgemischten neuen 
Lebenszeitkontrollen an die CA zusammen mit dem originalen DKID des Behälters sendet. 

 <Desc/Clms Page number 35> 

 



  Dieses Problem kann gemäss einer weiteren Ausführungsform umgangen werden, indem die CA einen verschlüsselten Unterbehälter der originalen Lebenszeitkontrollen, der umgemischten Lebenszeitkontrollen und des DKID erstellt. Die Schlüssel zum Verschlüsseln (zum Beispiel symmetrische Schlüssel oder öffentliche und private Schlüssel) sind nur der CA bekannt. Der Empfänger (der keinen Zugriff auf die Schlüssel im   Unterbehälter   hat) schickt den Unterbehälter an die CA zurück. Wenn dann die CA den Unterbehälter entschlüsselt, kann sie sicher sein, dass Lebenszeitkontrollen, umgemischte Lebenszeitkontrollen und der   DKID,   die sie aus dem Unterbehälter erhalten hat, von der CA erzeugt und verschlüsselt wurden. 



   Eine Implementierung des virtuellen Behälters in der Programmiersprache Java TM Nun wird eine anschauliche Implementierung eines DS-Behälters, der ein Dokument enthält, und eine "exclusive-or polyalphabetische cipher" verwendet, beschrieben, wobei die Behälter- Erzeuger- und Behälter-Öffner-Anwendungen in der Programmiersprache   Java   programmiert sind. Behälter-Öffner und Behälter-Erzeuger werden implementiert, indem Daten- und Dateistromklassen, die Teil des standardmässigen 1/0-Pakets der Programmiersprache Java TM sind, verwendet werden. Jedes Objekt einer bestimmten Stromklasse bezieht sich auf einen Satz zusammenhängender Speicher-Bits. 



  Ein DS-Behälter beinhaltet gemäss dieser Ausführungsform eine Behälter-Kopfzeile, die Kontrollinformation für den Behälter enthält, und eine Dokumentenkopfzeile für die Dokumente im Behälter. Während diese Ausführungsform des DS-Behälters darauf ausgelegt ist, nur ein einzelnes Dokument zu enthalten, können weitere Ausführungsformen eine unbegrenzte Zahl an Dokumenten enthalten. Gemäss einer bevorzugten Ausführungsform des Einzeldokumenten DS-Behälters zeigt Figur 10a die Behälter-Kopfzeile, die den Namen des Behälters CNAME 701, das Datum DM 705, an dem der Behälter zuletzt modifiziert wurde, das Datum DLA 704, an dem auf den Behälter zuletzt zugegriffen wurde, und die Anzahl an Dokumenten 706 (entweder 0 oder   1)   im Behälter enthält. Der Behälter enthält des weiteren ein Dokument 710.

   Das Dokument hat eine Kopfzeile, die den Namen 707 des Dokuments, die Lebenszeitkontrollen 708 des Dokuments und seine Länge 709 enthält. Gemäss dieser Ausführungsform ermöglichen es die Felder DC 703, DM 704 und DLA 705 dem Benutzer, das Datum, an dem der Behälter erzeugt wurde, das Datum, an dem er zuletzt modifiziert 

 <Desc/Clms Page number 36> 

 wurde und das Datum, an dem auf ihn zuletzt zugegriffen wurde, zu bestimmen, wie unten   mit Bezugnahme auf die "View Methode" in Figur 5 (a) wird. Natürlich können die   Felder "Behälter erzeugt", "zuletzt modifiziert" und "letzter Zugriff" von der Behälter- Kopfzeile ausgelassen werden, falls ihre Funktionalität nicht gewünscht ist. 



    In Tabelle 4 (a) ein DS-Behälter erzeugt, indem die Methode "public static int   create(String envelopefilename)" aufgerufen wird, die als ihr Argument den String "envelopefilename" enthält. Wenn "envelopefilename" ein bestehender Dateiname ist, oder wenn sein Wert Null ist, wird eine Fehlermeldung zurückgegeben, andernfalls wird das Programm abgearbeitet, um einen neuen Behälter zu erzeugen. Es wird das Objekt "fos" im FileOutputStream definiert, das den Zieldateinamen "envelopefilename" enthält. Es wird ein entsprechendes Objekt "dos" im DataOutputStream definiert, das die Zieldaten, die sich auf das Objekt "dos" ("envelopefilename") beziehen, enthält. Das Programm erzeugt dann die Kopfzeile, die im DataOutputStream Objekt "dos" gespeichert wird.

   Auf diese Weise wird ein Objekt "eh" in der Klasse SdeEnvelopeHeader definiert und das Feld   "d name"   der Klasse SdaEnvelopeHeader auf den String "envelopefilename" gesetzt und die Felder "d-created", "d¯last¯modified" und "d¯Iast¯accessed" aufdas gegenwärtige Datum gesetzt. Dann wird die Methode "writeTo" hinzugezogen (Tabelle 4(c)), die den   Behältemamen,   das Erzeugungsdatum des Behälters, das Datum der letzten Änderung, das Datum des letzten Zugriffs und die Anzahl der Dokumente im Behälter (momentan 0) in das Objekt "dos" schreibt, wobei die Behälterkopfzeile für neu erzeugten Behälter erzeugt wird. Auf diese Weise erscheint der Behälter als eine einzelne Datei, die den Namen, der im Feld "envelopename" erscheint, trägt.    



  In Tabelle 4 (b) die Methode addDocument verwendet, um dem Behälter ein Dokument   hinzuzufügen. Die Methode addDocument nimmt "envelopefilename", "documentfilename" und "expires" als Parameter. Wenn einer dieser Parameter Null ist, wird eine Fehlermeldung zurückgegeben. Fall kein Behälter mit Namen "envelopefilename" existiert, wird die "create"- 
Methode verwendet, um einen Behälter zu erzeugen. Falls kein Dokument mit Namen "documentfilename" existiert, wird eine Fehlermeldung zurückgegeben. Andernfalls wird ein 
Objekt "fis" des FileInputStream für "envelopefilename" definiert und ein Objekt "dis" von 
DataInputStream für die Daten, die mit "envelopefilename" korrespondieren   (DataInputStream(fis)).   Aus diese Weise wird der Behälter mit Namen "envelopename" in 

 <Desc/Clms Page number 37> 

 "fis" und "dis" geöffnet.

   Dann wird ein temporärer Behälter mit Namen "[envelopefilename].tmp" erzeugt. So wird ein Objekt "fos" des FileOutputStreams für "[envelopefilename].tmp" und ein Objekt "dos" des DataOutputStreams für die Daten, die mit "envelopefilename" (DatalnputStream(fos)) korrespondieren, definiert. 



  Um den "envelope header" auf den neuesten Stand zu bringen, wird ein Objekt "eh" des SdeEnvelopeHeader erzeugt und die Inhalte von "dis" (das ist die Behälterkopfzeile für "envelopefilename") in "eh" durch die Methode "readForm" (Tabelle 4(c)) eingelesen. Unter   Bezugnahme auf Tabelle 4 (b) die Objekte "d¯last¯modified" und   "d¯total¯documents" der Klasse SdeEnvelopeHeader auf den neuesten Stand gebracht und der auf den neuesten Stand gebrachte "envelope header" (eh) in das Objekt "dos" des DataOutputStream geschrieben. 



  Um die Dokumentenkopfzeile auf den neuesten Stand zu bringen, wird das Objekt file doc aus File auf den Pfad von   "documentfilename"   gesetzt, und die Variable "length" wird gleich der Länge der Datei in "file¯doc" gesetzt. Das Objekt   "fls¯doc"   von   FileInputStream   wird so gesetzt, dass es die Datei "documentfilename" hält. Dann wird ein Objekt "dh" von SdeDocumentHeader erzeugt, und das   "d¯name"   Feld der Klasse SdeDocumentHeader auf den String "documentfilename" gesetzt, das   "d¯expired"   Feld auf den Wert des Parameters "expires" gesetzt, und das "d¯total¯bytes" Feld auf den Wert der Variable "length" gesetzt. 



  Dann wird das Verfahren "writeTo" herangezogen (Tabelle 4(d)), das den Namen des Dokuments, das Verfallsdatum und die Länge des Dokuments in das Objekt dos schreibt, wobei die Dokumentenkopfzeile für das Dokument erzeugt wird. 



  Dann wird das Dokument in die Variable "ch" gelesen (int   ch=fis¯doc.read()),   und, indem eine "exclusive-or"-Funktion auf "ch" ausgeführt wird, verschlüsselt. Dann wird das verschlüsselte Objekt in das Objekt "dos" geschrieben. Auf diese Weise wurden der auf den neuesten Stand gebrachte "envelope header", die Dokumentenkopfzeile und das verschlüsselte Dokument in die zusammenhängenden Speicherplätze geschrieben, indem die DataOutputStream Funktion verwendet wurde, und ein DS-Behälter, der das verschlüsselte Dokument enthält, wurde erzeugt. Dann wird der originale Behälter (envelopefilename) gelöscht und der aufden neuesten Stand gebrachte Behälter ("[envelopefilename].tmp") wird umbenannt in "envelopefilename".

   Auf diese Weise erscheint der Behälter als eine einzelne 

 <Desc/Clms Page number 38> 

 Datei mit dem Namen, der im CNAME 71 Feld im Behälter enthalten ist, und beinhaltet die Behälterkopfzeile, die Dokumentenkopfzeile und das Dokument. 



  Im Folgenden wird eine Implementierung des DS-Behälters beschrieben, gemäss Tabellen 5(a)   und 5 (b). 5 (a) ein Programm zum Darstellen der Behälterkopfzeile eines DSBehälters, erzeugt gemäss Tabellen 4 (a) 4 (c). Methode "view" beinhaltet zwei   Parameter, den String "envelopename" und den PrintStream "ps". Falls weder "envelopename" noch "documentfilename" "Null" sind, und falls ein Behälter mit Namen "envelopename" existiert, wird ein Objekt "fis" des FilelnputStream für "envelopefilename" und ein Objekt "dis" des DataInputStream für die Daten, die sich auf "envelopefilename" beziehen DataInputStrearn fis definiert. Auf diese Weise wird der Behälter "envelopename" in "fis" und "dis" geöffnet.

   Dann wird ein Objekt "eh" das SdeEnvelopeHeader erzeugt und die Inhalte von "dis" (das ist die Behälterkopfzeile für "envelopefilename") in "eh" durch die Methode "readFrom" eingelesen (Tabelle 4(c)). Zum Schluss wird die Information bezüglich der Behälterkopfzeile gedruckt, indem die Methode "println" verwendet wird. 



    Tabelle 5 (b) ein Programm zum Öffnen eines DS-Behälters, erzeugt gemäss Tabellen   4 (a) bis 4(d). Die Methode "extractDocument" beinhaltet zwei Parameter, die Strings "envelopefilename" und "documentfilename". Falls weder "envelopefilename" noch "documentfilename" "Null" sind, und falls ein Behälter mit Namen "envelopefilename" existiert, wird ein Objekt "fis" des FilelnputStream für "envelopefilename" und ein Objekt "dis" des DataInputStream für die Daten, die sich auf "envelopefilename" beziehen DataInputStream fis definiert. Auf diese Weise wird der Behälter "envelopefilename" in "fis" und "dis" geöffnet. Dann wird ein Objekt "eh" das SdeEnvelopeHeader erzeugt und die Inhalte von "dis" (das ist die Behälterkopfzeile fiir "envelopefilename") in "eh" durch die Methode "readFrom" eingelesen (Tabelle 4(c)).

   Das Feld "d¯name" wird dann mit "documentname" verglichen, und wenn sie übereinstimmen, überprüft das Programm das Verfallsdatum des Dokuments "documentname". Unter Verwendung der Datumsmethode "before" wird die Variable "valid" auf "False" gesetzt, wenn das Datum im Feld   "d¯expires"   vor dem gegenwärtigen Datum ist. Falls nicht, wird der Pfad des Dokuments in ein Objekt   "file¯doc"   der Klasse Files gesetzt. 

 <Desc/Clms Page number 39> 

 



  Vorausgesetzt, dass das Dokument "documentname" existiert und das Dokument nicht verfallen ist, wird das Objekt "file¯doc" auf einen neuen Pfad gesetzt: "[documentfilename].x", und das Objekt   "fos¯doc"   des FileOutputStream wird auf   FileOutputStream(file¯doc)   gesetzt. Auf diese Weise wird eine vorläufige Datei   "fos¯doc"   der Klasse FileOutputStream erzeugt. Dann wird das Dokument Byte für Byte in die Variable "ch" eingelesen. Jedes Byte wird durch Anwendung der XOR Funktion auf "ch" entschlüsselt und in   "fos¯doc"   geschrieben. Wenn dieses Dokument nicht existiert, wird   "fos¯doc"   auf den Wert Null gesetzt und das Programm zeigt an, dass die Datei nicht gefunden wurde. Wenn das Dokument existiert, aber abgelaufen ist, wird die Variable "valid" auf FALSE gesetzt.

   Dies verhindert, dass   "fos¯doc"   mit dem Dokument assoziiert wird, dass das Dokument entschlüsselt wird und veranlasst das Programm anzuzeigen, dass das Dokument abgelaufen ist. Um das Dokument zu überschreiben um es zu zerstören, können die folgenden Anweisungen in Tabelle 5b eingefügt werden : If(valid=False) { for (long 1=0   l < dh.d¯total¯bytes;   1++ {   int ch=0    fos doc write ch Figuren   11 (a)   und   11 (b)   zeigen eine einfache graphische Benutzerschnittstelle, die dazu verwendet werden kann, sowohl den DS-Behälter eines einzelnen Dokuments, wie oben bezüglich Tabellen 4 und 5 beschrieben, und den DS-Behälter für mehrere Dokumente, wie unten bezüglich Figuren 12 und 13 beschrieben, zu implementieren.

   Um einen DS-Behälter zu erzeugen, drückt ein Benutzer den "Neu"-Knopf 1510. Es wird dann eine Dialogbox erscheinen (nicht dargestellt), die den Benutzer auffordert, einen Behältemamen einzugeben. 



  Sobald der Behältername eingegeben ist, wird ein DS-Behälter erzeugt und der Behältername wird im Banner 1500 erscheinen. In Figuren   11 (a)   und   11 (b)   ist der Behältemame "demo. env" und der Behälter ist als Datei "demo. env" im Verzeichnis C:\ gespeichert. Um dem DS- Behälter ein neues Dokument hinzuzufügen, drückt ein Benutzer auf den "Hinzufügen"- 

 <Desc/Clms Page number 40> 

 Knopf 1520. Es wird dann ein Dateimenü erscheinen (nicht dargestellt), das es dem Benutzer erlaubt, entweder die zur Verfügung stehenden Verzeichnisse nach dem gewünschten Dokument zu durchsuchen, oder Pfad und Dokumentennamen direkt einzugeben. Sobald das Dokument gewählt wurde und ein Verfallsdatum in Kasten 1540 eingegeben wurde, wird das Dokument dem Behälter hinzugefügt.

   Sobald das Dokument dem Behälter erfolgreich hinzugefügt wurde, werden Dokumentenname, Dokumentenlänge und Verfallsdatum des Dokuments in Kasten 1550 dargestellt. Figur   1 l(b)   zeigt, dass, falls der Behälter "demo.env" nach dem Verfallsdatum des Dokuments "demo. txt" geöffnet wird, das Dokument automatisch mit aussagelosen Zeichen überschrieben wird und eine Nachricht in Kasten 1550 erscheint, die anzeigt, dass das Dokument abgelaufen ist. Um ein Dokument aus dem Behälter zu extrahieren, wird das Dokument durch Drücken auf den Dokumentenkasten 1550 und anschliessendem Drücken auf den Kasten "Extrahieren" 1530 ausgewählt. Das Dokument wird dann aus dem Behälter extrahiert und im zugewiesenen Verzeichnis auf dem Computer gespeichert.

   Wenn ein Dokument abgelaufen ist, wird es das System nicht erlauben, dass das Dokument in Kasten 1550 ausgewählt wird. 



  Des weiteren kann,   gemäss   einer weiteren Ausführungsform des DS-Behälters, der Behälter expandiert und komprimiert werden, um mehrere Dokumente und andere digitale Objekte zu enthalten. Neue Dokumente (oder andere digitale Objekte) können dem Behälter hinzugefügt werden, im Behälter existierende Dokumente können auf den neuesten Stand gebracht oder gelöscht werden, und mehrere Behälter können verschmolzen werden. Jedes einzelnen Dokument im Behälter kann unabhängige Lebenszeitkontrollen und verschiedene Sicherheitsstufen besitzen. 



  Um diese Funktionalität zu gewährleisten, wird der DS-Behälter als ein virtuelles Dateisystem in einer einzigen Datei behandelt. Ein virtuelles Dateisystem ist eine Speichereinheit, die der externen Welt als einzelne Datei erscheint, wobei aber seine interne Repräsentation in Wahrheit viele Dateien und ihre Kontrollinformation verwaltet. Obwohl virtuelle Dateisysteme normalerweise hierarchische Verzeichnisstrukturen beinhalten, wird für den DS-Behälter vorzugsweise eine flache - einzel-Datei - Struktur verwendet.

   Gemäss der bevorzugten Ausführungsform der Erfindung, unterstützt der DS-Behälter die folgenden 
Operationen: i) Erzeugen eines neuen DS-Behälters; ii)   Hinzufügen   eines neuen Dokuments mit unabhängigen Lebenszeitkontrollen und Sicherheitsstufe zum DS-Behälter; iii) aufden 

 <Desc/Clms Page number 41> 

 neuesten Stand Bringen des Inhalts eines existierenden Dokuments im DS-Behälter, ohne    Lebenszeitkontrollen und Sicherheitsstufe zu ändern ; auf den neuesten Stand Bringen der   Lebenszeitkontrollen oder der Sicherheitsstufe eines existierenden Dokuments im DS- Behälter ; v) Löschen eines existierenden Dokuments aus dem DS-Behälter; vi) ungültig Erklären eines existierenden Dokuments im DS-Behälter auf seine Lebenszeitkontrollen und Löschen dieses Dokuments aus dem DS-Behälter; und vii) Zerstören des DS-Behälters. 



  Gemäss dieser Ausfiihrungsform beinhaltet ein DS-Behälter eine Behälterkopfzeile, die die Kontrollinformation für den Behälter enthält, und eine Dokumentenkopfzeile für jedes Dokument im Behälter. 



  Figur 10(b) zeigt gemäss einer bevorzugten Implementierung dieser Ausführungsform die Behälterkopfzeile, die den Namen CNAME 801 des Behälters, die voreingestellten Lebenszeitkontrollen DLC 802 des Behälters, das Datum DC 803, an dem der Behälter erzeugt wurde, das Datum DM 804, an dem der Behälter zuletzt modifiziert wurde, das Datum DLA 805, an dem auf den Behälter zuletzt zugegriffen wurde, und die Anzahl 806 an Dokumenten im Behälter enthält. Figur 10(b) zeigt einen DS-Behälter, der zwei Dokumente 904. 1 und 904. 2 enthält. Jedes Dokument hat eine Kopfzeile, die den Namen des Dokuments (901. 1 oder 901. 2) enthält, die Lebenszeitkontrollen für das Dokument (902. 1 oder 902.2), und die Länge des Dokuments (903. 1 oder 903. 2).

   Gemäss dieser Ausführungsform wird DLC 802, die im "envelope header" enthalten ist, verwendet als voreingestellte Lebenszeitkontrolle, wenn Dokumente dem Behälter hinzugefügt werden. Die DC 803, DM 804 und DLA 805 Felder ermöglichen es dem Benutzer, das Datum, an dem der Behälter erstellt wurde, das Datum, an dem er zuletzt modifiziert wurde und das Datum, an dem auf ihn zuletzt zugegriffen wurde, festzustellen, indem eine Routine ähnlich der "view-Methode"   in Tabelle 5 (a) wird. Natürlich können voreingestellte Lebenszeitkontrolle, die   Behälter erzeugt-, zuletzt modifiziert- und zuletzt daraufzugegriffen-Felder aus der Behälterkopfzeile ausgelassen werden, wenn diese Funktionalität nicht gewünscht wird. 



  Da der DS-Behälter aus Figur 10(b) auf ähnliche Weise wie der DS-Behälter aus Figur 10(a)   und Tabellen 4 (a) 5 (b) wird, wir hier keine detaillierte Beschreibung, wie   diese Ausführungsform programmiert werden kann, gegeben. 

 <Desc/Clms Page number 42> 

 



  Das Flussdiagramm aus Figur 12 zeigt, wie der existierende DS-Behälter geöffnet wird (Schritt 1010) und die Behälter-Kopfzeile (die Behältemame, voreingestellte Lebenszeitkontrollen, Erzeugungsdatum, Datum der letzten Modifikation, Datum des letzten Zugriffs und Anzahl der Dokumente enthält) gelesen wird, um einem existierenden DS- Behälter ein Dokument hinzuzufügen. Dann wird in Schritt 1030 eine Kopfzeile für das neue hinzuzufügende Dokument erstellt, die Dokumentnamen, Lebenszeitkontrollen des Dokuments und Dokumentenlänge enthält. Dann werden Dokumentenkopfzeile und das Dokument selbst an das Ende des Behälters angehängt (Schritte 1040 und 1050), die Werte für die Felder "letzter Zugriff", "letzte Modifikation" und "Gesamtzahl an Dokumenten" auf den neuesten Stand gebracht (Schritt 1060) und die neuen Werte als die neue Behälter- Kopfzeile geschrieben.

   Gemäss dem Flussdiagramm in Figur 12 wird der ursprüngliche Behälter mit dem auf den neuesten Stand gebrachten Behälter überschrieben. Dies geschieht in Kontrast zur Ausführungsform der Tabellen 4(a) bis 5(b), in denen der auf den neuesten Stand gebrachte Behälter als neue Datei erzeugt wird und der ursprüngliche Behälter nachher gelöscht wird. Natürlich kann die Ausführungsform der Figuren 10(b) und 13 derart   modifiziert werden, dass sie der Methode der Tabellen 4 (a) bis5(b) entspricht (d. h.   



  Überschreiben des ursprünglichen Behälters) und umgekehrt. 



  Das Flussdiagramm aus Figur 13 zeigt, dass der Behälter geöffnet wird (Schritt 1110) und die Behälter-Kopfzeile gelesen wird, um das Dokument aus dem DS-Behälter in Figur 10(b) zu extrahieren. Dann wird die Dokumentenkopfzeile für das erste Dokument im Behälter in Schritt 1120 aus dem Behälter gelesen. In Schritt 1130 wird der Name des zu extrahierenden Dokuments mit dem Namen im Feld dname 901 verglichen, und wenn beide übereinstimmen, fährt das Programm mit Schritt 1140 fort. Wenn sie nicht übereinstimmen, fährt das Programm mit Schritt   1150   fort. Vorausgesetzt, der gegenwärtige Dokumentenname im Feld dname ist derselbe, wie der des erwünschten Dokuments, überprüft das Programm in Schritt 1140, ob die Lebenszeitkontrollen für das Dokument gültig sind (z. B. ob das gegenwärtige Datum später ist als das Verfallsdatum).

   Wenn die Lebenszeitkontrollen gültig sind, wird das gegenwärtige Dokument extrahiert. Wenn die Lebenszeitkontrollen nicht gültig sind, wird das Dokument gelöscht. Unten wird ein veranschaulichendes Codesegment zum Löschen des Dokuments angegeben, worin die Funktion getTotalBytes() die Dokumentlänge aus der Dokument-Kopfzeile des gegenwärtigen Dokuments erhält. 

 <Desc/Clms Page number 43> 

 



  Public void   nullifyDocumentContent(SdeDoeumentHeader   dh) throws IOException { long bytesToNullify = dh.getTotalBytes(); for (long 1=0 ;   KbytesToNullify;   1++) { write(O); Wenn das gegenwärtige Dokument nicht das gewünschte ist, überspringt das Programm in Schritt 1150 den Inhalt des gegenwärtigen Dokuments zur nächsten Dokument-Kopfzeile, oder zum Ende des "envelope".

   Verdeutlichender Code zur Implementierung dieser Funktion ist der folgende: Public void skipDocumentContent(SdeDocumentHeader dh) throws IOException { long bytesToSkip = dh.getTotalBytesO for (long 1 = 0 ;   KbytesToSkip; 1++)        int ch = read(); Auf diese Weise liest das Programm bis hinter das Ende des gegenwärtigen Dokuments, so dass es bereit ist, die Dokument-Kopfzeile des nächsten Dokuments im Behälter zu lesen, wenn das Programm zu Schritt 1120 zurückkehrt. 



  Nachdem das Dokument extrahiert wurde, wird das Feld in der Behälter-Kopfzeile, auf das zuletzt zugegriffen wurde, auf den neuesten Stand gebracht (Schritt 1160), und die Behälter- Kopfzeilenfelder 801 bis 806 werden mit der aufden neuesten Stand gebrachten Behälter- Kopfzeile überschrieben (Schritt 1170) und der Behälter geschlossen (Schritt 1180). 

 <Desc/Clms Page number 44> 

 



   TABELLEN 4 BIS 5B public static int create(String envelopefilename) { if( envelopefilename null) { retrun CREATE FAIL BAD PARAM      if ( envelopeExists(envelopefilename)) { tetrun CREATE FAIL BAD PARAM      try { 
FileOutputStream fos = new FileOutputStream(envelopefilename); 
DataOutputStream dosnew DataOutputStream(fos); 
SdeEnvelopeHeader eh = new SdeEnvelopeHeaderO; eh.d¯name = envelopefilename; eh.d¯created = new   DateO;     eh.d¯last¯modified   = new Daten;   eh.d¯last¯accessed   = new   DateO;   eh.writeTo (dos);

     dos.flushO;   fos close - 
TABELLE 4A public static int addDocument( 
String envelopefilename, 
String documentfilename, 
Date expires 

 <Desc/Clms Page number 45> 

 if( envelopefilename null   #   documentfllename null   #   expires = null) { return ADD FAIL BAD PARAM    if ( envelopeExists(envelopefilename) false)    create(envelopefilename); } if ( documentExists(documenttfilename) = false) { return ADD FAIL BAD PARAM      try 
FilelnputStream fis = new FilelnputStream(envelopefilename); 
DataInputStream dis = new DatalnputStream(fis); 
FileOutputStream fos = new FileOutputStream(envelopefilename + ".tmp"); 
DataOutputStream dos = new DataoutputStream(fos); 
SdeEnvelopeHeader eh = new SdeEnvelopeHeaderO; eh.readFrom(dis);   eh.d¯last¯modifled   = new Daten;

   eh. h total documents eh.writeTo (dos); 
File file¯doc = new   File(documentfilename);   long length = file doc length 
FilelnputStream   fis¯doc   = new FileInputStream(file¯doc); 
SdeDocumentHeader dh = new SdeDocumentHeader();   dh.d¯name =   documentfilename;   dh.d¯expires   = expires;   dh.d¯total¯bytes   = length; dh.writeTo (dos); while (true) 

 <Desc/Clms Page number 46> 

      int ch = fisl doc rand if(ch = -1) break ; ch=65 dos.write(ch);    fis¯doc.close(); dos.flush();   fos close   fis.closeQ;  
File   file¯orig   = new File(envelopefilename);

   fil orig delete0
File file new = new File(envelopefilename +   ".tmp");   file new rename To file orig      catch   ( IOException   ioe)    retum(ADD¯FAILJOEXCEPTION);    return ADD OK } 
TABELLE 4B class SdeEnvelopeHeader      public String   d¯name   = null; public Date   d¯created   = null; public Date   d¯last¯modified   = null; public Date   d¯last¯accessed   =null ; public long   d¯totaldocuments   =0; public boolean writeTo(DataQutputStream dos) 

 <Desc/Clms Page number 47> 

 throws lOException    dos.writeUTF(d¯name);   dos writeLOng d created get Time dos writeLOng d last modife dget Time   dos.writeLong(d¯last¯accessed.getTime());

   dos.writeLong(d¯total¯documents);   retum(true); } public boolean readFrom(DatalnputStream dis) throws   IOException        d¯name = dis.readUTFO; long c = dis.readLongO; d¯creatcd = new Date(c); long Im = dis.readLong();   d¯last¯modified   = new Date(lm); long la =   dis.readLongO;   d¯last¯accessed = new Date(la); d¯total¯documents = dis.readLong();   retum(true);   

 <Desc/Clms Page number 48> 

 
TABELLE 4C class SdeDocumentHeader { public String d¯name = null; public Date   d¯expires   = null; public long   d¯total¯bytes   =0; public boolean writeTo(DataOutputStream dos) throws lOException {   dos.writeUTF(d¯name);   dos writeLong d expirte get Time dos writeLong d tota bytess return(true);

        public boolean readFrom(DataInputStream dis) throws lOException      d¯name = dis.readUTFO; long e = dis.readLongO; d¯expires = new Date(e); d¯total¯bytes = disreadLong();    return(true); TABELLE4D   public static int   VIEW¯OK   =0 ; public static int VIEW FAIL BAD PARAM =1; public static int   VIEW¯FA1L¯IOEXCEPION   =2 ; 

 <Desc/Clms Page number 49> 

 public static int view(String envelopefilename, PrintStream ps) { if( envelopefilename null   #   ps null) {   retum(VlEW¯FAIL¯BAD¯PARAM);   } if( envelopeExists(envelopefilename) = false) { return EXTRACT FAIL BAD PARAM      try      
FilelnputStream fis = new   FilelnputStream(envelopefilename);   
Data!nputStrearn dis = new DatalnputStream(fis);

   
SdeEnvelopeHeader eh = new   SdeEnvelopeHeaderO;   eh.readFrom(dis); ps.println("Envelope: "'+ eh.d¯name +'"."); ps.println("Created: "+ eh.d created tostring ps.println("Last modified: "+   eh.d¯last¯modified.toStringO);   ps.println("Last accessed : "+ ed.h last accessed to String ps.println("Contains: "+ eh.d¯total¯documents +"   document(s).");   fis.closeO;      catch ( IOException ioe)      return VIEW FAIL IOEXCEPTION } return VIWE OK 
TABELLE 5A public static int extractDocument(String envelopefilename, String documentfilename) 

 <Desc/Clms Page number 50> 

 { if ( envelopefilenarne null   #   documentfilename null) { retrun EXTRACT FAIL BAD PARAM if envelope Exists envelopefilenarne false) { return EXTRACT FAIL BAD PAAM } boolean valid = true;

   int invalid reason EXTRACT FAIL UNKNOWN try { 
FileinputStream fis = new 
FilelnputStream(envelopefilename); 
DatalnputStream dis = new DatalnputStream(fis); 
SdeEnvelopeHeader eh = new SdeEnvelopeHeader(); eh.readFrom(dis); 
SdeDocurnentReader dh = new SdeDocumentHeaderO; dh.readFrom(dis); ifdh,d namc equalsingnore documentfilename false) { valid = false; invalid reason   EXTRACT¯FA1L¯NOT¯FOUND    if( dh.d¯expires.before(new Date()))      valid = false; invalid reason = EXTRACT FAIL INVALID      

 <Desc/Clms Page number 51> 

 
File   file¯doc   = new   File(documentfilename);   if( file doc exists 0      file¯doc new File(documentfilename + = ".x") ;      
FileOutputStream fos doc = null;

   if( valid)      fos-doc = new File OutputStream file doc      for (long 1 = 0 ;   1 <      dh.d¯total¯bytes;   1++)      int ch = disreadO; if( valid)      ch 65; fos doc write ch if (valid) { fos doc close-      fis close0 ;

   } catch   ( IOException   ioe) { return EXTRACT FAIL IOEXCEPTION      if( valid) { return EXTRACT OK 

 <Desc/Clms Page number 52> 

 } else      return invalid reason 
TABELLE 5B Es sollte erwähnt werden, dass, obgleich oben dargestellten Ausführungsformen für ihre Annäherung an die Idee der virtuellen Behälter Java verwenden, und zwar mit einer relativ einfachen graphischen Benutzerschnittstelle, einer einfachen Verschlüsselungstechnik und Lebenszeitkontrollen, die ein Verfallsdatum beinhalten, die Erfindung eine grosse Zahl an weiteren Implementierungen einschliesst, die einfacher oder auch komplexer sein können. So kann die Benutzerschnittstelle eine komplexere GUI oder eine einfache KommandozeilenSchnittstelle ohne Graphik beinhalten.

   Genauso können die virtuellen Behälter implementiert werden, indem Serialisationsmechanismus von Java oder eine völlig andere Programmiersprache wie C verwendet wird. Auch können die Lebenszeitkontrollen modifiziert werden, so dass sie eine Funktion der Anzahl an Extraktionen des Dokuments oder der Anzahl an Modifizierungen des Dokuments darstellen. Auch können die Lebenszeitkontrollen verwendet werden, um das Dokument nach einer spezifizierten Zeitperiode in ein "read-only", also ein nur lesbares, Dokument umzuwandeln, oder um zu verhindern, dass das Dokument kopiert oder gedruckt wird. 



   Internethandel-Anwendung von virtuellen Behältern Gemäss einer anderen   Ausführungsform   der Erfindung wird ein Internethandelsystem zur Verfügung gestellt, das die virtuellen Behälter verwendet. Gemäss dieser Ausführungsform legt eine Partei, die ein elektronisch übersendbares Produkt über das Internet verkaufen möchte, das Produkt in einen virtuellen Behälter, indem sie eine Behälter-Erzeuger- 

 <Desc/Clms Page number 53> 

 Anwendung verwendet, die das Produkt verschlüsselt und Lebenszeitkontrollen für das Produkt setzt. So kann es sein, dass der Verkäufer es wünscht, dass ein potentieller Käufer das Produkt für eine begrenzte Probezeit ansehen oder auf andere Weise verwenden kann, und dass das Produkt nach dieser Probezeit zerstört wird, falls es nicht gekauft wurde.

   Ein potentieller Käufer des Produkts, der, bevor er das Produkt kauft, es ausprobieren möchte, erhält von Verkäufer eine Kopie des Behälters zusammen mit einer Behälter-Öffner- Anwendung. Die Behälter-Öffner-Anwendung gestattet es dem Käufer, das Produkt anzuschauen oder zu benutzen, während es im Behälter gewartet wird. Die Behälter-Öffner- Anwendung kann so konfiguriert werden, dass es dem Benutzer nicht erlaubt ist, das Produkt (oder Teile davon) auszudrucken, zu kopieren oder zu modifizieren. Wenn der Käufer versucht, das Produkt ohne die Behälter-Öffner-Anwendung anzuschauen, wird sie/er unfähig sein, es zu entschlüsseln. Aufjeden Fall wird jeder Versuch, den Behälter mit dem Behälter- Öffner zu öffnen, nachdem die Lebenszeitkontrollen ungültig wurden (z.

   B. nach einer bestimmten, durch den Verkäufer voreingestellten Zeitdauer), zu einer Zerstörung des Produkts führen. Es soll erwähnt werden, dass das Produkt jede Form von elektronischen Medien, die in digitaler Form übersendet werden können, sein kann, wie zum Beispiel Dokumente, Photographien, Bilder und Programme. 



  Gemäss einem weiteren Aspekt dieser Ausfuhrungsform kann der Käufer das Produkt vor Ablauf der Lebenszeitkontrollen kaufen, indem   sie/er   dem Verkäufer ihre/seine Kreditkarteninformation übermittelt. Nach Erhalt und/oder Überprüfung der Zahlungsinformation übermittelt der Verkäufer dem Käufer den Kaufschlüssel. Der Behälter- Öffner ist konfiguriert, diesen Kaufschlüssel zu erkennen (der vorzugsweise einzigartig ist und nur auf dieses, diesem einen Käufer übermittelte Produkt passt), und es dem Käufer zu gestatten, das Produkt aus dem Behälter zu extrahieren, wenn der Schlüssel gültig ist. 



   Verwendung von Softwarebestandteilen für virtuelle Behälter und eingebettete ausführbare Module In jedem der oben dargelegten exemplarischen   Ausführungsbeispiele   wurden die sich selbst zerstörenden Dokumente in anwendungsspezifische Programme implementiert, so dass zur Implementierung eines sich selbst zerstörenden Word-Dokuments ein anderes Programm verwendet wurde, als für ein sich selbst zerstörendes Excel-Dokument. Um diesen sich 

 <Desc/Clms Page number 54> 

 wiederholenden (rück-)entwickelnden Prozess zu vermeiden, kann das sich selbst zerstörende Dokument, oder, in diesem Fall, das virtuelle Behältersystem, als Softwarekomponente implementiert werden. Eine Softwarekomponente ist eine leicht wieder zu verwendende Softwareeinheit, die typischer Weise einen einfachen Service bereitstellt. 



  Das Computer Objekt Model (COM) stellt den Microsoft Standard für Software- Komponententechnologie dar. Es definiert einen Standard zum Packen von Software für den einfachen Wiedergebrauch. Eine typische COM-Komponente enthält inhaltlich zwei breite Kategorien: die Funktionalität der Komponente, implementiert als Satz von Methoden (Funktionen), und beschreibende Information über die Komponente und ihrer Funktionalität. 



  Dieser Inhalt wird die Schnittstelle der Komponente genannt. Es soll erwähnt werden, dass dieser Begriff anders als der Begriff "Benutzerschnittstelle" verwendet wird. Eine Benutzerschnittstelle ist typischerweise eine graphische Anordnung von Fenstern, Menüs, Knöpfen und dergleichen, die es dem Benutzer erlauben, mit der Funktionalität einer Anwendung Wechsel zu wirken. Eine "Schnittstelle" allerdings bezieht sich ganz allgemein auf den Eingabepunkt/die Eingabepunkte einer Softwareeinheit (Methoden, Funktionen). 



  COM-Komponenten können verwendet werden, um Benutzerschnittstellen-Elemente, wie Knöpfe und Listen, zu implementieren. Sie können auch benutzt werden, um Services ohne Benutzerschnittstelle zur Verfügung zu stellen. Zum Beispiel kann eine COM-Komponente mathematische Funktionen zur Verfügung stellen, um Sinus- und Cosinusfunktionen zu berechnen. 



  Obwohl es feine technische Unterschiede zwischen Komponenten und Objekten gibt, stellen sie zwei sehr ähnliche Konzepte dar. So verwendete dieses Dokument diese Termini austauschbar, gemäss den Sprachgewohnheiten der Presse und Benutzerhandbüchern. 



  Des weiteren wird der Terminus "Kontrolle" oft verwendet, um eine Komponente zu beschreiben, die keine Benutzerschnittstelle besitzt. Insbesondere verwendet Microsoft den Terminus ActivX-Kontrolle, um eine spezielle Klasse von COM-Komponenten zu beschreiben, die typischerweise Benutzerschnittstellen besitzen. Wenn eine COM- Komponente verwendet wird, um die Funktionalität einer bestehenden Anwendung auszuweiten, spricht man von einer Einbettung der Komponente in das Dokument der 

 <Desc/Clms Page number 55> 

 Anwendung. Eine solche Komponente wird oft als eingebettetes Objekt bezeichnet. 



  Diesbezüglich weisen wir darauf hin, dass Word 97TM Excel TM und Outlook 98TM jeder eine Unterstützung für Visual Basic-Anwendungen in Form einer Bibliothek an COM-Objekten besitzen. 



  Anwendungsausweitungen, implementiert mit Techniken der eingebetteten Objekte, erfordern im allgemeinen COM-Komponenten, die auf dem Computer des Verfassers des Dokuments installiert sind. Des weiteren muss im allgemeinen jeder Benutzer, der eine Kopie des Dokuments erhält, auch die COM-Komponenten auf seinem Computer installiert haben, um die ausgeweitete Funktionalität zu verwenden. 



  Grob gesagt kann eine COM-Komponente für einen virtuellen Behälter wie folgt implementiert werden: 
1. Spezifikation der Schnittstelle für die Komponente. Die Schnittstelle beschreibt jeden der von der Komponente angebotenen Service. Im Fall einer SDE-
Komponente kann der Service CreativeEnvelope, AddDocumentToEnvelope und
ExtractDocumentFromEnvelope enthalten. 



   2. Implementierung jedes einzelnen Service der Komponente unter Verwendung einer Programmiersprache wie Java, C oder Visual Basic. 



   3. Verwendung des Entwicklungswerkzeugs der Programmiersprache, um die COM-
Komponente zu erzeugen. 



   4. Installation der COM-Komponente auf der Workstation des Benutzers. 



   Implementierung der wenigen Skripte zum Aufruf der Services der Komponente. 



  Allerdings sollte erwähnt werden, dass hier der Microsoft COM-Komponenten-Standard beschrieben wurde, aber auch Softwarestandards, die von anderen Herstellern veröffentlicht werden, verwendet werden können. 

 <Desc/Clms Page number 56> 

 



  Obgleich hier die gegenwärtig bevorzugten Ausführungsformen der Erfindung beschrieben wurden, wird der Fachmann erkennen, dass Änderungen und Modifikationen vorgenommen werden können, ohne vom Grundgedanken der Erfindung abzuweichen. Es liegt in unserer Intention, alle solchen Modifikationen, die in den Rahmen dieser Erfindung fallen, zu beanspruchen.

Claims (45)

  1. ANSPRÜCHE 1. Virtuelles Behältersystem, umfassend : eine CPU (bzw. eine entsprechend funktionelle Hardware-Vorrichtung); einen an die CPU angebundenen elektronischen Speicher, der das verschlüsselte digitale Objekt, das in einem virtuellen Behälter enthalten ist, und den virtuellen Behälter, der eine Information über eine Lebenszeitkontrolle des digitalen Objekts umfasst, enthält; einen Schlüssel; ein Computerprogramm, das von der CPU (bzw. der Hardware-Vorrichtung) ausgeführt werden kann, um das digitale Objekt zu entschlüsseln, falls die Lebenszeitkontrolle gültig ist, und um die Lebenszeitkontrolle nach dem Erhalt eines Schlüssels zu modifizieren.
  2. 2. Virtuelles Behältersystem nach Anspruch 1, dadurch gekennzeichnet, dass der Schlüssel in einem vom elektronischen Speicher separaten Speicherplatz aufbewahrt wird und dem Programm nicht zur Verfügung steht.
  3. 3. Virtuelles Behältersystem nach Anspruch 2, dadurch gekennzeichnet, dass der Schlüssel dem Programm als Folge einer Anfrage des Benutzers zur Verfügung gestellt wird.
  4. 4. Virtuelles Behältersystem nach Anspruch 3, dadurch gekennzeichnet, dass der Schlüssel ein handelsüblicher Schlüssel ist und die Anfrage eine Bezahlung miteinschliesst. <Desc/Clms Page number 58>
  5. 5. Virtuelles Behältersystem nach Anspruch 4, dadurch gekennzeichnet, dass die Bezahlung in Form von Kreditkarteninformation geschieht.
  6. 6. Virtuelles Behältersystem nach Anspruch 1, dadurch gekennzeichnet, dass die Lebenszeitkontrolle aus einem Verfallsdatum besteht.
  7. 7. Virtuelles Behältersystem nach Anspruch 6, dadurch gekennzeichnet, dass besagte Lebenszeitkontrolle modifiziert wird, indem das Verfallsdatum gelöscht wird, so dass das digitale Objekt nicht verfällt.
  8. 8. Virtuelles Behältersystem nach Anspruch 6, dadurch gekennzeichnet, dass besagte Lebenszeitkontrolle modifiziert wird, indem das Verfallsdatum geändert wird.
  9. 9. Virtuelles Behältersystem nach Anspruch 1, weiterhin bestehend aus: einer Behälter-Erzeuger-Anwendung, die einen virtuellen Behälter erzeugen kann, der einen Kopfzeilenteil, der die Information für die Lebenszeitkontrolle trägt, und einen Teil für ein digitales Objekt, der das digitale Objekt enthält, umfasst ; eine Behälter-Öffner-Anwendung, die betätigt werden kann, um zu bestimmen, ob die Lebenszeitkontrolle gültig ist.
  10. 10. Virtuelles Behältersystem nach Anspruch 9, dadurch gekennzeichnet, dass der Behälter-Erzeuger das digitale Objekt verschlüsseln und das verschlüsselte digitale Objekt in den Teil des virtuellen Behälters, der für ein digitales Objekt vorgesehen ist, schreiben kann. <Desc/Clms Page number 59>
  11. 11. Virtuelles Behältersystem nach Anspruch 10, dadurch gekennzeichnet, dass Behälter-Öffner das verschlüsselte digitale Objekt lesen und das digitale Objekt entschlüsseln kann, wenn die Lebenszeitkontrollen gültig sind.
  12. 12. Virtuelles Behältersystem nach Anspruch 9, dadurch gekennzeichnet, dass es eine Software enthält, die die Inhalte des digitalen Objekts darstellen kann.
  13. 13. Virtuelles Behältersystem nach Anspruch 9, dadurch gekennzeichnet, dass die Behälter-Öffner-Anwendung das digitale Objekt zerstören kann, wenn die Lebenszeitkontrolle nicht gültig ist.
  14. 14. Virtuelles Behältersystem nach Anspruch 9, dadurch gekennzeichnet, dass die Behälter-Öffner-Anwendung das digitale Objekt mit aussagelosen Zeichen überschreiben kann, wenn die Lebenszeitkontrolle nicht gültig ist.
  15. 15. Virtuelles Behältersystem nach Anspruch 1, dadurch gekennzeichnet, dass der virtuelle Behälter auf zusammenhängenden Speicherplätzen im elektronischen Speicher gespeichert ist.
  16. 16. Virtuelles Behältersystem nach Anspruch 1, dadurch gekennzeichnet, dass die Lebenszeitkontrolle aus einem Verfallsdatum und einer Verfallszeit besteht.
  17. 17. Virtuelles Behältersystem nach Anspruch 1, dadurch gekennzeichnet, dass die Lebenszeitkontrolle aus der Anzahl, die das digitale Objekt geöffnet wurde, besteht. <Desc/Clms Page number 60>
  18. 18. Ein System zum Übersenden eines verfallenden digitalen Objekts an einen Empfänger, umfassend Software mit folgenden Funktionen: Erzeugen eines digitalen Behälters mit einem Kopfzeilenteil und einem Teil für ein digitales Objekt; Verschlüsseln eines digitalen Objekts ; Schreiben des verschlüsselten digitalen Objekts in den Speicherbereich für das digitale Objekt ; Auswahl einer Lebenszeitkontrolle für das digitale Objekt; Schreiben der Information für die Lebenszeitkontrolle in den Kopfzeilenteil des virtuellen Behälters ; Übersenden des virtuellen Behälters an einen Empfänger; sowie entsprechend betätigbare Hardware.
  19. 19. System nach Anspruch 18, mit folgenden weiteren Funktionen: Lesen der Lebenszeitkontrolle; Entschlüsseln des digitalen Objekts, wenn die Lebenszeitkontrolle gültig ist.
  20. 20. System nach Anspruch 19, mit folgenden weiteren Funktionen: zur Verfügung stellen eines Schlüssels; Verwenden des Schlüssels, um die Lebenszeitkontrolle zu modifizieren.
  21. 21. System nach Anspruch 20, mit folgender weiterer Funktion: Akzeptieren einer Bezahlung vor zur Verfügung stellen des Schlüssels.
  22. 22. System nach Anspruch 21, bei dem die Verwendung des Schlüssels eine Elimination der Lebenszeitkontrolle beinhaltet. <Desc/Clms Page number 61>
  23. 23. System nach Anspruch 21, bei dem die Verwendung des Schlüssels eine Änderung der Lebenszeitkontrolle beinhaltet.
  24. 24. System nach Anspruch 19, bei dem das digitale Objekt zerstört wird, wenn die Lebenszeitkontrolle nicht gültig ist.
  25. 25. System nach Anspruch 23, bei dem der Zerstörungsschritt das Überschreiben des digitalen Objekts mit aussagelosen Zeichen beinhaltet.
  26. 26. System nach Anspruch 18, bei dem der Übersendungsschritt das Übersenden des digitalen Objekts über das Internet beinhaltet.
  27. 27. System nach Anspruch 18, bei dem die Software folgende weitere Funktionen beinhaltet : Erzeugung einer Behälterkopfzeile, die Information bezüglich des Behälters einschliesslich des Behälternamens enthält ; Erzeugung einer Kopfzeile für jedes einzelne digitale Objekt aus einer Reihe digitaler Objekte, wobei die Kopfzeile Information bezüglich des digitalen Objekts einschliesslich des Namens des digitalen Objekts enthält; Speicherung jedes digitalen Objekts neben seiner Kopfzeile im virtuellen Behälter.
  28. 28. System nach Anspruch 26, bei dem das Schreiben der Information bezüglich der Lebenszeitkontrolle für jedes digitale Objekt das Schreiben der Information für das digitale Objekt in die Behälterkopfzeile beinhaltet.
  29. 29. System nach Anspruch 26, bei dem das Schreiben der Information bezüglich der Lebenszeitkontrolle für jedes digitale Objekt das Schreiben der Information in die Kopfzeile für das digitale Objekt beinhaltet. <Desc/Clms Page number 62>
  30. 30. System nach Anspruch 18, bei dem der Erzeugungsschritt folgenden weiteren Schritt beinhaltet : Erzeugung des virtuellen Behälters auf zusammenhängenden Speicherplätzen in einem elektronischen Speicher.
  31. 31. System zum Extrahieren von Information aus einem virtuellen Behälter, das folgende Software-Funktionen beinhaltet: Lesen von Information bezüglich der Lebenszeitkontrolle aus einem Kopfzeilenteil eines virtuellen Behälters, wobei der virtuelle Behälter den Kopfzeilenteil und den Teil für das digitale Objekt beinhaltet, und wobei der Teil für das digitale Objekt ein verschlüsseltes digitales Objekt beinhaltet; Überprüfen der Gültigkeit der Lebenszeitkontrolle, basierend auf die Information; Lesen des digitalen Objekts aus dem Teil für das digitale Objekt und Entschlüsseln des digitalen Objekts, wenn die Lebenszeitkontrolle gültig ist.
  32. 32. System zum Übersenden eines digitalen Objekts, das zerstört werden kann, an einen Empfänger, das folgende Software-Funktionen und entsprechend betreibbare Hardware beinhaltet : Erzeugen eines virtuellen Behälters, der aufzusammenhängenden Speicherplätzen in einem elektronischen Speicher eines Computers gespeichert ist und einen Kopfzeilenteil und einen Teil für ein oder mehrere digitale Objekte beinhaltet; Auswahl eines digitalen Objekts zur Einfügung in den virtuellen Behälter; Anwenden einer Verschlüsselungstechnik auf das digitale Objekt, um ein verschlüsseltes digitales Objekt zu erzeugen; Schreiben des verschlüsselten digitalen Objekts in den Teil für das digitale Objekt; Auswahl eines Verfallsdatums für das digitale Objekt;
    <Desc/Clms Page number 63> Schreiben von Information bezüglich des Verfallsdatums in den Kopfzeilenteil des virtuellen Behälters; Übersenden des virtuellen Behälters und der Behälter-Öffner-Anwendung an einen Empfänger, wobei die Behälter-Öffner-Anwendung, wenn sie vom Empfänger aufgerufen wird, die Information bezüglich des Verfallsdatums aus dem Kopfzeilenteil des virtuellen Behälters liest, bestimmt, basierend auf besagter Information, ob das digitale Objekt verfallen ist, den Teil für das digitale Objekt des virtuellen Behälters, falls es verfallen ist, mit aussagelosen Zeichen überschreibt, und das verschlüsselte digitale Objekt aus dem Teil für das digitale Objekt liest und eine Entschlüsselungstechnik auf das digitale Objekt anwendet, wenn das digitale Objekt nicht verfallen ist.
  33. 33. System nach Anspruch 32, bei dem der virtuelle Behälter über das Internet gesendet wird.
  34. 34. System nach Anspruch 32, bei dem das digitale Objekt ein Dokument ist.
  35. 35. System nach Anspruch 32, bei dem das digitale Objekt ein Programm ist.
  36. 36. System nach Anspruch 31, bei dem der Teil für das digitale Objekt des virtuellen Behälters mit aussagelosen Zeichen überschrieben wird, wenn die Lebenszeitkontrolle ungültig ist.
  37. 37. System nach Anspruch 31, bei dem der virtuelle Behälter in zusammenhängenden Speicherplätzen in einem elektronischen Speicher gespeichert ist.
  38. 38. Virtuelles Behältersystem nach Anspruch 1, bei dem die Lebenszeitkontrolle ein Kopieren des digitalen Objekts verhindert. <Desc/Clms Page number 64>
  39. 39. Virtuelles Behältersystem nach Anspruch 1, bei dem die Lebenszeitkontrolle ein Weiterleiten des digitalen Objekts verhindert.
  40. 40. System nach Anspruch 18, bei dem die Lebenszeitkontrolle ein Kopieren des digitalen Objekts verhindert.
  41. 41. System nach Anspruch 18, bei dem die Lebenszeitkontrolle ein Weiterleiten des digitalen Objekts verhindert.
  42. 42. System nach Anspruch 31, bei dem die Lebenszeitkontrolle ein Kopieren des digitalen Objekts verhindert.
  43. 43. System nach Anspruch 31, bei dem die Lebenszeitkontrolle ein Weiterleiten des digitalen Objekts verhindert.
  44. 44. System nach Anspruch 32, bei dem die Lebenszeitkontrolle ein Kopieren des digitalen Objekts verhindert.
  45. 45. System nach Anspruch 32, bei dem die Lebenszeitkontrolle ein Weiterleiten des digitalen Objekts verhindert.
AT0086500U 1997-06-17 2000-11-23 Sich selbst zerstörendes dokument oder e-mailnachrichtensystem AT4261U3 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US4985397P 1997-06-17 1997-06-17

Publications (2)

Publication Number Publication Date
AT4261U2 true AT4261U2 (de) 2001-04-25
AT4261U3 AT4261U3 (de) 2002-01-25

Family

ID=21962098

Family Applications (1)

Application Number Title Priority Date Filing Date
AT0086500U AT4261U3 (de) 1997-06-17 2000-11-23 Sich selbst zerstörendes dokument oder e-mailnachrichtensystem

Country Status (13)

Country Link
US (1) US7191219B2 (de)
EP (1) EP1000400A4 (de)
JP (1) JP2000501540A (de)
KR (1) KR100336025B1 (de)
CN (1) CN1229489A (de)
AT (1) AT4261U3 (de)
AU (1) AU725944B2 (de)
BR (1) BR9806000A (de)
CA (2) CA2263171A1 (de)
HU (1) HUP0001042A3 (de)
IL (1) IL128576A (de)
NZ (1) NZ334075A (de)
WO (1) WO1998058321A1 (de)

Families Citing this family (379)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3206529B2 (ja) 1997-12-05 2001-09-10 日本電気株式会社 電子メールシステム、電子メールシステムにおける電子メールの送受信方法および電子メールの送受信用プログラムを記録した記録媒体
US6711608B1 (en) * 1998-09-23 2004-03-23 John W. L. Ogilvie Method for including a self-removing code in a self-removing message
US7325052B1 (en) * 1998-10-06 2008-01-29 Ricoh Company, Ltd. Method and system to erase data after expiration or other condition
US6651087B1 (en) 1999-01-28 2003-11-18 Bellsouth Intellectual Property Corporation Method and system for publishing an electronic file attached to an electronic mail message
CA2298274A1 (en) * 1999-02-22 2000-08-22 Lucent Technologies, Inc. Specifiable delete times for email messages
US7596606B2 (en) * 1999-03-11 2009-09-29 Codignotto John D Message publishing system for publishing messages from identified, authorized senders
US6625734B1 (en) 1999-04-26 2003-09-23 Disappearing, Inc. Controlling and tracking access to disseminated information
US7096355B1 (en) 1999-04-26 2006-08-22 Omniva Corporation Dynamic encoding algorithms and inline message decryption
US7149893B1 (en) * 1999-09-07 2006-12-12 Poofaway.Com, Inc. System and method for enabling the originator of an electronic mail message to preset an expiration time, date, and/or event, and to control processing or handling by a recipient
US6360221B1 (en) 1999-09-21 2002-03-19 Neostar, Inc. Method and apparatus for the production, delivery, and receipt of enhanced e-mail
US7840639B1 (en) 1999-09-21 2010-11-23 G&H Nevada-Tek Method and article of manufacture for an automatically executed application program associated with an electronic message
US6704771B1 (en) 1999-09-21 2004-03-09 Neostar, Inc. Electronic message payload for interfacing with text contained in the message
US9092535B1 (en) 1999-09-21 2015-07-28 Google Inc. E-mail embedded textual hyperlink object
CN1591398B (zh) * 2000-03-16 2012-01-11 微软公司 通知平台总体结构
US7634528B2 (en) 2000-03-16 2009-12-15 Microsoft Corporation Harnessing information about the timing of a user's client-server interactions to enhance messaging and collaboration services
US7565403B2 (en) 2000-03-16 2009-07-21 Microsoft Corporation Use of a bulk-email filter within a system for classifying messages for urgency or importance
US7444383B2 (en) 2000-06-17 2008-10-28 Microsoft Corporation Bounded-deferral policies for guiding the timing of alerting, interaction and communications using local sensory information
US7243130B2 (en) 2000-03-16 2007-07-10 Microsoft Corporation Notification platform architecture
US20020023134A1 (en) * 2000-04-03 2002-02-21 Roskowski Steven G. Method and computer program product for establishing real-time communications between networked computers
US7844670B2 (en) 2000-04-03 2010-11-30 Paltalk Holdings, Inc. Method and computer program product for establishing real-time communications between networked computers
JP2001337865A (ja) 2000-05-25 2001-12-07 Minolta Co Ltd ファイル生成方法およびファイル管理方法ならびにファイル
JP2001350670A (ja) * 2000-06-05 2001-12-21 Tokio Marine & Fire Insurance Co Ltd 情報管理装置及びシステム、情報消去機能付き記録メディア
US7913078B1 (en) 2000-06-22 2011-03-22 Walter Mason Stewart Computer network virus protection system and method
US6901519B1 (en) 2000-06-22 2005-05-31 Infobahn, Inc. E-mail virus protection system and method
JP2002073495A (ja) 2000-08-30 2002-03-12 Nec Corp 電子メールの送受信方法及び通信端末
US7958213B1 (en) 2000-09-21 2011-06-07 Siemens Enterprise Communications, Inc. Processing electronic messages
US20030014512A1 (en) * 2001-07-10 2003-01-16 Murata Kikai Kabushiki Kaisha Communication apparatus and structured document management apparatus
US7640361B1 (en) * 2001-08-24 2009-12-29 Mcafee, Inc. Systems and methods for converting infected electronic files to a safe format
US7117248B1 (en) * 2001-09-28 2006-10-03 Bellsouth Intellectual Property Corporation Text message delivery features for an interactive wireless network
US7035904B1 (en) * 2001-09-28 2006-04-25 Bellsouth Intellectual Property Corporation Text message delivery features for an interactive wireless network
US7356564B2 (en) * 2002-01-09 2008-04-08 At&T Delaware Intellectual Property, Inc. Method, system, and apparatus for providing self-destructing electronic mail messages
JP2004005436A (ja) * 2002-03-28 2004-01-08 Seiko Epson Corp 電子メールを用いる情報収集システム
US7254772B2 (en) * 2002-07-30 2007-08-07 Xerox Corporation Systems and methods for visually representing the aging and/or expiration of electronic documents
CN1689302B (zh) 2002-08-19 2011-01-19 捷讯研究有限公司 用于无线移动通信设备的资源的安全控制的系统和方法
US7496631B2 (en) 2002-08-27 2009-02-24 Aol Llc Delivery of an electronic communication using a lifespan
US7457879B2 (en) 2003-04-01 2008-11-25 Microsoft Corporation Notification platform architecture
JP2004326378A (ja) * 2003-04-24 2004-11-18 Hitachi Ltd 通信端末及び送受信方法
US7107416B2 (en) 2003-09-08 2006-09-12 International Business Machines Corporation Method, system, and program for implementing retention policies to archive records
US7117322B2 (en) * 2003-09-08 2006-10-03 International Business Machines Corporation Method, system, and program for retention management and protection of stored objects
US7146388B2 (en) 2003-10-07 2006-12-05 International Business Machines Corporation Method, system, and program for archiving files
FR2861235B1 (fr) * 2003-10-17 2005-12-16 Sagem Procede de protection d'un algorithme cryptographique
EP1678645B1 (de) 2003-10-27 2019-10-02 Hitachi Vantara Corporation Auf richtlinien basierende verwaltung eines redundanten arrays unabhängiger knoten
US20050198165A1 (en) * 2003-11-06 2005-09-08 Reddel Frederick A.V Systems and methods for electronic information distribution
US20050132010A1 (en) * 2003-12-12 2005-06-16 International Business Machines Corporation Scheduled electronic mail deletions
JP2005184222A (ja) * 2003-12-17 2005-07-07 Konica Minolta Business Technologies Inc ワークフローシステム及びそのクライアント端末
US7430754B2 (en) * 2004-03-23 2008-09-30 Microsoft Corporation Method for dynamic application of rights management policy
DE502004001164D1 (de) * 2004-06-02 2006-09-21 Ixos Software Ag Verfahren und Vorrichtung zum Verwalten von elektronischen Nachrichten
ATE465577T1 (de) 2004-06-21 2010-05-15 Research In Motion Ltd System und verfahren zur handhabung sicherer elektronischer nachrichten
US7519670B2 (en) * 2004-08-12 2009-04-14 International Business Machines Corporation Method for disappearing ink for text messaging
US20060036739A1 (en) * 2004-08-12 2006-02-16 International Business Machines Corporation Method and system for removing messaging information in a messaging client
US20060053308A1 (en) * 2004-09-08 2006-03-09 Raidy 2 Go Ltd. Secured redundant memory subsystem
US7958148B2 (en) * 2004-11-17 2011-06-07 Iron Mountain Incorporated Systems and methods for filtering file system input and output
US20070208685A1 (en) * 2004-11-17 2007-09-06 Steven Blumenau Systems and Methods for Infinite Information Organization
EP1828936A2 (de) * 2004-11-17 2007-09-05 Iron Mountain Incorporated Systeme und verfahren zur verwaltung von digitalem kapital
US7809699B2 (en) * 2004-11-17 2010-10-05 Iron Mountain Incorporated Systems and methods for automatically categorizing digital assets
US7792757B2 (en) * 2004-11-17 2010-09-07 Iron Mountain Incorporated Systems and methods for risk based information management
US20070130218A1 (en) * 2004-11-17 2007-06-07 Steven Blumenau Systems and Methods for Roll-Up of Asset Digital Signatures
US20070112784A1 (en) * 2004-11-17 2007-05-17 Steven Blumenau Systems and Methods for Simplified Information Archival
US20060156381A1 (en) * 2005-01-12 2006-07-13 Tetsuro Motoyama Approach for deleting electronic documents on network devices using document retention policies
US20060248352A1 (en) * 2005-04-27 2006-11-02 Sbc Knowledge Ventures, L.P. Method and system of securing electronic data
US7730142B2 (en) 2005-07-01 2010-06-01 0733660 B.C. Ltd. Electronic mail system with functionality to include both private and public messages in a communication
US10021062B2 (en) 2005-07-01 2018-07-10 Cirius Messaging Inc. Secure electronic mail system
US9401900B2 (en) 2005-07-01 2016-07-26 Cirius Messaging Inc. Secure electronic mail system with thread/conversation opt out
US8688790B2 (en) * 2005-07-01 2014-04-01 Email2 Scp Solutions Inc. Secure electronic mail system with for your eyes only features
US9282081B2 (en) 2005-07-28 2016-03-08 Vaporstream Incorporated Reduced traceability electronic message system and method
US7610345B2 (en) 2005-07-28 2009-10-27 Vaporstream Incorporated Reduced traceability electronic message system and method
CN100571323C (zh) * 2005-09-09 2009-12-16 富士施乐株式会社 记录介质销毁和废弃系统以及记录介质管理系统
JP4582461B2 (ja) 2005-09-09 2010-11-17 富士ゼロックス株式会社 記録媒体管理システム、記録媒体管理装置、記録媒体廃棄装置、記録媒体廃棄方法及び記録媒体廃棄システム
US7720825B2 (en) * 2005-10-21 2010-05-18 International Business Machines Corporation System and method for enabling records management
US7987511B2 (en) 2005-11-23 2011-07-26 Research In Motion Limited E-mail with secure message parts
JP2007257144A (ja) * 2006-03-22 2007-10-04 Nec System Technologies Ltd セキュア機密情報配布システム、貸出元コンピュータ、セキュア機密情報配布方法及びプログラム
US20080059591A1 (en) * 2006-09-01 2008-03-06 Martin Denis Optimized message counting
US8554868B2 (en) 2007-01-05 2013-10-08 Yahoo! Inc. Simultaneous sharing communication interface
US8161383B2 (en) * 2007-06-26 2012-04-17 Canon Kabushiki Kaisha Information processing apparatus and information processing method
US9135473B2 (en) * 2007-08-08 2015-09-15 Honeywell International Inc. Method and apparatus for erasure of data from a data storage device located on a vehicle
US20090055499A1 (en) * 2007-08-22 2009-02-26 International Business Machines Corporation Administration Of Time-Sensitive Email
US20090055498A1 (en) * 2007-08-22 2009-02-26 International Business Machines Corporation Administration Of Time-Sensitive Email
US11270267B2 (en) * 2007-12-12 2022-03-08 Avaya Inc. Sensitive information management
US20090177704A1 (en) * 2008-01-09 2009-07-09 Microsoft Corporation Retention policy tags for data item expiration
US7475120B1 (en) * 2008-03-10 2009-01-06 International Business Machines Corporation Auto removal of sent attachments
KR100883837B1 (ko) * 2008-04-11 2009-02-17 이승호 전자 메일 및 원격 파일의 로컬 및 원격지에서의 파일 관리방법
US8832201B2 (en) * 2008-08-18 2014-09-09 International Business Machines Corporation Method, system and program product for providing selective enhanced privacy and control features to one or more portions of an electronic message
JP5200807B2 (ja) * 2008-09-19 2013-06-05 富士通株式会社 モバイル端末、データ管理システム及びプログラム
US8620869B2 (en) * 2008-09-25 2013-12-31 Microsoft Corporation Techniques to manage retention policy tags
US8272028B2 (en) * 2008-10-15 2012-09-18 Ricoh Company, Ltd. Approach for managing access to electronic documents on network devices using document retention policies and document security policies
US20100106689A1 (en) * 2008-10-24 2010-04-29 At&T Intellectual Property I, L.P. Methods, Computer Program Products, and Systems for File Retention
US20100217984A1 (en) * 2009-02-13 2010-08-26 Hill Gregory G Methods and apparatus for encrypting and decrypting email messages
US9177264B2 (en) 2009-03-06 2015-11-03 Chiaramail, Corp. Managing message categories in a network
JP2011008621A (ja) * 2009-06-26 2011-01-13 Fujitsu Ltd 情報処理装置、方法およびプログラム
US8024462B1 (en) * 2009-10-05 2011-09-20 Mcafee, Inc. System, method, and computer program product for preventing communication of unwanted network traffic by holding only a last portion of the network traffic
US8447734B2 (en) * 2009-11-30 2013-05-21 Hewlett-Packard Development Company, L.P. HDAG backup system with variable retention
US9443227B2 (en) * 2010-02-16 2016-09-13 Tigertext, Inc. Messaging system apparatuses circuits and methods of operation thereof
US8554253B2 (en) 2010-08-26 2013-10-08 John L. Rogitz Telephone messaging privacy
US9225727B2 (en) 2010-11-15 2015-12-29 Blackberry Limited Data source based application sandboxing
EP2649833A1 (de) 2010-12-07 2013-10-16 Telefonaktiebolaget LM Ericsson (PUBL) Verfahren und vorrichtung zur bereitstellung eines temporärer identitätsmoduls mit gemeinsamem schlüsselnutzungsschema
US8457668B2 (en) 2011-01-18 2013-06-04 Claremont Speede Mobile sender initiated SMS message deletion method and system
JP2012203476A (ja) * 2011-03-23 2012-10-22 Nakayo Telecommun Inc 情報自動削除機能を有する情報表示装置および情報送信装置
US9331972B2 (en) 2011-03-31 2016-05-03 Loment, Inc. Automatic expiration of messages communicated to an end user communication device
US8880625B2 (en) * 2011-03-31 2014-11-04 Loment, Inc. Automatic expiration of messages communicated among end user communication devices
US9459778B2 (en) 2011-07-12 2016-10-04 Mobli Technologies 2010 Ltd. Methods and systems of providing visual content editing functions
CN103166833A (zh) * 2011-12-16 2013-06-19 北京新媒传信科技有限公司 一种电子邮件自毁方法及系统
US8768876B2 (en) 2012-02-24 2014-07-01 Placed, Inc. Inference pipeline system and method
US8972357B2 (en) 2012-02-24 2015-03-03 Placed, Inc. System and method for data collection to validate location data
US11734712B2 (en) 2012-02-24 2023-08-22 Foursquare Labs, Inc. Attributing in-store visits to media consumption based on data collected from user devices
US9251360B2 (en) 2012-04-27 2016-02-02 Intralinks, Inc. Computerized method and system for managing secure mobile device content viewing in a networked secure collaborative exchange environment
US9253176B2 (en) 2012-04-27 2016-02-02 Intralinks, Inc. Computerized method and system for managing secure content sharing in a networked secure collaborative exchange environment
AU2013251304B2 (en) 2012-04-27 2018-12-20 Intralinks, Inc. Computerized method and system for managing networked secure collaborative exchange
US9553860B2 (en) 2012-04-27 2017-01-24 Intralinks, Inc. Email effectivity facility in a networked secure collaborative exchange environment
US20140304836A1 (en) * 2012-04-27 2014-10-09 Intralinks, Inc. Digital rights management through virtual container partitioning
US10155168B2 (en) 2012-05-08 2018-12-18 Snap Inc. System and method for adaptable avatars
US8707454B1 (en) 2012-07-16 2014-04-22 Wickr Inc. Multi party messaging
WO2014031899A1 (en) 2012-08-22 2014-02-27 Goldrun Corporation Augmented reality virtual content platform apparatuses, methods and systems
BR112015006418A2 (pt) 2012-09-24 2017-07-04 Speede Claremont método para apagar dados iniciados por um dispositivo de usuário de remetente remoto; e sistema de armazenamento de entrega de dados entre um dispositivo de usuário remetente e um dispositivo de usuário de destino
CN103023655B (zh) * 2012-12-13 2016-06-29 曙光云计算技术有限公司 网络安全系统
US9742713B2 (en) 2013-05-30 2017-08-22 Snap Inc. Apparatus and method for maintaining a message thread with opt-in permanence for entries
US10439972B1 (en) 2013-05-30 2019-10-08 Snap Inc. Apparatus and method for maintaining a message thread with opt-in permanence for entries
US9705831B2 (en) 2013-05-30 2017-07-11 Snap Inc. Apparatus and method for maintaining a message thread with opt-in permanence for entries
US9866591B1 (en) 2013-06-25 2018-01-09 Wickr Inc. Enterprise messaging platform
US10129260B1 (en) 2013-06-25 2018-11-13 Wickr Inc. Mutual privacy management
US10567349B2 (en) 2013-06-25 2020-02-18 Wickr Inc. Secure time-to-live
US9830089B1 (en) 2013-06-25 2017-11-28 Wickr Inc. Digital data sanitization
US20160246999A1 (en) * 2013-10-04 2016-08-25 Telefonica Digital Espana, S.L.U. Method and system for image capturing prevention of information displayed on a screen and computer program thereof
EP3069462A4 (de) 2013-11-14 2017-05-03 Intralinks, Inc. Unterstützung bei streitigkeiten in der cloud-gehosteten gemeinsamen dateinutzung und kollaboration
US9083770B1 (en) 2013-11-26 2015-07-14 Snapchat, Inc. Method and system for integrating real time communication features in applications
US20150180845A1 (en) * 2013-12-19 2015-06-25 Robert Uomini Electronic mail system and methods
CA2863124A1 (en) 2014-01-03 2015-07-03 Investel Capital Corporation User content sharing system and method with automated external content integration
US9628950B1 (en) 2014-01-12 2017-04-18 Investment Asset Holdings Llc Location-based messaging
US20150222686A1 (en) * 2014-02-06 2015-08-06 Elijah Aizenstat System and a method for sharing interactive media content by at least one user with at least one recipient over a communication network
US10082926B1 (en) 2014-02-21 2018-09-25 Snap Inc. Apparatus and method for alternate channel communication initiated through a common message thread
US9698976B1 (en) 2014-02-24 2017-07-04 Wickr Inc. Key management and dynamic perfect forward secrecy
US8909725B1 (en) 2014-03-07 2014-12-09 Snapchat, Inc. Content delivery network for ephemeral objects
WO2015143680A1 (zh) * 2014-03-27 2015-10-01 宇龙计算机通信科技(深圳)有限公司 信息发送方法及装置和信息接收方法及装置
DE102014105116A1 (de) 2014-04-10 2015-10-15 Fujitsu Technology Solutions Intellectual Property Gmbh Verfahren zur Zerstörung von Dateiinhalten
WO2015164521A1 (en) 2014-04-23 2015-10-29 Intralinks, Inc. Systems and methods of secure data exchange
US9276886B1 (en) * 2014-05-09 2016-03-01 Snapchat, Inc. Apparatus and method for dynamically configuring application component tiles
US9396354B1 (en) 2014-05-28 2016-07-19 Snapchat, Inc. Apparatus and method for automated privacy protection in distributed images
US9537811B2 (en) 2014-10-02 2017-01-03 Snap Inc. Ephemeral gallery of ephemeral messages
US11625443B2 (en) 2014-06-05 2023-04-11 Snap Inc. Web document enhancement
US9113301B1 (en) 2014-06-13 2015-08-18 Snapchat, Inc. Geo-location based event gallery
US9584530B1 (en) 2014-06-27 2017-02-28 Wickr Inc. In-band identity verification and man-in-the-middle defense
US9225897B1 (en) 2014-07-07 2015-12-29 Snapchat, Inc. Apparatus and method for supplying content aware photo filters
US10055717B1 (en) 2014-08-22 2018-08-21 Snap Inc. Message processor with application prompts
US10423983B2 (en) 2014-09-16 2019-09-24 Snap Inc. Determining targeting information based on a predictive targeting model
US10824654B2 (en) 2014-09-18 2020-11-03 Snap Inc. Geolocation-based pictographs
US11216869B2 (en) 2014-09-23 2022-01-04 Snap Inc. User interface to augment an image using geolocation
US10839086B2 (en) * 2014-09-30 2020-11-17 Jonker Llc Method of operating ephemeral peripheral device
US10284508B1 (en) 2014-10-02 2019-05-07 Snap Inc. Ephemeral gallery of ephemeral messages with opt-in permanence
US9892204B2 (en) 2014-11-10 2018-02-13 International Business Machines Corporation Creating optimized shortcuts
US9015285B1 (en) 2014-11-12 2015-04-21 Snapchat, Inc. User interface for accessing media at a geographic location
US9654288B1 (en) 2014-12-11 2017-05-16 Wickr Inc. Securing group communications
US10311916B2 (en) 2014-12-19 2019-06-04 Snap Inc. Gallery of videos set to an audio time line
US9385983B1 (en) 2014-12-19 2016-07-05 Snapchat, Inc. Gallery of messages from individuals with a shared interest
US9754355B2 (en) 2015-01-09 2017-09-05 Snap Inc. Object recognition based photo filters
US11388226B1 (en) 2015-01-13 2022-07-12 Snap Inc. Guided personal identity based actions
US10133705B1 (en) 2015-01-19 2018-11-20 Snap Inc. Multichannel system
US9521515B2 (en) 2015-01-26 2016-12-13 Mobli Technologies 2010 Ltd. Content request by location
US9294425B1 (en) 2015-02-06 2016-03-22 Snapchat, Inc. Storage and processing of ephemeral messages
US10223397B1 (en) 2015-03-13 2019-03-05 Snap Inc. Social graph based co-location of network users
EP3941000B1 (de) 2015-03-18 2024-02-14 Snap Inc. Bereitstellung von geofence-autorisierung
US9692967B1 (en) 2015-03-23 2017-06-27 Snap Inc. Systems and methods for reducing boot time and power consumption in camera systems
US9390284B1 (en) * 2015-04-03 2016-07-12 Ray Wang Method for secure and private computer file
US9996429B1 (en) 2015-04-14 2018-06-12 EMC IP Holding Company LLC Mountable container backups for files
US9946603B1 (en) * 2015-04-14 2018-04-17 EMC IP Holding Company LLC Mountable container for incremental file backups
US10078555B1 (en) 2015-04-14 2018-09-18 EMC IP Holding Company LLC Synthetic full backups for incremental file backups
US10135949B1 (en) 2015-05-05 2018-11-20 Snap Inc. Systems and methods for story and sub-story navigation
US9881094B2 (en) 2015-05-05 2018-01-30 Snap Inc. Systems and methods for automated local story generation and curation
EP3292523A4 (de) 2015-05-06 2018-03-14 Snap Inc. Systeme und verfahren für kurzlebige gruppenkommunikation
US10503264B1 (en) 2015-06-16 2019-12-10 Snap Inc. Radial gesture navigation
US9906479B1 (en) 2015-06-16 2018-02-27 Snap Inc. Storage management for ephemeral messages
US10993069B2 (en) 2015-07-16 2021-04-27 Snap Inc. Dynamically adaptive media content delivery
US10181045B1 (en) 2015-07-24 2019-01-15 Hologic, Inc. Automated email message and document shredding system
US10033702B2 (en) 2015-08-05 2018-07-24 Intralinks, Inc. Systems and methods of secure data exchange
US10817898B2 (en) 2015-08-13 2020-10-27 Placed, Llc Determining exposures to content presented by physical objects
US20170046531A1 (en) * 2015-08-14 2017-02-16 Strong Bear Llc Data encryption method and system for use with cloud storage
US11121997B1 (en) 2015-08-24 2021-09-14 Snap Inc. Systems, devices, and methods for determining a non-ephemeral message status in a communication system
US10616162B1 (en) 2015-08-24 2020-04-07 Snap Inc. Systems devices and methods for automatically selecting an ephemeral message availability
US10157333B1 (en) 2015-09-15 2018-12-18 Snap Inc. Systems and methods for content tagging
US9652896B1 (en) 2015-10-30 2017-05-16 Snap Inc. Image based tracking in augmented reality systems
US11119628B1 (en) 2015-11-25 2021-09-14 Snap Inc. Dynamic graphical user interface modification and monitoring
US10474321B2 (en) 2015-11-30 2019-11-12 Snap Inc. Network resource location linking and visual content sharing
US9984499B1 (en) 2015-11-30 2018-05-29 Snap Inc. Image and point cloud based tracking and in augmented reality systems
US12411890B2 (en) 2015-12-08 2025-09-09 Snap Inc. System to correlate video data and contextual data
US10354425B2 (en) 2015-12-18 2019-07-16 Snap Inc. Method and system for providing context relevant media augmentation
US9584493B1 (en) 2015-12-18 2017-02-28 Wickr Inc. Decentralized authoritative messaging
US10291607B1 (en) 2016-02-02 2019-05-14 Wickr Inc. Providing real-time events to applications
US10679389B2 (en) 2016-02-26 2020-06-09 Snap Inc. Methods and systems for generation, curation, and presentation of media collections
US11023514B2 (en) 2016-02-26 2021-06-01 Snap Inc. Methods and systems for generation, curation, and presentation of media collections
US10285001B2 (en) 2016-02-26 2019-05-07 Snap Inc. Generation, curation, and presentation of media collections
US10164987B2 (en) * 2016-02-29 2018-12-25 Microsoft Technology Licensing, Llc Controlling access to data originating from a third party website
US10530731B1 (en) 2016-03-28 2020-01-07 Snap Inc. Systems and methods for chat with audio and video elements
US10270839B2 (en) 2016-03-29 2019-04-23 Snap Inc. Content collection navigation and autoforwarding
US10339365B2 (en) 2016-03-31 2019-07-02 Snap Inc. Automated avatar generation
US11900418B2 (en) 2016-04-04 2024-02-13 Snap Inc. Mutable geo-fencing system
US10686899B2 (en) 2016-04-06 2020-06-16 Snap Inc. Messaging achievement pictograph display system
US9591479B1 (en) 2016-04-14 2017-03-07 Wickr Inc. Secure telecommunications
US9590958B1 (en) 2016-04-14 2017-03-07 Wickr Inc. Secure file transfer
US9813642B1 (en) 2016-05-06 2017-11-07 Snap Inc. Dynamic activity-based image generation
US10474353B2 (en) 2016-05-31 2019-11-12 Snap Inc. Application control using a gesture based trigger
US10334134B1 (en) 2016-06-20 2019-06-25 Maximillian John Suiter Augmented real estate with location and chattel tagging system and apparatus for virtual diary, scrapbooking, game play, messaging, canvasing, advertising and social interaction
US11044393B1 (en) 2016-06-20 2021-06-22 Pipbin, Inc. System for curation and display of location-dependent augmented reality content in an augmented estate system
US11876941B1 (en) 2016-06-20 2024-01-16 Pipbin, Inc. Clickable augmented reality content manager, system, and network
US10805696B1 (en) 2016-06-20 2020-10-13 Pipbin, Inc. System for recording and targeting tagged content of user interest
US11785161B1 (en) 2016-06-20 2023-10-10 Pipbin, Inc. System for user accessibility of tagged curated augmented reality content
US10638256B1 (en) 2016-06-20 2020-04-28 Pipbin, Inc. System for distribution and display of mobile targeted augmented reality content
US11201981B1 (en) 2016-06-20 2021-12-14 Pipbin, Inc. System for notification of user accessibility of curated location-dependent content in an augmented estate
US10430838B1 (en) 2016-06-28 2019-10-01 Snap Inc. Methods and systems for generation, curation, and presentation of media collections with automated advertising
US11507977B2 (en) 2016-06-28 2022-11-22 Snap Inc. Methods and systems for presentation of media collections with automated advertising
US9681265B1 (en) 2016-06-28 2017-06-13 Snap Inc. System to track engagement of media items
US10387514B1 (en) 2016-06-30 2019-08-20 Snap Inc. Automated content curation and communication
US10182047B1 (en) 2016-06-30 2019-01-15 Snap Inc. Pictograph password security system
US10360708B2 (en) 2016-06-30 2019-07-23 Snap Inc. Avatar based ideogram generation
US11334768B1 (en) 2016-07-05 2022-05-17 Snap Inc. Ephemeral content management
US10855632B2 (en) 2016-07-19 2020-12-01 Snap Inc. Displaying customized electronic messaging graphics
US10482144B2 (en) 2016-08-01 2019-11-19 Facebook, Inc. Systems and methods to manage media content items
KR102420857B1 (ko) 2016-08-30 2022-07-15 스냅 인코포레이티드 동시 로컬화 및 매핑을 위한 시스템 및 방법
US10409779B2 (en) 2016-08-31 2019-09-10 Microsoft Technology Licensing, Llc. Document sharing via logical tagging
US10552968B1 (en) 2016-09-23 2020-02-04 Snap Inc. Dense feature scale detection for image matching
US10609036B1 (en) 2016-10-10 2020-03-31 Snap Inc. Social media post subscribe requests for buffer user accounts
US10432559B2 (en) 2016-10-24 2019-10-01 Snap Inc. Generating and displaying customized avatars in electronic messages
KR102327511B1 (ko) 2016-11-01 2021-11-17 스냅 인코포레이티드 고속 비디오 캡처 및 센서 조절
EP3901951B1 (de) 2016-11-07 2024-09-18 Snap Inc. Selektive identifizierung und reihenfolge von bildmodifikatoren
US10203855B2 (en) 2016-12-09 2019-02-12 Snap Inc. Customized user-controlled media overlays
US10740939B1 (en) 2016-12-09 2020-08-11 Snap Inc. Fast image style transfers
US11616745B2 (en) 2017-01-09 2023-03-28 Snap Inc. Contextual generation and selection of customized media content
US10242477B1 (en) 2017-01-16 2019-03-26 Snap Inc. Coded vision system
US10454857B1 (en) 2017-01-23 2019-10-22 Snap Inc. Customized digital avatar accessories
US10915911B2 (en) 2017-02-03 2021-02-09 Snap Inc. System to determine a price-schedule to distribute media content
US11250075B1 (en) 2017-02-17 2022-02-15 Snap Inc. Searching social media content
US10319149B1 (en) 2017-02-17 2019-06-11 Snap Inc. Augmented reality anamorphosis system
US10374993B2 (en) 2017-02-20 2019-08-06 Snap Inc. Media item attachment system
US11019001B1 (en) 2017-02-20 2021-05-25 Snap Inc. Selective presentation of group messages
US10074381B1 (en) 2017-02-20 2018-09-11 Snap Inc. Augmented reality speech balloon system
US10878837B1 (en) 2017-03-01 2020-12-29 Snap Inc. Acoustic neural network scene detection
US10565795B2 (en) 2017-03-06 2020-02-18 Snap Inc. Virtual vision system
US10523625B1 (en) 2017-03-09 2019-12-31 Snap Inc. Restricted group content collection
US12321412B1 (en) 2017-03-20 2025-06-03 Snap Inc. Management of electronically published collections of content
US10581782B2 (en) 2017-03-27 2020-03-03 Snap Inc. Generating a stitched data stream
US10582277B2 (en) 2017-03-27 2020-03-03 Snap Inc. Generating a stitched data stream
US11170393B1 (en) 2017-04-11 2021-11-09 Snap Inc. System to calculate an engagement score of location based media content
US10387730B1 (en) 2017-04-20 2019-08-20 Snap Inc. Augmented reality typography personalization system
CN111489264B (zh) 2017-04-27 2024-05-14 斯纳普公司 指示地理空间活动度量的基于地图的图形用户界面
US10212541B1 (en) 2017-04-27 2019-02-19 Snap Inc. Selective location-based identity communication
US11893647B2 (en) 2017-04-27 2024-02-06 Snap Inc. Location-based virtual avatars
US10382372B1 (en) 2017-04-27 2019-08-13 Snap Inc. Processing media content based on original context
US10943255B1 (en) 2017-04-28 2021-03-09 Snap Inc. Methods and systems for interactive advertising with media collections
US10467147B1 (en) 2017-04-28 2019-11-05 Snap Inc. Precaching unlockable data elements
US10679428B1 (en) 2017-05-26 2020-06-09 Snap Inc. Neural network-based image stream modification
US10803120B1 (en) 2017-05-31 2020-10-13 Snap Inc. Geolocation based playlists
US10788900B1 (en) 2017-06-29 2020-09-29 Snap Inc. Pictorial symbol prediction
US20190026841A1 (en) * 2017-07-19 2019-01-24 Sony Corporation Distribution and access management of individual media content using code embedded within media content
US11216517B1 (en) 2017-07-31 2022-01-04 Snap Inc. Methods and systems for selecting user generated content
US11323398B1 (en) 2017-07-31 2022-05-03 Snap Inc. Systems, devices, and methods for progressive attachments
US10791077B2 (en) 2017-08-08 2020-09-29 Snap Inc. Application-independent messaging system
US11095662B2 (en) 2017-08-29 2021-08-17 Amazon Technologies, Inc. Federated messaging
US10791196B2 (en) 2017-08-29 2020-09-29 Wickr Inc. Directory lookup for federated messaging with a user from a different secure communication network
US11368442B2 (en) * 2017-08-29 2022-06-21 Amazon Technologies, Inc. Receiving an encrypted communication from a user in a second secure communication network
US11349659B2 (en) * 2017-08-29 2022-05-31 Amazon Technologies, Inc. Transmitting an encrypted communication to a user in a second secure communication network
US11164376B1 (en) 2017-08-30 2021-11-02 Snap Inc. Object modeling using light projection
US9980100B1 (en) 2017-08-31 2018-05-22 Snap Inc. Device location based on machine learning classifications
US11475254B1 (en) 2017-09-08 2022-10-18 Snap Inc. Multimodal entity identification
US10740974B1 (en) 2017-09-15 2020-08-11 Snap Inc. Augmented reality system
US10474900B2 (en) 2017-09-15 2019-11-12 Snap Inc. Real-time tracking-compensated image effects
US10891723B1 (en) 2017-09-29 2021-01-12 Snap Inc. Realistic neural network based image style transfer
US10499191B1 (en) 2017-10-09 2019-12-03 Snap Inc. Context sensitive presentation of content
US10872292B1 (en) 2017-10-09 2020-12-22 Snap Inc. Compact neural networks using condensed filters
US10573043B2 (en) 2017-10-30 2020-02-25 Snap Inc. Mobile-based cartographic control of display content
US10599289B1 (en) 2017-11-13 2020-03-24 Snap Inc. Interface to display animated icon
US11551059B1 (en) 2017-11-15 2023-01-10 Snap Inc. Modulated image segmentation
US10885564B1 (en) 2017-11-28 2021-01-05 Snap Inc. Methods, system, and non-transitory computer readable storage medium for dynamically configurable social media platform
US11265273B1 (en) 2017-12-01 2022-03-01 Snap, Inc. Dynamic media overlay with smart widget
US10217488B1 (en) 2017-12-15 2019-02-26 Snap Inc. Spherical video editing
US11017173B1 (en) 2017-12-22 2021-05-25 Snap Inc. Named entity recognition visual context and caption data
US10523606B2 (en) 2018-01-02 2019-12-31 Snap Inc. Generating interactive messages with asynchronous media content
US10678818B2 (en) 2018-01-03 2020-06-09 Snap Inc. Tag distribution visualization system
US10482565B1 (en) 2018-02-12 2019-11-19 Snap Inc. Multistage neural network processing using a graphics processor
US11507614B1 (en) 2018-02-13 2022-11-22 Snap Inc. Icon based tagging
US10726603B1 (en) 2018-02-28 2020-07-28 Snap Inc. Animated expressive icon
US10885136B1 (en) 2018-02-28 2021-01-05 Snap Inc. Audience filtering system
US10979752B1 (en) 2018-02-28 2021-04-13 Snap Inc. Generating media content items based on location information
US10327096B1 (en) 2018-03-06 2019-06-18 Snap Inc. Geo-fence selection system
US10933311B2 (en) 2018-03-14 2021-03-02 Snap Inc. Generating collectible items based on location information
US11126738B2 (en) 2018-03-27 2021-09-21 BoardPAC Private Limited Methods, systems and machine-readable programs for communicating self destructive messages
US11163941B1 (en) 2018-03-30 2021-11-02 Snap Inc. Annotating a collection of media content items
US11310176B2 (en) 2018-04-13 2022-04-19 Snap Inc. Content suggestion system
US10219111B1 (en) 2018-04-18 2019-02-26 Snap Inc. Visitation tracking system
KR20200143464A (ko) 2018-04-18 2020-12-23 스냅 인코포레이티드 증강 표현 시스템
US11029809B2 (en) * 2018-05-10 2021-06-08 Citrix Systems, Inc. System for displaying electronic mail metadata and related methods
US11487501B2 (en) 2018-05-16 2022-11-01 Snap Inc. Device control using audio data
US10896197B1 (en) 2018-05-22 2021-01-19 Snap Inc. Event detection system
US10938820B2 (en) * 2018-06-11 2021-03-02 International Business Machines Corporation Data transfer prevention
US10679393B2 (en) 2018-07-24 2020-06-09 Snap Inc. Conditional modification of augmented reality object
US10997760B2 (en) 2018-08-31 2021-05-04 Snap Inc. Augmented reality anthropomorphization system
US10796283B2 (en) 2018-09-24 2020-10-06 International Business Machines Corporation Dynamically deleting received documents based on a generated expiration deadline for an event lapsing
US10698583B2 (en) 2018-09-28 2020-06-30 Snap Inc. Collaborative achievement interface
US10778623B1 (en) 2018-10-31 2020-09-15 Snap Inc. Messaging and gaming applications communication platform
US10939236B1 (en) 2018-11-30 2021-03-02 Snap Inc. Position service to determine relative position to map features
US11199957B1 (en) 2018-11-30 2021-12-14 Snap Inc. Generating customized avatars based on location information
US12411834B1 (en) 2018-12-05 2025-09-09 Snap Inc. Version control in networked environments
US11709686B1 (en) 2018-12-20 2023-07-25 Snap Inc. Media content item generation for a content sharing platform
US11032670B1 (en) 2019-01-14 2021-06-08 Snap Inc. Destination sharing in location sharing system
US10939246B1 (en) 2019-01-16 2021-03-02 Snap Inc. Location-based context information sharing in a messaging system
US11294936B1 (en) 2019-01-30 2022-04-05 Snap Inc. Adaptive spatial density based clustering
US11297027B1 (en) 2019-01-31 2022-04-05 Snap Inc. Automated image processing and insight presentation
US11972529B2 (en) 2019-02-01 2024-04-30 Snap Inc. Augmented reality system
US10936066B1 (en) 2019-02-13 2021-03-02 Snap Inc. Sleep detection in a location sharing system
US10838599B2 (en) 2019-02-25 2020-11-17 Snap Inc. Custom media overlay system
US10964082B2 (en) 2019-02-26 2021-03-30 Snap Inc. Avatar based on weather
US10852918B1 (en) 2019-03-08 2020-12-01 Snap Inc. Contextual information in chat
US12242979B1 (en) 2019-03-12 2025-03-04 Snap Inc. Departure time estimation in a location sharing system
US11868414B1 (en) 2019-03-14 2024-01-09 Snap Inc. Graph-based prediction for contact suggestion in a location sharing system
US11852554B1 (en) 2019-03-21 2023-12-26 Snap Inc. Barometer calibration in a location sharing system
US11249614B2 (en) 2019-03-28 2022-02-15 Snap Inc. Generating personalized map interface with enhanced icons
US11166123B1 (en) 2019-03-28 2021-11-02 Snap Inc. Grouped transmission of location data in a location sharing system
US10810782B1 (en) 2019-04-01 2020-10-20 Snap Inc. Semantic texture mapping system
CN110262983B (zh) * 2019-05-24 2021-12-17 宜鼎国际股份有限公司 具有自我销毁功能的数据储存装置
US10582453B1 (en) 2019-05-30 2020-03-03 Snap Inc. Wearable device location systems architecture
US10560898B1 (en) 2019-05-30 2020-02-11 Snap Inc. Wearable device location systems
US10575131B1 (en) 2019-05-30 2020-02-25 Snap Inc. Wearable device location accuracy systems
US10893385B1 (en) 2019-06-07 2021-01-12 Snap Inc. Detection of a physical collision between two client devices in a location sharing system
US11134036B2 (en) 2019-07-05 2021-09-28 Snap Inc. Event planning in a content sharing platform
US11307747B2 (en) 2019-07-11 2022-04-19 Snap Inc. Edge gesture interface with smart interactions
US11812347B2 (en) 2019-09-06 2023-11-07 Snap Inc. Non-textual communication and user states management
US11821742B2 (en) 2019-09-26 2023-11-21 Snap Inc. Travel based notifications
US11218838B2 (en) 2019-10-31 2022-01-04 Snap Inc. Focused map-based context information surfacing
US11429618B2 (en) 2019-12-30 2022-08-30 Snap Inc. Surfacing augmented reality objects
US10880496B1 (en) 2019-12-30 2020-12-29 Snap Inc. Including video feed in message thread
US11128715B1 (en) 2019-12-30 2021-09-21 Snap Inc. Physical friend proximity in chat
US11169658B2 (en) 2019-12-31 2021-11-09 Snap Inc. Combined map icon with action indicator
US11343323B2 (en) 2019-12-31 2022-05-24 Snap Inc. Augmented reality objects registry
US11316806B1 (en) 2020-01-28 2022-04-26 Snap Inc. Bulk message deletion
US11265281B1 (en) 2020-01-28 2022-03-01 Snap Inc. Message deletion policy selection
US11228551B1 (en) 2020-02-12 2022-01-18 Snap Inc. Multiple gateway message exchange
US11516167B2 (en) 2020-03-05 2022-11-29 Snap Inc. Storing data based on device location
US11619501B2 (en) 2020-03-11 2023-04-04 Snap Inc. Avatar based on trip
US10956743B1 (en) 2020-03-27 2021-03-23 Snap Inc. Shared augmented reality system
US11430091B2 (en) 2020-03-27 2022-08-30 Snap Inc. Location mapping for large scale augmented-reality
US11625873B2 (en) 2020-03-30 2023-04-11 Snap Inc. Personalized media overlay recommendation
US11411900B2 (en) 2020-03-30 2022-08-09 Snap Inc. Off-platform messaging system
US11676354B2 (en) 2020-03-31 2023-06-13 Snap Inc. Augmented reality beauty product tutorials
US12124678B2 (en) 2020-03-31 2024-10-22 Snap Inc. Reply back mechanism within a messaging system
US11464319B2 (en) * 2020-03-31 2022-10-11 Snap Inc. Augmented reality beauty product tutorials
US11700225B2 (en) 2020-04-23 2023-07-11 Snap Inc. Event overlay invite messaging system
US11843574B2 (en) 2020-05-21 2023-12-12 Snap Inc. Featured content collection interface
WO2021252662A1 (en) 2020-06-10 2021-12-16 Snap Inc. Visual search to launch application
US11423652B2 (en) 2020-06-10 2022-08-23 Snap Inc. Adding beauty products to augmented reality tutorials
US11483267B2 (en) 2020-06-15 2022-10-25 Snap Inc. Location sharing using different rate-limited links
US11503432B2 (en) 2020-06-15 2022-11-15 Snap Inc. Scalable real-time location sharing framework
US11290851B2 (en) 2020-06-15 2022-03-29 Snap Inc. Location sharing using offline and online objects
US11314776B2 (en) 2020-06-15 2022-04-26 Snap Inc. Location sharing using friend list versions
US11308327B2 (en) 2020-06-29 2022-04-19 Snap Inc. Providing travel-based augmented reality content with a captured image
US11899905B2 (en) 2020-06-30 2024-02-13 Snap Inc. Selectable items providing post-viewing context actions
EP4173257A1 (de) 2020-06-30 2023-05-03 Snap Inc. Skelettverfolgung für virtuelle echtzeiteffekte
US11580682B1 (en) 2020-06-30 2023-02-14 Snap Inc. Messaging system with augmented reality makeup
EP4197180A1 (de) 2020-08-13 2023-06-21 Snap Inc. Benutzerschnittstelle für haltungsgesteuerte virtuelle effekte
US11349797B2 (en) 2020-08-31 2022-05-31 Snap Inc. Co-location connection service
US12469182B1 (en) 2020-12-31 2025-11-11 Snap Inc. Augmented reality content to locate users within a camera user interface
US11606756B2 (en) 2021-03-29 2023-03-14 Snap Inc. Scheduling requests for location data
US12034680B2 (en) 2021-03-31 2024-07-09 Snap Inc. User presence indication data management
US11645324B2 (en) 2021-03-31 2023-05-09 Snap Inc. Location-based timeline media content system
US12026362B2 (en) 2021-05-19 2024-07-02 Snap Inc. Video editing application for mobile devices
US11829834B2 (en) 2021-10-29 2023-11-28 Snap Inc. Extended QR code
US12166839B2 (en) 2021-10-29 2024-12-10 Snap Inc. Accessing web-based fragments for display
US12499626B2 (en) 2021-12-30 2025-12-16 Snap Inc. AR item placement in a video
US12412205B2 (en) 2021-12-30 2025-09-09 Snap Inc. Method, system, and medium for augmented reality product recommendations
US11928783B2 (en) 2021-12-30 2024-03-12 Snap Inc. AR position and orientation along a plane
US12499628B2 (en) 2022-04-19 2025-12-16 Snap Inc. Augmented reality experiences with dynamically loadable assets
US12001750B2 (en) 2022-04-20 2024-06-04 Snap Inc. Location-based shared augmented reality experience system
US12243167B2 (en) 2022-04-27 2025-03-04 Snap Inc. Three-dimensional mapping using disparate visual datasets
US12164109B2 (en) 2022-04-29 2024-12-10 Snap Inc. AR/VR enabled contact lens
US11973730B2 (en) 2022-06-02 2024-04-30 Snap Inc. External messaging function for an interaction system
US12020384B2 (en) 2022-06-21 2024-06-25 Snap Inc. Integrating augmented reality experiences with other components
US12020386B2 (en) 2022-06-23 2024-06-25 Snap Inc. Applying pregenerated virtual experiences in new location
US12154232B2 (en) 2022-09-30 2024-11-26 Snap Inc. 9-DoF object tracking
US12088544B2 (en) 2022-11-21 2024-09-10 Snap Inc. Saving ephemeral media to a conversation thread
US12475658B2 (en) 2022-12-09 2025-11-18 Snap Inc. Augmented reality shared screen space
US12265664B2 (en) 2023-02-28 2025-04-01 Snap Inc. Shared augmented reality eyewear device with hand tracking alignment
US12361664B2 (en) 2023-04-19 2025-07-15 Snap Inc. 3D content display using head-wearable apparatuses
US20240403481A1 (en) * 2023-06-04 2024-12-05 Apple Inc. User interfaces for managing digital identification information
US12571640B2 (en) 2023-11-30 2026-03-10 Snap Inc. Package delivery assistance using wearable device

Family Cites Families (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5014234A (en) * 1986-08-25 1991-05-07 Ncr Corporation System with software usage timer and counter for allowing limited use but preventing continued unauthorized use of protected software
US5050213A (en) * 1986-10-14 1991-09-17 Electronic Publishing Resources, Inc. Database usage metering and protection system and method
US4827508A (en) 1986-10-14 1989-05-02 Personal Library Software, Inc. Database usage metering and protection system and method
US4796220A (en) 1986-12-15 1989-01-03 Pride Software Development Corp. Method of controlling the copying of software
US5051891A (en) * 1987-12-23 1991-09-24 International Business Machines Corporation Method to manage transfer of ownership of electronic documents stored in an interactive information handling system
US4899299A (en) 1987-12-23 1990-02-06 International Business Machines Corporation Method for managing the retention of electronic documents in an interactive information handling system
US5003575A (en) 1987-12-24 1991-03-26 Chamberlin David B Method and apparatus for storing and forwarding voice signals with controlled access
US6044205A (en) * 1996-02-29 2000-03-28 Intermind Corporation Communications system for transferring information between memories according to processes transferred with the information
US5278955A (en) * 1990-06-18 1994-01-11 International Business Machines Corporation Open systems mail handling capability in a multi-user environment
US5905248A (en) * 1990-09-11 1999-05-18 Metrologic Instruments, Inc. System and method for carrying out information-related transactions using web documents embodying transaction enabling applets automatically launched and executed in response to reading URL-encoded symbols pointing thereto
DE69220040T2 (de) 1991-02-04 1997-09-18 David J. Suffern N.Y. Haas Sicherheitsidentifikationskarte
US5200999A (en) * 1991-09-27 1993-04-06 International Business Machines Corporation Public key cryptosystem key management based on control vectors
US5428210A (en) * 1992-01-10 1995-06-27 National Bancard Corporation Data card terminal with embossed character reader and signature capture
US5794005A (en) * 1992-01-21 1998-08-11 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Synchronous parallel emulation and discrete event simulation system with self-contained simulation objects and active event objects
US5412717A (en) * 1992-05-15 1995-05-02 Fischer; Addison M. Computer system security method and apparatus having program authorization information data structures
EP0570123B1 (de) * 1992-05-15 1999-03-17 Addison M. Fischer Verfahren und Vorrichtung zur Sicherheit eines Computersystem mit Programmberechtigungsdatenstrukturen
US5438430A (en) * 1992-09-25 1995-08-01 Xerox Corporation Paper user interface for image manipulations such as cut and paste
AU678804B2 (en) * 1992-12-07 1997-06-12 Raxco, Incorporated Apparatus and method for moving open files
US5689699A (en) 1992-12-23 1997-11-18 International Business Machines Corporation Dynamic verification of authorization in retention management schemes for data processing systems
US5619656A (en) * 1994-05-05 1997-04-08 Openservice, Inc. System for uninterruptively displaying only relevant and non-redundant alert message of the highest severity for specific condition associated with group of computers being managed
US5586036A (en) 1994-07-05 1996-12-17 Pitney Bowes Inc. Postage payment system with security for sensitive mailer data and enhanced carrier data functionality
US5930514A (en) 1994-08-01 1999-07-27 International Business Machines Corporation Self-deletion facility for application programs
US5485575A (en) * 1994-11-21 1996-01-16 International Business Machines Corporation Automatic analysis of a computer virus structure and means of attachment to its hosts
US5613012A (en) * 1994-11-28 1997-03-18 Smarttouch, Llc. Tokenless identification system for authorization of electronic transactions and electronic transmissions
AUPN002594A0 (en) * 1994-12-13 1995-01-12 Dunn, Alexander Atkinson Improvements in software for the protection of executable programs, libraries and their data
JPH08180003A (ja) 1994-12-22 1996-07-12 Hitachi Ltd 電子メールシステム
US5710883A (en) * 1995-03-10 1998-01-20 Stanford University Hypertext document transport mechanism for firewall-compatible distributed world-wide web publishing
US5692183A (en) 1995-03-31 1997-11-25 Sun Microsystems, Inc. Methods and apparatus for providing transparent persistence in a distributed object operating environment
US5761684A (en) * 1995-05-30 1998-06-02 International Business Machines Corporation Method and reusable object for scheduling script execution in a compound document
JPH08331175A (ja) * 1995-05-31 1996-12-13 Sony Corp 情報管理方法及び装置
US6006328A (en) * 1995-07-14 1999-12-21 Christopher N. Drake Computer software authentication, protection, and security system
US5647002A (en) 1995-09-01 1997-07-08 Lucent Technologies Inc. Synchronization of mailboxes of different types
US5889943A (en) 1995-09-26 1999-03-30 Trend Micro Incorporated Apparatus and method for electronic mail virus detection and elimination
US5623600A (en) * 1995-09-26 1997-04-22 Trend Micro, Incorporated Virus detection and removal apparatus for computer networks
US5805702A (en) * 1995-09-29 1998-09-08 Dallas Semiconductor Corporation Method, apparatus, and system for transferring units of value
US5748740A (en) * 1995-09-29 1998-05-05 Dallas Semiconductor Corporation Method, apparatus, system and firmware for secure transactions
JP3751664B2 (ja) * 1995-10-05 2006-03-01 富士通株式会社 ソフトウェア登録システムおよび方法
US6029175A (en) 1995-10-26 2000-02-22 Teknowledge Corporation Automatic retrieval of changed files by a network software agent
US5923846A (en) * 1995-11-06 1999-07-13 Microsoft Corporation Method of uploading a message containing a file reference to a server and downloading a file from the server using the file reference
US6304640B1 (en) * 1995-11-07 2001-10-16 Mci Communications Corporation Method and system for call disposition messaging
US6279112B1 (en) 1996-10-29 2001-08-21 Open Market, Inc. Controlled transfer of information in computer networks
US5781901A (en) * 1995-12-21 1998-07-14 Intel Corporation Transmitting electronic mail attachment over a network using a e-mail page
US5903723A (en) * 1995-12-21 1999-05-11 Intel Corporation Method and apparatus for transmitting electronic mail attachments with attachment references
US5771355A (en) * 1995-12-21 1998-06-23 Intel Corporation Transmitting electronic mail by either reference or value at file-replication points to minimize costs
US5826022A (en) 1996-04-05 1998-10-20 Sun Microsystems, Inc. Method and apparatus for receiving electronic mail
US5809242A (en) 1996-04-19 1998-09-15 Juno Online Services, L.P. Electronic mail system for displaying advertisement at local computer received from remote system while the local computer is off-line the remote system
US5818447A (en) 1996-06-06 1998-10-06 Microsoft Corporation System and method for in-place editing of an electronic mail message using a separate program
US5832514A (en) * 1996-06-26 1998-11-03 Microsoft Corporation System and method for discovery based data recovery in a store and forward replication process
US5787247A (en) 1996-07-12 1998-07-28 Microsoft Corporation Replica administration without data loss in a store and forward replication enterprise
US5832208A (en) 1996-09-05 1998-11-03 Cheyenne Software International Sales Corp. Anti-virus agent for use with databases and mail servers
US5953528A (en) 1996-10-30 1999-09-14 Electronic Data Systems Corporation Knowledge object registration
US6370571B1 (en) * 1997-03-05 2002-04-09 At Home Corporation System and method for delivering high-performance online multimedia services
US6085224A (en) * 1997-03-11 2000-07-04 Intracept, Inc. Method and system for responding to hidden data and programs in a datastream
US6119229A (en) 1997-04-11 2000-09-12 The Brodia Group Virtual property system
US5958005A (en) 1997-07-17 1999-09-28 Bell Atlantic Network Services, Inc. Electronic mail security
US6088720A (en) 1997-07-29 2000-07-11 Lucent Technologies Inc. Self-cleaning and forwarding feature for electronic mailboxes
US5978579A (en) 1997-08-12 1999-11-02 International Business Machines Corporation Architecture for customizable component system
US5978917A (en) 1997-08-14 1999-11-02 Symantec Corporation Detection and elimination of macro viruses
US6301245B1 (en) 1998-06-09 2001-10-09 Unisys Corporation Universal Messaging system providing integrated voice, data and fax messaging services to PC/web-based clients, including a large object server for efficiently distributing voice/fax messages to web-based clients
US6324569B1 (en) 1998-09-23 2001-11-27 John W. L. Ogilvie Self-removing email verified or designated as such by a message distributor for the convenience of a recipient
US7149893B1 (en) 1999-09-07 2006-12-12 Poofaway.Com, Inc. System and method for enabling the originator of an electronic mail message to preset an expiration time, date, and/or event, and to control processing or handling by a recipient

Also Published As

Publication number Publication date
CA2362716A1 (en) 1998-12-23
BR9806000A (pt) 2000-01-25
IL128576A0 (en) 2000-01-31
AT4261U3 (de) 2002-01-25
EP1000400A1 (de) 2000-05-17
IL128576A (en) 2004-03-28
AU725944B2 (en) 2000-10-26
WO1998058321A1 (en) 1998-12-23
AU8373698A (en) 1999-01-04
US20030126215A1 (en) 2003-07-03
HUP0001042A2 (hu) 2000-08-28
KR100336025B1 (ko) 2002-05-08
KR20000068195A (ko) 2000-11-25
HUP0001042A3 (en) 2000-10-30
JP2000501540A (ja) 2000-02-08
EP1000400A4 (de) 2005-04-06
US7191219B2 (en) 2007-03-13
CN1229489A (zh) 1999-09-22
CA2263171A1 (en) 1998-12-23
NZ334075A (en) 2000-09-29

Similar Documents

Publication Publication Date Title
AT4261U2 (de) Sich selbst zerstörendes dokument oder e-mailnachrichtensystem
DE69724338T2 (de) Verfahren und System zur Datensicherung bei einem Drittanbieter von Internet-Netzseiten, die bei einem Netzserviceanbieter gespeichert sind
DE10084964B3 (de) Verfahren zum sicheren Speichern, Übertragen und Wiedergewinnen inhaltsadresssierbarer Informationen
DE69531082T2 (de) Verfahren und Vorrichtung mit einem Verschlüsselungskopfteil, die es ermöglicht, Software zu erproben
DE69901231T2 (de) System und verfahren zur beglaubigung gleichrangiger komponenten
DE69531079T2 (de) Verfahren und Vorrichtung mit rechnerabhängiger Identifizierung, die es ermöglicht, Software zu erproben
DE69531077T2 (de) Verfahren und Vorrichtung mit Benutzereinwirkung der Art Erproben-und-Kaufen, die es ermöglicht, Software zu erproben
DE69503374T2 (de) Einrichtung und Verfahren zur Authentifizierung der Absendung und des Inhalts eines Dokuments
DE69812139T2 (de) Verfahren und vorrichtung zur software-lizenz-erzwingung
DE69926970T2 (de) Selbstschützende Dokumente
DE102013203126B4 (de) System, Verfahren und Programmprodukt zum transparenten Zugreifen auf verschlüsselte nicht-relationale Daten in Echtzeit
DE69704489T2 (de) Verfahren und Vorrichtung zur strukturierten Kommunikation
DE112011103164T5 (de) Datenverteilungsvorrichtung, Datenverteilungssystem, Client-Vorrichtung, Datenverteilungsverfahren, Datenempfangsverfahren, Programm und Datenträger,
EP1145172A2 (de) Verwaltungssystem für elektronische aktenstücke
NZ517849A (en) Centralized document management system
DE69807504T2 (de) Verfahren zur ausführung definierter aktionen wenn der namensraum eines speichermediums in den namensraum eines anderen speichermediums eingefügt wird
DE60219706T2 (de) Verfahren und Vorrichtung zum Anfügen einer elektronischen Unterschrift an ein strukturiertes Dokument
DE102018004423A1 (de) Sicherer Datenaustausch
US7216114B2 (en) Transfer of mail folders between e-mail users
DE60114915T2 (de) Begrenztes Drucken einer elektronisch übertragenen Information
DE102012212452A1 (de) Verfahren und System zum Bearbeiten definierter Bereiche innerhalb eines elektronischen Dokuments
DE29824464U1 (de) Virtuelles Behältersystem
US7979405B2 (en) Method for automatically associating data with a document based on a prescribed type of the document
DE102007047613A1 (de) Zeichenverwaltungssystem
DE102010040259A1 (de) Transferverfahren zum kontrollierten Transfer von Daten zwischen Domänen und Verfahren zum Bereitstelleneines ausführbaren Transferprogrammcodes für ein Transferprogramm sowie eine entsprechende Transfervorrichtung und ein zugehöriges Sicherheitsmodul