Private Personal Identfiers: Adventures in privacy
I had the question recently asked of me:
When using an STS (Security Token Server), the PPID (PrivatePersonalIdentifier) is under the control of the STS. In other words, an STS has to take note of the RP (Relying Party) it is identifying for and generate an Information Card (with the appropriate PPID) so that this card can be exhanged and installed off-line by the subject. Is this correct ?
The answer of course is... "Look, shiny thing!"
Seriously though... let's clarify a few things:
Managed Cards (Information Cards provided by an Identity Provider) do not store the values for claims inside the card. (don't beleive me? look at the sample here). So first, no matter how many Relying Parties a card is used at, the Identity Provider only needs to issue one card to a particular user.
Next, it's completely optional for the Identity Provider to issue identities with the PPID claim (although, it's a good idea). And even when they do issue identities with a PPID claim, they can implement it however they wish--it doesn't have to be a unique value for each RP for each User (heck it doesn't even have to be a base-64 encoded whatever... you could use any value that you assert is unique in your STS). They can maintain a singular identity, and the individual RPs get the same PPID for the same person.
But even then, let's assume that the IP wants to be more proactive in guarding privacy, and they do want to issue a new PPID for each User at each RP site. Then, they either need to calculate this in a replicable fashion, and do that each time the User uses the card, or generate it randomly, and store that information.
Now, it's important to remember to use the PPID claim (or whatever claim the IP has decided will be unique to that user) in conjunction with the Issuer's public key-- this gives you the assurance that the PPID is unique in the context of that Issuer.
Garrett Serack | Program Manager |Federated Identity Team | Microsoft Corporationblog:http://blogs.msdn.com/garretts