Title:
BILDSCHIRMANALYSENBASIERTE VORRICHTUNGSSICHERUNG
Kind Code:
T5


Abstract:

Systeme und Verfahren werden für eine inhaltsbasierte Sicherung für Computervorrichtungen zur Verfügung gestellt. Ein beispielhaftes Verfahren enthält ein Identifizieren von Inhalt, der durch eine mobile Anwendung ausgeführt wird, wobei der Inhalt während einer Session ausgeführt wird; ein Erzeugen von Merkmalsvektoren aus dem Inhalt und ein Bestimmen, dass die Merkmalsvektoren nicht mit einem Klassifizierungsmodell übereinstimmen. Das Verfahren enthält auch, in Antwort auf die Bestimmung, dass die Merkmalsvektoren nicht mit dem Klassifizierungsmodell übereinstimmen, ein Liefern einer Herausforderung, die konfiguriert ist, um einen Anwender der mobilen Vorrichtung zu authentifizieren. Ein weiteres beispielhaftes Verfahren enthält ein Bestimmen, dass eine Computervorrichtung bei einem vertrauenswürdigen Standort angeordnet ist, ein Erfassen von Information von einer Session, wobei die Information von einem Inhalt kommt, der durch eine mobile Anwendung ausgeführt wird, und zwar während der Session, ein Erzeugen von Merkmalsvektoren für die Session und ein Wiederholen von diesem, bis Trainingskriterien erfüllt sind. Das Verfahren enthält auch ein Trainieren eines Klassifizierungsmodells unter Verwendung der Merkmalsvektoren und ein Authentifizieren eines Anwenders der Vorrichtung unter Verwendung des trainierten Klassifizierungsmodells.




Inventors:
Sharifi, Matthew, Calif. (Mountain View, US)
Wang, Kai, Calif. (Mountain View, US)
Petrou, David, Calif. (Mountain View, US)
Application Number:
DE112016002708T
Publication Date:
03/01/2018
Filing Date:
06/13/2016
Assignee:
GOOGLE INC. (Calif., Mountain View, US)
International Classes:



Attorney, Agent or Firm:
Betten & Resch Patent- und Rechtsanwälte PartGmbB, 80333, München, DE
Claims:
1. Mobile Vorrichtung, umfassend:
wenigstens einen Prozessor; und
einen Speicher, der Anweisungen speichert, die dann, wenn sie durch den wenigstens einen Prozessor ausgeführt werden, veranlassen, dass die mobile Vorrichtung:
Inhalt identifiziert, der durch eine mobile Anwendung ausgeführt wird, wobei der Inhalt während einer Session ausgeführt wird,
Merkmalsvektoren aus dem Inhalt erzeugt,
bestimmt, dass die Merkmalsvektoren nicht mit einem Klassifizierungsmodell übereinstimmen, und,
in Antwort auf die Bestimmung, dass die Merkmalsvektoren nicht mit dem Klassifizierungsmodell übereinstimmen, eine Herausforderung liefert, die konfiguriert ist, um einen Anwender der mobilen Vorrichtung zu authentifizieren.

2. Mobile Vorrichtung nach Anspruch 1, wobei die Session eine erste Session ist und wobei die Herausforderung auf einer vorherigen Session basiert, die unterschiedlich von der ersten Session ist, wobei die vorherige Session Merkmalsvektoren enthält, die zu dem Klassifizierungsmodell passen.

3. Mobile Vorrichtung nach Anspruch 1, wobei die Session eine erste Session ist und wobei die Herausforderung auf einer vorherigen Session basiert, die unterschiedlich von der ersten Session ist, wobei die vorherige Session Merkmalsvektoren enthält, die unter Verwendung eines vertrauenswürdigen Standorts verifiziert sind.

4. Mobile Vorrichtung nach Anspruch 1, wobei die Session eine erste Session ist und wobei die Herausforderung auf einer vorherigen Session basiert, die unterschiedlich von der ersten Session ist, wobei die vorherige Session Merkmalsvektoren enthält, die durch eine vorherige Herausforderung verifiziert sind.

5. Mobile Vorrichtung nach Anspruch 1, wobei die Herausforderung konfiguriert ist, um den Anwender aufzufordern, Information zu vervollständigen, die von einem Bildschirm fehlt, der durch die mobile Vorrichtung angezeigt ist, und zwar in einer vorherigen Session, die Merkmalsvektoren enthielt, die zu dem Klassifizierungsmodell passen.

6. Mobile Vorrichtung nach Anspruch 1, wobei ein Bereitstellen bzw. Liefern der Herausforderung enthält:
Extrahieren von Information aus einem Bildschirm, der durch die mobile Vorrichtung angezeigt ist, in einer vorherigen Session, die Merkmalsvektoren enthielt, die zu dem Klassifizierungsmodell passen; und Erzeugen einer Multiple-Choice-Frage basierend auf der extrahierten Information.

7. Mobile Vorrichtung nach Anspruch 1, wobei der Speicher weiterhin Anweisungen speichert, die dann, wenn sie durch den wenigstens einen Prozessor ausgeführt werden, veranlassen, dass die mobile Vorrichtung: eine Antwort auf die Herausforderung empfängt; und
die mobile Vorrichtung verriegelt, wenn die Antwort ein Fehler für die Herausforderung ist.

8. Mobile Vorrichtung nach Anspruch 1, wobei die Herausforderung eine Reihe von untergeordneten Herausforderungen enthält.

9. Verfahren, umfassend:
Bestimmen, dass eine mobile Vorrichtung bei einem vertrauenswürdigen Standort angeordnet ist;
Erfassen von Information von einer Session, wobei die Information von Inhalt kommt, der durch eine mobile Anwendung ausgeführt wird, die auf der mobilen Vorrichtung während der Session läuft;
Erzeugen von Merkmalsvektoren für die Session;
Wiederholen des Erfassens und Bestimmens, bis Trainingskriterien erfüllt sind;
Trainieren eines Klassifizierungsmodells unter Verwendung von wenigstens einigen der Merkmalsvektoren; und
Authentifizieren eines Anwenders der mobilen Vorrichtung unter Verwendung des trainierten Klassifizierungsmodells.

10. Verfahren nach Anspruch 9, wobei die Trainingskriterien eine minimale Menge an Sessions oder eine minimale Klassifizierungsgenauigkeit enthalten.

11. Verfahren nach Anspruch 9, wobei ein Authentifizieren des Anwenders unter Verwendung des trainierten Klassifizierungsmodells enthält:
Bestimmen einer aktuellen Session basierend auf Inhalt, der durch eine mobile Anwendung ausgeführt wird;
Erzeugen von Merkmalsvektoren für die Session; und
in Antwort auf ein Bestimmen, dass die Merkmalsvektoren nicht zu dem Klassifizierungsmodell passen, Bereitstellen einer Herausforderung, die konfiguriert ist, um einen Anwender der mobilen Vorrichtung zu authentifizieren.

12. Verfahren nach Anspruch 9, wobei ein Bestimmen, dass die mobile Vorrichtung bei einem vertrauenswürdigen Standort angeordnet ist, enthält:
Zugreifen auf ein Anwenderprofil, das mit der mobilen Vorrichtung assoziiert ist, um einen vertrauenswürdigen Standort zu bestimmen; und
Bestimmen, dass die mobile Vorrichtung aktuell bei dem vertrauenswürdigen Standort angeordnet ist.

13. Verfahren nach Anspruch 12, wobei der vertrauenswürdige Standort durch globale Positioniersystem-(GPS-)Koordinaten dargestellt wird und die mobile Vorrichtung aktuelle GPS-Koordinaten verwendet, um zu bestimmen, ob die mobile Vorrichtung aktuell bei dem vertrauenswürdigen Standort ist.

14. Verfahren nach Anspruch 12, wobei der vertrauenswürdige Standort durch einen Identifizierer eines drahtlosen Netzes dargestellt ist und die mobile Vorrichtung bestimmt, ob ein drahtloses Netz, das mit der mobilen Vorrichtung verbunden ist, mit dem Identifizierer des drahtlosen Netzes übereinstimmt.

15. Mobile Vorrichtung, umfassend:
wenigstens einen Prozessor; und
einen Speicher, der Anweisungen speichert, die dann, wenn sie durch den wenigstens einen Prozessor ausgeführt werden, veranlassen, dass die mobile Vorrichtung:
Inhalt identifiziert, der durch eine mobile Anwendung ausgeführt wird, wobei der Inhalt während einer Session ausgeführt wird,
Merkmalsvektoren aus dem Inhalt erzeugt,
ein Klassifizierungsmodell auf die Merkmalsvektoren anwendet,
bestimmt, ob die Merkmalsvektoren mit einem ersten Anwenderprofil übereinstimmen, basierend auf einer Anwendung des Klassifizierungsmodells, wobei das erste Anwenderprofil unterschiedlich von einem zweiten Anwenderprofil ist, wobei die mobile Vorrichtung aktuell mit dem zweiten Anwenderprofil assoziiert ist, und
einen Profilschalter in Antwort auf ein Bestimmen initiiert, dass die Merkmalsvektoren mit dem ersten Anwenderprofil übereinstimmen.

16. Mobile Vorrichtung nach Anspruch 15, wobei der Speicher weiterhin Anweisungen speichert, die dann, wenn sie durch den wenigstens einen Prozessor ausgeführt werden, veranlassen, dass die mobile Vorrichtung:
bestimmt, dass die Merkmalsvektoren mit keinen Anwenderprofilen übereinstimmen; und
eine Herausforderung liefert, die konfiguriert ist, um einen Anwender der mobilen Vorrichtung zu authentifizieren.

17. Mobile Vorrichtung nach Anspruch 16, wobei die Herausforderung auf einem zweiten Inhalt basiert, der während einer vorherigen Session ausgeführt ist, die mit dem zweiten Anwenderprofil assoziiert ist, wobei der zweite Inhalt mit Merkmalsvektoren assoziiert ist, die mit dem zweiten Anwenderprofil konsistent sind, und zwar gemäß dem Klassifizierungsmodell.

18. Mobile Vorrichtung nach Anspruch 16, wobei die Herausforderung auf einem zweiten Inhalt basiert, der während einer vorherigen Session ausgeführt wird, die mit dem ersten Anwenderprofil assoziiert ist, wenn das Klassifizierungsmodell das erste Anwenderprofil derart bestimmt, dass es einen höheren Vertrauenswert als das zweite Anwenderprofil hat, und zwar in Bezug auf die Merkmalsvektoren.

19. Mobile Vorrichtung nach Anspruch 15, wobei der Speicher weiterhin Anweisungen speichert, die dann, wenn sie durch den wenigstens einen Prozessor ausgeführt werden, veranlassen, dass die mobile Vorrichtung das Klassifizierungsmodell trainiert durch:
Bestimmen, dass eine mobile Vorrichtung in einer vertrauenswürdigen Umgebung angeordnet ist, die mit dem zweiten Anwenderprofil assoziiert ist;
Erkennen von Inhalt, der durch eine mobile Anwendung ausgeführt wird, die auf der mobilen Vorrichtung läuft, wobei der Inhalt mit einer Session assoziiert ist;
Erzeugen von Merkmalsvektoren für den Inhalt;
Wiederholen des Erkennens und Erzeugens für wenigstens eine minimale Menge an Sessions; und
Trainieren des Klassifizierungsmodells unter Verwendung der Merkmalsvektoren als positive Beispiele, wobei die positiven Beispiele mit dem zweiten Anwenderprofil assoziiert sind.

20. Mobile Vorrichtung nach Anspruch 19, wobei positive Beispiele, die mit dem ersten Anwenderprofil assoziiert sind, als negative Beispiele für das zweite Anwenderprofil beim Trainieren des Klassifizierungsmodells verwendet werden.

Description:
ZUGEHÖRIGE ANMELDUNGEN

Diese Anmeldung beansprucht die Priorität der US-Anmeldung mit der Nr. 14/739,107, eingereicht am 15. Juni 2015 mit dem Titel SCREENANALYSIS BASED DEVICE SECURITY.

HINTERGRUND

Die Verwendung von mobilen Vorrichtungen, wie beispielsweise Smartphones, tragbaren Vorrichtungen, Tablets, Laptops, etc. ist ansteigend gewesen. Diese mobilen Vorrichtungen können Information speichern, die ein Anwender als persönlich oder privat ansieht. Eine mobile Vorrichtung, die in die falschen Hände gerät, kann darin resultieren, dass ein böser Täter Zugriff auf diese Information hat. Während Sicherungsmaßnahmen, wie beispielsweise Biometrie und Passwörter, verfügbar sind, um einen Zugriff auf mobile Vorrichtungen zu schützen, kann es sein, dass solche Maßnahmen für Anwender als mühsam angesehen werden, die eine mobile Vorrichtung während des Tages häufig verwenden, und kann es sein, dass sie gesperrt werden.

ZUSAMMENFASSUNG

Implementierungen lernen das Verhalten und die Präferenzen des (der) Besitzers (Besitzer) einer Vorrichtung und verwenden diese Signale, um eine Sonderfall- bzw. Ausreißeraktivität zu erfassen. Anders ausgedrückt kann die mobile Vorrichtung ein Klassifizierungsmodell (z.B. einen Maschinenlernalgorithmus) verwenden, um Aktionen zu erfassen, die nicht typisch für den Besitzer sind. Anfänglich trainiert die mobile Vorrichtung das Modell durch Extrahieren von Merkmalen aus einem auf dem Bildschirm angezeigten Inhalt während Sessions, die in einer vertrauenswürdigen Umgebung auftreten. Die vertrauenswürdige Umgebung kann existieren, wenn die Vorrichtung an einem sicheren Standort angeordnet ist, wie beispielsweise dem Heim oder dem Arbeitsplatz eines Anwenders, oder nachdem der Anwender ein Passwort oder eine Reihe von Passwörtern eingibt. Eine Session kann ein Bildschirm oder eine Reihe von Bildschirmen sein, der oder die durch einen Anwender der mobilen Vorrichtung ausgeführt wird. Somit erfasst eine Session einen Inhalt, der durch mobile Anwendungen ausgeführt wird, die durch den Anwender auf der Vorrichtung verwendet werden. Nach einem anfänglichen Trainieren des Klassifizierungsmodells kann die Vorrichtung das Modell verwenden, um aktuelle Sessions, z.B. eine aktuelle Aktivität, zu analysieren. Dies ist eine Inferenz- bzw. Folgerungsstufe. Weiteres Trainieren kann auftreten, wenn die Vorrichtung in einer sicheren oder vertrauenswürdigen Umgebung ist, aber nach dem anfänglichen Trainieren kann die Vorrichtung in die Inferenzstufe eintreten. Während der Inferenzstufe kann, wenn ein Inhalt für eine Session darin fehlschlägt, eine Vertrauensebene bzw. statistische Sicherheit zu erfüllen, die Vorrichtung eine Herausforderung ausgeben. Anders ausgedrückt kann während einer Verwendung der Vorrichtung das Klassifizierungsmodell bestimmen, dass die aktuelle Aktivität (oder eine Reihe von Aktivitäten) eine Ausreißeraktivität darstellt. Die Herausforderung kann gestaltet sein, um den Anwender zu authentifizieren. Die Herausforderung kann passcodebasiert sein oder kann auf vergangenen authentifizierten Sessions des Besitzers basieren. Beispielsweise kann die Herausforderung fragen, mit welcher Person der Besitzer zu einer bestimmten Zeit redete, oder kann den Besitzer fragen, eine Information fertigzustellen, die in einem vor kurzem angeschauten Bildschirm verdunkelt ist, z.B. während einer Session, die mit dem Modell konsistent war. Wenn sich der Herausforderung gestellt wird, d.h. wenn der Anwender richtig antwortet, kann die Vorrichtung das Klassifizierungsmodell mit dem Inhalt von der herausgeforderten Session updaten. Beispielsweise können die von der herausgeforderten Session erzeugten Merkmale als positive Beispiele verwendet werden, um den Klassifikator weiter zu trainieren. Wenn sich der Herausforderung nicht gestellt wird, kann die Vorrichtung in einen Blockierungsmodus eintreten.

Bei einem allgemeinen Aspekt enthält eine mobile Vorrichtung wenigstens einen Prozessor und einen Speicher, der Anweisungen speichert, die dann, wenn sie durch den wenigstens einen Prozessor ausgeführt werden, veranlassen, dass die mobile Vorrichtung Operationen durchführt. Die Operationen enthalten ein Identifizieren von durch eine mobile Anwendung ausgeführtem Inhalt, wobei der Inhalt während einer Session ausgeführt wird, ein Erzeugen von Merkmalsvektoren aus dem Inhalt und ein Bestimmen, das die Merkmalsvektoren nicht zu einem Klassifizierungsmodell passen. Die Operationen enthalten auch ein Bereitstellen, in Antwort auf die Bestimmung, dass die Merkmalsvektoren nicht zu dem Klassifizierungsmodell passen, einer Herausforderung, die konfiguriert ist, um einen Anwender der mobilen Vorrichtung zu authentifizieren.

Bei einem anderen allgemeinen Aspekt kann ein Verfahren ein Bestimmen umfassen, das eine mobile Vorrichtung an einem vertrauenswürdigen Standort angeordnet ist, ein Erfassen von Information von einer Session, wobei die Information von Inhalt kommt, der durch eine mobile Anwendung, die auf der mobilen Vorrichtung läuft, während der Session ausgeführt wird, und ein Erzeugen von Merkmalsvektoren für die Session. Das Verfahren enthält auch ein Wiederholen des Erfassens und Bestimmens, bis ein Trainingskriterium erfüllt ist, und ein Authentifizieren eines Anwenders der mobilen Vorrichtung unter Verwendung des trainierten Klassifizierungsmodells.

Bei anderen allgemeinen Aspekten umfasst eine mobile Vorrichtung wenigstens einen Prozessor und einen Speicher, der Anweisungen speichert, die dann, wenn sie durch den wenigstens einen Prozessor ausgeführt werden, veranlassen, dass die mobile Vorrichtung Operationen durchführt. Die Operationen können ein Identifizieren von Inhalt enthalten, der durch eine mobile Anwendung ausgeführt wird, wobei der Inhalt während einer Session ausgeführt wird, und ein Erzeugen von Merkmalsvektoren aus dem Inhalt. Die Operationen können auch ein Anwenden eines Klassifizierungsmodells auf die Merkmalsvektoren enthalten, ein Bestimmen, ob die Merkmalsvektoren zu einem ersten Anwenderprofil passen, das auf einer Anwendung des Klassifizierungsmodells basiert, wobei das erste Anwenderprofil unterschiedlich von einem zweiten Anwenderprofil ist, wobei die mobile Vorrichtung aktuell mit dem zweiten Anwenderprofil assoziiert ist, und ein Initiieren eines Profilschalters in Reaktion auf ein Bestimmen, dass die Merkmalsvektoren zu dem ersten Anwenderprofil passen.

Bei einem allgemeinen Aspekt enthält ein Computerprogrammprodukt, das auf einer computerlesbaren Speichervorrichtung verkörpert ist, Anweisungen, die dann, wenn sie durch wenigstens einen Prozessor ausgeführt werden, der in einem Substrat ausgebildet ist, veranlassen, dass eine Computervorrichtung irgendetwas der offenbarten Verfahren, Operationen oder Prozesse durchführt. Ein weiterer allgemeiner Aspekt enthält ein System und/oder ein Verfahren zum Trainieren eines Klassifizierungsmodells unter Verwendung von Merkmalen, die aus Inhalt erzeugt sind, der durch Anwendungen ausgeführt wird, wenn der Anwender die Computervorrichtung verwendet, und zum Verwenden des Klassifizierungsmodells, um eine Herausforderung zu erlassen, wenn eine atypische Nutzung erkannt wird, und zwar im Wesentlichen wie es gezeigt ist in und/oder beschrieben ist in Verbindung mit wenigstens einer der Figuren und wie es vollständiger in den Ansprüchen dargelegt ist.

Eine oder mehrere der Implementierungen des hierin beschriebenen Gegenstands kann oder können implementiert sein, um einen oder mehrere der folgenden Vorteile zu realisieren. Als ein Beispiel kann die Vorrichtung vor einem fortgesetzten Zugriff durch irgendjemandem außer dem Besitzer geschützt werden, selbst wenn der Besitzer kein Passwort einrichtete oder selbst wenn das Passwort gefährdet bzw. beschädigt worden ist. Als ein weiteres Beispiel ist der Schutz unauffällig. Dies bedeutet, dass der Schutz am häufigsten im Hintergrund auftritt, ohne Anwenderweisung, und dem Anwender einen minimalen Mehraufwand erzeugt. Als ein weiteres Beispiel stellen Implementierungen eine unauffällige Art zur Verfügung, Anwenderprofile auf einer durch mehrere Anwender gemeinsam genutzten Vorrichtung umzuschalten. Das inhaltsbasierte Sicherungssystem basiert auf einer Inhaltspräsentation auf dem Bildschirm und beruht daher nicht auf der Anwendung, die den Inhalt ausführt, um irgendetwas der hierin beschriebenen Funktionalität zur Verfügung zu stellen. Anders ausgedrückt funktioniert das System für alle Anwendungen und somit die gesamte Aktivität, die auf der mobilen Vorrichtung durchgeführt wird.

Die Details von einer oder mehreren Implementierungen werden in den beigefügten Zeichnungen und der nachstehenden Beschreibung dargelegt. Andere Merkmale werden aus der Beschreibung und den Zeichnungen und aus den Ansprüchen offensichtlich werden.

KURZE BESCHREIBUNG DER ZEICHNUNGEN

1 ist ein Blockdiagramm, das ein beispielhaftes System gemäß dem offenbarten Gegenstand darstellt.

2 ist ein Blockdiagramm, das ein weiteres beispielhaftes System gemäß dem offenbarten Gegenstand darstellt.

3 stellt ein Ablaufdiagramm eines beispielhaften Prozesses zum Verwenden einer Bildschirmanalyse, um eine Vorrichtungssicherung zu erhöhen, gemäß offenbarten Implementierungen dar.

4 ist eine beispielhafte Anzeige einer mobilen Computervorrichtung mit einer inhaltsbasierten Herausforderung niedriger Ebene.

5 ist eine beispielhafte Anzeige einer mobilen Computervorrichtung mit einer inhaltsbasierten Herausforderung hoher Ebene.

6 stellt ein Ablaufdiagramm eines beispielhaften Prozesses zum Trainieren eines Profil-Klassifizierungsmodells gemäß offenbarten Implementierungen dar.

7 stellt ein Ablaufdiagramm eines beispielhaften Prozesses zum Verwenden einer Bildschirmanalyse, um eine Vorrichtungssicherung in einer Mehrfachanwenderumgebung zu verbessern, gemäß offenbarten Implementierungen dar.

8 zeigt ein Beispiel einer Computervorrichtung, die verwendet werden kann, um die beschriebenen Techniken zu implementieren.

9 zeigt ein Beispiel einer verteilten Computervorrichtung, die verwendet werden kann, um die beschriebenen Techniken zu implementieren.

Gleiche Bezugszeichen in den verschiedenen Zeichnungen zeigen gleiche Elemente an.

DETAILLIERTE BESCHREIBUNG

1 ist ein Blockdiagramm eines inhaltsbasierten Sicherungssystems gemäß einer beispielhaften Implementierung. Das System 100 kann verwendet werden, um ungewöhnliche oder Ausreißer-Aktivitäten zu erfassen, die auf einer mobilen Vorrichtung durchgeführt sind, und um nach einem Erfassen einer solchen Aktivität eine Herausforderung zur Verfügung zu stellen. Die Ausreißeraktivität kann basierend auf einem Klassifizierungsmodell bestimmt werden, das unter Verwendung von Inhalt trainiert ist, der ausgeführt wird, während die Vorrichtung in einer vertrauenswürdigen Umgebung verwendet wird. Die Herausforderung kann auch auf Inhalt basieren, der zur Anzeige auf der mobilen Vorrichtung ausgeführt wird. Das inhaltsbasierte Sicherungssystem kann einen minimalen Zusatzaufwand für den Anwender erzeugen, wenn es im Hintergrund läuft, und kann eine Sicherung für eine mobile Vorrichtung mit oder ohne Verwendung eines Passworts zur Verfügung stellen. Das System 100 in 1 kann ein Client-Server-System sein, wobei einiges an Datenverarbeitung oder Datenspeicherung bei einem Server 170 erfolgt. Jedoch können andere Konfigurationen und Anwendungen verwendet werden. Beispielsweise können die Datenverarbeitung und die Datenspeicherung ausschließlich auf der mobilen Vorrichtung 110 auftreten. Bei einigen Implementierungen kann ein Anwender der mobilen Vorrichtung 110 anzeigen, dass Teilbereiche der Verarbeitung bei dem Server 170 durchgeführt werden. Somit sind Implementierungen nicht auf die dargestellten exakten Konfigurationen beschränkt.

Das mobile inhaltsbasierte Sicherungssystem 100 kann eine mobile Vorrichtung 110 enthalten. Die mobile Vorrichtung 110 kann irgendeine mobile Personalcomputervorrichtung sein, wie beispielsweise ein Smartphone oder eine andere in der Hand gehaltene Computervorrichtung, ein Tablet, eine tragbare Computervorrichtung, etc., die eher in einer geschlossenen mobilen Umgebung arbeitet, als in einer herkömmlichen offenen Web-basierten Umgebung. Die mobile Vorrichtung 110 kann auch andere Typen von elektronischen Computervorrichtungen sein, wie beispielsweise ein Laptop oder ein netzbasierter Computer. Die mobile Vorrichtung 110 kann ein Beispiel einer Computervorrichtung 800 sein, wie sie in 8 gezeigt ist. Die mobile Vorrichtung 110 kann eine mobile Computervorrichtung sein, die durch einen einzelnen Anwender verwendet wird, oder kann eine mobile Vorrichtung sein, die durch mehrere Anwender gemeinsam genutzt wird.

Die mobile Vorrichtung 110 kann einen oder mehrere Prozessoren enthalten, die in einem Substrat ausgebildet sind, das konfiguriert ist, um eine oder mehrere maschinenausführbare Anweisungen oder Teilstücke von Software, Firmware oder einer Kombination davon auszuführen. Die Prozessoren können auf Halbleitern basieren – das bedeutet, dass die Prozessoren Halbleitermaterial enthalten können, das eine digitale Logik durchführen kann. Die mobile Vorrichtung 110 kann somit einen oder mehrere Computerspeicher enthalten, der oder die konfiguriert ist oder sind, um eines oder mehrere Teilstücke von Daten entweder temporär, permanent, semipermanent oder aus einer Kombination davon zu speichern. Die mobile Vorrichtung 110 kann somit Anwendungen 120 enthalten, die maschinenausführbare Anweisungen in der Form von Software, Firmware oder einer Kombination davon darstellen. Die in den Anwendungen 120 identifizierten Komponenten können ein Teil des Betriebssystems sein oder können Anwendungen sein, die entwickelt sind, um unter Verwendung des Betriebssystems zu laufen. Bei einigen Implementierungen können Anwendungen 120 mobile Anwendungen sein. Herkömmlich arbeiten mobile Anwendungen in einer geschlossenen Umgebung, was bedeutet, dass der Anwender separate Anwendungen verwendet, um Aktivitäten durchzuführen, die herkömmlich in einer Web-basierten Browser-Umgebung durchgeführt werden. Beispielsweise kann ein Anwender der mobilen Vorrichtungen 110, eher als dass er zu bookit.com geht, um ein Hotel zu buchen, eine mobile Anwendung in Anwendungen 120 verwenden, die durch bookit.com zur Verfügung gestellt sind. Die Anwendungen 120 können auch Web-Anwendungen enthalten, die die mobile Anwendung wiederspiegeln können, z.B. denselben oder einen ähnlichen Inhalt wie die mobile Anwendung zur Verfügung stellen. Bei einigen Implementierungen können die Anwendungen 120 durch ein Betriebssystem der mobilen Vorrichtung 110 durchgeführte Funktionen enthalten.

Die Anwendungen 120 können eine Bildschirmerfassungsmaschine 126, eine Bildschirmanalysemaschine 122 und eine bildschirmbasierte Sicherungsmaschine 124 enthalten. Bei einigen Implementierungen kann oder können eine oder mehrere dieser Anwendungen durch das Betriebssystem der mobilen Vorrichtung 110 zur Verfügung gestellt sein. Bei einigen Implementierungen kann oder können eine oder mehrere dieser Anwendungen durch den Anwender heruntergeladen und installiert sein.

Die Bildschirmerfassungsmaschine 126 kann verschiedene Funktionalitäten enthalten. Bei einigen Implementierungen kann die Bildschirmerfassungsmaschine 126 konfiguriert sein, um auf dem Bildschirm dargestellte Textinformation von einer Anwendungsprogrammschnittstelle (API) zu bekommen. Bei einigen Implementierungen kann die Bildschirmerfassungsmaschine 126 in das Betriebssystem eingebaut sein, welches den Inhalt von Textbildern bestimmen kann, die auf dem aktuellen Bildschirm angezeigt werden. Die Textinformation kann als bildschirmerfasster Inhalt angesehen werden, und jeder Aufruf zu der API oder jedes Mal, wenn der Inhalt von Textfeldern bestimmt wird, kann als Bildschirmerfassung angesehen werden. Bei einigen Implementierungen kann die Bildschirmerfassungsmaschine 126 konfiguriert sein, um den Bildschirm durch Kopieren oder Lesen der Inhalte des Framepuffers der Vorrichtung zu erfassen. Somit kann der erfasste Bildschirm ein Abbild bzw. Bild sein und auf ihn kann als erfasstes Bild Bezug genommen werden. Die Bildschirmerfassungsmaschine 126 kann den Bildschirm in Intervallen erfassen. Das Intervall kann klein sein, wie beispielsweise jede halbe Sekunde oder jede Sekunde. Bei einigen Implementierungen kann die Bildschirmerfassungsmaschine 126 konfiguriert sein, um den Bildschirm zu jeder Zeit zu erfassen, zu welcher, in Reaktion auf eine explizite Anwenderanfrage oder einen Befehl oder wenn die Verbindung von der mobilen Anwendung zu einer anderen mobilen Anwendung übergeht, ein Berührungsereignis auftritt (z.B. zu jeder Zeit, zu welcher der Anwender den Bildschirm berührt, um zu scrollen, zu zoomen, auf einen Link zu klicken, etc.). Bei einigen Implementierungen kann die Bildschirmerfassungsmaschine 126 das Intervall erhöhen, mit welchem eine Bildschirmerfassung auftritt, wenn sich der Bildschirm nicht ändert. Anders ausgedrückt kann, wenn der Bildschirm statisch ist, die Bildschirmerfassungsmaschine 126 Bilder weniger oft erfassen. Die Bildschirmerfassungsmaschine 126 kann den erfassten Inhalt oder Bildschirmbilder und Metadaten zu einer Erkennungsmaschine liefern, die ein Teil der Bildschirmerfassungsmaschine 126 sein kann und auf der mobilen Vorrichtung 110 oder einem Server, wie beispielsweise dem Server 170, angeordnet sein kann. Wenn ein Bildschirmerfassungsbild zur Erkennungsmaschine geliefert wird, kann die Erkennungsmaschine Wörter, Entitäten, Logos, etc. im Inhalt des Bildschirmerfassungsbilds identifizieren. Somit kann die Erkennungsmaschine erkannten Inhalt erzeugen, der aus Wörtern sowie aus Bildern sein kann. Die Metadaten können den Zeitstempel, den Typ der mobilen Vorrichtung, einen Identifizierer der mobilen Vorrichtung, die mobile Anwendung, die läuft, wenn der Inhalt erfasst wurde, z.B. die Anwendung, die den Inhalt ausführte, der auf dem Bildschirm angezeigt wird, etc. enthalten. Bei einigen Implementierungen können die Metadaten auch enthalten, welche Anwendungen aktiv sind, den Standort der Vorrichtung, Umgebungslicht, Bewegung der Vorrichtung, etc. Das System kann diese zusätzliche Vorrichtungsinformation verwenden, um bei einer Inhaltsanalyse zu unterstützen (z.B. einer Entitätsdisambiguierung bzw. -begriffserklärung), einer Merkmalserzeugung (z.B. bei einem Entscheiden, welcher Inhalt am relevantesten ist), etc. Die Erkennungsmaschine kann somit konfiguriert sein, um verschiedene Typen von Erkennung durchzuführen, wie beispielsweise eine Zeichenerkennung, eine Bilderkennung, eine Logoerkennung, etc., indem herkömmliche oder später entwickelte Techniken verwendet werden.

Die mobile Vorrichtung 110 kann auch eine Bildschirmanalysemaschine 122 enthalten. Die Bildschirmanalysemaschine 122 kann konfiguriert sein, um eine Session zu bestimmen und basierend auf dem in der Session identifizierten Inhalt Merkmale zu erzeugen. Eine Session ist eines oder mehrere Bildschirmerfassungsinhaltsereignisse. Anders ausgedrückt kann eine Session der erfasste Inhalt von einem Bildschirmerfassungsbild einer Reihe von zugehörigen Bildschirmerfassungsbildern sein (z.B. während eines spezifizierten Zeitfensters erfasste Bilder, während einer Durchführung einer Aktion erfasste Bilder, erfasste Bilder, während ein bestimmtes Anwenderschnittstellenelement verwendet wird, während einer Nutzung einer bestimmten Anwendung erfasste Bilder, während einer bestimmten Aufgabe erfasste Bilder, etc.). Gleichermaßen kann eine Session auch ein Inhalt von einem API-Aufruf oder einer Reihe von API-Aufrufen sein, etc. Die Bildschirmanalysemaschine 122 kann Merkmalsvektoren für eine Session erzeugen. Merkmale enthalten durch die Bildschirmerfassungsmaschine 126 in dem erfassten Inhalt, den die Session enthielt, identifizierte Datenelemente und die Metadaten für den erfassten Inhalt. Beispielsweise können Merkmale Entitäten, Wörter oder Bilder, Pixel oder im Inhalt identifizierte Bildmerkmale, die Anwendung, die den Inhalt ausführte, das Datum/die Zeit, ob sich die Vorrichtung bewegte (z.B. in einem Auto), etc. enthalten. Die Information über ein Merkmal kann in einem Merkmalsvektor kombiniert werden und viele Merkmalsvektoren können in einen zusammengesetzten Merkmalsvektor für eine Session verkettet werden. Die Bildschirmanalysemaschine 122 kann den zusammengesetzten Merkmalsvektor oder, anders ausgedrückt, die verschiedenen einzelnen Merkmalsvektoren entweder zu Trainingszwecken oder zur Analyse zu einem Klassifizierungsmodell liefern.

Ein Klassifizierungsmodell, wie beispielsweise ein Vorhersageklassifikator 134 ist irgendein Typ von Maschinenlernklassifikator, wie beispielsweise ein neuronales Netz mit Long Short-Term-Memory (LSTM), ein vorwärts gerichtetes neuronales Netz, ein Support Vector Machine (SVM) Klassifikator, etc., der entweder ein Binär-Klassifikator (für eine Vorrichtung mit einem Anwender) oder ein Mehrfachklassen-Klassifikator (für eine Vorrichtung mit mehreren Anwendern) ist. Das Klassifizierungsmodell hat zwei Moden, nämlich einen Trainingsmodus und einen Inferenzmodus. Im Trainingsmode verwendet die Bildschirmanalysemaschine 122 Merkmalsvektoren, die aus erfasstem Inhalt erzeugt sind (z.B. Inhalt, der auf der mobilen Vorrichtung angezeigt ist), als positive Trainingsbeispiele für das Klassifizierungsmodell. Wenn genügend Trainingsdaten gesammelt worden sind, kann die Bildschirmanalysemaschine 122 generische negative Beispiele erhalten oder kann die positiven Beispiele intelligent permutieren, um negative Beispiele zu erzeugen. Beispielsweise kann die Bildschirmanalysemaschine 122 einige der Wörter/Entitäten in erfasstem Inhalt mit ähnlichen Wörtern/Entitäten ersetzen. Als ein Beispiel kann ein Platz oder eine Person mit einem anderen Platz oder einer Person ersetzt werden. Wenn das Modell ein Mehrfachklassen-Klassifikator ist, kann das System positive Beispiele für einen Anwender als die negativen Beispiele für einen anderen Anwender verwenden. Bei einigen Implementierungen kann der Bildschirm das Modell ohne negative Beispiele trainieren. Die Bildschirmanalysemaschine 122 kann dann das Klassifizierungsmodell unter Verwendung der positiven und negativen Beispiele (wo negative Beispiele verwendet werden) trainieren. Ein Trainieren des Klassifizierungsmodells erzeugt den Vorhersageklassifikator 134, der dann in einem Inferenzmodus verwendet werden kann. Die Bildschirmanalysemaschine 122 kann mit einem Training des Klassifizierungsmodells fortfahren, wie zum Beispiel mit zusätzlichen positiven Beispielen, um das Modell zu verfeinern.

Bei einigen Implementierungen kann das System mehrere Klassifizierungsmodelle trainieren. Beispielsweise kann ein Modell für einen Inhalt verwendet werden, der durch eine bestimmte Anwendung oder eine bestimmte Anwendungskategorie ausgeführt wird. Beispielsweise kann ein Modell für Spiele verwendet werden und kann ein weiteres Modell für neue Anwendungen verwendet werden. Somit kann der Vorhersageklassifikator 134 mehr als einen trainierten Klassifikator darstellen.

Bei einigen Implementierungen kann die Bildschirmerfassungsmaschine 126 eine Indexiermaschine enthalten, die konfiguriert ist, um den erfassten Inhalt zu indexieren. Der Index kann auch ein Bildschirmerfassungsbild mit dem Text, den Entitäten, den Bildern, den Logos, etc. assoziieren, die in dem Bild identifiziert sind. Somit kann die Indexiermaschine beispielsweise Indexeinträge (z.B. im Bildschirmerfassungsindex 146 gespeichert) für ein erfasstes Bild und einen erfassten Inhalt erzeugen. Bei einigen Implementierungen kann die Indexiermaschine auf einem Server, wie beispielsweise dem Server 170, sein und kann die Bildschirmerfassungsmaschine 126 das erfasste Bild und den erfassten Inhalt zum Server liefern. Der Index kann ein invertierter Index sein, wobei ein Schlüsselwert (z.B. ein Wort, eine Phrase, eine Entität, ein Bild, ein Logo etc.) mit einer Liste von Bildern (z.B. Kopien von erfassten Bildschirmbildern), die den Schlüsselwert enthalten, assoziiert ist. Der Index kann Metadaten (z.B. wo auf dem erfassten Bild der Schlüsselwert auftritt, einen Rang für den Schlüsselwert für das Bild, etc.) enthalten, die mit jedem erfassten Bild in der Liste assoziiert sind. Bei einigen Implementierungen kann der Index auch eine Liste von erfassten Bildern enthalten, die durch einen Zeitstempel indexiert sind. Die Indexiermaschine kann den Index in einem Speicher speichern, beispielsweise in dem Bildschirmerfassungsindex 146. Natürlich kann das System bei einigen Implementierungen den Index in einem Anwenderkonto auf einem Server zusätzlich zu oder anstelle von auf der mobilen Vorrichtung 110 speichern. Der Anwender der mobilen Vorrichtung 110 kann kontrollieren, wenn die Bildschirmerfassungsmaschine 126 aktiv ist. Beispielsweise kann der Anwender spezifizieren, dass die Bildschirmerfassungsmaschine 126 nur dann aktiv ist, wenn andere spezifizierte mobile Anwendungen 120 laufen (z.B. nur dann, wenn er in einer mobilen Anwendung sozialer Medien ist). Der Anwender kann auch die Bildschirmerfassungsmaschine 126 manuell ein- und ausschalten, wie beispielsweise über eine Einstellungsanwendung. Bei einigen Implementierungen kann der Anwender die Bildschirmerfassungsmaschine 126 mit einer Gestik oder einer Aktion aufrufen. Ein Sperren der Bildschirmerfassungsmaschine 126 kann auch die hierin beschriebenen bildschirmbasierten Sicherungsmaßnahmen sperren.

Die Anwendungen 120 können auch eine bildschirmbasierte Sicherungsmaschine 124 enthalten. Die bildschirmbasierte Sicherungsmaschine 124 kann den Vorhersageklassifikator 134 in einem Inferenzmodus verwenden, um eine unaufdringliche bzw. unauffällige Sicherung für die mobile Vorrichtung 110 bereitzustellen. Die bildschirmbasierte Sicherungsmaschine 124 kann sessionbasierte Merkmale von der Bildschirmanalysemaschine 122 und der Bildschirmerfassungsmaschine 126 empfangen und die Merkmale gegenüber dem Vorhersageklassifikator 134 laufenlassen. Wenn der Vorhersageklassifikator 134 anzeigt, dass die Merkmale Ausreißer sind (z.B. nicht mit einem ausreichenden Vertrauensniveau in das Modell passen), kann die bildschirmbasierte Sicherungsmaschine 124 dem Anwender eine Herausforderung anbieten. Die Herausforderung kann passwortbasiert (z.B. den Anwender anfragen, ein Passwort einzugeben) oder inhaltsbasiert (z.B. auf Information basieren, die in dem Bildschirmerfassungsindex 146 oder den Sessionmerkmalen 132 gefunden ist) sein.

Eine inhaltsbasierte Herausforderung ist nützlich, da sie verwendet werden kann, um einen bösen Täter zu identifizieren, der das Passwort eines Anwenders gehackt oder gestohlen hat. Die Information in den Sessionmerkmalen 132 enthalten Merkmale, die aus Inhalt extrahiert sind, der an einem vertrauenswürdigen Standort erzeugt ist, und/oder aus Inhalt, der für eine vergangene Session erzeugt ist, die nicht aus dem Vertrauensniveau für den Vorhersageklassifikator 134 gefallen ist. Anders ausgedrückt stellt die Information in den Sessionmerkmalen 132 Information von einer verifizierten Session dar, z.B. passend zu einem vertrauenswürdigen Standort oder passend zu dem Klassifizierungsmodell, und sind typisch für den Anwender der mobilen Vorrichtung 110, nicht Ausreißeraktivität. Der Bildschirmerfassungsindex 146 kann eine Kopie von zuvor erfasstem Bildschirm und Schlüsselelemente, wie beispielsweise Wörter, Entitäten oder Bilder, die in erfasstem Inhalt identifiziert sind, enthalten.

Die bildschirmbasierte Sicherungsmaschine 124 kann Information von dem Sessioninformationsmerkmal 132 und/oder dem Bildschirmerfassungsindex 146 verwenden, um eine inhaltsbasierte Herausforderung zu erzeugen. Beispielsweise kann die bildschirmbasierte Sicherungsmaschine 124 einen zuvor erfassten Bildschirm (z.B. vom Bildschirmerfassungsindex 146) mit einem oder mehreren Schlüsselelementen präsentieren, die verdunkelt sind, und anfragen, dass der Anwender die verdunkelte Information zur Verfügung stellt. Als ein weiteres Beispiel kann die bildschirmbasierte Sicherungsmaschine 124 Information hoher Ebene aus den Sessionmerkmalen 132 oder dem Bildschirmerfassungsindex 146 extrahieren. Beispielsweise kann die bildschirmbasierte Sicherungsmaschine 124 fragen, mit welcher Person ein Anwender gestern Abend redete oder textete, welche Entität der Anwender zwei Tage zuvor suchte, welches Restaurant der Anwender am häufigsten aufsucht, welche Anwendung der Anwender typischerweise für eine Aufgabe verwendet (z.B. zum Lesen einer Email oder zum Buchen eines Restaurants), etc. Die inhaltsbasierten Herausforderungen stellen zusätzliche Schichten einer Sicherung zur Verfügung, die eine Vorrichtung ohne ein Passwort oder eine Vorrichtung, bei welcher das Passwort gestohlen oder gehackt worden ist, schützen.

Die mobile Vorrichtung 110 kann Datenspeicher 130 enthalten, die in dem Arbeitsspeicher der mobilen Vorrichtung 110 gespeichert und durch die Anwendungen 120 verwendet sind. Bei einigen Implementierungen können die Datenspeicher 130 einen Bildschirmerfassungsindex 146 enthalten, der Elemente enthält, die in den Bildschirmerfassungsbildern identifiziert sind, und eine Datengrafik bzw. Datenkurve 144. Die Datenkurve 144 kann ein grafikbasierter Datenspeicher sein, der Daten und Regeln speichert, die ein Wissen über die Daten in einer Form beschreiben, die für eine deduktive bzw. schlussfolgernde Begründung sorgt. Beispielsweise kann in einer Wissensbasis Information über Entitäten in der Form von Beziehungen zu anderen Entitäten gespeichert sein. Eine Entität kann eine Person, ein Platz, ein Element, eine Idee, ein Thema, ein Wort, eine Phrase, ein abstraktes Konzept, ein konkretes Element, ein anderes geeignetes Ding oder irgendeine Kombination von diesen sein. Entitäten können aufeinander durch etikettierte Ränder bezogen sein, die Beziehungen darstellen. Die etikettierten Ränder können gerichtet oder ungerichtet sein. Beispielsweise kann die Entität, die die nationale Fußballliga darstellt, auf eine Jaguar-Entität durch eine Beziehung "hat Team" bezogen sein. Die Datenkurve 144 kann eine Untergruppe von Entitäten und Beziehungen in einer größeren Wissensbasis sein, die beim Server 170 angeordnet ist, insbesondere dann, wenn die große Wissensbasis Millionen von Entitäten und Milliarden von Beziehungen enthält. Beispielsweise können die Entitäten und Beziehungen in der Datenkurve 144 die meisten populären Entitäten und Beziehungen von einer Wissensbasis darstellen oder können basierend auf Anwenderpräferenzen ausgewählt werden. Beispielsweise können dann, wenn der Anwender ein Profil hat, Entitäten und Beziehungen für ein Einschließen in eine Datengrafik 144 basierend auf dem Profil oder basierend auf den Typen von Entitäten, die in dem Inhalt der Bildschirmerfassungsbildern häufig identifiziert sind, ausgewählt werden. Bei einigen Implementierungen kann die Datengrafik 144 im Inhalt von Bildschirmerfassungsbildern häufig erkannte Entitäten enthalten. Solche Entitäten können als persönliche Entitäten angesehen werden, d.h. Entitäten, mit welchen der Anwender häufig interagiert, die aber nicht groß in der Öffentlichkeit wohlbekannt sind. Somit kann die Datengrafik 144 Entitäten enthalten, die nicht notwendigerweise in einer großen öffentlichen Wissensbasis gefunden werden. Solche persönlichen Entitäten können Leute sowie Telefonnummern, Adressen, Städte, etc. enthalten, mit welchen der Anwender oft interagiert.

Die Datenspeicher 130 können auch Sessionmerkmale 132 enthalten. Die Sessionmerkmale 132 können positive Beispiele darstellen, z.B. Merkmale, die aus Inhalt identifiziert sind, der in einer vertrauenswürdigen Umgebung erzeugt ist. Eine vertrauenswürdige Umgebung kann ein Standort sein, der durch den Anwender der mobilen Vorrichtung 110 als vertrauenswürdig identifiziert ist, oder eine Umgebung, die existiert, nachdem der Anwender ein Passwort eingegeben hat, oder eine Kombination von diesen. Die Sessionmerkmale 132 können verwendet werden, um den Vorhersageklassifikator 134 zu trainieren und/oder um Information zu liefern, die bei einer Herausforderung verwendet wird. Die Sessionmerkmale 132 können auch Merkmale enthalten, die während einer Session erzeugt sind, für die das Klassifizierungsmodell bestimmte, dass sie mit den Aktivitäten des Anwenders konsistent ist. Bei einigen Implementierungen kann das System eine höhere Schwelle zum Speichern dieser Merkmale als die Schwelle haben, die dazu verwendet wird, zu bestimmen, ob eine Session mit dem Profil konsistent ist. Anders ausgedrückt, muss das Vertrauensniveau, um in Sessionmerkmalen 132 enthalten zu sein, höher als für die Merkmale sein, die als typisch für den Anwender anzusehen sind.

Die Datenspeicher 130 können auch Profildaten 142 enthalten. Die Profildaten 142 können Information über einen Anwender der mobilen Vorrichtung enthalten. Beispielsweise können die Profildaten 142 Standorte enthalten, die als vertrauenswürdig angesehen werden (z.B. Arbeitsplatz oder Heim des Anwenders), Passwortdaten, Präferenzen und andere Daten, die typisch für ein Anwenderkonto oder -profil sind. Bei einigen Implementierungen können der Bildschirmerfassungsindex 146 die Datengrafik 144 und die Profildaten 142 auch auf dem Server 170 sitzen, z.B. in einem Konto, das mit dem Anwender der mobilen Vorrichtung 110 assoziiert ist. Bei einigen Implementierungen können der Bildschirmerfassungsindex 146, die Datengrafik 144 und die Profildaten 142 Kopien von oder Untergruppen von Daten sein, die auf dem Server 170 oder an einer anderen Stelle gespeichert sind, die durch den Anwender spezifiziert ist. Die Datenspeicher 130 können auf irgendeinem nichtflüchtigen Speicher gespeichert sein.

Bei einer mobilen Vorrichtung 110, die mehrere Anwender hat, wie beispielsweise ein Tablet oder Laptop, das von einer Familie gemeinsam genutzt wird, kann jeder Anwender einen jeweiligen Datenspeicher 130 haben. Anders ausgedrückt kann jeder Anwender eine individuelle Kopie des Bildschirmerfassungsindex 146, der Profildaten 142 und der Sessionmerkmale 132 haben. Bei einer solchen Implementierung kann der Vorhersageklassifikator 134 ein Mehrfachklassen-Klassifikator sein, der erfassten Inhalt für eine aktuelle Session analysieren kann und den Inhalt derart klassifizieren, dass er zu einem oder von zwei oder mehreren Profilen passt, oder als zu keinem der Profile passend (z.B. Ausreißeraktivität). Bei einer solchen Implementierung kann jeder Anwender eine Trainingssession für den Vorhersageklassifikator 134 über die Bildschirmanalysemaschine 122 initiieren.

Das mobile inhaltsbasierte Sicherungssystem 100 kann einen Server 170 enthalten, der eine Computervorrichtung oder Computervorrichtungen sein kann, der oder die die Form einer Anzahl von unterschiedlichen Vorrichtungen annehmen, wie beispielsweise ein Standardserver, eine Gruppe von solchen Servern, oder ein Rack-Serversystem. Beispielsweise kann der Server 170 auf verteilte Weise über mehrere Computervorrichtungen implementiert sein. Zusätzlich kann der Server 170 in einem Personalcomputer implementiert sein, beispielsweise einem Laptop-Computer. Der Server 170 kann ein Beispiel einer Computervorrichtung 800 sein, wie er in 8 gezeigt ist, oder einer Computervorrichtung 900, wie sie in 9 gezeigt ist. Der Server 170 kann einen oder mehrere Prozessoren enthalten, die in einem Substrat ausgebildet sind, das konfiguriert ist, um eine oder mehrere maschinenausführbare Anweisungen oder Teilstücke von Software, Firmware oder einer Kombination davon auszuführen. Die Prozessoren können halbleiterbasiert sein – das heißt, die Prozessoren können Halbleitermaterial enthalten, das eine digitale Logik durchführen kann.

Der Server 170 kann auch einen oder mehrere Computerspeicher enthalten. Die Speicher, wie beispielsweise ein Hauptspeicher, können konfiguriert sein, um eines oder mehrere Teilstücke von Daten entweder temporär, permanent, semipermanent oder einer Kombination davon zu speichern. Die Speicher können irgendeinen Typ von Speichervorrichtung enthalten, die Information in einem Format speichert, das durch einen oder mehrere Prozessoren gelesen und/oder ausgeführt werden kann. Die Speicher können einen flüchtigen Speicher, einen nichtflüchtigen Speicher oder eine Kombination davon enthalten und Speichermodule oder Maschinen, die dann, wenn sie durch den einen oder die mehreren Prozessoren ausgeführt werden, gewisse Operationen durchführen. Bei einigen Implementierungen können die Module in einer externen Speichervorrichtung gespeichert sein und in den Speicher des Servers 170 geladen werden. Bei einigen Implementierungen kann der Server 170 ein Backup für Kopien von einer oder mehreren der Informationsdateien im Datenspeicher 130 speichern, kann Quelldaten für eine oder mehrere der Informationsdateien im Datenspeicher 130 liefern und/oder kann eine oder mehrere der Funktionen der Bildschirminhaltsmaschine durchführen.

2 ist ein Blockdiagramm, das ein beispielhaftes System gemäß dem offenbarten Gegenstand darstellt. 2 stellt eine Implementierung des Systems 100 mit einer oder mehreren der Funktionen der Bildschirminhaltsmaschine 250 dar, die bei dem Server 170 auftreten. Beispielsweise kann die Bildschirminhaltsmaschine 250 ein Bildschirmerfassungsbild von der Bildschirmerfassungsmaschine 126 auf der mobilen Vorrichtung 110 empfangen und kann die Erkennung durchführen, um Schlüsselelemente im Bild zu identifizieren, und kann das Bild mit den Schlüsselelementen indexieren. Bei einigen Implementierungen kann die Bildschirminhaltsmaschine 250 Merkmalsvektoren für das Bild oder eine Reihe von Bildern erzeugen. Anders ausgedrückt kann die Bildschirminhaltsmaschine 250 Merkmalsvektoren für eine Session erzeugen, wie es oben beschrieben ist.

Der Server 170 kann eine Wissensbasis 210 speichern. Die Wissensbasis 210 kann ein großer graph- bzw. kurvenbasierter Datenspeicher sein, der Daten und Regeln speichert, die ein Wissen über die Daten in einer Form beschreiben, die für eine deduktive Begründung besorgt. Eine Wissensbasis mit einer großen Anzahl von Entitäten und sogar einer beschränkten Anzahl von Beziehungen kann Milliarden von Verbindungen haben. Bei einigen Implementierungen kann die Wissensbasis 210 in einer externen Speichervorrichtung gespeichert sein, die vom Server 170 und/oder der mobilen Vorrichtung 110 zugreifbar ist. Bei einigen Implementierungen kann die Wissensbasis 210 über mehrere Speichervorrichtungen und/oder mehrere Computervorrichtungen, wie beispielsweise mehrere Server, verteilt sein. Die Entitäten und Beziehungen in der Wissensbasis 210 können durchsuchbar sein, z.B. über einen Index. Beispielsweise kann der Index Text enthalten, durch welchen auf eine Entität Bezug genommen worden ist. Somit kann eine Referenz zu der bzw. ein Bezug auf die Wissensbasis 210 derart verstanden werden, dass sie bzw. er einen Index enthält, der ein Finden einer Entität unter Verwendung eines Textäquivalents ermöglicht bzw. erleichtert.

Die Bildschirminhaltsmaschine 250 kann Komponenten enthalten, die den Bildschirminhalt in einem Bildschirmerfassungsbild analysieren und Schlüsselelemente, wie beispielsweise Wörter, Entitäten, Logos, etc., im Bildschirminhalt identifizieren. Identifizierte Entitäten können Entitäten sein, die in der Wissensbasis 210 sind. Demgemäß kann die Bildschirminhaltsmaschine 250 konfiguriert sein, um verschiedene Typen einer Erkennung, wie beispielsweise eine Zeichenerkennung, eine Bilderkennung, eine Logoerkennung, etc., unter Verwendung herkömmlicher oder später entwickelter Techniken durchzuführen. Die Bildschirminhaltsmaschine 250 kann die Elemente, die identifiziert sind (z.B. Text, Bilder, Logos), an Entitäten in der Wissensbasis 210 anpassen. Bei einigen Implementierungen kann die Bildschirminhaltsmaschine 250 die Schlüsselelemente indexieren, wie es oben diskutiert ist, die den invertierten Index im Bildschirmerfassungsindex 215 speichern. Der Bildschirmerfassungsindex 215 ist mit einem Anwender der mobilen Vorrichtung 110 assoziiert. Bei einigen Implementierungen kann die Bildschirminhaltsmaschine 250 auch Sessionmerkmale 225 ähnlich den Sessionmerkmalen 132 der 1 erzeugen. Bei einigen Implementierungen können die Sessionmerkmale 225 zu dem Server 170 von der mobilen Vorrichtung 110 übertragen werden. Anders ausgedrückt kann die Bildschirmanalysemaschine 122 die Merkmale erzeugen und kann die Merkmale zum Server 170 übertragen, wo sie als positive Beispiele für den Anwender gespeichert werden. Bei einigen Implementierungen kann die Bildschirminhaltsmaschine 250 bestimmen, wenn eine ausreichende Menge von positiven Beispielen zum Trainieren des Modells existiert. Bei einigen Implementierungen kann die Bildschirminhaltsmaschine 250 eine Menge von positiven Beispielen reservieren und das Modell gegenüber den Beispielen auswerten. Bei solchen Implementierungen kann die Bildschirminhaltsmaschine 250 bestimmen, wenn das Modell einen ausreichenden Klassifizierungsfehler hat (z.B. 95% Genauigkeit oder 99% Genauigkeit, etc.). Bei einigen Implementierungen kann der Server 170 ein Anwenderprofil 220 speichern. Das Anwenderprofil kann Information ähnlich den Profildaten 142 enthalten.

Nimmt man Bezug auf 1, kann die mobile Vorrichtung 110 in Kommunikation mit dem Server 170 und mit anderen mobilen Vorrichtungen über ein Netzwerk 160 sein. Das Netzwerk 160 kann beispielsweise das Internet sein oder das Netzwerk 160 kann ein verdrahtetes oder drahtloses lokales Netz (LAN), ein Weitverkehrsnetz (WLAN), etc. sein, das unter Verwendung von beispielsweise Gateway-Vorrichtungen, Brücken, Schaltern und/oder so weiter implementiert ist. Das Netzwerk 160 kann auch ein zellulares Kommunikationsnetzwerk darstellen. Über das Netzwerk 160 kann der Server 170 mit der mobilen Vorrichtung 110 kommunizieren und Daten zu/von dieser übertragen und die mobile Vorrichtung 110 kann mit anderen mobilen Vorrichtungen (nicht gezeigt) kommunizieren.

Das mobile inhaltsbasierte Sicherungssystem 100 stellt eine beispielhafte Konfiguration dar und Implementierungen können andere Konfigurationen enthalten. Beispielsweise können einige Implementierungen eine oder mehrere der Komponenten der Bildschirmerfassungsmaschine 126, der Bildschirmanalysemaschine 122 oder der bildschirmbasierten Sicherungsmaschine 124 in ein einziges Modul oder eine einzige Maschine kombinieren. Gleichermaßen können einige Implementierungen eine oder mehrere der Bildschirmerfassungsmaschine 126, der Bildschirmanalysemaschine 122 und der bildschirmbasierten Sicherungsmaschine 124 in ein einzelnes Modul oder eine einzelne Anwendung kombinieren. Weiterhin kann oder können eine oder mehrere der Komponenten der Bildschirmerfassungsmaschine 126, der Bildschirmanalysemaschine 122 oder der bildschirmbasierten Sicherungsmaschine 124 bei dem Server 170 durchgeführt werden. Als ein weiteres Beispiel kann oder können eines oder mehreres von den Datenspeichern, wie beispielsweise dem Bildschirmerfassungsindex 146, der Datenkurve 144, den Profildaten 142 und dem Sessionmerkmal 132 oder dem Vorhersageklassifikator 134 in einen einzigen Datenspeicher kombiniert werden oder kann oder können über mehrere Computervorrichtungen verteilt werden oder kann oder können bei dem Server 170 oder einer anderen Stelle, die durch den Anwender spezifiziert ist, gespeichert werden.

Bis zu dem Ausmaß, dass das mobile inhaltsbasierte Sicherungssystem 100 anwenderspezifische Daten sammelt und speichert oder persönliche Information verwenden kann, können die Anwender mit einer Gelegenheit versehen werden, zu kontrollieren, ob Programme oder Merkmale die Anwenderinformation sammeln (z.B. Information über ein soziales Netz eines Anwenders, soziale Aktionen oder Aktivitäten, Präferenzen eines Anwenders oder einen aktuellen Standort eines Anwenders), oder zu kontrollieren, ob und/oder wie Bildschirmerfassungsbilder und Inhalt zu speichern sind. Beispielsweise kann das System von einem Erfassen von Inhalt für bestimmte Anwendungen Abstand halten, wie beispielsweise Bankanwendungen, Gesundheitsanwendungen oder anderen ähnlichen Anwendungen, oder wo ein Erfassen von solchem Inhalt Servicebedingungen verletzt. Zusätzlich kann dem Anwender die Gelegenheit gegeben bzw. zur Verfügung gestellt werden, ein Erfassen von Bildschirminhalt für spezifische Anwendungen oder Kategorien von Anwendungen zu sperren. Zusätzlich können bestimmte Daten auf eine oder mehrere Arten behandelt werden, bevor sie gespeichert oder verwendet werden, so dass persönlich identifizierbare Information entfernt wird. Beispielsweise kann eine Identität eines Anwenders so behandelt werden, dass keine persönlich identifizierbare Information für den Anwender bestimmt werden kann, oder kann ein geographischer Standort eines Anwenders verallgemeinert werden, wo Standortinformation erhalten wird (wie beispielsweise eine Stadt, eine Postleitzahl oder eine Staatenzugehörigkeit), so dass ein bestimmter Standort eines Anwenders nicht bestimmt werden kann. Somit kann der Anwender eine Kontrolle darüber haben, wie Information über den Anwender gesammelt und durch ein mobiles inhaltsbasiertes Sicherungssystem verwendet wird.

3 stellt ein Ablaufdiagramm eines beispielhaften Prozesses zum Verwenden einer Bildschirmanalyse, um eine Vorrichtungssicherung zu verbessern, gemäß offenbarten Implementierungen dar. Ein Prozess 300 kann durch ein mobiles inhaltsbasiertes Sicherungssystem, wie beispielsweise das System 100 der 1 oder der 2, durchgeführt werden. Der Prozess 300 kann verwendet werden, um eine unauffällige bzw. unaufdringliche Sicherung oder eine Backup-Sicherung in einer mobilen Umgebung zur Verfügung zu stellen, was sicherstellt, dass ein böser Täter nicht damit fortfahren kann, auf die mobile Vorrichtung zuzugreifen. Der Prozess 300 kann durch Trainieren eines Vorhersageklassifikators mit Sessioninformation beginnen, die auf einer mobilen Vorrichtung erfasst ist (305). Dies ist ein Trainingsmodus für die Vorrichtung und kann stattfinden, wenn die Vorrichtung in einer vertrauenswürdigen Umgebung ist, wie es detaillierter in Bezug auf 4 erklärt ist.

Wenn das Klassifizierungsmodell einmal trainiert ist, kann das System in einen Inferenzmodus unter Verwendung des Klassifizierungsmodells eintreten. Der Inferenzmodus kann laufen, bis der Anwender Anweisungen liefert, den Inferenzmodus zu verlassen oder bis die Vorrichtung in einen blockierten Modus eintritt. Somit kann der Inferenzmodus eine Vorrichtung selbst dann schützen, wenn die Vorrichtung nicht mit einem Passwort blockiert ist, d.h. ein Passwort ist nicht nötig, um die Vorrichtung aus einem Schlaf- oder inaktiven Modus zu aktivieren. Selbst wenn die Vorrichtung mit einem Passwort geschützt ist, schützt der Inferenzmodus den Inhalt der Vorrichtung, wenn das Passwort beeinträchtigt oder gestohlen ist.

Im Inferenzmodus kann das System eine aktuelle Session unter Verwendung des Klassifizierungsmodells klassifizieren (310). Die Session kann ein Bildschirm oder eine Reihe von zugehörigen Bildschirmen sein. Somit stellt die Session Inhalt dar, der durch eine mobile Anwendung ausgeführt ist und auf der mobilen Vorrichtung angezeigt ist. Um die aktuelle Session zu klassifizieren, kann das System eine Erkennung auf dem (den) erfassten Bildschirmbild(ern) durchführen, das (die) die Session bildet (bilden), um Inhalt zu identifizieren (z.B. Schlüsselelemente), der in dem (den) Bildschirmbild(ern) angezeigt ist. Das System kann auch Entitäten in dem erfassten Inhalt erkennen, ob textbasiert oder aus dem Bild erkannt. Das System kann Merkmalsvektoren aus dem erfassten Inhalt erzeugen und die Merkmalsvektoren, z.B. in der Form eines verbundenen bzw. vereinigten bzw. aggregierten Merkmalsvektors, zum Klassifizierungsmodell liefern. Das Klassifizierungsmodell kann bestimmen, wie gut die Merkmale zu dem trainierten Modell passen (315). Anders ausgedrückt nimmt das Klassifizierungsmodell die Merkmalsvektoren und bestimmt einen Vertrauenswert, der reflektiert, wie gut die Merkmale innerhalb des Modells passen. Das System kann bestimmen, ob die Session ein geringes Vertrauen hat, und zwar basierend auf der aktuellen Session allein oder basierend auf einem Mittelwert von Vertrauenswerten für Sessions, die über ein Zeitfenster auftreten. Wenn der Vertrauenswert oder der mittlere Vertrauenswert eine Schwelle erfüllt oder übersteigt (315, Nein), sind die Merkmale konsistent mit dem Modell und kann das System ein Klassifizieren von Sessions fortsetzen (310). Wenn der Vertrauenswert für die aktuelle Session oder der mittlere Vertrauenswert über ein Fenster von aktuellen Sessions darin fehlschlägt, die Schwelle zu erfüllen (315, Ja), kann das System bestimmen, dass die Aktivität ein Ausreißer ist und kann die Aktivität eines nicht autorisierten Anwenders darstellen.

Demgemäß kann das System dem Anwender eine Herausforderung präsentieren (320). Bei einigen Implementierungen kann die Herausforderung darin bestehen, ein voreingestelltes Passwort einzugeben. Bei anderen Implementierungen kann die Herausforderung auf erfasstem Inhalt basieren, der mit einer vorherigen Session assoziiert ist, die die Vertrauensschwelle erfüllte (320). Bei einigen Implementierungen kann die Herausforderung eine Kombination aus dem Passwort und Herausforderungsfragen basierend auf erfasstem Inhalt, der mit vorherigen Sessions assoziiert ist, enthalten. Die vorherige Session sollte eine Session sein, die einige Stunden vor der aktuellen Session stattfand, aber vorzugsweise nicht früher als ein paar von Tagen vor der aktuellen Session. Dies stellt sicher, dass der legitimierte Anwender sich daran erinnern kann, was in der vorherigen Session auftrat, aber dass die Session nicht kürzlich genug dafür auftrat, dass sie ein nicht autorisierter Anwender anschaut.

Die Herausforderung kann eine Frage oder eine Reihe von Fragen sein. Anders ausgedrückt kann das System, um ein glückliches Raten zu vermeiden, eine Reihe von Fragen als die Herausforderung präsentieren und vom Anwender fordern, wenigstens einen Hauptteil (z.B. 2 von 3) richtig zu beantworten, um sich der Herausforderung zu stellen. Die Herausforderungsfragen können aus Inhalt gebildet sein, der mit der vorherigen Session assoziiert ist. Bei einigen Implementierungen kann die Reihe von Fragen eine Kombination aus einer passwortbasierten Herausforderung und einer von mehreren auf erfasstem Inhalt basierten Herausforderungen sein.

4 ist eine beispielhafte Anzeige 400 einer mobilen Computervorrichtung mit einer inhaltsbasierten Herausforderung auf niedriger Ebene. Die Anzeige 400 ist ein Beispiel einer Herausforderung basierend auf einem vorher angeschauten Bildschirmerfassungsbild. Der vorher angeschaute Bildschirm kann beispielsweise als Teil eines Index von erfassten Bildschirmen, beispielsweise dem Bildschirmerfassungsindex 146 der 1 oder dem Bildschirmerfassungsindex 215 der 2 oder als Teil von Sessioninformation, wie beispielsweise den Sessionmerkmalen 132 der 2 oder den Sessionmerkmalen 225 der 2, gespeichert sein. Das zuvor angeschaute Bildschirmerfassungsbild kann während einer Session oder eines Fensters von Sessions erfasst worden sein, die oder das konsistent mit dem Klassifizierungsmodell war und/oder die oder das in einer vertrauenswürdigen Umgebung auftrat. Bei einigen Implementierungen kann der vorher angeschaute Bildschirm einen Zeitstempel haben, der wenigstens eine minimale Anzahl von Stunden in der Vergangenheit ist. Das Minimum ist lang genug, um sicherzustellen, dass das Bild von einer vorherigen Anwendungsperiode der Vorrichtung ist. Eine Anwendungsperiode kann beispielsweise als die Periode dazwischen definiert sein, dass die Vorrichtung in einen inaktiven Zustand eintritt. Die Vorrichtung tritt in einen inaktiven Zustand ein, wenn ein Anwender darin fehlschlägt, innerhalb einer vordefinierten Zeitperiode mit der Vorrichtung zu interagieren. Herkömmlich muss der Anwender den Berührungsbildschirm antippen oder darüberwischen, um die Vorrichtung erneut zu aktivieren.

Um die Herausforderung zu erzeugen, kann das System Teilbereiche 405 des vorher angeschauten Bildschirmbilds verdunkeln. Beispielsweise werden die Wörter unter Teilbereichen 405a und 405b verdunkelt. Ein Teilbereich 405 kann ausgewählt werden, als ob er eine äußerst aktuelle Entität ist, die in dem vorher angeschauten Bildschirmerfassungsbild erscheint. Das System kann hochaktuelle Entitäten unter Verwendung von herkömmlicher Entitätserfassung und Sprachanalysetechniken bestimmen. Das System kann ein Anweisungsfenster 410 zur Verfügung stellen, das den Anwender darüber informiert, wie man sich der Herausforderung stellen soll. Beispielsweise kann das Anwendungsfenster 410 anfragen, dass der Anwender den Text entsprechend den verdunkelten Teilbereichen liefert. Bei dem Beispiel einer Anzeige 400 stellt das System einen Textkasten für den Anwender zur Verfügung, um Text entsprechend den Teilbereichen 405a und 405b zu liefern. Jedoch kann das System auch eine Multiple-Choice-Frage anbieten, die zulässt, dass der Anwender eine der angebotenen Auswahlen auswählt. Zusätzlich muss der verdunkelte Teilbereich nicht Text sein. Das System kann ein Bild auswählen, um es zu verdunkeln, und mehrere Bilder für den Anwender zur Auswahl anbieten. Wenn der Anwender eine Antwort für jeden verdunkelten Teilbereich 405 geliefert hat, kann der Anwender eine Steuerung auswählen oder aktivieren, die beispielsweise im Anweisungsfenster 410 zur Verfügung gestellt ist, um die Antwort auf die Herausforderung zu übermitteln.

5 ist eine beispielhafte Anzeige einer mobilen Computervorrichtung mit einer inhaltsbasierten Herausforderung hoher Ebene. Die Anzeige 500 ist ein Beispiel einer Herausforderung basierend auf vorheriger Aktivität, nicht notwendigerweise eines einzelnen zuvor angeschauten Bildschirmerfassungsbilds. Für eine inhaltsbasierte Herausforderung hoher Ebene kann das System auf Information von einer vorherigen Session zugreifen, die mit dem Klassifizierungsmodell konsistent war und/oder die in einer vertrauenswürdigen Umgebung auftrat. Die Information kann beispielsweise aus Sessionmerkmalen erhalten werden, die während der vorherigen Session extrahiert sind. Wie die inhaltsbasierte Herausforderung niedriger Ebene kann die Session mit einem Zeitstempel assoziiert sein, der wenigstens eine minimale Anzahl von Stunden in der Vergangenheit liegt. Die inhaltsbasierte Herausforderung hoher Ebene kann somit auf einer vergangenen Analyse von Bildschirmerfassungsbildern basieren. Das System kann Fakten aus der vergangenen Session extrahieren und den aktuellen Anwender fragen, eine Frage basierend auf den Fakten richtig zu beantworten. Bei dem Beispiel der Anzeige 500 fragt das System den Anwender, anzuzeigen, wem der Anwender gestern Abend um 1817 Uhr eine Nachricht sendete. Das Beispiel der Anzeige 500 enthält eine Multiple-Choice-Herausforderung, könnte aber auch einen Textkastentyp für eine Antwort verwenden. Andere Typen von Faktenfragen, die aus einer vergangenen Session formuliert werden können, enthalten "Bei welchem Restaurant hast Du am Freitag eine Reservierung gemacht?" und "Welches Bild hast Du zuletzt über soziale Medien geteilt?". Andere Typen von inhaltsbasierten Herausforderungen hoher Ebene können aus angehäuften Nutzungsdaten abgeleitet werden. Beispielsweise kann das System bestimmen, welchem Kontakt der Anwender am häufigsten Nachrichten sendete, welche Plätze der Anwender am häufigsten reserviert, etc. Beim Erzeugen von untergeordneten Herausforderungen kann das System Herausforderungen enthalten, die über Anwendungen und in Bezug auf Entitätstypen verschieden sind. Anders ausgedrückt kann das System sicherstellen, dass die untergeordneten Herausforderungen eine Vielfalt von Anwendungen und/oder Entitäten darstellen, die als typisch für den Anwender angesehen werden.

Kehrt man zurück zur 3, kann das System bestimmen, ob die präsentierte Herausforderung erfüllt ist bzw. ob man sich ihr gestellt hat (325). Wie es oben angezeigt ist, kann die Herausforderung in Abhängigkeit von der Implementierung mehrere untergeordnete Herausforderungen enthalten. Wenn die Herausforderung nicht erfüllt ist (325, Nein), kann das System bestimmen, ob eine weitere Herausforderung zu präsentieren ist (335). Beispielsweise kann das System einem Anwender, der bei der ersten Herausforderung fehlschlug, eine weitere Gelegenheit mit einer neuen Herausforderung zur Verfügung stellen (332, Ja), kann aber keine dritte Gelegenheit zur Verfügung stellen (335, Nein). Bei einigen Implementierungen kann, insbesondere dann, wenn die Herausforderung bereits untergeordnete Herausforderungen enthielt, das System keinerlei zusätzliche Gelegenheiten zum Erfüllen einer weiteren Herausforderung zur Verfügung stellen (335, Nein). Wenn es keine andere Herausforderungsgelegenheit gibt (335, Nein), kann die Vorrichtung in einen Blockiermodus eintreten (340). Im Blockiermodus kann die Vorrichtung einen Zugriff auf die meisten Anwendungen und Aktivitäten verhindern. Beispielsweise kann die Vorrichtung nur einen Notrufanruf ermöglichen und den gesamten anderen Zugriff sperren. Bei einem weiteren Beispiel kann die Vorrichtung eine Komponente zu einer Anwender-Emailadresse oder einem anderen Anwenderidentifizierer, der mit der Vorrichtung assoziiert ist und der den Standort anzeigt, wo die Vorrichtung in den Blockiermodus eintrat, senden. Bei einigen Implementierungen kann die Vorrichtung entsperrt werden, wenn die Vorrichtung bei einem vertrauenswürdigen Standort lokalisiert ist und der Anwender ein Passwort liefert. Beispielsweise kann ein Anwenderprofil vertrauenswürdige Standorte enthalten, wie beispielsweise das Heim oder der Arbeitsplatz des Anwenders. Wenn der Anwender daheim oder bei der Arbeit ist (z.B. basierend auf globalen Positionierungskoordinaten), kann die Vorrichtung zulassen, dass ein Anwender ein Passwort eingibt, um die Vorrichtung zu entriegeln bzw. zu entsperren. Dies kann einem legitimierten Anwender, der die Vorrichtung zufällig blockierte, ermöglichen, die Vorrichtung zu entriegeln, ohne dass er eine Kundenunterstützung kontaktieren muss. Bei einigen Implementierungen kann ein Entriegeln der Vorrichtung eine Identitätsverifizierung erfordern, wie beispielsweise über einen Anruf bei der Kundenunterstützung bzw. beim Kundendienst. Bei einigen Implementierungen kann ein Entriegeln der Vorrichtung nur ein Eingeben eines Passworts erfordern. Andere Verfahren zum Entriegeln der Vorrichtung, die einmal blockiert ist, können auch verwendet werden.

Wenn die Herausforderung erfüllt ist (325, Ja), kann das System Merkmale aus der aktuellen Session extrahieren und die Merkmale (z.B. Merkmalsvektoren für die Merkmale) als positive Beispiele verwenden, um das Klassifizierungsmodell upzudaten (330). Anders ausgedrückt kann auf eine erfolgreiche Beendigung einer Herausforderung hin das System das Klassifizierungsmodell trainieren, um die aktuelle Aktivität als konsistent mit dem Verhalten eines Anwenders zu erkennen. Das System kann damit fortfahren, Sessions zu analysieren und zu klassifizieren, bis ein Anwender das Inferenzmodell stoppt oder bis die Vorrichtung blockiert ist.

6 stellt ein Ablaufdiagramm eines beispielhaften Prozesses 600 zum Trainieren eines Klassifizierungsmodells gemäß der offenbarten Implementierungen dar. Der Prozess 600 kann durch ein mobiles inhaltsbasiertes Sicherungssystem ausgeführt werden, wie beispielsweise das System 100. Der Prozess 600 kann Information sammeln, während die Vorrichtung in einer vertrauenswürdigen Umgebung verwendet wird, und die Information verwenden, um das Klassifizierungsmodell zu trainieren, um eine Aktivität zu erkennen, die mit dem Anwenderprofil konsistent ist. Das Klassifizierungsmodell kann ein Binärklassifikator sein, der anzeigt, ob erfasster Inhalt, z.B. Information auf einem bestimmten Bildschirmerfassungsbild oder einer Sequenz von solchen Bildern, konsistent ist mit einer Aktivität eines Vorrichtungsbesitzers. Bei anderen Implementierungen kann das Klassifizierungsmodell ein Mehrfachklassen-Klassifikator sein, der trainiert ist, um zu bestimmen, welches Anwenderprofil von mehreren Profilen, wenn es welche gibt, das bestimmte Bildschirmerfassungsbild oder Sequenzen von Bildern am meisten konsistent damit ist. Wenn ein Mehrfachklassen-Klassifikator vorgesehen ist, wird das Modell unter Verwendung von mehreren Trainingssessions trainiert, und zwar wird das Modell mit einer für jedes Anwenderprofil trainiert, um zu erkennen. Somit kann, während der Prozess 600 derart dargestellt ist, dass er für einen Binärklassifikator ist, er für jeden anderen Anwender einer mobilen Vorrichtung ausgeführt werden, um ein Mehrfachklassen-Klassifikatormodell zu trainieren.

Der Prozess 600 beginnt mit einer Bestimmung diesbezüglich, ob die Vorrichtung in einer vertrauenswürdigen Umgebung ist (605). Eine vertrauenswürdige Umgebung ist eine Umgebung, in welcher es ein hohes Vertrauen gibt, dass der Anwender der Vorrichtung der wahre Vorrichtungsbesitzer ist. Ein Bestimmen, ob die Umgebung eine vertrauenswürdige Umgebung ist, kann von einer Anzahl von Faktoren, allein oder in Kombination, abhängen. Beispielsweise kann der Anwender ein Passwort liefern, das den Trainingsmodus freigibt. Als ein weiteres Beispiel kann das Anwenderprofil Standorte enthalten, denen vertraut wird, wie beispielsweise das Heim oder Büro des Anwenders. Die Vorrichtung kann unter Verwendung von GPS-Koordinaten oder eines drahtlosen Netzwerkidentifizierers bestimmen, ob der aktuelle Standort mit einem der vertrauenswürdigen Standorte übereinstimmt. Bei einigen Implementierungen kann die vertrauenswürdige Umgebung eine erfolgreiche Passwort-Entriegelung erfordern (z.B. Aufwecken der Vorrichtung aus dem einen Schlaf- oder inaktiven Modus) sowie eine Übereinstimmung mit einem vertrauenswürdigen Standort. Wenn die Vorrichtung nicht in einer vertrauenswürdigen Umgebung ist (605, Nein), werden keine Trainingsdaten gehalten. Wenn die Vorrichtung einmal in einer vertrauenswürdigen Umgebung ist (605, Ja), kann das System ein Erfassen von Bildschirminhalt beginnen (610). Wie es oben angezeigt ist, kann das Erfassen von Bildschirminhalt in regulären Intervallen jedes Mal dann stattfinden, wenn der Anwender mit der Vorrichtung interagiert, und zwar auf einen expliziten Befehl vom Anwender hin, etc. Die Bildschirminformation stellt somit die Information dar, die durch die Anwendung ausgeführt wird, die auf der Vorrichtung läuft. Das System kann mit einem Erfassen von Inhalt fortfahren (615, Nein), bis eine Session beendet ist (615, Ja). Eine Session kann als einzelnes Bildschirmerfassungsereignis (API-Aufruf oder Bildschirmerfassungsbild) definiert sein. Somit kann ein Bildschirmerfassungsbild darin resultieren, dass die Session beendet wird. Als ein weiteres Beispiel kann eine Session als eine Reihe von Bildschirmerfassungsereignissen definiert sein. Beispielsweise die Bildschirmerfassungsereignisse, die in einem spezifizierten Fenster auftreten, Ereignisse, die während einer spezifischen Aktivität auftreten, Ereignisse, die bei einer einzelnen Anwendung auftreten, oder Ereignisse, die während einer Verwendung einer einzigen Schnittstelle auftreten, etc. Wenn eine Session beendet ist (615, Ja), kann das System Sessionmerkmale extrahieren und kommentieren. Merkmale können irgendetwas sein, was in dem Inhalt erkannt ist, der mit der Session assoziiert ist, sowie Metadaten über den Inhalt. Beispielsweise können Merkmale das Programm enthalten, das den Inhalt ausführte, den Standort der mobilen Vorrichtung, die Bewegung der mobilen Vorrichtung, die Wörter, Bilder und Logos, die im Inhalt erkannt sind, die Entitäten (z.B. aus der Wissensbasis), die im Inhalt identifiziert sind, etc. Die Information über ein bestimmtes Merkmal kann durch einen entsprechenden Merkmalsvektor dargestellt werden, und die Merkmalsvektoren können in einem verbundenen Merkmalsvektor für einen einzigen Bildschirm oder für eine Session kombiniert (verkettet) werden. Die Merkmalsvektoren können als positive Beispiele einer Aktivität für den Anwender angesehen werden. Anders ausgedrückt können die Bildschirme zerlegt und kommentiert werden als positive Trainingsbeispiele von dem Typ einer Aktivität, die für den Anwender typisch ist.

Das System kann bestimmen, ob es genügend positive Beispiele gibt, um den Klassifikator zu trainieren (625). Beispielsweise kann das System eine minimale Menge an Zeit (z.B. ein paar Wochen, eine minimale Anzahl von Stunden) erfordern, um genügend Verhaltensweisen in einer vertrauenswürdigen Umgebung zu beobachten, um ein nützliches Klassifizierungsmodell sicherzustellen. Als ein weiteres Beispiel kann das System eine minimale Anzahl von positiven Beispielen oder irgendeine Kombination einer minimalen Anzahl von positiven Beispielen und einer minimalen Menge an Zeit im Trainingsmodus erfordern. Bis die Minimalkriterien erfüllt sind (624, Nein), fährt das System mit einem Sammeln von Information (Merkmalen) fort, wenn die Vorrichtung in einer vertrauenswürdigen Umgebung ist. Wenn die Minimalkriterien einmal erfüllt sind (625, Ja), kann das System negative Beispiele bekommen. Die negativen Beispiele können eine generische Gruppe von negativen Beispielen sein oder können durch zufälliges, aber realistisches, Permutieren von positiven Beispielen erzeugt werden (630). Ein Permutieren bzw. Umstellen positiver Beispiele kann ein Ersetzen von einigen der Wörter/Entitäten in erfasstem Inhalt mit ähnlichen Wörtern/Entitäten enthalten. Als ein Beispiel kann ein Platz oder eine Person mit einem anderen Platz oder einer Person ersetzt werden. Bei einem Mehrfach-Klassifikatormodell enthält ein Permutieren positiver Beispiele ein Verwenden positiver Beispiele für einen Anwender als die negativen Beispiele für einen anderen Anwender. Das System kann dann die positiven und negativen Beispiele verwenden, um den Klassifikator zu trainieren (635). Bei einigen Implementierungen kann das System den Klassifikator ohne irgendwelche negativen Beispiele trainieren. Das System kann bestimmen, ob die Trainingskriterien erfüllt sind. Die Trainingskriterien können beispielsweise eine minimale Menge an Zeit, eine minimale Anzahl von positiven Beispielen, sein, wie es oben beschrieben ist, oder eine minimale Klassifizierungsgenauigkeit. Beispielsweise kann das System einige Beispiele verwenden, um das Modell zu trainieren, und dann das Modell gegenüber anderen Beispielen (oder denselben Beispielen) laufen lassen, um zu bestimmen, wie gut das Modell die bekannten Beispiele klassifiziert. Bei einigen Implementierungen kann eine minimale Anzahl von Beispielen verwendet werden, um den Klassifikator zu trainieren, und dann kann ein weiteres Minimum gesammelt und verwendet werden, um das Modell zu bewerten. Einige Implementierungen können eine Kombination aus einer minimalen Zeitperiode, einer minimalen Anzahl von Beispielen und einer minimalen Klassifizierungsgenauigkeit als die Trainingskriterien verwenden. Bis die Trainingskriterien erfüllt sind (640, Nein), fährt das System mit einem Sammeln von Information (Merkmalen) fort, wenn die Vorrichtung in einer vertrauenswürdigen Umgebung ist. Wenn die Trainingskriterien einmal erfüllt sind (640, Ja), dann endet der Prozess 600 und das Modell ist bereit zur Verwendung in einem Inferenzmodus. Jedoch kann das System damit fortfahren, das Klassifizierungsmodell unter Verwendung neuer positiver Beispiele zu trainieren. Bei einigen Implementierungen kann ein Training für eine minimale Zeitperiode (wenn man in einer vertrauenswürdigen Umgebung ist) kontinuierlich fortfahren oder kann das System das Modell trainieren, wenn der Anwender eine Herausforderung mit der Sessioninformation erfolgreich erfüllt, die die Herausforderung veranlasste. Zusätzlich kann das System in bestimmten Intervallen in einen Trainingsmodus eintreten, wenn die Vorrichtung in einer vertrauenswürdigen Umgebung ist. Somit kann das System das Modell verfeinern und es aktuell halten, wenn der Anwender an neuen Aktivitäten teilnimmt.

7 stellt ein Ablaufdiagramm eines beispielhaften Prozesses 700 zum Verwenden einer Bildschirmanalyse, um eine Vorrichtungssicherung in einer Mehrfachanwenderumgebung zu verbessern, gemäß offenbarten Implementierungen dar. Der Prozess 700 kann durch ein mobiles inhaltsbasiertes Sicherungssystem durchgeführt werden, wie beispielsweise das System 100 der 1 oder der 2. Der Prozess 700 kann verwendet werden, um eine unauffällige Sicherung oder Backup-Sicherung in einer mobilen Umgebung zur Verfügung zu stellen, so wie ein automatisches Initiieren (z.B. ohne eine spezifische Anweisung) eines Profilschalters in einer Mehrfachanwenderumgebung. Der Prozess 700 kann durch Trainieren eines Profil-Klassifizierungsmodells beginnen, um mehrere unterschiedliche Profile zu identifizieren und zu klassifizieren (705). Das Trainieren wird unter Verwendung von Inhalt erreicht, der in Bildschirmen erkannt wird, wenn die Vorrichtung in einer vertrauenswürdigen Umgebung ist, wie es oben in Bezug auf 6 beschrieben ist. In einem Profil-Klassifizierungsmodell ist jede Trainingssession und somit die erzeugten positiven Beispiele, mit einem spezifischen Anwender assoziiert. Somit kann das Modell Aktivitäten lernen, die für jeden Anwender typisch sind. Demgemäß kann das Profil-Klassifizierungsmodell irgendeinen Typ von Mehrfach-Klassifikator sein.

Wenn einmal zwei oder mehr Profile erfolgreich trainiert sind, kann das System in einen Inferenzmode eintreten. In einem Inferenzmode kann das System Inhalt in einem Bildschirm oder einer Reihe von Bildschirmen beobachten, anders ausgedrückt eine Session, und die Session unter Verwendung des trainierten Modells klassifizieren (710). Beim Beobachten des Inhalts kann das System verschiedene Typen von Erkennung auf einem Bildschirmerfassungsbild durchführen, wobei das Bild durch eine Anwendung ausgeführt worden ist, z.B. eine mobile Anwendung, eine Web-basierte Anwendung oder irgendeinen Typ von Anwendung oder auf einem erfassten Text. Das System kann dann Merkmalsvektoren des Inhalts bestimmen und die Merkmalsvektoren zum Klassifizierungsmodell liefern. Das Klassifizierungsmodell stellt eine Bestimmung diesbezüglich zur Verfügung, ob die Merkmale (z.B. wie sie durch die Merkmalsvektoren dargestellt sind) mit einem Profil übereinstimmen oder nicht. Die Bestimmung kann ein Vertrauensniveau enthalten, das darstellt, wie sicher bzw. bestimmt das Modell ist, dass die Eingabe (der Merkmalsvektor) mit einem bestimmten Profil konsistent ist. Somit kann die Bestimmung beispielsweise anzeigen, dass die Eingabe mit einem ersten Anwenderprofil mit einem Vertrauenswert von 70% übereinstimmt und mit einem zweiten Anwenderprofil mit einem Vertrauenswert von 50% übereinstimmt.

Das System kann bestimmen, ob das Modell zu einem niedrigen Vertrauen für den angemeldeten Anwender zurückkehrt (715). Ein geringes Vertrauen kann gegenüber einer Schwelle gemessen werden, wie beispielsweise einem Fehlschlagen diesbezüglich, eine Schwelle zu erfüllen. Ein niedriges bzw. geringes Vertrauen kann anzeigen, dass die aktuelle Aktivität nicht konsistent mit dem angemeldeten Anwender ist. Wenn das Vertrauen nicht gering ist (715, Nein), kann das System ein Klassifizieren von Aktionen fortsetzen (710). Wenn das Vertrauen gering ist (715, Ja), kann das System dann bestimmen, ob die aktuelle Aktivität zu einem Profil eines weiteren Anwenders passt (720). Ob die Aktivität, z.B. die von dem auf dem Bildschirm angezeigten Inhalt erzeugten Merkmalsvektoren, konsistent mit einem Profil sind, hängt von dem Vertrauenswert eines bestimmten Profils ab, das eine Schwelle erfüllt oder diese übersteigt. Wenn das System bestimmt, dass wenigstens ein Vertrauenswert für ein weiteres Anwenderprofil (z.B. ein anderes als der angemeldete Anwender) eine Schwelle erfüllt oder übersteigt, kann das System bestimmen, dass es eine Profilübereinstimmung gibt (720, Ja). Das System kann dann einen Profilschalter initiieren (725).

Bei einigen Implementierungen ist ein Initiieren des Profilschalters automatisch. Anders ausgedrückt kann das System den aktuellen Anwender abmelden und den anderen Anwender anmelden, was in einer Verwendung von unterschiedlichen Anwenderprofildaten resultiert. Ein automatisches Profilschalten kann eine Option sein, die ausdrücklich durch die Anwender der mobilen Vorrichtung ausgewählt wird. Bei einigen Implementierungen kann ein Initiieren des Profilschalters ein Bereitstellen einer sofortigen Anfrageerlaubnis enthalten, Anwenderprofile zu schalten. Beispielsweise kann das System ein Fenster zur Verfügung stellen, das fragt, ob die Vorrichtung Profile schalten sollte, und den Anwender informieren, welches Profil ausgewählt werden wird. Bei einigen Implementierungen kann ein Initiieren eines Profilschalters den aktuellen Anwender abmelden und die Vorrichtung in eine Anmeldeschnittstelle nehmen, wo der Anwender beispielsweise gefragt wird, ein Profil auszuwählen und ein Passwort einzugeben. Bei einigen Implementierungen kann das System ein Vorgabeprofil auswählen (z.B. dasjenige mit dem höchsten Vertrauenswert) und zu dem Passwort auffordern. Anders ausgedrückt kann das System das aktuelle Profil automatisch ausloggen, was erfordert, dass sich der Anwender ausdrücklich wieder mit einem anderen Profil anmeldet. Ein Initiieren eines Profilschalters kann den Prozess 700 beenden. Nach einem erfolgreichen Schalten (z.B. sich der Anwender erfolgreich anmeldet), kann das System in eine Trainingsphase eintreten (z.B. Schritt 705) oder kann bei einem Schritt 710 fortfahren, der eine aktuelle Aktivität gegenüber dem neuen Anwenderprofil vergleicht.

Wenn die aktuelle Aktivität nicht mit einem anderen Profil übereinstimmt (720, Nein), kann das System dem Anwender eine Herausforderung präsentieren (730), wie es oben in Bezug auf den Schritt 320 der 3 erklärt ist. Die Herausforderung kann auf vorher zugegriffenen Inhalten basieren, die konsistent waren (z.B. die Vertrauensschwelle erfüllte oder überstieg) mit entweder dem Profil des aktuell angemeldeten Anwenders oder mit einem Profil, das den höchsten Vertrauenswert vom Schritt 710 hatte. Beispielsweise kann in einer Mehrfachanwenderumgebung jeder Anwender einen individuellen Bildschirmerfassungsindex, Sessionmerkmale, Profildaten, etc. haben. Somit kann die Vorrichtung Information aus den Sessionmerkmalen auswählen, wie beispielsweise den Sessionmerkmalen 132 der 1, oder dem Bildschirmerfassungsindex, wie beispielsweise dem Index 146 der 1, der mit dem angemeldeten Anwender assoziiert ist, um die Herausforderung zu formulieren, wie es oben diskutiert ist. Das System kann auch die Sessionmerkmale und/oder den Bildschirmerfassungsindex, die mit einem Profil assoziiert sind, das das höchste Vertrauensniveau empfing, eher als vom angemeldeten Anwender verwenden. Das System kann das Profil mit dem höchsten Vertrauensniveau auswählen, wenn der Vertrauenswert für das Profil sich der Schwelle nähert, aber nicht hoch genug dafür ist, die Schwelle zu erfüllen. Somit kann die Herausforderung eher auf den wahrscheinlichsten Anwender als auf den angemeldeten Anwender zugeschnitten werden. Wie es oben angezeigt ist, kann die Herausforderung eine Reihe von untergeordneten Herausforderungen sein und kann auf Inhalt basieren, der in einem vorher angeschauten Bildschirm erkannt ist. Bei einigen Implementierungen kann das System, den aktuellen Anwender eher abmelden als eine Herausforderung zu präsentieren.

Wenn eine Herausforderung präsentiert und erfüllt wird (732, Ja), kann das System die Merkmalsvektoren, die für die Session erzeugt sind, als positives Trainingsbeispiel verwenden (740). Wenn die Herausforderung auf Inhalt basierte, der mit dem aktuell angemeldeten Anwender assoziiert ist, können die Beispiele mit dem aktuell angemeldeten Anwender assoziiert sein. Wenn die Herausforderung auf Inhalt basiert, der mit einem anderen Anwender assoziiert ist, können die Beispiele mit dem anderen Anwender assoziiert sein und kann die Vorrichtung einen Profilschalter initiieren, wie es oben beschrieben ist. Die neuen Trainingsbeispiele können verwendet werden, um das Klassifizierungsmodell zu trainieren/zu verfeinern. Der Prozess 700 kann dann in dem Inferenzmodus für den aktuell angemeldeten Anwender fortfahren.

Wenn die Herausforderung nicht erfüllt wird (732, Nein), kann das System bestimmen, ob eine weitere Herausforderung auszugeben ist (745). Wie es oben in Bezug auf 3 beschrieben ist, kann dies von der Implantierung abhängen und davon, ob die Herausforderung untergeordnete Herausforderungen enthält und ob der Anwender irgendwelche vorherigen untergeordneten Herausforderungen erfolgreich erfüllt hat. Wenn es keine anderen Herausforderungen gibt, um erfüllt zu werden (745, Nein), kann das System die mobile Vorrichtung verriegeln bzw. blockieren (750), wie es oben in Bezug auf den Schritt 340 der 3 beschrieben ist.

8 zeigt ein Beispiel einer generischen Computervorrichtung 800, die als Server 170 betrieben werden kann und/oder als die Vorrichtung 110 der 1, die mit den hier beschriebenen Techniken verwendet werden kann. Die Computervorrichtung 800 soll verschiedene beispielhafte Formen von Computervorrichtungen darstellen, wie beispielsweise Laptops, Desktops, Workstations, persönliche digitale Assistenten, zellulare Telefone, Smartphones, Tablets, Server und andere Computervorrichtungen, die tragbare Vorrichtungen enthalten. Die hier gezeigten Komponenten, ihre Verbindungen und Beziehungen und ihre Funktionen haben die Bedeutung, dass sie nur Beispiele sind, und haben nicht die Bedeutung, Implementierungen der Erfindungen zu beschränken, die in diesem Dokument beschrieben und/oder beansprucht sind.

Die Computervorrichtung 800 enthält einen Prozessor 802, einen Speicher 804, eine Speichervorrichtung 806 und Erweiterungsports 810, die über eine Schnittstelle 808 verbunden sind. Bei einigen Implementierungen kann die Computervorrichtung 800 einen Transceiver 846, eine Kommunikationsschnittstelle 844 und ein GPS-(globales Positioniersystem-)Empfängermodul 848 unter anderen Komponenten enthalten, die über die Schnittstelle 808 verbunden sind. Die Vorrichtung 800 kann über die Kommunikationsschnittstelle 844 drahtlos kommunizieren, die eine digitale Signalverarbeitungsschaltung enthalten kann, wo es nötig ist. Jede der Komponenten 802, 804, 806, 808, 810, 840, 844, 846 und 848 kann auf einer gemeinsamen Hauptplatine oder auf andere Weisen montiert sein, wie es geeignet ist.

Der Prozessor 802 kann Anweisungen zur Ausführung innerhalb der Computervorrichtung 800 verarbeiten, einschließlich Anweisungen, die im Speicher 804 oder auf der Speichervorrichtung 806 gespeichert sind, um grafische Information für eine GUI auf einer externen Eingabe/Ausgabe-Vorrichtung anzuzeigen, wie beispielsweise der Anzeige 816. Die Anzeige 816 kann ein Monitor oder eine flache Berührungsbildschirmanzeige sein. Bei einigen Implementierungen können mehrere Prozessoren und/oder mehrere Busse verwendet werden, wie es geeignet ist, zusammen mit mehreren Speichern und Typen eines Speichers. Ebenso können mehrere Computervorrichtungen 800 verbunden sein, wobei jede Vorrichtung Teilbereiche der nötigen Operationen zur Verfügung stellt (z.B. als Serverbank, als eine Gruppe von Blade-Servern oder als ein Mehrfachprozessorsystem).

Der Speicher 804 speichert Information innerhalb der Computervorrichtung 800. Bei einer Implementierung ist der Speicher 804 eine flüchtige Speichereinheit oder flüchtige Speichereinheiten. Bei einer weiteren Implementierung ist der Speicher 804 eine nichtflüchtige Speichereinheit oder nichtflüchtige Speichereinheiten. Der Speicher 804 kann auch eine andere Form von computerlesbarem Medium sein, wie beispielsweise eine magnetische oder optische Platte. Bei einigen Implementierungen kann der Speicher 804 einen Erweiterungsspeicher enthalten, der durch eine Erweiterungsschnittstelle zur Verfügung gestellt ist.

Die Speichervorrichtung 806 kann einen Massenspeicher für die Computervorrichtung 800 zur Verfügung stellen. Bei einer Implementierung kann die Speichervorrichtung 806 ein computerlesbares Medium sein oder ein solches enthalten, wie beispielsweise eine Floppydiskvorrichtung, eine Festplattenvorrichtung, eine optische Plattenvorrichtung oder eine Bandvorrichtung, einen Flash-Speicher oder eine andere ähnliche Festkörperspeichervorrichtung oder eine Gruppe von Vorrichtungen, einschließlich Vorrichtungen in einem Speicherbereichsnetz oder anderen Konfigurationen. Ein Computerprogrammprodukt kann konkret in einem solchen computerlesbaren Medium verkörpert sein. Das Computerprogrammprodukt kann auch Anweisungen enthalten, die dann, wenn sie ausgeführt werden, ein oder mehrere Verfahren durchführen, wie beispielsweise diejenigen, die oben beschrieben sind. Das computer- oder maschinenlesbare Medium ist eine Speichervorrichtung, wie beispielsweise der Speicher 804, die Speichervorrichtung 806 oder ein Speicher auf einem Prozessor 802.

Die Schnittstelle 808 kann eine Hochgeschwindigkeitssteuerung sein, die bandbreitenintensive Operationen für die Computervorrichtung managt, oder eine Niedergeschwindigkeitssteuerung, die weniger bandbreitenintensive Operationen managt, oder eine Kombination von solchen Steuerungen. Eine externe Schnittstelle 840 kann vorgesehen sein, um eine Nahbereichskommunikation der Vorrichtung 800 mit anderen Vorrichtungen zu ermöglichen. Bei einigen Implementierungen kann die Steuerung 808 mit der Speichervorrichtung 806 und dem Erweiterungsport 814 gekoppelt sein. Das Erweiterungsport, das verschiedene Kommunikationsports (z.B. USB, Bluetooth, Ethernet, drahtloses Ethernet) enthalten kann, kann mit einer oder mehreren Eingabe/Ausgabe-Vorrichtungen gekoppelt sein, wie beispielsweise einer Tastatur, einer Zeigevorrichtung, einem Scanner oder einer Netzwerkvorrichtung, wie beispielsweise einem Schalter oder einem Router, z.B. über einen Netzwerkadapter.

Die Computervorrichtung 800 kann auf eine Anzahl von unterschiedlichen Formen implementiert sein, wie es in der Figur gezeigt ist. Beispielsweise kann sie als ein Standardserver 830 oder mehrere Male in einer Gruppe von solchen Servern implementiert sein. Sie kann auch als Teil eines Rack-Serversystems implementiert sein. Zusätzlich kann sie in einer Computervorrichtung implementiert sein, wie beispielsweise einem Laptop-Computer 832, einem Personalcomputer 834 oder einem Tablet/Smartphone 836. Ein gesamtes System kann aus mehreren Computervorrichtungen 800 gebildet sein, die miteinander kommunizieren. Andere Konfigurationen sind möglich.

9 zeigt ein Beispiel einer generischen Computervorrichtung 900, die der Server 170 der 1 sein kann, der mit den hier beschriebenen Techniken verwendet werden kann. Die Computervorrichtung 900 soll verschiedene beispielhafte Formen von großen Datenverarbeitungsvorrichtungen darstellen, wie beispielsweise Server, Blade-Server, Datenzentren, Mainframes und andere große Computervorrichtungen. Die Computervorrichtung 900 kann ein verteiltes System mit mehreren Prozessoren sein, die möglicherweise ein Netzwerk enthalten, das an Speicherknoten angebracht ist, die miteinander durch ein oder mehrere Kommunikationsnetze miteinander verbunden sind. Die hier gezeigten Komponenten, ihre Verbindungen und Beziehungen und ihre Funktionen haben die Bedeutung, dass sie nur Beispiele sind, und haben nicht die Bedeutung, dass sie Implementierungen der Erfindungen beschränken, die in diesem Dokument beschrieben und/oder beansprucht sind.

Das verteilte Computersystem 900 kann irgendeine Anzahl von Computervorrichtungen 980 enthalten. Die Computervorrichtungen 980 können einen Server oder Rack-Server, Mainframes, etc. enthalten, die über ein lokales oder Weitverkehrsnetz kommunizieren, über bestimmte optische Verbindungen, Modems, Brücken, Router, Schalter, verdrahtete oder drahtlose Netze, etc.

Bei einigen Implementierungen kann jede Computervorrichtung mehrere Racks enthalten. Beispielsweise enthält die Computervorrichtung 980a mehrere Racks 958a958n. Jedes Rack kann einen oder mehrere Prozessoren enthalten, wie beispielsweise Prozessoren 952a952n und 962a962n. Die Prozessoren können Datenprozessoren, ein Netzwerk, das an Speichervorrichtungen angebracht ist, und andere computergesteuerte Vorrichtungen enthalten. Bei einigen Implementierungen kann ein Prozessor als ein Hauptprozessor arbeiten und die Zeitplanung und Datenverteilungsaufgaben steuern. Die Prozessoren können durch einen oder mehrere Rack-Schalter 958 miteinander verbunden sein und ein oder mehrere Racks können durch Schalter 978 verbunden sein. Die Schalter 978 können Kommunikationen zwischen mehreren verbundenen Computervorrichtungen 900 handhaben.

Jedes Rack kann einen Speicher enthalten, wie beispielsweise einen Speicher 954 und einen Speicher 964, und einen Speicher, wie beispielsweise 956 und 966. Der Speicher 956 und 966 kann einen Massenspeicher zur Verfügung stellen und kann einen flüchtigen oder nichtflüchtigen Speicher enthalten, wie beispielsweise an einem Netz angebrachte Platten, Floppydisks, Festplatten, optische Platten, Bänder, Flash-Speicher oder andere ähnliche Festkörperspeichervorrichtungen, oder eine Gruppe von Vorrichtungen, einschließlich Vorrichtungen in einem Speicherbereichsnetzwerk oder anderen Konfigurationen. Der Speicher 956 oder 966 kann zwischen mehreren Prozessoren, mehreren Racks oder mehreren Computervorrichtungen gemeinsam genutzt werden und kann ein computerlesbares Medium enthalten, das Anweisungen speichert, die durch einen oder mehrere der Prozessoren ausführbar sind. Der Speicher 954 und 964 kann z.B. flüchtige Speichereinheit oder Einheiten, eine nichtflüchtige Speichereinheit oder -einheiten und/oder andere Formen von computerlesbaren Medien enthalten, wie beispielsweise magnetische oder optische Platten, einen Flash-Speicher, einen Cache, einen Direktzugriffsspeicher (RAM), einen Nurlese-Speicher (ROM) und eine Kombination davon. Ein Speicher, wie beispielsweise der Speicher 954, kann auch zwischen den Prozessoren 952a952n gemeinsam genutzt werden. Datenstrukturen, wie beispielsweise ein Index, können beispielsweise über dem Speicher 956 und dem Speicher 954 gespeichert sein. Die Computervorrichtung 900 kann andere Komponenten enthalten, die nicht gezeigt sind, wie beispielsweise Steuerungen, Busse, Eingabe/Ausgabe-Vorrichtungen, Kommunikationsmodule, etc.

Ein gesamtes System, wie beispielsweise das System 100, kann aus mehreren Computervorrichtungen 900 gebildet sein, die miteinander kommunizieren. Beispielsweise kann die Vorrichtung 980a mit den Vorrichtungen 980b, 980c und 980d kommunizieren, und diese können gemeinsam als das System 100 bekannt sein. Als ein weiteres Beispiel kann das System 100 der 1 eine oder mehrere Computervorrichtungen 900 enthalten. Einige der Computervorrichtungen können geographisch nahe zueinander angeordnet sein und andere können geographisch entfernt angeordnet sein. Die Anordnung des Systems 900 ist nur ein Beispiel und das System kann andere Anordnungen oder Konfigurationen annehmen.

Gemäß bestimmten Aspekten der Offenbarung enthält eine mobile Vorrichtung wenigstens einen Prozessor und einen Speicher, der Anweisungen speichert, die dann, wenn sie durch den wenigstens einen Prozessor ausgeführt werden, veranlassen, dass die mobile Vorrichtung Operationen durchführt. Die Operationen enthalten ein Identifizieren von Inhalt, der durch eine mobile Anwendung ausgeführt wird, wobei der Inhalt während einer Session ausgeführt wird, was Merkmalsvektoren aus dem Inhalt erzeugt und ein Bestimmen, dass die Merkmalsvektoren nicht mit einem Klassifizierungsmodell übereinstimmen. Die Operationen enthalten auch, in Reaktion auf die Bestimmung, dass die Merkmalsvektoren nicht mit dem Klassifizierungsmodell übereinstimmen, ein Bereitstellen einer Herausforderung, die konfiguriert ist, um einen Anwender der mobilen Vorrichtung zu authentifizieren.

Dieser und andere Aspekte können eines oder mehrere der folgenden Merkmale enthalten. Beispielsweise kann die Session eine erste Session sein und basiert die Herausforderung auf einer vorherigen Session, die unterschiedlich von der ersten Session ist. Bei einer solchen Implementierung kann die vorherige Session Merkmalsvektoren enthalten, die an das Klassifizierungsmodell angepasst sind, oder Merkmalsvektoren, die unter Verwendung eines vertrauenswürdigen Standorts verifiziert sind, oder Merkmalsvektoren, die durch eine vorherige Herausforderung verifiziert sind. Als ein weiteres Beispiel kann die Herausforderung konfiguriert sein, um den Anwender aufzufordern, Information zu vervollständigen, die von einem Bildschirm fehlt, der durch die mobile Vorrichtung angezeigt wird, und zwar in einer vorherigen Session, die Merkmalsvektoren enthielt, die mit dem Klassifizierungsmodell übereinstimmt. Als ein weiteres Beispiel kann ein Bereitstellen der Herausforderung ein Extrahieren von Information von einem Bildschirm enthalten, der durch die mobile Vorrichtung angezeigt ist, in einer vorherigen Session, die Merkmalsvektoren enthielt, die mit dem Klassifizierungsmodell übereinstimmen und die eine Multiple Choice-Frage basierend auf der extrahierten Information erzeugen.

Als ein weiteres Beispiel kann der Speicher weiterhin Anweisungen speichern, die dann, wenn sie durch den wenigstens einen Prozessor ausgeführt werden, veranlassen, dass die mobile Vorrichtung eine Antwort auf die Herausforderung empfängt und die mobile Vorrichtung verriegelt, wenn die Antwort auf die Herausforderung fehlschlägt. Als ein weiteres Beispiel kann die Herausforderung eine Reihe von untergeordneten Herausforderungen enthalten. Als ein weiteres Beispiel wird das Klassifizierungsmodell durch Sessions trainiert, die bei einem vertrauenswürdigen Standort auftreten. Eine Session kann einen einzelnen Bildschirm enthalten, der auf der mobilen Vorrichtung erfasst ist, Bildschirme, die während einer Nutzung einer bestimmten Anwenderschnittstelle bei der mobilen Anwendung erfasst sind, Bildschirme, die während eines Zeitfensters erfasst sind, oder Bildschirme die während einer Verwendung der mobilen Anwendung erfasst sind.

Gemäß bestimmten Aspekten der Offenbarung kann ein Verfahren ein Bestimmen umfassen, dass eine mobile Vorrichtung bei einem vertrauenswürdigen Standort angeordnet ist, ein Erfassen von Information von einer Session, wobei die Information von Inhalt, der durch eine mobile Anwendung ausgeführt wird, die auf der mobilen Vorrichtung während der Session läuft, und ein Erzeugen von Merkmalsvektoren für die Session. Das Verfahren enthält auch ein Wiederholen des Erfassens und Bestimmens, bis Trainingskriterien erfüllt sind, und ein Authentifizieren eines Anwenders der mobilen Vorrichtung unter Verwendung des trainierten Klassifizierungsmodells.

Diese und andere Aspekte können eines oder mehrere der folgenden Merkmale enthalten. Beispielsweise können die Trainingskriterien eine minimale Menge an Sessions oder eine minimale Klassifizierungsgenauigkeit enthalten. Als ein weiteres Beispiel kann ein Authentifizieren des Anwenders, der das trainierte Klassifizierungsmodell verwendet, ein Bestimmen einer aktuellen Session basierend auf Inhalt enthalten, die durch eine mobile Anwendung ausgeführt wird, ein Erzeugen von Merkmalsvektoren für die Session und, in Antwort auf ein Bestimmen, dass die Merkmalsvektoren nicht mit dem Klassifizierungsmodell übereinstimmen, ein Bereitstellen einer Herausforderung, die konfiguriert ist, um einen Anwender der mobilen Vorrichtung zu authentifizieren. Bei einigen solchen Implementierungen können die Merkmalsvektoren nicht mit dem Klassifizierungsmodell übereinstimmen, wenn ein Vertrauenswert, der durch Bewerten der Merkmalsvektoren erzeugt ist, mit dem Klassifizierungsmodell darin fehlschlägt, eine Schwelle zu erfüllen. Als ein weiteres Beispiel kann ein Bestimmen, dass die mobile Vorrichtung bei einem vertrauenswürdigen Standort angeordnet ist, ein Zugreifen auf ein Anwenderprofil enthalten, das mit der mobilen Vorrichtung assoziiert ist, um einen vertrauenswürdigen Standort zu bestimmen, und ein Bestimmen, dass die mobile Vorrichtung aktuell bei dem vertrauenswürdigen Standort angeordnet ist. Bei einigen solchen Implementierungen kann der vertrauenswürdige Standort durch globale Positioniersystem-(GPS-)Koordinaten dargestellt sein, und die mobile Vorrichtung verwendet aktuelle GPS-Koordinaten, um zu bestimmen, ob die mobile Vorrichtung aktuell bei dem vertrauenswürdigen Standort ist, oder der vertrauenswürdige Standort wird durch einen Identifizierer eines drahtlosen Netzes dargestellt und die mobile Vorrichtung bestimmt, ob ein drahtloses Netz, mit welchem die mobile Vorrichtung verbunden ist, mit dem Identifizierer des drahtlosen Netzes übereinstimmt.

Gemäß bestimmten Aspekten der Offenbarung umfasst eine mobile Vorrichtung wenigstens einen Prozessor und einen Speicher, der Anweisungen speichert, die dann, wenn sie durch den wenigstens einen Prozessor ausgeführt werden, veranlassen, dass die mobile Vorrichtung Operationen durchführt. Die Operationen können ein Identifizieren von Inhalt enthalten, der durch eine mobile Anwendung ausgeführt wird, wobei der Inhalt während einer Session ausgeführt wird, und ein Erzeugen von Merkmalsvektoren aus dem Inhalt. Die Operationen können auch ein Anwenden eines Klassifizierungsmodells auf die Merkmalsvektoren enthalten, ein Bestimmen, ob die Merkmalsvektoren mit einem ersten Anwenderprofil übereinstimmen, basierend auf einer Anwendung des Klassifizierungsmodells, wobei das erste Anwenderprofil unterschiedlich von einem zweiten Anwenderprofil ist, wobei die mobile Vorrichtung aktuell mit dem zweiten Anwenderprofil assoziiert ist, und ein Initiieren eines Profilschalters in Reaktion auf ein Bestimmen, dass die Merkmalsvektoren mit dem ersten Anwenderprofil übereinstimmen.

Diese und andere Aspekte können eines oder mehrere der folgenden Merkmale enthalten. Beispielsweise können die Operationen auch ein Bestimmen enthalten, dass die Merkmalsvektoren mit keinen Anwenderprofilen übereinstimmen, und ein Bereitstellen einer Herausforderung, die konfiguriert ist, um einen Anwender der mobilen Vorrichtung zu authentifizieren. Als ein weiteres Beispiel kann die Herausforderung auf einem zweiten Inhalt basieren, der während einer vorherigen Session ausgeführt ist, die mit dem zweiten Anwenderprofil assoziiert ist, wobei der zweite Inhalt mit Merkmalsvektoren assoziiert ist, die mit dem zweiten Anwenderprofil konsistent sind, gemäß dem Klassifizierungsmodell. Als ein weiteres Beispiel basiert die Herausforderung auf einem zweiten Inhalt, der während einer vorherigen Session ausgeführt wird, die mit dem ersten Anwenderprofil assoziiert ist, wenn das Klassifizierungsmodell bestimmt, dass das erste Anwenderprofil einen höheren Vertrauenswert als das zweite Anwenderprofil in Bezug auf die Merkmalsvektoren hat. Als ein weiteres Beispiel tritt ein Bestimmen, ob die Merkmalsvektoren mit dem ersten Anwenderprofil übereinstimmen, nach einem Bestimmen auf, dass die Merkmalsvektoren darin fehlschlagen, mit dem zweiten Anwenderprofil übereinzustimmen.

Als ein weiteres Beispiel können die Operationen auch ein Trainieren des Klassifizierungsmodells durch Bestimmen enthalten, dass eine mobile Vorrichtung in einer vertrauenswürdigen Umgebung angeordnet ist, die mit dem zweiten Anwenderprofil assoziiert ist, ein Erkennen von Inhalt, der durch eine mobile Anwendung ausgeführt ist, die auf der mobilen Vorrichtung läuft, wobei der Inhalt mit einer Session assoziiert ist, ein Erzeugen von Merkmalsvektoren für den Inhalt, ein Wiederholen des Erkennens und Erzeugens für wenigstens eine minimale Menge an Sessions, und ein Trainieren des Klassifizierungsmodells unter Verwendung der Merkmalsvektoren als positive Beispiele, wobei die positiven Beispiele mit dem zweiten Anwenderprofil assoziiert sind. Bei einigen solchen Implementierungen werden positive Beispiele, die mit dem ersten Anwenderprofil assoziiert sind, als negative Beispiele für die zweiten Anwenderprofile beim Trainieren des Klassifizierungsmodells verwendet. Die Operationen können auch ein Trainieren des Klassifizierungsmodells enthalten, bis eine minimale Klassifizierungsgenauigkeit erreicht ist.

Verschiedene Implementierungen können eine Implementierung in einem oder mehreren Computerprogrammen enthalten, die auf einem programmierbaren System ausführbar und/oder interpretierbar sind, das wenigstens einen programmierbaren Prozessor enthält, der speziell oder allgemein sein kann, gekoppelt, um Daten und Anweisungen von einem Speichersystem zu empfangen und Daten und Anweisungen zu diesem zu senden, mit wenigstens einer Eingabevorrichtung und wenigstens einer Ausgabevorrichtung.

Diese Computerprogramme (die auch als Programme, Software, Softwareanwendungen oder Code bekannt sind) enthalten Maschinenanweisungen für einen programmierbaren Prozessor und können in einer verfahrens- und/oder objektorientierten Programmiersprache hoher Ebene und/oder in einer Assembly-/Maschinen-Sprache implementiert sein. Wie sie hierin verwendet sind, beziehen sich die Ausdrücke "maschinenlesbares Medium“, "computerlesbares Medium“ auf irgendein nicht flüchtiges Computerprogrammprodukt, ein Gerät und/oder eine Vorrichtung (z.B. magnetische Platten, optische Platten, einen Speicher (einschließlich eines Lesezugriffsspeichers), programmierbare Logikvorrichtungen (PLDs), die verwendet werden, um Maschinenanweisungen und/oder Daten zu einem programmierbaren Prozessor zu liefern.

Die hier beschriebenen Systeme und Techniken können in einem Computersystem implementiert sein, das eine Backend-Komponente (z.B. als einen Datenserver) enthält oder das eine Middleware-Komponente (z.B. einen Anwendungsserver) enthält oder das eine Frontend-Komponente (z.B. einen Client-Computer mit einer graphischen Anwenderschnittstelle oder einem Web-Browser, über welchen ein Anwender mit einer Implementierung der hier beschriebenen Systeme und Techniken interagieren kann) enthält, oder irgendeine Kombination von solchen Backend-, Middleware- oder Frontend-Komponenten. Die Komponenten des Systems können durch irgendeine Form oder ein Medium von digitaler Datenkommunikation (z.B. ein Kommunikationsnetzwerk) miteinander verbunden sein. Beispiele von Kommunikationsnetzwerken enthalten ein lokales Netz ("LAN"), ein Weitverkehrsnetz ("WLAN") und das Internet.

Das Computersystem kann Clients und Server enthalten. Ein Client und ein Server sind allgemein entfernt voneinander und interagieren typischerweise über ein Computernetzwerk. Die Beziehung von Client und Server entsteht mittels Computerprogrammen, die auf den jeweiligen Computern laufen und die eine Client-Server-Beziehung zueinander haben.

Eine Anzahl von Implementierungen ist beschrieben worden. Nichtsdestoweniger können verschiedene Modifikationen durchgeführt werden, ohne von dem Sinngehalt und Schutzumfang der Erfindung abzuweichen. Zusätzlich erfordern die in den Figuren gezeigten logischen Abläufe nicht die gezeigte bestimmte Reihenfolge oder sequentielle Reihenfolge, um erwünschte Ergebnisse zu erreichen. Zusätzlich können andere Schritte vorgesehen sein oder können Schritte von den beschriebenen Abläufen eliminiert sein, und andere Komponenten können hinzugefügt zu oder entfernt sein von den beschriebenen Systemen. Demgemäß sind andere Implementierungen innerhalb des Schutzumfangs der folgenden Ansprüche.