I would like to use a unique encryption key and authKey for each payload that I encrypt and authenticate via AES256 CBC with HMAC-SHA256. I'm considering the following:
Salt = 32 random bytes, unique to each payload, stored out in the open. MasterKey = 32 random bytes, chosen once ever, stored securely EncKey||AuthKey = PBKDF2(MasterKey, Salt, iterations)
Where EncKey will be 32 bytes used as the encryption key to AES256CBC and AuthKey will be 64 bytes used as the hashKey for HMAC-SHA256.
From my reading on crypto.stackexchange.com I understand that HKDF is probably a better function to use for deriving EncKey and AuthKey then PBKDF2 but in the development environment I'm in (.Net) I don't have access to HKDF from an authoritative source.
Is it ok to use PBKDF2 for this purpose? And if so, is it better to use a high iteration count (like 100,000) or a low iteration count like 1?