Student name: YOUR-NAME-HERE
LOGIN: YOUR-CS-DEPT-LOGIN-HERE
E-mail: YOUR-EMAIL-HERE

Tufts CS 117 (Fall 2024):
Internet-scale Distributed Systems

Tufts CS 117 Assignment:
Security (Questions)

These questions are intended as a quick confirmation that you have read the material and thought about the key issues.

The Thompson paper is a little tricky to understand, but figuring out what he's done is very worthwhile. Do you best to answer these questions before our class discussion, but don't worry if you can't figure out everything on your own. We will review the paper in detail in class, and then you can update your answers. We will look to make sure that you at least tried to answer the questions the first time!

IMPORTANT: your responses will be graded automatically by a script. Please do not add explanations or commentary to your answers. Fill in only the field where a response is requestsed. Each of your responses to these True/False questions should be a single letter: T or F, and no more. Empty space marked with ___ is used to indicate where your answers should go: you may leave those underscore characters and add your answer, or you may replace the ___ with your response. Do NOT edit any of the other supplied text.


Please answer the following True/False questions, by typing the single letter T or F in the space provided (lower or uppercase T/F are both fine). Please do not use the full words True/False:

  1. The initial modification Ken Thompson made to his compiler was to have it print all of its own source code.
  2. True(T) or False(F): ___
  3. After Thompson finished explaining the final "stage III" version of his compiler, he described in the paper the process by which the compiler was finally deployed to users. True or false: after this deployment was complete, the malicious changes to the compiler were hidden in the compiler source code in very tricky ways.
  4. True(T) or False(F): ___
  5. With the modification Thompson made to his compiler in stage II, source code:
        char c = '\v';
      
    would compile to machine code that correctly assigns the decimal value 11 (ASCII for the vertical tab character) to variable c, even though the number 11 neither appears directly nor is computed in any of the pertinent compiler source code.
  6. True(T) or False(F): ___
  7. Thompson suggests that programmers will learn a lot by using various programming languages to write programs that print their own program source code.
  8. True(T) or False(F): ___
  9. In the paper, stage 3.3 describes a version of the compiler source. True or false: the compiler source in stage 3.3 is rigged with malicious code that detects when the compiler is compiling itself.
  10. True(T) or False(F): ___
  11. Although the paper mainly discusses tampering with a compiler, similar "attacks" are possible when creating text editors used to edit program source code.
  12. True(T) or False(F): ___

END OF QUESTIONS