何惧"艳照门"--续
书接上回,借助eToken的客户端,我们在Windows XP上实现了双因子的EFS加密,其实也还是单因子,只不过数据和密钥分离了。于是乎我接着在Windows Vista上尝试,希望也有相同的Solution。
前文书说过,Vista支持基于SmartCard的证书用于EFS,并且要求密钥为2048-bit的RSA。于是我今天找了一个新的eToken,可以支持2048-bit密钥证书,希望再续在XP上的胜利。
但是,开始的尝试可耻D失败鸟~使用用户帐户的EFS向导,始终不能直接在SmartCard上自注册证书。不知道Vista对具体的SmartCard有没有什么特殊要求。这个问题有待于与MS联系了解。知道的朋友也请不吝赐教。
做TC的人很重要的工作就是要想法子work around。一计不成,咱又生一计。直接生成一个EFS证书,然后导入到SmartCard上去。这个是模仿XP上的作法啦~
导证书很顺利,可是,使用有证书的eToken来访问EFS保护的信息时,又可耻D失败鸟~不甘心,马上去MSDN Blog上查产品组的blog,同时查有限的资料。。。终于被我找到原因了:与XP不同,Vista需要EFS的证书同时有关于智能卡登录的EKU。EKU是啥东东?继续查。。。原来叫做Extended Key Usage,扩展的密钥使用。证书的这个选项决定了证书能够应用的场景。
原因找到了,怎么解决呢?我估计Vista的智能卡证书自注册肯定是能够提供这个EKU的,可是现在它不能进行这个工作。。。难道要等MS漫长的解决过程?我继续不甘心,咱再生一计,用Windows Server 2003的虚机来起CA,娃哈哈~
一气之下作了一个什么都能搞得证书,邮件签名、客户端验证、EFS。。。导出来,再导进去。。。终于成了~
现在,如果没有插eToken,也就是SmartCard,是不能打开EFS加密的信息的。插上后,等证书被CAPI缓存,就能够访问了。