在网上活动时需要证明自己的身份,如果只要求提供身份证号码,别人就可以冒用你的号码,你也可以冒用别人的号码。
所以很多机构除了索要号码,还会要求用户提供手持身份证照片,以确认操作者确实是身份证上的人。这个方法效率低、无法彻底杜绝冒用,也不利于保护公民隐私(身份证上的地址、民族等信息会随照片泄露)。
各种补救方案应运而生。
eID
公安部第三研究所提供的数字身份验证方案。
eID以智能安全芯片为载体,芯片内部拥有独立的处理器、安全存储单元和密码运算协处理器,只能运行专用安全芯片操作系统,其内建芯片安全机制可以抵抗各种物理和逻辑攻击,确保芯片内部数据无法被非法读取、篡改或使用。
eID是一个芯片,使用eID的公民需要通过各种渠道取得这个芯片。芯片内部包含一串独一无二的密钥,在公安的数据库中和用户的真实身份对应。用户第一次使用eID之前,需要将自己的eID芯片和自己的真实身份绑定一次(即在公安那边登记一次)。
公安部的绑定记录如下:
姓名:习明泽 身份证号:114514... eID密钥:a1b2c3d4e5f6....
如果这串密钥被复制走,别人就可以冒用你的身份。所以把密钥保存在用户的设备中(例如智能手机中)是危险的(可能因系统漏洞、软件漏洞被盗)。这就是为什么要专门造一个芯片把密钥放进去,并通过各种技术手段确保芯片内部状态无法从外部读取。
在验证身份过程中,用户并不提交密钥本身(因为可能会被人复制挪用),而是将其作为私钥,借助eID芯片内部电路,生成一个一次性的数字签名,然后把这个签名从芯片中传递出来。公安可以验证这个数字签名确实是由登记在该用户名下的eID芯片签发的。
eID合作单位收到用户发来的签名之后无法自行核验,需要将1)eID生成的签名和2)用户提交的姓名、身份证号等 传递到eID服务器,由eID服务器核验,服务器会返回“吻合”或者“不吻合”。整个过程都不需要拍摄、传输身份证照片,降低了身份证表面信息(如家庭住址等)泄露的风险。
但是,既然非eID合作单位无法独立验证eID生成的签名的真实性,那么eID就只能用于在eID合作单位验证公民身份,无法用于公民与公民、公民与法人之间互相验证身份。譬如本站就无法借助eID验证各位提交的实名信息,因为本站与公安三所没有业务合作。
目前用户可以通过以下方式获取、使用eID芯片:
- 申领带有eID芯片的银行卡,使用手机NFC功能与卡上的eID芯片通信。
- 申领SIM贴膜卡:通过在手机SIM卡上粘贴带有eID芯片的贴纸,在不影响原SIM卡使用的情况下,使手机能够与贴纸上的eID芯片通信。
- 从2020年开始,部分国产手机出厂内置eID芯片,无需再使用SIM贴膜。
除此之外,腾讯推出了E证通,这是由eID和腾讯征信联合推出的eID数字身份应用方案,无需额外增加硬件。
CTID
公安部第一研究所表示,三所搞的那个eID不行啊,还是用咱们一所的CTID方案吧!
公安部:行你们打一架
CTID不依赖于芯片,在用户的移动设备上直接保存密钥,风险稍高。
获取CTID的两种方式:
- 安装CTID App,手机NFC读取本人身份证,通过某种方式(缺少这方面资料;二代证在线验证的接口因垄断而非常昂贵)验证身份证真实性后,生成一串密钥,存入用户手机
- 前往“可信受理点”,验证身份证真实性后,生成一串密钥,存入用户手机
与eID类似,CTID在使用时并不直接出示密钥本身(以免被复制),而是借助密钥生成签名或哈希值,最终由合作平台提交至CTID服务器核验,判断用户提交的签名或哈希值是否与用户声称的身份吻合。
全民公投
所以CTID跟eID能否被用于向**非官方合作单位(即“离线”)**证明“我是中国人”(即可以用于组织全民公投)?
理论上是可以的(把整套系统改一遍,加入相应功能即可),实践上最大的困难是公安部并不希望任何ID被用于这个功能。