Any questions on Administrativia, organizational matters? TCP/IP: - - PDF document

any questions on
SMART_READER_LITE
LIVE PREVIEW

Any questions on Administrativia, organizational matters? TCP/IP: - - PDF document

Any questions on Administrativia, organizational matters? TCP/IP: Ethernet, IP, and ARP Historical/cultural overview? (and a PGP refresher) Network Security Lecture 2 Eike Ritter Network Security - Lecture 2 1 Today PGP in 6


slide-1
SLIDE 1

TCP/IP: Ethernet, IP, and ARP (and a PGP refresher)

Network Security Lecture 2

Any questions on…

  • Administrativia, organizational matters?
  • Historical/cultural overview?

Eike Ritter Network Security - Lecture 2 1

Today

  • PGP in 6 slides
  • IP
  • Ethernet
  • ARP
  • Attacks: sniffing

Eike Ritter Network Security - Lecture 2 2

PGP

Eike Ritter Network Security - Lecture 2 3

Pretty Good Privacy (PGP)

  • Application for data encryption and

decryption created by Phil Zimmermann

  • Message format used by PGP is standardized

(RFC 4880), so that interoperability among different programs is possible

  • Here we will use GnuPG

Eike Ritter Network Security - Lecture 2 4

Generating a key

  • $ gpg --gen-key
  • Every user has one (or more) key pairs,

consisting of a private key and a public key

– The private key can be encrypted using a passphrase – All keys are stored in a keyring

  • This command generates a new key pair and

stores it in the keyring

Eike Ritter Network Security - Lecture 2 5

slide-2
SLIDE 2

Publishing the public key

  • $ gpg --export –a ‘Eike Ritter (Test

key)’

  • ----BEGIN PGP PUBLIC KEY BLOCK-----

Version: GnuPG v1.4.10 (GNU/Linux) mQENBE8KvXUBCADGTet/EQF0qPeaG5IkwWzGfRxc2XT7I6KvOKI4NverNxC8JijF ZKMf0RSZ5himtEVGjXTmc0hyMzuYlDzg/oVM70tygqEEC28IpppdINJVtyUfNYwu … … =aGju

  • ----END PGP PUBLIC KEY BLOCK-----
  • Public key can be upload it to web site or to

keyserver, such as pgp.mit.edu

Eike Ritter Network Security - Lecture 2 6

Encrypting a message

  • $ gpg -r <recipient-key> -e secret.txt
  • Encrypts the file secret.txt so that the

recipient having public key <recipient-key> can recover its plain text content

  • In practice, a session key is generated randomly

and is used to encrypt (symmetrically) the file

  • The session key is encrypted with the public key
  • f the recipient(s) and attached to the file
  • Decrypting:

$ gpg -d secret.gpg

Eike Ritter Network Security - Lecture 2 7

Signing a message

  • $ gpg -s -a secret.txt
  • Generates a signature for the given file (in

ASCII format) using the private key of the user

  • The signature can be verified by using the

public key of the signer: $ gpg --verify secret.asc

gpg: Signature made Mon 09 Jan 2012 10:43:15 GMT using RSA key ID AA226670 gpg: Good signature from "Eike Ritter (Test key) <test@rittere.co.uk>"

Eike Ritter Network Security - Lecture 2 8

Other common operations

  • Generating a detached signature
  • Signing and encrypting a message
  • Web of trust: sign a public key
  • Revoking a key

Eike Ritter Network Security - Lecture 2 9

TCP/IP

Eike Ritter Network Security - Lecture 2 10

TCP/IP Protocol Suite

  • Network protocols

– IP (Internet Protocol) – ICMP (Internet Control Message Protocol)

  • Transport protocols

– TCP (Transmission Control Protocol) – UDP (User Datagram Protocol)

  • Application protocols

– HTTP (HyperText Transfer Protocol) – SSH – DNS

  • Other protocols

– ARP (Address Resolution Protocol)

Eike Ritter 11 Network Security - Lecture 2

slide-3
SLIDE 3

TCP/IP layering

Eike Ritter Network Security - Lecture 2 12

Ethernet, Wireless Ethernet, Wireless Network card Network card IP IP TCP TCP SSH SSH UDP UDP HTTP HTTP DNS DNS RPC RPC FTP FTP Application

  • Application-specific

protocols Transport

  • Ordering, multiplexing,

correctness Network

  • Transmission and routing

across subnets Data link

  • Error control between

adjacent nodes Physical

  • Connect to channel
  • Send/receive bytes

ICMP ICMP

IP addresses

  • Each host has one or more IP addresses for each network

interface

  • IPv4 addresses are composed of 32 bit (class+netid+hostid)
  • Represented in dotted-decimal notation: 147.188.193.82
  • Classes (up to ~1993)

Eike Ritter Network Security - Lecture 2 13

Class Starts with Netid bits Hostid bits # hosts A 7 24 16,777,21 4 B 10 14 16 65,534 C 110 21 8 254 D 1110 Multicast address E 1111 Reserved for future use

Special addresses

  • 127.0.0.0 – 127.255.255.255: loopback interface
  • Private networks (RFC 1597):

– 10.0.0.0 - 10.255.255.255 – 172.16.0.0 - 172.31.255.255 – 192.168.0.0 - 192.168.255.255

  • Network

– hostid bits set to 0

  • Broadcast

– All bits set to 1: local broadcast – Netid+hostid with all bits to 1: net-directed broadcast to netid (147.188.255.255)

Eike Ritter Network Security - Lecture 2 14

Classless Inter-Domain Routing (CIDR)

  • Classes lead to inefficient use of IP space and to large

routing tables

– Not enough class B – Little opportunity for route aggregation (many class C networks geographically dispersed)

  • Solution: variable-length subnet masking, i.e., the

netid/hostid boundary can be placed on arbitrary bit

  • Notation: /N gives the number of bits interpreted as

network number (“prefix”)

– /24: legacy class C – /16: legacy class B – /8: legacy class A

Eike Ritter Network Security - Lecture 2 15

Internet Protocol (IP)

  • Transmissions of blocks of data (datagrams) from

source to destination

  • Standardized in RFC 791
  • Transmission properties

– Connectionless – Unreliable, best-effort

  • delivery, integrity, ordering, non-duplication are not guaranteed
  • IP does handle fragmentation and reassembly of long datagrams
  • For direct communication, IP relies on lower level

protocols (e.g., Ethernet)

Eike Ritter Network Security - Lecture 2 16

IP datagram

Version HL ToS Total length Identifier Flags Fragment offset Time To Live Protocol Header checksum Source IP address Destination IP address Options Padding Data

Eike Ritter Network Security - Lecture 2 17

4 8 12 16 20 24 28 31

slide-4
SLIDE 4

IP header

  • Normal size: 20 bytes
  • Version (4 bits): 4 (IPv4)
  • Header length (4 bits): number of 32-bit words in the

header, including options (max header size: 60 bytes)

  • Type Of Service (8 bits):

– Used to be: priority (3 bits), quality of service (4 bits), unused bit – Now: Differentiated Services Code Point (6 bits), Explicit Congestion Notification (2 bits)

  • Total length (16 bits): datagram length in bytes (max

size: 65,535 bytes)

  • ID (16 bits): datagram identifier

Eike Ritter Network Security - Lecture 2 18

IP header

  • Flags (3 bits) and Offset (13 bits): to support

fragmentation

  • Time To Live (8 bits): max number of hops in the

delivery process

  • Protocol (8 bits): specifies the protocol encapsulated in

the datagram data (e.g., TCP, UDP)

  • Header checksum (16 bits): checksum calculated over

the IP header

– Recomputed at each hop (TTL, fragmentation)

  • Source and destination address (32 bits each): IP

addresses of the source and destination of the datagram

Eike Ritter Network Security - Lecture 2 19

IP options

  • Present if header length > 5
  • Variable length
  • Type is identified by first byte

– Record route – Source route – Timestamp – …

  • Not often used

Eike Ritter Network Security - Lecture 2 20

IP encapsulation

  • How are IP datagrams transferred over a LAN?
  • RFC 894 explains IP over Ethernet

– Encapsulation + direct delivery

Eike Ritter Network Security - Lecture 2 21

Frame data Frame data Frame header Frame header IP header IP header IP data IP data

IP direct delivery

  • Sender forwards a packet to the final

destination on a directly attached network

Eike Ritter Network Security - Lecture 2 22

147.188.193.82 00:19:D1:80:AE:45 147.188.193.15 147.188.193.6 00:04:96:1D:6B:20

From: 00:19:D1:80:AE:45 To: 00:04:96:1D:6B:20 From: 147.188.193.82 To: 147.188.193.6

147.188.193.80

Ethernet

  • Widely-used link layer protocol
  • Uses CSMA/CD (Carrier Sense, Multiple Access

with Collision Detection)

Eike Ritter Network Security - Lecture 2 23

Dest Src Ethertype Payload CRC 6 bytes 6 bytes 2 bytes 46-1500 bytes 4 bytes 0800 0800 IP datagram IP datagram 0806 0806 ARP ARP

slide-5
SLIDE 5

Address Resolution Protocol (ARP)

  • Used to map an IP address to the link-level

addresses associated with the peer’s hardware interface (e.g., Ethernet)

  • ARP messages are encapsulated in the

underlying link-level protocol

Eike Ritter Network Security - Lecture 2 24

Address Resolution Protocol (ARP)

  • Host A wants to know the hardware address associated

with IP address Ib of host B

  • A broadcasts a special message to all the hosts on the

same physical link

  • Host B answers with a message containing its own link-

level address

  • A keeps the answer in its cache (for some time, e.g., 20

minutes)

  • When A sends its request, A includes its own IP address

in the request

  • As an optimization, the receiver of the ARP request may

cache the requester mapping

Eike Ritter Network Security - Lecture 2 25

ARP messages

  • Mapping information

– Hardware (2 bytes) [Typically: Ethernet] – Protocol (2 bytes) [Typically: IP] – Hardware size (1 byte) – Protocol size (1 byte) Typically: 0x0001, 0x0800, 6, 4

  • Op: type of message (1: request; 2: response)
  • Sender Ethernet/IP: sender data
  • Target Ethernet/IP: target data
  • Target Ethernet is all 0s in request

Eike Ritter Network Security - Lecture 2 26

Hw type Proto type Hw size Proto size Op Sender Ether Sender IP Target Ether Target IP

ARP traffic

Eike Ritter Network Security - Lecture 2 27

host1# arp –n host1# ping –c 1 192.168.0.2 04:21:16.312430 ARP, Request who-has 192.168.0.2 tell 192.168.0.1, length 28 04:21:16.312500 ARP, Reply 192.168.0.2 is-at 00:30:48:dd:ec:12, length 46 04:21:16.312506 IP 192.168.0.1 > 192.168.0.2: ICMP echo request, id 16976, seq 1, length 64 04:21:16.312577 IP 192.168.0.2 > 192.168.0.1: ICMP echo reply, id 16976, seq 1, length 64 host1# arp –n 192.168.0.2 ether 00:30:48:dd:ec:12 C eth0 Host2# arp –n 192.168.0.1 ether 00:30:48:de:0b:3a C eth0

host1: 192.168.0.1 00:30:48:de:0b:3a 192.168.0.3 host2: 192.168.0.2 00:30:48:dd:ec:12 ARP request ARP response

Exercise

  • Alice (192.168.1.1) wants to send an IP datagram

to Bob (192.168.1.2)

  • What happens? (fill in the blanks)

Eike Ritter Network Security - Lecture 2 28

Alice Bob

LAN attacks

Attack Security violation Attacker goal Sniffing Confidentiality Access to information Spoofing Authenticity Impersonation of trusted host Hijacking Confidentiality, Integrity, Authenticity Impersonation, access to information Denial of Service Availability Disruption

Eike Ritter Network Security - Lecture 2 29

slide-6
SLIDE 6

Network sniffing

  • The attacker sets his/her network interface in

promiscuous mode so that all packets can be received (not only those directed to the attacker’s host)

  • Can access all the traffic on the segment
  • Note: sniffing on University network is a “disciplinary
  • ffence”

Eike Ritter Network Security - Lecture 2 30

Network sniffing

  • Many protocols (e.g., POP, TELNET, HTTP,

IMAP) transfer sensitive information (e.g., authentication credentials) in the clear

  • By sniffing the traffic, it is possible to collect

credentials, files, content of visited web pages, emails, etc.

  • Many tools available

Eike Ritter Network Security - Lecture 2 31

tcpdump

  • Tool to sniff and analyze the traffic on a network

segment

  • One of the “standard” network tools
  • Based on libpcap, which provides a platform-

independent library and API to perform traffic sniffing

  • Allows one to specify an expression that defines

which packets have to be printed

  • Requires root privileges to set the interface in

promiscuous mode (regular users can read traffic data saved in a file)

Eike Ritter Network Security - Lecture 2 32

tcpdump: command line options

  • -i: use the given network interface
  • -r: read packets from a file
  • -w: write packets to a file
  • -s: specify the amount of data to be sniffed for

each packet (0 means catch whole packets)

  • -n: do not convert addresses to names
  • -x: print the data of each packet in hex

Eike Ritter Network Security - Lecture 2 33

tcpdump: filters

  • If a filter expression is provided, tpcdump only

processes packets matching the expression

  • Expression consists of one or more primitives
  • Primitives are composed of a qualifier and an

id

  • Operators can be used to create complex filter

expressions

Eike Ritter Network Security - Lecture 2 34

tcpdump filters – cont’d

Qualifiers

  • Type

– host (host 192.168.0.1) – net (net 192.168) – port (port 80)

  • Dir: direction of traffic

– src (src host 192.168.0.1) – dst

  • Proto: protocol of interest

– Ether (ether src host 00:0c:29:ab:2c:18) – Ip – arp

Operators

  • Logical: and, or, not

– src host 192.168.0.01 and dst host google.com

  • Relational: <, >, >=, <=, =, !=
  • Binary: +, -, *, /, &, |
  • Data: proto[expr:size]

– expr: offset – size: # bytes of interest – ip[0] & 0xf > 5: filters IP datagrams with options – arp[7] = 2: ARP replies

Eike Ritter Network Security - Lecture 2 35

slide-7
SLIDE 7

Wireshark

Eike Ritter Network Security - Lecture 2 36

Detecting sniffers

  • Sniffers work by putting the network interface in promiscuous mode
  • ifconfig

$ ifconfig en1 en1:flags=8963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500 ether d8:a2:5e:ab:cd:ef inet 10.4.59.191 netmask 0xffff0000 broadcast 10.4.255.255 media: autoselect status: active

  • On recent Linux versions, this will not (always) work due to changes in

how the state of the interface is maintained in the kernel that have not been ported back to tools

– Instead, read interface flags from /sys filesystem – If flags & 0x100 then interface is in promiscuous mode (/include/linux/if.h)

# cat /sys/class/net/eth0/flags 0x1003 # tcpdump –i eth0 & # cat /sys/class/net/eth0/flags 0x1103

Eike Ritter Network Security - Lecture 2 37

Detecting sniffers – cont’d

  • Remote detection is difficult since sniffers are typically passive programs
  • Suspicious DNS lookups

– Sniffer attempts to resolve names associated with IP address (e.g., tcpdump without –n option) – Generate traffic to/from IP addresses and detect attempts to resolve their names – $ ping 173.194.37.104 16:27:38.657863 IP 172.16.48.130 > 173.194.37.104: ICMP echo request, id 21009, seq 1, length 64 16:27:38.659014 IP 172.16.48.139.57105 > 172.16.48.2.53: 20764+ PTR? 104.37.194.173.in-addr.arpa. (45)

  • Latency

– Since NIC is in promiscuous mode, it will need to process every packet – Analyze response time of host A (e.g., sending ping packets) – Generate lots of traffic to other hosts and analyze response time of host A

Eike Ritter Network Security - Lecture 2 38

NEXT ON

Eike Ritter Network Security - Lecture 2 39

Take away points

  • Basics of gpg
  • Basics of Ethernet, IP, ARP and how they fit

together

  • Sniffing on a network
  • Tools

– tcpdump – wireshark

Eike Ritter Network Security - Lecture 2 40

Next time

  • Continue analysis of TCP/IP
  • More attacks!

Eike Ritter Network Security - Lecture 2 41