This invention relates generally to methods, devices, systems and/or storage media for graphical passwords.
As communication enabling technologies such as the Wireless Access Protocol and Bluetooth have resulted in a recent proliferation of mobile computation platforms such as browser-enabled wireless phones, Pocket PCs, wearable computers, and Internet appliances, application developers have focused on porting software onto these miniature computers. Since graphical input commonly dominates keyboard on such systems, many routines, such as a logon process, require adaptation to touch-pads and stylus mediated human-computer interaction. Technologies for accomplishing such tasks, as well as other tasks, are presented below.
Methods, systems, devices and/or storage media for passwords. An exemplary method tiles an image, associates an index with each tile and optionally determines offsets for select tiles. Further, the tiling optionally relies on probability of, for example, pixel, region and/or tile selection, and/or entropy, for example, entropy of a password space. An exemplary password system includes an image; a grid associated with the image, the grid composed of polygons; an index associated with each polygon; and an offset associated with each polygon wherein password identification relies on one or more indices and one or more offsets. Other exemplary methods, systems, devices and/or storage media are also disclosed.
Additional features and advantages of the various exemplary methods, devices, systems, and/or storage media will be made apparent from the following detailed description of illustrative embodiments, which proceeds with reference to the accompanying figures.
A more complete understanding of the various methods and arrangements described herein, and equivalents thereof, may be had by reference to the following detailed description when taken in conjunction with the accompanying drawings wherein:
Turning to the drawings, wherein like reference numerals refer to like elements, various methods are illustrated as being implemented in a suitable computing environment. Although not required, the methods will be described in the general context of computer-executable instructions, such as program modules, being executed by a personal computer and/or other computing device. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. Moreover, those skilled in the art will appreciate that various exemplary methods may be practiced with other computer system configurations, including hand-held devices, multi-processor systems, microprocessor based or programmable consumer electronics, network PCs, minicomputers, mainframe computers, and the like. Various exemplary methods may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote memory storage devices.
In some diagrams herein, various algorithmic acts are summarized in individual “blocks”. Such blocks describe specific actions or decisions that are made or carried out as a process proceeds. Where a microcontroller (or equivalent) is employed, the flow charts presented herein provide a basis for a “control program” or software/firmware that may be used by such a microcontroller (or equivalent) to effectuate the desired control of the stimulation device. As such, the processes are implemented as machine-readable instructions storable in memory that, when executed by a processor, perform the various acts illustrated as blocks.
Those skilled in the art may readily write such a control program based on the flow charts and other descriptions presented herein. It is to be understood and appreciated that the subject matter described herein includes not only devices and/or systems when programmed to perform the acts described below, but the software that is configured to program the microcontrollers and, additionally, any and all computer-readable media on which such software might be embodied. Examples of such computer-readable media include, without limitation, floppy disks, hard disks, CDs, RAM, ROM, flash memory and the like.
Various technologies are described herein that pertain generally to password systems and/or methods. Many of these technologies can enhance security and/or simplify password secured transactions (e.g., logon, etc.).
Exemplary computing environment 120 is only one example of a suitable computing environment and is not intended to suggest any limitation as to the scope of use or functionality of the improved methods and arrangements described herein. Neither should computing environment 120 be interpreted as having any dependency or requirement relating to any one or combination of components illustrated in computing environment 120.
The improved methods and arrangements herein are operational with numerous other general purpose or special purpose computing system environments or configurations. Examples of well known computing systems, environments, and/or configurations that may be suitable include, but are not limited to, personal computers, server computers, thin clients, thick clients, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like.
As shown in
Bus 136 represents one or more of any of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any of a variety of bus architectures. By way of example, and not limitation, such architectures include Industry Standard Architecture (ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus, Video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnects (PCI) bus also known as Mezzanine bus.
Computer 130 typically includes a variety of computer readable media. Such media may be any available media that is accessible by computer 130, and it includes both volatile and non-volatile media, removable and non-removable media.
In
Computer 130 may further include other removable/non-removable, volatile/non-volatile computer storage media. For example,
The drives and associated computer-readable media provide nonvolatile storage of computer readable instructions, data structures, program modules, and other data for computer 130. Although the exemplary environment described herein employs a hard disk, a removable magnetic disk 148 and a removable optical disk 152, it should be appreciated by those skilled in the art that other types of computer readable media which can store data that is accessible by a computer, such as magnetic cassettes, flash memory cards, digital video disks, random access memories (RAMs), read only memories (ROM), and the like, may also be used in the exemplary operating environment.
A number of program modules may be stored on the hard disk, magnetic disk 148, optical disk 152, ROM 138, or RAM 140, including, e.g., an operating system 158, one or more application programs 160, other program modules 162, and program data 164.
The improved methods and arrangements described herein may be implemented within operating system 158, one or more application programs 160, other program modules 162, and/or program data 164.
A user may provide commands and information into computer 130 through input devices such as keyboard 166 and pointing device 168 (such as a “mouse”). Other input devices (not shown) may include a microphone, joystick, game pad, satellite dish, serial port, scanner, camera, etc. These and other input devices are connected to the processing unit 132 through a user input interface 170 that is coupled to bus 136, but may be connected by other interface and bus structures, such as a parallel port, game port, or a universal serial bus (USB).
A monitor 172 or other type of display device is also connected to bus 136 via an interface, such as a video adapter 174. In addition to monitor 172, personal computers typically include other peripheral output devices (not shown), such as speakers and printers, which may be connected through output peripheral interface 175.
Logical connections shown in
When used in a LAN networking environment, computer 130 is connected to LAN 177 via network interface or adapter 186. When used in a WAN networking environment, the computer typically includes a modem 178 or other means for establishing communications over WAN 179. Modem 178, which may be internal or external, may be connected to system bus 136 via the user input interface 170 or other appropriate mechanism.
Depicted in
In a networked environment, program modules depicted relative to computer 130, or portions thereof, may be stored in a remote memory storage device. Thus, e.g., as depicted in
Referring to
Referring to
Referring to
For a user to logon to one of the remote computers 420, 424 using a password, the remote computers 420, 424 typically compare the user entered password to information contained in memory. In general, a variety of authentication protocols exist, which, for example, include Kerberos, SMB, EKE, SPEKE, B-SPEKE, SRP, etc. Such protocols optionally support remote password-based authentication over an untrusted or insecure communication channel. For example, Kerberos is typically a centralized shared-secret ticket-based network authentication system and SMB is typically a challenge-based protocol that does not involve password transport to a remote server but a proof of a successful challenge test at a client.
Referring to
Hashing typically involves use of a hash function (e.g., “MD5”, “SHA-1”, etc.) to reduce or condense the password and other information. The Secure Hash Algorithm (SHA) was developed by the National Institute of Standards and is specified in the Secure Hash Standard (SHS, FIPS 180). A revised version, entitled SHA-1, was published in 1994 (e.g., see ANSI X9.30 standard). SHA-1 produces a 160-bit (20 byte) message digest. MD5 was developed by Prof. R. Rivest (MIT, Cambridge, Mass.) in 1994 and has a 128 bit (16 byte) message digest. Various hash functions produce a message digest or “fingerprint” that is generally non-reversible: data cannot be retrieved from the fingerprint, yet the fingerprint aims to uniquely identify the data.
A traditional approach to logging onto a system typically involves typing a password associated with a username. When a password is entered for the first time, such a system computes a secure hash of the entered password and stores it into one of the system files (e.g., on UNIX systems “/etc/passwd”). At logon, the system computes again the hash of the entered password and compares this value with the stored one, a process known as “hash check”. If the computed hash and the stored hash match, the user is granted access. In order to prevent a user from identifying another user with the same password, before hashing, passwords are usually salted with a user-specific random variable (e.g., two characters in UNIX) which is also stored in the password information file (e.g., file name “passwd”). Although security of such a login mechanism has provable reliability, one of the most common attacks to a system that relies on alphanumeric characters is the dictionary attack.
Of course, a dictionary attack can be launched off-line and/or on-line. Regarding on-line attacks, the success rate for such attacks can be diminished substantially by prohibiting access to a system after a certain number of unsuccessful logins. Indeed, various exemplary password systems and/or methods described herein optionally implement such a strategy against attacks. Regarding off-line attacks, it is typically more difficult to prevent such attacks; it may also be difficult to prevent attacks where the adversary ultimately obtains an entire password information file through a virus, Trojan horse, as a system user, etc. Various aspects of various exemplary password systems and/or methods are optionally implemented to diminish the success of off-line attacks. For example, an exemplary password system optionally stores a password image at one site and authentication information at another site. Of course, other aspects are optionally implemented in an exemplary system and/or method to diminish and/or eliminate success of various off-line attacks.
Referring to
In the case of aforementioned picture systems, the computer 620 either contains the set of pictures 616 or contains an alpha and/or numeric character map of the set of pictures 616. For example, referring to
As discussed herein, various exemplary systems rely on images having a variety of features. For example, referring to
Referring to
Referring to
Referring to
More formally, ∈ is optionally defined as follows:
(∀P∈δi)(∀Q∉πi)∥P−Q∥>∈
wherein Q is a selected pixel that does not belong to the set of pixels that make up a given polygon πi. In a typical Cartesian coordinate system used for pixel images, the distance ∥P−Q∥>∈ is optionally calculable by the following equation:
∥P(xp,yp)−Q(xq,yq)∥=√{square root over ((xp−xq)2+(yp−yq)2)}{square root over ((xp−xq)2+(yp−yq)2)}
Of course, other coordinate systems are optionally suitable; however, in general, an image-based password system typically uses one or more tolerances. A tolerance is optionally determined and/or set during an image analysis process and/or tiling process. For example, an image segmentation process optionally segments an image and determines an appropriate tolerance and/or tolerances. Image analysis optionally includes, without limitation, an analysis implementing filters, edge detection, segmentation, connectivity, contours, thresholds, etc.
According to the instant exemplary password system, one or more consequences may stem from a user selected pixel “P” falling within a core region “δ” or a tolerance region “τ” of a polygon “π” during password selection or creation. Referring to
In Case I, a user selects a pixel Pδ contained within δi of πi. Because Pδ is contained within δi, the selected pixel Pδ maps to the polygon πi and is assigned as Pi, where the index “i” corresponds to the polygon πi. In addition, an offset is optionally calculated that corresponds to Pi and πi, for example, wherein the offset corresponds to a difference between Pδ(xδ, yδ) and Pδ′(xδ′, yδ′). As shown in
In Case II, a user selects a pixel Pτ contained within τi of πi. Because Pτ is contained within τi, the selected pixel Pτ maps to the polygon πi and is assigned as Pi, where the index “i” corresponds to the polygon πi. In addition, an offset is optionally calculated that corresponds to Pi and πi, for example, wherein the offset corresponds to a difference between Pτ(xτ, yτ) and Pδ″(xδ″, yδ″). As shown in
In Case III, a user selects a pixel Q, wherein Q is not contained within πi or optionally, ∥Pδ″−Q∥>∈, wherein Pδ″ is the closest pixel to Q within δi. Because Q is not contained within πi, the selected pixel Q does not map to the polygon πi. Of course, this particular pixel may optionally map to another polygon (e.g., wherein Q is contained within a region such as τi or δi of another polygon).
In the instant exemplary password system, wherein a user has selected π7, π10, and π20, information is typically stored in the form of three main components: ψ0, ψ1, ψ2. Of course, storage of fewer or more components is also possible. Of the three exemplary components, the first component ψ0 contains information corresponding to a user, for example, a pointer to a user; the second component ψ1 contains information corresponding to a hash of the selected polygons (e.g., π7, π10, and π20); and the third component ψ2 contains information corresponding to, for example, a random selection of an offset from a set of offsets corresponding to each of the selected polygons; thus, ψ2 contains as many entries as selected polygons as subsidiary components (e.g., ψ2(P7, P10, P20)=[{a7, b7}, {a10, b10}, {a20, b20}]). Of course, a single offset not selected from a set of offsets is also possible. In addition, the order of exemplary components may vary from the order presented above. Yet further, any suitable format is optionally used to store or order components. For example, exemplary components are optionally stored as one or more vectors, one or more arrays, etc.
While a variety of hash functions and/or manners of selection are possible, the instant exemplary password system optionally relies on one or more of the equations that follow.
In the above equation, CSH is a hash function, typically a cryptographically secure hash function, p corresponds to the number of selected polygons in the set of L polygons and Cp corresponds to the “password”.
In the above equation, ψ2 is an ordered set of p pairs of integer numbers ψ2={Z,Z}p, where the i-th pair ψ2(Pi)={ai,bi}∈ψ2 is denoted as the transform or offset if a password pixel Pi(xi,yi)∈πj. Further, xk and yk are the coordinates of Pk, rand(t) returns a random element from the set t, and Ψ is a set of all possible transforms or offsets that can occur in Π.
For a given ∈, the set of all possible transforms (or offsets) Ψ in the set of polygons Π is limited to:
Ψ⊂{{a,b}|a,b ∈Z,|a|≦∈,|b|≦∈}
Of course, various exemplary password systems described herein are not limited to use of the aforementioned equations. Further, more or fewer main components and/or subsidiary components may be used. For example, salting may occur prior to the hash operation wherein the salt is optionally stored as another component (e.g., a fourth main component, ψ3).
Referring to
As already mentioned, an exemplary password system optionally uses an offset (e.g., determined in a password selection or creation process) during a logon process. Referring to
As shown in
Such an exemplary logon transform may also be explained in other terms. For example, the transform or offset may be considered to realign the grid. If a transform or offset is used to realign a polygon grid such that each selected pixel, at time of password selection or creation, is located in the center region of the containing polygon. For instance, if pixel P is originally selected in the tolerance region τi of polygon πi, then a transform or offset of x pixels and y pixels may realign pixel P to pixel P′ wherein P′ lies in a core region δi. If at logon, the user enters pixel Q wherein the position of Q lies within a Euclidean distance or tolerance ∈logon=(x2+y2)0.5 from the polygon πi, then this error may be tolerated. Thus, if Q can be transformed to Q′, using a “logon tolerance” transform or offset (e.g., Q′=Q+ψ2(Pi), Q′=Q+∈log on, Q′=Q+∈, Q′=Q+∈i, etc.), then the error is tolerated. Note that the exemplary logon tolerance transform or offset optionally depends on the component ψ2(Pi), thus, in such circumstances, no additional information is needed (i.e., the logon transform or offset and password selection or creation transform or offset are essentially the same or both members of the same set). Of course, other transforms or offsets are possible, for example, a transform or offset may be limited to x pixels and y pixels, etc.
Using such a logon tolerance, logon is allowed when, for example, the hash of the logon password Dp checks favorably with the hash of the stored password Cp. This process is optionally represented by the following equation:
wherein {ai, bi} corresponds to the i-th offset pair in ψ2 and P(x, y)+{a, b} equals P(x+a, y+b).
Security Metrics
Once constructed, an image grid creates a certain password space with respect to the content of the image and, for example, the potential offsets. In general, grid metrics impact security of the system, especially as related to brute-force attacks. Naive computation of the password space would raise the number of polygons to the power of the number of pixels in a password. However, it is typically unlikely that an image can provide sufficient visual diversity, such that each polygon in a grid of regular polygons is selected with equal probability. In addition, the security of the system should account for the fact that the grid structure and grid offsets may be obtained by the adversary (for example, by obtaining the system passwd file). Therefore, to provide insight on the security of various aforementioned exemplary password systems, the notion of entropy is introduced in relation to polygon selection. Under the notion of entropy, a grid of L polygons in space Π that results in maximum entropy, may be an objective of grid design.
Grid design may also consider subjective and/or objective likelihood or probability that a pixel or polygon is selected by a user as part of a password. For pixel probability, an exemplary system may generate a map having weights assigned to each pixel. For example, for a rectangular image having m pixels by n pixels in an x, y coordinate system, a weight w(x, y) associated with a pixel P(x, y) corresponds to the probability that the pixel is selected by a user during password selection or creation. Of course, for an image I may be divided into L polygons on the basis of pixel weighting or a pixel weight map. Further, an image I may be divided into L polygons wherein a polygon probability map is optionally developed subsequently.
Given a pixel probability map, an image I and a grid of L polygons, where Π(I)={πi|i=1 . . . L}, the entropy H of selecting a polygon equals:
where Ψ is the set of all possible offset combinations in the grid structure and θ({a,b},πi) denotes the probability that a pixel from polygon πi is selected with an offset {a, b} and equals:
A general assumption for assessing an attack on various exemplary password systems optionally includes a system file with the corresponding entries ψ0,ψ1,ψ2 available to the adversary as well as the image I, a corresponding probability weight map W, and a resulting grid Π. The latter assumption is valid if algorithms used for image analysis and grid design are publicly available and/or otherwise accessible with little effort; however, according to various exemplary systems described herein, generalities and/or specifics of image analysis and/or grid design are optionally proprietary and/or secured by any of a variety of security measures.
In this hypothetical example, to find the list of polygons that constitutes a given password Cp, the adversary may launch the following brute force attack. In a first step, for each pixel Pi ∈Cp, the adversary computes the subset of polygons Ω(Pi)⊂Π of minimal cardinality such that for the corresponding offset ψ2(Pi),
In this case, ∈pm is a parameter that balances computational complexity and likelihood of success, typically, ∈pm>0.9.
In a second step, the adversary generates the set of attack vectors as all possible p-long combinations of polygons CA={πA1 . . . πAp}, where each variable πAi takes the values of all polygons in the corresponding Ω(Pi). For each attack vector Ca ∈CA, the adversary computes ψ1(Ca) until it matches ψ1(Cp) retrieved from the password file. The cardinality of the set of attack vectors CA equals:
In order to minimize the expected length of the search, the adversary tests test vectors from CA with decreasing probability of occurrence.
In a sense, this attack resembles the “dictionary attack” for textual passwords because it identifies a subset of most likely password symbols and exhaustively tests all passwords from this subset against the stored ψ1. Under the assumption that the weight map W used by the adversary is accurate, the likelihood of success for this attack is strongly governed by the cut-off threshold ∈pm and equals Pr[Cp ∈CA]=1−∈pmp.
Exemplary Grid and/or Tiling Processes
Described herein are various exemplary methods for making a grid or tiling an image with polygons or other shapes such that the entropy of tile selection during password entry is maximized for a given tolerance ∈ of, for example, pixel selection. According to such exemplary methods, grids are optionally constructed from a single shape polygon, multiple polygon shapes, and/or using Voronoi polygons. In addition, tiling optionally occurs in conjunction with image segmentation and/or weighting, for example, but not limited to, probability weighting of image pixels.
From the aforementioned entropy equation H(Π), maximal entropy is achieved for a set Π of L polygons if:
(∀{a,b}∈Ψ)(∀π∈Π)θ({a,b},π)=const.>0
In general, this case can occur only if (∀P∈I)w(P)=const.>0. However, it is relatively unlikely that any image can provide visual diversity such that the human eye can, with equiprobability, select any pixel as a password pixel. Hence, certain variance in the probability θ({a,b},π) that polygon π has been selected with an offset {a, b} must exist with respect to distinct polygons and offset values. For the sake of brevity and simplicity, consider the following model for the image weight map W. According to this exemplary model, each pixel weight takes randomly one of the two values:
where 0<μ≦1 (typically for images 0<μ≦0.05) and m and n are image dimensions for a rectangular image in pixels (groups of pixels, etc.). In addition, pixels having w(P)=μ may be considered “clickable” (or otherwise selectable).
To illustrate some potential differences stemming from polygon size and/or shape,
On the other hand,
This particular tradeoff may be further evaluated as for an image tiled with a single shape polygon (e.g., square, hexagon, etc.). The following analysis is based on several assumptions. First, the image plane is significantly larger than polygon area m×n>>A(π), where π is the tiling polygon and the function A(π) returns the area of π in pixels. Second, “clickable” points are relatively infrequent, i.e., μ−1<|δ|, and randomly dispersed throughout the image. Third, for relatively large polygons (e.g., |π|>30 pixels), “edge effects” are neglected, where “edge effects” refer to pixilated edges of polygons (which if taken into account would increase the number of sides of a polygon). Fourth, the cardinality of an offset region of a polygon equals the cardinality of a polygon's core region, where an offset region of a polygon is defined as follows. For a given polygon π with an associated core region δ, its offset region, denoted as σ({a,b}), is optionally defined as a subset of pixels in π, such that for each pixel P ∈σ({a,b}), P+{a, b}∈δ. Note that in general |σ({a,b})|≦|δ|, for example, in
A theorem for optimal polygon size for maximum entropy tiling follows. For a given image I of m×n pixels, a tolerance of ∈, and a weight map W (modeled per the aforementioned equation with a uniform probability μ that a pixel is selected as a password pixel), the optimal size of a polygon of fixed shape that results in a maximized H(Π) (per aforementioned equation for H(Π)), is the one that results in a maximum number of polygons that contain at least one “clickable” pixel and is approximately determined as the maximum of the following function:
with respect to polygon size A(π) and related size of its core region A(δ) which is uniquely determined based on a given π and ∈ as ∈ is optionally defined above.
The aforementioned theorem is suitable, for example, for determining the optimal square polygon size for a given click password system. For a click tolerance of at least ∈ pixels (e.g., ∈ defined as number of pixel wherein, for example, each pixel has x=1 and y=1) and a core region square with an edge of a pixels, the resulting edge length of the tiling polygon equals a+∈ pixels. From the aforementioned equation for ξ(π), the following equation may be derived:
Typically, finding a, which results in a maximum value for this function, is solvable using standard numerical methods.
According to an exemplary system and/or method, a polygon shape that optionally maximizes the number of polygons with respect to a fixed perimeter of the polygon is a hexagon. The size of a uniform tiling hexagon for a given click password system (e.g., having image-specific parameters m, n, ∈, and μ) is optionally derived using the aforementioned theorem.
Voronoi Polygon Grid and/or Tiling
An exemplary method for defining a Voronoi polygon grid and/or tiling includes assigning various pixels to various polygons. According to this exemplary method, a suitable image is representable to a user as a set of pixels, for example, on a display. Further, as already mentioned, for any polygon, here including Voronoi polygons, π optionally has an associated core region δ wherein its offset region is optionally defined as a subset of pixels in π, such that for each pixel P∈σ({a,b}),P+{a,b}∈δ. Yet further, for any given chosen pixel Q, a distance is determinable between a pixel P and Q.
More formally, in an exemplary method for defining a Voronoi polygon grid, a given image I has a Voronoi grid of L polygons (e.g., Π(I)={πi,i=1 . . . L}⊂I,Pi→πi) such that a given pixel Q∈I belongs to the polygon πj∈Π, if and only if the polygon's defining pixel Pj has the shortest Euclidean distance from Q with respect to all other pixels in Γ. In this exemplary method, if there are several pixels in Γ that share the same shortest distance from Q, the pixels are sorted in any of a variety of manner, for example, in the decreasing order of their x-ordinates and y-abscissas respectively (e.g., for a Cartesian coordinate system), and, for example, the top-sorted pixel is selected. According to such an exemplary Voronoi grid, the grid is fully defined using the subset of pixels Γ. Further, for a given tolerance (e.g., ∈), a central region for each polygon πi, is optionally definable by (∀P∈δi)(∀Q∉πi)∥P−Q∥>∈, as already described above.
Through use of such an exemplary method for tiling, it is optionally possible to create a Voronoi grid such that the entropy of polygon selection is effectively maximized. An exemplary heuristic solution uses a constructive algorithm that tiles an image using a “1-lookahead greedy” strategy. In general, polygon selection entropy is maximized if the cardinality L of the polygon set ┌ is maximized while within each polygon the minimal likelihood of occurrence of any offset from Ψ is non-zero (see, e.g., above equations for Ψ, ψ1). Hence, for such a polygon grid and for a given offset, an adversary needs to consider all polygons in Π in its brute force attack. Such an approximation of the original optimization goal is typically effective mainly because of two facts: (1) “clickable” islands of pixels have relatively large mutual distances as the nature of human perception requires isolated graphical features (corners, dots, symbols, etc.) to select them, and (2) there are not more than a few “clickable” pixels per polygon, as an intention to keep the polygon size as small as possible is often desirable.
Defining a grid according to such an approximation can result in a relatively small variance in the likelihood that a certain polygon is selected given a certain offset across all polygons in the grid. In general, quality of a grid or solution Π is optionally verifiable via computation of a corresponding security metric (e.g., H(Π), as defined above). Finally, an optimization objective is optionally generalized such that L is maximized under the condition that within each polygon ρ·|Ψ| of offsets from Ψ have a non-zero likelihood of selection. For the sake of brevity, as described herein, an exemplary method uses the constraint ρ=1.
An exemplary method for tiling includes two maps: a binary coverage map MC={0, 1}m×n where each element MC(x, y) denotes that pixel P(x, y) ∈I has been covered during polygon tiling, and an integer polygon-size map MP={Z}m×n, where each element MP(x, y) equals the minimal radius of a pixel-rasterized circle centered at P(x, y) which has a non-zero likelihood occurrence of any offset in Ψ wherein the radius of the circle is at least ∈+1 pixels.
The value of each element in MP is optionally computed using exhaustive search formally described using, for example, the following exemplary pseudo-code for determining a size map MP (e.g., MP):
For a given “click” tolerance ∈ and a given pixel P(x,y), its value MP(x, y) is optionally computed in the following manner. In the starting iteration, a polygon π of circular shape centered at P(x, y) with radius ∈+1 is created. If for all possible offsets in Ψ, their offset-regions contain at least one “clickable” pixel, then π is accepted as the resulting polygon and MP(x, y) is set to the value of polygon's radius. In subsequent iterations, the radius of polygon π is increased until 2∈. If a polygon with satisfactory characteristics is not found, then MP(x, y)=∞. Polygons larger than this maximal size are never selected explicitly during the tiling procedure, because a polygon with radius 2∈ and a “clickable” pixel at P(x, y), is generally guaranteed to contain at least one “clickable” pixel for each possible offset-region. Once all polygons are selected, the respective polygon borders are optionally recomputed according the aforementioned exemplary formal method for defining a Voronoi polygon grid. In addition, various borders may exceed a maximal area of a polygon, a condition that is optionally handled in a subsequent procedure.
An exemplary Voronoi tiling method optionally aims to find a max-cardinality subset Γ of pixels in I such that all polygons defined within Γ have non-zero likelihood of occurrence for any offset in Ψ. The resulting max-cardinality problem is NP-complete as it is mapable to a SET PACKING problem (see, e.g., Garey and Johnson, Computers and Intractability, Freeman, 1979). For example, for each pixel P(x, y), a set is created that encompasses all neighboring pixels covered by a polygon π centered at P and with radius MP(P). This particular problem has a domain composed of a collection of such sets for all pixels P with a finite value of their corresponding polygon-size map MP(P)=∞. In addition, this particular problem has an optimization goal finding the selection of mutually disjoint sets from the collection having maximal cardinality.
According to an exemplary method, Voronoi tiling is optionally performed as outlined by the following exemplary pseudo-code:
In an initialization procedure, the coverage map MC (e.g., MC) is initialized to zero, the size map MP(e.g., MP) is computed, for example, as described above (see exemplary code for a size map), and a resulting set Γ is initiated to an empty set. A solution is typically determined or “built” in a sequence of constructive iterations. In such a constructive sequence, each iteration includes computing a set Λ of all points which are not covered and having finite polygon-size map values. Per iteration, a single pixel P(x, y) is added to a final solution wherein the added pixel generally has the following properties: (1) it belongs to the set λ1 ⊂Λ, where each pixel Q ∈λ1 has a smaller or equal polygon-size value with respect to all other pixels in Λ; and (2) it has the largest value among all pixels in λ1 for the following objective function:
Sets θ1(P) and θ2(P) are creatable as a collection of “clickable” pixels in a circular polygon centered at P with radius MP(P)+∈+1 and a collection of yet uncovered “clickable” pixels in the ring of pixels centered at P and with an outer radius MP(P)+2∈ and an inner radius MP(P)+F+1, respectively. More formally, sets θ1(P) and θ2(P) are optionally definable as follows:
θ1(P)={Q∈I|w(Q)>0 ^∥Q−P∥≦MP(P)+∈+1}
θ2(P)={Q∈I|MC(Q)=0 ^w(Q)>0^MP(P)+∈+1<∥Q−P∥≦MP(P)+2∈}
The scaler ratio η(P), as used above in g(P), quantifies the ratio of covered versus total pixels in the above mentioned ring of pixels. The function g(P) aims to heuristically direct a search by enforcing intermediate solutions that have, for example, the following properties:
(1) “Least constraining”—a small number of “clickable” pixels in a circular polygon centered at P with radius MP(P)+∈+1. With this property, by covering as few as possible “clickable” pixels with the selection of each Voronoi polygon, part of the image not yet covered with polygons has as many as possible “clickable” pixels. In general, this property improves the likelihood for obtaining a better solution; and
(2) “1-lookahead most constrained”—the neighborhood of each selected polygon, i.e., the ring of pixels Q at distance MP(P)+∈+1<∥Q−P∥≦MP(P)+2∈ from P, proportional to its cardinality, should have as many as possible “clickable” pixels. This property improves the likelihood that a search algorithm finds a better solution in the neighborhood of a current polygon.
According to an exemplary method, after selection of a pixel P(x, y), all pixels Q(x, y) ∈I at Euclidean distance ∥Q−P∥≦MP(P)+MP(Q) are generally marked as covered MC(Q)=1. According to an exemplary method, one or more constructive iterations follow until all “clickable” pixels are covered or an additional polygon of minimal area cannot be added to the set Γ. An aggregated collection of pixels (e.g., pixels in the set Γ), optionally defines a resulting Voronoi polygon tiling, for example, according to the aforementioned formal exemplary method for defining a Voronoi polygon grid.
As described above, an exemplary method for Voronoi polygon tiling that aims to maximize entropy of polygon selection is optionally a SET PACKING problem (e.g., an optimization task known to be NP-complete). As described above, an exemplary method for generating a solution to such a problem optionally includes a constructive heuristic with complexity linearly proportional to the number of “clickable” pixels in a considered image.
Various exemplary methods for griding and/or tiling optionally include probabilistic iterative improvement post-processing and/or simulated annealing (see, e.g., Cormen, et al., Introduction to algorithms, MIT Press, 1990). In addition, an exemplary password system stores a Voronoi tiling on a computer system and/or recomputes a Voronoi tiling before each login.
In general, a well-recognized limitation of text-based passwords is the stringent set of alphabet symbols that are commonly used to construct typically memorizable passwords. In response to such password systems, adversaries have created numerous programs that can typically break more than one quarter of all passwords in a system using a simple “dictionary attack”. According to various exemplary methods, contents of an image are partitioned as a polygon tiling where each polygon represents a password symbol and typically a distinct password symbol. For example, according to an exemplary method, by clicking on a particular pixel, a user selects a symbol represented by a containing polygon. Further, an exemplary method optionally provides a limited tolerance to inaccuracy during pixel selection at logon. Analysis and/or assessment of various exemplary image-based password systems optionally involves computing a security metric such as, but not limited to, the entropy of polygon selection. In addition, such a security metric (e.g., an entropy, etc.) is optionally used in tiling, for example, wherein a metric is maximized, minimized, etc. to achieve a desirable result. Yet further, an exemplary method optionally assigns weights and/or probabilities to various pixels, groups of pixels, objects, etc. (e.g., a weight associated with the likelihood that a certain pixel will be selected as a password component). Such an exemplary method optionally produces a map wherein the map is useful in analysis, tiling and/or other assessment of an exemplary password system.
Various Exemplary Methods
Various exemplary password methods described herein may incorporate one or more aspects of the exemplary password systems described above. For example, referring to
Referring to
Referring to
In a selection block 1716, the user selects a position on the displayed image. Following the selection (or optionally a series of selections, etc.), an association block 1720 associates the position with a tile and/or the tolerance of the tile. Next, in an application block 1724, the tolerance is optionally applied to the position to determined, for example, if the position should be designated as belonging to the tile. In the exemplary method 1700, the tolerance is optionally an offset or a transform and/or optionally used to determine one or more offsets or one or more transforms.
Referring to
In a selection block 1812, the user selects a position on the displayed image. Following the selection, an association block 1816 associates the selected position with a tile. Next, in a determination block 1820, the exemplary method 1800 determines a set of offsets (or transforms) composed of offsets that can re-position (or move) the selected position to other positions within the bounds of the tile. Thereafter, in another selection block 1824, one of the offsets in the set of offsets is selected. In general, the selected offset is selected randomly from the set of offsets (e.g., using a random function or pseudo-random function).
Referring to
Referring to
In such an exemplary method (e.g., method 2000), image analysis optionally occurs prior to the determining a tiling. For example, image analysis optionally includes segmentation and/or weighting, such as, but not limited to, probability weighting. Image analysis optionally assists the determining a tiling and/or the defining. Further, the determining optionally uses entropy as a factor, for example, but not limited to, wherein the determining maximizes an entropy based on an entropy function, such as, but not limited to, above described entropy functions.
Referring to
In such an exemplary method (e.g., method 2100), image analysis optionally occurs prior to the determining a tiling. For example, image analysis optionally includes segmentation and/or weighting, such as, but not limited to, probability weighting. Image analysis optionally assists the determining a tiling and/or the defining. Further, the determining optionally uses entropy as a factor, for example, but not limited to, wherein the determining maximizes an entropy based on an entropy function, such as, but not limited to, above described entropy functions.
Referring to
Referring to
Although some exemplary systems, methods and media have been illustrated in the accompanying Drawings and described in the foregoing Detailed Description, it will be understood that the methods, systems and/or media are not limited to the exemplary embodiments disclosed, but are capable of numerous rearrangements, modifications and substitutions without departing from the spirit set forth and defined by the following claims.
This patent application is a continuation application of U.S. patent application Ser. No. 10/187,311, entitled “Click Passwords”, filed on Jun. 28, 2002 (now U.S. Pat. No. 7,243,239), which is incorporated by reference herein.
Number | Name | Date | Kind |
---|---|---|---|
5465084 | Cottrell | Nov 1995 | A |
5559961 | Blonder | Sep 1996 | A |
5608387 | Davies | Mar 1997 | A |
5778069 | Thomlinson et al. | Jul 1998 | A |
6075905 | Herman | Jun 2000 | A |
6185316 | Buffam | Feb 2001 | B1 |
6209104 | Jalili | Mar 2001 | B1 |
6393305 | Ulvinen et al. | May 2002 | B1 |
6516092 | Bachelder et al. | Feb 2003 | B1 |
6720860 | Narayanaswami | Apr 2004 | B1 |
6788304 | Hart et al. | Sep 2004 | B1 |
6868190 | Morton | Mar 2005 | B1 |
6948068 | Lawandy et al. | Sep 2005 | B2 |
6959394 | Brickell et al. | Oct 2005 | B1 |
7219368 | Juels et al. | May 2007 | B2 |
7243239 | Kirovski et al. | Jul 2007 | B2 |
7383570 | Pinkas et al. | Jun 2008 | B2 |
20010037468 | Gaddis | Nov 2001 | A1 |
20010044906 | Kanevsky et al. | Nov 2001 | A1 |
20020029341 | Juels et al. | Mar 2002 | A1 |
20030093699 | Banning et al. | May 2003 | A1 |
Number | Date | Country | |
---|---|---|---|
20080016369 A1 | Jan 2008 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 10187311 | Jun 2002 | US |
Child | 11775159 | US |