0% found this document useful (0 votes)
26 views59 pages

Chapter 13 - Security

This document discusses network security concepts. It defines network security as providing confidentiality, authentication, message integrity, and access/availability of services. Common threats are eavesdropping, message insertion/alteration, impersonation, hijacking, and denial of service attacks. Symmetric and public key cryptography are introduced as methods to secure communications between parties like Alice and Bob, who want to securely communicate but must prevent an attacker like Trudy from accessing their messages. The document explores different authentication protocols and their vulnerabilities like playback attacks, motivating the use of nonces to prevent replay of captured authentication attempts.

Uploaded by

Tresor Brou
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
26 views59 pages

Chapter 13 - Security

This document discusses network security concepts. It defines network security as providing confidentiality, authentication, message integrity, and access/availability of services. Common threats are eavesdropping, message insertion/alteration, impersonation, hijacking, and denial of service attacks. Symmetric and public key cryptography are introduced as methods to secure communications between parties like Alice and Bob, who want to securely communicate but must prevent an attacker like Trudy from accessing their messages. The document explores different authentication protocols and their vulnerabilities like playback attacks, motivating the use of nonces to prevent replay of captured authentication attempts.

Uploaded by

Tresor Brou
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 59

Network Security

8: Network Security 8-1


What is network security?
Confidentiality: only sender, intended receiver
should “understand” message contents
 sender encrypts message
 receiver decrypts message

Authentication: sender, receiver want to confirm


identity of each other
Message Integrity: sender, receiver want to ensure
message not altered (in transit, or afterwards)
without detection
Access and Availability: services must be accessible
and available to users

8: Network Security 8-2


Friends and enemies: Alice, Bob, Trudy
 well-known in network security world
 Bob, Alice (lovers!) want to communicate “securely”
 Trudy (intruder) may intercept, delete, add messages

Alice Bob
data, control
channel
messages

data secure secure data


sender receiver

Trudy
8: Network Security 8-3
Who might Bob, Alice be?
 … well, real-life Bobs and Alices!
 Web browser/server for electronic
transactions (e.g., on-line purchases)
 on-line banking client/server
 DNS servers
 routers exchanging routing table updates
 other examples?

8: Network Security 8-4


There are bad guys (and girls) out there!
Q: What can a “bad guy” do?
A: a lot!
 eavesdrop: intercept messages
 actively insert messages into connection
 impersonation: can fake (spoof) source address
in packet (or any field in packet)
 hijacking: “take over” ongoing connection by
removing sender or receiver, inserting himself
in place
 denial of service: prevent service from being
used by others (e.g., by overloading resources)

8: Network Security 8-5


The language of cryptography
Alice’s Bob’s
K encryption K decryption
A
key B key

plaintext encryption ciphertext decryption plaintext


algorithm algorithm

symmetric key crypto: sender, receiver keys identical


public-key crypto: encryption key public, decryption key
secret (private)

8: Network Security 8-6


Symmetric key cryptography
substitution cipher: substituting one thing for another
 monoalphabetic cipher: substitute one letter for another

plaintext: abcdefghijklmnopqrstuvwxyz

ciphertext: mnbvcxzasdfghjklpoiuytrewq

E.g.: Plaintext: bob. i love you. alice


ciphertext: nkn. s gktc wky. mgsbc

8: Network Security 8-7


Symmetric key cryptography

KA-B KA-B

plaintext encryption ciphertext decryption plaintext


message, m algorithm algorithm
K (m)
A-B
m=K ( KA-B(m) )
A-B

symmetric key crypto: Bob and Alice share know same


(symmetric) key: K
A-B
 e.g., key is knowing substitution pattern in mono
alphabetic substitution cipher
 Q: how do Bob and Alice agree on key value?

8: Network Security 8-8


Public Key Cryptography

symmetric key crypto public key cryptography


 requires sender,  radically different
receiver know shared approach [Diffie-
secret key Hellman76, RSA78]
 Q: how to agree on key  sender, receiver do
in first place not share secret key
(particularly if never  public encryption key
“met”)? known to all
 private decryption
key known only to
receiver

8: Network Security 8-9


Public key cryptography
+ Bob’s public
K
B key

- Bob’s private
K
B key

plaintext encryption ciphertext decryption plaintext


message, m algorithm + algorithm message
K (m) - +
B m = K B(K (m))
B

8: Network Security 8-10


Public key encryption algorithms

Requirements:
+ . .
1 need K B( ) and K - ( ) such that
B
- +
K (K (m)) = m
B B
given public key K , it should +be impossible to
2 compute private key K B
-
B

RSA: Rivest, Shamir, Adelson algorithm


8: Network Security 8-11
RSA: another important property
The following property will be very useful later:

- + + -
K (K (m)) = m = K (K (m))
B B B B

use public key use private key


first, followed first, followed
by private key by public key

Result is the same!

8: Network Security 8-12


Authentication
Goal: Bob wants Alice to “prove” her identity
to him
Protocol ap1.0: Alice says “I am Alice”

“I am Alice”
Failure scenario??

8: Network Security 8-13


Authentication
Goal: Bob wants Alice to “prove” her identity
to him
Protocol ap1.0: Alice says “I am Alice”

in a network,
Bob can not “see”
Alice, so Trudy simply
“I am Alice” declares
herself to be Alice

8: Network Security 8-14


Authentication: another try
Protocol ap2.0: Alice says “I am Alice” in an IP packet
containing her source IP address

Alice’s
IP address
“I am Alice”

Failure scenario??

8: Network Security 8-15


Authentication: another try
Protocol ap2.0: Alice says “I am Alice” in an IP packet
containing her source IP address

Trudy can create


a packet
Alice’s
“spoofing”
IP address
“I am Alice” Alice’s address

8: Network Security 8-16


Authentication: another try
Protocol ap3.0: Alice says “I am Alice” and sends her
secret password to “prove” it.

Alice’s Alice’s
“I’m Alice”
IP addr password

Alice’s Failure scenario??


OK
IP addr

8: Network Security 8-17


Authentication: another try
Protocol ap3.0: Alice says “I am Alice” and sends her
secret password to “prove” it.

Alice’s Alice’s
“I’m Alice”
IP addr password
playback attack: Trudy
Alice’s records Alice’s packet
OK
IP addr and later
plays it back to Bob

Alice’s Alice’s
“I’m Alice”
IP addr password

8: Network Security 8-18


Authentication: yet another try
Protocol ap3.1: Alice says “I am Alice” and sends her
encrypted secret password to “prove” it.

Alice’s encrypted
“I’m Alice”
IP addr password

Alice’s Failure scenario??


OK
IP addr

8: Network Security 8-19


Authentication: another try
Protocol ap3.1: Alice says “I am Alice” and sends her
encrypted secret password to “prove” it.

Alice’s encrypted
IP addr password
“I’m Alice” record
and
Alice’s
OK playback
IP addr
still works!

Alice’s encrypted
“I’m Alice”
IP addr password

8: Network Security 8-20


Authentication: yet another try
Goal: avoid playback attack
Nonce: number (R) used only once –in-a-lifetime
ap4.0: to prove Alice “live”, Bob sends Alice nonce, R.
Alice
must return R, encrypted with shared secret key
“I am Alice”

R
KA-B(R) Alice is live, and
only Alice knows
key to encrypt
nonce, so it must
Failures, drawbacks? be Alice!
8: Network Security 8-21
Authentication: ap5.0
ap4.0 requires shared symmetric key
 can we authenticate using public key techniques?
ap5.0: use nonce, public key cryptography

“I am Alice”
Bob computes
R + -
- KA(KA (R)) = R
K A (R) and knows only Alice
“send me your public key”
could have the private
+ key, that encrypted R
KA such that
+ -
K (K (R)) = R
A A

8: Network Security 8-22


ap5.0: security hole
Man (woman) in the middle attack: Trudy poses as
Alice (to Bob) and as Bob (to Alice)

I am Alice I am Alice
R -
K (R)
T
R - Send me your public key
K (R) +
A K
T
Send me your public key
+
K
A +
K (m)
Trudy gets T
- +
+ m = K (K (m))
K (m)
A sends T T Alice
m to
- + encrypted with
m = K (K (m))
A A Alice’s public key
8: Network Security 8-23
ap5.0: security hole
Man (woman) in the middle attack: Trudy poses as
Alice (to Bob) and as Bob (to Alice)

Difficult to detect:
 Bob receives everything that Alice sends, and vice
versa. (e.g., so Bob, Alice can meet one week later and
recall conversation)
 problem is that Trudy receives all messages as well!

8: Network Security 8-24


Digital Signatures

Cryptographic technique analogous to hand-


written signatures.
 sender (Bob) digitally signs document,
establishing he is document owner/creator.
 verifiable, nonforgeable: recipient (Alice) can
prove to someone that Bob, and no one else
(including Alice), must have signed document

8: Network Security 8-25


Digital Signatures
Simple digital signature for message m:
 Bob signs m by encrypting with his private key
- -
KB, creating “signed” message, KB(m)
-
Bob’s message, m K B Bob’s private -
K B(m)
key
Dear Alice
Bob’s message, m,
Oh, how I have missed Public key signed (encrypted)
you. I think of you all the
time! …(blah blah blah) encryption with his private key
algorithm
Bob

8: Network Security 8-26


Digital Signatures (more)
 Suppose Alice receives msg m, digital signature KB-(m)
 Alice verifies m signed by Bob by applying Bob’s
+ - + -
public key KB to KB(m) then checks KB(KB(m) ) = m.
+ -
 If KB(KB(m) ) = m, whoever signed m must have used
Bob’s private key.
Alice thus verifies that:
 Bob signed m.
 No one else signed m.
 Bob signed m and not m’.

Non-repudiation:
 Alice can take m, and signature KB(m) to court and prove
that Bob signed m. -

8: Network Security 8-27


Message Digests large
H: Hash
message
Function
m
Computationally expensive
to public-key-encrypt
long messages H(m)

Goal: fixed-length, easy- to-


Hash function properties:
compute digital
“fingerprint”  produces fixed-size msg
 apply hash function H to digest (fingerprint)
m, get fixed size message  given message digest x,
digest, H(m). computationally
infeasible to find m such
that x = H(m)

8: Network Security 8-28


Digital signature = signed message digest
Alice verifies signature and
Bob sends digitally signed integrity of digitally signed
message: message:
large
message H: Hash encrypted
m function H(m)
msg digest
-
KB(H(m))
Bob’s digital large
private signature message
- Bob’s
key KB (encrypt) m digital
public
+ signature
key KB
encrypted H: Hash (decrypt)
msg digest function
-
+ KB(H(m))
H(m) H(m)

equal
?
8: Network Security 8-29
Hash Function Algorithms
 MD5 hash function widely used (RFC 1321)
 computes 128-bit message digest in 4-step
process.
 arbitrary 128-bit string x, appears difficult to
construct msg m whose MD5 hash is equal to x.
 SHA-1 is also used.
 US standard [NIST, FIPS PUB 180-1]
 160-bit message digest

8: Network Security 8-30


Trusted Intermediaries
Symmetric key problem: Public key problem:
 How do two entities  When Alice obtains
establish shared secret Bob’s public key (from
key over network? web site, e-mail,
Solution: diskette), how does she
know it is Bob’s public
 trusted key distribution
key, not Trudy’s?
center (KDC) acting as
intermediary between Solution:
entities  trusted certification
authority (CA)

8: Network Security 8-31


Key Distribution Center (KDC)
 Alice, Bob need shared symmetric key.
 KDC: server shares different secret key with each
registered user (many users)
 Alice, Bob know own symmetric keys, KA-KDC KB-KDC , for
communicating with KDC.
KDC

KA-KDC KP-KDC
KX-KDC
KP-KDC KB-KDC
KY-KDC

KZ-KDC
KA-KDC KB-KDC

8: Network Security 8-32


Certification Authorities
 Certification authority (CA): binds public key to
particular entity, E.
 E (person, router) registers its public key with CA.
 E provides “proof of identity” to CA.
 CA creates certificate binding E to its public key.
 certificate containing E’s public key digitally signed by CA
– CA says “this is E’s public key”

Bob’s digital
+
public +
signature KB
key KB (encrypt)
CA
certificate for
K-
Bob’s private
identifying key CA Bob’s public key,
information signed by CA
8: Network Security 8-33
Certification Authorities
 When Alice wants Bob’s public key:
 gets Bob’s certificate (Bob or elsewhere).
 apply CA’s public key to Bob’s certificate, get
Bob’s public key

+ digital Bob’s
KB signature public
+
(decrypt) K B key

CA
public +
K CA
key

8: Network Security 8-34


A certificate contains:
 Serial number (unique to issuer)
 info about certificate owner, including algorithm
and key value itself (not shown)  info about certificate
issuer
 valid dates
 digital signature by
issuer

8: Network Security 8-35


Secure sockets layer (SSL)

 transport layer  server authentication:


 SSL-enabled browser
security to any TCP- includes public keys for
based app using SSL trusted CAs.
services.  Browser requests

 used between Web server certificate,


issued by trusted CA.
browsers, servers for  Browser uses CA’s
e-commerce (shttp). public key to extract
 security services: server’s public key from
certificate.
 server authentication  check your browser’s
 data encryption security menu to see
 client authentication its trusted CAs.
(optional)
8: Network Security 8-36
SSL (continued)

Client Server
Open secure socket

Certificate (CA signed Pub Key)

•Verify CA trusted
•Extract Server Pub Key
•Generate symmetric Session Key
•Encrypt Session Key with Server Pub Key
Encrypted Session Key
•Extract Session Key
(using Private Key)

In Java all of this happens behind the scenes!


SSLSocket s = (SSLSocket)sslFact.createSocket(host, port);

8: Network Security 8-37


SSL Observations
 Previous example does not
 Show how public/private key pairs are
generated
• Manually
 Enable the Server to authenticate the client
• Client can use trusted certificate, or another scheme
such as passwords
 Show how the Server receives a signed
certificate
• CA!

8: Network Security 8-38


Project 3
 Project 3 Overview
 Secure your time/date client and server
 Mutual authentication between client and server
 Implement a trusted CA that can generate
certificates for the client and server (by signing
their public keys)

 Offline, manual tasks


1. CA, Client, and Server generate public/private keys
2. CA generates self-signed certificate
3. Client and Server import CA certificate

8: Network Security 8-39


Project 3
 CA behavior
1. Accepts connections from clients – does not
require SSL-based client authentication
 Note: The T/D Server can act as a client when connecting
to the CA
2. Authenticates clients using passwords – can be sent
in plaintext
3. Receives Public Key from client
4. Generates certificate by signing client Public Key
with CA Private Key
5. Returns certificate to client
8: Network Security 8-40
Project 3
 Server behavior
1. Connect to trusted CA
2. Send password for CA authentication of Server
3. Send Public Key to CA
4. Receive certificate from CA
5. Wait for secure client connection
6. Require client authentication – client must have CA-
signed certificate
7. Allow client to request time or date
8. Send response

8: Network Security 8-41


Project 3
 Client behavior
1. Connect to trusted CA
2. Send password for CA authentication of Server
3. Send Public Key to CA
4. Receive certificate from CA
5. Securely connect to server
6. Request time or date
7. Receive/display response

8: Network Security 8-42


Java and SSL
 keytool – command line tool used to generate
public/private keys, generate self-signed
certificates, and import other trusted
certificates
 javax.net.ssl java.security java.security.[spec,cert]
org.bouncycastle.[x509,jce,asn1]
 KeyManager – object that stores my
keys/certificates
 used during handshake with server
 TrustManager – object that stores trusted
certificates
 can be initialized from same file as KeyStore

8: Network Security 8-43


Java and SSL
 SSLContext – context that specifies keys,
certificates, and trusted certificates
 initialize
context with appropriate KeyManagers
and TrustManagers
 SSLSocketFactory/SSLServerSocketFact
ory – will create socket based on given
context
 default context will not contain appropriate
certificates
 SSLSocket – performs regular socket-like
communication only with encryption
8: Network Security 8-44
Java and SSL
 CertificateFactory – can create a
certificate from an InputStream
 used to create certificate sent from CA
 Certificate, PublicKey, PrivateKey – what
you’d expect

8: Network Security 8-45


Java and SSL
 X509Certificate – certificate based on X.509
standard
 defines structure of certificate, etc
 X509Name – object to represent distinguished
name of subject/issuer of certificate
 X509EncodedKeySpec/KeyFactory – create public
key from byte stream
 X509V3CertificateGenerator – use to generate
certificate
 use specified private key to generate certificate for
holder of specified public key

8: Network Security 8-46


Firewalls
firewall
isolates organization’s internal net from larger
Internet, allowing some packets to pass,
blocking others.

administered public
network Internet

firewall

8: Network Security 8-47


Firewalls: Why
prevent denial of service attacks:
 SYN flooding: attacker establishes many bogus TCP
connections, no resources left for “real” connections.
prevent illegal modification/access of internal data.
 e.g., attacker replaces CIA’s homepage with
something else
allow only authorized access to inside network (set of
authenticated users/hosts)
two types of firewalls:
 application-level
 packet-filtering

8: Network Security 8-48


Should arriving
Packet Filtering packet be allowed
in? Departing packet
let out?

 internal network connected to Internet via


router firewall
 router filters packet-by-packet, decision to
forward/drop packet based on:
 source IP address, destination IP address
 TCP/UDP source and destination port numbers
 ICMP message type
 TCP SYN and ACK bits
8: Network Security 8-49
Packet Filtering
 Example 1: block incoming and outgoing
datagrams with IP protocol field = 17 and with
either source or dest port = 23.
 All incoming and outgoing UDP flows and telnet
connections are blocked.
 Example 2: Block inbound TCP segments with
ACK=0.
 Prevents external clients from making TCP
connections with internal clients, but allows
internal clients to connect to outside.

8: Network Security 8-50


Application gateways gateway-to-remote
host telnet session
host-to-gateway
telnet session
 Filters packets on
application data as well as application
gateway
router and filter

on IP/TCP/UDP fields.
 Example: allow select
internal users to telnet
outside.

1. Require all telnet users to telnet through gateway.


2. For authorized users, gateway sets up telnet connection to
dest host. Gateway relays data between 2 connections
3. Router filter blocks all telnet connections not originating
from gateway.

8: Network Security 8-51


Internet security threats
Mapping:
 before attacking: “case the joint” – find out
what services are implemented on network
 Use ping to determine what hosts have
addresses on network
 Port-scanning: try to establish TCP connection
to each port in sequence (see what happens)
 nmap (http://www.insecure.org/nmap/) mapper:
“network exploration and security auditing”

Countermeasures?

8: Network Security 8-52


Internet security threats
Mapping: countermeasures
 record traffic entering network
 look for suspicious activity (IP addresses, pots
being scanned sequentially)

8: Network Security 8-53


Internet security threats
Packet sniffing:
 broadcast media
 promiscuous NIC reads all packets passing by
 can read all unencrypted data (e.g. passwords)
 e.g.: C sniffs B’s packets

A C

src:B dest:A payload


B
Countermeasures?
8: Network Security 8-54
Internet security threats
Packet sniffing: countermeasures
 all hosts in organization run software that checks periodically if
host interface in promiscuous mode.
 one host per segment of broadcast media (switched Ethernet at
hub)

A C

src:B dest:A payload


B

8: Network Security 8-55


Internet security threats
IP Spoofing:
 can generate “raw” IP packets directly from application, putting any value
into IP source address field
 receiver can’t tell if source is spoofed
 e.g.: C pretends to be B

A C

src:B dest:A payload

B
Countermeasures?
8: Network Security 8-56
Internet security threats
IP Spoofing: ingress filtering
 routers should not forward outgoing packets with invalid source
addresses (e.g., datagram source address not in router’s network)
 great, but ingress filtering can not be mandated for all networks

A C

src:B dest:A payload

8: Network Security 8-57


Internet security threats
Denial of service (DOS):
 flood of maliciously generated packets “swamp” receiver
 Distributed DOS (DDOS): multiple coordinated sources swamp receiver
 e.g., C and remote host SYN-attack A

A C
SYN
SYN
SYN SYN SYN

B
SYN
Countermeasures? SYN
8: Network Security 8-58
Internet security threats
Denial of service (DOS): countermeasures
 filter out flooded packets (e.g., SYN) before reaching host:
throw out good with bad
 traceback to source of floods (most likely an innocent,
compromised machine)

A C
SYN
SYN
SYN SYN SYN

B
SYN
SYN
8: Network Security 8-59

You might also like