Experiences in The Formal Analysis of The Gdoi Protocol
Experiences in The Formal Analysis of The Gdoi Protocol
Experiences in The Formal Analysis of The Gdoi Protocol
SA1 SA1
Member Member
SA2 SA2
sender receiver
SA3 SA3
GDOI
Protocol facilitating distribution of group keys by
Group Key Distribution Center (GCKS)
Embodies SMuG framework and architecture
Based on ISAKMP and IKE
Standards developed for key exchange
Protocol uses
IKE to distribute Category-1 SAs (pairwise keys)
Groupkey Pull Protocol initiated by member to
distribute Category-2 SAs (KEKs)
May also distribute Category-3 Sas (TEKs)
Groupkey push Datagram to distribute Category-2
and Category-3 SAs
GDOI PROTOCOLS
Groupkey Pull Protocol
Initiator (Member) Responder (GCKS)
------------------ ----------------
HDR*, HASH(1), Ni, ID -->
<-- HDR*, HASH(2), Nr, SA
HDR*, HASH(3) [, KE_I] -->
[,CERT] [,POP_I]
<-- HDR*, HASH(4), [KE_R,] SEQ,
KD [,CERT] [,POP_R]
Hashes are computed as follows:
K1 K2 K3 K4 K5 K6 K7 K8
U1 U2 U3 U4 U5 U6 U7 U8
Gets push
Requests key
message
Responds to Sends push
key request message
HOW SPECIFICATION LIMITED
NPA cant currently handle unbounded data
structures such as key hierarchies
Can specify them, but they will send NPA into
infinite loop
Currently investigating appropriate abstractions
So --
For the moment did not try to specify key
hierarchies, assumed each KEK is a single key
Assumed that in Phase 2 Exchange, one SAK sent
Assumed three possibilities for Groupkey Push
Datagram
One SAK or one SAT
Also, did not include spec of IKE Phase 1
Challenges In Developing
Requirements for Group Protocols
In pairwise protocols, have notion of a session
Secrecy means keys not learned by parties not
involved in the session
Freshness means key is unique to a session
In group protocol session much more open ended
Many keys may be distributed in one session
Principals may join and leave the group during a
session
How should their access to keys be limited?
How do different secrecy requirements interact with each
other?
A MAZE OF REQUIREMENTS
ACCESS CONTROL
AUTHENTICATION
SECRECY FRESHNESS
gcks_makecurrent(GCKS,(),(G,K),N?)))
or
HDR*,HASH(4),SEQ,KD,
G
R SIGGCKS(HDR,SEQ,SA,Nr)
POP_R
O
U
P
K HDR*,SEQ,SA,Nr,
E SIGGCKS(HDR,SEQ,SA,NR)
Y SIG
P
U
S
H
FIX TO PROTOCOL
First, did quick analysis to see if attack was really
possible
What kind of assumptions about lengths of data
did it require?
Whenever signature taken, prepend to signed data a
tag saying what kind of signature it is
GCKS pop
Member pop
Groupkey push
RESULTS
Identified potential GDOI problems early on, resulting in a better
protocol
Formal analysis credited with speeding up acceptance of GDOI
and of the new MSeC (multicast security) working group formed
out of SMuG
Starting to see interest from other parts of IETF in performing or
applying formal analyses
Some avenues for further research
Fault tree representation of requirements
Algorithms for detecting type confusion/oracle attacks
A CODA
Most Important Need
NRL Protocol Analyzer, and other formal crypto
protocol analysis tools, dont support incremental
analysis well
Even minor changes may require complete
reverification
As a result did complete formal analysis of system
at only one stage
Whats needed is a verification method that
Is consistent with methods used by protocol
designers
Supports incremental verification
LOGIC FORCRYPTO
PROTOCOL ANALYSIS
Work with Dusko Pavlovic, John Mitchell, Anupam Datta, Ante Derek
Basic idea:
Axioms for deriving conclusions about protocol traces from
messages received by principals
E.g: If A sends a challenge, to B, and gets an authenticated response
from B, then A knows that B responded after As challenge
Logic provides means for composing proofs
Applying it to GDOI with Dusko Pavlovic
Evaluating logic as we apply it
Using feedback from GDOI analysis to extend and improve it
Also doing this for Kerberos
GDOI AND POP AGAIN
Recall that certificates *may* be used to disbribute public key
certificates in GDOI
Proof of possession uses challenge-response to prove that you
actually know the private key
Same nonces used for PoP as for challenge-response in
core GDOI
Language in current version of GDOI seems to indicates that
certificates can be used to distribute new identities as well
There are two alternative means for authorizing the GROUPKEY-PULL message. First, the Phase 1
identity can be used to authorize the Phase 2 (GROUPKEY-PULL) request for a group key.
Second, a new identity can be passed in the GROUPKEY-PULL request. The new identity could
be specific to the group and use a certificate that is signed by the group owner to identify the
holder as an authorized group member. The Proof-of-Possession payload validates that the holder
possesses the secret key associated with the Phase 2 identity.
What can you prove from PoP in that case?
ATTEMPTED TO DERIVE
PROOF
Able to link request for key to Phase 1 identities
Showed that request for key came from possessor
of phase 1 identity
Able to link POP to identity in certificate
Showed that POP showed that principal named in
certificate is in possession of key
What we couldnt show:
That there is any link between phase 1 identity and
principal in certificate!
Because there isnt any!
AN ATTACK
Suppose that I is a GCKS that wants join a group managed by another GCKS, B.
Suppose that I doesnt have the proper credentials to join Bs group.
Then I can trick a member A who does into supplying them, as follows.
1. A --> I : HDR*, HASH(1), Ni, ID A requests to join I's group, sending a nonce Ni
1.' I_member --> B : HDR*, HASH(1)', Ni, ID I requests to join B's group, forwarding A's nonce Ni
2.' B --> I_member : HDR*, HASH(2), Nr', SA B responds to I with its nonce Nr'
2. I --> A : HDR*, HASH(2)', Nr', SA I responds to member A, but using B's nonce Nr'
3.' I_member --> B: HDR*, HASH(3), CERT(for A's ID in group), POP = S_A(hash(Ni,Nr))
I as a member responds to B, using A's CERT and POP