基于网络特征的新型授权机制设想
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 产品级约束
待讨论
基于网络特征的新型授权机制设想相关推荐
- 易班开放平台授权机制理解以及使用
前言 作为一名使用易班开发平台的技术人员,最常见就是调用易班开发API,获取用户的信息,发送站内信给用户,获取用户的经验和网薪值.当然,在此之前要获取用户的授权(access_token),再去调用接 ...
- 【从零开始写漏扫】服务识别—自己动手写一个指纹识别器—网络特征指纹
前言 上篇文章中,我们讨论了端口扫描器的实现,编码实现了一个简单的多线程端口扫描器,从子域名挖掘到端口扫描,主机发现部分暂时结束了,今后遇到更好用的主机发现技术再作补充,接下来开始服务的识别工作. 通 ...
- PGA-Net:基于金字塔特征融合与全局上下文注意力网络的自动表面缺陷检测
1.摘 要 缺陷检测是工业产品处理中的一项重要任务.当前,已经有很多基于计算机视觉技术的检测方法成功应用于工业领域并取得了较好的检测结果.然而,受限于类间表面缺陷的内在复杂性,使得实现完全自动的缺陷 ...
- gcn在图像上的应用_每日摘要|基于CNN 特征的图像卷积网络识别杂草和作物
文章信息 标题:CNN feature based graph convolutional network for weed and crop recognition in smart farming ...
- 基于 钉钉认证 通过 华为、H3C 结合 OpenPortal认证计费系统 实现 网络准入 钉钉授权 实名认证
基于 钉钉认证 通过 华为.H3C 结合 OpenPortal认证计费系统 实现 网络准入 钉钉授权 实名认证 在企业园区网络中,需要结合钉钉实现网络安全准入实名认证,方案中企业网络设备可以是华为(如 ...
- 基于多特征时空图卷积网络的水运通航密度预测
摘要: 面对港航信息化发展的需求,物联网技术助力我国水运交通感知网络的建设.水运交通大数据分析已成为交通领域研究者和实践者关注的热点.在水运交通中,各港口的通航密度具有非线性.时空相关性和异质性,对其 ...
- 基于语义特征的网络舆情正负面监测
网络评价和信息的正负面识别,包括优捷信达科技在内的技术领先型舆情口碑监测公司,都是通过极性分类(polarity classification)这一步骤来实现,极性分类首先将具有情感倾向的相关词语提取 ...
- (转)架构风格与基于网络的软件架构设计(介绍REST)
随着软件水平在国内的发展,中国程序员的水平也逐渐的在提高,从当年英雄式,到后来的软件作坊,现在越来越多的人开始关注软件架构设计,软件架构师培训也越来越火了,,甚至也有国人自己编著软件架构设计方面的书籍 ...
- medRxiv | 基于网络的人类冠状病毒的药物重定位
随着新型冠状病毒(2019-nCoV)感染肺炎疫情持续发展,武汉.全国各地以及全球的疫情牵动着每一个人的心.2020年2月5日medRxiv发表了研究工作"Network-based Dru ...
最新文章
- Android 项目版本的修改
- 8)排序④排序算法之归并排序
- setTimeOut()
- boost::hana::values用法的测试程序
- DuckChat聊天系统PHP,仿微信在线聊天源码 DuckChat聊天系统PHP
- javaScript的常见document对象
- UIKit 框架之UIControl
- Qt中的对话框(模态,非模态,关于,问题,文件)
- java 接受gsm信息_android 获取手机GSM/CDMA信号信息,并获得基站信息
- Logistic映射在图像加密中的应用
- Remix IDE的本地环境搭建(ubuntu系统)以及编译智能合约
- snapper命令技巧
- 共享店铺模式是怎么样的一个模式? 共享店铺系统多少钱一套?
- ORA-01045: user ICCS lacks CREATE SESSION privilege; logon denied
- quartus ii 增量编译
- 软件测试前景怎么样?大概要学什么?
- Mysql 的基本命令合集
- 文件和文件流——文件转码失败conversion failed: input document is null after loading
- 发短信之前一定记得检查tmail.exe
- R语言基础入门(学习笔记通俗易懂版)
热门文章
- ZDNS参与的《根服务器运行机构不端行为研究报告》正式发布,全球根服务器安全治理又进一步
- linux下IIC驱动解释
- 萌新面试经,赶紧来看看!
- c语言中整型常量ox,C语言基础教程:数字常量
- 试衣网的商业模式很脆弱
- Python 使用numpy报错:runtimeError: package fails to pass a sanity check解决方法
- 关于Android ViewPager禁止滑动
- 中大计算机考研复试刷人太狠,为何考研初试分数很高的人在复试中被刷?这4个致命失误你犯了?...
- POJ1830开关问题
- oppo怎么广告接入_oppo信息流广告投放操作指南