This application claims the benefit of U.S. Provisional Application No. 61/251,292, filed Oct. 13, 2009, and titled “Account and Boot Management in a Cloud Computing Platform,” which is incorporated herein by reference in its entirety.
This document relates to computer security and to methods of authenticating a computer user using a weak hash of a user authentication credential.
With the creation of the world-wide-web and high speed computer networks, the paradigm for personal computer usage has dramatically shifted. In the past, users would primarily use their personal computers to run programs, and store and manipulate data that was located on their local hard-drive. Only rarely would users store or manipulate data located on a networked drive, or run a program that was provided as a network service, and even then, the programs and data were usually restricted to a local area network. Today, more and more users are storing more and more data on remote data servers, and using remotely provided web-based applications (e.g., SaaS or Software as a Service programs) to manipulate and organize that data. For example, many users today store their personal email and contact information, and even pictures, videos, and music archives on remote servers, and access that data using third party applications that are provided through and controlled by a web-browser.
Cloud computing is a style of computing in which computing resources such as application programs and file storage are remotely provided over the Internet, typically through a web browser. Many web browsers are capable of running applications (e.g., Java applets), which can themselves be application programming interfaces (“API's”) to more sophisticated applications running on remote servers. In the cloud computing paradigm, a web browser interfaces with and controls an application program that is running on a remote server. Through the browser, the user can create, edit, save and delete files on the remote server via the remote application program.
Due to this shift in computer usage, today's computer users are unlikely to want or need many of the bells and whistles provided by modern operating systems. They do not need to worry about file structures or organizing or backing up their data, because much of their data is stored, organized and backed up for them on the cloud. They do not need to worry about loading and updating software, because most of the software they use is provided to them when needed as a cloud-based service. Instead, today's computer users are more interested in quickly logging onto their computer, launching a web browser, and logging into a cloud based server to access data and programs available to them through a cloud based service.
In most computer systems, logging onto the computer requires a user to enter his or her username and password. The computer receives the username and password, computes a strong cryptographic hash of the password, and looks for a record in a local authentication database that relates the received username to the strong cryptographic hash of the received password. If the computer finds such a record, it can authenticate the user and grant the user access to one or more of the computer's resources. A strong cryptographic hash is a cryptographic function that maps each unique input value to a nearly unique output or hash value. Storing strong cryptographic hashes of user passwords in user authentication databases provides a certain level of security to password protected computer user accounts. For example, a first user who accessed a computer could not easily gain access to a second user's account on the same computer by simply querying the authentication database for the second user's username and password. At best, such a query, even if successful, would only return the second user's username and a strong cryptographic hash of the second user's password. Unless the first user knew how to invert the strong cryptographic hash function, the first user would not likely be able to determine the second user's password, and so would not likely be able to access the second user's account.
Of course, if the first user were determined and had the resources, he or she could use brute force to try to invert the strong cryptographic hash function. The brute force method could work by exploiting the nearly one-to-one mapping between input values and output values of strong cryptographic hash functions. For example, using one or more dictionaries and one or more strong cryptographic hash functions, the first user could compute strong cryptographic hashes of the words in the dictionaries using the different hash functions until one or more words were found whose strong cryptographic hashes matched the strong cryptographic hash of the second user's password. The small number of matching words could then be used to determine the second user's password by trial and error before the computer recognized the second user's account was under attack. Of course, once the first user obtained the second user's password in this way, the first user could access the second user's account at will. Moreover, if the second user relied on the same username and password to protect other accounts, the first user would be able to easily access the second user's other accounts.
Methods and apparatus for logging into a computer optimized for cloud-based computing are disclosed. The computer may be a desktop, notebook or netbook computer, or a mobile device such as a personal digital assistant or smart phone. The computer receives a username and a password from a user and computes a weak cryptographic hash of the received password. The computer then determines whether a user with the received username is authorized to access the computer. If a user with the received username is authorized to access the computer, the computer retrieves a weak cryptographic hash of a password that is associated with the received username in the computer, and compares the weak cryptographic hash of the received password with the weak cryptographic hash of the associated password. The computer grants the user access to the computer if the weak cryptographic hash of the received password and the weak cryptographic hash of the associated password are identical.
Features and advantages of the disclosed method and apparatus include one or more of the following. The computer can determine whether a user with the received username is authorized to access the computer by querying a database for a record containing the received username and a weak cryptographic hash of a password that is associated with the received username. The computer can retrieve a weak cryptographic hash of a password that is associated with the received username from the database record.
The computer can send the received username and the received password to a remote server if the weak cryptographic hash of the received password and the weak cryptographic hash of the password that is associated with the username in the computer are identical.
Like reference symbols in the various drawings indicate like elements.
A cloud optimized computer is a computer configured to operate in a cloud computing environment, such as a computer running the ChromeOS operating system available from Google Inc. A cloud optimized computer can be configured to allow a user to log onto one or more remote cloud based servers using a single sign-on procedure. This can be done, for example, by using the same username and password that is needed to access the cloud optimized computer to access the one or more remote cloud-based servers or services. To log onto the cloud optimized computer, the user can enter a username and password. The cloud optimized computer can verify the username and password, and upon doing so, can send the username and password to one or more remote cloud based servers. Each of the cloud based servers can subsequently verify the username and password in its own authentication database to grant the user access to the server and whatever cloud based services are provided on or through the server.
As discussed above, most computers today provide some level of user account security by storing usernames and strong cryptographic hashes of user passwords in their user authentication databases. However, as discussed above, the security thus provided can be overcome by a determined adversary who has the time and resources to subject the authentication database to a dictionary attack. Such an attack could effectively invert the strong cryptographic hash function, and allow the adversary to determine the passwords whose strong cryptographic hash values are stored in the authentication database. Once in possession of a user's username and password, the adversary could log onto and access the user's local computer. Moreover, if the local computer provided a single sign-on service to automatically log the user onto one or more cloud based accounts or services, the adversary could also log onto the user's cloud based services and accounts.
To better secure a user's cloud-based accounts and services, a cloud optimized computer can store weak cryptographic hashes of user passwords in its authentication database rather than strong cryptographic hashes of user passwords. A weak cryptographic hash is a function that maps a large number of unique input values to the same output or hash value. The large number-to-one mapping of weak cryptographic hash functions makes storing weak cryptographic hashes of user passwords advantageous to storing strong cryptographic hashes of user passwords. This is because even after a successful dictionary attack, an adversary would not be able to uniquely determine the passwords whose weak cryptographic hashes are stored in a computer's authentication database. For example, since many different words from a dictionary (e.g., apple, apples and applet) can map to the same weak cryptographic hash value, inverting the weak cryptographic hash function that generated that hash value would reveal not just a few, but rather a very large number of possible input words. In one implementation, the weak hash function can map tens of thousands or even hundreds of thousands of unique passwords to the same cryptographic hash value. Thus, even after a successful dictionary attack, an adversary would only know that the user's password is one of among tens or hundreds of thousands of possible passwords that map to the same weak cryptographic hash value. To access the user's cloud based accounts and services, the adversary would still need to determine the user's actual password from among the tens or hundreds of thousands of possible passwords.
Referring again to
The methods described herein may be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them. The methods may be implemented as a computer program product, i.e., as a computer program tangibly embodied in a machine-readable storage device for execution by, or to control the operation of, a data processing apparatus such as a programmable processor, a computer, or multiple computers. A computer program can be written in any form of programming language, including a compiled or interpreted language, and can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, plug-in or other unit suitable for use in a computing environment. A computer program can be deployed to be executed on one computer or on multiple computers at one site or distributed across multiple sites and interconnected by a communications network.
Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer, including digital signal processors. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. Elements of a computer may include at least one processor for executing instructions and one or more memory devices for storing instructions and data. Generally, a computer may also include, or be operatively coupled to receive data from and/or transfer data to one or more mass storage devices for storing data, e.g., magnetic, magneto-optical disks, or optical disks.
Machine readable media suitable for embodying computer program instructions and data include all forms of non-volatile memory, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor and the memory may be supplemented by, or incorporated in special purpose logic circuitry such as a FPGA (field programmable gate array) or as an ASIC (application-specific integrated circuit).
To provide for user interaction, the computer may include a display device, e.g., a cathode ray tube (CRT) or liquid crystal display (LCD) monitor, for displaying information to the user and a keyboard and a pointing device, e.g., a mouse, trackball or touch pad, by which the user can provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input.
The disclosed apparatus and methods may be implemented on a computing system that includes a back-end component, e.g., a data server, or that includes a middleware component, e.g., an application server, or that includes a front-end component, e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with any combination of such back-end, middleware, or front-end components. Components may be interconnected by any form or medium of digital data communication, e.g., a communication network, including a local area network (LAN) and a wide area network (WAN) such as the Internet.
A number of implementations of the invention have been described above. Nevertheless, it will be understood that various modifications may be made without departing from the spirit and scope of the invention. For example, the logic flows depicted in the figures do not necessarily require the particular order shown, or sequential order, to achieve desirable results. In addition, other steps may be provided or eliminated from the described flows, and other components may be added to or removed from the described systems, without departing from the scope of the invention. Accordingly, other implementations are within the scope of the following claims.
Number | Date | Country | |
---|---|---|---|
61251292 | Oct 2009 | US |