SlideShare a Scribd company logo
OSPF WG Security Extensions for OSPFv2 when using Manual Keying  Manav Bhatia, Alcatel-Lucent Sam Hartman, Huawei Dacheng Zhang, Huawei IETF 80, Prague
Current State of Security OPSEC has published RFC 6039 that does an analysis on the vulnerabilities that exist in OSPFv2 despite it using the security and authentication mechanisms described in RFC 2328 and 5709 draft-ietf-karp-ospf-analysis identifies certain gaps that remain between the current security state and those identified in draft-ietf-karp-threats-reqs
Gaps Identified Replay Protection OSPFv2 uses Cryptographic Sequence numbers to prevent intra-session replay attacks Does not help in protecting against inter-session replay attacks IP Header Unprotected OSPFv2 uses the source IP to identify the neighbor in some cases IPv4 Header is not protected by the authentication digest
So what does this draft do? It fixes the issues identified during the OSPFv2 gap analysis Proposes two mechanisms to prevent inter-session replay attacks Extends the Authentication Sequence Number space Introduces the concept of Session ID and Nonce Fixes the IP header issue by factoring in the source IP address when computing the crypto digest - thus attacks which change this, will not be successful now
Inter-Session Replay Attack OSPF Hdr: Sequence Num = 10001 OSPF HELLO: Neighbor = B OSPF Hdr: Sequence Num = 50001 OSPF HELLO: Neighbor = A Router B  goes down!  OSPF Hdr: Sequence Num = 1 OSPF HELLO: Neighbor = 0 OSPF Hdr: Sequence Num = 10011 OSPF HELLO: Neighbor = B OSPF Hdr: Sequence Num = 10012 OSPF HELLO: Neighbor = 0 Router B Router A OSPF Hdr: Sequence Num = 10010 OSPF HELLO: Neighbor = 0 OSPF Hdr: Sequence Num = 2 OSPF HELLO: Neighbor = A OSPF Hdr: Sequence Num = 50000 OSPF HELLO: Neighbor = 0 Router A accepts the packet and brings down the adjacency with B! OSPF Hdr: Sequence Num = 50000 OSPF HELLO: Neighbor = 0
So how do we fix this? (1/2) OSPF authentication mechanism is stateless and oblivious to the session information Router A for example doesn’t remember that it once had an OSPF session with B and the last cryptographic sequence number seen from B was 50001 Highly un-scalable and also requires B to keeping updating the non-volatile memory each time it increments a sequence number so that it can continue from there.
So how do we fix this? (2/2) Change the crypto sequence number generation algorithm at the sender side so that it always generates an increasing number (for both planned and unplanned restarts) Implement some algorithm that guarantees freshness of packets We describe both in the draft
Changing the crypto sequence number algorithm Currently the sequence number is a 32-bit monotonically increasing entity Expand this to 64 bits where: most significant 32-bits increment each time the router cold boots. last 32-bits remain unchanged The final sequence number is a concatenation of the above two numbers
So does this help?  OSPF Hdr: Sequence Num = 0:10001 OSPF HELLO: Neighbor = B OSPF Hdr: Sequence Num = 10:50001 OSPF HELLO: Neighbor = A Router B  goes down!  OSPF Hdr: Sequence Num = 11:1 OSPF HELLO: Neighbor = 0 OSPF Hdr: Sequence Num = 0:10011 OSPF HELLO: Neighbor = B Router B Router A OSPF Hdr: Sequence Num = 0:10010 OSPF HELLO: Neighbor = 0 OSPF Hdr: Sequence Num = 11:2 OSPF HELLO: Neighbor = A OSPF Hdr: Sequence Num = 10:50000 OSPF HELLO: Neighbor = 0 Router A rejects this as sequence number < 11:2 OSPF Hdr: Sequence Num = 10:50000 OSPF HELLO: Neighbor = 0
So where are we? We believe it solves the inter-session replay attacks with OSPF This solution does NOT guarantee packet freshness, i.e., you still don’t know if you are speaking to a live router or if somebody is playing out the entire conversation If you want to fix this then the draft spells out the challenge/response mechanism using the Session IDs and Nonces
Benefits Easy to implement - very minimal changes to the OSPF running code Consider this as part of the KARP infrastructure that even other routing protocols can use Minimal changes required in the OSPF packet encoding
Next Steps We need people who understand OSPF to look at this mechanism and see if they find some holes in it. If they think this is fool-proof then we can remove the Session ID and the Nonce stuff that currently exists in the draft Accept this as a WG document since there has been a lot of discussion on the mailing list and people have taken it positively there!
Feedback!
Protecting the source IP address A B Source IP -  X' OSPFv2 Data Authentication Data 1. OSPF Packet replayed and source IP changed from X to X' Authentication has been computed assuming source IP as X 2. B computes the digest assuming the source IP as  X' 3. B rejects the packet as the computed digest does NOT match the digest carried in the packet!

More Related Content

PDF
Arp Cache Poisoning
TXT
Copy of a simple tcp spoofing attack
PDF
Offline bruteforce attack on wi fi protected setup
PDF
20141106 asfws unicode_hacks
ODP
Code Red Security
PPT
Chapter10ccna
PPT
Chapter14ccna
Arp Cache Poisoning
Copy of a simple tcp spoofing attack
Offline bruteforce attack on wi fi protected setup
20141106 asfws unicode_hacks
Code Red Security
Chapter10ccna
Chapter14ccna

What's hot (20)

PPTX
Packet sniffing in switched LANs
PPT
Chapter5ccna
PPT
Chapter7ccna
PPTX
DMVPN configuration - Configuring Cisco dynamic Multipoint VPN - HUB, SPOKES,...
PPT
Chapter11ccna
PDF
IPsec Basics: AH and ESP Explained
PDF
NAT- Network Address Translation
PPT
Nmap(network mapping)
PPT
Cisco Router Security
PPT
Chapter4ccna
PDF
2. Stream Ciphers
PPT
05 06 ike
PDF
IPTables Primer - Part 2
PPT
IP tables
PPT
NAT and PAT
PDF
Network Mapper (NMAP)
PPT
Chapter13ccna
DOCX
Packet Tracer: SNMP, Netflow, Sys-log
PPTX
Security Onion Advance
PPTX
Socket programming in c
Packet sniffing in switched LANs
Chapter5ccna
Chapter7ccna
DMVPN configuration - Configuring Cisco dynamic Multipoint VPN - HUB, SPOKES,...
Chapter11ccna
IPsec Basics: AH and ESP Explained
NAT- Network Address Translation
Nmap(network mapping)
Cisco Router Security
Chapter4ccna
2. Stream Ciphers
05 06 ike
IPTables Primer - Part 2
IP tables
NAT and PAT
Network Mapper (NMAP)
Chapter13ccna
Packet Tracer: SNMP, Netflow, Sys-log
Security Onion Advance
Socket programming in c
Ad

Similar to IETF 80: Security Extensions for OSPF (20)

PPTX
Лекц 15
PPT
Learn OSPF(Open Short Path First) routing to day
PPT
Ospf
PDF
How to configure the basic OSPF?
PPT
I pv6 for cmu
PPTX
OSPF Authentication
PPTX
OSPF by Abdullah Mukhtar
PDF
Ospfv3 primer
PPT
Chapter7ccna
PPT
BSCI30S03 OSPF open shortest path first .ppt
PPT
Icnd210 s04l01
DOCX
How to troubleshoot and verifying ospf configuration
PDF
Defeating OSPF MD5 authentication
PDF
Ospfv3 News version 2
PDF
ospf ahmed tawfeek CCNA dump for Exam12
PPT
Chapter7ccna
PDF
ospf-filtering-issue - Partial Topology.pdf
PPTX
Allwyn ospf ppt
PDF
Cisco ospf
PDF
Cisco ospf
Лекц 15
Learn OSPF(Open Short Path First) routing to day
Ospf
How to configure the basic OSPF?
I pv6 for cmu
OSPF Authentication
OSPF by Abdullah Mukhtar
Ospfv3 primer
Chapter7ccna
BSCI30S03 OSPF open shortest path first .ppt
Icnd210 s04l01
How to troubleshoot and verifying ospf configuration
Defeating OSPF MD5 authentication
Ospfv3 News version 2
ospf ahmed tawfeek CCNA dump for Exam12
Chapter7ccna
ospf-filtering-issue - Partial Topology.pdf
Allwyn ospf ppt
Cisco ospf
Cisco ospf
Ad

IETF 80: Security Extensions for OSPF

  • 1. OSPF WG Security Extensions for OSPFv2 when using Manual Keying Manav Bhatia, Alcatel-Lucent Sam Hartman, Huawei Dacheng Zhang, Huawei IETF 80, Prague
  • 2. Current State of Security OPSEC has published RFC 6039 that does an analysis on the vulnerabilities that exist in OSPFv2 despite it using the security and authentication mechanisms described in RFC 2328 and 5709 draft-ietf-karp-ospf-analysis identifies certain gaps that remain between the current security state and those identified in draft-ietf-karp-threats-reqs
  • 3. Gaps Identified Replay Protection OSPFv2 uses Cryptographic Sequence numbers to prevent intra-session replay attacks Does not help in protecting against inter-session replay attacks IP Header Unprotected OSPFv2 uses the source IP to identify the neighbor in some cases IPv4 Header is not protected by the authentication digest
  • 4. So what does this draft do? It fixes the issues identified during the OSPFv2 gap analysis Proposes two mechanisms to prevent inter-session replay attacks Extends the Authentication Sequence Number space Introduces the concept of Session ID and Nonce Fixes the IP header issue by factoring in the source IP address when computing the crypto digest - thus attacks which change this, will not be successful now
  • 5. Inter-Session Replay Attack OSPF Hdr: Sequence Num = 10001 OSPF HELLO: Neighbor = B OSPF Hdr: Sequence Num = 50001 OSPF HELLO: Neighbor = A Router B goes down! OSPF Hdr: Sequence Num = 1 OSPF HELLO: Neighbor = 0 OSPF Hdr: Sequence Num = 10011 OSPF HELLO: Neighbor = B OSPF Hdr: Sequence Num = 10012 OSPF HELLO: Neighbor = 0 Router B Router A OSPF Hdr: Sequence Num = 10010 OSPF HELLO: Neighbor = 0 OSPF Hdr: Sequence Num = 2 OSPF HELLO: Neighbor = A OSPF Hdr: Sequence Num = 50000 OSPF HELLO: Neighbor = 0 Router A accepts the packet and brings down the adjacency with B! OSPF Hdr: Sequence Num = 50000 OSPF HELLO: Neighbor = 0
  • 6. So how do we fix this? (1/2) OSPF authentication mechanism is stateless and oblivious to the session information Router A for example doesn’t remember that it once had an OSPF session with B and the last cryptographic sequence number seen from B was 50001 Highly un-scalable and also requires B to keeping updating the non-volatile memory each time it increments a sequence number so that it can continue from there.
  • 7. So how do we fix this? (2/2) Change the crypto sequence number generation algorithm at the sender side so that it always generates an increasing number (for both planned and unplanned restarts) Implement some algorithm that guarantees freshness of packets We describe both in the draft
  • 8. Changing the crypto sequence number algorithm Currently the sequence number is a 32-bit monotonically increasing entity Expand this to 64 bits where: most significant 32-bits increment each time the router cold boots. last 32-bits remain unchanged The final sequence number is a concatenation of the above two numbers
  • 9. So does this help? OSPF Hdr: Sequence Num = 0:10001 OSPF HELLO: Neighbor = B OSPF Hdr: Sequence Num = 10:50001 OSPF HELLO: Neighbor = A Router B goes down! OSPF Hdr: Sequence Num = 11:1 OSPF HELLO: Neighbor = 0 OSPF Hdr: Sequence Num = 0:10011 OSPF HELLO: Neighbor = B Router B Router A OSPF Hdr: Sequence Num = 0:10010 OSPF HELLO: Neighbor = 0 OSPF Hdr: Sequence Num = 11:2 OSPF HELLO: Neighbor = A OSPF Hdr: Sequence Num = 10:50000 OSPF HELLO: Neighbor = 0 Router A rejects this as sequence number < 11:2 OSPF Hdr: Sequence Num = 10:50000 OSPF HELLO: Neighbor = 0
  • 10. So where are we? We believe it solves the inter-session replay attacks with OSPF This solution does NOT guarantee packet freshness, i.e., you still don’t know if you are speaking to a live router or if somebody is playing out the entire conversation If you want to fix this then the draft spells out the challenge/response mechanism using the Session IDs and Nonces
  • 11. Benefits Easy to implement - very minimal changes to the OSPF running code Consider this as part of the KARP infrastructure that even other routing protocols can use Minimal changes required in the OSPF packet encoding
  • 12. Next Steps We need people who understand OSPF to look at this mechanism and see if they find some holes in it. If they think this is fool-proof then we can remove the Session ID and the Nonce stuff that currently exists in the draft Accept this as a WG document since there has been a lot of discussion on the mailing list and people have taken it positively there!
  • 14. Protecting the source IP address A B Source IP - X' OSPFv2 Data Authentication Data 1. OSPF Packet replayed and source IP changed from X to X' Authentication has been computed assuming source IP as X 2. B computes the digest assuming the source IP as X' 3. B rejects the packet as the computed digest does NOT match the digest carried in the packet!