Fixing PKCS#11 by key-diversification
Riccardo Focardi, Matteo Centenaro · ARCA (Università Ca' Foscari Venezia) · 2011
PKCS#11 is a security API for cryptographic tokens.It is known to be vulnerable to attacks which can directly extract, as cleartext, the value of sensitive keys.In particular, the API does not impose any limitation on the different roles a key can assume and this gives the possibility to perform conflicting operations such as asking the token to wrap a key with another one and then to decrypt it.The typical solution, in the literature, is to impose policies restricting key roles.Here we take a different perspective and we propose a 'fix' based on key diversification.The idea is to prevent conflicting roles by always deriving different keys for different roles.This greatly simplifies the delicate task of exporting/importing keys.In a technical paper, submitted for publication, we prove via type-checking that the fix discussed here preserves the secrecy of sensitive keys.