Types of Attacks
Attacker Model describes the capacities of a potential attacker, don’t build systems that are overly secure for the types of attacks they typically get.
Principals are the processes that carry out actions in a security example (Alice, Bob)
Policies vs. Mechanisms
These qualities need to be accomplished by a secure system
Confidentiality
Integrity
Availability
gives you an encoded message or cipher text
encoded msg = original_msg(sequence of bytes) + keyoriginal msg = encoded_msg(bytes) + keyKey = sequence of bytes assigned to a user, can be used to lock or unlock
Ka = Alice’s Key, Kb = Bob’s Key, Kab = shared key between Alice and BobSince public-private key is expensive, systems typically use it only to start session + generate a shared key → then the shared key is used for following message exchanges
Ka_priv = Alice’s private key known only to herKa_pub = Alice’s public key that everyone knowsKa_pub can only be decrypted by Ka_priv → Encoded messages meant for Alice are only decodable by AliceKa_priv can only be decrypted byKa_pub → Alice’s messages are only decodable by others with public keyDirect Authentication → only involves two parties
How can Alice prove to Bob that she is Alice without giving away Kab (because people can eavesdrop and steal Kab) ?
nonce_bKab(nonce_b) and Bob can compare and confirm since they both share Kabnonce_aKab(nonce_a)OPTIMIZATION 🔥
Kab(nonce_a) AND send back the nonce nonce_b (from Bob) through another session and use the response of that Kab(nonce_b to fool Bob that she is in fact Alice
