The present application relates generally to the concealed entry of a text string, for example a passcode.
Developments in information technology and security have led to an expectation amongst users that they should be able to record and access information securely regardless of the environment in which they do so. Whereas it would once have been unthinkable to provide remote access to confidential information, it is now common for remote workers to connect to company networks using Virtual Private Networking (VPN), for holders of bank account information to control their finances from a mobile telephone, and for the users of mobile terminals to authenticate themselves with a wide variety of e-mail and social networking tools whilst surrounded by people they may not know.
It is therefore now common for users to enter confidential information, for example passcodes, in very public environments, where a third party's observation of such data could compromise user or data security. It is for just this reason that expensive security filters have proven popular for laptop computers, the filters restricting the viewing angle of the computer screen in an attempt to prevent unwelcome third party observation of information displayed on the computers screen.
According to a first exemplary embodiment, the present invention provides a method comprising: receiving a first user input comprising a first set of strokes; causing a representation of the first set of strokes to be displayed; whilst the representation of the first set of strokes is displayed, receiving a second user input comprising a second set of strokes; causing a representation of each of the second set of strokes to be displayed as it is received, the representation of the second set of strokes at least partially overlapping the representation of the first set of strokes; resolving the first user input into a first character; and resolving the second user input into a second character.
According to a second exemplary embodiment, the present invention provides an apparatus comprising: a processor; and memory including computer program code, the memory and the computer program code configured to, working with the processor, cause the apparatus to perform at least the following: receive a first user input comprising a first set of strokes; cause a representation of the first set of strokes to be displayed; whilst the representation of the first set of strokes is displayed, receive a second user input comprising a second set of strokes; cause a representation of each of the second set of strokes to be displayed as it is received, the representation of the second set of strokes at least partially overlapping the representation of the first set of strokes; resolve the first user input into a first character; and resolve the second user input into a second character.
According to a third exemplary embodiment, the present invention provides an apparatus comprising: means for receiving a first user input comprising a first set of strokes; means for causing a representation of the first set of strokes to be displayed; means for, whilst the representation of the first set of strokes is displayed, receiving a second user input comprising a second set of strokes; means for causing a representation of each of the second set of strokes to be displayed as it is received, the representation of the second set of strokes at least partially overlapping the representation of the first set of strokes; means for resolving the first user input into a first character; and means for resolving the second user input into a second character.
According to a fourth exemplary embodiment, the present invention provides a computer program product comprising a computer-readable medium bearing computer program code embodied therein for use with a computer, the computer program code comprising: receiving a first user input comprising a first set of strokes; causing a representation of the first set of strokes to be displayed; whilst the representation of the first set of strokes is displayed, receiving a second user input comprising a second set of strokes; causing a representation of each of the second set of strokes to be displayed as it is received, the representation of the second set of strokes at least partially overlapping the representation of the first set of strokes; resolving the first user input into a first character; and resolving the second user input into a second character.
According to a first exemplary embodiment, the present invention provides a computer-readable medium encoded with instructions that, when executed by a computer, perform: receiving a first user input comprising a first set of strokes; causing a representation of the first set of strokes to be displayed; whilst the representation of the first set of strokes is displayed, receiving a second user input comprising a second set of strokes; causing a representation of each of the second set of strokes to be displayed as it is received, the representation of the second set of strokes at least partially overlapping the representation of the first set of strokes; resolving the first user input into a first character; and resolving the second user input into a second character.
For a more complete understanding of example embodiments of the present invention, reference is now made to the following descriptions taken in connection with the accompanying drawings in which:
a-h are a series of exemplary illustrations showing user entry of the strokes of
a-h are a series of exemplary illustrations showing user entry of the strokes of
a-h are a series of exemplary illustrations showing user entry of the strokes of
An example embodiment of the present invention and its potential advantages are understood by referring to
The MCD 100 may comprise one or more User Identity Modules (UlMs) 130. Each UIM 130 may comprise a memory device having a built-in processor. Each UIM 130 may comprise, for example, a subscriber identity module, a universal integrated circuit card, a universal subscriber identity module, a removable user identity module, and/or the like. Each UIM 130 may store information elements related to a subscriber, an operator, a user account, and/or the like. For example, a UIM 130 may store subscriber information, message information, contact information, security information, program information, and/or the like.
The MCD 100 may comprise a number of user interface components. For example, a microphone 135 and an audio output device such as a speaker 140. The MCD 100 may comprise one or more hardware controls, for example a plurality of keys laid out in a keypad 145. Such a keypad 145 may comprise numeric (for example, 0-9) keys, symbol keys (for example, #, *), alphabetic keys, and/or the like for operating the MCD 100. For example, the keypad 145 may comprise a conventional QWERTY (or local equivalent) keypad arrangement. The keypad 145 may also comprise one or more soft keys with associated functions that may change depending on the operation of the device. In addition, or alternatively, the MCD 100 may comprise an interface device such as a joystick or other user input interface.
The MCD 100 may comprise one or more display devices such as a screen 150. The screen 150 may be a touch screen, in which case it may be configured to receive input from a single point of contact, multiple points of contact, and/or the like. In such an embodiment, the touch screen may determine input based on position, motion, speed, contact area, and/or the like. Suitable touch screens may involve those that employ resistive, capacitive, infrared, strain gauge, surface wave, optical imaging, dispersive signal technology, acoustic pulse recognition or other techniques, and to then provide signals indicative of the location and other parameters associated with the touch. A “touch” input may comprise any input that is detected by a touch screen including touch events that involve actual physical contact and touch events that do not involve physical contact but that are otherwise detected by the touch screen, such as a result of the proximity of the selection object to the touch screen. The touch screen may be controlled by the processor 125 to implement an on-screen keyboard.
The MCD 100 may comprise a media capturing element such as a video and/or stills camera.
The MCD 100 may comprise logic for performing handwriting recognition, whereby received user-inputted strokes are resolved into textual characters. Such logic may comprise computer software stored in the memories 115, 120 and/or firmware or hardware comprised by the MCD 100. The MCD 100 may have access to handwriting recognition functions that are served from a remote location—for example, it may be configured to send stroke information to a remote server from which it will subsequently receive recognised text.
Stroke information may, in some embodiments, be entered via a touch screen, or other touch-sensitive input device (for example, a graphics tablet, or touchpad). In some embodiments, stroke information may be received optically, for example by recording images, using the camera 155, of a whiteboard or other medium upon which visible stroke information has been or is being marked (e.g. in ink). Stroke information may also be received by monitoring the motion of a physical or virtual object—for example the position of a cursor on the display 150, or of a finger viewable by the camera 155. Other methods of receiving stroke information are possible and may be used in addition to, or in place of, those described above. Other stroke-receiving input means may also be used, for example a digital pen, such as a pen that includes at least one accelerometer for detecting strokes drawn with the pen.
a-h show the user entry of the strokes 300 that make up
In
In
As more strokes, corresponding to more characters, are added, it becomes increasingly difficult to identify any of the characters that they make up, due to the increased total amount of overlap. In
d-h show the similar addition of strokes corresponding to the letters “S”, “W”, “O”, “R”, and “D”, respectively. The strokes of each new character overlap with those of the previously entered character, making it increasingly difficult for an observer to identify the characters contained within the strokes.
The previously entered strokes have been illustrated in
In the embodiment shown in
a-h illustrates the manner by means of which the strokes 500 of
First of all, in
In
In
Up to this point, the entered strokes may be readily intelligible to an observer. However, this ceases to be the case as the second substring is entered.
In
f-e show the addition of strokes corresponding to remaining letters of the second substring “ORD”, positioned so as to overlap the second, third and fourth characters of the first substring, respectively.
In the example illustrated in
a-h illustrate the means by which the user enters the strokes 700 shown in
In
In
In
d-h show, progressively, the entry of strokes representing the remaining characters (“S”, “W”, “O”, “R”, and “D”) of the passcode.
With the entry of each additional stroke, the entered characters become increasingly difficult to distinguish, and when sufficient overlap is used the obfuscation of the entered characters is so great that they are illegible to an observer even after a small number of strokes have been entered.
In some embodiments, the level of obfuscation may be satisfactory when just a few characters have been entered, and further obfuscation may impede the entry of subsequent characters by the user as the display becomes cluttered. For this reason, representations of strokes may be removed from the display or otherwise distinguished from new strokes (e.g. by colour) after a predetermined period of time, or after a predetermined number of characters or strokes have been entered. For example, only the current stokes and those of the previous two characters might be displayed, or only the 10 previously entered strokes, or just those entered in the last second. In other embodiments, all entered strokes will remain until the entire input string has been entered, to maximise the degree of obfuscation.
It will be understood that the extent of the obfuscation is greatest when large numbers of previously entered strokes are visible. The obfuscation is, accordingly, least when the initial strokes of the passcode are entered (for example during entry of the first character). To address this, representations of dummy strokes may (in some embodiments) be displayed during at least the inputting of the first character. The dummy strokes may be drawn onto the display as though real strokes had been received, or they may be predefined as an image that is displayed, for example as a background to a stroke receiving portion of the display. The dummy strokes may be predefined, based upon previous input by the user (for example historical stroke inputs), or randomly or pseudo-randomly generated. Examples of such dummy strokes are shown in
Representations of the strokes of the first input are displayed 1220 after they are received 1210. In some embodiments the representation of a stroke is displayed during or immediately after the reception of that stroke, and in other embodiments it is displayed after all the strokes making up the first user input have been received.
Whilst the representations of the first set of strokes are displayed, a second set of strokes corresponding to a second user input is received 1230. The second set of strokes at least partially overlaps the first set of strokes, for example in the manner described above in relation to the overlapping between the strokes making up characters. Representations of the second set of strokes are displayed as the second set of strokes are received·for example during the entry of each stroke, or immediately after an entire stroke has been entered.
The first and second characters are then resolved 1240, 1250 from the first and second sets of strokes. Although the illustrated method shows the resolution of the first character before the resolution of the second character, the resolutions can be performed in any order supported by the character recognition technique that is used.
Although the strokes that that make up the first and second user inputs may be overlapped spatially (e.g. a stoke relating to the second character may overlie a stroke relating to the second character), in at least some embodiments they may not be overlapped temporally. That is, all of the strokes that relate to the first character will precede all of the strokes that make up the second character. Therefore, the order of the strokes and/or their timing (for example, the presence of a pause between the final stroke of the first character and the first stroke of the second character) can be used to differentiate between the separate inputs (i.e. characters). This differentiation may also use other information, for example historical input information for the user, and pattern-matching of the strokes in a character recognition model. An observer viewing the displayed representation instantaneously will be unable to deduce the order or timing of the represented strokes and this, coupled with the illegibility of the overlapped strokes, will make it extremely difficult for the observer to deduce either the characters that have been entered or the order in which they were entered.
The protection against observation of a text string entered using the above techniques may make it suitable for application in the field of user authentication, for example in the input of a passcode that must be kept secret from observers. However, it will have other applications wherever it is desirable to protect entered text from prying eyes. For example, overlapping text entry may be employed by a user when composing confidential documents, or entering private information on a publicly viewable screen (for example, entering confidential text such as an instant message during a presentation where the user's screen is visible to an audience).
First of all, an input string is received 1310, using the overlapped input techniques described above. The method then determines 1320 whether or not the inputted string matches a predefined passcode. This determination may be based purely on a comparison of the inputted string with the passcode, or may also include information regarding the timing of the user entry of the strokes, and/or variance in the user entry. For example, if the authentic user is known to enter the strokes corresponding to the letter “P” with high speed and little variation, then it may be a requirement for a match that not only does a position of the character “P” in the input string match a position of “P” in the passcode, but that it is entered within particular tolerances of speed and variance. A “P” that includes a long delay between component strokes, or a “P” that departs substantially from the users historical written style might therefore not be accepted as a match, even if it otherwise matches the passcode.
If the input string and passcode do not match, some action may be taken. In the illustrated example the method simply accepts a new input string, but in other examples the method may lock a computing system, sound an alarm, or create a log of the unsuccessful passcode attempt.
If the inputted string matches the passcode then the user may be authenticated. However, if the string was entered with an adequate amount of overlapping then it may have been compromised if witnessed and understood by a third party. For this reason, the method 1300 then determines 1330 a measure of the extent of the overlap between the characters entered by the user (i.e. between the strokes used to input the characters). There are many ways in which such a measure could be determined.
These or other suitable techniques for determining a measure of overlap may be used in isolation or in combination to arrive at a final value for the measure of overlap between two characters. The total measure of overlap between all of the characters in an inputted string can be determined as a function of these individual values (e.g. a summation, or a maximum function).
If the measure of the overlap (either for individual characters, or for a an inputted string) falls below a predetermined threshold level, then an invitation is made 1350 to establish a new passcode, on the basis that an observer may have been able to determine the entered string by observing the representations of the users strokes. The invitation may be made by to the user (e.g. by a pop-up dialogue), or may be made to another entity if the passcode is set by an administrator, automated system for establishing passcodes, or any other suitable provider of passcodes. The invitation may be a requirement that a new passcode is provided before the user is permitted access to certain data or functionality. The invitation may comprise a disablement of the current passcode.
Without in any way limiting the scope, interpretation, or application of the claims appearing below, a technical effect of one or more of the example embodiments disclosed herein is that text can be entered in such a way that it is cannot be easily read by an observer. Another technical effect of the example embodiments is that feedback is provided to the user in the form of a representation of input strokes. Another technical effect is that passcode entry is made more secure.
Embodiments of the present invention may be implemented in software, hardware, application logic or a combination of software, hardware and application logic. The software, application logic and/or hardware may reside on a removable memory, within internal memory or on a communication server. In an example embodiment, the application logic, software or an instruction set is maintained on any one of various conventional computer-readable media. In the context of this document, a “computer-readable medium” may be any media or means that can contain, store, communicate, propagate or transport the instructions for use by or in connection with an instruction execution system, apparatus, or device, such as a computer, with examples of a computer described and depicted in
If desired, the different functions discussed herein may be performed in a different order and/or concurrently with each other. Furthermore, if desired, one or more of the above-described functions may be optional or may be combined.
Although various aspects of the invention are set out in the independent claims, other aspects of the invention comprise other combinations of features from the described embodiments and/or the dependent claims with the features of the independent claims, and not solely the combinations explicitly set out in the claims.
It is also noted herein that while the above describes example embodiments of the invention, these descriptions should not be viewed in a limiting sense. Rather, there are several variations and modifications which may be made without departing from the scope of the present invention as defined in the appended claims.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/CN2009/076249 | 12/30/2009 | WO | 00 | 8/1/2012 |