T. Andrew Yang

Email: yang@uhcl.edu

Web: http://cse.uhcl.edu/yang/

Tel.: (281) 283-3835

Last updated:

8/7: Enhanced Assignment 1 description

8/24/2021: first posted

 

CSCI 5234 Web Security
fall 2021


 

Note:
When composing your answers, make sure you give the original author(s) the necessary credits if your answer contains information from sources other than your own brain. J
Refer to http://sce.uhcl.edu/yang/citing.htm if more information is needed in using proper citing.


Assignment 1

 Total points: 100

 

1.      (20 pts) Visit the class discussion group in the Blackboard. Post a message with your full name as the subject line. In your post, briefly introduce yourself, including your full name, your major, and one or two items that you most desire to learn in this class. Throughout this class, you shall regularly participate at the discussion group to find recent announcements, reminders, and discussions. 

 

2.      A refresher of Java Security:

Download and install the current version of Java Development Kit (JDK), and configure it to run the Java Cryptography Extension (JCE) and the Bouncing Castle JCE Provider, by following the instructions as specified in this page: https://sceweb.uhcl.edu/yang/teaching/JDK_JCE_environment_Configuration.htm.

 

NOTE: Adjust the version number in the instruction file to reflect the current version of JDK. For example, if you have download JDK 16, then all the version number in the instruction file ought to be adjusted to 16.

 

NOTE: To verify whether your configuration of the JDK environment is correct or not, compile and run some of the sample programs included in http://sce.uhcl.edu/yang/teaching/proJavaSecurityCode.html.

-        For example, BlowfishExample.java is a sample program that does NOT require either unlimited strength jurisdiction policy or the Bouncy Castle provider. You may use it to test your initial JDK installation.

-        FileEncryptor.java is a program that can be used to test your JDK to determine whether it has the proper Bouncy Castle provider configurations.

-        KeysizeTest.java is a program that can be used to test your JDK for unlimited strength jurisdiction policy.

 

Run the GenerateKeyPair.java program to generate a key pair.

 

NOTE: The Bouncing Castle Security Provider must be added to the source program. See step #5 in the instruction file for detailed statement to add the provider.

 

NOTE: The generated private key will consist of two separate files, one for storing the private key and the other for storing the public key of that key pair. The private key will be used later by the Client program to generate a digital signature; the public key, on the other hand, will be used by the Server program to verify the signature in order to authenticate the Client program.

 

Study the source code of the Client, SignatureAuthenticationClient.java, and the source code of the Server, SignatureAuthenticationServer.java, both of which are available at http://sce.uhcl.edu/yang/teaching/proJavaSecurityCode.html.

 

NOTE: The Bouncing Castle Security Provider must be added to the Client source program. See step #5 in the instruction file for detailed statement about how to add the provider.

 

1)     (40 pts) Run the programs and hand in appropriate screen snapshots to show the execution results. Add a statement to the beginning of the programs such that the first output line shows your full name. Attach the screen output as part of this assignment.

Shown in Figure 1 is a sample output of running those programs.

Figure 1. Sample screen output of running the Client and the Server programs

 

2)     (40 pts) When receiving a digital signature from the client, how does the authentication server verify the client's signature? That is, how would the server know that the signature is really the client's?

 

Go to the Index


Assignment 2

 Total points: 100

 

Study the textbooks and/or applicable web sites to find answers for the following questions. Online glossaries such as those listed in the syllabus page may also be used.

Note: It is required that you clearly identify the source(s) of your information. Failing to cite the source(s) will cause reduction of points.

1)     (10 pts) What is a ‘man-in-the-middle attack’?

2)     (10 pts) What is a ‘replay attack’?

3)     (10 pts) Is a replay attack a type of man-in-the-middle attack? Justify your answer.

4)     (10 pts) What is ‘pagejacking’?

5)     (10 pts) What is a ‘session hijacking attack’?

6)     (10 pts) What is ‘web access management’?

7)     (10 pts) What is ‘end-to-end security’?

8)     (10 pts) Explain what 'input sanitization' is and why it is critical for secure web operations.

9)     (10 pts) What is ‘out-of-band communication’?

10)  (10 pts) What is 'two-factor authentication'? Why is using more than one factor important in authenticating a user?

 

Go to the Index


Research Project

Note: This is an individual project.

 

The goal of this project is for you to visit refereed publications (as well as some relevant web sites) to perform a detailed investigation of a chosen research topic. The University Library has online databases that could be used as a starting point of your literature search.

The topic you choose should be related to security of web-based information systems. A topic may be related to threats against web-based information systems, attacks that specifically target web-based systems, mitigations adopted for countering such threats and attacks, etc. If you need suggestions when choosing the topic, feel free to discuss with the instructor.

 

Each person should create and maintain a distinct discussion thread in the discussion group, by posting to the discussion forum named 'Research projects should be posted here". Progress of your project should be updated weekly in that thread. How well you maintain your discussion thread is part of the grading.

A benefit of this approach is that both the instructor and your classmates will be able to view your progress and, if applicable, share their thoughts and comments.

 

Items to be submitted:

 

  1. (Before the midterm) The abstract & literature survey

A preliminary abstract of your presentation topic is due early in the semester. Check the syllabus for the due date. Each student should publish his/her abstract in the class discussion board by the due date.

The abstract should be 1-2 pages long, and contains the following sections:

(1)      Class name (i.e., CSCI5234 Web Security)

(2)      Your name and an email address that you check regularly (that is, at least once a day)

(3)      Topic of your investigation

(4)      General description of the topic

(5)      Why is the topic related to web security?

(6)      Survey of related work

Discuss at least three articles related to your chosen topic.

VERY Important: Make sure you properly cite the work of other researchers or professionals. Visit http://sce.uhcl.edu/yang/citing.htm for more information about cited references.

Warning: Missing or improper cited references in your abstract and final report will result in poor score for your research project.

(7)      A tentative outline (agenda) of your final report. That is, the sections/subsections that you plan to include in the final paper.

 

  1. (Last three weeks) Make a 15-minute oral presentation of your completed project. Use the CSE Oral Communication Rubric when making the oral presentations.

 

  1. The final written report

1.      The written report should include your findings about the chosen topic.

2.      A draft of the final report should be published in the class discussion group to solicit comments from your classmates and the instructor.

Warning: Missing or improper cited references in your abstract and final report will result in zero or poor score for this assignment.

3.      The following is a suggested outline of your final report:

                                          i.     Title

                                         ii.     Your name (and email address)

                                       iii.     An abstract (50-100 words)

                                       iv.     Introduction to the topic

                                         v.     Significance of the chosen topic with respect to the security of web-based applications

                                       vi.     Survey of related work

                                      vii.     Implemented demonstrations, if applicable.

                                    viii.     Your findings

                                       ix.     Future work: research ideas and projects possibly related to the topic

                                         x.     Conclusion

                                       xi.     Appendix (if any)

 

Go to the Index



Hands-on Labs 

Note about hands-on labs:

Note: The lab may be completed by an individual person or by a team of two persons. A team can consist no more than two persons.

-       You are welcome to use your own laptops to implement the hands-on labs (by setting up virtual boxes and virtual hosts on it).

-       For those who prefer to use university computers, some of the computers in the D201 lab are reserved for this class.

-       To get access to the D201 lab, contact the Computer Science secretary to set up access privileges.

 

Preparation for the hands-on labs:

Go over the following documents before starting your hands-on labs.

·        Lab setup

·        Using Wireshark

 

Lab 1 Cross Site Request Forgery (CSRF)

Total: 100 points

Complete the CSRF lab from the SEED project.

Description of the lab, additional information, and other resources about the lab can be found on the SEED project website; see https://seedsecuritylabs.org/Labs_16.04/Web/. NOTE: For this lab, follow the instructions as given in the Description page from https://seedsecuritylabs.org/Labs_16.04/Web/Web_CSRF_Elgg/. A local copy of the Description can be found here.

In addition, more information about the specific lab can be found in the textbook by Dr. Du.

Check out these supplementary notes about implementing this lab.

-        Evaluation of the lab:

A.    (60%) You will earn 15% for each of the tasks successfully implemented and demonstrated to the TA.

B.     (40%) Hand in a detailed lab report to describe what you have done and what you have observed. Please provide details using Firefox’s add-on tools, Wireshark, and/or screenshots. You also need to provide explanation to the observations that are interesting or surprising.

 

Go to the Index


Lab 2 Cross-site Scripting (CSS)

Total: 100 points

Complete the CSS lab from the SEED project.

Description of the lab, additional information, and other resources about the lab can be found on the SEED project website; see https://seedsecuritylabs.org/Labs_16.04/Web/. NOTE: For this lab, follow the instructions as given in the Description page from https://seedsecuritylabs.org/Labs_16.04/Web/Web_XSS_Elgg/. A local copy of the Description can be found here.

In addition, more information about the specific lab can be found in the textbook by Dr. Du.

Check out these supplementary notes about implementing this lab.

-        Evaluation of the lab:

C.    (70%) You will earn 10% for each of the tasks successfully implemented and demonstrated to the TA.

D.    (30%) Hand in a detailed lab report to describe what you have done and what you have observed. Please provide details using Firefox’s add-on tools, Wireshark, and/or screenshots. You also need to provide explanation to the observations that are interesting or surprising.

 

Go to the Index


Lab 3 SQL Injection

Total: 100 points

Complete the SQL Injection lab from the SEED project.

Description of the lab, additional information, and other resources about the lab can be found on the SEED project website; see https://seedsecuritylabs.org/Labs_16.04/Web/. NOTE: For this lab, follow the instructions as given in the Description page from https://seedsecuritylabs.org/Labs_16.04/Web/Web_SQL_Injection/. A local copy of the Description can be found here.

In addition, more information about the specific lab can be found in the textbook by Dr. Du.

Check out these supplementary notes about implementing this lab.

-        Evaluation of the lab:

E.     (80%) You will earn 10% for each of the tasks/sub-tasks successfully implemented and demonstrated to the TA.

F.     (20%) Hand in a detailed lab report to describe what you have done and what you have observed. Please provide details using Firefox’s add-on tools, Wireshark, and/or screenshots. You also need to provide explanation to the observations that are interesting or surprising.

 

Go to the Index