startssl 的密钥认证登录是如何实现的?

2015-01-11 00:35:09 +08:00
 Draplater

auth.startssl.com里使用了密钥认证登录,需要事先向浏览器中导入私钥,然后利用这个密钥来认证。这比口令认证安全得多。web上使用这种认证方式我还是第一次见。
这种接口叫什么名字?是怎么实现的?我可以用常用的web服务器实现吗?

5862 次点击
所在节点    问与答
37 条回复
TrustyWolf
2015-01-11 09:18:48 +08:00
要是以后所有的登陆操作都用一个U盾解决就好了,要登陆的时候直接插U盾...
yushiro
2015-01-11 09:46:54 +08:00
正好搭车问一下楼主,怎么在mac里面导出startssl的登录证书?我要导入到win7的chrome中。
现在遇到的问题是,私钥导出后无法导入,报错说格式不正确(文件后缀p12)公钥和email证书可以导入,但是无法登陆startssl
vibbow
2015-01-11 10:05:32 +08:00
@NeoAtlantis Chrome@Windows是用Windows的证书数据库的
Firefox是自己维护了一套证书数据库的

https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/tools/NSS_Tools_certutil
看起来Firefox的证书/私钥库默认是非加密的,保存在 cert8.db key3.db 里

等下我看看飞天的SDK,他们在私钥解密上是怎么做的。
vibbow
2015-01-11 10:10:14 +08:00
@NeoAtlantis 飞天的SDK是提供了中间件的binary文件。
然后给了头文件,通过WINDOWS CSP API或者PCKS#11 API去操作数字证书。。。
vibbow
2015-01-11 10:28:32 +08:00
@NeoAtlantis 大概研究了一下。
结论如下:
目前来说,对硬件数字证书的操作,需要通过CSP API或者PCKS#11 API去操作。
应用程序没有直接去操作硬件数字证书的能力。(或者说只是不知道怎么去直接操作硬件)
CSP API和PCKS#11 API的中间件由数字证书厂家制作,没有公开源代码(或者我没找到)。

所以数字证书的私钥有没有释放给windows,那就要看硬件数字证书厂家对中间件的实现了。


按照我目前的经验:
对于使用CSP API的程序,操作数字证书的session在不同程序之间是不共享的(比如说我在IE里登陆了硬件数字证书,在Outlook需要使用硬件数字证书的话需要另外登陆,不能共享IE里的session)。至于其他程序能不能通过读内存的方式获取到已有的session,这个就不知道了,不过感觉Windows应该会有相关的内存保护措施吧。

对于PCKS#11 API的程序,那就真的看程序自己的实现了。像Firefox在一段时间内不操作数字证书(这个时间很短,几分钟的样子),就会要求重新登陆硬件数字证书(说明firefox并没有在内存里保存硬件数字证书的登陆密码?)。不过我相信其他程序绝对有能力注入Firefox的进程获取到一部分信息,具体多少?我不知道。
vibbow
2015-01-11 10:31:56 +08:00
@NeoAtlantis 所以硬件数字证书的优点之一就是:用完之后就可以拔掉......
智能卡同理。
0okmnbvcxzx
2015-01-11 10:52:22 +08:00
@NeoAtlantis windows 的私钥文件是可以直接访问的,chrome用的是用户在系统中的存储区,没有独立的存储。Firefox我不了解,但估计验证时也是读取用户自己的存储区吧(内置的大概不派这用场。
如果你需要每次使用都要密码可以启用强私钥保护,可以每次使用私钥都要密码解密。
之前我说加密是想着强制重设密码后私钥会失效,现在想想理由不足,想知道一般加不加密得export一下了。


@vibbow 唉,国内的都这副德行。。还是PayPal大法好
NeoAtlantis
2015-01-11 11:11:33 +08:00
@vibbow 从你的说法看是挺像没有给操作系统。PBKS#11好像本身就是一套复杂的操作标准什么的。话说那么硬件对导入的证书、解密的密文所用的算法、签名算法有限制沒?比如什么算法,多少比特? 硬件能支持的应该有些限制?
vibbow
2015-01-11 11:14:41 +08:00
@NeoAtlantis 有限制。
这是我用的硬件数字证书的技术参数:
http://www.ftsafe.com/product/epass/epass3003auto
vibbow
2015-01-11 11:16:07 +08:00
@0okmnbvcxzx 我被Paypal莫名其妙封了一个账号,然后他们发邮件让我重新注册一个...
NeoAtlantis
2015-01-11 11:23:38 +08:00
@vibbow 可惜了啊,看来是不错,但是算法略旧的感觉…RSA到2048,DES和3DES也挺旧,SHA256还好。
0okmnbvcxzx
2015-01-11 18:18:42 +08:00
@vibbow 有联系过客服吗?他们怎么说……是无解了吗?
GhostFlying
2015-01-11 22:21:15 +08:00
vibbow
2015-01-11 22:24:09 +08:00
@0okmnbvcxzx 就是客服给我说让我重新申请一个账号...
vibbow
2015-01-11 22:27:40 +08:00
@NeoAtlantis 就算是目前最好的SafeNet的,也只不过是多支持了一个AES256的而已。
ftsafe的其实还支持国密算法,只不过英文页面没写而已。
vibbow
2015-01-11 23:36:20 +08:00
@GhostFlying 一个yubico卖的比U盾还贵,看得我也是醉了。
0okmnbvcxzx
2015-01-12 13:09:22 +08:00
@vibbow 真是个悲伤的故事……
国密的话除了有关部门应该很少用吧……

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/161018

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX