Concepts with Symbian OS (779878), страница 60
Текст из файла (страница 60)
On open-source operating systems such as Linux, where thepassword-storage methods are available for all to examine, attacks arefrequent and passwords are vulnerable. Often passwords are stored in alocation separate from other user information, a location that can only beaccessed by processes with high system privileges.Password encryption is often used to safeguard storage. To makeencryption difficult, encryption algorithms often use salts or keys to getstarted. These are character sequences that are used by the algorithms tooffset encoding in special ways. Unfortunately, the salt or key must beknown ahead of time to reproduce the same encryption – or to producea decryption. This means that the salt or key must also be stored onthe computer system and could be accessible by those seeking to breakpasswords.Consider Unix password encoding.
Unix uses a well-known encryption algorithm that needs a two-character salt to get started. The algorithmproduces an output – the encoded password – which is combined withthe salt that was used and stored. Anyone with access to the passwordwould also have access to the salt and could decrypt the password. However, while Unix designers used a well-known encryption algorithm to290SECURITYencrypt, they did not provide the facilities to decrypt. And the well-knownalgorithm they used was a very complicated one.
This means that Unixcan easily encrypt passwords but not easily decrypt them. If you provideUnix with your password, the only way to verify that your password iscorrect is to encrypt it and to compare the encrypted versions. This iswhy a system administrator on a Unix system cannot tell you what yourpassword is; she can only change it.Passwords are not the only authentication method that focuses onwhat you know. Passalgorithms are algorithms used to derive a passwordor phrase.
For example, a passalgorithm could be as simple as thecurrent day of the week concatenated with the day of the month. So thepassword on Monday, June 26, becomes ‘monday26’. Often these typesof algorithms are used in challenge–response security systems.
When auser wants entrance into a system, the system generates a random word orphrase and asks the user for the password, based on working that phrasethrough the passalgorithm.What You HaveSometimes, passwords are not unique or secure enough and passalgorithms are too complex for humans to work through them quickly. Thenit becomes a matter of computing passwords or otherwise authenticatingwith some kind of device that a user must carry with him.Often, when high security is required, people use devices to generatepasswords based on the time of day or some complicated algorithm. Thesame methods are used by the computers that verify identity: the samealgorithms generate the same output and the output is compared.
Theseare often used with challenge–response systems where the challenge isa character string to be typed into a handheld device that produces someother character string that the user answers with.Who You AreOne element that no one can duplicate is who you are. There are aspectsof each person that are truly unique and very hard to duplicate. Thesemake great sources for authentication.One aspect of an individual is personal information.
There are severalpieces of personal information that each person possesses. These includename, gender, birth date, age, government identification numbers, etc.When combined, these can form a unique information set that can be usedSYSTEM THREATS291to identify people. Personal information is used on many websites to gainaccess. For example, many banking websites ask for your governmentidentification number and your name or email address. Combining theseproduces information that is sufficiently private and difficult to guess.Physical characteristics are another personal aspect that is very hard toduplicate. Fingerprints, voice characteristics and retinal blood vessel patterns are examples of unique human characteristics that can be sampledfor user authentication.
Biometrics, as this area of identification is called,are useful when the means of sampling them is inexpensive. Currently,fingerprints are easy to sample – fingerprint readers come standard onsome computers. Retinal scans are expensive to take.When No Authentication is UsedWe mentioned older operating systems that did not use authentication.One would think that all modern operating systems use authentication.There are several cases, however, where authentication still is not used.Consider a situation where a computer is a single-user device, as isthe case for smartphones.
For these devices, ownership is equivalent toauthentication and possession of a device means that one should begranted access to it. Computers in public places, such as libraries, arealso systems that would be difficult to use if authentication was to beenforced.Security is still required in these situations. If authority is granted to anyentity, the main concern is that any action that goes on is assumed to beauthorized.
Some systems, such as those in libraries, simply accept thisfact and realize that systems can be modified at will. The administratorsof systems of this type simply reinstall the computers at regular intervalsto erase any malicious programs that might be on them. Other systemsask many permission questions. When software is to be installed, forexample, the system might ask if installation is intended – and ask itseveral times.
Still other systems tighten security around specific systemfunctions such as writing data to a file or installing applications – whileallowing all other functions to continue unchecked. Symbian OS fallsinto this last group.14.4System ThreatsWe go through a lot of trouble authenticating users and meticulouslygranting authority to perform specific functions. This is because the world292SECURITYoutside a computer system usually contains some person or applicationthat wants access. There are always attacks on computer systems andthere are constant attempts to gain access to computers.The security of passwords is threatened by many things including thepeople using them.
Humans are fallible people and they develop habitsregarding passwords that are helpful to them but harmful to security.People use obvious information in their passwords or invent phrases thatare easily guessed. Dictionary attacks take advantage of these bad habits.People also write down their passwords and place them in desk drawersor stick them to monitors. Unless passwords are chosen very carefully,and protected well, they can – and will – be discovered.Trojan horses and spyware are ways to gain access to systems. Whena program or application masquerades as one type of program butactually has more than one function (especially functions that are notdocumented), that program is called a Trojan horse.
For example, aprogram that listed your files, but deleted them as it was listing them,would be a Trojan horse. Even worse are programs that install otherapplications when they are executed. Spyware does this: it piggybackson an application, which installs and runs the spyware. The spywarereplicates itself this way and consumes system resources.Buffer overflows are a common threat to system security. As wementioned before, a buffer overflow is a condition that results from anapplication trying to store data in a buffer that is too small. The resultis data that overwrites adjacent memory locations.
This overflow couldcorrupt data or write sections of executable code, as in the finger example.Buffer overflows can cause a program to crash, can corrupt data or canbe a security breach. Preventing buffer overflows can prove difficult.A virus is a program that ‘infects’ another program by embeddingexecutable code in it. The next time the infected program is run, itdoes different things because new, embedded code is now executed.Viruses may infect many programs and are usually designed to propagatethemselves. Infected programs are detectable by virus-checking softwarebecause infections follow a specific pattern and are usually targeted atspecific programs.Worms are programs that are introduced on systems without anypermission.
This may be through bugs in an existing program or throughwell-intentioned, but exploitable, features. A good example of this is aworm that spread through Microsoft SQL Server 2000. This worm useda buffer overflow, which existed in the way SQL handles data sent to itsMicrosoft SQL monitor port. The worm would send data to the monitorSECURITY ON SMARTPHONES293port, which processed the data and executed code during the processing.The buffer overflow wrote code into the executable portion of SQLServer, and the data processing was the attacker’s code.
In addition, sinceMicrosoft SQL Server 2000 runs with system administrator privileges, theattacker’s code also ran with such privileges. Fortunately, the worm didnot contain any additional malicious content; however, because of thenature of the worm and the speed at which it attempts to re-infect systems,it caused a denial-of-service attack against infected networks.Denial-of-service attacks are threats to networks. An attacker mightflood a network with data, filling the network to capacity and makingany other kind of network traffic difficult.