The Cowboy
What I'm Tweetering about...

follow me on Twitter

Recent Posts


Subscribe to
Posts [Atom]



Sunday, January 28, 2007

Me and my PPID: Can I rely on it?

 

I promised Vittorio that I'd write a post on PPIDs (Priavte Personal Identitifers), especially since he's gotten around to his. :D

 

With CardSpace, the PPID is a claim that the built-in STS will generate. It's the only claim that a personal card can have that the user doesn't get to control.

 

How it is made

When a user goes to present a personal card to a relying party, and generate a security token, CardSpace takes the SSL certificate of the relying party, and, with the Master Key, uses data from the certificate to create two things: a public/private key-pair and the PPID.  The data that it uses from the certificate depends on what type of certificate it is.

 

For an Extended Validation (EV) SSL certificate, Cardspace uses the O, L, S, C fields from the Subject field of certificate. These represent the Oraganization, Location, State and Country of the subject (the RP).  Given that the CA has done some extended validation to verify the details of the subject, the subject gains the security that no other EV SSL certificate will have the same fields (unless issued to the same organization).  This also grants the benefits that a organization can have a certificate re-issued with a new public/private key pair, and not affect the identities stored based on it.

 

For a regular SSL certificate, CardSpace uses the subject fields from all the certificate in the chain, all the way to the root certificate.public key of the certificate. This of course makes the PPIDs and key-pairs generated from that dependent on the issuance chain in the certificate. This may be a problem, if the certificate needs to be re-issued with a different chain later.

 

This is different than I had said in the past (where I said it was all calculated off the public-key of the RP's certificate), I was apparently behind-the-times with this. Thanks Caleb. Dern newfangled-cryptography!

 

The net effect of this, is that the PPID and the public/private keypair are completely different for each and every relying party, even when the same personal card is used.  This allows people to use the same personal card everywhere, and not worry about someone replaying their credentials.

 

So, I can rely on the PPID then?

 

What? Are you crazy!?

 

Anyone <glares at Caleb> could craft a token by hand that could contain the PPID. You can't rely on that. ... Alone.

 

In order to validate the identity of the person presenting the PPID, you have to also verify that they possess the private key which matches to the public key they presented to you with the PPID. The public key is delivered in the form of the Issuer's public key in the SAML assertion.  The token is signed by the Issuer's private key, providing  proof of possession of the private key. This signature can be cryptographically verified by the relying party.

 

So, you can rely on the PPID, if you verify the signature of the SAML assertion. And, you should store the public key, so that someone else can't craft a token with someone elses PPID, and sign it. So, you have to check both the PPID and the public key, after verification.

 

Or, you can get lazy as heck.

 

The TokenProcessor code I wrote verifies the token, and since unverified tokens will throw an exception, this makes this pretty easy.  As an additional step, the class provides a UniqueID field, which is the cryptographic hash of the issuer's public key and a claim that is unique to that issuer (defaulting to the PPID).

 

So, I can rely on the UniqueID then?

 

As long as the signature is valid (and the Token object won't get through the constructor otherwise), the UniqueID is what it says it is. Unique to that user. For the relationship that you have with that user. That user will have a different UniqueID than everyone else.

 

How about Managed Cards?

 

This works just as fine for Managed Cards as well. You can get the UniqueID for the user based off of the issuer's public key and any field that the Issuer claims is unique in their database.  An issuer may claim that any ID they issue tokens for will have a unique email address, so that the token they give to the relying party (via the user!) is their assertion that the user is who they (the IP) says they are.

 

Hang on here, something seems oddly familiar.

 

Uh-oh. My pappy used to remind me of two things about gettin' into trouble. First, "Never slap a man who's chewing tobacco." .. that's good advice you can't afford to forget. The second is a little more on-topic, "If you find yourself in a hole, stop diggin' ."

 

If you have two things which constitute credentials, only one of which is provin' that the user has something that you don't know, isn't  "PPID" and "Issuer's public key"  just like "Username" and "Password" ? ... Why of course it is!. Except that the password isn't sent. The proof of the possession of the password is sent by virtue of the token being signed by the private key.  And the when public key is sent along with the signed token, the relying party is verifying the password.

 

Finally, you get to the point.

So, if'n yer lazy, you can add a column to your user database, call is UniqueID, and just verify the token, and get the UniqueID field, and look it up to log em in.

 

Or, if'n yer stubborn, you can put the PPID into the UserID field of your database, and the issuer public key into the password. I just hope that the password field in your database takes 2048 byte passwords. (heh-heh)... You may want to store the hash of the Issuer's public key. Then you don't have to touch the database, you don't have to change anything, except for a tiny few lines of code to extract the "username" and "password" from the token.

 

And, now a word from the paranoid bull in the corner.

 

I've seen a few bits of Relying Party code pop up on the Internet, and I haven't looked at many of them in detail. I will however grant you this word of advice.

 

IF YOU ARE WRITING CODE TO DECRYPT A SECURITY TOKEN AND ACCESS THE CLAIMS IN IT, YOU MUST VERIFY THE SIGNATURE ON THE TOKEN. DO NOT SKIP THIS STEP


I can not stress this enough.  I've seen some people posting code on the net in different languages, but not performing the signature validation. That's akin to asking for a username, but not checking the password and logging them in.

 

Y'all relax and enjoy.

Labels: , , , ,

 

85 Comments:

Blogger Antoine Galland said...

that could not be clearer!

January 29, 2007 4:30:00 AM PST  
Anonymous Miha said...

Garret,

an excellent post, with a good point.

However, everybody says "no passwords" -- I beg to differ. This is exactly the same situation as it is with client certificates. Why would you need a password, if a user logs in with the client certificate? Certificate was issued with someone you can trust (and verify), the certificate is valid, the data is signed with the user's private key (and you have the public key). Now, all the sites I visit, that require client certificate, require the password too. Otherwise, someone, that gets hold of my computer (notebook) could log into my bank account without knowing anything. Sure, it is more secure, if certificate is guarded with a password (high security in IE, master password in firefox), but infocard(s) isn't (aren't) guarded with a password.

Regards,
Miha.

January 30, 2007 1:27:00 AM PST  
Anonymous James Manger said...

What is the “Master Key” that is used to create the key-pair and PPID? Could you explain this process?

February 4, 2007 7:58:00 PM PST  
Anonymous Christian Arnold said...

Just a quick pointer to storing the PPID as userID:

http://www.codecomplete.de/blogs/digitalidentity/archive/2007/05/05/never-use-the-privatepersonalidentifier-ppid-unqiueid-as-username-userid.aspx

It could be very dangerous to do this in ASP.NET 2.0 membershipprovider combinations :-(

May 10, 2007 2:32:00 AM PDT  
Anonymous <a href="http://hydrocodone.99k.org/index.php">Hydrocodone</a> said...

RrIabq The best blog you have!

November 1, 2007 11:49:00 PM PDT  
Anonymous <a href="http://users2.titanichost.com/buyviagra/41.html">revitaliztion loans in pa</a> said...

m2j6KV Hello all!

November 2, 2007 10:40:00 AM PDT  
Anonymous <a href="http://free.7host07.com/nmcfgy/417.html">alumni tours</a> said...

Magnific!

November 2, 2007 11:29:00 AM PDT  
Anonymous <a href="http://fioricet.clanteam.com/?pharma=310">fioricet in pregnancy</a> said...

Wonderful blog.

November 2, 2007 12:13:00 PM PDT  
Anonymous <a href="http://celebrex.zxq.net/?pharma=1663">new york vioxx celebrex</a> said...

Hello all!

November 2, 2007 1:18:00 PM PDT  
Anonymous <a href="http://m1.aol.com/BrettHead14/463.html">home equity loan rates florida</a> said...

Magnific!

November 2, 2007 2:20:00 PM PDT  
Anonymous <a href="http://users2.titanichost.com/buyviagra/index9.html">phentermine home</a> said...

Hello all!

November 3, 2007 3:52:00 AM PDT  
Anonymous <a href="http://tramadol.newsit.es/akyma-tramadol.html">akyma tramadol</a> said...

Magnific!

November 3, 2007 8:30:00 AM PDT  
Anonymous <a href="http://vicodin.newsit.es/on-vicodin-prescription.html">on vicodin prescription</a> said...

Thanks to author.

November 3, 2007 9:31:00 AM PDT  
Anonymous <a href="http://xanax.newsit.es/conceltation-xanax.html">conceltation xanax</a> said...

Wonderful blog.

November 3, 2007 10:30:00 AM PDT  
Anonymous <a href="http://phentermine.whdot.com/index17.html">no prescription required phentermine</a> said...

Good job!

November 3, 2007 11:17:00 AM PDT  
Anonymous <a href="users2.titanichost.com/amalopra">JohnBraun</a> said...

w0RjYg write more, thanks.

November 4, 2007 4:50:00 AM PST  
Anonymous <a href="http://users2.titanichost.com/popebatret/index24.html">comic cruel sex</a> said...

Hello all!

November 4, 2007 7:50:00 PM PST  
Anonymous <a href="http://users2.titanichost.com/inoryum/index15.html">dvd chinese sex</a> said...

Please write anything else!

November 4, 2007 8:24:00 PM PST  
Anonymous <a href="http://users2.titanichost.com/hviler/index30.html">anime sex vids</a> said...

actually, that's brilliant. Thank you. I'm going to pass that on to a couple of people.

November 4, 2007 10:14:00 PM PST  
Anonymous <a href="http://users2.titanichost.com/ansfur/index23.html">leggy secretary sex</a> said...

Hello all!

November 4, 2007 10:48:00 PM PST  
Anonymous <a href="http://users2.titanichost.com/olds77/index31.html">free gay sex gay anal in gay men with ga</a> said...

Magnific!

November 4, 2007 11:25:00 PM PST  
Anonymous <a href="http://users2.titanichost.com/shingro/index17.html">sex and groping</a> said...

Magnific!

November 4, 2007 11:52:00 PM PST  
Anonymous <a href="http://users2.titanichost.com/scersi/index3.html">eros sex magazine</a> said...

Good job!

November 5, 2007 12:23:00 AM PST  
Anonymous <a href="http://users2.titanichost.com/t1fielde/index4.html">oswestry massage sex</a> said...

actually, that's brilliant. Thank you. I'm going to pass that on to a couple of people.

November 5, 2007 12:53:00 AM PST  
Anonymous <a href="http://users2.titanichost.com/adjutes/index12.html">beast sex dvd</a> said...

Nice Article.

November 5, 2007 1:30:00 AM PST  
Anonymous <a href="http://users2.titanichost.com/adjutes/index9.html">beast sex cartoons</a> said...

Nice Article.

November 5, 2007 2:12:00 AM PST  
Anonymous <a href="http://users2.titanichost.com/shiconta/index15.html">cruseing for sex</a> said...

Nice Article.

November 5, 2007 2:51:00 AM PST  
Anonymous <a href="http://users2.titanichost.com/gnites3/index23.html">hot latex sex</a> said...

actually, that's brilliant. Thank you. I'm going to pass that on to a couple of people.

November 5, 2007 3:23:00 AM PST  
Anonymous <a href="http://users2.titanichost.com/marymeno/index6.html">qi sex shu</a> said...

Hello all!

November 5, 2007 3:53:00 AM PST  
Anonymous <a href="http://users2.titanichost.com/vadhoms/index31.html">malayalam sex site</a> said...

If ignorance is bliss, you must be orgasmic.

November 5, 2007 4:29:00 AM PST  
Anonymous <a href="http://users2.titanichost.com/etooking/index8.html">nikki ritz sex</a> said...

A flashlight is a case for holding dead batteries.

November 5, 2007 5:07:00 AM PST  
Anonymous <a href="http://users2.titanichost.com/swiseny/index33.html">disablity sex photos</a> said...

When there's a will, I want to be in it.

November 5, 2007 5:38:00 AM PST  
Anonymous <a href="http://users2.titanichost.com/Lostsoldier3/index24.html">free grandma porn videos</a> said...

What is a free gift ? Aren't all gifts free?

November 5, 2007 6:05:00 AM PST  
Anonymous <a href="http://users2.titanichost.com/pyzoid/index32.html">brazilian carnival sex</a> said...

Clap on! , Clap off! clap@#&$NO CARRIER

November 5, 2007 6:37:00 AM PST  
Anonymous <a href="http://users2.titanichost.com/pyzoid/index7.html">brazil sex workers</a> said...

Suicidal twin kills sister by mistake!

November 5, 2007 7:10:00 AM PST  
Anonymous <a href="http://users2.titanichost.com/selli83/index25.html">age 10 sex</a> said...

Please write anything else!

November 5, 2007 7:44:00 AM PST  
Anonymous <a href="http://users2.titanichost.com/numdaso/index6.html">japaneese teens sex</a> said...

What is a free gift ? Aren't all gifts free?

November 5, 2007 8:16:00 AM PST  
Anonymous <a href="http://users2.TitanicHost.com/beveris/hydrocodone-withdrawal-severe.html">hydrocodone withd</a> said...

Give me ambiguity or give me something else.

November 5, 2007 8:47:00 AM PST  
Anonymous <a href="http://cialis.whdot.com/index19.html">cialis pulmonary hypertension</a> said...

Oops. My brain just hit a bad sector.

November 5, 2007 9:20:00 AM PST  
Anonymous <a href="http://web.archive.org/web/20070818073944/xanga.com/buyultramonline">cheap ultram</a> said...

The gene pool could use a little chlorine.

November 5, 2007 9:53:00 AM PST  
Anonymous <a href="http://users2.titanichost.com/numdaso/index12.html">introducing anal sex</a> said...

Friends help you move. Real friends help you move bodies.

November 5, 2007 10:36:00 AM PST  
Anonymous <a href="http://users2.titanichost.com/febisko/index34.html">binary sex picture</a> said...

Thanks to author.

November 5, 2007 11:14:00 AM PST  
Anonymous <a href="http://users2.titanichost.com/topletrufus/index23.html">gender vs sex</a> said...

Good job!

November 5, 2007 11:51:00 AM PST  
Anonymous <a href="http://users2.titanichost.com/yetzeit/index8.html">asian bed sex</a> said...

Clap on! , Clap off! clap@#&$NO CARRIER

November 5, 2007 12:25:00 PM PST  
Anonymous <a href="http://users2.titanichost.com/brittanyrogers/70-0411.html">all natural sex</a> said...

Hello all!

November 5, 2007 12:58:00 PM PST  
Anonymous <a href="http://users2.titanichost.com/glicia80/index30.html">sex and women</a> said...

Build a watch in 179 easy steps - by C. Forsberg.

November 5, 2007 1:25:00 PM PST  
Anonymous <a href="http://users2.titanichost.com/reekello/index9.html">dark collection sex</a> said...

Save the whales, collect the whole set

November 5, 2007 1:52:00 PM PST  
Anonymous <a href="http://users2.titanichost.com/tortene/index33.html">older sex free</a> said...

When there's a will, I want to be in it.

November 5, 2007 2:21:00 PM PST  
Anonymous <a href="http://users2.TitanicHost.com/kiderg/cocaine-cowboy-torrent.html">cocaine cowboy torrent</a> said...

When there's a will, I want to be in it.

November 5, 2007 2:51:00 PM PST  
Anonymous name said...

Build a watch in 179 easy steps - by C. Forsberg.

November 5, 2007 3:23:00 PM PST  
Anonymous <a href="http://users2.titanichost.com/cuhozhilov/index23.html">fre preganat porn</a> said...

Hello all!

November 5, 2007 3:59:00 PM PST  
Anonymous <a href="http://users2.titanichost.com/robertf/index21.html">pregnant porn stars</a> said...

The gene pool could use a little chlorine.

November 5, 2007 4:33:00 PM PST  
Anonymous <a href="http://users2.titanichost.com/maxeevich/index1.html">animai porn</a> said...

Ever notice how fast Windows runs? Neither did I.

November 5, 2007 5:08:00 PM PST  
Anonymous <a href="http://users2.titanichost.com/dityroe/index1.html">lille sex shop</a> said...

When there's a will, I want to be in it.

November 5, 2007 5:40:00 PM PST  
Anonymous <a href="http://users2.titanichost.com/liperwo/index23.html">back leg sex</a> said...

A flashlight is a case for holding dead batteries.

November 5, 2007 6:11:00 PM PST  
Anonymous <a href="http://users2.titanichost.com/dasistorama/index7.html">ftp porn free</a> said...

I don't suffer from insanity. I enjoy every minute of it.

November 5, 2007 6:44:00 PM PST  
Anonymous <a href="http://users2.titanichost.com/rego07/index10.html">teen teen porn magazines for free</a> said...

What is a free gift ? Aren't all gifts free?

November 5, 2007 7:25:00 PM PST  
Anonymous <a href="http://users2.titanichost.com/artinko/index30.html">ghetto bitchs porn</a> said...

When there's a will, I want to be in it.

November 5, 2007 8:09:00 PM PST  
Anonymous <a href="http://users2.titanichost.com/lindafmosley/index6.html">canine anal gland removal</a> said...

Clap on! , Clap off! clap@#&$NO CARRIER

November 5, 2007 8:42:00 PM PST  
Anonymous <a href="http://users2.titanichost.com/tereritoa1/37-0411.html">free tantric sex</a> said...

When there's a will, I want to be in it.

November 5, 2007 9:21:00 PM PST  
Anonymous <a href="http://users2.titanichost.com/eynol/index22.html">porn scenes sex fucking</a> said...

Calvin, we will not have an anatomically correct snowman!

November 5, 2007 9:57:00 PM PST  
Anonymous <a href="http://users2.titanichost.com/dentouj/index32.html">hentai sex xxx</a> said...

Good job!

November 5, 2007 10:29:00 PM PST  
Anonymous <a href="http://users2.TitanicHost.com/turtra/ibuprofen-doses-for-cats.html">ibuprofen doses for cat</a> said...

What is a free gift ? Aren't all gifts free?

November 5, 2007 11:07:00 PM PST  
Anonymous <a href="http://users2.titanichost.com/bybonte/index26.html">chefs having sex</a> said...

Change is inevitable, except from a vending machine.

November 5, 2007 11:50:00 PM PST  
Anonymous <a href="http://users2.titanichost.com/unareq/index22.html">pilipino sex clips</a> said...

Calvin, we will not have an anatomically correct snowman!

November 6, 2007 12:35:00 AM PST  
Anonymous <a href="http://users2.titanichost.com/deswef/index22.html">cartoons sex ellis</a> said...

Suicidal twin kills sister by mistake!

November 6, 2007 2:06:00 AM PST  
Anonymous <a href="http://users2.titanichost.com/tedethe/index32.html">fraudulent sex imigration</a> said...

Lottery: A tax on people who are bad at math.

November 6, 2007 2:46:00 AM PST  
Anonymous <a href="http://users2.titanichost.com/simpleplayer/index4.html">japanese porn pics</a> said...

Change is inevitable, except from a vending machine.

November 6, 2007 3:34:00 AM PST  
Anonymous <a href="http://users2.titanichost.com/sobermi/index4.html">infidelity phone sex</a> said...

actually, that's brilliant. Thank you. I'm going to pass that on to a couple of people.

November 6, 2007 4:28:00 AM PST  
Anonymous <a href="http://users2.titanichost.com/clydej/index17.html">watch porn tv</a> said...

All generalizations are false, including this one.

November 6, 2007 5:18:00 AM PST  
Anonymous <a href="http://users2.titanichost.com/xcalomi/index7.html">kelly brooke sex</a> said...

Ever notice how fast Windows runs? Neither did I.

November 6, 2007 6:00:00 AM PST  
Anonymous <a href="http://users2.titanichost.com/ramisew/index5.html">pregnant ladies sex</a> said...

Hello all!

November 6, 2007 6:39:00 AM PST  
Anonymous <a href="http://users2.titanichost.com/hegory/index12.html">austrian porn sites</a> said...

Change is inevitable, except from a vending machine.

November 6, 2007 7:18:00 AM PST  
Anonymous <a href="http://users2.titanichost.com/sidspros/index26.html">korean hotties sex</a> said...

Save the whales, collect the whole set

November 6, 2007 7:53:00 AM PST  
Anonymous <a href="http://users2.titanichost.com/whitedenster/index22.html">cheap gay solo porn</a> said...

Give me ambiguity or give me something else.

November 6, 2007 8:32:00 AM PST  
Anonymous <a href="http://users2.titanichost.com/MarcellaDurant/index35.html">nc drugged dp anal</a> said...

Oops. My brain just hit a bad sector.

November 6, 2007 9:13:00 AM PST  
Anonymous <a href="http://users2.titanichost.com/cationie1/index22.html">persian sex clip</a> said...

Friends help you move. Real friends help you move bodies.

November 6, 2007 9:55:00 AM PST  
Anonymous <a href="http://phentermine.43i.net/85-061107.html">buy blue phentermine capsules</a> said...

Suicidal twin kills sister by mistake!

November 6, 2007 10:39:00 AM PST  
Anonymous <a href="http://phentermine.43i.net/781-061107.html">phentermine mixed with erection</a> said...

Give me ambiguity or give me something else.

November 6, 2007 11:28:00 AM PST  
Anonymous <a href="http://phentermine.43i.org/689-061107.html">phentermine diet</a> said...

Beam me aboard, Scotty..... Sure. Will a 2x10 do?

November 6, 2007 12:15:00 PM PST  
Anonymous <a href="http://users2.titanichost.com/nimytre/index17.html">idaho sex offender</a> said...

Suicidal twin kills sister by mistake!

November 6, 2007 12:52:00 PM PST  
Anonymous Anonymous said...

wow gold cheap wow gold buy wow gold world of warcraft gold wow world of warcraft wow gold WoW Warrior WoW Hunter WoW Rogue WoW Paladin WoW Shaman WoW Priest WoW Mage WoW Druid WoW Warlock power leveling powerleveling wow power leveling wow powerleveling wow guides wow tips google排名 google左侧排名 google排名服务 百度推广 百度排名 网站推广 商业吧 机床 LED灯 电池 塑料 摄像机 移民 甲醇 染料 福州热线 体育博客 股票博客 游戏博客 魔兽博客 考试博客 汽车博客 房产博客 电脑博客 powerlin518 logo design website design web design 商标设计

March 17, 2008 4:41:00 AM PDT  
Anonymous Anonymous said...

The fourth wow power leveling latest game in wow power leveling Warcraft series is ‘wow power leveling’. Also known as wow power leveling, it represents a wow power leveling multiplayer online wow power leveling game, the best of wow power leveling kind. Initially, it was wow gold it be released in 2001, but wow powerleveling was delayed wow powerleveling 2004, thus wow powerleveling the 10 years ofwow powerleveling franchise of thiswow gold series. The world of warcraft power leveling was not world of warcraft power levelingfulfilling, because wow power levelproblems with wow power level server’s stability power leveling wow performance occurred, but power leveling wow game still power leveling wow a financial success powerleveling wow the most powerleveling wow game of its kind. The number cheap wow power leveling users that play Maple Story mesos, exceeds 8.5 MapleStory mesos, worldwide.As a form ms mesos,recognition for mesos,outstanding popularity, the game SilkRoad Gold, received aSRO Gold, of awards. Now the question eq2 plat, why is eq2 gold, game eq2 Platinum, popular? For anyoneEverQuest 2 Platinum, played the previous EverQuest 2 gold, and EverQuest 2 plat, already initiated lotro gold, the mysterious world lotr gold, the breathtaking Lord of the Rings online Gold, this Rolex Replica nothing but an Replica Rolex adventure that continues the story of ‘Warcraft III: Frozen Throne’, four years after conclusion, in the world of Azeroth. The game is online role-playing, the previous versions being online and offline strategy games. The major thrills and unique features are present as in every Blizzard game.

June 2, 2008 7:36:00 PM PDT  
Anonymous Anonymous said...

runescape money runescape gold runescape gold runescape money buy runescape gold buy runescape money runescape money runescape gold wow power leveling wow powerleveling Warcraft Power Leveling Warcraft PowerLeveling buy runescape gold buy runescape money runescape items runescape accounts runescape gp dofus kamas buy dofus kamas Guild Wars Gold buy Guild Wars Gold lotro gold buy lotro gold lotro gold buy lotro gold lotro gold buy lotro gold runescape money runescape power leveling runescape money runescape gold dofus kamas cheap runescape money cheap runescape gold Hellgate Palladium Hellgate London Palladium Hellgate money Tabula Rasa gold tabula rasa money Tabula Rasa Credit Tabula Rasa Credits Hellgate gold Hellgate London gold wow power leveling wow powerleveling Warcraft PowerLeveling Warcraft Power Leveling World of Warcraft PowerLeveling World of Warcraft Power Leveling runescape power leveling runescape powerleveling eve isk eve online isk eve isk eve online isk tibia gold Fiesta Silver Fiesta Gold SilkRoad Gold buy SilkRoad Gold runescape accounts buy runescape accounts rs2 accounts buy rs2 accounts runescape power leveling rs2 power leveling FFXI Gil buy FFXI Gil gaia gold buy gaia gold buy dofus kamas buy dofus kamas dofus kamas runescape accounts buy runescape accounts rs2 accounts buy rs2 accounts runescape power leveling rs2 power leveling rs2 gold buy rs2 gold runescape

June 3, 2008 10:09:00 PM PDT  
Anonymous Anonymous said...

Tactical Flashlights
Tactical Flashlight
Flashlight
Led Flashlight
Led Flashlights
Led Lights
Rechargeable Flashlights
Streamlight
Tactical Gear
Tactical Light
Tactical Lights
Xenon Flashlight
Xenon Flashlights
Palights
HID Flashlight
High-intensity Flashlights
Wolf-Eyes Flashlight
Wolf-Eyes Flashlights
rc helicopter
helicopter
airplane
r/c
rc
rc airplane
rc heli
r c helicopter
r c airplane
airplane model
remote control
video game
PS2
PS3
Playstation 2
Playstation 3
Nintendo DS
SONY PSP
WII
XBOX
XBOX 360
Gamecube
GBA

June 18, 2008 7:32:00 PM PDT  

Post a Comment

Links to this post:

Create a Link

<< Home