CSE 227: Lecture 7

The topics covered in this lecture are Proofs of Correctness and Defensive Programming

Proofs of Correctness

See lecture 6 notes for the code. The key is that the composition of two permutation from the set of permutations of the integers from 0 to n-1 will itself be a permutation from the same set.

Defensive Programming

  • Input checking -- perl's taint idea is one kind
  • Safe languages, good compilers -- buffer overflow detection from mandatory array bounds checks (or proofs that they are not necessary)
  • Firewalls -- network perimeters. Prevent entities from external networks from accessing the intranet.
  • Mobile code -- activeX controls, Java applets. Signed native code vs virtual machine code. Protecting host from potentially malicious code. Prevent externally-supplied code from (inappropriately) accessing resources on the local machine.
  • Sandboxing via virtual machines that can enforce security policies. Java is one. VMWare is another. IBM VM is a classic version.
  • Mobile agents -- code that needs to be protected from potentially bad servers.
  • Additional Info

    [ search CSE | CSE | bsy's home page | links | webster | MRQE | google | yahoo | citeseer | pgp certserver | openpgp certserver ]
    picture of bsy

    bsy+cse227w03@cs.ucsd.edu, last updated Thu Jan 30 18:57:18 PST 2003. Copyright 2003 Bennet Yee.
    email bsy.

    Don't make me hand over my privacy keys!