目录

火车票中的社会工程学信息

火车票脱敏身份证信息还原

  • 经常在朋友圈看到好友晒旅行的火车票. 火车票有我们的姓名及经过脱敏处理的身份证信息, 但仅仅屏蔽了出生的月份日期,通过校验位暴力遍历便可筛选可能的30余组号码.即猜中的概率为3%.如果再通过其它渠道获得如星座等信息.就可将猜中的概率提高10倍,即有三分之一的可能性被猜中.

  • 验证Demo:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
import re
import calendar

IDCARD_REGEX = '[1-9][0-9]{14}([0-9]{2}[0-9X])?'

def is_valid_idcard(idcard):
    """Validate id card is valid."""
    if isinstance(idcard, int):
        idcard = str(idcard)

    if not re.match(IDCARD_REGEX, idcard):
        return False
    # 将前面的身份证号码17位数分别乘以不同的系数。从第一位到第十七位的系数分别为:
    factors = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]

    items = [int(item) for item in idcard[:-1]]
    # 将这17位数字和系数相乘的结果相加
    copulas = sum([a * b for a, b in zip(factors, items)])
    # 用加出来和除以11,看余数是多少? 余数只可能有0-1-2-3-4-5-6-7-8-9-10这11个数字。 其分别对应的最后一位身份证的号码为:
    ckcodes = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2']

    return ckcodes[copulas % 11].upper() == idcard[-1].upper()

def show_possibility_month_day(year):
    for month in range(1, 13):
        m = '0' + str(month) if len(str(month)) < 2 else str(month)

        for day in range(calendar.monthrange(year, month)[1] + 1)[1:]:
            d = '0' + str(day) if len(str(day)) < 2 else str(day)

            r = '110101'+str(year)+m+d+'0539'

            if is_valid_idcard(r):
                print(r)

if __name__ == '__main__':
    show_possibility_month_day(1999) 

# 符合条件的可能
''' 
110101199901010539
110101199901280539
110101199902080539
110101199902160539
110101199902240539
110101199903040539
110101199903120539
110101199903200539
110101199904190539
110101199904270539
110101199905070539
110101199905150539
110101199905230539
110101199905310539
110101199906030539
110101199906110539
110101199907180539
110101199907260539
110101199908060539
110101199908140539
110101199908220539
110101199908300539
110101199909020539
110101199909100539
110101199909290539
110101199910080539
110101199910160539
110101199910240539
110101199911040539
110101199911120539
110101199911200539
110101199912190539
110101199912270539
'''

隐私泄露的危害:

  • 首先信息泄露会推动诈骗行为,即使自己有防范意识也难免会殃及身边的亲朋好友.泄露的信息越多,诈骗者的套路手段越高明.
  • 所以为了自己爱的人和爱自己的人应尽量避免泄露重要的身份信息,即使要晒图也要打好码啊!(尤其身份证后四位)[手动捂脸]

如何检测信息是否泄露及应对措施:

  • 社工自己:即利用多个搜索引擎搜索自己可能泄露出的信息(如姓名, 身份证号, 手机号等).即使没有查到也不表明隐私信息是安全的, 可能仍在地下市场流动或在某个社工库中伺机爆发.

  • 若发现搜索引擎有相关隐私记录需第一时间联系相关搜索网站,避免扩大影响.如百度搜索投诉服务中心

  • 侵犯隐私权的行为的主要表现形式:

根据国情和社情,下列行为可归入侵犯隐私权范畴:
1、未经公民许可,公开其姓名、肖像、住址和电话号码。
2、非法侵入、搜查他人住宅,或以其他方式破坏他人居住安宁。
3、非法跟踪他人,监视他人住所,安装窃听设备,私拍他人私生活镜头,窥探他人室内情况。
4、非法刺探他人财产状况或未经本人允许公布其财产状况。
5、私拆他人信件,偷看他人日记,刺探他人私人文件内容,以及将他们公开。
6、调查、刺探他人社会关系并非法公诸于众。
7、干扰他人夫妻性生活或对其进行调查、公布。
8、将他人婚外性生活向社会公布。
9、泄露公民的个人材料或公诸于众或扩大公开范围。
10、收集公民不愿向社会公开的纯属个人隐私的情况。