The Aladdin etoken would be a good choice except that it's very expensive and the version that works with OpenSC has been discontinued.