These haven't been "frequently" asked, but they are good questions: Question: I have been playing around more with JCE and using DES and right now what I am doing is using DES to encrypt the passwords and write them to a file. To use DES though, I hardcode in my own 8-byte key, is this ok? If not, I dont really know how else you can do this, being if you use the keyGenerator you will get a different key each time. Answer: You don't have alot of options with the SunJCE, but look at what you do have. You have SHA and MD5 (hashes) but they are available only in an HMAC version (HMAC just means that we take a non-keyed hash, and then sign it (somehow) with a cryptographic key. Now, if I leave the passwords in the clear, that is bad. If I encrypt them with DES, and keep the key where they can get it, that is not much better. If I do a one way hash of the passwords (non-keyed, just MD5 or SHA-1) that's pretty good. I'm hoping no bad guys can get my password file, if they do they still need to find the passwords that hash to what I have stored (e.g dictionary attack, etc). So, does the JCE let me generate a hash w/out signing it? It isn't advertised to do so, but maybe looking at the API will show me a way to do this (maybe the signing is done as a separate step, and could be skipped or (or handed a null key or done with a null cipher). This is one possible solution. If the API forces you to sign (which is what the advertising seems to say, since http://java.sun.com/products/jce/index-122.html mentions HMAC MD5 and HMAC SHA-1, but not just MD5 or SHA-1), then you need to figure out which is better, using DES and leaving the key around, or using a signed Hash and leaving the key around. One is obviously better, and that is the one I would use ;-) Question: Can only one subject own a file? Answer: As our book says, the meanings of the different permisions is system specific. I was assuming one owner per file. I guess that's an assumption I was making without realizing it. The way we've defined owner, it is just a flag that gives certain privileges (e.g., the privilege of saying what the users can do with your file under the DAC). There's no real reason why more than one subject couldn't have this privilege (of course the details need worked out, can one owner take privileges away from another owner?) One problem is that multiple owners would complicate the o option for my privileged user (so if I was assigned this problem, I'd assume one owner and state the assumption). Observation: Adding a user (command "a") seems pointless if the user cannot login, therefore can I give the user a temporary password and prompt bossman to remind him that he must change the password? Answer: But bossman can do: a pete S then u pete newpw then n peteshomedir S then o peteshomedir pete (in a real system he'd probably give him some disk quotas and stuff, but we're just covering the basics) Question: When I show the ACM (command "s") I am assuming that the standard out/or the file is on the server side. Is this correct? Also, if I use the same format, but different ordering of subjects, is this ok? Answer: I want to see it on the client side. The privileged client is looking for the info. Question: Java 1.4 seems to have included the cryptography extension. I checked the API and there is only 1 minor difference between the extension and java 1.4. If I were to develop java code using java1.4, will there be compatibility issues? I will of course test my code on dc machines before I turn them in. My guess is that even if there were issues, it won't be a major overhaul to make it compatible, since the classes and methods are identical. Answer: You need to have it running on the DC. I need to be able to compile and run on the DC. Lots of people develop at home and make sure it works on DC, just don't wait until the last minute to do so. Question: Is it guaranteed that Init will be called if the second version of AMServer is invoked? Answer: Yes, if I want you to come up in a state I specify, I will run your Init program prior to testing. Question: What is the password '1i2Lt*M' for? I fail to see its significance... and why is it piped in as if it were a file? Answer: This format has been updated. It should not use the redirection arrow, but just be: java Init upwlist portnum or java Init upwlist portnum 1i2Lt*M If the password isn't there prompt for it and it should be the first thing you take from standard in. You should look at the format page, Note that the port number is also new if you picked your homework up at 12:30 (I mentioned it in the later section, and thought I'd mentioned it in both sections on Thursday) Note that Init will be run on the same machine as the AMServer (so no machine name is required). Question: Why is it important to store the additional files (ACM and password file) as objects in the acm? Does that have impact on the security, or is that something just make us practice writing java code :) ? Answer: Maybe I want to see if you'll let alice change the ACM, or if you'll let bossman change the password file? They are probably the two most important files in your ACM.... Question: Out of curiosity, would a graphical version of the assignment be hard to to grade? (i.e. use buttons and text fields instead of keys) Or would it be refreshing? Answer: No, I want you to conform to the (updated) format specifications. Special cases are not "refreshing" to the TA who has 101 assignments to grade. Question: I looked over the class notes on 'covert channels', but I still don't quite understand it. Could you explain the example you gave in class of how a person with lower security could obtain, say, top secret information by using the response the server gave back when he/she tries to access the forbidden object? Answer: This will take me 6 seconds to describe in person, with a picture. Can you stop by the office or catch me before/after class? Question: How do I post to the newsgroup? What address do I send it to? Does trn allow you to send? I am sorry about all the newsgroup questions, but I was accustomed to use pine as a mail and newsgroup reader, and I have not figured out how to configure pine to read newsgroup here. Answer: I use rn from the command line. trn is supposed to do every thing rn does, only better and do more (that's what they tell me anyway). From rn, i type "f" (for follow up) and it asks me if I want to continue with the same subject, or start a new subject. It then asks if I _really_ want to post. Then, on my own box, it gives me a vi editor to compose my message, on DC I have to select an editor. When I'm done I exit the editor as usual, and rn asks if I want to send it or abort or spell check or edit it some more. As you can probably tell, I've not had good luck with the spellcheck option, so I just send it. rn does work on the dc, but if you're learning from scratch you might as well learn a newer reader with more features (such as trn). Also, many people use their browser to read newsgroups (but don't ask me how, since I don't do it that way). It's probable easier to go with an interface you know rather than learn something new.