* 8 *

Object orientation

  1. Explain what is meant by private channel and covert channel. Consider the following functions in C++:
    void function(int a, int b)            void function(int& a, int& b)
    {                                      {
    ...                                    ....
    }                                      }
    Which of these functions has a private channel to the calling function and which has a covert channel? What does this mean?
    A covert channel is one which can circumvent security mechanisms. Private channel is the first one, covert channel is the second. In the second case the function can break through scope controls.
  2. Global variables can also be considered as a means for covert communication. Explain how the careless use of global variables can lead to errors in program code. See notes from lecture. Covert channels break security.
  3. Compare the Clarke-Wilson model idea of using specialized programs to provide access control with the use of specialized class-methods in C++ or Java. Both use the idea of making data available only through the use of special programs/methods. Data are kept private or hidden but the methods and programs can be public/protected so that users only get to use the data in predetermined ways.