基于网络特征的新型授权机制设想
来源:互联网 发布:淘宝电商 编辑:程序博客网 时间:2024/06/06 00:30
1 背景介绍
目前,多数的license注册机采用基于锚点信息生成特定注册文件的授权机制,锚点信息一般为硬件信息,比如网卡mac地址,硬盘/主板/BIOS序列号,CPUID等,要保证授权机制的可行性与可靠性,必须保证锚点信息是稳定、可靠且唯一的。
在当前复杂多变的部署环境中,该注册机制面临诸多现实问题。例如,硬件设备的合理变更——CPU/磁盘/网卡的扩容或更换,虚拟环境下硬件参数的配置与迁移。
动态调整的场景越来越多,传统的锚点信息既不能保证稳定性又不能保证唯一性;同时随着技术的发展,局域网内的mac地址也可以自行配置,因此就具有了伪造的可能,本机的mac信息不再可靠。
除此之外,在不同的虚拟环境中,获取硬件信息(如存储序列号)的方式不稳定、不统一、不支持,也是常常要面对的一个难题。
难获取
不支持,接口复杂不统一
不稳定
硬件,虚拟环境变更
不可靠
mac地址可配置
不唯一
虚拟环境镜像
既然在某些复杂环境中,主机不再能够提供稳定可靠的锚点信息,那么我们把范围扩大,扩展至多主机(集群),扩展至局部网络,是否可以通过提取网络中的特征信息,来构建新型的授权机制呢?
要实现基于网络指纹的授权机制,需要思考两个问题:首先,我们能在网络中获取哪些信息?其次,基于这些信息,我们能做哪些事?前者是一切的基础,是大前提,我们获取和掌握的信息越多、越全面,就越有主动权去思考和实现授权的策略。
2 信息采集
2.1 采集说明
对信息采集过程,有以下几点说明:
a) 采集内容:采集注册服务器所在网络中所有可用的、有价值的特征信息,包括网络节点的ip,端口,服务类型,操作系统,mac信息等等;
b) 采集方式:必须完全依据tcp/ip网络的特性,通过非交互的、不被觉察的方式进行;
c) 采集范围:主要探测子网/虚拟子网的特征信息,当然也可以扩展至外层网络,对外层网络中的中枢节点,重要的服务节点进行采集;
2.2 本地缓存表
本机缓存的arp表,包含了最近一定时间内(比如15分钟)有数据交互的主机的ip和mac信息。
实例如下表:
Address
HWtype
HWaddress
Iface
20.0.9.109
ether
c8:c8:c8:c8:00:30
enp4s0
20.0.9.54
ether
34:97:f6:82:36:9a
enp4s0
200.200.200.6
ether
70:e1:4c:68:1b:73
enp3s0
20.0.9.1
ether
1c:6f:65:e5:03:35
enp4s0
20.0.9.92
ether
00:1f:d0:c6:d2:33
enp4s0
200.200.200.64
ether
00:e0:4e:03:94:ad
enp3s0
200.200.200.100
ether
70:f3:95:03:21:99
enp3s0
20.0.9.40
ether
00:1f:d0:67:b9:72
enp4s0
20.0.9.204
ether
50:e5:49:b8:22:20
enp4s0
2.3 探测某网段中所有存在的主机 ip及 mac 信息
网段中处于同一子网的可以探测到mac地址信息,不在同一子网的只能探测到ip信息,对于获取的mac地址,会根据地址分配规则去推测出厂家信息,如是VMware,还是Cisco;
详细信息如下:
[root@hadoop-slave3 ~]# nmap -sP 200.200.200.*
Starting Nmap 6.40 ( http://nmap.org ) at 2017-08-17 10:25 CST
Nmap scan report for 200.200.200.3
Host is up (0.00080s latency).
MAC Address: B4:14:89:25:79:60 (Cisco Systems)
Nmap scan report for 200.200.200.4
Host is up (0.0018s latency).
MAC Address: EC:3E:F7:73:E4:62 (Unknown)
Nmap scan report for 200.200.200.6
Host is up (0.00016s latency).
MAC Address: 70:E1:4C:68:1B:73 (Unknown)
Nmap scan report for 200.200.200.7
Host is up (0.00013s latency).
MAC Address: 00:24:1D:9D:8C:D4 (Giga-byte Technology Co.)
Nmap scan report for 200.200.200.10
Host is up (0.00036s latency).
MAC Address: 00:0C:29:E0:56:D3 (VMware)
Nmap scan report for 200.200.200.12
Host is up (0.00010s latency).
MAC Address: 0C:82:68:E7:D8:EF (Tp-link Technologies Co.)
Nmap scan report for 200.200.200.18
Host is up (0.000094s latency).
MAC Address: 00:1F:D0:C8:AD:21 (Giga-byte Technology Co.)
Nmap scan report for 200.200.200.24
Host is up (0.00025s latency).
MAC Address: 6C:F0:49:8D:95:29 (Giga-byte Technology Co.)
Nmap scan report for 200.200.200.25
Host is up (0.00029s latency).
MAC Address: 00:26:AB:69:40:5B (Seiko Epson)
Nmap scan report for 200.200.200.42
Host is up (0.00042s latency).
MAC Address: E4:1F:13:2B:50:99 (IBM)
Nmap scan report for 200.200.200.43
Host is up (0.00013s latency).
MAC Address: 00:1A:4D:7E:A5:3B (Giga-byte Technology Co.)
Nmap scan report for 200.200.200.50
Host is up (0.00017s latency).
MAC Address: 60:EB:69:5C:F3:C6 (Quanta computer)
Nmap scan report for 200.200.200.51
Host is up (0.00015s latency).
MAC Address: 00:1A:4D:83:D8:C7 (Giga-byte Technology Co.)
Nmap scan report for 200.200.200.52
Host is up (0.00013s latency).
MAC Address: 00:15:17:D5:98:2C (Intel Corporate)
Nmap scan report for 200.200.200.53
.
.
.
Nmap scan report for 200.200.200.253
Host is up (0.00015s latency).
MAC Address: 00:50:56:97:60:79 (VMware)
Nmap scan report for 200.200.200.44
Host is up.
Nmap done: 256 IP addresses (105 hosts up) scanned in 18.20 seconds
You have new mail in /var/spool/mail/root
2.4 探测网络内某节点信息
主机信息探测,是基于网络扫描来实现的,可以探测出主机的服务端口,服务类型(数据库/Web Server等),防火墙配置,并根据操作系统的特征指纹去推测出可能的操作系统信息。
详细信息如下:
[root@hadoop-slave3 ~]# nmap -sS -PO -A -v 20.0.9.15
Starting Nmap 6.40 ( http://nmap.org ) at 2017-08-17 10:10 CST
NSE: Loaded 110 scripts for scanning.
NSE: Script Pre-scanning.
Initiating ARP Ping Scan at 10:10
Scanning 20.0.9.15 [1 port]
Completed ARP Ping Scan at 10:10, 0.01s elapsed (1 total hosts)
Initiating Parallel DNS resolution of 1 host. at 10:10
Completed Parallel DNS resolution of 1 host. at 10:10, 0.04s elapsed
Initiating SYN Stealth Scan at 10:10
Scanning 20.0.9.15 [1000 ports]
Discovered open port 139/tcp on 20.0.9.15
Discovered open port 135/tcp on 20.0.9.15
Discovered open port 445/tcp on 20.0.9.15
Discovered open port 6000/tcp on 20.0.9.15
Discovered open port 10000/tcp on 20.0.9.15
Discovered open port 10001/tcp on 20.0.9.15
Discovered open port 10002/tcp on 20.0.9.15
Discovered open port 10004/tcp on 20.0.9.15
Discovered open port 5432/tcp on 20.0.9.15
Discovered open port 16001/tcp on 20.0.9.15
Completed SYN Stealth Scan at 10:10, 0.07s elapsed (1000 total ports)
Initiating Service scan at 10:10
Scanning 10 services on 20.0.9.15
Completed Service scan at 10:11, 48.58s elapsed (10 services on 1 host)
Initiating OS detection (try #1) against 20.0.9.15
adjust_timeouts2: packet supposedly had rtt of -100038 microseconds. Ignoring time.
adjust_timeouts2: packet supposedly had rtt of -100038 microseconds. Ignoring time.
adjust_timeouts2: packet supposedly had rtt of -100001 microseconds. Ignoring time.
adjust_timeouts2: packet supposedly had rtt of -100001 microseconds. Ignoring time.
adjust_timeouts2: packet supposedly had rtt of -124969 microseconds. Ignoring time.
adjust_timeouts2: packet supposedly had rtt of -124969 microseconds. Ignoring time.
NSE: Script scanning 20.0.9.15.
Initiating NSE at 10:11
Completed NSE at 10:11, 30.00s elapsed
Nmap scan report for 20.0.9.15
Host is up (0.00064s latency).
Not shown: 990 closed ports
PORT STATE SERVICE VERSION
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn
445/tcp open netbios-ssn
5432/tcp open postgresql PostgreSQL DB
6000/tcp open X11 NetSarang XManager
10000/tcp open msrpc Microsoft Windows RPC
| ndmp-version:
|_ ERROR: Failed to get host information from server
10001/tcp open msrpc Microsoft Windows RPC
10002/tcp open msrpc Microsoft Windows RPC
10004/tcp open msrpc Microsoft Windows RPC
16001/tcp open bandwidth-test MikroTik bandwidth-test server
MAC Address: 68:F7:28:1B:E7:F0 (Unknown)
Device type: general purpose
Running: Microsoft Windows 2008|7
OS CPE: cpe:/o:microsoft:windows_server_2008::sp2 cpe:/o:microsoft:windows_7::- cpe:/o:microsoft:windows_7::sp1 cpe:/o:microsoft:windows_8
OS details: Microsoft Windows Server 2008 SP2, Microsoft Windows 7 SP0 - SP1, Windows Server 2008 SP1, or Windows 8
Uptime guess: 0.054 days (since Thu Aug 17 08:53:22 2017)
Network Distance: 1 hop
TCP Sequence Prediction: Difficulty=260 (Good luck!)
IP ID Sequence Generation: Busy server or unknown class
Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows
Host script results:
| nbstat:
| NetBIOS name: PC-20141221QFZN, NetBIOS user: <unknown>, NetBIOS MAC: 68:f7:28:1b:e7:f0 (unknown)
| Names
| PC-20141221QFZN<00> Flags: <unique><active>
| WORKGROUP<00> Flags: <group><active>
|_ PC-20141221QFZN<20> Flags: <unique><active>
| smb-os-discovery:
| OS: Windows 7 Ultimate 7601 Service Pack 1 (Windows 7 Ultimate 6.1)
| OS CPE: cpe:/o:microsoft:windows_7::sp1
| Computer name: PC-20141221QFZN
| NetBIOS computer name: PC-20141221QFZN
| Workgroup: WORKGROUP
|_ System time: 2017-08-17T10:17:28+08:00
| smb-security-mode:
| Account that was used for smb scripts: <blank>
| User-level authentication
| SMB Security: Challenge/response passwords supported
|_ Message signing disabled (dangerous, but default)
|_smbv2-enabled: Server supports SMBv2 protocol
TRACEROUTE
HOP RTT ADDRESS
1 0.63 ms 20.0.9.15
NSE: Script Post-scanning.
Read data files from: /usr/bin/../share/nmap
OS and Service detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 82.09 seconds
Raw packets sent: 1023 (46.610KB) | Rcvd: 1184 (58.262KB)
3 网络指纹
3.1 概念
信息指纹的灵感来源于人类的指纹,人类的指纹由遗传与环境共同作用决定,能对个体身份进行唯一标识。
信息指纹就是提取“信息”的特征值,形成一个特征矩阵,然后根据特征矩阵调用特定的算法,例如MD5,将其转化为一组代码,这组代码就称为标识这个信息的指纹。
网络指纹,就是以网络信息为特征库,生成能唯一标识一组网络的字节码指纹,构建指纹的过程可分为特征抽取和指纹计算两步。
3.2 特征表
特征抽取是至关重要的一步,是构建网络指纹信息的基础,特征的结构和策略会直接影响网络指纹的有效性。
在对特征抽取过程进行设计之前,需要明白一点,那就是特征的本质是过滤器!
网络特征码的提取,也是同样的道理。
特征表的结构大致如下:
特征表结构
网络信息
网络
网关ip
网关mac
ip
活跃数目
列表
mac
数目
列表
厂商信息
统计特征
系统信息
统计特征
节点信息
主机
类型
数目
交换机
类型
数目
业务信息
web server
类型
数目
DB
类型
数目
dns server
类型
数目
dhcp server
类型
数目
其他
4 注册与授权流程
基于网络信息实现安全、可靠的授权,既需要保证网络的唯一性,又需要保证注册服务器的唯一性,前者保证当前网络与注册时的基准网络一致,后者保证当前网络中有且只有一台注册服务器在运行。
4.1 网络唯一性
网络唯一性的保障流程:
4.2 注册服务的唯一性
ARP(地址解析协议),是根据IP地址获取物理地址的一个TCP/IP协议,主机在发送信息之前,将包含目标IP地址的ARP请求广播到同一子网内的所有主机,并接收返回消息,以此确定目标的物理地址。
地址解析协议是建立在网络中各个主机相互信任的基础上的,网络上的主机可以自主发送ARP应答消息,因此,可以通过发送特定IP的ARP请求,来确认子网内是否存在另外的注册服务器。
如上图所示,合法安装的注册服务器会定期向网络中广播arp请求,其中ip信息为特殊值,暂且称为magic ip。与此同时,非法的注册服务器会探测所有广播的arp信息,如果发现存在请求ip为magic ip 的arp包时,则发送arp应答请求。当合法的注册服务器接收到arp应答请求时,说明注册服务器不唯一。
5 算法与策略
待续
6 产品级约束
待讨论
- 基于网络特征的新型授权机制设想
- 基于规则的授权机制
- 关于网络建设的设想
- 基于信用评价和知识共享为中心的网络协作模型设想
- 家庭网络环境下基于OSGI的灵活授权
- 基于SAAS开发平台的设想
- 基于浏览器的网站红包功能设想
- 关于卓越网络学习系统的设想
- 网络文件资源管理系统的计划设想
- 建立交通物流的网络设想
- 一种网络数据传输加密算法的设想
- 基于HT9032C的新型来电显示器设计
- 基于语义特征的网络舆情正负面监测
- SDN新型网络带来的思考
- 基于信用评价和知识共享为中心的网络协作模型设想(续1: 信用评价模块)
- 新型初始化和更新机制在分类中的特征选择PSO
- 自动推送机制设想
- 基于Springboot的微信公众号接入、通过网页授权机制获取用户信息
- Oracle 创建表格
- easyui中window和message样式重写less
- 深度学习如何做特征工程?
- 【CodeForces
- Linux设备驱动之s3c2440添加LCD驱动
- 基于网络特征的新型授权机制设想
- Device supports x86, but APK only supports armeabi-v7a
- 二分图的多重最大匹配——网络流
- 170818 逆向-南邮CTF(WxyVM2)
- 文章标题
- 连续特征离散化和归一化
- 帮你深入理解OAuth2.0协议
- delphi 标题栏相关操作
- JSP模板页相关整理