Using Cryptography For Network Security: - Common Problems
Using Cryptography For Network Security: - Common Problems
Host A
TCP/IP
Internet
Host B
Common problems:
Authentication - A and B want to prove their identities
to one another
Key-distribution - A and B want to agree on a session
key that can be used to encrypt all subsequent
communications
Cryptographic Protocols
A protocol is an agreed-upon sequence of actions
performed by two or more principals
Cryptographic protocols make use of
cryptography to accomplish some task securely
Example:
How can Alice and Bob agree on a session key to
protect a conversation?
Answer: use a key-exchange cryptographic protocol
Issues:
Security depends on secrecy of KA and KB
KDC must be secure and trusted by both Alice and
Bob
KA and KB should be used sparingly
Authentication
Authentication is the process of proving your
identity to someone else
One-way
Two-way
A: => B(NA);
B: => A(Encrypt(NA, KAB));
Wide-Mouth Frog
Assumes a trusted third-party, Sam, who shares a secret keys, KC
and KD, respectively, with Carla and Diane
Observations:
Reliance on synchronized clocks to generate timestamps
Depends on a third-party that both participants trust
Initiator is trusted to generate good session keys
S: => C(Encrypt((C,CPublic,TS),SPriavte),Encrypt((D,DPublic,TS),SPriavte));
C: => D(Encrypt((C,CPublic,TS),SPriavte),Encrypt((D,DPublic,TS),SPriavte));
Carla generates the session key, KCD, and signed a message containing
it and a timestamp with her private key
C: => D(Encrypt(Encrypt((KCD,TC),CPrivate),DPublic));