80 likes | 94 Views
Learn how to achieve security by authenticating an agent's identity, verifying the integrity of requests, and checking the agent's authorization. Discover design principles to minimize security holes, minimize secrets, and establish fail-safe defaults. Understand the importance of authentication and key distribution, and the attacks on authentication systems. Finally, explore the concept of confidentiality and how to combine it with authentication.
E N D
6.033 Quiz3 Review Spring 2007
How can we achieve security? • Authenticate agent’s identity • Verify the integrity of the request • Check the agent’s authorization • Complete mediation – answer all three questions for every request
Design Principles • Open Design Principle – need help spotting security holes • Minimize secrets: hard to keep them! • Economy of mechanism: fewer things to get right • Minimize common mechanism- fewer unintended communication paths • Fail-safe defaults: most users won’t change them • Least-privilege principle: limit the damage of an accident • Complete mediation- check every operation
Authentication • Establish the origin and integrity of the message • Sign and Verify: Sender creates an authentication tag.[ T= sign(M, K1)] • Receiver verifies it. [Result = Verify(M’, T’, K2)]
Implementation • Cryptographic transformations used – without knowing K, it should be “impossible” to construct a different message and tag that verifies correctly. • Algorithms are public, secret is just a key (longer keys harder to break) • Shared key : Sign and verify using the same key • Public-Key : Use private key to sign, public key to verify
Key Distribution • Trusted physical delivery • Use mutually-trusted third party • “3” forms a certificate and Charles is CA.
Attacks on authentication systems • Modifications to M and T • Reordering M • Extending M by appending information • Splicing several messages and tags • Attacks on cryptographic transformations • Sign and verify construction is hard!
Confidentiality • Encrypt – message to ciphertext • Decrypt – ciphertext to plain text • Can use shared key or public-key cryptography • Combining authentication and confidentiality- encrypt and then sign the encrypted message