CSC 479/579 HOMEWORK 1 SOLUTIONS R1.19 Suppose you

CSC 479/579 HOMEWORK 1 SOLUTIONS
G C MUGANDA
R1.19 Suppose you could use all 128 characters in the ASCII character set in a
password. What is the number of 8-character passwords that could be constructed
from such a character set? How long, on average, would it take an attacker to guess
such a password if he could test a password every nanosecond?
There are 128 choices for each of the 8 characters, for a total of
1288 = 7.2057594e + 16
different passwords. At one password per 10−9 seconds, trying all passwords requires
1288 × 10−9 = 72057594.0379
seconds which is equal to 20016 hours. This is the same as 834 days or 2.3 years.
This is the worst case. On average, it would take about half the time, so approximately one year.
C-1.3 Suppose an Internet Service provider (ISP) has a voice over IP (VoIP) telephone system that it manages and sells. Suppose further that this ISP is deliberately dropping 25% of the packets used in its competitors VOIP system when those
packets are going through this ISP’s routers. Describe how a user could discover
that his ISP is doing this.
Run statistical tests: log all packets going out at the source, and log all packets
coming in at the receiver. Check to see if the average loss of packets over a long
period of time is at least 25%.
Run the same test for VOIP calls made by a subscriber to the sneaky ISP and
compare.
C-1.6 Describe a hybrid scheme for access control that combines both the access
control list and capabilities models. Explain how the records for this hybrid model
can be cross-linked to support object removal and subject removal in time proportional to their number of associated access rights; hence, not in time proportional
to all the subject-object access right pairs.
The question calls for removal of a subject S in time proportional to the access
rights possessed by that subject: that is time proportional to the number of objects
that S can access. Similarly, an object 0 should be removable in time proportional
to the number of subjects that can access O.
You can view an access control list as an array indexed by subjects. Each node
on the linked list for subject S contains an object O to be accessed, and a list of
actions that S can perform on O.
Similarly, you can view capabilities as an array indexed by objects. Each node
on the linked list for object O contains an subject S to be accessed, and a list of
actions that S can perform on O.
You can use doubly-linked lists for both access control lists and capabilities to
permit easy removal of a node from the list.
1
2
G C MUGANDA
Our hybrid scheme combines these two data structures. For each subject S and
object O, we use have a node NS,O that contains a list of all the actions that S
can perform on O. We now have an array A of doubly linked lists of these nodes
indexed by the subjects, and another array B indexed by the objects. Each node
NS,O is added to both A[S] and B[O].
Each NS,O node will have four references or pointers:
(1)
(2)
(3)
(4)
a
a
a
a
forward pointer to the next node in A[S].
backward pointer to the previous node in A[S].
forward pointer to the next node in B[O].
backward pointer to the previous node in B[O].
With this scheme, both subject and object removal are proportional to the access
rights. To remove a subject, you only need walk down the list A[S], and unhook
all four links for each node being removed.
C-1.8 A rootkit is a piece of malicious software that installs itself into an operating
system and then alters all of the operating system utility programs that would
normally be able to detect this software so that they do not show its presence.
Describe the risks that would be posed by such software, how it could actually be
discovered, and how such an infection could be repaired.
Any piece of malicious software can pose all kinds of risks. A root kit is particularly
insidious because it runs as part of the operating system, and therefore, it has
administrator privileges and is able to do just about anything.
The rootkit will presumably have modified the utilities for listing files so that files
that are part of the root kit are hidden and not listed. If you suspect a rootkit,
you should boot from live CD and scan the disk for rootkit files, or you should pull
the hard disk from the computer, attach it to a different computer that is known
to not be infected, and scan the disk within this trusted environment.
If a rootkit is discovered, reformat the disk and do a clean reinstall of the operating
system.
C-1.9 Benny is a thief who tried to break into an automated teller machine using a
screwdriver, but was only able to break five different keys on the numeric keypad
and jam the card reader, at which point he heard Alice coming, so he hid. Alice
walked up, put in her ATM card, and successfully entered her 4-digit PIN, and took
some cash. But she was not able to get her card back, so she drive off to find help.
Benny then went back to the ATM, and started entering numbers to try to discover
Alice’s PIN and steal money from her account. What is the worst-case number of
PINs that Benny has to enter before correctly discovering Alice’s PIN?
Alice’s PIN must use only digits from the five keys on the numeric keypad that are
still not broken. There are therefore 54 − 625 keys that Benny may have to try in
the worst case.
C-1.12 Barack often sends funny jokes to Hillary. He does not care about confidentiality of these messages but wants to get credit for the jokes and prevent Bill
from claiming authorship of or modifying them. How can this be achieved using
public-key cryptography?
Note the important facts of the question: Barack does not care about confidentiality,
and wants credit for the joke. This implies Barack wants everybody to be able to
read the joke, and verify that He wrote the joke.
CSC 479/579 HOMEWORK 1 SOLUTIONS
3
Barack should digitally sign the joke with his private key and send the digital
signature along with the joke. Hillary (and everybody else) can use Barack’s public
key to verify the digital signature and know Barack sent it.
C-1.22 Suppose, in a scenario based on a true story, a network computer virus is
designed so as soon as it is copied onto a computer, X, it simply copies itself to six
of X’s neighboring computers, each time using a random file name, so as to evade
detection. The virus itself does no other harm, in that it doesn’t read any other
files and it doesn’t delete or modify any other files either. What harm would be
done by such a virus and how would it be detected.
Uses up computing resources, and also because the level of reproduction is exponential, it will in a short time fill up the disks on on all the computer’s network.
The continual copying to neighboring computers would also clog up the network.
This will signal the presence of the virus.
You can also see files with random names, all of which have the same size and the
same content. Simply scan the entire disk for all files with the same content (Use
a live OS disk) and delete the virus.