Abstract:
A method and process for users to have secure access to multiple mobile, embedded or web based applications, is provided whereby each requires different authentication, and access to such applications is automated through the use of a single authenticating and authorizing software; the software thereby securely managing the individual authorizations and, in so doing, the authentication required by any individual application independent of the device used. To protect against any intrusion and manipulation while assuring that only legitimate user(s) that are properly authenticated have access to their applications the method secures the secret information required to access these applications and minimizes exposure to any sensitive information. Moreover, any secrets that protect information are themselves secured and made strong and the means of access is simplified and automated as much as possible while safeguarding security and confidentiality.

Description:
FIELD 
     The present invention generally relates to the use of systems and the methods and processes for securely accessing mobile, embedded or web based applications as well as securely communicating data related thereto. More particularly, it relates to a method and process for users to have secure access to multiple mobile, embedded or web based applications, each requiring different authentication, whereby such access is automated through the use of a single authenticating and authorizing software. This authenticating and authorizing software securely manages any individual authorization and, in so doing, the authentication required by and for any application. 
     BACKGROUND 
     Many mobile, embedded or cloud based applications require, at the least, a user name password to be accessed on one or more devices. Users may have more than one account per application. For a legitimate user to access such applications he or she, by way of example, typically either adopts the same user name and password for all applications and accounts or stores the various user names and associated passwords chosen for each case on a list. More often than not, for simplicity of entering this information, most legitimate users do not choose either strong user names or, more importantly, strong passwords or other identifying information. Both of these approaches are prone to illegitimate parties, who are not authorized, to access sites and information as well as potentially manipulating data belonging to legitimate users. 
     To protect against such intrusion and manipulation whilst assuring that only legitimate user(s) that are properly authenticated have access their applications requires securing any secret information required to access these applications as well as minimizing exposure to any exposed sensitive information. Moreover, any secrets that protect information must themselves be strong and access needs to be as simple and automated as possible in the course of safeguarding and assuring confidentiality. 
     US 20130145447 A1 entitled “Cloud-based data backup and sync with secure local storage of access keys” discloses methods and systems provided for secure online data access. In one embodiment, three levels of security are provided where user master passwords are not required at a server. A user device may register with a storage service and receive a user device key that is stored on the device and at the service. The user device key may be used to authenticate the user device with the storage service. As data in the storage service is encrypted with a master password, the data may be protected from disclosure. As a user master key or derivative thereof is not used in authentication, the data may be protected from a disclosure or breach of the authentication credentials. Encryption and decryption may thus be performed on the user device with a user master key that may not be disclosed externally from the user device. 
     US 20120253985 A1 entitled “Method and system for extraction and accumulation of shopping data” discloses a method for shopping cart validation automation, comprising analyzing a webpage to determine if it contains a shopping cart structure and if the user has expressed desire to initiate a checkout procedure, extracting shopping cart and other price elements from pages of a checkout tunnel, accumulating such information for the shopping transaction, validating the shopping transaction using the accumulated information, and allowing the user to confirm or cancel the transaction upon validation. Alternatively, the method may message the use that the transaction is not reconcilable where the shopping cart could not be validated. Also, the system can advantageously build a history database storing transactional details, including screen shots of pages of the checkout tunnel. 
     US 20120116921 A1 entitled “Method and computer system for purchase on the web” discloses a method for online purchase automation, comprising identifying when the user has selected to navigate to or receive a web page related to a purchasing action, identifying when content of the web page is received; analyzing the web page concurrent with the purchase action, without requiring detailed structural information about the web page in advance, and determining whether the web page is related to a purchasing action, by parsing the web page or related data elements. If the web page is related to a purchasing action, the next steps are determining the user interface elements of the web page or related data elements, retrieving site-independent customer data for the purchase based on the analyzing of the user interface elements, simulating user input using the site-independent customer data to populate at least portions of the web page, and displaying to the user the populated purchasing page for user action. 
     US 20120117569 A1 entitled “Task automation for unformatted tasks determined by user interface presentation formats” discloses methods and systems provided for web page task automation. In one embodiment, the method comprises of the following steps: i) decomposing the high level task into a sequence of anthropomimetic subroutines, ii) decomposing each routine into a series of anthropomimetic actions or steps, for example stored as a unit shares of work, iii) generating computer code to interact with the content of the webpage, for each unit share of work, iv) executing the generated computer code by a web interface module, and transmitting the results of the execution of computer code, steps iii) and iv) being repeated until all steps of a subroutine have been executed, until the sequence of subroutines for a logical task have been achieved. 
     US 20120117455 A1 entitled “Anthropomimetic analysis engine for analyzing online forms to determine user view-based web page semantics” discloses an analysis engine that executes under client control to review web pages in real-time and control interaction with the web pages of a website to assist the user of the client in providing selections, providing information and otherwise interacting with the website. In analyzing web pages, the engine uses rule-based logic and considers web pages from an anthropomimetic view, i.e., considers the content, forms and interaction elements as would be perceived and dealt with by a human user, as opposed to by merely considering the web pages in their native form, such as HTML formatted files. 
     Therefore, there is need for a safe future-proof method for ever evolving multi-application and multi-account access on multiple devices by way of unsecured public networks. 
     This background information is provided to reveal information believed by the applicant to be of possible relevance to the present invention. No admission is necessarily intended, nor should be construed, that any of the preceding information constitutes prior art against the present invention. 
     BRIEF SUMMARY 
     The present invention provides, in at least one embodiment, a method and process for users to have secure access to multiple mobile, embedded or web based applications, whereby each requires different authentication, and access to such applications is automated through the use of a single authenticating and authorizing software; the software thereby securely managing the individual authorizations and, in so doing, the authentication required by any individual application on any device. In at least one embodiment, the present invention protects against any intrusion and manipulation whilst assuring that only legitimate user(s) that are properly authenticated have access to their applications. The method secures the secret information required to access these applications and minimizes exposure to any user&#39;s sensitive information. Moreover, any secrets that themselves protect information are made strong and the means of access is simplified and automated as much as possible all the while safeguarding the security and confidentiality of all data 
     In at least one embodiment, the present invention provides a method of providing secure authorized access to any third party application comprising the enabling of accessibility function; detecting of an accessibility function event with an accessibility function, activating an input method, establishing communication between the input method and the third party application, retrieving input field characteristics of the third party application with the input method, securely storing the input field characteristics, aggregating the input field characteristics to generate a unique footprint corresponding to the third party application, securely storing the unique footprint so obtained and, apart from secured cryptokeys, deleting all data not securely stored. 
    
    
     
       DESCRIPTION OF THE DRAWINGS 
       The features and advantages of the invention will become more readily apparent from the following description, reference here is being made to the accompanying drawings in which: 
         FIG. 1  is a flow diagram illustrating the process by which Input Method is installed onto the device and configured; 
         FIG. 2  is a flow diagram illustrating the process by which information is gathered from the Third Party Application and utilized to inform subsequent processes; 
         FIG. 3  is a flow diagram illustrating the process by which users are automatically logged onto a Third Party Application when the necessary and sufficient information is available for input; 
         FIG. 4  is a flow diagram illustrating the process by which the user is prompted to choose between multiple accounts when more than one account may be used to log onto the Third Party Application; and 
         FIG. 5  is a flow diagram illustrating the process by which necessary information is obtained for future use of the Input Method when insufficient information is available to log users onto the Third Party Application. 
     
    
    
     DETAILED DESCRIPTION OF THE EMBODIMENTS 
     In at least one embodiment, there is provided a method for securely logging onto multiple applications whilst minimizing exposure of the secret information necessary to complete such logon. 
     The following definitions will be used throughout the following specification: 
     (1) DEFINITIONS 
     Accessibility Function Event: An accessibility function event is an event which is fired by an individual View which populates the event with data for its state and requests from its parent the instructions to send the event to interested parties. Examples of Accessibility Function Events include, but are not limited to, announcements, gesture detection end, gesture detection start, notification state changed, touch exploration gesture end, touch exploration gesture start, touch interaction end, touch interaction start, view accessibility focused, view accessibility focus cleared, view clicked, view focused, view hover enter, view hover exit, view long clicked, view scrolled, view selected, view text changed, view text selection changed, view text traversed at movement granularity, window content changed and window state changed, among other Accessibility Function Events that will be readily understood by the skilled person. 
     Accessibility Function: An Accessibility Function runs in the background and receives call-backs by the system when accessibility function events are fired. Such accessibility function events denote some state transition in the user interface, for example, the focus has changed, a button has been clicked, etc. Such an Accessability Function can optionally request the capability for querying the content of the active window. As an example, in Android™ devices the Accessibility Function is called an Accessibility Service, however other arrangements in other operating systems are also contemplated. 
     API: Application programmer&#39;s interface. 
     Credentials: Information which is required to authorize access to a Third Party Application&#39;s functions and features. Information such as, but not limited to, usernames, passwords, email address(es), received email data, biometrics, tags, memos, credit cards, identifying documents, various signatures, among various other credentials that will be readily understood by the skilled person, that help users distinguish between different sets of Credentials, amongst others. 
     Datastore: The Datastore is a service having a repository, either on board the device or at a remotely accessible location, where Input Method can save encrypted data that is secured and un-encrypted data which is short lived or which requires no protection, such as Credentials, usage statistics or any other information needed to successfully complete user input sessions. In at least one embodiment a datastore is a remotely located secure server. 
     Encryption Key: A string of characters used as a key to encrypt a Secret. 
     Encryption symmetric key: A random-character string used with a symmetric encryption algorithm to encrypt data. 
     { . . . }: The set containing the elements . . . . 
     Footprint: A Footprint is a set of information of all the known information for a given user interaction session; an active instance. It can be formed via the Accessibility Function. This includes, and is not limited to, a history of all user interactions for the current input session, the list of all known Input Fields, all their Input Field characteristics and any related data, among other arrangements that will be readily understood by the skilled person. A Footprint which is created lets the Input Method precisely determine in what context the users are currently inputting data; as such each footprint is unique and has a unique ID. 
     Input Field: An Input Field is a user-interface element in a Third Party Application that users interact with to indicate choices made as well as entering information into the Third Party Application. These Input Fields transfer the actual capture of information to Input Method. Examples of Input Fields include, but are not limited to: text fields, numeric or any alphanumeric fields, buttons, check boxes, radio buttons, switches, toggle buttons, biometric/voice/gesture or card activated sensor/transducer entry fields among other types of input fields that will be readily understood by the skilled person. 
     Input Field characteristics: The Input Field characteristics are additional information associated with Input Fields. This information can be made available to Input Method by the Third Party Application. It can also indicate to the Input Method how to format input information string or text, or make specific requests as to how to behave based on any user information, give hints as to the nature of the input, among various other types of input field characteristics that will be readily understood by the skilled person. 
     Input Method: A software program that can be responsible for requesting information from the user, securely storing said information and passing along the information to a Third Party Application. It is also contemplated that this software program can call a Third Party Application and record the Third Party Application Input Fields and their required input formats. This includes, but is not limited to: software touch-enabled keyboards, speech to text interpretation, gesture based alpha-numeric keyboards, numeric keyboards, written text interpretation, any biometric to information string interpretation, and card or other media input to information string interpretation, the selection of values in a list, among other types of input methods that will be readily understood by the skilled person. 
     Package Signature: A Java™ specific, Android™ specific, iOS™ specific or any other device specific unique signature that is used to identify any Third Party Application. 
     Session: A semi-permanent interactive information exchange between two or more interactive devices or between a device and a user. 
     Third Party Application: Any application or software installed on the user&#39;s device or accessible by the device via the web that could require Input Method to be initiated by, or actively interact with, the user. 
     View: A View represents the basic building block for User Interface components. A View can, if on screen, occupy a rectangular area located anywhere on the screen and can be responsible for drawing and event handling, among other representations and aspects that will be readily understood by the skilled person. 
     (2) EXAMPLE 
     In at least one embodiment, the present invention provides a novel multi-application and multi-account access on mobile or other devices by way of unsecured public networks, as will be described hereinafter. Although the invention is described in terms of specific illustrative embodiment(s), it is to be understood that the embodiment(s) described herein are by way of example only and that the scope of the invention is not intended to be limited thereby. 
     Referring to  FIG. 1 , which is a flow diagram illustrating at least one embodiment of the process by which a user [ 1 ] installs onto their device [ 2 ] a custom Input Method [ 3 ] and updates as necessary from time-to-time. This Input Method would typically be included in a standard application package, but could also be a distinct application package, among other arrangements that are readily contemplated by the skilled person. The custom Input Method is obtained from the device or the device&#39;s Operating System originator as modified from time to time for consistency with the claims herein. Upon installation, both the Input Method and Accessibility Function software is enabled [ 4 ], the device and/or user account is, manually or automatically, linked [ 5 ] with a Datastore [ 6 ] that will be used to consult already existing Credentials for this user if applicable, or to create new Credentials later in the process. Future user interactions with third Party Apps on or though the device will then [ 7 ] launch this Input Method. 
     Referring to  FIG. 2 , which is a flow diagram illustrating at least one embodiment of the process by which the invocation of the Input Method [ 8 ] can be triggered by various user interactions [ 1 ], such as but not limited to tapping on an Input Field, or selecting an Input Method from another system. Here the application asks for an Input Method from the OS of the device [ 2 ]. Once the OS on the device finds an Input Method the Input Method can pass information to the Third Party Application [ 9 ,  10 ]. 
     This is when the device records the signature of the currently executing Third Party Application, that is, the device finds and stores all the Third Party Applications&#39; Input Fields via Accessibility Function and saves their format and other characteristics for each Third Party Application loaded onto or available through the device that requires Credential(s) [ 11 ]. If no response is obtained by the Input Method within a certain time interval, Δt, then the recording process can be terminated [ 12 ]. The time interval Δt is chosen to minimize intruder capture of sensitive information. If the time interval has not run out, the Input Method can then inspect the Third Party Applications Input Field characteristics, using all introspection methods made available to it by the hosting system. The Input Field characteristics are then aggregated and combined with the signature of the application obtained in [ 11 ] to, via Accessibility Function, to create a unique Footprint of the Third Party Application&#39;s current context such as but not limited to which output path the user is currently using in the Third Party Application as well as the current state of the application [ 13 ]. It should be noted that there should be at least one footprint per active instance of each Third Party Application [ 13 ]. All secret information such as a Footprint or Credential(s) is always retained and sent/received as encrypted information [ 14 ] and the source information is preferably deleted from all memory and storage [ 15 ]. All encrypted information, when needed as source data, is decrypted on the fly, used as necessary, and then deleted per above. 
     The created Footprint will uniquely identify the state of the Third Party Application when the Input Method was invoked. Using the Footprint as an identifier in the Credentials Datastore [ 6 ] can be used to store and retrieve, within a given time period Δt [ 17 ] and when needed, the Credentials specific to a given context in a Third Party Application [ 16 ]. Again all secret information such as a Footprint or Credential(s) is always retained and sent/received as encrypted information and the source information is deleted from all memory and storage. All encrypted information, when needed as source data, is decrypted on the fly used and then deleted per above. There are two cases here, either the Credential(s) are found within the time period (in this case see  FIGS. 3 and 4  for further processes) [ 18 ] or the Credential(s) are not found (in this case see  FIG. 5  for further processes) [ 19 ]. 
     Referring to  FIG. 3  which is a flow diagram illustrating at least one embodiment of the process, when a single set of Credentials was found to be associated to a specific Footprint, by which the Input Method [ 8 ] automatically fills out the Third Party Application&#39;s Input Fields [ 20 ]. The Footprint holds information about all the Input Field entries that allows the Input Method software to target the appropriate field (for example but not limited to personal identifies, credit card information, username or password, among other readily appreciated Credentials) and discriminate between what goes where thus insuring that the Credentials are properly entered. 
     Once properly entered the Input Field submission is triggered on the Third Party Application. [ 21 ]. If the submission is timed out (i.e. Δt&gt;Δt max ) without a Confirmation of submission then a new submission request is made for up to N max  times [ 22 ]. If a Confirmation is received then one continues to  FIG. 5  [ 23 ]. 
     Referring to  FIG. 4  which is a flow diagram illustrating at least one embodiment of the process which illustrates the process when multiple appropriate sets of Credentials are found in the Datastore [ 6 ]. Users are prompted to select between the various Credentials, and upon selection automatic login is triggered as follows: first trigger the submission input field (based on multiple potential accounts) on the Third Party Application by making the multiple accounts easily ‘viewable’ with respect to input field related to the Input Method. Also, assure that such ‘visibility’ for a fast input decision by the user coincides with minimizing user error on input (e.g. use of colors, prompts and feedback in real-time whilst input is in progress) [ 24 ]. Second, upon completion of user input, automatically enter in the proper Input Field(s) data on each Third Party Application using Credential(s) (see [ 20 ]) [ 25 ] and, thirdly, trigger the submission input field on the 3rd party application (see [ 21 ]-[ 23 ]) [ 26 ]. 
     Referring to  FIG. 5  which is a flow diagram illustrating at least one embodiment of the process which shows how to store new sets of previously unknown Credentials into the Datastore [ 6 ], associated with an accurate Footprint that was previously generated (see for example  FIG. 2 ). Here the user [ 1 ] inputs a set of new credentials [ 27 ] whereby the system (1) verifies the validity of the new Credentials with respect to their, for example, format and other predetermined criteria and then (2) associates the new credentials with the current Footprint (i.e. the current Footprint was already selected once, at least, one Third Party Application is active) and this within a time period Δt=Δt max  [ 28 ]. Then the user submits new credentials (again within Δt=Δt max ) whereby the selection ‘hot area’ is invoked upon user entry of valid Credentials into the Input Field via Input Method [ 29 ]. These Credentials and, as may be the case, the updated Footprint are encrypted and saved onto Datastore [ 30 ]. Upon confirmation thereof the system active on the device deletes all source secrets in device&#39;s [ 2 ] memory or storage [ 31 ] and thereafter submits the Credentials to the Third Party Application.