This disclosure relates to the recommendation of passcodes and, more particularly, to the recommendation of passcodes for an electronic device using information local to the electronic device.
Electronic devices (e.g., cellular telephones) may be provided with various valuable resources, such as a calendar application, a payment application, and an entire operating system application. Often times, access to one or more of these resources may be protected by a passcode that must be entered by a user for authenticating him or herself before such access is granted. However, users often use passcodes that are weak or difficult to remember.
This document describes systems, methods, and computer-readable media for recommending passcodes for an electronic device using information local to the electronic device.
As an example, a method is provided for managing security of an electronic device that includes an output component, a memory component storing a plurality of information elements of at least one data source, and a processor communicatively coupled to each one of the output component and the memory component. The method may include using the processor for selecting a passcode, selecting a learning technique, determining a framework for the selected passcode using the selected learning technique, obtaining at least a subset of the plurality of information elements, defining a mnemonic for the selected passcode by satisfying the determined framework using at least one information element from the obtained subset, and presenting a passcode recommendation including a representation of the defined mnemonic to a user of the electronic device via the output component.
As another example, a method is provided for managing security of an electronic device that includes a processor and a memory component storing a plurality of media items operative to be played back by the processor. The method may include using the processor for determining a framework for a passcode using a learning technique and defining a mnemonic for the passcode by satisfying the framework using at least a portion of text metadata associated with at least one media item of the plurality of media items.
As yet another example, a method is provided for managing security of an electronic device that includes a processor and a memory component storing a plurality of information elements of at least one data source. The method may include using the processor for defining a mnemonic using at least one information element from the plurality of information elements, selecting a learning technique, and determining a passcode based on the defined mnemonic and the selected learning technique.
This Summary is provided only to summarize some example embodiments, so as to provide a basic understanding of some aspects of the subject matter described in this document. Accordingly, it will be appreciated that the features described in this Summary are only examples and should not be construed to narrow the scope or spirit of the subject matter described herein in any way. Unless otherwise stated, features described in the context of one example may be combined or used with features described in the context of one or more other examples. Other features, aspects, and advantages of the subject matter described herein will become apparent from the following Detailed Description, Figures, and Claims.
The discussion below makes reference to the following drawings, in which like reference characters may refer to like parts throughout, and in which:
Systems, methods, and computer-readable media may be provided for recommending passcodes for an electronic device using information local to the electronic device (e.g., when a user has explicitly opted-in to such a service), where such local information may be unique to a particular device and/or to a particular device user, such as unique data from one or more device applications, including, but not limited to, a calendar application, a media library application, a contacts application, a shortcuts or bookmarks application (e.g., a browsing history or saved bookmarks to certain online sites or the like), and/or the like. Various processes may be carried out for selecting an appropriate passcode and defining one or more mnemonics for that passcode using such local information. This may facilitate user memorization of a recommended strong (e.g., non-user generated) passcode that may be triggered based on one or more mnemonics of the recommendation that may be generated using suitable learning techniques and local information that may be uniquely identifiable or otherwise meaningful to the user to aid in the user's memorization process. The processes for generating such mnemonics for passcode recommendations may be carried out entirely locally on the electronic device, not only for protecting the privacy of the user's on-device information but also for protecting the passcodes and any associated hint information (e.g., mnemonics, learning techniques, etc.).
As shown in
Memory 104 may include one or more storage mediums, including for example, a hard-drive, flash memory, permanent memory such as read-only memory (“ROM”), semi-permanent memory such as random access memory (“RAM”), any other suitable type of storage component, or any combination thereof Memory 104 may include cache memory, which may be one or more different types of memory used for temporarily storing data for electronic device applications. Memory 104 may be fixedly embedded within electronic device 100 or may be incorporated onto one or more suitable types of cards that may be repeatedly inserted into and removed from electronic device 100 (e.g., a subscriber identity module (“SIM”) card or secure digital (“SD”) memory card). Memory 104 may store media data (e.g., music and image files), software (e.g., for implementing passcode recommendation functions on device 100 and/or storing passcodes for user authentication), firmware, preference information (e.g., media playback preferences), lifestyle information (e.g., food preferences), health or exercise information (e.g., information obtained by exercise monitoring equipment), wallet or transaction information (e.g., information such as credit card information), wireless connection information (e.g., information that may enable device 100 to establish a wireless connection), subscription information (e.g., information that keeps track of podcasts or television shows or other media a user subscribes to), media information (e.g., media item names, playback counts, playlists, various media metadata, etc.), contact information (e.g., names, telephone numbers, e-mail addresses, mailing addresses, birthdays, etc.), calendar information (e.g., event type and location and time information), any other suitable data, or any combination thereof.
Communications component 106 may be provided to allow device 100 to communicate with one or more other electronic devices or servers using any suitable communications protocol. For example, communications component 106 may support Wi-Fi (e.g., an 802.11 protocol), ZigBee (e.g., an 802.15.4 protocol), WiDi™, Ethernet, Bluetooth™, Bluetooth™ Low Energy (“BLE”), high frequency systems (e.g., 900 MHz, 2.4 GHz, and 5.6 GHz communication systems), infrared, transmission control protocol/internet protocol (“TCP/IP”) (e.g., any of the protocols used in each of the TCP/IP layers), Stream Control Transmission Protocol (“SCTP”), Dynamic Host Configuration Protocol (“DHCP”), hypertext transfer protocol (“HTTP”), BitTorrent™, file transfer protocol (“FTP”), real-time transport protocol (“RTP”), real-time streaming protocol (“RTSP”), real-time control protocol (“RTCP”), Remote Audio Output Protocol (“RAOP”), Real Data Transport Protocol™ (“RDTP”), User Datagram Protocol (“UDP”), secure shell protocol (“SSH”), wireless distribution system (“WDS”) bridging, any communications protocol that may be used by wireless and cellular telephones and personal e-mail devices (e.g., Global System for Mobile Communications (“GSM”), GSM plus Enhanced Data rates for GSM Evolution (“EDGE”), Code Division Multiple Access (“CDMA”), Orthogonal Frequency-Division Multiple Access (“OFDMA”), high speed packet access (“HSPA”), multi-band, etc.), any communications protocol that may be used by a low power Wireless Personal Area Network (“6LoWPAN”) module, any suitable cellular communications protocol (e.g., broadband cellular network technologies (e.g., 3G, 4G, 5G, etc.)), any other communications protocol, or any combination thereof. Communications component 106 may also include or be electrically coupled to any suitable transceiver circuitry (e.g., via bus 114) that can enable device 100 to be communicatively coupled to another device (e.g., a host computer or an accessory device or remote server or any other suitable remote device) and communicate with that other device wirelessly, or via a wired connection (e.g., using a connector port). Communications component 106 may be configured to determine a geographical position of electronic device 100. For example, communications component 106 may utilize the global positioning system (“GPS”) or a regional or site-wide positioning system that may use cell tower positioning technology or Wi-Fi technology.
Power supply 108 can include any suitable circuitry for receiving and/or generating power, and for providing such power to one or more of the other components of electronic device 100. For example, power supply 108 can be coupled to a power grid (e.g., when device 100 is not acting as a portable device or when a battery of the device is being charged at an electrical outlet with power generated by an electrical power plant). As another example, power supply 108 can be configured to generate power from a natural source (e.g., solar power using solar cells). As another example, power supply 108 can include one or more batteries for providing power (e.g., when device 100 is acting as a portable device).
One or more input components 110 may be provided to permit a device user or device environment to interact or interface with device 100. For example, input component 110 can take a variety of forms, including, but not limited to, a touch pad, dial, click wheel, scroll wheel, touch screen, one or more buttons (e.g., a keyboard), mouse, joy stick, track ball, microphone, camera, scanner (e.g., a bar code scanner or any other suitable scanner that may obtain product identifying information from a code, such as a bar code, a QR code, or the like), proximity sensor, light detector, motion sensor, biometric sensor (e.g., a fingerprint reader or other feature recognition sensor, which may operate in conjunction with a feature-processing application that may be accessible to electronic device 100 for authenticating a user), input ports or connectors, and combinations thereof. Each input component 110 can be configured to provide one or more dedicated control functions for making selections or issuing commands associated with operating device 100.
Electronic device 100 may also include one or more output components 112 that may present information (e.g., graphical, audible, and/or tactile information) to a user of device 100. For example, output component 112 of electronic device 100 may take various forms, including, but not limited to, audio speakers, headphones, audio line-outs, visual displays, antennas, infrared ports, rumblers, vibrators, any other suitable haptic elements, or combinations thereof.
It should be noted that one or more input components and one or more output components may sometimes be referred to collectively herein as an input/output (“I/O”) component or I/O interface (e.g., input component 110 and output component 112 as I/O component or I/O interface). For example, input component 110 and output component 112 may sometimes be a single I/O component 111, such as a touch screen, that may receive input information through a user's touch of a display screen and that may also provide visual information to a user via that same display screen.
Processor 102 of electronic device 100 may include any processing circuitry that may be operative to control the operations and performance of one or more components of electronic device 100. For example, processor 102 may receive input signals from input component 110 and/or drive output signals through output component 112. As shown in
Electronic device 100 may also be provided with a housing 101 that may at least partially enclose one or more of the components of device 100 for protection from debris and other degrading forces external to device 100. In some embodiments, one or more of the components may be provided within its own housing (e.g., input component 110 may be an independent keyboard or mouse within its own housing that may wirelessly or through a wire communicate with processor 102, which may be provided within its own housing).
As shown in
An output component 112a may be a display that can be used to display a visual or graphic user interface (“GUI”) 180, which may allow a user to interact with electronic device 100. GUI 180 may include various layers, windows, screens, templates, elements, menus, and/or other components of a currently running application (e.g., application 103) that may be displayed in all or some of the areas of display output component 112a. One or more of user input components 110a-110i may be used to navigate through GUI 180 (e.g., from GUI screen 190 of
Icons 182 may represent various layers, windows, screens, templates, elements, and/or other components that may be displayed in some or all of the areas of display component 112a upon selection by the user. Furthermore, selection of a specific icon 182 may lead to a hierarchical navigation process. For example, selection of a specific icon 182 may lead to a new screen of GUI 180 that may include one or more additional icons or other GUI elements of the same application or of a new application associated with that icon 182. Textual indicators 181 may be displayed on or near each icon 182 to facilitate user interpretation of each graphical element icon 182. It is to be appreciated that GUI 180 may include various components arranged in hierarchical and/or non-hierarchical structures. When a specific icon 182 is selected, device 100 may be configured to open a new application associated with that icon 182 and display a corresponding screen of GUI 180 associated with that application. For example, when the specific icon 182 labeled with a “Music” textual indicator 181 is selected, device 100 may launch or otherwise access a specific music application (e.g., application 103) and may display screens of a specific user interface that may include one or more tools or features for interacting with such a music application (see, e.g.,
Electronic device 100 also may include various other I/O components 111 that may allow for communication between device 100 and other devices. I/O component 111b may be a connection port that may be configured for transmitting and receiving data files, such as media files or customer order files, from a remote data source and/or power from an external power source. For example, I/O component 111b may be a proprietary port, such as a Lightning™ connector or a 30-pin dock connector from Apple Inc. of Cupertino, Calif. I/O component 111c may be a connection slot for receiving a SIM card or any other type of removable component. Electronic device 100 may also include at least one audio input component 110g, such as a microphone, and at least one audio output component 112b, such as an audio speaker.
Electronic device 100 may also include at least one tactile or haptic output component 112c (e.g., a rumbler or any other suitable subsystem operative to provide haptic or tactile feedback to a user), a camera and/or scanner input component 110h (e.g., a video or still camera, and/or a bar code scanner or any other suitable scanner that may obtain product identifying information from a code, such as a bar code, a QR code, or the like), and a biometric input component 110i (e.g., a fingerprint reader or other feature recognition sensor, which may operate in conjunction with a feature-processing application that may be accessible to electronic device 100 for authenticating a user). At least a portion of biometric input component 110i may be incorporated under or otherwise combined with input component 110a or any other suitable I/O component of device 100. For example, biometric input component 110i may be a fingerprint reader that may be configured to scan the fingerprint of a user's finger as the user interacts with mechanical input component 110a by pressing input component 110a with that finger. As another example, biometric input component 110i may be a fingerprint reader that may be combined with touch input component 110f of touch screen I/O component 111a, such that biometric input component 110i may be configured to scan the fingerprint of a user's finger as the user interacts with touch screen input component 110f by pressing or sliding along touch screen input component 110f with that finger. Another example of a biometric input component may be any component that facilitates facial recognition.
Process 300 may begin at operation 302, where passcode management module (PMM) 301 may determine that a new passcode is to be set for protecting a resource. Operation 302 may occur in response to any suitable event taking place, including, but not limited to, the complete or near expiration of a clock previously set to limit the duration of a previously set passcode for the resource, the complete or near depletion of a counter previously set to limit the amount of times that a passcode may be utilized for the resource, any event that may be determined to be suspicious enough to warrant a passcode reset (e.g., too many incorrect passcode entries), a user request to set a new passcode for the resource, and an initialization of a resource to be protected (e.g., the first time the device's operating system is being used by a new user). Any suitable resource may be protected by the passcode being set by process 300, including, but not limited to, an entire operating system of device 100 (e.g., entry of a passcode may be required in order for a user to gain access to the use of device 100 in any way), a particular higher level application of device 100 (e.g., entry of a passcode to access a particular wallet application of device 100), a particular functionality of device 100 (e.g., entry of a passcode to access the ability to call a particular person after a particular time of day), and/or the like. The new passcode determined to be needed at operation 302 may be of any suitable type or composition, including, but not limited to, a type limited to at least a minimum number of characters, a type limited to at most a maximum number of characters, a type limited to a specific number of characters, a type requiring at least one character of a specific character category (e.g., at least one number, at least one uppercase letter, at least one punctuation, at least one mathematical symbol, etc.), and/or the like. While various examples described herein may be with respect to a passcode defined by exactly 4-numerical digits, it is to be understood that any suitable passcode (e.g., any suitable passcode or password or passkey or passphrase or access code or personal identification number (PIN) or phoneword or the like) of any suitable composition may be used throughout process 300 and/or other processes described herein (e.g., an 8-character code, a 3-word phrase code, a spoken code of a certain length of time, etc.).
Once it has been determined at operation 302 that a new passcode of a particular type is needed for a resource, process 300 may proceed to operation 304, where PMM 301 may select at least one learning technique (e.g., at least one mnemonic or encoding technique or mnemonic system or mnemonic device or the like) that may be used to determine how to generate at least one mnemonic or tool that may be provided to a user of device 100 for use in remembering a recommended passcode. Any suitable learning technique may be selected at operation 304, including, but not limited to, the mnemonic major system, the Katapayadi system, the Dominic system, a name mnemonic system (e.g., an acronym system), a mnemonic peg system, a method of loci, a mnemonic link system, a linkword system, a chunking system, and/or the like. The selection of a learning technique at operation 304 may be at least partially based on any composition requirements of the passcode to be generated (e.g., a first learning technique may be available for selection when a passcode with a first composition is needed, while a second learning technique different than the first learning technique may be available for selection when a passcode with a second composition different than the first composition is needed, or different resources to be protected may utilized different learning techniques, or a user may select a particular learning technique, and/or the like).
The selection of at least one learning technique at operation 304 may be carried out automatically by device 100 (e.g., by PMM 301) without any user input. Alternatively, the selection of at least one learning technique at operation 304 may be at least partially based on some input provided by a user. For example, as shown in
Any suitable number of iterations of sub-operations 304a-304c may be carried out during operation 304 until at least one particular learning technique has been selected and/or any suitable characteristics (e.g., learning technique mappings, learning technique rule systems, etc.) of the selected learning technique have been defined and/or any suitable on-device information data source(s) have been selected as available for use with at least one of the learning techniques being selected (e.g., media application information, calendar application information, contact application information, etc.). For example, request 304ad of sub-operation 304a may be operative to present, to the user, screen 190a of
In another iteration of operation 304 (e.g., in another iteration of sub-operations 304a-304c), one or more suitable characteristics (e.g., learning technique mappings, learning technique rule systems, etc.) of at least one selected learning technique may be defined. For example, request 304ad of sub-operation 304a of such an iteration may be operative to present, to the user, screen 190b of
In another iteration of operation 304 (e.g., in another iteration of sub-operations 304a-304c), one or more on-device information data source(s) available to device 100 may be selected as available for use in defining at least one mnemonic or tool that may be generated in accordance with the selected learning technique. For example, request 304ad of sub-operation 304a of such an iteration may be operative to present, to the user, screen 190c of
At operation 306, PMM 301 may select (e.g., automatically) at least one new passcode for potential use. Continuing with the example of a 4-digit numerical passcode composition, operation 306 may select at least one passcode from any of the entire set of 10,000 possible 4-digit numerical passcode options ranging from “0000” to “9999”. Alternatively, operation 306 may first reduce the pool of possible 4-digit numerical passcode options from such an entire set to an admissible set that may be defined in any suitable manner. For example, one or more inadmissible sets of passcodes may be defined in any suitable manner for removal from the entire set for arriving at an admissible set, including, but not limited to, an inadmissible set including any passcode previously used (e.g., by the user and/or for the resource being protected and/or by device 100) at any time during the life of device 100 and/or during a particular time period, an inadmissible set including any passcode that includes only one number (e.g., “0000” and “1111” and “2222”, etc.), an inadmissible set including any passcode including only consecutive numbers (e.g., “0123” and “1234” and “2345”, etc.), an inadmissible set including any passcode that could also define a calendar date (e.g., a “MMYY” date, such as “0197” and “1299”), and/or any other passcodes that may be identified as a weak passcode for whatever reason. In some embodiments, one or more inadmissible sets may be defined at least partially based on at least one learning technique selected at operation 304. When an admissible set has been identified, then operation 306 may also include selecting at least one passcode from that identified admissible set in any suitable manner. For example, at least one passcode may be selected for potential use from the admissible set using any suitable random selection process (e.g., a selection process using uniformly random probability). In some embodiments, one or more passcodes may be selected for potential use from the admissible set at least partially based on at least one learning technique selected at operation 304. Only one passcode may be selected for potential use at operation 306, or, alternatively, two or more passcodes may be selected for potential use at operation 306.
At operation 308, PMM 301 may determine (e.g., automatically), for each learning technique (e.g., as selected at operation 304), a framework for generating a mnemonic based on that learning technique to be provided to a user of the electronic device for use in remembering a passcode (e.g., for one, some, or each passcode selected for potential use at operation 306). As an example, if a telephone keypad system (word) learning technique was selected at operation 304 (e.g., via user selection of option 304oa of
As another example, if a mnemonic major system (word) learning technique was selected at operation 304 (e.g., via user selection of option 304ob of
As yet another example, if a telephone keypad system (phrase) learning technique was selected at operation 304 (e.g., via user selection of option 304oc of
As yet another example, if a mnemonic major system (phrase) learning technique was selected at operation 304 (e.g., via user selection of option 304od of
As yet another example, if a Dominic system (phrase) learning technique was selected at operation 304 (e.g., via user selection of option 304oe of
As yet another example, if a word length system (phrase) learning technique was selected at operation 304 (e.g., via user selection of option 304of of
Once a framework has been determined at operation 308 (e.g., for at least one potential passcode selected at operation 306) using at least one learning technique selected at operation 304, then process 300 may proceed to operation 310, where PMM 301 may obtain (e.g., automatically) any suitable on-device information from one or more appropriate on-device information data sources (e.g., as selected at operation 304 (e.g., automatically or via user selection)) that may potentially be used to satisfy such a framework. For a particular on-device information data source, operation 310 may be operative to obtain any suitable information from that data source, such as a word or group of words, that may satisfy one or more of the limitations of a determined framework (e.g., information from a contacts application data source that may include one or more contacts, each of which may include the contact's name and one or more telephone numbers and/or one or more e-mail addresses and/or one or more physical mailing addresses and/or one or more occupations and/or a birthday and/or a relative's name and/or any suitable image(s) thereof, and/or the like, information from a media application data source that may include one or more song names and associated metadata (e.g., name of song's artist, date of song's release, hometown of song's artist, description of topic of song, genre of song, any suitable image(s) thereof, and/or the like) and/or one or more movie names and associated metadata (e.g., name of movie's director and/or actors, date of movie's release, filming location of movie, description of topic of movie, genre of movie, any suitable image(s) thereof, and/or the like) and/or one or more photograph names and associated metadata (e.g., location where photograph was taken, name of subject(s) of photograph, and/or the like) and/or the like, information from a calendar application data source that may include one or more events, each of which may include the event's time, the event's location, the event's participants, the event's type, information from a health application, information from a wallet application, and/or the like, etc.). For example, if a telephone keypad system (word) learning technique was selected at operation 304, and if passcode “4395” was selected as a potential passcode at operation 306, and if a framework was determined at operation 308 that may be satisfied as described above (e.g., by the English word “IDYL”), then operation 310 may include obtaining any suitable word(s) and/or any suitable phrase(s) and/or any other suitable information from any suitable data source(s) that may also satisfy that framework. As another example, if a mnemonic major system (word) learning technique was selected at operation 304, and if passcode “4395” was selected as a potential passcode at operation 306, and if a framework was determined at operation 308 that may be satisfied as described above (e.g., by the English word “RAMBLE”), then operation 310 may include obtaining any suitable word(s) and/or any suitable phrase(s) and/or any other suitable information from any suitable data source(s) that may also satisfy that framework. As yet another example, if a telephone keypad system (phrase) learning technique was selected at operation 304, and if passcode “4395” was selected as a potential passcode at operation 306, and if a framework was determined at operation 308 that may be satisfied as described above (e.g., by the English phrase “Iguanas Drink Yellow Liquid”), then operation 310 may include obtaining any suitable word(s) and/or any suitable phrase(s) and/or any other suitable information from any suitable data source(s) that may also satisfy that framework. As yet another example, if a mnemonic major system (phrase) learning technique was selected at operation 304 (e.g., via option 304od of
Only data associated with certain assets of the appropriate data source(s) (e.g., contacts of a contact app, songs and/or movies of a media app, events of a calendar app, etc.) that meet a certain criteria (e.g., that have been most recently accessed and/or that have been most frequently accessed) may be searched through and from which the framework satisfying information may be obtained at operation 310. Alternatively, all data available to an appropriate data source that may satisfy a framework may be obtained at operation 310. The obtaining of framework satisfying information from an on-device data source may be carried out in any suitable manner, including, but not limited to, using any suitable application programming interfaces (APIs) or the like (e.g., automatically, and/or wherein operation 310 may include a first sub-operation 310a, where PMM 301 may provide a request 310ad to an on-device information source 105, which may enable the information source to run its own search 310bd based on request 310ad at sub-operation 310b, the results of which may be returned to PMM 301 as a response 310cd at sub-operation 310c for use by PMM 301 (e.g., at operation 312). In some embodiments, at least the most frequently accessed media assets (e.g., data elements as most frequently accessed by the user during any suitable time period prior to operation 310) may be accessed at operation 310 (e.g., data elements indicative of the most listened to song or of the ten most listened to songs by the user over the last two weeks). Additionally or alternatively, inferred concepts may be used to at least partially define one or more data elements accessed at operation 310 (e.g., “cats” may be an inferred topic of a most recently defined or accessed photo stream from a photo album application of the device). Also things that either co-occur (e.g., names of people who “like” photos in a particular photo stream) and/or data from inferred concepts (e.g., “cats” may be an inferred topic in a photo stream, where the process (e.g., during operation 310) may be configured to present one or more images from the photo stream to request and collect data from the user indicative of the name(s) and/or home location of one or more cats from the photographs, where such collected name(s) and/or locations may then be used after operation 310 similar to other information that may be collected during operation 310, as such name and/or location data may be difficult to guess or look up or be phished) at a later time. Any suitable number of iterations of sub-operations 310a-310c may be carried out during operation 310 for any suitable number of data sources 105 and/or for any suitable number of frameworks.
Any appropriate on-device information obtained from any appropriate on-device data sources may then be used to generate one or more mnemonics for use in remembering a recommended passcode. For example, for a particular framework determined at operation 308 for a particular passcode selected at operation 306 for a particular learning technique selected at operation 304 using information obtained at operation 310, process 300 may attempt to define (e.g., automatically by PMM 301) at least one mnemonic at operation 312 for that passcode, technique, and framework with appropriate obtained information. Any suitable processing may be carried out at operation 312 to make such mnemonic defining efficient and effective (e.g., such that the obtained information used to define the mnemonic may be as relevant as possible to the device user and/or such that the defined mnemonic may be as coherent as possible to device user). For example, if a telephone keypad system (word) learning technique was selected at operation 304, and if passcode “4395” was selected as a potential passcode at operation 306, and if a framework was determined at operation 308 that may be satisfied as described above (e.g., by the English word “IDYL”), then operation 312 may be operative to define a mnemonic satisfying that framework using the word “HEXL” if information obtained from a media application at operation 310 may be indicative of an artist “D.J. Hexl” being a popular artist most frequently listened to by the user of device 100. As another example, if a mnemonic major system (word) learning technique was selected at operation 304, and if passcode “4395” was selected as a potential passcode at operation 306, and if a framework was determined at operation 308 that may be satisfied as described above (e.g., by the English word “RAMBLE”), then operation 312 may be operative to define a mnemonic satisfying that framework using the word “REMPEL” if information obtained from a media application at operation 310 may be indicative of an artist “Mike Rempel” being a popular artist most frequently listened to by the user of device 100, and/or operation 312 may be operative to define a mnemonic satisfying that framework using the word “RAMBLE” if information obtained from a media application at operation 310 may be indicative of a song “Ramble On Rose” being a popular song frequently listened to by the user of device 100. As yet another example, if a telephone keypad system (phrase) learning technique was selected at operation 304, and if passcode “4395” was selected as a potential passcode at operation 306, and if a framework was determined at operation 308 that may be satisfied as described above (e.g., by the English phrase “Iguanas Drink Yellow Liquid”), then operation 312 may be operative to define a mnemonic satisfying that framework using the phrase “Irina Davis, Youngsville, La.” if information obtained from a contact application at operation 310 may be indicative of a contact named “Irina Davis” that has a mailing address in “Youngsville, La.”. As yet another example, if a mnemonic major system (phrase) learning technique was selected at operation 304, and if passcode “4395” was selected as a potential passcode at operation 306, and if a framework was determined at operation 308 that may be satisfied as described above (e.g., by the English phrase “Rake My Back Lawn”), then operation 312 may be operative to define a mnemonic satisfying that framework using the phrase “Rock, May, Brian Lawson” if information obtained from a calendar application at operation 310 may be indicative of a previous or upcoming event for “rock” climbing in the month of “May” with an event participant named “Brian Lawson”. As yet another example, if a Dominic system (phrase) learning technique was selected at operation 304, and if passcode “4395” was selected as a potential passcode at operation 306, and if a framework was determined at operation 308 that may be satisfied as described above (e.g., by the English phrase “Daniel Craig Writing Books”), then operation 312 may be operative to define a mnemonic satisfying that framework using the phrase “Derek Caruso Making Cakes” if information obtained from a contact application at operation 310 may be indicative of a first popular contact named “Derek Caruso” and a second popular contact named “Nick Esposito” that has a listed occupation as a “Cake Maker”. As yet another example, if a word length system (phrase) learning technique was selected at operation 304, and if passcode “4395” was selected as a potential passcode at operation 306, and if a framework was determined at operation 308 that may be satisfied as described above (e.g., by the English phrase “next day amplifier store”), then operation 312 may be operative to define a first mnemonic satisfying that framework using the phrase “Rose Way, Screaming Trees” if information obtained from a media application at operation 310 may be indicative of a song called “Rose Way” being the user's most played song by a grunge artist based in Seattle called “The Screaming Trees” and a second mnemonic satisfying that framework using the phrase “John Doe, Swordfish Meal” if information obtained from a media application at operation 310 may be indicative of a group of recently taken pictures being tagged with a subject “John Doe” and “swordfish” and “dinner.” Obtained data may be made into a mnemonic by mapping terms into a phrase according to any suitable characteristics, including, but not limited to, initial letters, number of letters, major consonants, any suitable element associations (e.g., name initials to occupation), and/or the like. Various types of processing may be automatically carried out to use the obtained data efficiently and effectively for defining a mnemonic using the appropriate framework. For example, part of speech tagging for one or more words or phrases or terms or the like from the obtained data can be used to place them into syntactically accurate positions without worrying about semantics, which may enable the generation of more memorable phrases because the absence of semantic coherence can be jarring when the syntax makes sense.
Once one or more mnemonics have been defined at operation 312 for at least one framework with respect to a particular selected technique and passcode using information from at least one appropriate data source, process 300 may proceed to operation 314, where PMM 301 may select (e.g., automatically) at least one defined mnemonic to be provided as or included as or represented in any suitable manner by a portion of a recommendation to a user of device 100 for use in remembering a recommended passcode associated with that mnemonic. Any suitable processing may be carried out at operation 314 to make such a selection of at least one mnemonic from the mnemonic(s) defined at operation 312 for use as a recommendation to the user (e.g., such that the selected mnemonic may be as relevant as possible to the device user (e.g., terms from the obtained data or mnemonics containing terms from the obtained data may be selected based on a user's frequency of interaction with those terms (e.g., how often the user calls the contact from which a term came, how often the user listens to a song from which the term came, etc. (e.g., entropy of terms from the obtain data may be used))) and/or such that the selected mnemonic may be as coherent as possible to device user). In some embodiments, the same or even similar mnemonics may not be utilized for two different recommendations (e.g., at two different iterations of process 300) in order to maintain stronger security. The selection of at least one mnemonic at operation 314 may be carried out automatically by device 100 (e.g., by PMM 301) without any user input. Alternatively, the selection of at least one mnemonic at operation 314 may be at least partially based on some input provided by a user. For example, as shown in
Once a recommendation (e.g., mnemonic and/or associated passcode and/or technique) has been selected at operation 314, process 300 may include operation 316, where the passcode of that selected recommendation may be set as the new passcode by PMM 301 (e.g., the new passcode identified as needed for a resource at operation 302) and that new passcode may be associated with its associated mnemonic and associated technique by PMM 301 (e.g., the passcode, associated mnemonic, associated technique, and/or any suitable hints may be stored in any suitable (e.g., obfuscated) secure manner (e.g., in any suitable data structure(s) accessible by PMM 301 (e.g., memory 104)) that may protect the security of that information and the device resource(s) that the information protects). Additionally, any suitable clock and/or counter and/or the like may be associated with the new passcode by PMM 301 for use in determining when that new passcode must itself be replaced (e.g., at a new iteration of operation 302). Any defined mnemonic(s), any obtained data, any new passcode, any new clock, and/or any new counter generated or otherwise acquired or obtained or defined by process 300 may be retained or stored or otherwise utilized by process 300 solely on device 100 and no such information may be stored or utilized on any other device or server or otherwise remote from device 100. Alternatively, if any such data is used by process 300 or otherwise off of device 100, such data may be obfuscated or encoded in one or more ways such that the data may not be properly utilized or identified by an inappropriate entity. Then, at operation 318 of process 300, the resource to be protected by the new passcode set at operation 316 may be locked by PMM 301. Then, at operation 320 of process 300 (e.g., at any suitable time after operation 318), an attempt to unlock the resource locked at operation 318 may be detected by PMM 301 (e.g., through any suitable device event (e.g., detection of any suitable user input(s) or otherwise)). Then, at operation 322 of process 300, PMM 301 may attempt to obtain the appropriate passcode currently set for the resource for which an unlock attempt was detected at operation 320. For example, as shown in
It is understood that the operations shown in process 300 of
Therefore, various different processes may be carried out (e.g., automatically by PMM 301 and/or with any suitable input from a device user) for recommending passcodes for an electronic device using information local to the electronic device. Such processes may be carried out entirely on device 100, not only for protecting the privacy of the user's on-device information but also for protecting the passcodes and any associated hint information (e.g., mnemonics, learning techniques, etc.). Memorization of strong (e.g., non-user generated) passcodes may be triggered based on any suitable learning techniques and local information that may be uniquely identifiable or otherwise meaningful to a user to aid in the memorization process. Any suitable learning technique(s) may be used in combination with any suitable on-device information or otherwise (e.g., device generated terms that may supplement any on-device information) in order to encode a passcode for enabling the passcode to be efficiently and effectively memorized by a user. In some embodiments, a mnemonic may be supplemented with or provided entirely as an image or movie or any other suitable media or output information type for facilitating such memorization. For example, when a mnemonic may be defined as or might otherwise be defined as “John Doe, Swordfish Meal,” a mnemonic and/or a hint provided to the user (e.g., at option 314og) may be or at least may include an actual photograph of John Doe and/or a Swordfish (e.g., a photograph from the data source from which the on-device information used to define the mnemonic may have been obtained (e.g., photo album of a photo app) and/or from any suitable supplementary data source (e.g., an image repository on a server remote from device 100 that may be accessible via communications component 106)).
As mentioned, while various examples described herein may be with respect to a passcode defined by exactly 4-numerical digits, it is to be understood that any suitable passcode (e.g., any suitable passcode or password or passkey or passphrase or access code or personal identification number (PIN) or phoneword or the like) of any suitable composition may be used throughout process 300 and/or other processes described herein. For example, if the passcode must include only 4-uppercase letters, and a potential passcode is selected at operation 306 as “IDYL” and a telephone keypad system (phrase) technique is selected, then process 300 may be carried out similarly as described herein for recommending the mnemonic of “Irina Davis, Youngsville, La.”. Alternatively or additionally, graphic (e.g., one or more images and/or videos) may be used to define a representation of a mnemonic for a particular passcode (e.g., for a passcode with a mnemonic “HWBS,” a representation of the mnemonic may be defined as a picture of a “H”orse “W”earing a “B”lue “S” weater), where such a topic for such a picture may be identified at least partially from the obtained data and/or where the picture itself may be obtained at least partially from the obtained data and/or from any other suitable data source. As another example, album artwork of music media and/or movie artwork or stills or .gifs or otherwise from video media and/or contact photographs from a contact of a contact app or the like may be used to define a mnemonic or a representation thereof in any suitable manner (e.g., an image of the album artwork for “Dark Side Of The Moon”, which may be determined to be a favorite album of the user, might be used to define a representation of a mnemonic for a passcode “3275” which may align with mnemonic letters “DARK” using a telephone keypad system (word) learning technique, where such an image may be obtained from an on-device information source (e.g., at operation 310) or may be obtained by PMM 301 (e.g., automatically) from any other suitable source (e.g., an image repository on a server remote from device 100 that may be accessible via communications component 106)) and provided as a representation of the mnemonic in a portion of the recommendation (e.g., the image of the album art work may be a representation of the mnemonic provided as a portion of the recommendation of an option in list 314l). In some embodiments, a user may be queried to enter the mnemonic itself (e.g., at request 322r) rather than the underlying passcode from which the mnemonic may have been derived, or the mnemonic may then be considered the passcode itself. As an example, if Noam Chomsky may be determined at operation 310 to be a favorite author of the user, then a passcode and/or mnemonic may be determined to be “Colorless Green Ideas Sleep Furiously” (e.g., a popular phrase associated with that author) and then one or more images may be used to provide a hint or to otherwise remind the user about how to memorize and/or recall that phrase, such as a first picture of a dog biting a biscuit (e.g., a “chomp” of the biscuit) and a second picture of a skier on a mountain slope (e.g., a “ski” activity), such that the two images when presented to a user may enable the user to come up with the terms “chomp” and “ski,” which may enable the user to recall the popular Chomsky phrase “Colorless Green Ideas Sleep Furiously” that may be entered by the user in any suitable manner to satisfy user access to the protected device resource.
Moreover, one, some, or all of the processes described with respect to
It is to be understood that any or each module (e.g., PMM 301) may be provided as a software construct, firmware construct, one or more hardware components, or a combination thereof. For example, any or each module may be described in the general context of computer-executable instructions, such as program modules, that may be executed by one or more computers or other devices. Generally, a program module may include one or more routines, programs, objects, components, and/or data structures that may perform one or more particular tasks or that may implement one or more particular abstract data types. It is also to be understood that the number, configuration, functionality, and interconnection of the modules are only illustrative, and that the number, configuration, functionality, and interconnection of existing modules may be modified or omitted, additional modules may be added, and the interconnection of certain modules may be altered.
At least a portion of one or more of the modules may be stored in or otherwise accessible to device 100 in any suitable manner (e.g., in memory 104 of device 100 (e.g., as at least a portion of application 103)). Any or each module may be implemented using any suitable technologies (e.g., as one or more integrated circuit devices), and different modules may or may not be identical in structure, capabilities, and operation. Any or all of the modules or other components may be mounted on an expansion card, mounted directly on a system motherboard, or integrated into a system chipset component (e.g., into a “north bridge” chip).
Any or each module may be a dedicated system implemented using one or more expansion cards adapted for various bus standards. For example, all of the modules may be mounted on different interconnected expansion cards or all of the modules may be mounted on one expansion card. By way of example only, the modules may interface with a motherboard or processor 102 of device 100 through an expansion slot (e.g., a peripheral component interconnect (“PCI”) slot or a PCI express slot). Alternatively, the modules may not be removable but may include one or more dedicated modules that may include memory (e.g., RAM) dedicated to the utilization of the module. Any or each module may include its own processing circuitry and/or memory. Alternatively, any or each module may share processing circuitry and/or memory with any other module and/or processor 102 and/or memory 104 of device 100.
The use of one or more suitable algorithms and/or models and/or engines and/or neural networks or the like (e.g., as may be provided by any suitable passcode management application 103) may be run by and/or executed on and/or otherwise provided by device 100 to enable the effective and efficient processing for automatic generation of one or more mnemonics by one or more frameworks for one or more potential passcodes based on one or more learning techniques and any suitable on-device information data source(s). Such processing running on any suitable processing units (e.g., graphical processing units (“GPUs”) that may be available to device 100) may provide significant speed and/or power-saving improvements in efficiency and accuracy with respect to framework defining and mnemonic definition over human-conducted handling of data, as such processing can provide recommendation(s) in a few milliseconds or less, thereby improving the functionality of any computing device on which such processing may occur. Due to such efficiency and accuracy, such processing (e.g., of process 300) enable a technical solution for enabling the definition (e.g., at operation 312) of any suitable mnemonic (e.g., for controlling the security of one or more device resources using any suitable on-device information element(s) of any suitable data source(s) made available to the computer processing that may not be possible without the use of such processing, as such processing may increase performance of their computing device(s) by requiring less memory and/or less power, providing faster response times, and/or increased accuracy and/or reliability). Due to the condensed time frame and/or the time within which a recommendation for securing a device resource may be made, such processing offers the unique ability to provide useful mnemonic recommendations for device resource security with the speed and security (e.g., on-device processing) necessary to enable a service that will be used by an electronic device user.
As described above, one aspect of the present technology is the gathering and use of data available from various specific and legitimate sources to recommend passcodes. The present disclosure contemplates that in some instances, this gathered data may include personal information data that uniquely identifies or can be used to identify a specific person. Such personal information data can include demographic data, location-based data, online identifiers, telephone numbers, email addresses, home addresses, data or records relating to a user's health or level of fitness (e.g., vital signs measurements, medication information, exercise information), date of birth, or any other personal information.
The present disclosure recognizes that the use of such personal information data, in the present technology, can be used to the benefit of users. For example, the personal information data can be used to recommend passcodes with mnemonics that may be of greater interest to the user in accordance with their preferences. Accordingly, use of such personal information data enables users to have greater control of the delivered content. Further, other uses for personal information data that benefit the user are also contemplated by the present disclosure. For instance, health and fitness data may be used, in accordance with the user's preferences to provide insights into their general wellness, or may be used as positive feedback to individuals using technology to pursue wellness goals and/or to recommend passcodes with mnemonics.
The present disclosure contemplates that those entities responsible for the collection, analysis, disclosure, transfer, storage, or other use of such personal information data will comply with well-established privacy policies and/or privacy practices. In particular, such entities would be expected to implement and consistently apply privacy practices that are generally recognized as meeting or exceeding industry or governmental requirements for maintaining the privacy of users. Such information regarding the use of personal data should be prominently and easily accessible by users, and should be updated as the collection and/or use of data changes. Personal information from users should be collected for legitimate uses only. Further, such collection/sharing should occur only after receiving the consent of the users or other legitimate basis specified in applicable law. Additionally, such entities should consider taking any needed steps for safeguarding and securing access to such personal information data and ensuring that others with access to the personal information data adhere to their privacy policies and procedures. Further, such entities can subject themselves to evaluation by third parties to certify their adherence to widely accepted privacy policies and practices. In addition, policies and practices should be adapted for the particular types of personal information data being collected and/or accessed and adapted to applicable laws and standards, including jurisdiction-specific considerations which may serve to impose a higher standard. For instance, in the US, collection of or access to certain health data may be governed by federal and/or state laws, such as the Health Insurance Portability and Accountability Act (HIPAA); whereas health data in other countries may be subject to other regulations and policies and should be handled accordingly.
Despite the foregoing, the present disclosure also contemplates embodiments in which users selectively block the use of, or access to, personal information data. That is, the present disclosure contemplates that hardware and/or software elements can be provided to prevent or block access to such personal information data. For example, in the case of passcode and mnemonic delivery services, the present technology can be configured to allow users to select to “opt in” or “opt out” of participation in the collection of personal information data during registration for services or anytime thereafter. In another example, users can select not to provide passcode and mnemonic services based on some or all personal data. In yet another example, users can select to limit the length of time passcode and mnemonic services based on certain user data may be maintained or entirely block the development of such services. In addition to providing “opt in” and “opt out” options, the present disclosure contemplates providing notifications relating to the access or use of personal information. For instance, a user may be notified upon downloading an app that their personal information data will be accessed and then reminded again just before personal information data is accessed by the app.
Moreover, it is the intent of the present disclosure that personal information data should be managed and handled in a way to minimize risks of unintentional or unauthorized access or use. Risk can be minimized by limiting the collection of data and deleting data once it is no longer needed. In addition, and when applicable, including in certain health related applications, data de-identification can be used to protect a user's privacy. De-identification may be facilitated, when appropriate, by removing identifiers, controlling the amount or specificity of data stored (e.g., collecting location data at city level rather than at an address level), controlling how data is stored (e.g., aggregating data across users), and/or other methods such as differential privacy.
Therefore, although the present disclosure broadly covers use of personal information data to implement one or more various disclosed embodiments, the present disclosure also contemplates that the various embodiments can also be implemented without the need for accessing such personal information data. That is, the various embodiments of the present technology are not rendered inoperable due to the lack of all or a portion of such personal information data. For example, passcodes and/or mnemonics can be selected and delivered to users based on aggregated non-personal information data or a bare minimum amount of personal information, such as the content being handled only on the user's device or other non-personal information available to the passcode and mnemonic services. In some embodiments, any on-device data information obtained for use in passcode recommendation (e.g., at operation 310) may be limited to on-device data information that has not been shared with any remote device or made public in one or more ways (e.g., no user media playlist information may be relied on or obtained at operation 310 if such playlist information has been publicly shared off of device 100 and may be available to would be imposters).
While there have been described systems, methods, and computer-readable media for recommending passcodes for an electronic device using information local to the electronic device, it is to be understood that many changes may be made therein without departing from the spirit and scope of the subject matter described herein in any way. Insubstantial changes from the claimed subject matter as viewed by a person with ordinary skill in the art, now known or later devised, are expressly contemplated as being equivalently within the scope of the claims. Therefore, obvious substitutions now or later known to one with ordinary skill in the art are defined to be within the scope of the defined elements.
Therefore, those skilled in the art will appreciate that the present technology can be practiced by other than the described embodiments, which are presented for purposes of illustration rather than of limitation.
This application claims the benefit of prior filed U.S. Provisional Patent Application No. 62/738,698, filed Sep. 28, 2018, which is hereby incorporated by reference herein in its entirety.
Number | Date | Country | |
---|---|---|---|
62738698 | Sep 2018 | US |