Tuesday, May 4, 2010
Lecture 24: Secure Communications
Monday, May 3, 2010
Saturday, May 1, 2010
Lecture 18: Access Control
After Nathan presented we spent most of the class reviewing operating systems. We went over memory and address protection. This is when the so prevents programs from corruption other programs or data. Often the so can exploit hardware support for this protection. We then went over some protection techniques. For example fence register protects operating systems from user programs. Then there is tagged architecture. This is when each memory word has one or more extra bits that identify access rights to words. We then went over segmentation. Segmentation is when each program has multiple address spaces. Some advantages are users can share access to a segment with potentially different access rights, and users cannot access an unpermitted segment. We then went over paging. And how it is done and used in operating systems. Some advantages of paging are users cannot access an unpermitted page and users can share access to a page with potentially different access rights.
After the review we went over Access Control. We did not make it very far into this topic. We only covered 5 slides. We discussed what the three goals of access control are. These goals are to check every access, enforce least privilege, and verify acceptable use. We then talked about the issues with access control. Some issues are the list becomes too large if many shared objects are accessible to all users, another issue is multiple permissions. This is as far as we got on the slides for this day.
Wednesday, April 28, 2010
Lecture 23: Network Threats
Today's presentation by Troy covered the WEP (Wired-Equivalent Privacy) cryptosystem for wireless networks. The system used a flawed encryption method and revealed too much information in the packets it creates. Cracking the cryptosystem requires the use of thousands of snooped packets, but this can be collected in little time, and after the collection period, key cracking takes very litle time.
Today's lecture covered network security.
Networks and particularly internet-based networks are particularly vulnerable to attacks. Networks afford anonymity of attackers, plenty of points of attack, easier access, and potentially more security holes if computers with different security systems or OSes are part of the network. The protocol used in a network can also be a weak point if it has vulnerabilities.
There are many aspects to possible attackson a network. All attacks first need some sort of information gathering. Reconnaissance on the vulnerabilities of a network is generally easy. Port scans gather the ports which a computer is listening to. People involved in the network are generally good sources of information if a little social engineering is used.
Eavesdropping on a network tends to be simple. Wired connections can usually be wiretapped stealthily. Wireless connections are even easier to eavesdrop.
Impersonation attacks involve pretending to be some member of a network. This involves either obtaining a password or exploiting vulnerabilities in rights management systems.
Spoofing attacks involve a weaker form of impersonation, but is applicable to more than just users. For example, a phishing attack involves the attacker spoofing a website to look just like another website, with a convincing address to add to the illusion. Spoofing attacks also cover session hijacks and man-in-the-middle attacks.
Session hijacking is a spoofing attack where an attacker hijacks a TCP connection or HTTP session and inserts malicious data or obtains private information. Man-in-the-middle attacks are similar, but instead of masquerading as an endpoint, the attacker becomes an intermediate node, possibly masquerading as both endpoints at once. It may also allow the attacker to alter packets as they move around the network.
Attackers may also attack the topology of the network by poisoning DNS caches, creating "evil twins", or creating "black holes" which attract packets and drops them.
In some cases, the existence of communication alone can be an important information, and traffic flow analysis tries to detect these covert conversations.
Websites have their own sets of vulnerabilities, mostly involving the interaction with a server trying to generate web pages. Some exploits include modified state information, cross-site scripting, buffer overflows, etc. Some vulnerabilities involve the server asking the client to run a certain piece of code (for example, Java applets), and this can be exploited by attackers to harm the user.
(Distributed) Denial of Service attacks a network's availability. This can be done by disrupting physical connections, flooding connection attempts via SYN flooding, ping floods via smurf attacks, etc. Attackers may use botnets to perform these attacks, since they tend to require huge amounts of resources.
All of these attacks are doable with easy-to-get, convenient programs.
Lecture 21 : Trusted Operating System
Then, Dr. Gunes gave us an overview of Lecture # 20 during which he talked about trusted operating system design and different security design principles. He highlighted an idea,” after designing a trusted OS how it will complicate the things further”. On one hand he stated an ordinary operating system functions & its security features however on other hand he mentioned a trusted operating system functions and its security features. Further, he mentioned, the kernel is a part of an OS that performs lowest level functions whereas the security kernel is responsible for enforcing security mechanisms for the entire OS. The kernel generally performs 6 functions and those are coverage, separation, unity, modifiability, compactness, and verifiability.
Then, Dr. Gunes moved on to lecture # 21 topics & started with the term reference monitor which is the portion of a security kernel that controls the accesses to objects, in short it acts as a gate keeper. Hardware, processes, primitive files, protected memory & inter-process communication are the system elements on which security enforcement depends. He remarked that a piece of hardware is harder to tamper with, compared to a software. Next, he explained a typical division into TCB & non-TCB sections with the help of a diagram & then he described four basic interactions which TCB monitors & those are: process activation, execution domain switching, memory protection & I/O operation.
Further, he described a combined security kernel/operating system architecture as well as separate security kernel architecture. Physical, temporal, cryptographic & logical are the four ways to separate one process from others. Then, he drew our attention to the concept of virtualization, virtual machine as well as the layered OS design with modules operating in different layers. There are 3 ways to assure that a model, design, & implementations are correct & those are: testing, verification, & validation.
Furthermore, Dr. Gunes moved on to a new chapter & he started with the term security policies. He noted that Military security policy is a hierarchical policy & he emphasized an idea of compartments & sensitivity levels also. He went through classification & clearance concepts. Finally, Dr. Gunes concluded the lecture after describing 4 different security models in brief & those are: Lattice model, Bell-La Padula model, Harrison Ruzzo Ullman model & Take Grant model.
Wednesday, April 14, 2010
Lab assignment on Trusted Computing
You may post questions or comments under this blog entry.
Tuesday, April 13, 2010
Lecture 20 Trusted Operating System
Friday, April 9, 2010
Lecture 19: User Authentication (Apr 7)
Finally Dr. Gunes continued the class with last week’s lecture on Access Control. This portion of the lecture reviewed the benefits and drawbacks of ACL, ACM, and capabilities methods of restricting access control.
This week’s topic, User Authentication, was about how electronic systems identify and authenticate users. Identifying users is a difficult task for machines. Machines can use a variety of features for identification including what a person knows, has, or even a person’s physical features. Each of which has its own disadvantages. We also discussed the additional difficulties of remote logins, and the practice of combining multiple authentication methods for enhanced security.
Wednesday, April 7, 2010
Lecture 17: Operating Systems Security (Mar 31)
This lecture consisted of two parts: the first of which was a presentation by Evander Jo on code obscurity; the latter half of the lecture was a lecture from Dr. Gunes on operating systems security.
In Jo's presentation, the idea (and issue) of security through obscurity was presented. Essentially, obscurity is similar to stenography but different in that does not necessarily aim to hide information within a message, but rather it aims to confuse the interpretation of a message. A highly used tactic from exploit developers is to obfuscate their code upon completion of an exploit for some arbitrary vulnerability. This will defer the analysis of their code (from security professionals) and therefore allow exploit developers breathing room with respect to the discovery and analysis time of their code. However, when trying to apply security through obscurity, the issue comes from the test of time. It is not desirable to place trust on a system's security when it is based off of obfuscation—because it is only a matter of time until someone correctly interprets the obfuscated code.
In the presentation on operating systems security, Dr. Gunes first provided a brief history and discussion on operating systems. Next, it was outline of what an operating system is exactly trying to protect. Such resources included memory and address protection in that different users should be able to access the same system without compromise or intervention from other users within that system. With that, several protection techniques were discussed to allow for sharing of resources but at the same time separation of these same resources. One such technique was the inclusion of base and bound addresses in which users were supplied a base address and top-level address in memory that only they had access to. However, the issue here is with the efficiency of partitioning. That is, some users may require more space than other users. Later on, other present-day operating system techniques were discussed such as segmentation and paging. The lecture concluded with a brief overview of the Intel x86 architecture.
Wednesday, March 31, 2010
Homework 3
The deadline is Thursday, Apr 8 at 11:00 am.
Lecture 16: Targeted Malware (Mar 29)
Then, Dr. Gunes moved on to Targeted Malware. Trapdoors, Salami attacks, rootkit programs, privilege escalation, interface illusion and keystroke logging, Timing attack were mentioned. Covert channels that secretly leak information and provide unauthorized access were taught. Two different kinds of Covert channels exist- Storage Channels and Timing channels. Storage channels pass information by using the presence or absence of an object. An example of storage covert channel is File lock. Timing channels pass information by considering the speed at which things happen. Covert channels can be identified by the presence of shared resources, correctness of program code and analyzing the flow of information also slowing down the rate at which the information is transferred. Different methods for controlling program threats were discussed. Operating systems controls on use of programs were mentioned.
Thursday, March 25, 2010
Lecture 15: Malicious Codes (Mar 24)
After Mike’s presentation, Professor Gunes continued with lecture 15 on Malicious Codes. He began by discussing different kinds of malicious code, including virus, worm, rabbit/bacteria, logic/time bomb, Trojan horse, backdoor, and dropper. He noted that sometimes it is difficult to specify between different types of malicious codes. The lecture outlined why Trojans are hard to detect and showed that they are also the most popular type of malicious code. We were reminded that even if you create a legitimate trapdoor for yourself, someone else can find it. We were introduced to the “4 Virus Lifecycles,” which are the dormant phase, the propagation phase, the triggering phase, and the execution phase.
The lecture also included methods for preventing malicious code attacks. We learned about how viruses can be detected according to certain patterns, characteristics, and other signature traits of virus code. The easiest way to prevent a malicious code attack is to be sure that your trust the source of the files that you download.
Monday, March 8, 2010
Lecture 13: Program Security (Mar 8th)
The lecture began with a continuation on the discussion of non-malicious security flaws. Dr. Gunes began by discussing string formatting vulnerabilities and how simple printf() functions, if not used properly can cause serious security issues. In addition, he continued with his explanation of Incomplete Mediate. This is where the programmer doesn’t specify exactly the correct data to be accepted from the user and can therefore allow the program to accept unreasonable values, poorly formatted entries, and allows the system to become susceptible to buffer overflow and malicious code injections. Furthermore, the lecture concluded with a discussion on TOCTTOU errors, otherwise known as “race conditions”. In this circumstance, lets say two processes of a program are using the same data in their code. Well the system will check to see if the first process is allowed to use the data, then lets it, and same for the second process. However if something changes in the time it takes for the system to check if the process is allowed to use the data, then many errors can occur. The lecture finished with an overview of what will be on the mid-term.
Lecture 12: Program Security (Mar 3rd)
Thursday, March 4, 2010
Homework 2
The deadline is Friday, Mar 12 at 12:00 pm.
Wednesday, March 3, 2010
Lecture 11: Digital Certificates (Mar 1st)
Certificates can solve legal disputes since they provide proof of the integrity and origin of data. However, certificates expire, and their keys can be stolen. The certificate is then revoked, and placed on a Certificate Revocation List (CRL). This CRL should be checked every time user uses a public key to access a message. However, these lists are suspect to DOS attacks. Short-lived (1 day) certificates expire quickly.
Certificates are granted when a subscriber generates a public/private key pair and sends the public to a CA. CAs will verify the subscriber identity, then issue and publish a certificate with the public key. To use it, the subscriber signs a message with his private key. The receiver verifies the digital signature with sender's public key and asks for verification of signature from the CA repository.
The X.500 directory service has the X.509 extension for public key certificates. Message recipients are generally responsible for finding the necessary certificate. X.509 has a general certificate format that includes at least the algorithm, the CA, and who owns the key. X.500 requires each entry to have a unique name, so general information about the location/organization is used, as well as a student/employee ID number. X.509 version 3 contains extensions that allow for a set of extra information to be added to a CA's certificates.
Friday, February 26, 2010
Lecture 10: Key Exchange (Feb 24th)
Tuesday, February 23, 2010
Lecture 9: Intrusion Prevention Systems, Digital Signatures (Feb 22)
The class started with a presentation on Intrusion Prevention Systems from Justin Bode. Justing began with a funny video that emphasized the need for computer security and privacy in general. The talk started with discussing the need for IPS which flows from the limitations and weaknesses of Anti-viruses, Firewalls and ID systems. Justing then explained how IPS work, covering several methods of intrusion prevention such as heuristic analysis, sandboxing, kernel-based calls interception, etc. Finally, the different types of IPS (network-based, host-based, etc.) were showed and compared according to their strengths and weaknesses.
Dr. Gunes traditionally started the lecture with the review of previous class materials and briefly went through hashing algorithms. Lecture proceeded with the introduction of the topic of Digital Signatures. Digital Signature is an indication of the signer's agreement with contents of an electronic document (similar to signatures on physical documents). The two necessary properties of a digital signature were said to be unforgeability (signer protection) and authenticity (seller protection). Digital signatures are also non-alterable (signed document is non-modifiable without invalidating the signature) and non-reusable (signature is unique to document). An important property of an electronic signature is that it is verifiable by any user.
Some implementation details were given. RSA encryption system was identified to be appropriate to implement a digital signature system. The general mechanism to generate a signature is to pass the message through a redundancy function and encrypt such message with your private key. To verify the signature, one should use your public key to decrypt the message and pass it through a reverse of the redundancy function. Redundancy function must be chosen carefully, as a poor redundancy function can make it easy to forge random signed messages by unauthorized parties.
The method discussed above only provides authenticity, not privacy. To add privacy protection, it is possible to further encrypt the message with a public key of the receiver, so he is the only one who would be able to decrypt it (with his private key).
Friday, February 19, 2010
Lecture 8: Secure Hash Algorithm (Feb 17)
Wednesday, February 17, 2010
Cryptosystem Lab 1
You may post questions or comments under this blog entry.
Note: You may use an external function to test whether a number is a prime number.
Lecture 7: AES & Hash Functions (10 Feb)
Tuesday, February 16, 2010
Colloquium talk
Especially graduate students should plan to attend the talk.
See CSE Colloquia & Symposia page for details
Wednesday, February 10, 2010
Lecture 6: RSA (Feb 8)
Monday, February 8, 2010
Student presentations
Indicate your preferred date and topic on the spread sheet.
Saturday, February 6, 2010
Homework 1
Ch 12, Q 13: The question is asking which of the keys should be used.
Thursday, February 4, 2010
Lecture 5:DES & Rivest-Shamir-Adelman (Feb 3)
Monday, February 1, 2010
Lecture 4: Data Encryption Standard (DES) (Feb 1)
Wednesday, January 27, 2010
Lecture 3: Entropy (Jan. 27)
This equation tells you how many different possibilities are possible. For example, if there is only one possible signal, the entropy is 0 meaning the only signal is the only possible signal. If there are 1024 possible signals, the entropy is 10 meaning 10 bits can describe all possible messages. So the main goal in encryption is to increase the entropy of the message and thereby increasing the complexity of the message.
Dr. Gunes also explained some characteristics of good ciphers. The main characteristics are using the amount of secrecy that you need, the keys and enciphering algorithm should be simple, the process should be simple, errors shouldn't propagate, and the size of the enciphered text should be the same size or smaller than the original.
The last thing that was talked about is the conpect of confusion and diffusion. Confusion means that there isn't an easy relation between the plaintext and the ciphertext. This means that if you changed only one letter in the plaintext, you would have an entirely different ciphertext with many or all of the letters changed. Diffusion means that the plaintext should be spread all over the ciphertext. This means that someone would require access to most of the ciphertext in order to infer any kind of algorithm.
This is a brief summary of what was covered in lecture today.
Tuesday, January 26, 2010
A Short History of Cryptography
Lecture 2: Elementary Cryptography (Jan 25)
Cryptography
Goal
Its goal is to ensure communication security over insecure medium. And in the first lecture we had learned that the security fundamentally has three goals: Confidentiality, Availability and Integrity.
Main Components in Sending Messages
Sender
Medium <===> Intruder
Receiver
Intruder can
Interrupt (make an asset unavailable, unusable) thus breaks Availability
Intercept (gain access to the asset) thus breaks Confidentiality
Modify (tamper with an asset) thus breaks Integrity
Fabricate (create objects) thus breaks Integrity
Approaches to Secure Communication
Steganography
- Hide the existence of the message (Remember picture in picture in the slides !)
- Hide the meaning of the message (Message is there but what is it ?)
Secret Writing
Keyless
We do not use very strong keys (such as 1 million bit ) due to the computational cost for encryption and decryption
Cryptanalysis is the deduction of the original meaning from the cipher text by coming up with the decryption algorithm.
- Break (blank character), and repeated letters are preserved,
- We can use clues like short words,
- Knowledge of language simplify it (e.g. E,T,O,A occur far more than J,Q,X,Z)
- We can use brute force attach (26! possibilities for permutation)
Plaintext
V E R N A M C I P H E R
21 4 17 13 0 12 2 8 15 7 4 17
Since the phone book is not completely random but instead consists of high frequency letters just as the plain text, then for example, for the standard English case, the probability that the key and plain text letter is either A,E,O,T,N or I is 0.25.
Transposition Ciphers are done by rearranging the places of the symbols
Here is an example to columnar transposition:
THIS IS A MESSAGE TO SHOW HOW A COLMUNAR TRANSPOSITION WORKS
T H I S I
S A M E S
S A G E T
O S H O W
H O W A C
O L M U N
A R T R A
N S P O S
I T I O N
W O R K S
tssoh oaniw haaso lrsto imghw utpir seeoa mrook istwc nasna
This is also easy to break since the frequency distribution technique can be applied and also the pattern of transposition can be identified easily.
Thursday, January 21, 2010
TRUST summer schools
Research Experiences for Undergraduates
Women’s Institute in Summer Enrichment
Summer Experience, Colloquium and Research in Information Technology