0 发现问题
我呢?常常会丢失一些东西,当然身份证还没有丢失过。
但是,我身边却有不少人丢失过身份证的经历。
1 丢失的身份证不能失效带来的一系列危害
1.1 危害,可能使你成为替罪羔羊
由于我国的规定,很多情况下都需要身份证信息,比如:银行开户、外出住房、火车等,甚至有时候地铁口也要检查,那么身份证就必须随身携带,那么丢失的可能性也就大大增加。
身份证丢失并不可怕,可怕的是别人使用你的身份证明来做一些非法的事情,这样抓不住正主,你却成为了第罪羔羊。
1.2 丢失后挂失并不能使得老身份证失效
在我们的身份证丢失后,通过登报并重新办理后,最大的危害是原来已经丢失的身份证却并不能失效,几乎已经丢失的身份证可以做正常身份证做的几乎所有的事情。
不知道大家有过这样的经历没有,在第一张身份证即将失效的时候,办理一张新的身份证。当去银行等办理业务的时候,这两张身份证确实都是同时可用的。这样也就使得很多普通人身份证丢失之后,莫名其妙多了很多银行账户、欠债记录等。而最大问题是,作为一个普通人,我们不可能每个月甚至每天给所有的银行打电话等,查看自己是不是在这些银行有新开设的账户等。
曾经报纸和网络上有人讨论过,为什么不能使得丢失的身份证失效的问题。现在想想,不是不能解决,可能是十分好解决,因此本文就是讨论这个问题的。
1.3 过期的身份证有时候仍旧可用
我身边的一个丢失过身份证的朋友,他总是害怕别人使用他的身份证开设各种业务,甚至用来犯罪。
但是,他对自己有一个安慰就是,等身份证过了上面的安全期,那样就好了。就这样,他已经等了2到3年了,还需要等个4~5年就行了,就不需要担惊受怕了。
最开始我也就是是这样,但是后来的一次经历改变了我的想法。
由于我在首都图书馆需要借书的时候,发现我的钱包放在办公司了,现在使用的身份证和图书证都放在那个钱包里面了,在我不想在跑回公司的情况下,我就想“能不能用我以前的身份证通过首图的借书验证呢?”(2017年2月26日之前的事情,未来不知道会不会改变),于是我拿着已经失效的身份证就去了,这张旧身份证是办理图书证的那一张,结果去了还真的能通过验证。
于是我就满怀担忧,想办法解决这个蛋疼的问题。
2 丢失的图书证和饭卡
2.0 引言
我丢失过图书证,也丢失过饭卡,当我害怕别人使用它来做某些不利于我的事情的时候,我首先挂失,然后补办,最后我拿着新卡,再也不用害怕别人用旧卡为非作歹。
2.1 挂失后确保失效的方法
它们是怎么做到的呢?我不知道,但是我就谈谈可以做到的一种方法,并且这种方法是现在实现的最大可能性。
2.1.1 确认每张卡唯一的方法
每张卡片都有一个编号,而这个编号确是唯一的编号,我们常把它叫做id,也就是在保存数据的数据库中,设置这个编号是可以使用的,那么这个编号代表的卡片就可以使用;如果设置不能使用,那可就不能使用。
2.1.2 id编码的选择
那么将什么作为唯一判断的id的方法呢?
身份证编号、学生证编号吗?
用上面的这些做id的编码依据在某些方面是可行的,这样也就可以区分不同的人所拥有的卡片。
对于一个人原始卡片丢失,如果它去挂失,只要暂停这个编号的使用权即可。这样也能保证不会出问题。
但是,如果想补办使得原来卡片无效,怎么办?
上面选择id的办法就完全做不到了,所以需要一个跟身份证编号、学生证编号并不是一一关联的号码作为id,如果一张卡丢失,那么将这个id的状态作为禁止使用即可;将新办理的卡片作为启用的即可。
2.2 对使用丢失卡片做出警告的方法
可以在数据库里面增加一个新的字段,或者启用一个备用的字段,作为卡的状态,状态可以是丢失、备用、正常使用等。
如果检测到是“丢失”等不正常状态的卡,还在使用,这样就可以发出警报。
3 丢失的身份证
3.1 不能挂失停用旧身份证原因分析
在上面部分,对图书证和饭卡的能够挂失的原因进行了分析,指出了id选用方法的会带来的后果问题。
对于不能挂失,最根本的原因是身份信息的数据库中设计的验证身份信息的id出现问题。
如同上面叙述的那样,验证一个人的身份证还能否使用的验证id对于一个人是唯一的,这样也就可以区分每一个人的身份证id不能,但是却不能区分每一个人不同状态的身份证。这样导致的结果就是,如果停止某一个验证id的使用,那么这个人所有的身份证都不能使用;如果不停止,则这些身份证都可以使用。那么即使身份证丢失,补办之后,就会出现新证件和旧证件都能使用的问题。
3.2 涉及到的面向对象的问题
面向对象,现在是程序设计等的基本方法之一。它主要讲的是将不同对映于现实生活的不同客体,有很多关键不同属性的客体分成不同的类,每个类做一种对象看待。
显然,人和这个人所拥有的身份证有很大的关联性,在很多时候身份证可以代表这个人做出一定的判断;但是可悲的是,这种关联性和可代表性被无限放大,出现了自己不能代表自己问题,自己往往需要证明自己是个人的问题。
人 – 应该当作单独的类看待
身份证 – 也需要当作单独的对象来看待
这是因为他们代表的属性几乎在大部分上无法相互替代,人对身份证的关系因该是一对多的关系,而不是一对一的关系;但是可用的身份证和人可以是一对一的关系,这样就确保了每个人仅有一张可用的身份证,挂失的就不再可用。
3.3 数据库实现的构想
先构想一下原来的身份验证的数据库结构或者思维。
存在以下几个客体:
* (a) 现实中的人
* (b) 现实中人的验证信息(数据库中)
* (c) 现实中的身份证卡片
* (d) 现实中身份证验证信息(数据库中)
如果通过身份证验证一个人的话,大致通过以下路线:
1. 人(a)将身份证(c)交给相关工作人员
2. 工作人员将身份证(c)刷入特殊仪器,连接身份验证系统
3. 通过身份证(c)验证身份证信息(d)有效性
4. 通过身份证信息(d)有效性验证人的信息(b)有效性
5. 通过人的信息(b)有效性返回验证结果,验证人(a)的有效性
但是,在真实的使用中,将上面的(b)和(d)弄成了一块的内容。
如果将上述的(b)和(d)分开,使得身份证卡片的信息不能直接代表一个人的信息,那么就有可能设置失效的身份证信息了。
3.3.1 数据分离
将证件的信息和人的信息分离,在数据库中分成不同的表,这样就使得一个人拥有不同张身份证,并且可以将不同的身份证相区别开成为了可能。
如果将身份证的证件信息的表单中多一个字段,这样就可以将标记失效身份证失效的原因,如果上面的信息可以标示被盗等,那么使得在挂失后改变其状态,不但使得丢失的身份证不可用,更能够使得坏人不敢用。
3.3.2 验证分离
将身份证号码用作验证人信息的标准,但是不能用作验证身份证证件的标准,需要在公安系统中,首先验证身份证可用之后,才能在系统中验证个人的信息。这样使得我们不会因为身份证丢失而使得这个世界上多出几个拥有自己部分身份的自己。
3.4 如今实现存在的问题
这种方法是可行的,但是同样存在一定的问题,具体如下:
* 我国人口巨大,新建一张表包括的记录名超过13亿
* 已有的13亿身份证怎样生成新的身份证验证信息
* 现存身份证大多达不到这样信息,更换需要很长时间
* 分离验证需要很大数据量的操作
* 上文提到的这种验证方法还有漏洞
* 各种验证单位系统需要更换验证系统以及软件
* 其它我想不到的
3.5 对上述问题的解决方法及建议
新建表中数据超过13亿的问题
确实是,甚至数据量会大于持有身份证的人的数量。
新建表内容的数据量大,但是并不是需要人们手动在数据库里面输入信息。在一个数据操作如此频繁的今天,使用一个小小的程序,几秒钟中就能创建成立一个新的表单,直接从原始数据库的表中就可以得到大部分相应的信息,几乎不需要太多人的操作已有的13亿身份证怎样生成新的身份证验证信息
这个估计是很多人觉得比较麻烦的问题。
其实对于初始的生成这些验证信息,仅仅在代表身份证证件的表里面的身份证号码后面加上几个零作为新的省份证验证信息号码就可以。
我们知道身份证最后一位的信息里面有字母x出现,那么保存的格式就不是数字类型而是字符串类型,如果仅在后面用一个字母表示这是第几张身份证,那么就可以表示26张,如果用两位来表示就可以是676张,一般一个人很难在一辈子中丢失675次身份证,一般是够用了;如果想加入混淆信息,也可以是三位或者四位。现存身份证大多达不到这样信息,更换需要很长时间
这个问题更好解决,需要马上更换新类型身份证是丢失过身份证的人,只有这些人才有很大的风险被毛用身份,其他人目前没有这种危险,可以先用现在这种身份证,当一旦丢失身份证,马上启用新的身份证,验证信息中末尾的和原来的一旦变化,就知道原始身份证不可以使用了,这样也就保护到它们的信息安全
也就是除了丢失过身份证的人,其他人可以不办理
对于已经丢失过身份证人数已经过多的问题,那必须给他们办理,是否会劳民伤财?
这个,难道大批量的人信息不安全,带来生命危险还不如办理一张新身份证容易上文提到的这种验证方法还有漏洞
这个确实是存在问题的,我仅仅是把我想到的写了出来,没有想到的还有很多
但是,又不是之后就不能改进了,当发现新的重大问题的时候可以不断改进啊各种验证单位系统需要更换验证系统以及软件
这个其实是没有多大变化的,只是之前将上传身份证消息变成现在的上传身份证消息而已
主要的验证还是不在那一个旅店还是银行什么的,而是在它们之前就需要去验证的地方验证,主要的验证地方改变验证方法在那些地方
结语
本文仅仅是我觉得能够提高个人信息安全的一些想法,希望能对国家和人民做一点贡献。
大家如果有什么好的建议和想法,可以在下面留言。