In security schemes a device attempting to access a service can be challenged and only if the device replies with the correct response, will it be allowed to access the service. In some schemes a username and password are the only credentials used to validate a user of the device; however in more secure systems the challenger may ask the devices one or more questions. If the devices answer the question(s) correctly, then the challenger will allow the devices to access a service. These schemes usually only include a finite set of questions and since the set of challenge questions is finite, a dictionary attack may be a successful way to overcome this scheme. For example, since the probability that a challenge question will be reused at some point is high there is a chance that an attacker could figure out the correct response to that question with enough time and wait for the security system to ask the question again to gain access to the service. This chance is increased when multiple attackers with powerful computer systems try to collect the entire set of security questions. For example, attackers could collect the entire question space in a short amount of time by working together to build a dictionary of possible questions soon after a product or service is made accessible to the public. The attackers can monitor the protocol used by the device, or service, to communicate with a security system during the challenging process, and/or monitor how correct answers are processed by the CPU to figure out some, or all of the answers to the challenge questions. At some point after the dictionary of questions is complete, or at least a substantial portion is, the attackers could release a product that can fool the security system and people could gain unauthorized access to the service.
Generally in computing systems an implementer may desire that the number of possible questions to be infinite, however in certain instances, such as the instance where a security system is challenging a disk, a device, or a user, there may only be a limited amount of questions that can be asked due to limitations such as memory limits on the amount of space that is devoted to storing questions and answers, or fact that a disk only contains a limited amount of physical or logical properties, and the like. Thus, unless there are mechanisms in place to prevent all of the questions from being asked, an attacker with a powerful computer can process the entire question set with little or no trouble. Since an implementer may want to prevent this, there is a need to develop various techniques that can be used to make collecting an entire dictionary of questions that a security service may use difficult and time consuming.
In an example embodiment of the present disclosure, a computer readable storage medium is provided that includes, but is not limited to instructions for selecting an initial partition in a question set in accordance with a parameter; instructions for selecting a final partition in the question set in accordance with a randomizing variable and the initially selected partition; instructions for challenging a computing component with a question selected from the final partition. In addition to the foregoing, other aspects are described in the claims, drawings, and text forming a part of the present disclosure.
In an example embodiment of the present disclosure, a computing system is provided that includes, but is not limited to, an optical disk drive operable to receive a disk; a memory location operable to store a question set, the question set partitioned into a plurality of groups; a processor configured to select an initial question group from the plurality of available groups in accordance with a length of time the question set has been stored in memory; the processor further configured to use randomizing criteria on the selected initial question group to select a final question group; the processor further configured to select a question related to a property of the disk from the final group; and the processor further configured to determine whether the disk includes the property. In addition to the foregoing, other aspects are described in the claims, drawings, and text forming a part of the present disclosure.
In an example embodiment of the present disclosure, a method provided that includes, but is not limited to, receiving, by a device, a disk; accessing a table of available question partitions from a question set; using a first criteria to select an initial question partition from the available question partitions; wherein the criteria is related to a length of time the question set has been stored on the device; the processor further configured to use randomizing criteria on the selected initial question group to select a final question group; the processor further configured to select a question related to a property of the disk from the final group; and the processor further configured to determine whether the disk includes the property. In addition to the foregoing, other aspects are described in the claims, drawings, and text forming a part of the present disclosure.
It can be appreciated by one of skill in the art that one or more various aspects of the disclosure may include but are not limited to circuitry and/or programming for effecting the herein-referenced aspects; the circuitry and/or programming can be virtually any combination of hardware, software, and/or firmware configured to effect the herein-referenced aspects depending upon the design choices of the system designer.
The foregoing is a summary and thus contains, by necessity, simplifications, generalizations and omissions of detail. Those skilled in the art will appreciate that the summary is illustrative only and is not intended to be in any way limiting.
Numerous embodiments of the present disclosure may execute on a computer.
As shown in
A number of program modules may be stored on the hard disk, magnetic disk 29, removable optical disk 31, ROM 24 or RAM 25, including an operating system 35, one or more application programs 36, other program modules 37 and program data 38. A user may enter commands and information into the personal computer 20 through input devices such as a keyboard 40 and pointing device 42. Other input devices (not shown) may include a microphone, joystick, game pad, satellite disk, scanner or the like. These and other input devices are often connected to the processing unit 21 through a serial port interface 46 that is coupled to the system bus, but may be connected by other interfaces, such as a parallel port, game port or universal serial bus (USB). A monitor 47 or other type of display device is also connected to the system bus 23 via an interface, such as a video adapter 48. In addition to the monitor 47, personal computers typically include other peripheral output devices (not shown), such as speakers and printers. The exemplary system of
The personal computer 20 may operate in a networked environment using logical connections to one or more remote computers, such as a remote computer 49. The remote computer 49 may be another personal computer, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to the personal computer 20, although only a memory storage device 50 has been illustrated in
When used in a LAN networking environment, the personal computer 20 is connected to the LAN 51 through a network interface or adapter 53. When used in a WAN networking environment, the personal computer 20 typically includes a modem 54 or other means for establishing communications over the wide area network 52, such as the Internet. The modem 54, which may be internal or external, is connected to the system bus 23 via the serial port interface 46. In a networked environment, program modules depicted relative to the personal computer 20, or portions thereof, may be stored in the remote memory storage device. It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers may be used. Moreover, while it is envisioned that numerous embodiments of the present disclosure are particularly well-suited for computerized systems, nothing in this document is intended to limit the disclosure to such embodiments.
Referring now to
Continuing with the description of
In some embodiments of the present disclosure the service provider 202 can include a security service 210. For example, the security service 210 can in some embodiments include a program that can be executed by a processor and can be configured to challenge any devices that attempt to gain access to the service 230. In a specific example, security service 210 can be an authentication server operable to handle packet based requests for services that include usernames and passwords. In this example, the security service 210 could be configured to search a database of valid usernames/passwords to find one that matches the credentials proffered by the user operating the device 200. In the instance that the username/password matches an entry in the database, the security service 210 can allow the device 200 to access the service 230. As illustrated by
As illustrated by the dashed lines in
Continuing with the description of
In order for a security service 210 to be able to challenge a removable optical disk 31 removable optical disk 31 could be manufactured to include security information 205 that can be interrogated by an optical disk drive 30 on behalf of a security service 210 of device 200. For example, a manufacturer can place certain physical or logical imperfections on the removable optical disk 31, or data on the device 200 during its manufacturing process. In the example where disks are manufactured to include imperfections, the imperfections make it difficult to create an exact copy the disk because most commercial disk copiers fix any physical or logical imperfections they encounter in a copying process. Knowing this, attackers may try to discover all the questions that a security service 210 will ask about the physical or logical properties of the removable optical disk 31 in order to build a dictionary. If the attacker is able to create a dictionary of questions and the appropriate answers that a disk should reply with, the attacker could modify the code of the removable optical disk 31 to include the dictionary and release a modified version of the disk that could present the correct answer to a challenge from a security service 210.
Referring now to
Continuing with the description, when the computing component 304 is manufactured, the manufacturer 306 can record where it placed the security information 205 on each computing component 304, and record what values the information should return if they are processed by the security service 210. This information can be compiled by the manufacturer 306 into a specification 309 that describes where the values are placed on the computing component 304 and what the values are. As illustrated by
For a computing component 304 the specification could describe thousands or millions of features that can be used by either a service provider 202 or a manufacturer 306 to generate a question table 305 that uses the features in security questions. Once a question table 305 is created, a portion of the table or the entire table 305 can be made available to the security service 210 of either the service 230 and/or security service 210 of the device 200. For example and as illustrated by
In some example embodiments, the security service 210 can be located on a device 200, the security service 210 can obtain a copy of the question table 305 or a subset 305 from a variety of sources. For example, in some example embodiments a subset of the question table 305 can be obtained from the service provider 202 via a network at predetermined times such as once a day, once a week etc. In one specific example, every time, or sometimes when a device 200 connects to a service 230 offered by the service provider 202, the service provider 202 can check to see what portion of the table 305 is stored on the device 200. If a newer portion of the table has been released, the service provider 202 can transmit it to the device 200 and overwrite the older portion. In another example embodiment, the device 200 can obtain a subset of the table 305 from a computing component 304. For example, when the manufacturer 306 creates a removable optical disk 31, it can place a subset of the question table 305 in the computing component 304. In this example embodiment, the security service 210 can be configured to check to see whether the security question table subset 305 stored on the computing component 304 is newer than the subset 305 the security service 210 is currently using. If it is, the security service 210 can be configured to overwrite the older subset of the question table 305 with the newer one. For example, in the instance that a computing component 304 is a removable optical disk 31, removable optical disk 31 can be manufactured to include a subset of the question table 305 and a date indicating how long the subset is valid. For example, disks manufactured between December 2005 and June 2006 could be manufactured to include a certain portion of the table and an indicator indicating how long it is valid, all disks released from July 2006 to November 2006 can include the next portion of the table and a different indicator, and so on and so forth. When a removable optical disk 31 is placed into the optical disk drive 30 the security service 210 can be configured to check to see if the subset table 305′ on the removable optical disk 31 is newer than the table it is using. If the subset on the removable optical disk 31 is newer, the device 200 can copy the table over and use it.
In certain embodiments of the present disclosure, the service provider 202 may only release a portion of the table 305 for various reasons. For example, the space available to store such information can be limited on a device 200 or a removable optical disk 31. For example, the full table 305 can in some instances include millions of questions and answers and the space dedicated to storing a table 305 on the device 200 could only be 1,000 kb. In one instance, the service provider 202 may only release certain portions of the question table 305 to prevent the entire question space from being available to the public. For example, the service provider 202 can maintain a schedule indicating how long certain portions of the question table 305 will be used, and can rotate through the question table 305 by releasing a new portion of the table from time to time. Thus, in some example instances the service provider 202 can slowly release different portions of table 305 over time, and space out the releases such that the life cycle of the disks such as removable optical disk 31, or devices such as device 200 may end before the entire list of possible questions 305 is exhausted. In embodiments where portions of the question table 305 are released over time, an attacker will not be able to cycle through the entire list 305 quickly. Even though in some instances only a portion of the question table 305 may be released at one point in time, an attacker may be able to quickly obtain a dictionary for the released portion. Thus, if the time that it takes an attacker to create a dictionary for a subset of a question table 305 is less than the time in between when the service provider 202 releases a new portion of the table 305, then the removable optical disk 31, or device 200 may be vulnerable for that period of time.
Referring now to
Continuing with the description of
In some example embodiment of the present disclosure, the question selection subsystem 312 of the security service 210 can be configured to use a distribution parameter that takes into account the current system time as recorded by an internal clock of the device 200, or service 230, and/or the time that the table was made available to the device 200, or the service 230. For example, a subset of table 305 can be made available at times such as one a month, once a year, etc. In one example embodiment the header 402 can include a timestamp that indicates the time that it was made available. The security service 210 can include instructions operable to select initial partitions in accordance with the current time as compared to time the subset of the question table 305 was made available.
In another example, the question selection subsystem 312 can be configured to use a distribution parameter associated with the current number of times questions have previously been selected. For example, each time that a question is selected can be recorded by the security service 210 and each partition in the subset of the question table 305 can be assigned a range of numbers. The question selection subsystem 312 can be configured to obtain the current number of times questions have been selected and find the partition that includes the number in its range. More specifically, in some embodiments the question selection subsystem 312 can be configured to select partition 403 as an initial partition when the current number of questions asked is between 0 and 10, partition 404 when the current number of questions asked is between 11-20, etc. In embodiments where the question selection subsystem 312 can be configured to process distribution parameters that vary how a question selection subsystem 312 is configured, it is less likely that a dictionary attack will quickly obtain all the questions in the subset of the question table 305.
As illustrated by
In an example embodiment of the present disclosure, an arbitrarily complex rule could have a probability associated with it. Similar to that described above, when the question selection subsystem 312 is selecting an initial partition it can be configured to use a random number generator 314 to obtain a random number and use it to select an initial partition. In this example, the arbitrarily complex rules could indicate that certain partitions should be selected a certain percentage of times until predetermined criteria occur. More specifically, if a question selection subsystem 312 is configured to calculate what partition to initially use to select questions from, and the conditions associated with a rule for a partition such as partition 404 have not occurred, then the probability of selecting partition 404 as an initial partition could be lower than the probability of selecting partition 405 for example. Since, in most cases dictionaries are not generally compiled by single individuals, but by an association, embodiments that include arbitrarily complex rules can make dictionary attacks more difficult since different arbitrarily complex rules may have been triggered on different devices, causing the question selection subsystem 312 on each device to select questions from different partitions in a subset of the question table 305. In this example, it may be difficult for the association to determine how close they are to completing a dictionary since two attackers may see different sets of challenges.
In some embodiments of the present disclosure, an arbitrarily complex rule can be related to system information, and/or user input, e.g., how many times a user presses a certain button on a controller, that could be recorded by the device 200. In these example embodiments an implementer can take advantage of user input, or system state information to unlock certain partitions or question in a subset of the question table 305, or in other embodiments, modify the probability that a partition, or a question will be selected from a subset of the question table 305. In a specific embodiment, an example rule related to system information could use information such as whether the partition/question logically next to the currently selected partition/question has been selected in the past month/week/day, or whether the device 200 has connected to a service offered by the service provider 202. In other embodiments, a rule could be related to user input such as whether a certain optical disk has been inserted into the optical disk drive 30, whether a user has played a certain movie, song, or game more than a certain amount of times. In a specific example, an implementer could associate a rule with a partition such as partition 406 that requires that a user press the ‘A’ button 10,000 times over the life of the device before the probability that partition 406 will be selected is increased from 2% to a fraction of the total partitions 403-406 in the subset of the question table 305, e.g., in this example 25%. In another specific example, the implementer could associate a rule with a partition such as partition 403 that requires that a user play a certain game for more than 10 hours before partition 403 is available. While an implementer could associate every partition, or every question with an arbitrarily complex rule, in certain embodiments the implementer may only associate certain rows, or partitions in order to maintain a large enough available question base.
Referring now to
Continuing with the description of
In another example embodiment, the question selection subsystem 312 can be configured to access a question table 305, or a subset of the question table 305 to select an initial partition to obtain a challenge question from by using a random number generator 314. For example, in some embodiments the security service 210 can include a random number generator 314, such as an algorithm that can generate a random or pseudo-random number. In these embodiments, the random number generator 314 can be configured to generate a number between 1 and 100. The question selection subsystem 312 can be configured to map the numbers 1-100 to the different partitions of the subset of the question table 305 or question table 305 and the initial partition can be selected based on the random number. In a specific example embodiment, the question selection subsystem 312 can have access to a table where numbers 1-25 are mapped to partition 403, numbers 26-50 are mapped to partition 404, etc. The random number generator 314 can generate a number such as 30 and the question selection subsystem 312 can select partition 404 as the initial partition. In other embodiments of the present disclosure, the question selection subsystem 312 can access a header 402 of the subset of the question table 305 or question table 305 to obtain one or more distribution parameters that may adjust the mapping between the random numbers generated by the random number generator 314 and the partitions, e.g., the header 402 may indicate that partition 403 is to only be selected 13% of the time so the table can be reconfigured to map numbers 1-13 to partition 403.
Additionally or alternatively, the question selection subsystem 312 can use an arbitrarily complex rule obtained from the header 402 and/or column 410 to adjust the mapping of the partitions. For example in some embodiments of the present disclosure the security service 210 can use additional variables to make the selection process more complex and thus more difficult for a unscrupulous individual to predict. In this case, the question selection subsystem 312 can be configured to use distribution parameters that adjust the probability that certain partitions can be selected by altering the mapping of random numbers to the partitions based on a length of time that is appropriate to using a certain partition, and/or how many times a certain partition can be selected within a period of time.
Similar to that described above, in another implementation of the operational procedure 508, the question selection subsystem 312 can be configured to omit certain partitions from the selection process until conditions associated with arbitrarily complex rules occur. For example, in one embodiment an arbitrarily complex rule could exist that is associated with partition 403. The rule in this example may indicate that the partition should not be available until a user has played a specific videogame, music CD, or used a specific software application for 10 hours. When the security service 210 attempts to challenge a computing component 304, the question selection subsystem 312 can be configured to access information in a header 402 or column 410 to determine how to map random numbers to the subset of the question table 305. Since the condition associated with partition 403 has not occurred in this example, the mapping operation could omit partition 403 and the number mapping for the table can be adjusted in accordance with other distribution parameters if they exist. Once the random number ranges have been mapped to the partitions in the question table 305 or the subset of the question table 305, a random number generating algorithm can produce a random number and the initial partition can be selected.
In some embodiments of the present disclosure, once the initial partition is selected the question selection subsystem 312 can use it as the final partition and select one or more challenge questions from it. In other embodiments, after an initial partition has been selected and as shown by operation 510 a final partition can be selected that can in some embodiments be different than the initial partition. For example, in some instances the random number generator 314 can be used by the question selection subsystem 312 and an initial partition can be selected such as partition 403. The random number generator 314 can be used again and a number between 1 and 100 can be obtained. The question selection subsystem 312 can include a final partition mapping table that can be obtained from the service provider 202, or from the header 402. In some embodiments, the final partition mapping table can be transmitted to the device 200 at predetermined intervals that can be separate then when the subset of the question table 305 is updated, for example. In these example embodiments, the final partition mapping table can in some example embodiments include the numbers 1-100, each number, or a group of numbers can be mapped to a rule that can be used by the question selection subsystem 312 to perform an additional random action to select the final partition. For example, one example final partition mapping table could specify that if the number is between 1 and 90, the final partition is the one chosen in operation 508 for example partition 403. If, however, the random number is between 91-98, the final partition mapping table can indicate that the final partition is the partition immediately following the initially selected partition, partition 404 in this specific example. Finally, if the random number is 99-100 then the final partition mapping table can indicate that the final partition is the partition two partitions after the initially selected partition, partition 405 in this specific example. In some embodiments of the present disclosure, the arbitrarily complex rules can additionally alter the selection of the final partition in optional operation 510. For example, if the random number generated in operation 508 is associated with a table that indicates that the final partition is the following partition, and this partition is associated with an arbitrarily complex rule that has not been triggered, then the question selection subsystem 312 can select the next partition that is available.
As shown by operation 512 and 514, once the final partition has been selected, the question selection subsystem 312 can randomly select an appropriate amount of questions for the final partition in the subset of the question table 305 and challenge the removable optical disk 31 or device 200 one or more times. In certain embodiments of the present disclosure, and described above, the selection of a specific question in a partition can be influenced by the distribution parameters described above. For example, in some instances specific questions can be associated with arbitrarily complex rules and the question selection subsystem 312 can be configured to omit them unless the conditions associated with the rules have occurred.
The foregoing detailed description has set forth various embodiments of the systems and/or processes via examples and/or operational diagrams. Insofar as such block diagrams, and/or examples contain one or more functions and/or operations, it will be understood by those within the art that each function and/or operation within such block diagrams, or examples can be implemented, individually and/or collectively, by a wide range of hardware, software, firmware, or virtually any combination thereof.
While particular aspects of the present subject matter described herein have been shown and described, it will be apparent to those skilled in the art that, based upon the teachings herein, changes and modifications may be made without departing from the subject matter described herein and its broader aspects and, therefore, the appended claims are to encompass within their scope all such changes and modifications as are within the true spirit and scope of the subject matter described herein.
This application claims priority to Application No. 60/984,692 filed Nov. 1, 2007 (Attorney docket number MSFT-6007), the contents of which are herein incorporated by reference in their entirety.
Number | Date | Country | |
---|---|---|---|
60984692 | Nov 2007 | US |