Instructor | Announcements | Course Info | Class Material | Schedule | Project | Grade | General Policy | Related Links


CmpE 297
Software Security Technologies
Spring 2005
College of Engineering




Richard Sinn
Office Hours: Before / After class, by appointment or email only

Richard Sinn has been in the pure software industry for over 10 years both as manager and lead developer for projects ranging from IBM operating systems, kernel file system, network computer, Java desktop, IT secure development framework, IBM DB2 database, security and provisioning services.

In 2001, Richard led the development of the first dynamic workflow enabled PKI Certificate Management System (CMS) in the industry. It is a joint project between VeriSign and a Silicon Valley security startup company. There are currently eight patents (six in security technologies, and two in database technologies) pending under Richardís name.

Richard has also been a part-time professor for the past five years teaching at San Jose State University (both Computer Science and Computer Engineering departments) and University of Minnesota.




Update: Classroom is moved to ENG 335 !!!


Class time:

Tuesday, 7:30pm to 9:15pm

Class room:

This is Section 4

ENG 335


Initial creation.


Please consider how you set up your evaluation environments - be it homework, on-campus quizzes and exams, to minimize chances of (temptations to) cheating.

In particular:

During tests:

- Make sure there is plenty of space between students.

- Always proctor exams and tests, and preferably by sitting at the back of the room rather than at the front. Do not leave the testing room during the test. If you cannot proctor the class yourself, contact me and I will endeavor to find a proctor for you.

- If the test is closed-book, require all backpacks to be zipped shut, all PDAs, computers and phones to be handed in, and any access to either without explicit proctor permission should be an immediate F in the class.

For homework: We have started using on-line support systems to catch cheaters. So I would very strongly urge you:

- For code assignments: Run them all through MOSS

- For essays etc: Run them all through (SJSU has a site subscription, I have been told.)

- Make sure individual contributions are ensured in team projects. This can be done through various means: Sign-offs, quizzes on the content of common work, etc.

Remember: A grade reflects an evaluation of the individual student's achievements. Your evaluation system has to reflect that objective.


Course Information


Latest corporation challenge is managing software security threats on high speed, high volume mission critical software infrastructure. Building secure software in both the Internet and enterprise network becomes a must in today's world. The objective of this course is to teach you the essentials to build and deploy secure software. Learn how to design and administrate a complete, consistent, correct, and adequate security program.

Topics include:



Apart from big term project(s) and presentation, there are homework assignments, a mid-term exam and a final exam. Some exams might be take-home. The weightings for grading are: Term Project(s) 40%, Homework 20%, Midterm 10%, Final Exam 10%, Team Research Presentation 10%, and Term Presentation 10%.

No Late Assignment Submission



Class Material

Lecture Notes

Reading material will be online on this web site before every lecture. Please email if you experience any download problem.



More will be added as the semester goes




Feb 1, 2005-Tue


Security and PKI

Feb 8, 2005-Tue:


February 14 Last Day to Drop Courses Without an Entry on Student's Permanent Record
February 21 Last Day to Add Courses & Register Late


Feb 15, 2005-Tue:

  • PKI components:
    • Concept of an Infrastructure
    • CA,
    • Certificate Repository,
    • Cert Revocation,
    • Key Backup and Recovery,
    • Automatic Key update,
    • Key history
    • Cross-Certification
    • Support for Non-Repudiation
    • Time Stamping
    • Client Software
  • OpenSSL introduction


Feb 22, 2005-Tue:


Mar 1, 2005-Tue:


Mar 8, 2005-Tue:


Mar 15, 2005-Tue:


Mar 22, 2005-Tue:

  • Mid-term


March 28 - April 1: Spring Break


Apr 5, 2005-Tue:

  • Mid-term Due
  • Project Part I Due
  • Java Security Introduction

    • Language-Level Security
    • Invalid Memory Access
    • Garbage Collection
    • Other Language Features
    • JavaTM Virtual Machine-level Security1
    • Java Byte Codes
    • Byte Code Verification
    • Class Loading
    • Runtime Checking
    • Managing Security
    • Access Controller and Permission


Apr 12, 2005-Tue:


E-Commerce with Web Services

Apr 19, 2005-Tue:


Apr 26, 2005-Tue:


May 3, 2005-Tue:


Final and Presentation

May 10, 2005-Tue:


May 17, 2005-Tue:

  • Final Exam
  • Last Day of Instruction for the whole university.




Term Project

PKIMS Project

UI Template


Team Research Presentation

Each team will be given a topics to research and present during the semester. The team needs to prepare the following:



Overflow Topic



Web Services


Email to check your grade if necessary.


General Policy

The university and departmental policies and deadlines for course drop will be applied. Makeup exams cannot be offered, except under exceptional conditions, such as documented serious illness/accident, etc., and only at the professor's discretion.

Each student is responsible for his/her individual assignment, and must not copy anyone else's work. Students who borrow solutions from others will find themselves unable to pass the course. The minimum penalty for every student involved in the duplication of individual assignments or exams will be receiving a zero score on the submitted work.

For group project, all the work has to be done by your OWN group. Do not try to download "free code" from the Internet and hand in as a project. WE WILL FIND OUT. Do not share your work with others. So DO YOUR OWN WORK and EARN your grade.


Related Links

  • Past Class Grading and Info
  • Software Engineering Institute
  • Special Interest Group on Software Engineering (SIGSOFT)
  • IBM San Francisco Project
  • Object Management Group
  • Rational Software Corporation
  • -
Richard's Recent Articles


Instructor | Announcements | Course Info | Class Material | Schedule | Project | Grade | General Policy | Related Links