- 工信部备案号 滇ICP备05000110号-1
- 滇公安备案 滇53010302000111
- 增值电信业务经营许可证 B1.B2-20181647、滇B1.B2-20190004
- 云南互联网协会理事单位
- 安全联盟认证网站身份V标记
- 域名注册服务机构许可:滇D3-20230001
- 代理域名注册服务机构:新网数码
区块链技术起源于2008年,是随着比特币的等数字加密货币的快速发展而逐渐兴起的新一代信息技术。目前,区块链技术处于早期发展阶段,尚未形成行业公认的定义。近些年来,随着比特币等数字货币的快速发展与普及,区块链技术已经逐步渗透到了各个行业中,并且在一些领域中开展并实现了诸多探索性的落地应用。区块链是一种全新的记账模式,有时也被称之为分布式账本技术(distributed ledger technology, DLT),是采用去中心化的点对点的通信模式、网络节点之间直接通信、无需第三方中介的一种数据库技术。如图所示,其基本思想是在网络中建立一个公共账本,这个公共账本是由多个数据区块组成的链条,每个数据区块存储了特定时间内的网络交易信息。区块链由网络上的节点用户共同维护,通过节点用户对区块中的交易信息进行验证和打包,来保证交易数据的真实性。从本质上来讲,区块链可视为是一个去中心化的分布式数据库,它允许用户在没有第三方的情况下完成点对点交易。由于区块链技术采用了加密算法、共识算法等技术,具有去中心化、可追溯性、不可篡改等特点。 区块链的分布式账本作为一种随着比特币等数字加密货币的日益普及而逐渐兴起的全新的去中心化基础架构与分布式计算范式,区块链技术的去中心化、时序数据、集体维护、可编程和安全可信等特点,有助于解决智能制造目前面临的数据安全、信任缺失、数据公开共享困难和激励与生态缺失等问题。区块链技术在助力智能制造方面可能发挥的重要作用可以概括为以下几个方面:1. 数据安全区块链技术有助于保障智能制造系统的数据安全。智能制造是一种由智能机器和人类专家共同组成的人机一体化智能系统,通过人与智能机器的协调合作,扩大、延伸和部分地取代人类专家在制造过程中的脑力劳动。在这个过程中,人与机器的合作与交互一般是基于一系列传感器和控制器采集和获取的数据得以实现的,因而数据安全十分重要。区块链的出现恰好为这个问题的解决提供一个十分可靠的方案。区块链具有去中心化、开放透明、不可篡改、可追溯等特点,其采用带有时间戳的链式区块结构存储数据,从而为数据增加了时间维度,具有极强的可验证性和可追溯性。区块链系统中的每个数据区块都包含一个时间戳和一个与前一区块的链接,一旦某个数据在某个区块中被记录下来,那么它将不可篡改、不可撤销,这种设计使得数据安全得到充分保障。区块链技术能够将制造企业中的传感器、控制模块和系统、通信网络、ERP系统等系统连接起来,并通过统一的账本基础设施,让企业、设备厂商和安全生产监管部门能够长期、持续地监督生产制造的各个环节,保障数据获取和采集的安全和准确性,提高生产制造的安全性和可靠性。同时,区块链账本记录的可追溯性和不可篡改性也有利于企业审计工作的开展,便于发现问题、追踪问题、解决问题、优化系统,极大提高生产制造过程的智能化管理水平。2. 信任缺失区块链技术被称为是“信任机器”,因而有助于弥补智能制造的信任缺失问题。区块链数据的验证、记账、存储、维护和传输等过程均是基于分布式系统结构,采用纯数学方法而不是中心机构来建立分布式节点间的信任关系,从而形成去中心化的可信任的分布式系统。另外,区块链系统采用特定的经济激励机制来保证分布式系统中所有节点均可参与数据区块的验证过程(如比特币的“挖矿”过程),并通过共识算法来选择特定的节点将新区块添加到区块链。去中心化系统设计以及集体维护的特点使得区块链成为名副其实的信任机器,达成了无需传统中介方的信任,实现了价值的自由流通。从本质上来讲,区块链并没有消除信任,而是减少了系统中每个单个参与者所需要的信任量,加之激励机制的设计以保证每个参与者之间按照系统协议来合作,从而实现把信任分配给每个参与者。区块链的可信特点可用于解决智能制造产业链各个环节面临的信任缺失问题。在智能制造流程中,运用区块链技术,任何产品或构件所经历的设计、采购、生产、流通等任何一个环节,及某个环节所涉及的成本、质量、规格等各项信息都可以自证其信,这就使得信息随着产品真实而有效地流通。生产商、供应商、销售商、消费者等各个智能制造主体都共享相同的信息,不存在信息不对称的问题,信息是公开透明的,且具有极高的可信度。在这种情况下,区块链应用于智能制造过程中,其可信的特点将使得诸多基于不信任产生的各项工作可望被免除,例如供应商背景调查,产品质量入货检测等。同时,分布式信任机制还使得一些中介性质的传统第三方平台所承担的中间环节可以被免去,进一步降低了智能制造的实施成本。因此,区块链的去中心化信任特点将解决智能制造的信任缺失问题,帮助各类智能制造主体节约成本、提高效率,从而有助于智能制造的实施。3. 数据公开共享智能制造的决策过程通常需要海量的数据,包括企业内部数据、企业外部数据(例如互联网上相关的开源数据)、整个供应链上的交易数据、整个行业和市场的相关数据、以及相关历史数据和实时数据等。可以说,数据是辅助智能制造中各种决策的重要依据,数据的缺失和不足可能会导致决策困难或错误。然而,由于企业数据的隐私性、企业之间的竞争性、以及市场的动态性和复杂性,制造企业难以获得所有数据。例如,下游供应商很难拿到客户的真实销售数据,从而无法正确判断市场需求。因此,如何寻求一种既能保护数据提供方隐私、又能满足数据共享需求的解决方案,是目前智能制造领域面临的重要难题。区块链技术的出现为解决这一难题提供了一套高效可行的解决方案。区块链数据对于区块链上的各个节点具有公开性和透明性,因此可以实现智能制造领域中各个节点的数据共享。同时,区块链技术利用非对称数字加密技术对数据进行加密,各节点必须得到授权,即对应数据区块的私钥,才能访问该数据,因此,数据在共享的同时也得到了保护。因此,通过区块链技术,智能制造供应链中的上下游企业之间可以实现数据共享,并通过区块链的加密技术对敏感、涉密信息进行加密,从而打破智能制造生态系统中各环节之间的数据孤岛,真正实现数据公开共享。4. 激励与生态区块链技术广泛采用的代币(Token,也可译为通证)等激励机制可以为智能制造系统中目前面临的激励与生态缺失问题提供潜在的解决方案。首先,在激励方面,区块链的代币激励机制可以应用于智能制造系统,通过发放代币的形式对智能制造系统中各参与方设置一定的激励机制,可以有效激发智能制造系统中各参与方的积极性。智能制造生态系统中环节众多,每个环节的正常运行对于整个系统来说都至关重要,通过正向激励机制和负向激励(惩罚)措施的设置,可以有效保障整个生态系统的健康运转,提高生态系统的运行效率。其次,在生态方面,区块链技术可以将原来以厂商为中心的制造模式推进到以用户为中心的制造模式,在这种制造模式下,一切以信息为导向,以用户的需求数据为驱动,这就有利于打通生产方与需求方之间的壁垒,实现双方的信任,并使资源得到最优化配置,从而实现智能制造生态系统中各个环节的开放与共享,使各方以低成本获取高收益,从而形成一个良性可持续发展的智能制造生态系统。
分布式制造系统(distributed manufacture system,DMS)是由小规模制造单元基于物理、数字、通信等新兴技术组成的生产系统,通过实现制造设施的本地化和供应链参与者的全面沟通,促进客户主导的按需生产,提高系统的灵活性、适应性、敏捷性和鲁棒性。分布式智能生产网络DIPNET基础架构分布式制造系统的实现需要满足生产技术、配套服务、基础设施、人才储备等多维度要求。近年来,随着科学技术的发展和人才教育的普及,分布式制造系统的相关技术正逐渐成熟,唯独缺乏一个足够规模、高度联通、安全可信的数字基础设施以高效集成所有关键技术和核心要素。由此导致当前的分布式制造系统大多为标准化可复制模型工厂,普遍存在信息不对称、资源不共享、互动不通畅、响应不迅速、交易费用高、企业自主核心能力弱等问题。区块链作为一种全新的去中心化基础架构与分布式计算范式,具有去中心化、时序数据、集体维护、可编程和安全可信等特点,有望成为集成分布式制造系统各智能组件和组织机构的理想数字基础设施。通过回顾研究文献,我们将分布式制造难点分为互操作与协作难点、安全性与监管难点、市场化与协议难点、民主化组织治理难点与全球化价值链治理难点五类,以下将分别介绍并给出相应的区块链解决方案。难点一:互操作与协作难点,包括中小型企业接入困难、多主体交互困难、任务规划困难和资源调度困难。区块链解决方案:区块链本身就是一个规模足够大的分布式网络,特别是面向全球所有用户的公有区块链更是允许任何人在其中读取公开数据和发送交易,其P2P的组网方式意味着网络中每个节点均地位对等且以扁平式拓扑结构相互连通和交互,不存在任何中心化的特殊节点和层级结构,中小型企业可不受企业本身生产能力约束地自由接入网络并承担生产任务。同时,区块链系统的共识机制可有效解决网络的一致性问题,公开可查、不可篡改的分布式账本保证了所有信息的可靠性和生产任务的可追踪性,根据链上数据建立的规划系统可避免资源冲突问题并在准确及时的信息指导下完成决策任务。难点二:安全性与监管难点,包括身份认证困难、数据安全存储与共享困难、知识产权等法律权利维权困难和监管审计困难。区块链解决方案:基于区块链已开发出许多数字身份认证系统,如:IDhub、MyCUID、e-Resident等,数字版权认证及交易系统,如:版权家、原本、小犀版权链等,电子凭证系统,如:络谱区块链登记开放平台、壹帐链、IP360等。分布式制造系统可以直接集成这些系统以解决身份认证困难、知识产权等法律权利维权困难和监管审计困难。而对于数据安全存储与共享困难,利用区块链本身的加密算法即可实现数据的加密传输和存储,同时,区块链及智能合约技术也可优化分布式制造系统的关键技术——物联网和供应链,为物联网提供可信交互环境,实现复杂流程的自动化,为供应链提供实时可见性,降低欺诈和盗窃风险,保证安全与效率。难点三:市场化与协议难点,包括单一用户参与困难,生产中介难以接入,个性化协议难以达成,生产风险难以归责等。区块链解决方案:区块链智能合约是一种无需中介、自我验证、自动执行合约条款的计算机交易协议,具有去中心化、去信任、可编程、不可篡改等特性,可灵活嵌入各种数据和资产,帮助实现安全高效的信息交换、价值转移和资产管理,最终有望深入变革传统商业模式和社会生产关系,为构建可编程资产、系统和社会奠定基础。基于区块链的分布式制造系统可采用智能合约代替传统合约,类比现有的去中心化交易市场ECoinmerce、Slock.it等建立个性化订单协商市场,供单一用户发布订单和签订合约。同时,由于运行在区块链上的各类智能合约可看作是用户的软件代理(或称软件机器人),智能合约本身即可视为数字化的生产中介或传统分布式系统调度问题中基于代理(Agent)方法的数字化,其不可篡改、自动执行的特性将有利于生产风险归责。难点四:民主化组织治理难点。区块链解决方案:基于区块链和智能合约技术,可演化出各类去中心化自治组织(DAO, 亦称去中心化自治企业,DAC)和去中心化自治社会(DAS)。以DAO为例,智能合约可以将管理规则代码化,代码设定完成后,组织即可按照既定的规则自主运行。组织中的每个个体,包括决策的制定者、执行者、监督者等都可以通过持有组织的股份权益,或提供服务的形式来成为组织的股东和参与者。DAO使得每个个体均参与到组织的治理,从而充分激发个体的创造性,降低组织的运营成本,减少管理摩擦,提高组织决策民主化。此外,编码在智能合约上的各项管理规则均公开透明,也有助于杜绝各类腐败和不当行为的产生。分布式制造系统作为天然的去中心化组织有潜力依托DAO实现智能自治。难点五:全球价值链治理难点。区块链解决方案:区块链技术作为全球共享的分布式账本,可在传递信息的同时传递价值,在一定程度上解决了价值传输过程中的完整性、真实性、唯一性问题,降低了价值传输的风险,提高了传输的效率,有望像互联网一样彻底重塑人类社会活动形态,实现从目前的信息互联网向价值互联网的转变。Token是区块链网络上的价值传输载体,借助Token体系,区块链能够将所有参与者对分布式制造系统及其全球价值链的贡献量化并自动结算,给予相应奖励,使得全体参与者公平地共享系统价值增值,同时,由此催生的“Token经济”、“共享经济”及“社群经济”等新兴经济组织机制也将为分布式制造系统中全球价值链的进化和治理提供更多可行方案。
物联网是指把所有物品通过射频识别(radio frequency identification,RFID)、红外感应器、全球定位系统、激光扫描器等信息传感设备与互联网连接起来,进行信息交换的网络。它可实现智能化识别、定位、跟踪、监控和管理。 图1 物联网原理和结构在物流领域中,企业应用物联网完善业务,需要以提高效率、减少人为错误为目标,利用物联网技术对各类业务中业务流程影响、物流感知信息采集、数据的自动化处理进行分析研究,从分析这些信息中获得收益,以做出更好的决策,对业务流程进行进一步优化。图2为物联网在物流企业的业务应用,通过这些应用,物流企业可以较好地解决车辆调度、行驶安全、责物追溯、全程冷链以及供应链协同等目标,提高物流系统运作绩效。 图2 物联网在物流企业的业务应用一、智能运输利用物联网技术实施运输业务升级的物流企业,需以深度覆盖所服务区域的运输网络平台为基础,提供快捷、准时、安全、优质的标准化服务。通过整合内外物流资源,提供“一站式”综合物流服务,以满足客户对运输业务的个性化需求。物联网技术将用于优化运输业务的各个作业环节,实现运输管理过程的信息化、智能化,并与上、下游业务进行物资资源整合和无缝连接。 图3 物流企业智能运输流程二、自动仓储物流企业仓储物流业务以供应商库存管理为基础,将服务作为其标准化产品。将物联网技术应用于仓储物流业务中,可实现仓储物流管理中的货物自动分拣、智能化出入库管理、货物自动盘点及“虚拟仓库”管理,从而形成自动仓储业务。通过智能及自动化的仓储物流管理,可有效地降低物流成本,实现仓储物流作业的可视化和透明化管理,提高仓储物流服务水平,最终实现智能化、网络化、一体化的管理模式。 图4 自动分拣系统示意图三、动态配送在传统的配送过程当中,交通条件、价格因素、用户数量及分布和用户需求等因素的变化会对配送方案、配送过程产生影响。物联网的引入很好地解决了这一问题,通过对以上影响因素涉及的物体利用物联网感知布点进行信息采集并有效反馈就可形成动态的配送方案从而提高配送效率,提升服务质量。此外,还可为客户提供实时的配送状态信息服务。 图5 物流网技术在物流配送中的应用四、信息服务信息流在物流企业开展物流业务中的作用尤为重要,物流企业之间的竞争可以归结为对信息流控制能力的竞争。物联网作为信息技术领域的第三次革命,可为物流企业提供提高信息传输速度、信息获取能力和信息处理能力,把控信息传输方向等方面的作用,实现物流企业的信息流活动升级,从而提高整个物流的反应速度和准确度,实现物流信息管理与控制的飞跃。各业务流程的信息交互,信息反馈控制,企业与外部信息传递都可以听过物联网技术进行优化,极大地提高物流的运转效率,提升物流企业的信息化水平和基于信息反馈的服务水平。
一、企业物联网应用总体架构图1 总体架构图1.设备层级(装备智能化)包括装置智能化和生产装置示范。装置智能化包括:智能传感仪器、智能检测仪器、智能识别仪器、智能发货装置、智能传输装置等;对应的控制系统为可编程逻辑控制器系统(programmable logic controller,PLC)、设备仪表计划信息数据库(plant information system,PIS)。2.生产线层级(生产过程智能优化与控制)各产品自动化生产线。生产线对应的控制系统为分布式控制系统DCS(distributed control system)、过程控制系统(process control system,PCS)。生产过程智能优化与控制包括:生产过程先进控制与优化、动力系统蒸汽仿真优化、工艺气系统计划优化、装置控制性能优化等。生产优化与控制对应的系统为实时优化(real time optimization,RTO)、先进过程控制(advanced process control,APC)。3.车间层级(数字化车间)应急指挥与联动中心、生产现场智能巡检、气体泄漏检测与修复、生产实时在线监控。车间层级对应的系统为制造执行系统(manufacturing execution system,MES)。4.工厂层级(智能化管理)全厂视频监控管理、智能发货物流管理、WEB GIS管理等。工厂层级对应的系统为实验室信息管理系统(laboratory information management system,LIMS)、企业资源规划(enterprise resource planning,ERP)。5.决策分析层(智慧化决策)云计算、云中心、O2O智能云服务。决策层级对应的系统为商务智能(business intelligence,BI)系统。二、 物联网应用层次结构1.设备层级物联网应用(1)智能传感仪器;(2)智能检测仪器;(3)智能仪表;(4)气体智能探测器。2.产线层级物联网应用(1)装置控制性能优化;(2)工艺气系统计划优化。我们以能化利润最优为目标,采用混合整数规划及非线性数据递归方法,开发能化企业煤化工总体效益优化的模型,对每个生产方案的产品主要性质指标、生产流程、产品调和及对整个生产过程中的成品、半成品的成本、费用情况进行详细分析计算,以指导煤选购、生产操作等。系统可用于企业的短期计划或长期战略规划,如原料选择、产品调合优化、生产计划、投资计划、库存和供应管理、技术评价、确定装置的规模或扩建研究、投资研究等方面,建立最佳生产运行方案,准确为生产经营提供采购、销售、装置运行、操作条件等最佳决策,使企业的经济效益达到最大化。由计划优化系统产生的结果将输入到MES系统的生产计划模块,为企业排产提供数据依据,同时也可上传的企业SAP PP(production planning)模块。生产计划优化系统功能如图2所示。 图2 生产计划优化系统功能依据企业生产计划,根据工厂模型和约束条件,采用线性规划等数学方法,建立计划排产模型,进行自动排产,制定并优化年、季、月、旬或更短周期生产计划。依据各装置产能和各产品效益,结合生产实际情况和化工产品市场动态,快速准确地编制出月度、季度和年度生产计划,实现计划的快速调整和执行结果的跟踪和分析。生产调度与其他生产管理人员可以通过生产计划查询模块完成生产计划的查询和下载,并可以参看计划的调整情况。运用大数据建模技术根据采集到的数据,指导企业运用先进控制技术以及实时优化(简称APC/RTO),由原来的常规控制过渡到多变量大数据模型预估控制,使工艺生产控制更加合理、优化。APC/RTO采用科学、先进的控制理论和控制方法,以工艺过程分析和数学模型计算为核心,以工业大数据平台为工具,以工厂控制网络和管理网络为信息载体,充分发挥DCS和常规控制系统的潜力,保障生产装置始终运转在最佳状态,通过多变量协调和约束控制,提高装置收率和降低能耗,实现卡边操作,以获取最大的经济利益。3.车间层级物联网应用(1)车间生产实时在线监控;(2)生产现场智能巡检(图3);(3)气体泄漏检测与修复。 图3 现场巡检系统系统构成图4.工厂层级物联网应用企业一体化综合管控平台系统架构如表1所示。表1 系统架构(1)应急指挥与联动中心。应急指挥与联动中心,集成了生产、安全、绩效、企业文化等信息,为企业提供安全生产指挥和应急处置服务,实现“精准调度、快速处置、平战结合、以防为主、措施到位、迅速有效”的目标,纵向构建工厂-公司-政府三级应急管理体系;横向实现企业安全生产、公安、消防、电力、交通、医疗、气防、环保、防汛、防台和园区内生命线工程抢险等联动。(2)大数据云服务中心:通过基于“互联网+”技术,建立一个基于O2O的智能服务云平台,在平台上安装各种应用系统,实现线下的知识管理共享服务和线上的实时协同专家指导。利用实时数据库技术,采集装置生产过程和设备关键信息,让企业业务人员能实时监视生产装置和设备的运行,发现生产过程和设备问题、及时提出改进建议,从而帮助化工企业用“互联网+”的方式改变管理模式,提高企业生产力和竞争力。生产过程和设备信息云采集如图4所示。 图4 生产过程和设备信息云采集(3)服务云资源:一个核心平台、三个服务中心——云服务基础平台,云服务管理中心、云服务安全中心、云服务运营中心,其技术构成如下:互联网、虚拟化和分布计算的IT基础架构;高效节能数据中心基础设施;基于ITIL(information technology infrastructure library)业务管理;端到端自动化管理;全面安全保障;业务连续管理和灾难恢复。三、 关键核心技术1.数据采集与分析技术数据采集与分析技术贯穿整个企业物联网应用体系,其平台包含从数据采集、数据存储、数据处理到数据分析整个流程。从设备层级采集到的数据,经过数据存储、处理、分析,在生产线层级、车间层级、工厂层级提供状态感知、预测分析等功能,为各层级功能实现提供了支撑。工业大数据平台的服务器与工业实时数据库在同一网络。在服务器上运行Server,通过Web Server实现信息发布。工业大数据平台系统需要整合多种网络技术和通讯协议,将数据通过大数据工具采用抽取、清洗、转换、汇总等技术统一整合到云计算中心的服务器上。在企业现有的业务平台基础上中,利用大数据工具技术,对产业园区、企业内部的各个功能系统的数据库中抽取、清洗、转换、汇总企业产品数据、供应链数据、设备运行数据、跨企业跨区域的协作数据、市场研究数据等。通过运用大数据的相关技术进行跨地域、大数据量采集。对以上数据源的数据资源进行云存储,平台存储数据主要包括结构化数据和非结构化数据,针对两种数据的特点采用两种存储模式来提供高效的数据存储。对结构化数据采用FC-SAN(fibre channel - storage area network)存储模式:所有服务器通过FC网络连接到FC存储系统,FC存储系统向所有服务器提供块设备级共享存储系统。同时为了保证系统的可靠性,存储网(FC网络)采用双路径设计,如图5所示。 图5 采用FC存储模式的业务区域对非结构化大数据采用并行存储模式:采用大容量存储服务器,通过并行存储区的汇聚交换机万兆上链至核心交换机,实现与业务网段的互联互通,供各个业务分区访问。并行存储系统对外提供万兆以太网接口,用于存储访问。并行存储系统可以通过万兆上联的方式连接到业务网核心交换机,服务器通过业务网络,以NFS(network file system)、CIFS(common internet file system)、私有协议的方式访问并行存储系统。并行存储系统向所有服务器提供文件级高性能共享存储系统,如图6所示。 图6 采用并行存储模式的业务区域2.基于物联网的先进优化与控制技术基于物联网的先进优化和控制技术包含生产过程先进控制与优化、装置控制性能优化、气体泄漏检测与智能修复三部分。生产过程先进控制与优化以甲醇精馏系统为案例,提出了优化策略和控制方法;装置控制性能优化为生产装置提供性能监控、回路整定、性能分析功能;气体泄漏检测与智能修复针对能源化工企业易发生气体泄漏问题的特点,提出了包含传感器、检测仪器、后台分析软件的一整套解决方案。(1)生产过程先进控制与优化;(2)装置控制性能优化;(3)气体泄漏检测与智能修复。3.信息系统高效协作与集成技术信息系统高效协作和集成技术使LIMS和MES与ERP得以集成与数据共享,实现实现检验业务程序化管理,实验室分析仪器数据的自动采集,实验室各种资源如人、机、料、法、环的全面综合管理,质量数据的及时发布和共享、集中查询和统计。MES系统是各级单位实现生产管理相关的各业务流程的信息化管理,通过工厂模型优选、生产可视、信息数字化、生产自动化,实现生产运营及各生产环节的动态闭环管理,最终达到最优化生产的目标。通过采用集成化、标准化的MES系统,企业各级管理人员了解、监督、管理并优化生产运行,改善生产执行层的信息交流以及工作效率,降低制造成本,快速地应对市场的变化。基于企业MES系统建设蓝图,系统技术架构支撑企业的MES系统的深化和扩展应用,实现各个系统的集成应用。MES系统则以操作流为核心,关注物料在实际生产操作中的流动关系,即操作流、物流、信息流的“三流合一”。MES系统作为基础生产信息平台,涵盖生产运营管理中的各个中间过程,从原料的进厂到生产装置生产、直到产品出厂,通过MES信息平台可以清晰的看到企业在采购、生产、销售、库存,所有物料流动的全过程,并以“日平衡、旬确认、月结算”为追求目标,每日平衡对照生产作业计划,每旬平衡微调生产计划,每月结算平衡数据支撑ERP系统。通过MES系统实施,建立了企业核心数据库,统一了业务操作平台,统一了数据源和数据编码,保证了业务数据的一致性,实现了数据共享,提高了不同部门间的协同工作效率,使生产管理部门从繁重的数据收集工作中脱离出来,走向数据分析和深层次管理,为领导层的经营决策提供了及时、真实的参考依据。节省大量的人工数据收集工作的劳动成本,提高了劳动效率。实现统一的数据源,实现调度与统计数据的一致性,提升生产数据的及时性、准确性和完整性,规范企业的生产业务流程,提高生产管理效率,实现了生产调度协同指挥,实现“日平衡、旬确认、月结算”,通过跟踪物流,发现问题,提升了企业精细化管理水平,掌握生产过程损失情况,降低加工损失率,提高综合商品率,为企业节能降耗提供了数据支持,促进了生产经营管理决策和专业化重组。MES系统业务流程如图7所示。图7 MES系统业务流程LIMS是通过计算机对实验室人(人员)、机(仪器)、料(样品、材料)、法(方法、质量)、环(环境、通讯)全面综合管理的计算机应用系统,是一套完整的实验室管理和产品质量监控体系,既能满足日常生产的质量管控的要求,又能监督实验室按照标准ISO17025高效运行,其架构如图8所示。 图8 LIMS架构4.虚拟及云化技术企业物联网运用虚拟及云化技术为大数据云服务中心提供基础支撑,具体以云计算和云中心分别提供软件支撑和硬件支撑。企业利用云计算技术,建立云计算中心,重构企业IT支撑架构,整合IT资源,提高IT资源的利用率,降低IT资源消耗,提升运营效率,提高信息安全,实现集中统一管理;提供信息基础设施、数据存储、信息处理和应用软件等业务的云服务,增强服务的灵活性、多样性和新颖性,形成“大平台、大服务”的经营理念和模式。四、效益分析1.经济效益(1)有效提升生产安全管理水平。物联网技术提升现场感知能力,设备和系统的集成和协同有助于及时发现安全隐患,实现智能联动和有效预警。(2)有效提高生产设备管理水平,实时掌握生产装置和设备运行状态,优化操作,有效避免过度维修,大大降低生产运行和维护成本。(3)有效提升在生产工艺诊断、设备状态监测与诊断等方面的技术能力,通过云平台有助于生产经验知识的积累和生产服务的深度运用。(4)有效提升企业精细化管理水平,掌握生产过程资源消耗和现场生产情况,结合市场价格动态数据,科学优化排产,降低加工损失率,提高综合产品能力。(5)经济利益:装置处理量增加10%~15%;能耗可降低10%~15%;运行维护成本降低15%~20%。2.社会效益(1)国家发展和政策支持:智能制造是当前和今后一个时期推进两化深度融合的核心目标,是建立国家制造业创新体系的关键。(2)企业产业转型升级要求:探索工业4.0应用的智能型生产的创新模式,促进产业转型升级;建设绿色环保型企业。(3)企业生产和管理提升要求:以生产制造环节智能化为支撑,有效缩短产品研制周期、降本增效、降低资源能源消耗;为提高企业内控及管理水平以及支持企业新的发展战略提出的需求。
典型的物联网系统架构共有3个层次。一是感知层,即利用射频识别(radio frequency identification, RFID)、传感器、二维码等随时随地获取物体的信息;二是网络层,通过电信网络与互联网的融合,将物体的信息实时准确地传递出去;三是应用层,把感知层得到的信息进行处理,实现智能化识别、定位、跟踪、监控和管理等实际应用。在工业环境的应用中,工业物联网面临着与传统的物联网系统架构两个主要的不同点:一是在感知层中,大多数工业控制指令的下发以及传感器数据的上传需要有实时性的要求。在传统的物联网架构中,数据需要经由网络层传送至应用层,由应用层经过处理后再进行决策,对于下发的控制指令,需要再次经过网络层传送至感知层进行指令执行过程。由于网络层通常采用的是以太网或者电信网,这些网络缺乏实时传输保障,在高速率数据采集或者进行实时控制的工业应用场合下,传统的物联网架构并不适用。二是在现有的工业系统中,不同的企业有属于自己的一套数据采集与监视控制系(supervisory control and data acquisition,SCADA,在工厂范围内实施数据的采集与监视控制。SCADA系统在某些功能上会与物联网的应用层产生重叠,如何把现有的SCADA系统与物联网技术进行融合,例如哪些数据需要通过网络层传送至应用层进行数据分析;哪些数据需要保存在SCADA的本地数据库中;哪些数据不应该送达应用层,它们往往会涉及到部分传感器的关键数据或者系统的关键信息,只由工厂内部进行处理。工业物联网的系统架构需要在传统的物联网架构的基础上增加现场管理层。其作用类似于一个应用子层,可以在较低层次进行数据的预处理,是实现工业应用中的实时控制、实时报警以及数据的实时记录等功能所不可或缺的层次,如图1所示。 工业物联网体系架构一、 感知层感知层的主要功能是识别物体,采集信息和自动控制,是物联网识别物体、采集信息的来源;它由数据采集子层、短距离通信技术和协同信息处理子层组成。数据采集子层通过各种类型的传感器获取物理世界中发生的物理事件和数据信息,例如各种物理量、标识、音视频多媒体数据。物联网的数据采集涉及传感器、RFID、多媒体信息采集、二维码和实时定位等技术。短距离通信技术和协同信息处理子层将采集到的数据在局部范围内进行协同处理,以提高信息的精度,降低信息冗余度,并通过具有自组织能力的短距离传感网接入广域承载网络。感知层中间件技术旨在解决感知层数据与多种应用平台间的兼容性问题,包括代码管理、服务管理、状态管理、设备管理、时间同步、定位等。在有些应用中还需要通过执行器或其他智能终端对感知结果做出反应,实现智能控制。该部分除RFID、短距离通信、工业总线等技术较为成熟外,尚需研制大量的物联网特有的技术标准。感知层由现场设备和控制设备组成,主要进行工业机器信息的感知以及控制指令的下发。现场设备主要包括温度传感器、湿度传感器、压力传感器、RFID、电动阀门、变送器等,这些设备直接与工业机器相连,担当着感知控制过程的末稍机构。控制设备主要指PLC等控制器,在工业系统中,PLC等控制器用于实现较底层的高速实时的控制功能,对于工业控制尤为重要。控制设备与现场设备组成了现场总线控制网络,如常用的CAN总线网络、Profibus 总线网络等。值得一提的是,工业无线传感器网络WISN作为物联网技术的重要组成部分,通过网关可与现有的现场总线网络并存。WISN以其高可靠、低成本、易扩展等优势被广泛应用于感知层的实现中,在环境数据感知、工业过程控制等领域发挥着巨大作用。二、现场管理层现场管理层主要指工厂的本地调度管理中心,即如上文所述的SCADA系统。调度管理中心充当着工业系统的本地管理者以及工业数据对外接口提供者的角色,一般包括工业数据库服务器、监控服务器、文件服务器以及Web网络服务器等设备。现场管理层作为区别于传统物联网系统架构的一个层次,在工业物联网系统中起着重要作用。现场管理层融合了现有的工业监控系统,它的存在使得来自感知层的部分关键工业数据能得到及时的记录与处理,对于一些对实时性有要求的较底层的过程控制指令,它能快速响应,及时做出控制决策。另一方面,现场管理层起到了对外提供数据接口的作用,通过数据库服务器以及Web网络服务器,调度管理中心可以把来自于工厂内部的数据通过网络层发布到应用层,应用层可以透明访问到不同工业机器上的感知信息,对进一步的数据分析工作起到了重要作用。三、网络层网络层由互联网、电信网等组成,负责信息传递、路由和控制。网络层将来自感知层的各类信息通过基础承载网络传输到应用层,包括移动通信网、互联网、卫星网、广电网、行业专网,及形成的融合网络等。根据应用需求,可作为透传的网络层,也可升级以满足未来不同内容传输的要求。经过十余年的快速发展,移动通信、互联网等技术已比较成熟,在物联网的早期阶段基本能够满足物联网中数据传输的需要。网络层主要关注来自于感知层的、经过初步处理的数据经由各类网络的传输问题。这涉及到智能路由器,不同网络传输协议的互通、自组织通信等多种网络技术。其中,全局范围内的标识解析将在该层完成。该部分除全局标识解析外,其他技术较为成熟,以采用现有标准为主。 四、应用层应用层实现所感知信息的应用服务,包括信息处理、海量数据存储、数据挖掘与分析、人工智能等技术。应用层是工业物联网的最终价值体现者。应用层针对工业应用的需求,与行业专业技术深度融合,利用大数据处理技术对来自于感知层的数据进行分析,主要包括对生产流程的监视、对工业机器运行状况的跟踪、记录等,最终产生对企业、行业发展有指导意义的结果,如优化生产流程、指导生产管理、提高经营效率、预测行业发展等,实现广泛的智能化。不同的企业之间更能互相共享大数据的分析处理结果,对于促进企业间协同生产整体生产力有着巨大作用。应用层主要包括服务支撑层和应用子集层。物联网的核心功能是对信息资源进行采集、开发和利用,因此这部分内容十分重要。服务支撑层的主要功能是根据底层采集的数据,形成与业务需求相适应、实时更新的动态数据资源库。该部分将采用元数据注册、发现元数据、信息资源目录、互操作元模型、分类编码、并行计算、数据挖掘、数据收割、智能搜索等各项技术,亟需重点研制物联网数据模型、元数据、本体、服务等标准,开展物联网数据体系结构、信息资源规划、信息资源库设计和维护等技术;各个业务场景可以在此基础上,根据业务需求特点,开展相应的数据资源管理。业务体系结构层的主要功能是根据物联网业务需求,采用建模、企业体系结构、SOA等设计方法,开展物联网业务体系结构、应用体系结构、IT体系结构、数据体系结构、技术参考模型、业务操作视图设计。物联网涉及面广,包含多种业务需求、运营模式、应用系统、技术体制、信息需求、产品形态均不同的应用系统,因此必须统一、系统的业务体系结构,才能够满足物联网全面实时感知、多目标业务、异构技术体制融合等需求。各业务应用领域可以对业务类型进行细分,包括绿色农业、工业监控、公共安全、城市管理、远程医疗、智能家居、智能交通和环境监测等各类不同的业务服务,根据业务需求不同,对业务、服务、数据资源、共性支撑、网络和感知层的各项技术进行裁剪,形成不同的解决方案,该部分可以承担一部分呈现和人机交互功能。应用层将为各类业务提供统一的信息资源支撑,通过建立、实时更新可重复使用的信息资源库和应用服务资源库,使得各类业务服务根据用户的需求随需组合,使得物联网的应用系统对于业务的适应能力明显提高。该层能够提升对应用系统资源的重用度,为快速构建新的物联网应用奠定基础,满足在物联网环境中复杂多变的网络资源应用需求和服务。该部分内容涉及数据资源、体系结构、业务流程类领域,是物联网能否发挥作用的关键,可采用的通用信息技术标准不多,因此尚需研制大量的标准。除此之外,物联网还需要信息安全、物联网管理、服务质量管理等公共技术支撑,以采用现有标准为主。在各层之间,信息不是单向传递的,是有交互、控制等,所传递的信息多种多样,其中最为关键的是围绕物品信息,完成海量数据采集、标识解析、传输、智能处理等各个环节,与各业务领域应用融合,完成各业务功能。因此,物联网的系统架构和标准体系是一个紧密关联的整体,引领了物联网研究的方向和领域。
一、 企业物联网应用总体架构如图1所示,智能工厂整体业务模型自底向上包括设备层、集成层、核心业务层、透视层。设备层是基础,包括生产加工、物料配送质量检测等设备;集成层主要指系统集成和数据集成,系统包括企业资源计划(enterprise resource planning,ERP)、目标管理(management by objectives,MBO)、制造执行系统(manufacturing execution system,MES)、统计过程控制(statistical process control,SPC)、模块控制(block control,BC)、物料控制系统(material control system,MCS)等,数据集成包括虚拟产品、虚拟产线、虚拟设计、虚拟制造等来源数据;核心业务层主要包括生产管控、质量管控、物流管控、计划管控;透视层包括设备可视化、工序可视化、车间可视化、工厂可视化、企业可视化。图1 智能工厂的总体架构二、 物联网应用层次结构1.设备层级物联网应用(1)数据采集与分析:通过物联网技术,实时采集物料信息,包括物料编码、物料的位置、物料的状态、库存信息、各批次物料的使用状态与加工状况、缺料信息等。这些信息被采集后,由物流管控系统对其进行处理和分析,实现对物料的高效调度,降低物流成本。并在此基础上对物料在生产过程中使用的数量和质量进行准确的统计分析,从而得出不同物料的最佳使用数量,生产管理系统通过与ERP系统进行对接与数据共享,即可为物料的采购计划提供科学依据。(2)设备互联互通:智能化的生产设备需要主动地感知生产环境的变化,主动采取相应控制策略进行自我调整、自我学习,实现生产过程的稳定运行;智能化的生产设备将相关的信息通过工业数据总线或物联网及时、准确、完整地传递到其他设备和系统,不但实现单个设备的智能化,而且实现整套生产工艺设备的互联互通,确保整个生产工艺过程处于优化运行状态,降低物料和能源的消耗,提高产品的质量;智能化的生产设备具有强大的自诊断能力,在实现有效的设备资产管理的同时,能够借助大数据分析,实现生产设备的预测性维护,降低非计划停机的可能性。从底至上从设备层到控制层再到车间管理层,最后到企业层全部互联互通。(3)智能化设备维护与故障预警:如图2所示,智能化设备维护与故障预警系统包括:通讯控制器、驱动控制、设备上位机、报警灯、报警看板、邮件、短信。设备I/O板连接上下游设备,实现整条线的连接,设备的PLC与整条线的PLC进行连接,实时监控设备状态。设备的运行状态,报警信息,产品信息都可实施上报系统。设备上人机界面便于对设备的单机操作,设备的PC单元用于记录设备的运行状态,并与服务器连接,实施上报生产数据,便于追溯跟踪。 图2 智能化设备维护与故障预警系统架构图SPM—智能流程管理;oracle—关系数据库管理系统2.产线层级物联网应用(1)生产过程监控:根据事先约定的编码及读码原则为每种/每件/每框产品生产二维码。每种/每件/每框产品有唯一一个ID,此ID其代表产品始终,一直可追溯到客户端。可将VCR装置安装于每条产线上,用于读取产品二维码来识别产品信息。每台读码器要有可识别的ID,用于工作状态的监控。实时将数据上报给MES。整个生产过程监控的的技术架构体系如图3所示。图3 生产过程监控的技术架构(2)生产过程智能优化控制:SPC的作用在于通过收集制造过程中的检验数据,依据统计原理建立制程管制程序及方法,以改善制程能力及提高产品质量、良率。SPC系统架构如图4所示。主要是通过SPC系统实时传递数据,通过互联网实现了数据收集、实时控制、异常处理、报表生成、统计分析与查询,且在同一页面可以监控一个控制特性的过程状态,数据表和不同的控制图表。 图4 SPC系统架构EDC—电子数据捕获系统;BRM—企业商务资源管理系统(3)产线互联:光纤网,光纤网是设备和设备之间连接的网络,通过可编程控制器(PLC)在设备之间传输信号;无线物联网,无线物联网(IOTs)通过射频接受装置采集设备端使用的能源数据,以自动组网的方式通过Gateway将数据传输到以太网上;以太网,车间控制系统位于无尘室外面的服务器机房,通过以太网与产线控制系统连接;通过将各种信息系统(MES,ERP,QMS,EMS)的相关信息(能耗、生产,质量,设备、成本)集成起来,实现互联互通。3.车间层级物联网应用(1)智能在线检测:在线自动检测设备(AOI)(图5)对产品进行CCD图像传感器摄取成像,提交给影像处理卡进行处理,处理后交由主控制电脑进行分析,根据设定数据模型演算,并输出结果。系统包括:光源、CCD影像采集处理装置。CCD影像采集处理装置主要由影像采集卡、影像处理器、主电脑、PLC控制运输系统和输出装置组成。 图5 在线检查机AOI的硬件结构(2)数字化物流跟踪:车间物料跟踪系统包括仓库管理过程监控、物料状态监控、配送作业监控、运输工具监控以及线边库存监控。通过物联网技术实现对物料和物料运输工具的实时定位、追踪与监控,获取物料和运输工具的状态和位置等信息,并可以通过对这些信息的分析实现对物料的高效调度。(3)车间互联:智能制造的首要任务是信息的处理与优化,车间内各层网络的互联互通则是其基础与前提。无论是工业云,还是工业大数都需要车间工厂的互联互通和数据采集与交互来支持。可以通过无线物联网和互联网,将车间层管理系统与企业层管理系统连接起来,实现车间互联。在建立各业务领域的信息化基础平台的基础上(如MES,生产计划、ERP,QMS,EMS)实现各种资源的互联互通。实现车间互联能够将实物在车间中的全生命流程通过信息化透明的展现。使实物的数量,状态,位置清晰的体现,使用户能够更好地掌握车间情况。通过打通从车间领料到成品下线的全业务流程,将物料的信息相互串联,更好的进行追溯管理。通过数据采集和分析,也可为管理层的决策提供了准确的依据。4.工厂层级物联网应用工厂互联是顺应全球新工业革命以及互联网时代的潮流,对大规模生产转型大规模定制的创新性探索,是互联网转型的重要组成部分。与传统工厂不同,互联工厂实现了与用户相连,目标是从“产销分离”到“产消合一”,满足用户无缝化、透明化、可视化的最佳体验。通过建立起互联工厂体系,打造互联工厂的引领样板,可实时、同步响应企业全球用户需求,并快速交付智慧化、个性化的方案。通过工厂互联可以将工厂的各方面能力清楚地反应,达到对工厂生产作业的管控目的。通过系统中的实时监控,使用户能够清晰了解对应计划的施行状态与流程进度。在生产过程中或生产结束后对于产品存在争议时,也能更好的追溯,及时查到问题所在。从底至上从设备层到控制层再到车间管理层,最后到企业层全部互联互通。设备层包括自动化设备和智能设备,自动化设备内部包括驱动器、传感器、模拟量I/O、执行器。设备与设备之间通过设备的现场总线设备进行I/O(Handshake)、I/O(Grass data)互联互通。工厂设备层与控制层BC产线控制之间的互联互通是通过Master PLC来实现。控制层与车间管理层的MES、SPC的互联互通使通过以太网实现。最后是车间管理层与企业层的ERP、SPM、MBO、EMS。工厂可视化。在生产第一线提升生产率、效率化、提高品质、削减成本、降低能耗,是制造业一直不断改进完善的课题。实施建立工厂可视化系统,可实时追踪生产现场的生产运转情况、品质信息、能源消耗量等数据,通过在信息系统灵活运用生产现场的可视化信息,可大大提高工厂的效率和生产率。同时,部署可视化监控中心和电子看板,可以对生产过程实时可视化监控,使得生产情况一目了然,对在制品过库存或库存不足、生产进度与计划差异、库存周转速度、产品质量等,进行监督和管理。集成监控信息,综合应用电子化看板、移动终端等,查询、监控跨地域的生产、工时、质量、物料等信息。监督和控制生产现场的制造执行和协同作业,提高传递效率,提高执行力。5.决策层级物联网应用决策可视化的内容包括:工厂的销售状况,订单执行状况;整体的能耗状况;工厂整体的库存状况以及库存周转率;工厂整体的设备管理效率的各项KPI;工厂整体的各项成本,财务KPI;工厂整体的环境状况等。基于可视化的智能决策如图6所示。 图6 基于可视化的智能决策三、关键核心技术1.面向设备/工序/现场/工厂的可视化技术面向设备、工序、现场、工厂的可视化技术可视化技术具体包括设备可视化、工序可视化、现场可视化、全工厂可视化,如图7所示。 图7 智能制造工厂可视化通用技术通过可视化,将不明状况数字化,通过关键KPI的展示。实现工厂整体的可视化并以此为视角展开工厂整体的透明化,通过洞察力促进工厂发现问题,并改善问题。2.互联互通技术以无线物联网(IOTs)技术对自动化设备和智能设备能源消耗量采集改造,建立能源消耗的固定能源、变动能源和与生产相关联的能源三段式管理。通过现场IOTs技术的应用将4M+E(人、机、料、法、环)数据化,同时建立实际数据在虚拟工厂中的现象路径。在建立各业务领域的信息化基础平台的基础上(如MES,生产计划、ERP,QMS,EMS)实现各种资源的互联互通,通过对各业务系统数据的关联实时分析建立模型,实现生产模型化分析决策、过程量化管理、成本和质量动态跟踪以及从原材料到产成品的一体化协同优化。通过智能感知接口标准,完成制造装备间的互联互通,工序的互联互通,车间的互联互通、工厂的互联互通和企业的互联互通。互联思想是从互联互通视觉展开,包括设备互联、产线互联、车间互联、工厂互联,最后形成决策云。3.基于制造物联的生产过程精益管控技术通过协同制造环境支撑关键技术,包括传感器组网与优化配路技术、多源数据感知和多网传输技术、数据汇聚与服务技术、全生命周期信息动态管理技术,为制造协同技术推广奠定应用基础。(1)设备管控:生产设备作为一个公司最重要的资产之一,通过提高设备的利用率及产能,降低设备发生故障的机率,是帮助“3C”企业提高利润、降低成本的一个重要途径,全面实现设备效率、异常信息反馈及维护保养的电子化、网络化、智能化,同时实现设备状态的实时集中监控、实时报警,使每台设备都成为一个子智能中心,各子智能中心共同组成一个智能网络,为管理层提供实时的数据信息,全面提升企业的管理能力。(2)产线管控:对于生产线工序、人员、设备等做产线平衡分析,对生产的全部工序进行平均化,调整作业负荷,以使各作业时间尽可能相近。消除作业间不平衡的效率损失以及生产过剩。公司综合运用生产线管理理论,包括生产线平衡、改善七大手段、鱼刺因果分析、生产线改善原则和方法、生产线的生产过程可视化等精益生产技术。(3)车间管控:健全车间生产组织,合理组织生产。加强劳动组织、加强工艺纪律、建立车间指标体系。根据厂部下达的计划任务,为车间各工段安排生产和工作任务,组织均衡生产,使人、财、物能够得到有效地运转,取得最优的经济效益。完善车间管理制度。车间在贯彻企业各项规章制度的前提下,要结合自身的特点,按照经济责任制的原则,制定各项管理制度以及车间内部职能组、工段、班组等各项组织和车间主任、职能组长、工段长、班组长、技术人员、工人等各类人员的工作职责、工作标准。(4)工厂管控:利用计划、组织、用人、指导、控制等活动,对生产过程和生产者进行管理,包括工厂可视化管理、工厂物流管理、仓储管理等模式。(5)决策管控:站在企业的战略决策视角,主要分析在今天这个急剧变化的市场上,高效的业务决策管理可以带来重要的竞争优势。包括战略目标、战略规划、产品市场分析、相关利益方分析、企业之间的横向集成、大数据分析决策等。4.基于制造物联的生产过程多信息资源集成在产品制造过程中,将物联网技术与制造技术有机融合,实现生产现场设备信息集成、多信息系统数据集成、智能产品信息集成、供应链物流信息集成以及仓储信息集成技术等多信息资源有效集成,完成多源信息技术的融合,开创新型生产制造模式与管控模式。5.制造过程信息实时跟踪与追溯技术采用面向质量目标的在线质量监测与控制技术,实现对车间生产过程的质量监控,将最新的在线测量和现代质量控制技术相结合,以最低制造成本实现最佳的配合质量和预期的质量目标,实现制造过程的质量监测与控制,保持制造过程产品质量的稳定性,为系统提供真实、有效、充足、实时的制造质量信息。可通过条码、设备参数等手段,采集物料信息、质量特性,建立采购生产制造销售全过程跟踪和管理。实时跟踪与反馈制造过程信息,提升对制造过程的掌控、调度能力,实现敏捷制造;整合采购、制造、销售全过程物料信息,形成从原材料到成品的多维度产品追溯,提升产品质量追溯能力。构建物联网,同时实现MES系统与关键质量控制点的检测设备的集成,可直接读取设备中的质量检测数据与MES系统实时集成,通过前后关联与验证功能,能够提高生产过程的防错能力,降低质量不良损失。通过对制造过程信息进行采集,以及制造过程信息统计分析与关联集成技术,建立制造过程的关键节点与关键路径,实现制造过程信息的正向跟踪与产品质量的反向追溯,以及因订单执行异常、产品质量异常等事件的分析与预警。四、效益分析1.经济效益通过实现智能设备互联、信息系统的构建和集成和供应链的信息集成,可以提高智能制造能力,更快速、敏捷地对应客户需求,提高供应链效率,降低制造成本,提升企业核心竞争力。同时,通过对“3C”行业智能制造智能化车间的改造,以及对工业互联网的融合应用,可以实现产能的提升,缩短产品的研发周期,提高产品效率,降低整体运营成本和不良品率,以及整体安全性的提升有显著作用。2.社会效益(1)促进我国传统制造系统的管理模式向精益制造模式发展;(2)促进数字化技术在制造领域的深化应用与牵引示范;(3)促进物联网技术在制造领域的深化应用与牵引示范。
工业互联网系统安全首先要求介入网络的任何设备自身是安全的,即任何工业互联网设备必须是以工业用途为使用目的,不是以获取信息或黑客行为需求,所有介入设备必须进行高级别的安全认证。其次是网络本身的安全,工业互联网时代的信息不仅分布在云端,也遍布于各地的超级计算终端、移动终端、传感器或其他万物互联设备上,既要保证互联网万物互联中各接口的安全,还要保证传输网络的安全,特别是无线传输的安全,所以网络安全监测技术非常重要。其三是完备的包括冗余和恢复机制的系统安全应急措施,当系统受到攻击或因攻击崩溃时,系统有强大和快速的应急方案,保证系统在不间断情况下正常工作。一、区块链简介区块链是一种分布式数据库,通过保存不断增加的记录,也就是区块,以至于不会被篡改。其分布式特性意味着没有控制整个链的主计算机,每个参与节点保存一份记录,数据记录可以无限制新增,如果想要在链上添加交易记录,必须获得网络中所有参与者的认可,用一种算法验证其有效性。区块链系统决定有效的定义,并因系统而有所差异,然后由大多数参与者决定其是否有效。所有有效交易集合到一个区块中,发送给所有网络节点,由他们验证新的区块,每个新的区块对应一个哈希值,也就是前一个区块的独特指纹。区块链的一大优势是其公开性,每个参与者可以看到存储的交易和区块。当然交易的具体内容受到私钥保护,并不是任何人随意查看的。区块链是去中心化的,因此单个机构不可以授权交易或者规则,也就是说在交易验证方面达成共识,形成极大共识。最重要的还是安全性,该数据库只可以扩充,不可以变更,至少变更的成本是极大的。随着互联网和区块链技术的发展以及各行业对互联网的依赖,区块链技术将得到更广泛的应用。区块链的去中心化能提供安全的环境,实现真正意义上的分布式系统;去信任化以及智能合约增强了互联网中的互信机制,降低了成本;时序数据和数据加密保障了互联网中的数据安全。总之,区块链能够加强互联网应用层、网络层、感知层的安全性。互联网增强了物和物之间的联系,区块链给这种联系提供了安全保障。对于区块链对互联网安全的更多作用,需要未来更深层次的研究与探索。二、 区块链的工作原理区块链是由有序区块连接形成的长链结构。区块是包含相关信息和交易记录等全体数据的容器,每一种区块链的区块结构设计可能不完全相同,但一般区块主要由包含元数据的区块头部和记录交易过程的区块主体组成,它是形成区块链的基本单元。区块的结构如图1所示。其中区块头部除版本号元数据外,其余部分可以分成三个部分:(1)链接到前一个区块的哈希值:用于和上一个区块链接起来,是区块形成“链”的关键;(2)与产生交易相关的目标哈希函数、时间戳和随机数,其中时间戳记录本区块生成的时间,随机数是用于工作量证明算法的计算器;(3)用来总结区块中所有交易并快速检验交易数据存在性和完整性的Merkle根。区块体保存区块创建过程中所有发生的经过验证的交易记录。区块与区块之间通过哈希的值建立对应的链接关系,一条完整的区块链就产生了。 图1 区块的结构区块链的工作原理见图2。在比特网中,若A要发送比特币给B,其过程如下:①创建交易单。A用B的公钥加密上一次交易,算出哈希值;再用自己的私钥对该哈希值进行加密得到A的数字签名后,将该数字签名附加到比特币的末尾,制成交易单。②传播交易单。A将交易单广播至网络告诉其他结点有关交易的信息,每个结点将收到的交易单纳入一个区块中。③验证交易有效性。全体参与者通过验证哈希值验证交易的有效性,即每个结点反复尝试寻找一个数值,使得该数值、区块链最后一个区块的哈希值以及交易单三个数值经过Hash256算法后能计算出散列值X,满足一定条件(如前20位均为0),就认为找到解,从而获得创建新区块的权利的同时也得到比特币的奖励。④传递验证结果。第一个算出结果的结点,得到系统给予的比特币奖励,也向全网广播这个消息。网络中其他节点收到消息后,对区块进行验证,如果得到全部参与者一致认可后,加盖时间戳后被添加到区块链中形成一条永久的记录。⑤完成交易。在分布式记账本中对A、B资产分别进行增加,完成交易。图2 区块链的工作原理相应地,在工业互联网领域,很多专家认为区块链技术可以弥补工业互联网的隐私性、可靠性不足等缺陷。它可以追踪几十亿互联的设备,支持交易处理、设备对接,为该产业制造商节省大量成本。这种去中心化方式可以消除单点故障,为设备营造良好的运行环境。区块链使用的加密算法可以使用户数据更加安全,区块链账本可以防止恶意篡改,因为它不存在于任何单一地点;中间人攻击也无法奏效,因为任何通讯都会被拦截。区块链可以实现去信任的点对点通信,并且已经通过比特币等加密货币证明了它在金融服务行业的价值,提供了无需第三方的安全点对点支付服务,完全颠覆了我们对金融科技的概念。去中心化、自治、去信任化等区块链特性使其成为工业联网解决方案的基本元素。因此工业互联网领域采用区块链技术就并不稀奇了,区块链可以保存不可篡改的互联网智能设备历史记录,可以保证智能设备的自主性,不需要中心化机构。因此可以说区块链开启了前所未有的工业互联网模式,比如利用区块链技术的工业互联网解决方案可以保证网络的通信安全。区块链最惊人的功能是在网络中实现完全去中心化、可信任的交易账本,这对于工业互联网应用独立于中心化机构,独立实现合规性要求具有不可替代性意义。区块链对工业互联网的意义可总结为三点:搭建信任、减少成本和加速交易。三、基于区块链的工业互联网安全应用案例1.面向M2M安全的区块链总体设计区块链技术的特征和工业互联网中M2M的技术要求在一定程度上是相融的,具体体现在:(1)区块链技术和M2M都体现了分布式,去中心化思想。区块链技术中,不存在中心化的数据库,每个节点都保存了区块链的全部信息。机器设备之间(M2M)的互联互通是工业互联网中的关键技术,它可以是机器对机器、机器对机器集群、机器集群对机器集群。不管是哪种形式的M2M,或者是点对点、或者是点对多点、或者是多点对多点的通信,无不体现分布式,去中心化。(2)区块链和M2M都对安全要求较高。区块链技术建立的是一种无需任何信任或依赖的系统,采用数字签名、加密技术等确保信息的安全。M2M系统中,信息在传输和存储过程中的机密性、完整性、可用性、真实性及不可否认性的要求也很高。每个应用领域有其自身的特殊性,如军事系统、电力系统、医疗系统及制造系统,对信息安全的要求也有些差别,就整体而言,信息的安全还是第一要素。(3)区块链和M2M在信息的可溯与共享上高度一致。区块链技术中可以通过连接到上一个区块的哈希值查看整个区块链交易过程的信息,历史信息得到有效共享。M2M系统中,特别是在制造领域,追溯历史数据找到可能影响产品质量的关键因素,通过改进工艺提高产品质量;筛选历史数据发现容易出现机器故障的生产环节,通过优化机器保养方法降低机器故障;共享供应链上的相关数据找出可以减少投入的环节以降低生产成本。因此,在保证数据吞吐量和数据可扩展的基础上,要做到数据可靠,即数据可用、可信赖、完整、安全和可维护等,则要求数据发送方发送的数据真实、合法、规范,数据发送要保密且发送过程可记录、可查询、可追溯;接收方只能接收从发送方发送的数据不能再转发,接收数据过程可记录、可查询。针对工业互联网的M2M通信系统,提出如图3所示的区块链设计。 图3 面向M2M安全的区块链的总体设计在图3中,公共网络区是以工业物联网为基础,搭建设备通信平台以保证各类设备正常通信;审核设备注册与访问认证,实现设备之间连接与通信;规范数据格式和通信规则;维护公共网络区块,查询通信记录。若因设备故障无法正常工作须停机更换设备,或因生产需要更新设备时,新设备以注册新成员的方式接入到生产线中。新设备将一个标识自己身份的信息(如数字证书)发送给公共网络区,申请注册。新设备的申请被审核通过后,其注册获得成功。公共网络区将新设备的数字证书与其身份建立对应关系,并将该设备的公钥放入公共网络区的公钥池,同时将该设备作为一个新的区块链接到机器设备区块链(machine & equipment blockchain, M-EB)中;设备区是连接公共网络区和私有区的通道,接收来自公共网络区的消息,传递来自私有区查询要求和查询结果。公共网络区接受新设备注册后,用其公钥对加密数字证书进行验证,确认该设备身份后,接受其访问公共网络区,此时,新设备便可参与M2M通信;在私有区中可建立记录机器设备间通信过程的区块,保存通信过程的数据,接受对外部的查询或者对外发起查询以获取外部的相关数据。2.公共网络区的机器设备区块链设计在CPS中,若因设备故障无法正常工作须停机更换设备,或因生产需要更新设备时,新设备以注册新成员的方式接入到生产线中。新设备将一个标识自己身份的信息(如数字证书)发送给公共网络区,申请注册。新设备的申请被审核通过后,其注册获得成功。公共网络区将新设备的数字证书与其身份建立对应关系,并将该设备的公钥放入公共网络区的公钥池,同时将该设备作为一个新的区块链接到机器设备区块链(Machine & Equipment Blockchain, M-EB)中。机器设备区块链的结构图如图4所示。公共网络区接受新设备注册后,用其公钥对加密数字证书进行验证,确认该设备身份后,接受其访问公共网络区。此时,新设备便可参与M2M通信。图4 机器设备区块链结构图M2M技术实现的是一种通信机制,其目标是使所有机器设备具通信能力,旨在实现机器和系统三者之间的智能化、交互式的无缝连接。为了保持数据的完整性和减少数据冗余,公共网络区对CPS中的任意M2M终端的通信数据格式进行规范化定义;同时对M2M间的通信数据类型也有相关的约定:上传信息是指采集本地机器的数据,下行信息是指通信协议、网络的指令和相关参数的设置。3.私有区的通信区块链设计私有区负责建立记录机器设备间通信过程的区块、保存数据以及查询相关信息。通信过程的信息是可以被共享的,这就保证它很难被篡改。通信区块链(communication blockchain,BC)的区块主要有头部信息和通信信息组成,其中头部信息是由①连接到前一个区块的哈希值;②目标哈希;③Merkle根节点;④随机数;⑤时间戳等组成。通信信息部分有:①通信发送方ID:识别通信发起方;②通信接收方ID:识别通信接收方;③信息类型:体现机器设备之间的通信数据类型约定,是上传数据还是下行数据;④数据大小:用以规定数据单元的总字节数;⑤数据:具体要通信数据,需要被保存的;⑥数据加密类型;⑦数据检验:检验经传输后数据的准确性。通信区块链的结构图如图5所示。 图5 通信区块链结构图通信区块链主要记录设备间互通的过程。一次互通过程作为一个区块被链接到通信区块链中。互通过程中的数据,包括通信双方的ID、信息类型、数据大小、加密方式等内容被保存到区块中。假设设备M1要查询其与某个设备M2通信记录,则可发送如图6所示格式的查询包到公共网络区,若查询成功,M2通过公共网络区将查询结果的信息包返回给M1,信息包的格式如图7所示;若查询失败,公共网络区返回查询失败消息给M1。 图6 查询包的数据格式 图7 信息包的数据格式整个查询通信过程如图8所示,具体步骤如下:步骤1:M1将查询包发到公共网络区;步骤2:公共网络区接收到查询包后,解析查询包,根据数据检验信息检验查询包数据是否完整。若不完整,则要求M1重新发送查询包,重新进入步骤1;若查询包数据完整,则进入步骤3;步骤3:公共网络区根据查询包中M2的ID,在机器设备区块链上查看M2是否存在。若不存在,则返回给查询发送方一个空值,查询失败;若M2存在,则进入步骤4;步骤4:公共网络区通过M2的设备区,将M1的查询包发送到M2的私有区。步骤5:M2私有区解析查询包,鉴别M1的数字签名是否合法。如果不合法,拒绝服务,并通过公共网络区返回一个拒绝服务信息给M1,重新进入步骤1;如果合法,则进入步骤6;步骤6:M2的私有区根据查询包中要查询的内容,用M1的公钥加密数据并封装相关数据成信息包,通过设备区将信息包发送到公共网络区;步骤7:公共网络区接收到信息包后,根据信息包中的检验信息检查信息包数据是否完整性。如果不完整,则要求M2重新发送,进入步骤6;如果信息包数据完整,则进入步骤8。步骤8:信息包通过M1设备区发送到M1的私有区;步骤9:私有区解析信息包检查M2的数字签名,鉴别其合法性。如果不合法,通过公共网络区发送消息给M2,要求重新发送数据,进入步骤6;如果合法,M1的私有区则用M1的私钥解密信息包获取数据,查询完成。图8 查询通信过程
工业互联网安全防护范围一、设备安全工业互联网的发展使得现场设备由机械化向高度智能化转变,并产生了嵌入式操作系统+微处理器+应用软件的新模式,这就使得未来海量智能设备可能会直接暴露在网络攻击下,面临攻击范围扩大、扩散速度增加、漏洞影响扩大等威胁。工业互联网设备安全指工厂内单点智能终端等智能设备的安全,具体应分别从操作系统、应用软件安全与硬件安全两方面出发部署安全防护措施,可采用的安全机制包括固件安全增强、恶意软件防护、设备身份鉴别与访问控制、漏洞修复等1.操作系统/应用软件安全(1)固件安全增强:工业互联网设备供应商需要采取措施对对设备固件进行安全增强,阻止恶意代码传播与运行。工业互联网设备供应商可从操作系统内核、协议栈等方面进行安全增强,并力争实现对于设备固件的自主可控。(2)漏洞修复加固:设备操作系统与应用软件中出现的漏洞对于设备来说是最直接也是最致命的威胁。设备供应商对工业现场中常见的设备与装置进行漏洞扫描与挖掘,发现操作系统与应用软件中存在的安全漏洞,并及时对其修复。(3)补丁升级管理:工业互联网企业应密切关注重大工业互联网现场设备的安全漏洞及补丁发布,及时采取补丁升级措施,并在补丁安装前对补丁进行严格的安全评估和测试验证。2.硬件安全(1)硬件安全增强:对于接入工业互联网的现场设备,支持基于硬件特征的唯一标识符,为包括工业互联网平台在内的上层应用提供基于硬件标识的身份鉴别能力。此外,应支持将硬件级部件(安全芯片或安全固件)作为系统信任根,为现场设备的安全启动以及数据传输机密性和完整性保护提供支持。(2)运维管理:工业互联网企业应在工业现场网络重要控制系统的工程师站、操作员站和历史站部署运维管控系统,实现对外部存储器、键盘和鼠标等使用USB接口设备的识别,对外部存储器的使用进行严格控制。同时,注意部署的运维管控系统不能影响生产控制。二、 控制安全对于工业互联网控制安全防护,主要从控制协议安全、控制软件安全及控制功能安全三个方面考虑,可采用的安全机制包括协议安全加固、软件安全加固、恶意软件防护、补丁升级、漏洞修复、安全监测审计等。1.控制协议安全(1)身份认证:为了确保控制系统执行的控制命令来自合法用户,必须对使用系统的用户进行身份认证,未经认证的用户所发出的控制命令不被执行。在控制协议通信过程中,一定要加入认证方面的约束,避免攻击者通过截获报文获取合法地址建立会话,影响控制过程安全。(2)访问控制:不同的操作类型需要不同权限的认证用户来操作,如果没有基于角色的访问机制,没有对用户权限进行划分,会导致任意用户可以执行任意功能。(3)传输加密:在控制协议设计时,应根据具体情况,采用适当的加密措施,保证通信双方的信息不被第三方非法获取。(4)健壮性测试:控制协议在应用到工业现场之前应通过健壮性测试工具的测试,测试内容可包括风暴测试、饱和测试、语法测试、模糊测试等。2.控制软件安全(1)软件防篡改:工业互联网中的控制软件可归纳为数据采集软件、组态软件、过程监督与控制软件、单元监控软件、过程仿真软件、过程优化软件、专家系统、人工智能软件等类型。软件防篡改是保障控制软件安全的重要环节,具体措施包括以下几种:控制软件在投入使用前应进行代码测试,以检查软件中的公共缺陷;采用完整性校验措施对控制软件进行校验,及时发现软件中存在的篡改情况;对控制软件中的部分代码进行加密;做好控制软件和组态程序的备份工作。(2)认证授权:控制软件的应用要根据使用对象的不同设置不同的权限,以最小的权限完成各自的任务。恶意软件防护对于控制软件应采取恶意代码检测、预防和恢复的控制措施。(3)补丁升级更新:控制软件的变更和升级需要在测试系统中经过仔细的测试,并制定详细的回退计划。对重要的补丁需尽快测试和部署。对于服务包和一般补丁,仅对必要的补丁进行测试和部署。(4)漏洞修复加固:控制软件的供应商应及时对控制软件中出现的漏洞进行修复或提供其他替代解决方案,如关闭可能被利用的端口等。(5)协议过滤:采用工业防火墙对协议进行深度过滤,对控制软件与设备间的通信内容进行实时跟踪。(6)安全监测审计:通过对工业互联网中的控制软件进行安全监测审计可及时发现网络安全事件,避免发生安全事故,并可以为安全事故的调查提供详实的数据支持。目前许多安全产品厂商已推出了各自的监测审计平台,可实现协议深度解析、攻击异常检测、无流量异常检测、重要操作行为审计、告警日志审计等功能。3.控制功能安全要考虑功能安全和信息安全的协调能力,使得信息安全不影响功能安全,功能安全在信息安全的防护下更好地执行安全功能。现阶段功能安全具体措施主要包括:(1)确定可能的危险源、危险状况和伤害事件,获取已确定危险的信息(如持续时间、强度、毒性、暴露限度、机械力、爆炸条件、反应性、易燃性、脆弱性、信息丢失等)。(2)确定控制软件与其他设备或软件(已安装的或将被安装的)以及与其他智能化系统(已安装的或将被安装的)之间相互作用所产生的危险状况和伤害事件,确定引发事故的事件类型(如元器件失效、程序故障、人为错误,以及能导致危险事件发生的相关失效机制)。(3)结合典型生产工艺、加工制造过程、质量管控等方面的特征,分析安全影响。(4)考虑自动化、一体化、信息化可能导致的安全失控状态,确定需要采用的监测、预警或报警机制、故障诊断与恢复机制、数据收集与记录机制等。(5)明确操作人员在对智能化系统执行操作过程中可能产生的合理可预见的误用以及智能化系统对于人员恶意攻击操作的防护能力。(6)智能化装备和智能化系统对于外界实物、电、磁场、辐射、火灾、地震等情况的抵抗或切断能力,以及在发生异常扰动或中断时的检测和处理能力。三、网络安全工业互联网网络安全防护应面向工厂内部网络、外部网络及标识解析系统等方面,具体包括融合网络结构优化、边界安全防护、接入认证、通信内容防护、通信设备防护、安全监测审计等多种防护措施,构筑立体化的网络安全防护体系。1.优化网络结构设计在网络规划阶段,需设计合理的网络结构。一方面通过在关键网络节点和标识解析节点采用双机热备和负载均衡等技术,应对业务高峰时期突发的大数据流量和意外故障引发的业务连续性问题,确保网络长期稳定可靠运行。另一方面通过合理的网络结构和设置提高网络的灵活性和可扩展性,为后续网络扩容做好准备。2.网络边界安全根据工业互联网中网络设备和业务系统的重要程度将整个网络划分成不同的安全域,形成纵深防御体系。安全域是一个逻辑区域,同一安全域中的设备资产具有相同或相近的安全属性,如安全级别、安全威胁、安全脆弱性等,同一安全域内的系统相互信任。在安全域之间采用网络边界控制设备,以逻辑串接的方式进行部署,对安全域边界进行监视,识别边界上的入侵行为并进行有效阻断。3.网络接入认证接入网络的设备与标识解析节点应该具有唯一性标识,网络应对接入的设备与标识解析节点进行身份认证,保证合法接入和合法连接,对非法设备与标识解析节点的接入行为进行阻断与告警,形成网络可信接入机制。网络接入认证可采用基于数字证书的身份认证等机制来实现。4.通信和传输保护通信和传输保护是指采用相关技术手段来保证通信过程中的机密性、完整性和有效性,防止数据在网络传输过程中被窃取或篡改,并保证合法用户对信息和资源的有效使用,具体包括:(1)通过加密等方式保证非法窃取的网络传输数据无法被非法用户识别和提取有效信息。(2)网络传输的数据采取校验机制,确保被篡改的信息能够被接收方有效鉴别。(3)应确保接收方能够接收到网络数据,并且能够被合法用户正常使用。5.网络设备安全防护为了提高网络设备与标识解析节点自身的安全性,保障其正常运行,网络设备与标识解析节点需要采取一系列安全防护措施,主要包括:(1)对登录网络设备与标识解析节点进行运维的用户进行身份鉴别,并确保身份鉴别信息不易被破解与冒用;(2)对远程登录网络设备与标识解析节点的源地址进行限制;(3)对网络设备与标识解析节点的登录过程采取完备的登录失败处理措施;(4)启用安全的登录方式(如SSH或HTTPS等)。6.安全监测审计网络安全监测指通过漏洞扫描工具等方式探测网络设备与标识解析节点的漏洞情况,并及时提供预警信息。网络安全审计指通过镜像或代理等方式分析网络与标识解析系统中的流量,并记录网络与标识解析系统中的系统活动和用户活动等各类操作行为以及设备运行信息,发现系统中现有的和潜在的安全威胁,实时分析网络与标识解析系统中发生的安全事件并告警。同时记录内部人员的错误操作和越权操作,并进行及时告警,减少内部非恶意操作导致的安全隐患。四、应用安全工业互联网应用主要包括工业互联网平台与工业应用程序两大类,其范围覆盖智能化生产、网络化协同、个性化定制、服务化延伸等方面。1.平台安全安全审计主要是指对平台中与安全有关的活动的相关信息进行识别、记录、存储和分析。平台建设过程中应考虑具备一定的安全审计功能,将平台与安全有关的信息进行有效识别、充分记录、长时间的存储和自动分析。能对平台的安全状况做到持续、动态、实时的有依据的安全审计,并向用户提供安全审计的标准和结果。工业互联网平台用户分属不同企业,需要采取严格的认证授权机制保证不同用户能够访问不同的数据资产。同时,认证授权需要采用更加灵活的方式,确保用户间可以通过多种方式将数据资产分模块分享给不同的合作伙伴。部署DDOS防御系统,在遭受DDOS攻击时,保证平台用户的正常使用。平台抗DDOS的能力应在用户协议中作为产品技术参数的一部分明确指出。平台不同用户之间应当采取必要的措施实现充分隔离,防止蠕虫病毒等安全威胁通过平台向不同用户扩散。平台不同应用之间也要采用严格的隔离措施,防止单个应用的漏洞影响其他应用甚至整个平台的安全。应对平台实施集中、实时的安全监测,监测内容包括各种物理和虚拟资源的运行状态等。通过对系统运行参数(如网络流量、主机资源和存储等)以及各类日志进行分析,确保工业互联网平台提供商可执行故障管理、性能管理和自动检修管理,从而实现平台运行状态的实时监测。工业互联网平台搭建在众多底层软件和组件基础之上。由于工业生产对于运行连续性的要求较高,中断平台运行进行补丁升级的代价较大。因此平台在设计之初就应当充分考虑如何对平台进行补丁升级的问题。虚拟化是边缘计算和云计算的基础,为避免虚拟化出现安全问题影响上层平台的安全,在平台的安全防护中要充分考虑虚拟化安全。虚拟化安全的核心是实现不同层次及不同用户的有效隔离,其安全增强可以通过采用虚拟化加固等防护措施来实现。2.工业应用程序安全代码审计指检查源代码中的缺点和错误信息,分析并找到这些问题引发的安全漏洞,并提供代码修订措施和建议。开发过程中应该进行必要的代码审计,发现代码中存在的安全缺陷并给出相应的修补建议。企业应对工业应用程序开发者进行软件源代码安全培训,包括:了解应用程序安全开发生命周期(SDL)的每个环节,如何对应用程序进行安全架构设计,具备所使用编程语言的安全编码常识,了解常见源代码安全漏洞的产生机理、导致后果及防范措施,熟悉安全开发标准,指导开发人员进行安全开发,减少开发者引入的漏洞和缺陷等,从而提高工业应用程序安全水平。漏洞发现是指基于漏洞数据库,通过扫描等手段对指定工业应用程序的安全脆弱性进行检测,发现可利用漏洞的一种安全检测行为。在应用程序上线前和运行过程中,要定期对其进行漏洞发现,及时发现漏洞并采取补救措施。对工业应用程序进行审核测试是为了发现功能和逻辑上的问题。在上线前对其进行必要的审核测试,有效避免信息泄漏、资源浪费或其他影响应用程序可用性的安全隐患。对工业应用程序进行实时的行为监测,通过静态行为规则匹配或者机器学习的方法,发现异常行为,发出警告或者阻止高危行为,从而降低影响。五、数据安全对于工业互联网的数据安全防护,应采取明示用途、数据加密、访问控制、业务隔离、接入认证、数据脱敏等多种防护措施,覆盖包括数据收集、传输、存储、处理等在内的全生命周期的各个环节。1.数据收集工业互联网平台应遵循合法、正当、必要的原则收集与使用数据及用户信息,公开数据收集和使用的规则,向用户明示收集使用数据的目的、方式和范围,经过用户的明确授权同意并签署相关协议后才能收集相关数据。授权协议必须遵循用户意愿,不得以拒绝提供服务等形式强迫用户同意数据采集协议。另外,工业互联网平台不得收集与其提供的服务无关的数据及用户信息,不得违反法律、行政法规的规定和双方约定收集、使用数据及用户信息,并应当依照法律、行政法规的规定和与用户的约定处理其保存的数据及个人信息。2.数据传输为防止数据在传输过程中被窃听而泄露,工业互联网服务提供商应根据不同的数据类型以及业务部署情况,采用有效手段确保数据传输安全。例如通过SSL保证网络传输数据信息的机密性、完整性与可用性,实现对工业互联网平台中虚拟机之间、虚拟机与存储资源之间以及主机与网络设备之间的数据安全传输,并为平台的维护管理提供数据加密通道,保障维护管理过程的数据传输安全。3.数据存储数据访问控制需要保证不同安全域之间的数据不可直接访问,避免存储节点的非授权接入,同时避免对虚拟化环境数据的非授权访问。(1)存储业务的隔离:借助交换机,将数据根据访问逻辑划分到不同的区域内,使得不同区域中的设备相互间不能直接访问,从而实现网络中设备之间的相互隔离。(2)存储节点接入认证:对于存储节点的接入认证可通过成熟的标准技术,包括iSCSI协议本身的资源隔离、CHAP(Challenge Handshake Authentication Protocol)等,也可通过在网络层面划分VLAN或设置访问控制列表等来实现。(3)虚拟化环境数据访问控制在虚拟化系统上对每个卷定义不同的访问策略,以保障没有访问该卷权限的用户不能访问,各个卷之间互相隔离。工业互联网平台运营商可根据数据敏感度采用分等级的加密存储措施(如不加密、部分加密、完全加密等)。建议平台运营商按照国家密码管理有关规定使用和管理密码设施,并按规定生成、使用和管理密钥。同时针对数据在工业互联网平台之外加密之后再传输到工业互联网平台中存储的场景,应确保工业互联网平台运营商或任何第三方无法对客户的数据进行解密。用户数据作为用户托管在工业互联网服务提供商的数据资产,服务提供商有妥善保管的义务。应当采取技术措施和其他必要措施,防止信息泄露、毁损、丢失。在发生或者可能发生个人信息泄露、毁损、丢失的情况时,应当立即采取补救措施,按照规定及时告知用户并向有关主管部门报告。工业互联网服务提供商应当根据用户业务需求、与用户签订的服务协议制定必要的数据备份策略,定期对数据进行备份。当发生数据丢失事故时能及时恢复一定时间前备份的数据,从而降低用户的损失。4.数据处理数据处理过程中,工业互联网服务提供商要严格按照法律法规以及在与用户约定的范围内处理相关数据,不得擅自扩大数据使用范围,使用中要采取必要的措施防止用户数据泄露。如果处理过程中发生大规模用户数据泄露的安全事件,应当及时告知用户和上级主管部门,对于造成用户经济损失的应当给予赔偿。数据销毁在资源重新分配给新的租户之前,必须对存储空间中的数据进行彻底擦除,防止被非法恶意恢复。应根据不同的数据类型以及业务部署情况,选择采用如下操作方式:(1)在卷回收时对逻辑卷的所有bit位进行清零,并利用“0”或随机数进行多次覆写;(2)在非高安全场景,系统默认将逻辑卷的关键信息(如元数据、索引项、卷前10M等)进行清零;在涉及敏感数据的高安全场景,当数据中心的物理硬盘需要更换时系统管理员可采用消磁或物理粉碎等措施保证数据彻底清除。当工业互联网平台中存储的工业互联网数据与用户个人信息需要从平台中输出或与第三方应用进行共享时,应当在输出或共享前对这些数据进行脱敏处理。脱敏应采取不可恢复的手段,避免数据分析方通过其他手段对敏感数据复原。此外数据脱敏后不应影响业务连续性,避免对系统性能造成较大影响。
一、国内外工控网络安全动态1.国内研究动态 随着国家“两化融合”工作的推进和《网络安全法》[1]的正式实施,国家关键信息基础设施保护已经成为当前网络安全领域的热点话题。《网络安全法》明确提出:对公共通信和信息服务、能源、交通、水利、金融、公共服务、电子政务等重要行业和领域的关键信息基础设施,应在网络安全等级保护制度的基础上,实行重点保护。作为重要的国家关键信息基础设施,工业控制系统因运行可靠性要求高、受破坏后造成的经济损失和社会影响巨大等特点,其网络安全问题引起了国家和行业的普遍重视。2011年,工业和信息化部发布《关于加强工业控制系统信息安全管理通知》[2],明确了重点领域工业控制系统信息安全管理要求,并强调了“谁主管谁负责、谁运营谁负责、谁使用谁负责”的原则。2014年,中央与国家发展和改革委员会相继对网络安全和中国能源企业的工控网络安全做出重要整改。随着相关国家政策的推出,我国工控安全产业发展加速,市场增速正呈现不断上升趋势,据统计,2016年为3.13亿元,2017年达到3.66亿元,2018年增长至4.28亿元,但由于起步较晚,我国工控安全产业未来还有很大的市场发展空间。2.国外研究动态近年,全球工业控制系统面临严峻的网络攻击形势[3]:针对性强,直击关键信息基础设施;破坏力度大,造成工控系统瘫痪;攻击范围广,波及全球多个国家。西方发达国家,尤其是美国在很早以前就开展了工控网络安全方面的研究。从2007年起,美国国土安全局就经常组织工控网络安全攻防演习。通过模拟交通、电力等各重要工业部门控制系统网络遭到攻击的场景,制定应对和防范措施,以此来不断提高工控网络安全技术水平。工业控制网络安全的研究受到国际知名自动化厂商的重视,比如西门子、罗克韦尔自动化、施耐德电气等不断推出针对自家产品攻击所对应的防范措施和相应的工控网络安全产品。西门子中国研究院[4]从2010年开始就设立了专门的工业信息安全研究部门,数年来协助西门子德国总部研发机构开发了一系列工控网络安全产品。2014年3月,西门子在北京设立首家“西门子工业信息安全实验室”[5]。到目前为止,德国和美国凭借其雄厚的技术优势,在工业信息安全领域遥遥领先世界其它国家。尤其是针对PLC控制系统[6]的底层、控制层和现场层的网络安全解决方案。3.工控网网络安全重要性通过国内外研究动态分析,可以看出工控网络安全已经成为研究热点,为了定量分析其研究现状和趋势,本文以知网和专利网的数据为大数据来源,通过关联分析、聚类分析和知识图谱等技术对工控网络安全进行研究。二、研究方法本文通过Scrapy爬虫进行数据采集和清洗,存储到Hive数据库里,利用K-Means聚类思想以及Pandas、TensorFlow、Numpy等库进行知识图谱分析。三、大数据结果分析大数据时代对人类的数据驾驭能力提出了新的挑战,也为人们获得更为深刻、全面的洞察能力提供了前所未有的空间与潜力[7]。工业4.0的到来标志着智能化时代的到来,标志着利用信息化技术促进产业变革时代的到来,也标志着大数据渗透到当今工控网络安全领域,成为重要生产因素点的时代已经到来。1.申请与公开数量趋势图1是2001~2020年专利申请量和公开量的发展趋势。从图中可以看出,从2014年开始,专利的申请量与公开量呈上升趋势,特别是2017年以来,二者的数量逐年急剧增长,对仍未结束的2020年本文不做过多分析。一般专利公开和专利申请相比有一定滞后,因此同一年中申请专利数量高于公开专利数量。近年随着大数据时代的到来,专利数量持续稳步上升,通过宏观层面的发展趋势可以看出,工控网络安全越来越受到社会各界人士的重视。图1 2001~2020年专利申请与公开数量趋势2.生命周期图2是2010~2019年期间专利技术所处的发展阶段,其中第一维度为申请人数量,第二维度为专利数量。从图中可以看出申请人数量和专利数量均随年份的增加而增加,2017~2018年期间申请人数量和专利数量都有显著提高,本图获取的数据针对的研究对象可以是某件专利文献所代表技术的生命周期,也可以是某一技术领域整体技术的生命周期。从整体的上升趋势可以推测未来工控网络安全领域具有强大而持久的生命力。图2 生命周期3.申请人专利价值专利价值度是参考技术稳定性、技术先进性和保护范围三个方面20余个参数,对专利进行分析后得出的关于专利价值的综合评价指标。研究申请人专利的价值度评分分布情况,可以宏观了解申请人的专利质量,从而客观评价申请人在专利方面的竞争实力。图3是申请人的专利价值度的分布情况,价值度在0~10范围内,申请人的价值度大部分集中在5~8之间。从图中可以看出在众多申请人中,江苏亨通工控安全研究院有限公司、国家电网公司、浙江大学、华东师范大学和杭州安恒信息技术股份有限公司位于前列,这些申请人的专利价值较高,有较强的竞争实力。北京威努特技术有限公司、国家电网有限公司、陕西思科锐迪网络安全技术有限责任公司、中国科学院信息工程研究所以及南京南瑞信息通信科技有限公司紧随其后。图3 申请人专利价值4.国内外研究热点分析国内外研究热点分析的是工控网络安全领域中各技术方向的数量分布情况。其中IPC分类号所对应的技术方向如表1所示。通过分析研究热点可以了解分析对象覆盖的技术类别,以及各技术分支的创新热度,有助于对行业整体认识,并对研发重点和研发路线进行适应性地调整。另外,通过分析各主要技术方向在不同国家或地区的数量分布情况可以掌握重要技术方向在全球范围内的主要技术来源国。表1 IPC分类号对应技术方向(1)国内研究热点情况图4为国内研究热点分布图,可以看出,工控网络安全覆盖10余种技术类别,其中H04L(数字信息的传输)的专利数量遥遥领先,G06F(电数字数据处理)、G05B(一般的控制或调节系统)、G06N(基于特定计算模型的计算机系统)和G06K(数据识别,数据表示等)这几种技术分支的专利数量也在前列。由此推测,社会各界对工控网络安全所覆盖的技术类别有一定的的创新热度,其中H04L、G06F、G05B、G06N以及G06K的创新热度尤其高。图4 国内研究热点(2)全球研究热点情况图5是全球研究热点分布情况,第一维度为专利公开国别或地域,第二维度为IPC分类号。显然,这10余种专利技术类别主要集中在中国。可以推测,中国是工控网络安全领域的重要技术方向在全球范围内的主要技术来源国。图5 全球研究热点5.全球地域排名图6展示的是全球专利公开的国家或地域中,工控网络安全领域的专利数量在不同地区的分布和排名情况。通过图表可以了解到该领域在中国的技术创新比较活跃,再一次证明了工控网络安全领域在中国的市场所具有的巨大潜力。中国政府对工业信息安全很重视,2014年2月,习近平总书记亲自担任中国网络安全和信息化小组组长,标志着网络安全正式成为中国国家战略的一部分,同时,《工业控制系统信息安全评估规范与验收规范》国家标准发布。2014年4月,国家发展和改革委员会新组建的国家能源局召集主要在华工业自动化厂商会议,商讨中国能源企业的工控网络安全问题和解决方案,并责成各能源企业尽快完成整改。这些都是工控网络安全领域在中国发展的强有力保障。图6 全球地域分布四、结论本文从专利申请与公开数量趋势、生命周期、申请人专利价值、国内外研究热点、全球地域排名等方面分析了工控网络安全领域的发展趋势,通过大数据结果展示与分析可以得出,我国的工业信息安全目前在很多行业的研究和应用都处于蓬勃发展的阶段,工控网络安全领域受到了越来越多社会各界人士的关注。随着大数据时代的到来,工控网络安全将得到更大的发展。
代码分析事务消息分布式事务模型图如下:我们先看事务消息客户端的实现。即上图的MQClient.我们先看代码的整体封装。下面代码段做了两件事:1.本地数据库写入 2.事务消息客户端发送消息。@Transactional表示开启事务。在注释下,开启一个新的Order。用OrderDao将数据写入本地数据库。然后调用transactionMsgClient.sendMsg将消息发出去(这是静态方法调用,transactionMsgClient是一个类,sendMsg是它的方法)。这样,本地数据库写入和发消息这两件事,就是个原子事务,也就是说,两件事要么一起成功,要么一起失败。上面代码用到了MybatisTransactionMsgClient。MyBatis是一个Java持久化框架,它通过XML描述符或注解把对象与存储过程或SQL语句关联起来,映射成数据库内对应的记录。上面提到过,transactionMsgClient.sendMsg是个类,这个类继承了TransactionMsgClient。下面代码中,transactionMsgClient.sendMsg调用了其父类的TransactionsendClient的sendMsg方法,写事务消息表,并且发送消息。我们接下来看sendMsg这个方法到底做了什么:1、消息内容落数据库 2、发送消息下面代码会先做一个判断,在if字段里:con.getAutoCommit。也就是说,只有当没有开启自动commit的时候(有自动提交就破坏了事务的原子性),把信息写在数据库表里,然后构造一个messages,发消息。而发消息的方法是将消息放到消息队列中。在事务消息设计中,后台发送消息队列设计,如下图所示:参照上图,我们可以看到后台发送消息队列有两个:SendMsg队列的消息消费很快,基本上放进去很快就会被消费掉。这样重试才能有效,否则一直重试,没有意义。下面代码段的的作用:是发送消息时,从队列里中取消息,看是否到期,将到期的消息取出来:后台优先队列的维护。最后,事务消息表的设计;代码分析事务消息我们知道,RocketMQ支持延时消息。我们先看一下延时消息的应用场景。延时需求是在当前时间后的某一时间点触发指定的业务逻辑或操作。例如微信发消息,过一段时间没发送成功的话,提示重新发送(如下图的小红点提示)。订单状态流转:如延时支付。京东上超过24小时的订单会被自动取消。实际上,我们在分布式事务的终极模型中,也用到了延时消息。RocketMQ支持18个级别的延时等级:messageDelayLevel=1s 5s 10s 30s 1m 2m 3m 4m 5m 6m 7m 8m 9m 10m 20m 30m 1h 2h 6h 12h。也就是说,消息延时发送有这18个级别。如果业务的延时消息需求与这18个级别不匹配,就需要自行基于RocketMQ进行二次开发。接下来,我们看一下18个延时的实现原理。RocketMQ的18个延时级别,每个级别对应一个Queue,根据Level参数,将消息放到对应的18个队列中的等级。每个队列都对应了到时出队。例如1s队列就是1s出队,2小时队就是2小时出队。消息出队以后,当成正常消息投递。然后被投递到了消费队列,被消费者消费掉。
2019年开启了5G的元年,2020年数字“新基建”战略的提出,加速了产业数字化的推进,各类新场景、新应用给了5G更为广阔的发展空间,但5G低延迟、大带宽、高并发和本地化的特性对计算提出了新的要求,同时海量的数据计算也给传统的网络架构带来了巨大的压力。此时,在网络边缘部署节点,通过云、边、端三体协同就近提供计算、存储和网络资源的边缘计算,成为当前满足网络流量对于高带宽和低延时的最佳解决方案。尤其在去年的疫情背景下,在爆发式增长的远程办公和数字生活娱乐的冲击下,互联网流量也达到史无前例的高峰,达到往年同期水平的2-3倍,人们对于互联网产业、虚拟化环境、远程直播等需求的依赖性大大增强,在这种严峻压力下,企业方、使用者以及平台三方都面临着流量、业务稳定、网络安全等不同层面的挑战。一、高流量下的网络安全威胁变化在2020年互联网流量成倍增长的同时,恶意攻击性流量的增速更高。相比往年,针对各行业网络攻击事件的数量和体量都有显著提升,疫情期间整个恶意攻击趋势上升明显,有高达1500 Gbps流量的DDoS攻击,还有流量中产生的数据包类型和数量也明显增长。这意味着对于网络设备攻击的效率会更高、危害性会更大,业界用户或内容供应商必须注意“泥沙俱下”的现象:当企业的用户数和流量极速增长的时候,“恶意”流量可能也会混在其中,给企业造成难以估量的损失。通过观察和总结2020年全球安全态势,值得关注的变化就是2020年DDoS攻击的数量、规模和复杂度都有明显的提升,其中勒索型DDoS攻击备受关注。勒索型DDoS其实与其它DDoS攻击在技术上并没有本质区别,但是它有更明确的经济诉求。DDoS攻击的规模越来越大,但随着防御技术的进步和服务商能力的提升,单纯的资源耗尽攻击不再是最大的挑战。但有组织、有技术支持、有团伙操纵的和勒索事件相关的DDoS攻击越来越让企业难以应对。对此类攻击,企业一是没有自己独立应对这类事件的经验,不知道如何防护;二是当前的安全合作伙伴或策略不足以应对如此大规模的攻击;三是希望通过外部资源和伙伴来增强自己的安全管理能力。针对DDoS勒索威胁,建议企业:第一,不能支付任何赎金,因为没有人可以保证在支付赎金后,是否不被攻击或不再受到威胁。很大意义上支付赎金无异于“助纣为虐”和“与虎谋皮”。第二,随时准备好与这样的威胁作战。企业需要快速、及时梳理并确认关键业务和后端基础设施是否均做好了充分的保护和准备。第三,充分借助专家能力,向有经验的组织寻求帮助。很多安全服务厂商都可以给企业提供对应的咨询和安防建议。当然,建议企业能够及时、定期地进行安全测试和演练,保证以上措施都切实有效。除了勒索型DDoS攻击,2020年“爬虫流量”的增长非常明显,这些恶意爬虫通过诸如撞库的方式窃取用户和企业数据。同时受到疫情期间远程办公趋势的影响,在企业办公从物理转向虚拟及线上的过程中,更易受到恶意程序的攻击。建议企业在新一年从四方面来关注安全,分别是DDoS防护、爬虫管理、页面完整性以及零信任。二、边缘计算可以给网络带来哪些改变?对于未来的网络,主要的关键词是边缘计算、物联网、5G。各类新技术、新场景需要更高的带宽和零延迟数据传输,网络的重要性达到了前所未有的程度。为了解决这个问题,边缘计算现已成为网络架构中必不可少的“支柱”,只有它才能帮助网络架构维持这种新的分布式环境并有效利用在网络边缘不断增加的设备和传感器。IDC最新的全球IT行业十大预测强调了边缘已成为重中之重。从现在起到2023年,大部分行业都将出现由边缘驱动的投资和业务模式变化,而其中80%将主要由疫情期间针对工作队伍和运营方式变化所作出的应对措施推动。边缘计算的目的是将应用逻辑从中心化的架构向边缘、向贴近用户的位置转移,提供更便捷的管理,更快速地相应,更贴近用户。可以降低用户核心的网络带宽、降低用户和逻辑交互的时延,并且边缘的容量会更具弹性和扩展性。此外,边缘计算可以把成本从集约化的数据中心分散到各地,从而降低整体持有成本。边缘计算不仅为用户提供优秀的内容交付能力,向用户提供更好的网络应用体验,还可以保护用户的信息安全不受黑客攻击,以及把关键业务场景用产品的能力实现并进行支撑。某种意义上,安全也是边缘计算,即把安全产品放到了边缘上。随着5G时代的到来,边缘计算已逐渐成为市场的重要发展趋势,包括电信运营商在内的多家机构正在加速布局边缘计算,让网络条件不再成为企业业务发展的制约,让用户体验到更为安全的移动互联网。
今天咱们来聊聊OSS,相信在看的绝大部分朋友不是从事研发工作的,就算是从事研发,整天跟OSS打交道,也没有意识到哪个模块是OSS,作为运维人员,OSS也会常常接触,那么今天我就带大家认识一下OSS,相信看完这篇文章,大家一定就会特别清楚OSS是啥,能做啥,解决了什么问题。一、什么是OSS?「OSS」的英文全称是Object Storage Service,翻译成中文就是「对象存储服务」,官方一点解释就是对象存储是一种使用HTTP API存储和检索非结构化数据和元数据对象的工具。白话文解释就是将系统所要用的文件上传到云硬盘上,该云硬盘提供了文件下载、上传等一列服务,这样的服务以及技术可以统称为OSS,业内提供OSS服务的厂商很多,知名常用且成规模的蓝队云等。二、OSS相关的术语1.存储空间(Bucket)存储空间是您用于存储对象(Object)的容器,所有的对象都必须隶属于某个存储空间。2.对象/文件(Object)对象是 OSS 存储数据的基本单元,也被称为OSS的文件。对象由元信息(Object Meta)、用户数据(Data)和文件名(Key)组成。对象由存储空间内部唯一的Key来标识。3.地域(Region)地域表示 OSS 的数据中心所在物理位置。您可以根据费用、请求来源等综合选择数据存储的地域。详情请查看OSS已经开通的Region。4.访问域名(Endpoint)Endpoint 表示OSS对外服务的访问域名。OSS以HTTP RESTful API的形式对外提供服务,当访问不同地域的时候,需要不同的域名。通过内网和外网访问同一个地域所需要的域名也是不同的。具体的内容请参见各个Region对应的Endpoint。5.访问密钥(AccessKey)AccessKey,简称 AK,指的是访问身份验证中用到的AccessKeyId 和AccessKeySecret。OSS通过使用AccessKeyId 和AccessKeySecret对称加密的方法来验证某个请求的发送者身份。AccessKeyId用于标识用户,AccessKeySecret是用户用于加密签名字符串和OSS用来验证签名字符串的密钥,其中AccessKeySecret 必须保密。三、OSS的好处:简单的HTTP API,包含所有主要操作系统和编程语言的客户端。只需支付使用的费用。对发布静态资产的内置支持允许您使用更少的服务器。一些对象存储提供内置的CDN集成,可以缓存资产以加快页面加载速度。可选的版本控制允许您检索旧版本的对象以从意外数据覆盖中恢复。可以轻松扩展对象存储服务,而无需额外的资源或体系结构更改。不需要支持硬盘驱动器和RAID阵列,因为所有这些都由存储提供商处理。使用数据对象存储元数据片段的能力将简化应用程序体系结构。四、对象存储的缺点:此类存储库将无法维护传统数据库。对象存储不允许按片段更改数据。只能修改整个对象,这会影响性能。例如,在文件系统中,您可以轻松地在日志末尾添加一行。在对象存储系统中,为此需要还原对象,添加新行并将整个对象写回。因此,这种存储不适用于数据经常变化的应用。操作系统无法像常规磁盘一样安装对象存储。有几个客户端和适配器,但一般来说,使用和浏览对象存储并不像在文件浏览器中使用目录那么容易。总而言之,OSS非常适合存储静态资源,例如,用于存储用户定义的内容:图像和电影,存储备份文件和日志。
“网络安全的本质在对抗,对抗的本质在攻防两端能力较量。”从美国的“网络风暴”的开始,网络攻防演练就被世界各国所重视。作为检验和提高网络安全应急响应能力的重要手段,攻防演练对完善网络安全应急响应机制与提高技术防护能力具有重要意义。近几年国内攻防演练开始常态化,受到各行各业的高度重视,成为检验政府机构、企事业单位、重要行业的安全体系建设水平,促进其安全运营能力提升的常规手段。攻防演练的常态化对企事业单位的安全防护提出了更高的要求,促进了网络安全工作从合规型向实战型进行转变,落实“三化六防”,切实提升企业安全体系建设的水平。一、攻击手段逐步实战化随着网络安全攻防演练规模不断扩大,程度不断升级,新的攻击手段层出不穷,隐秘高效的自动化攻击也越来越多。当前攻防演练的几个主要发展趋势:首先,高级的攻击手段如0day漏洞攻击、定制工具等在演练中开始频繁使用。尤其是先前被为战略资源的0day漏洞,已经下放到日常演练中使用,极大的提升了防守难度。同时由于通用的工具易被防守方拦截,攻击方开始开发自己的攻击平台和工具,编写定制化的脚本,来绕过防护体系。这些未知的工具给也防守方造成了相当大的麻烦。其次,动态加密技术的使用,让依靠特征检测的防护体系失去了作用。哥斯拉、冰蝎等工具的出现,可谓让“红队窃喜,蓝队落泪”,这种混淆加密、动态加载的攻击让传统的 WAF、IDS 设备难以检测,给防守方的威胁狩猎带来极大挑战,对基于规则的防护手段是一个降维的打击。最后,攻击队伍常采用多源低频的手段,让防守方封杀IP的动作难以生效。在一个真实攻击案例中,根据12小时监测结果显示,攻击方累计用过的IP数量超过了65万个,对于防守方来说,再用封杀IP的手段进行拦截,不管是工作量还是安全设备的承载能力,都是不现实的。在近年的攻防演练中,攻击手法逐步向实战化靠拢。除了上述这些方式外,攻击方还会寻找和探测人员和管理上的漏洞,如口令问题、帐号管理问题、访问权限管理等,钓鱼邮件、社工手段也频繁被使用。二、动态防护 实现从“人防”到“技防”攻易守难,在演练中如果防守方还在依托于人防,让人不断来监测分析一个个攻击事件、响应处置,就会严重滞后于攻击方,陷入一个不断亡羊补牢、疲于奔命,被攻击方牵着鼻子走的被动过程。“攻击所带来的新变化,需要从人防转变到技防以应对。”,简单来讲,就是不管在攻防演练、重保活动、还是日常的安全运维,要通过技术的手段,自动化的处理掉各类攻击,将人从重复性工作中释放出来去做更有价值的事,做到更加有效的防守。如果要达到“技防”的目的,就得有的放矢,先分析清楚攻击的阶段。无论是何种攻击,归根结底都可分成前期、中期、后期三个阶段,在攻防演练期间表现得尤为明显。前期,攻击队伍主要以自动化攻击为主,主要目的在于信息收集。利用自动化工具做批量扫描、路径遍历、口令破解、漏洞探测等。完成了这些工作,攻击队伍就会转入第二阶段,以手工攻击、多源低频、重点突破为主。例如在前期发现了一个可能存在漏洞的系统,就会针对这个系统做重点分析,发起定向打击,并对系统的安全措施进行突破。如果成功地拿下了这个系统,攻方此时已经获得了一定的权限,就会进入到后期阶段,以次系统作为跳板,开始横向移动、核心渗透。这时攻方的主要工作就是对已经获取的权限做一个提升,搭建跳板,然后开始对内网更核心的系统做探测,做渗透。那么,清楚了攻方的“三板斧”,就可以对症下药,针对这三个阶段,来做相应的防守。首先是“拦工具”,对工具类的探测利用进行拦截,这是针对攻击前期阶段的核心工作之一。在具体实现上,可采取分层分级的对抗策略。如对简单的脚本工具,可以不关心这些脚本的请求,而是直接检测这个脚本是不是具有JS(Javascript)的解析能力,再加入一些复杂的令牌机制,一些代码混淆的操作,来大大提升攻击者的门槛。对更高一层的具备JS解析能力的工具,可以通过环境检测、行为识别,来发现伪造行为和异常访问。更高级的驱动浏览器内核方式、被动扫描方式,可以突破前面的防御手段,那么在这个层面上就需要做一些重放性的检测、动态挑战、对敏感信息做隐藏,让攻击者获取不到有价值的信息。还可以通过指纹关联的形式,对攻击者发起的一些多源低频的攻击来做检测。通过这些方法,可以让攻方的工具探测无功而返。除了对于传统的漏洞扫描攻击外,这种防护体系,还可以实现对0day漏洞的无规则防护,原理就是动态防护体系不是基于已知特征的,而是基于请求行为的判断,只要不是正常用户的访问就会被拦截。再如多源低频攻击,动态防护的方法是通过令牌机制、指纹溯源的手段,对多源低频攻击做关联性的识别分析,只要做到基于设备指纹的攻击识别,攻击者无论怎么换IP,都无法逃脱。还可以通过IP共用的现象,把几个设备指纹进行关联,对整个攻击团队进行攻击画像。其次是“扰人工”,对人工渗透的行为进行迷惑干扰,加大攻击者的分析判断难度。通过Web代码混淆、JS混淆、Cookie混淆、前端反调试、中间人检测等,对重要的信息进行保护,对攻击者进行动态的干扰,让攻击者步步维艰,既无法找到可利用的信息,更无法提交相应的请求。最后是“断跳板”,当攻击者获取了系统的权限时,对攻击者所利用的WebShell等跳板工具进行阻断。动态防护的优势在于对“冰蝎”这种动态加密的工具,虽然不能通过固定特征来识别,但可以通过令牌检测等方法来动态判断是否来自正常用户,来做相应的阻断,而不再关心通讯的具体内容。动态防护体系的价值,在于对自动化攻击、0day漏洞、多源低频攻击都能做到有效的防护,并且通过分级分层的对抗思路,多维度的方法组合,最终实现主动防御。更重要的是,动态防护是一个平战结合的理念。不只是针对攻防演练和大型重保,对企业日常的安全运维,动态防护也有很好的效果,既提升了企业的体系化防御能力,也极大地降低了人力成本。最后,对企业如何在攻防演练中有备而战。首先企业要对资产进行梳理,摸清家底,明确有多少资产暴露在外,尽可能地收缩攻击面。其次,对系统要做好体检,及时打补丁,虽然0day攻击越来越多,但实际上因为补丁不及时,而被通过已知漏洞攻陷的案例更为常见。再次,要谨防社工攻击,人是安全防线最薄弱的一环,安全意识教育十分重要。最后,要尽可能深藏靶标系统,做好访问控制,加大攻击难度。
前端开发是一个非常特殊的行业,它的历史实际上不是很长,但是知识之繁杂,技术迭代速度之快是其他技术所不能比拟的。微观篇Web前端技术由 html、css 和 javascript 三大部分构成,是一个庞大而复杂的技术体系,其复杂程度不低于任何一门后端语言。一、JAVASCRIPT 篇0、基础语法Javascript 基础语法包括:变量声明、数据类型、函数、控制语句、内置对象等。在ES5 中,变量声明有两种方式,分别是 var 和 function ,var 用于声明普通的变量,接收任意类型,function用于声明函数。另外,ES6 新增了 let、const、import 和 class 等四个命令,分别用以声明 普通变量、静态变量、模块 和 类 。JS数据类型共有六种,分别是 String、Number、Boolean、Null、Undefined 和 Object 等, 另外,ES6 新增了 Symbol 类型。其中,Object 是引用类型,其他的都是原始类型(Primitive Type)。原始类型也称为基本类型或简单类型,因为其占据空间固定,是简单的数据段,为了便于提升变量查询速度,将其存储在栈(stack)中(按值访问)。为了便于操作这类数据,ECMAScript 提供了 3 个基本包装类型:Boolean、Number 和 String 。基本包装类型是一种特殊的引用类型,每当读取一个基本类型值的时候,JS内部就会创建一个对应的包装对象,从而可以调用一些方法来操作这些数据。引用类型由于其值的大小会改变,所以不能将其存放在栈中,否则会降低变量查询速度,因此其存储在堆(heap)中,存储在变量处的值是一个指针,指向存储对象的内存处(按址访问),对于引用类型的值,可以为其添加属性和方法,也可以改变和删除其属性和方法;但基本类型不可以添加属性和方法。关于更多介绍请参考:详解《细说 JavaScript 七种数据类型》JavaScript 可以通过 typeof 来判断原始数据类型,但不能判断引用类型,要知道引用类型的具体类型,需要通过 Object 原型上的 toString 方法来判断,关于数据类型判断可以参考:《判断JS数据类型的4种方法》在 JavaScript 中,函数有三种角色,即普通函数、构造函数 和 对象方法。同一个函数,调用方式不同,函数的作用不一样,所扮演的角色也不一样。直接调用时就是普通函数,通过new创建对象时就是构造函数,通过对象调用时就是方法。JavaScript 常用的内置对象有 Date、Array、JSON、RegExp 等等,Date 和 Array 使用场景最多,JSON主要用于对象的序列化和反序列化,还有一个作用就是实现对象的深拷贝。RegExp 即正则表达式,是处理字符串的利器。关于更多介绍请参考:《数组常用操作方法总结》 , 《正则表达式基础知识》1、函数原型链JS是一种基于对象的语言,但在 ES6 之前是不支持继承的,为了具备继承的能力,JavaScript 在函数对象上建立了原型对象 prototype,并以函数对象为主线,从上至下,在JS内部构建了一条原型链。原型链把一个个独立的对象联系在一起,Object 则是所有对象的祖宗, 任何对象所建立的原型链最终都指向了 Object,并以 Object 终结。简单来说,就是建立了变量查找机制,当访问一个对象的属性时,先查找对象本身是否存在,如果不存在就去该对象所在的原型连上去找,直到 Object 对象为止,如果都没有找到该属性才会返回 undefined。因此,我们可以通过原型链来实现继承机制。关于函数原型链请参考:《认识原型对象和原型链》2、函数作用域函数作用域就是变量在声明它们的函数体以及这个函数体嵌套的任意函数体内都是有定义的。通俗来讲就是,在一个函数里,有些变量可以访问,有些不可以访问。那些能访问的变量所形成的范围,就是这个函数的作用域。在 JavaScript 中,没有块级作用域,只有函数作用域,也就是说 if、while、for 语句不会形成独立的作用域。但有一个特殊情况,即 with 语句和 catch 语句会形成临时作用域,语句执行结束后,该作用域就会被释放。关于函数作用域请参考:《函数作用域和作用域链》3、this 指针this 指针存在于函数中,用以标识函数运行时所处的上下文。函数的类型不同,this 指向规则也不一样:对于普通函数,this 始终指向全局对象window;对于构造函数,this则指向新创建的对象;对于方法,this指向调用该方法的对象。另外,Function 对象也提供了call、apply 和 bind 等方法来改变函数的 this 指向,其中,call 和 apply 主动执行函数,bind 一般在事件回调中使用,而 call 和 apply 的区别只是参数的传递方式不同。关于更多介绍请参考:《深入理解 call,apply和 bind》如果往深的去理解,无论什么函数,this 是否被改变, 本质上,this 均指向触发函数运行时的那个对象。而在函数运行时,this 的值是不能被改变的。4、new 操作符函数的创建有三种方式,即 显式声明、匿名定义 和 new Function() 。前面提到,JS 中的函数即可以是函数,也可以是方法,还可以是构造函数。当使用 new 来创建对象时,该函数就是构造函数,JS 将新对象的原型链指向了构造函数的原型对象,于是就在新对象和函数对象之间建立了一条原型链,通过新对象可以访问到函数对象原型 prototype 中的方法和属性。关于构造函数和 new 操作符请参考: 《深入理解 new 操作符》5、闭包闭包不是一个孤立的概念,需要从函数作用域的角度来理解。每个函数都有自己的作用域,如果在一个函数里定义了另一个函数,那么对应的就有两个作用域,这两个作用域就会形成一个链条,俗称作用域链。本质上讲,作用域链是一个自上而下的链表, 链表的最顶端是内部函数作用域,链表的最底端是全局作用域。内部函数有权访问整个作用域链上的变量。正常情况下,每当一个函数执行完毕,对应的作用域就会从该链表上移除,然后销毁。但如果函数 A 把函数 B 作为返回值返回时,情况又不一样。首先,函数 A 返回的是函数 B 的引用,也就是说,B 可能会在其他地方被调用。上面提到,函数 B 的定义是位于函数 A 内部,因此 A 和 B 会形成一条作用域链,函数 B 有可能会读取 A 中的变量 。为了保证函数 B 能够在其他地方正确执行,函数 B 所在的这条作用域链就不能被破坏。所以,即使函数 A 执行返回后,A 的作用域也不能释放,需要一直保存在内存中,以确保函数 B 能够正常读取里面的变量。函数 B 具有永久访问 A 作用域的特权,确切说,函数 B 就是闭包 。总而言之,闭包就是一个有权访问另一个函数作用域的函数。6、单线程与事件循环JavaScript 是单线程语言。在浏览器中,当JS代码被加载时,浏览器会为其分配一个主线程来执行任务,主线程会在栈中创建一个全局执行环境 (全局作用域)。每当有一个函数进入执行流时,就会形成一个对应的执行环境(函数作用域),并将该执行环境压入栈中。每当一个函数执行完毕以后,对应的执行环境就会从栈中弹出,然后被销毁。这就是执行环境栈,执行环境栈的作用就是保证所有的函数能按照正确的顺序被执行。但在浏览器中,有一些任务是非常耗时的,比如 ajax请求、定时器、事件等。为了保证主线程上的任务不被阻塞,JavaScript 内部维护了一个任务队列, 当这些耗时任务结束时(Ajax 请求返回、定时器超时、事件被触发),就将对应的回调函数插入队列中进行等待。这些任务的执行时机并不确定,只有当所有同步任务执行完毕后,执行环境栈被清空(栈底的全局执行环境会一直存在,直到进程退出)以后,然后再从任务队列中依次读取回调函数,并将其压入执行环境栈中。于是,主线程开始执行新的同步任务,执行完毕后再从栈中弹出,栈被清空。主线程从任务队列中读取任务是不断循环的,每当栈被清空后,主线程就会从任务队列中读取新的任务并执行,如果没有新的任务,就会一直等待,直到有新的任务。JavaScript 的这种执行机制就叫做任务循环。因为每个任务都由一个事件所触发,所以也叫 “事件循环”。7、Ajax 和 跨域技术 Ajax 是浏览器专门用来和服务器进行交互的异步通讯技术,其核心对象是 XMLHttpRequest,通过该对象可以创建一个 Ajax 请求。Ajax 请求是一个耗时的异步操作,当请求发出以后,Ajax 提供了两个状态位来描述请求在不同阶段的状态,这两个状态位分别是 readyState 和 status ,readyState 通过 5个状态码来描述一个请求的 5 个阶段: a.请求未发送,初始化阶段 b.请求发送中,服务器还未收到请求 c.请求发送成功,服务器已收到请求 d.服务器处理完成,开始响应请求,传输数据 e.客户端收到请求,并完成了数据下载,生成了响应对象status 用于描述服务端对请求处理的情况,200 表示正确响应了请求,404 表示服务器找不到资源,500 代表服务器内部异常等等。Ajax 对象还可以设置一个 timeout 值,代表超时时间。切记:timeout 只会影响 readyState,而不会影响 status,因为超时只会中断数据传输,但不会影响服务器的处理结果。如果 timeout 设置的不合理,就会导致响应码 status 是 200,但 response里却没有数据,这种情况就是服务器正确响应了请求,但数据的下载被超时中断了。为了保证用户信息的安全,浏览器引入了同源策略,对脚本请求做了限制,不允许 Ajax 跨域请求服务器 ,只允许请求和当前地址同域的服务器资源。但不限制 HTML 标签发送跨域请求,比如 script、img、a 标签等,因此可以利用标签跨域能力来实现跨域请求,这就是 JSONP 能够跨域的原理。JSONP 虽然可以解决跨域问题,但只能发送 GET 请求,并且没有有效的错误捕获机制 。为了解决这个问题,W3C 在 XMLHttpRequest Level2 中提出了 CORS 规范,即 “跨域资源共享”。它不是一个新的 API,而是一个标准规范 。当浏览器发现该请求需要跨域时,就会自动在头信息中添加一个 Origin 字段,用以说明本次请求来自哪个源。服务器根据这个值,决定是否同意这次请求。关于 CORS 的详细介绍请参考:《跨域资源共享 CORS 详解 》随着移动端的快速发展,Web 技术的应用场景正在变得越来越复杂,“关注点分离” 原则在系统设计层面就显得越来越重要,而 XMLHttpRequest 是 Ajax 最古老的一个接口,因而不太符合现代化的系统设计理念。因此,浏览器提供了一个新的 Ajax 接口,即 Fetch,Fetch 是基于 ES6 的 Promise 思想设计的,更符合关注点分离原则。关于 Fetch 的更多介绍请参考:《传统 Ajax 已死,Fetch 永生》8、模块化历史上,JavaScript 规范一直没有模块(Module)体系,即无法将一个大程序拆分成互相依赖的小文件,再用简单的方法拼装起来。在 ES6 之前,为了实现 JS 模块化编程,社区制定了一些模块加载方案,最主要有 CMD 和 AMD 两种,分别以 commonjs 和 requirejs 为代表。ES6 在语言标准的层面上,实现了模块化编程,其设计思想是,尽量静态化,使得编译时就能确定模块的依赖关系,即编译时加载,而 CMD 和 AMD 是在运行时确定依赖关系,即运行时加载。关于 ES6 模块化请参考:http://es6.ruanyifeng.com/#docs/module9、Node.jsNode.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它的运行不依赖于浏览器作为宿主环境,而是和服务端程序一样可以独立的运行,这使得 JavaScript 编程第一次从客户端被带到了服务端,Node.js 在服务端的优势是,它采用单线程和异步 I/O 模型,实现了一个高并发、高性能的运行时环境。相比传统的多线程模型,Node.js 实现简单,并且可以减少资源开销。关于 Node.js单线程模型请参考:《Node.js 事件循环机制》10、ES6ES6 是 ECMAScript 6.0 的简写,即 JavaScript 语言的下一代标准,已经在 2015年6月正式发布了,它的目标是让JS能够方便的开发企业级大型应用程序,因此,ES6的一些规范正在逐渐向Java、C# 等后端语言标准靠近。在 ES6 规范中,比较重大的变化有以下几个方面: 新增 let、const 命令 来声明变量,和var 相比,let 声明的变量不存在变量提升问题,但没有改变JS弱类型的特点,依然可以接受任意类型变量的声明;const 声明的变量不允许在后续逻辑中改变,提高了JS语法的严谨性。 新增解构赋值、rest 语法、箭头函数等,这些都是为了让代码看起来更简洁,而包装的语法糖。新增模块化机制,这是 JavaScript 走向规范比较重要的一步,让前端更方便的实现工程化。新增类和继承的概念,配合模块化,JavaScript 也可以实现高复用、高扩展的系统架构。新增模板字符串功能,高效简洁,结束拼接字符串的时代。新增 Promise 机制,解决异步回调多层嵌套的问题。二、CSS 篇1、CSS选择器CSS 选择器即通过某种规则来匹配相应的标签,并为其设置 CSS 样式,常用的有类选择器、标签选择器、ID选择器、后代选择器、群组选择器、伪类选择器(before/after)、兄弟选择器(+~)、属性选择器等等。2、CSS ResetHTML 标签在不设置任何样式的情况下,也会有一个默认的 CSS 样式,而不同内核浏览器对于这个默认值的设置则不尽相同,这样可能会导致同一套代码在不同浏览器上的显示效果不一致,而出现兼容性问题。因此,在初始化时,需要对常用标签的样式进行初始化,使其默认样式统一,这就是 CSS Reset ,即 CSS 样式重置,比如:就是最简单 CSS Reset。关于 CSS 重置请参考:http://thx.github.io/cube/doc/neat3、盒子布局盒子模型是CSS比较重要的一个概念,也是CSS 布局的基石。常见的盒子模型有块级盒子(block)和行内盒子(inline-block),与盒子相关的几个属性有:margin、border、padding和content 等,这些属性的作用是设置盒子与盒子之间的关系以及盒子与内容之间的关系,而 box-sizing 属性会影响盒子大小的计算方式。需要注意的是:只有普通文档流中块级盒子的垂直外边距才会发生合并,而具有 BFC 特性盒子的外边距不会合并。4、浮动布局设置元素的 float 属性值为 left 或 right,就能使该元素脱离普通文档流,向左或向右浮动。一般在做宫格布局时会用到,如果子元素全部设置为浮动,则父元素是塌陷的,这时就需要清除浮动,清除浮动的方法也很多,常用的方法是在元素末尾加空元素设置 clear: both,更高级一点的就给父容器设置 before/after 来模拟一个空元素,还可以直接设置 overflow 属性为 auto/hidden 来清除浮动。除浮动可以实现宫格布局,行内盒子(inline-block) 和 table 也可以实现同样的效果。 5、定位布局设置元素的 position 属性值为 relative/absolute/fixed,就可以使该元素脱离文档流,并以某种参照坐标进行偏移。其中,releave 是相对定位,它以自己原来的位置进行偏移,偏移后,原来的空间不会被其他元素占用;absolute 是绝对定位,它以离自己最近的定位父容器作为参照进行偏移;为了对某个元素进行定位,常用的方式就是设置父容器的 poistion:relative,因为相对定位元素在不设置 top 和 left 值时,不会对元素位置产生影响;fixed 即固定定位,它则以浏览器窗口为参照物,PC网页底部悬停的banner一般都可以通过fixed定位来实现,但fixed属性在移动端有兼容性问题,因此不推荐使用,可替代的方案是:绝对定位+内部滚动。6、弹性布局弹性布局即 Flex 布局,定义了 flex 的容器一个可伸缩容器,首先容器本身会根据容器中的元素动态设置自身大小;然后当Flex容器被应用一个大小时(width和height),将会自动调整容器中的元素适应新大小。Flex容器也可以设置伸缩比例和固定宽度,还可以设置容器中元素的排列方向(横向和纵向)和是否支持元素的自动换行。有了这个神器,做页面布局的可以方便很多了。注意,设为Flex 布局以后,子元素的 float、clear、inline-block 和 vertical-align 属性将失效。关于 flexbox 请参考:https://www.w3cplus.com/css3/a-visual-guide-to-css3-flexbox-properties.html7、CSS3 动画CSS3 中规范引入了两种动画,分别是 transition 和 animation,transition 可以让元素的 CSS 属性值的变化在一段时间内平滑的过渡,形成动画效果,为了使元素的变换更加丰富多彩,CSS3 还引入了 transfrom 属性,它可以通过对元素进行 平移(translate)、旋转(rotate)、放大缩小(scale)、倾斜(skew) 等操作,来实现 2D 和 3D 变换效果。transiton 还有一个结束事件 transitionEnd,该事件是在 CSS 完成过渡后触发,但如果过渡在完成之前被移除,则不会触发 transitionEnd 。animation 需要设置一个 @keyframes,来定义元素以哪种形式进行变换, 然后再通过动画函数让这种变换平滑的进行,从而达到动画效果,动画可以被设置为永久循环演示。设置 animation-play-state:paused 可以暂停动画,设置 animation-fill-mode:forwards 可以让动画完成后定格在最后一帧。另外,还可以通过JS 监听 animation 的“开始”、“结束” 和 “重复播放” 状态,分别对应三个事件,即 animationStart、animationEnd、animationIteration 。需要注意的是:当播放次数设置为1时,不会触发 animationIteration 。和 transition相比,animation 设置动画效果更灵活更丰富,二者还有一个区别是:transition 只能通过主动改变元素的 css 值才能触发动画效果,而 animation 一旦被应用,就开始执行动画。另外,HTML5 还新增了一个动画API,即 requestAnimationFrame,它通过JS来调用,并按照屏幕的绘制频率来改变元素的CSS属性,从而达到动画效果,关于这个API的介绍请参考:《requestAnimationFrame 知多少?》8、BFCBFC 是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面元素。比如:内部滚动就是一个 BFC,当一个父容器的 overflow-y 设置为 auto 时,并且子容器的长度大于父容器时,就会出现内部滚动,无论内部的元素怎么滚动,都不会影响父容器以外的布局,这个父容器的渲染区域就叫 BFC。满足下列条件之一就可触发 BFC:根元素,即 HTML 元素float 的值不为 noneoverflow 的值不为 visibledisplay 的值为 inline-block、table-cell、table-captionposition 的值为 absolute 或 fixed9、Sprite,Iconfont,font-face对于大型站点,为了减少 http 请求的次数,一般会将常用的小图标排到一个大图中,页面加载时只需请求一次网络, 然后在 css 中通过设置 background-position 来控制显示所需要的小图标,这就是 Sprite 图。Iconfont,即字体图标,就是将常用的图标转化为字体资源存在文件中,通过在 CSS 中引用该字体文件,然后可以直接用控制字体的css属性来设置图标的样式,字体图标的好处是节省网络请求、其大小不受屏幕分辨率的影响,并且可以任意修改图标的颜色。font-face 是 CSS3 中的一个模块,通过 font-face 可以定义一种全新的字体,然后就可以通过 css 属性 font-family 来使用这个字体了,即使操作系统没有安装这种字体,网页上也会正常显示出来。10、CSS HACK早期,不同内核浏览器对CSS属性的解析存在着差异,导致显示效果不一致,比如 margin 属性在 ie6 中显示的距离会比其他浏览器中显示的距离宽 2 倍,也就是说 margin-left:20px; 在ie6中距左侧元素的实际显示距离是 40px,而在非 ie6 的浏览器上显示正常。因此,如果要想让所有浏览器中都显示是 20px 的宽度,就需要在CSS样式中加入一些特殊的符号,让不同的浏览器识别不同的符号,以达到应用不同的CSS样式的目的,这种方式就是 “css hack”, 对于 ie6 中的 margin 应用 hack 就会变成这样:兼容各大浏览器的 css hack 如下: 三、HTML 篇1、BOM BOM 是 Browser Object Model 的缩写,即浏览器对象模型,当一个浏览器页面初始化时,会在内存创建一个全局的对象,用以描述当前窗口的属性和状态,这个全局对象被称为浏览器对象模型,即BOM。BOM的核心对象就是 window,window 对象也是BOM的顶级对象,其包含了浏览器的六个核心模块:document - 即文档对象,渲染引擎在解析HTML代码时,会为每一个元素生成对应的DOM对象,由于元素之间有层级关系,因此整个HTML代码解析完以后,会生成一个由不同节点组成的树形结构,俗称DOM树,document 用于描述DOM树的状态和属性,并提供了很多操作DOM的API。frames - HTML 子框架,即在浏览器里嵌入另一个窗口,父框架和子框架拥有独立的作用域和上下文。history - 以栈(FIFO)的形式保存着页面被访问的历史记录,页面前进即入栈,页面返回即出栈。location - 提供了当前窗口中加载的文档相关信息以及一些导航功能。navigator - 用来描述浏览器本身,包括浏览器的名称、版本、语言、系统平台、用户特性字符串等信息。screen - 提供了浏览器显示屏幕的相关属性,比如显示屏幕的宽度和高度,可用宽度和高度。2、DOM 系统DOM 是 Document Object Model 的缩写,即 文档对象模型,是所有浏览器公共遵守的标准,DOM 将HTML和XML文档映射成一个由不同节点组成的树型结构,俗称DOM树。其核心对象是document,用于描述DOM树的状态和属性,并提供对应的DOM操作API。随着历史的发展,DOM 被划分为1级、2级、3级,共3个级别:1级DOM - 在1998年10月份成为W3C的提议,由 DOM 核心与 DOM HTML 两个模块组成。DOM核心能映射以XML为基础的文档结构,允许获取和操作文档的任意部分。DOM HTML通过添加HTML专用的对象与函数对DOM核心进行了扩展。2级DOM - 鉴于1级DOM仅以映射文档结构为目标,DOM 2级面向更为宽广。通过对原有DOM的扩展,2级DOM通过对象接口增加了对鼠标和用户界面事件(DHTML长期支持鼠标与用户界面事件)、范围、遍历(重复执行DOM文档)和层叠样式表(CSS)的支持。同时也对DOM 1的核心进行了扩展,从而可支持XML命名空间。3级DOM - 通过引入统一方式载入和保存文档和文档验证方法对DOM进行进一步扩展,DOM3包含一个名为“DOM载入与保存”的新模块,DOM核心扩展后可支持XML1.0的所有内容,包括XML Infoset、 XPath、和XML Base。浏览器对不同级别DOM的支持情况如下所示:从图中可以看出,移动端常用的 webkit 内核浏览器目前只支持 DOM2,而不支持 DOM3 。3、事件系统事件是用户与页面交互的基础,到目前为止,DOM事件从PC端的 鼠标事件(mouse) 发展到了 移动端的 触摸事件(touch) 和 手势事件(guesture),touch事件描述了手指在屏幕操作的每一个细节,guesture 则是描述多手指操作时更为复杂的情况,总结如下:第一根手指放下,触发 touchstart,除此之外什么都不会发生手指滑动时,触发touchmove第二根手指放下,触发 gesturestart 触发第二根手指的 touchstart 立即触发 gesturechange 任意手指移动,持续触发 gesturechange第二根手指弹起时,触发 gestureend,以后将不会再触发 gesturechange 触发第二根手指的 touchend 触发touchstart (多根手指在屏幕上,提起一根,会刷新一次全局touch) 弹起第一根手指,触发 touchend 更多关于手势事件的介绍请参考:http://blog.sina.com.cn/s/blog_601b97ee0101azty.htmlDOM2.0 模型将事件处理流程分为三个阶段,即 事件捕获阶段、事件处理阶段、事件冒泡阶段,如图所示:事件捕获:当用户触发点击事件后,顶层对象 document 就会发出一个事件流,从最外层的 DOM 节点向目标元素节点传递,最终到达目标元素。事件处理:当到达目标元素之后,执行目标元素绑定的处理函数。如果没有绑定监听函数,则不做任何处理。事件冒泡:事件流从目标元素开始,向最外层DOM节点传递,途中如果有节点绑定了事件处理函数,这些函数就会被执行。利用事件冒泡原理可以实现 “事件委托”。所谓事件委托,就是在父元素上添加事件监听器,用以监听和处理子元素的事件,避免重复为子元素绑定相同的事件。当目标元素的事件被触发以后,这个事件就从目标元素开始,向最外层元素传递,最终冒泡到父元素上,父元素再通过 event.target 获取到这个目标元素,这样做的好处是,父元素只需绑定一个事件监听,就可以对所有子元素的事件进行处理了,从而减少了不必要的事件绑定,对页面性能有一定的提升。4、HTML 渲染流程渲染引擎一开始会从网络层获取请求文档的内容,内容的大小一般限制在 8000 个块以内。然后进行如下所示的基本流程: HTML Parser 解析 HTML 文档,并将各标记逐个转化为 DOM 节点,生成 “DOM树”。CSS Parser 解析外部 CSS 文件以及样式元素中的样式数据,生成 “CSSOM树”。“DOM树” 和 “CSSOM树” 通过 “附着” 将创建另一个树结构:“渲染树”。渲染树包含多个带有视觉属性(如颜色和尺寸)的矩形,这些矩形的排列顺序就是它们将在屏幕上显示的顺序。渲染树构建完毕之后,进入“布局” 处理阶段,也就是为每个节点分配一个应出现在屏幕上的确切坐标。下一个阶段是 “绘制”,渲染引擎会遍历渲染树,由用户界面后端层将每个节点绘制出来。需要注意的是:这是一个渐进的过程。为达到更好的用户体验,呈现引擎会力求尽快将内容显示在屏幕上。它不必等到整个 HTML 文档解析完毕之后,就会开始构建呈现树和设置布局。在不断接收和处理来自网络的其余内容的同时,呈现引擎会将部分内容解析并显示出来。5、重绘与回流当渲染树中的一部分(或全部)因为元素的规模尺寸、布局、隐藏等改变而需要重新构建,就称为 “回流”。当渲染树中的一些元素需要更新属性,而这些属性只是影响元素的外观,风格,而不会影响布局,就称为 “重绘”。回流必将引起重绘,而重绘不一定会引起回流。引起重绘和回流的操作如下:添加、删除元素(回流+重绘)隐藏元素,display: none(回流+重绘),visibility:hidden(只重绘,不回流)移动元素,比如改变 top、left 的值,或者移动元素到另外一个父元素中。(重绘+回流)对 style 的操作(对不同的属性操作,影响不一样)还有一种是用户的操作,比如改变浏览器大小,改变浏览器的字体大小等(回流+重绘)注意问题:transform 操作不会引起重绘和回流,是一种高效率的渲染。这是因为transform属于合成属性,对合成属性进行transition/animation 动画时将会创建一个合成层,这使得动画元素在一个独立的层中进行渲染,当元素的内容没有发生改变,就没必要进行重绘,浏览器会通过重新复合来创建动画帧。6、本地存储本地存储最原始的方式就是 cookie,cookie 是存放在本地浏览器的一段文本,数据以键值对的形式保存,可以设置过期时间。但是 cookie 不适合大量数据的存储,因为每请求一次页面,cookie 都会发送给服务器,这使得 cookie 速度很慢而且效率也不高。因此cookie的大小被限制为4k左右(不同浏览器可能不同,分HOST),如下所示:Firefox 和 Safari 允许 cookie 多达 4097 个字节,包括名(name)、值(value) 和 等号。Opera 允许 cookie 多达 4096 个字节,包括:名(name)、值(value) 和 等号。Internet Explorer 允许 cookie 多达4095个字节,包括:名(name)、值(value) 和 等号。在所有浏览器中,任何 cookie 大小超过限制都被忽略,且永远不会被设置。html5 提供了两种在客户端存储数据的新方法:localStorage 和 sessionStorage, 它们都是以 key/value 的形式来存储数据,前者是永久存储,后者的存储期限仅限于浏览器会话(session),即当浏览器窗口关闭后,sessionStorage中的数据被清除。localStorage 的存储空间大约5M左右(不同浏览器可能不同,分 HOST),这个相当于一个5M大小的前端数据库,相比于cookie,可以节约带宽,但localStorage在浏览器隐私模式下是不可读取的,当存储数据超过了localStorage 的存储空间后会抛出异常。此外,H5还提供了 websql 和 indexedDB,允许前端以关系型数据库的方式来存储本地数据,相对来说,这个功能目前应用的场景比较少,此处不作介绍。7、浏览器缓存机制浏览器缓存机制是指通过 HTTP 协议头里的 Cache-Control (或 Expires) 和 Last-Modified (或 Etag) 等字段来控制文件缓存的机制。Cache-Control 用于控制文件在本地缓存有效时长。最常见的,比如服务器回包:Cache-Control:max-age=600 表示文件在本地应该缓存,且有效时长是600秒 (从发出请求算起)。在接下来600秒内,如果有请求这个资源,浏览器不会发出 HTTP 请求,而是直接使用本地缓存的文件。Last-Modified 是标识文件在服务器上的最新更新时间。下次请求时,如果文件缓存过期,浏览器通过 If-Modified-Since 字段带上这个时间,发送给服务器,由服务器比较时间戳来判断文件是否有修改。如果没有修改,服务器返回304告诉浏览器继续使用缓存;如果有修改,则返回200,同时返回最新的文件。Cache-Control 通常与 Last-Modified 一起使用。一个用于控制缓存有效时间,一个在缓存失效后,向服务查询是否有更新。Cache-Control 还有一个同功能的字段:Expires。Expires 的值一个绝对的时间点,如:Expires: Thu, 10 Nov 2015 08:45:11 GMT,表示在这个时间点之前,缓存都是有效的。Expires 是 HTTP1.0 标准中的字段,Cache-Control 是 HTTP1.1 标准中新加的字段,功能一样,都是控制缓存的有效时间。当这两个字段同时出现时,Cache-Control 是高优化级的。Etag 也是和 Last-Modified 一样,对文件进行标识的字段。不同的是,Etag 的取值是一个对文件进行标识的特征字串。在向服务器查询文件是否有更新时,浏览器通过 If-None-Match 字段把特征字串发送给服务器,由服务器和文件最新特征字串进行匹配,来判断文件是否有更新。没有更新回包304,有更新回包200。Etag 和 Last-Modified 可根据需求使用一个或两个同时使用。两个同时使用时,只要满足基中一个条件,就认为文件没有更新。浏览缓存的基本框架如下图所示:8、History用户访问网页的历史记录通常会被保存在一个类似于栈的对象中,即 history 对象,点击返回就出栈,跳下一页就入栈。它提供了以下方法来操作页面的前进和后退:window.history.back( ) 返回到上一个页面window.history.forward( ) 进入到下一个页面window.history.go( [delta] ) 跳转到指定页面HTML5 对History Api 进行了增强,新增了两个Api 和一个事件,分别是 pushState、replaceState 和 onpopstate:pushState 是往 history 对象里添加一个新的历史记录。replaceState 是替换 history 对象中的当前历史记录。onpopstate 当点击浏览器后退按钮或JS调用 history.back 都会触发该事件。onpopstate 和 onhashchange 的区别:onhashchange 本来是用来监听hash变化的,但可以被利用来做客户端前进和后退事件的监听,而 onpopstate 是专门用来监听浏览器前进后退的,不仅可以支持 hash,非 hash 的同源 url 也支持。9、HTML5 离线缓存HTML5离线缓存又叫Application Cache,是从浏览器的缓存中分出来的一块缓存区,如果要在这个缓存中保存数据,可以使用一个描述文件(manifest file),列出要下载和缓存的资源。manifest 文件是简单的文本文件,它告知浏览器被缓存的内容(以及不缓存的内容)。manifest 文件可分为三个部分:CACHE MANIFEST - 在此标题下列出的文件将在首次下载后进行缓存NETWORK - 在此标题下列出的文件需要与服务器的连接,且不会被缓存FALLBACK - 在此标题下列出的文件规定当页面无法访问时的回退页面(比如 404 页面)离线缓存为应用带来三个优势:离线浏览 - 用户可在应用离线时使用它们速度 - 已缓存资源加载得更快减少服务器负载 - 浏览器将只从服务器下载更新过或更改过的资源。10、Web语义化与SEOWeb语义化是指使用语义恰当的标签,使页面有良好的结构,页面元素有含义,能够让人和搜索引擎都容易理解。SEO是指在了解搜索引擎自然排名机制的基础之上,对网站进行内部及外部的调整优化,改进网站在搜索引擎中关键词的自然排名,获得更多的展现量,吸引更多目标客户点击访问网站,从而达到互联网营销及品牌建设的目标。搜索引擎通过爬虫技术获取的页面就是由一堆 html 标签组成的代码,人可以通过可视化的方式来判断页面上哪些内容是重点,而机器做不到。但搜索引擎会根据标签的含义来判断内容的权重,因此,在合适的位置使用恰当的标签,使整个页面的语义明确,结构清晰,搜索引擎才能正确识别页面中的重要内容,并予以较高的权值。比如h1~h6这几个标签在SEO中的权值非常高,用它们作页面的标题就是一个简单的SEO优化。宏观篇一、JavaScript基础变量和类型1. JavaScript规定了几种语言类型2. JavaScript对象的底层数据结构是什么3. Symbol类型在实际开发中的应用、可手动实现一个简单的 Symbol4. JavaScript中的变量在内存中的具体存储形式5.基本类型对应的内置对象,以及他们之间的装箱拆箱操作6.理解值类型和引用类型7. null和 undefined的区别8.至少可以说出三种判断 JavaScript数据类型的方式,以及他们的优缺点,如何准确的判断数组类型9.可能发生隐式类型转换的场景以及转换原则,应如何避免或巧妙应用10.出现小数精度丢失的原因, JavaScript可以存储的最大数字、最大安全数字, JavaScript处理大数字的方法、避免精度丢失的方法原型和原型链1.理解原型设计模式以及 JavaScript中的原型规则2. instanceof的底层实现原理,手动实现一个 instanceof4.实现继承的几种方式以及他们的优缺点5.至少说出一种开源项目(如 Node)中应用原型继承的案例6.可以描述 new一个对象的详细过程,手动实现一个 new操作符7.理解 es6class构造以及继承的底层实现原理作用域和闭包1.理解词法作用域和动态作用域2.理解 JavaScript的作用域和作用域链3.理解 JavaScript的执行上下文栈,可以应用堆栈信息快速定位问题4. this的原理以及几种不同使用场景的取值5.闭包的实现原理和作用,可以列举几个开发中闭包的实际应用6.理解堆栈溢出和内存泄漏的原理,如何防止7.如何处理循环的异步操作8.理解模块化解决的实际问题,可列举几个模块化方案并理解其中原理执行机制1.为何 try里面放 return, finally还会执行,理解其内部机制2. JavaScript如何实现异步编程,可以详细描述 EventLoop机制3.宏任务和微任务分别有哪些4.可以快速分析一个复杂的异步嵌套逻辑,并掌握分析方法5.使用 Promise实现串行6. Node与浏览器 EventLoop的差异7.如何在保证页面运行流畅的情况下处理海量数据语法和API1.理解 ECMAScript和 JavaScript的关系2.熟练运用 es5、 es6提供的语法规范,3.熟练掌握 JavaScript提供的全局对象(例如 Date、 Math)、全局函数(例如 decodeURI、 isNaN)、全局属性(例如 Infinity、 undefined)4.熟练应用 map、 reduce、 filter 等高阶函数解决问题5. setInterval需要注意的点,使用 settimeout实现 setInterval6. JavaScript提供的正则表达式 API、可以使用正则表达式(邮箱校验、 URL解析、去重等)解决常见问题7. JavaScript异常处理的方式,统一的异常处理方案二、HTML和CSSHTML1.从规范的角度理解 HTML,从分类和语义的角度使用标签2.常用页面标签的默认样式、自带属性、不同浏览器的差异、处理浏览器兼容问题的方式3.元信息类标签( head、 title、 meta)的使用目的和配置方法4. HTML5离线缓存原理5.可以使用 CanvasAPI、 SVG等绘制高性能的动画CSS1. CSS盒模型,在不同浏览器的差异2. CSS所有选择器及其优先级、使用场景,哪些可以继承,如何运用 at规则3. CSS伪类和伪元素有哪些,它们的区别和实际应用4. HTML文档流的排版规则, CSS几种定位的规则、定位参照物、对文档流的影响,如何选择最好的定位方式,雪碧图实现原理5.水平垂直居中的方案、可以实现 6种以上并对比它们的优缺点6. BFC实现原理,可以解决的问题,如何创建 BFC7.可使用 CSS函数复用代码,实现特殊效果8. PostCSS、 Sass、 Less的异同,以及使用配置,至少掌握一种9. CSS模块化方案、如何配置按需加载、如何防止 CSS阻塞渲染10.熟练使用 CSS实现常见动画,如渐变、移动、旋转、缩放等等11. CSS浏览器兼容性写法,了解不同 API在不同浏览器下的兼容性情况12.掌握一套完整的响应式布局方案手写1.手写图片瀑布流效果2.使用 CSS绘制几何图形(圆形、三角形、扇形、菱形等)3.使用纯 CSS实现曲线运动(贝塞尔曲线)4.实现常用布局(三栏、圣杯、双飞翼、吸顶),可是说出多种方式并理解其优缺点三、计算机基础关于编译原理,不需要理解非常深入,但是最基本的原理和概念一定要懂,这对于学习一门编程语言非常重要编译原理1.理解代码到底是什么,计算机如何将代码转换为可以运行的目标程序2.正则表达式的匹配原理和性能优化3.如何将 JavaScript代码解析成抽象语法树( AST)4. base64的编码原理5.几种进制的相互转换计算方法,在 JavaScript中如何表示和转换网络协议1.理解什么是协议,了解 TCP/IP网络协议族的构成,每层协议在应用程序中发挥的作用2.三次握手和四次挥手详细原理,为什么要使用这种机制3.有哪些协议是可靠, TCP有哪些手段保证可靠交付4. DNS的作用、 DNS解析的详细过程, DNS优化原理5. CDN的作用和原理6. HTTP请求报文和响应报文的具体组成,能理解常见请求头的含义,有几种请求方式,区别是什么7. HTTP所有状态码的具体含义,看到异常状态码能快速定位问题8. HTTP1.1、 HTTP2.0带来的改变9. HTTPS的加密原理,如何开启 HTTPS,如何劫持 HTTPS请求10.理解 WebSocket协议的底层原理、与 HTTP的区别设计模式1.熟练使用前端常用的设计模式编写代码,如单例模式、装饰器模式、代理模式等2.发布订阅模式和观察者模式的异同以及实际应用3.可以说出几种设计模式在开发中的实际应用,理解框架源码中对设计模式的应用四、数据结构和算法据我了解的大部分前端对这部分知识有些欠缺,甚至抵触,但是,如果突破更高的天花板,这部分知识是必不可少的,而且我亲身经历——非常有用!JavaScript编码能力1.多种方式实现数组去重、扁平化、对比优缺点2.多种方式实现深拷贝、对比优缺点3.手写函数柯里化工具函数、并理解其应用场景和优势4.手写防抖和节流工具函数、并理解其内部原理和应用场景5.实现一个 sleep函数手动实现前端轮子1.手动实现 call、apply、bind2.手动实现符合 Promise/A+规范的 Promise、手动实现 asyncawait3.手写一个 EventEmitter实现事件发布、订阅4.可以说出两种实现双向绑定的方案、可以手动实现5.手写 JSON.stringify、 JSON.parse6.手写一个模版引擎,并能解释其中原理7.手写 懒加载、 下拉刷新、 上拉加载、 预加载等效果数据结构1.理解常见数据结构的特点,以及他们在不同场景下使用的优缺点2.理解 数组、 字符串的存储原理,并熟练应用他们解决问题3.理解 二叉树、 栈、 队列、 哈希表的基本结构和特点,并可以应用它解决问题4.了解 图、 堆的基本结构和使用场景算法1.可计算一个算法的时间复杂度和空间复杂度,可估计业务逻辑代码的耗时和内存消耗2.至少理解五种排序算法的实现原理、应用场景、优缺点,可快速说出时间、空间复杂度3.了解递归和循环的优缺点、应用场景、并可在开发中熟练应用4.可应用 回溯算法、 贪心算法、 分治算法、 动态规划等解决复杂问题5.前端处理海量数据的算法方案五、运行环境我们需要理清语言和环境的关系:ECMAScript描述了 JavaScript语言的语法和基本对象规范浏览器作为 JavaScript的一种运行环境,为它提供了:文档对象模型( DOM),描述处理网页内容的方法和接口、浏览器对象模型( BOM),描述与浏览器进行交互的方法和接口Node也是 JavaScript的一种运行环境,为它提供了操作 I/O、网络等 API浏览器API1.浏览器提供的符合 W3C标准的 DOM操作 API、浏览器差异、兼容性2.浏览器提供的浏览器对象模型 ( BOM)提供的所有全局 API、浏览器差异、兼容性3.大量 DOM操作、海量数据的性能优化(合并操作、 Diff、 requestAnimationFrame等)4.浏览器海量数据存储、操作性能优化5. DOM事件流的具体实现机制、不同浏览器的差异、事件代理6.前端发起网络请求的几种方式及其底层实现、可以手写原生 ajax、 fetch、可以熟练使用第三方库7.浏览器的同源策略,如何避免同源策略,几种方式的异同点以及如何选型8.浏览器提供的几种存储机制、优缺点、开发中正确的选择9.浏览器跨标签通信浏览器原理1.各浏览器使用的 JavaScript引擎以及它们的异同点、如何在代码中进行区分2.请求数据到请求结束与服务器进行了几次交互3.可详细描述浏览器从输入 URL到页面展现的详细过程4.浏览器解析 HTML代码的原理,以及构建 DOM树的流程5.浏览器如何解析 CSS规则,并将其应用到 DOM树上6.浏览器如何将解析好的带有样式的 DOM树进行绘制7.浏览器的运行机制,如何配置资源异步同步加载8.浏览器回流与重绘的底层原理,引发原因,如何有效避免9.浏览器的垃圾回收机制,如何避免内存泄漏10.浏览器采用的缓存方案,如何选择和控制合适的缓存方案Node1.理解 Node在应用程序中的作用,可以使用 Node搭建前端运行环境、使用 Node操作文件、操作数据库等等2.掌握一种 Node开发框架,如 Express, Express和 Koa的区别3.熟练使用 Node提供的 API如 Path、 Http、 ChildProcess等并理解其实现原理4. Node的底层运行原理、和浏览器的异同5. Node事件驱动、非阻塞机制的实现原理六、框架和类库轮子层出不穷,从原理上理解才是正道TypeScript1.理解 泛型、 接口等面向对象的相关概念, TypeScript对面向对象理念的实现2.理解使用 TypeScript的好处,掌握 TypeScript基础语法3. TypeScript的规则检测原理4.可以在 React、 Vue等框架中使用 TypeScript进行开发React1. React和 vue选型和优缺点、核心架构的区别2. React中 setState的执行机制,如何有效的管理状态3. React的事件底层实现机制4. React的虚拟 DOM和 Diff算法的内部实现5. React的 Fiber工作原理,解决了什么问题6. ReactRouter和 VueRouter的底层实现原理、动态加载实现原理7.可熟练应用 ReactAPI、生命周期等,可应用 HOC、 render props、 Hooks等高阶用法解决问题8.基于 React的特性和原理,可以手动实现一个简单的 ReactVue1.熟练使用 Vue的 API、生命周期、钩子函数2. MVVM框架设计理念3. Vue双向绑定实现原理、 Diff算法的内部实现4. Vue的事件机制5.从 template转换成真实 DOM的实现机制多端开发1.单页面应用( SPA)的原理和优缺点,掌握一种快速开发 SPA的方案2.理解 Viewport、 em、 rem的原理和用法,分辨率、 px、 ppi、 dpi、 dp的区别和实际应用3.移动端页面适配解决方案、不同机型适配方案4.掌握一种 JavaScript移动客户端开发技术,如 ReactNative:可以搭建 ReactNative开发环境,熟练进行开发,可理解 ReactNative的运作原理,不同端适配5.掌握一种 JavaScript PC客户端开发技术,如 Electron:可搭建 Electron开发环境,熟练进行开发,可理解 Electron的运作原理6.掌握一种小程序开发框架或原生小程序开发7.理解多端框架的内部实现原理,至少了解一个多端框架的使用数据流管理1.掌握 React和 Vue传统的跨组件通信方案,对比采用数据流管理框架的异同2.熟练使用 Redux管理数据流,并理解其实现原理,中间件实现原理3.熟练使用 Mobx管理数据流,并理解其实现原理,相比 Redux有什么优势4.熟练使用 Vuex管理数据流,并理解其实现原理5.以上数据流方案的异同和优缺点,不情况下的技术选型实用库1.至少掌握一种 UI组件框架,如 antd design,理解其设计理念、底层实现2.掌握一种图表绘制框架,如 Echart,理解其设计理念、底层实现,可以自己实现图表3.掌握一种 GIS开发框架,如百度地图 API4.掌握一种可视化开发框架,如 Three.js、 D35.工具函数库,如 lodash、 underscore、 moment等,理解使用的工具类或工具函数的具体实现原理开发和调试1.熟练使用各浏览器提供的调试工具2.熟练使用一种代理工具实现请求代理、抓包,如 charls3.可以使用 Android、 IOS模拟器进行调试,并掌握一种真机调试方案4.了解 Vue、 React等框架调试工具的使用七、前端工程前端工程化:以工程化方法和工具提高开发生产效率、降低维护难度项目构建1.理解 npm、 yarn依赖包管理的原理,两者的区别2.可以使用 npm运行自定义脚本3.理解 Babel、 ESLint、 webpack等工具在项目中承担的作用4. ESLint规则检测原理,常用的 ESLint配置5. Babel的核心原理,可以自己编写一个 Babel插件6.可以配置一种前端代码兼容方案,如 Polyfill7. Webpack的编译原理、构建流程、热更新原理, chunk、 bundle和 module的区别和应用8.可熟练配置已有的 loaders和 plugins解决问题,可以自己编写 loaders和 pluginsnginx1.正向代理与反向代理的特点和实例2.可手动搭建一个简单的 nginx服务器、3.熟练应用常用的 nginx内置变量,掌握常用的匹配规则写法4.可以用 nginx实现请求过滤、配置 gzip、负载均衡等,并能解释其内部原理开发提速1.熟练掌握一种接口管理、接口 mock工具的使用,如 yapi2.掌握一种高效的日志埋点方案,可快速使用日志查询工具定位线上问题3.理解 TDD与 BDD模式,至少会使用一种前端单元测试框架版本控制1.理解 Git的核心原理、工作流程、和 SVN的区别2.熟练使用常规的 Git命令、 git rebase、 git stash等进阶命令3.可以快速解决 线上分支回滚、 线上分支错误合并等复杂问题持续集成1.理解 CI/CD技术的意义,至少熟练掌握一种 CI/CD工具的使用,如 Jenkins2.可以独自完成架构设计、技术选型、环境搭建、全流程开发、部署上线等一套完整的开发流程(包括 Web应用、移动客户端应用、 PC客户端应用、小程序、 H5等等)八、项目和业务后端技能1.了解后端的开发方式,在应用程序中的作用,至少会使用一种后端语言2.掌握数据最终在数据库中是如何落地存储的,能看懂表结构设计、表之间的关联,至少会使用一种数据库性能优化1.了解前端性能衡量指标、性能监控要点,掌握一种前端性能监控方案2.了解常见的 Web、 App性能优化方案3. SEO排名规则、 SEO优化方案、前后端分离的 SEO4. SSR实现方案、优缺点、及其性能优化5. Webpack的性能优化方案6. Canvas性能优化方案7. React、 Vue等框架使用性能优化方案前端安全1. XSS攻击的原理、分类、具体案例,前端如何防御2. CSRF攻击的原理、具体案例,前端如何防御3. HTTP劫持、页面劫持的原理、防御措施业务相关1.能理解所开发项目的整体业务形态、业务目标、业务架构,可以快速定位线上业务问题2.能理解所开发项目整体的技术架构、能快读的根据新需求进行开发规划、能快速根据业务报警、线上日志等定位并解决线上技术问题3.可以将自己的想法或新技术在业务中落地实践,尽量在团队中拥有一定的不可替代性九、小结希望你阅读本篇文章后可以达到以下几点:从知识清单中找到自己的知识盲点与欠缺具有知识体系化的思想,开始建立自己的知识体系阅读文章时将知识归类到知识体系中,并不断完善自己的知识体系
近年来,世界各国掀起以工业物联网(IIoT)为代表的“第四次工业革命”,由其构成的大量传感、计算、通信、网络和存储技术的设备成为更多行业的重要部分。IIoT在提高运营效率方面,让大多数公司的生产力、可扩展性和成本效益得到显著改善,在整个制造业和工业流程中呈现出强劲的市场发展势头。虽然IIoT促成了更广泛的创新,但也面临着不断变化的新威胁,保护IIoT及工业大数据安全成为当下关注的重要问题。一.工业物联网和工业大数据的定义和特征1.工业物联网的定义和特征(1)工业物联网的定义。IIoT 是物联网(IoT)的子类别,指的是使用自动化、相互关联的传感器、设备和机械来推动工业规模的运营效率。2011年,德国率先提出工业物联网概念;2013年,德国正式确立“工业物联网”目标。IoT是一个由汽车、机器、家用电器等实物组成的网络,这些实物利用传感器和API实现互联,通过互联网进行数据交换。在制造业中,IoT摇身一变,成为了IIoT。IIoT涵盖广泛的工业级应用,从AR设备和互联协作机器人到医疗设备、库存跟踪和预测性维护,凭借网络信息技术(IT)和操作技术(OT)之间的连接,优化利用机器对机器(M2M)技术,支持企业执行从远程监控、遥测到预测性维护的所有任务。IIoT将具有感知、监控能力的各类采集、控制传感器或控制器,以及移动通信、智能分析等技术,通过基于云的数据和互联设备,不断融入到制造和工业领域生产过程的各个环节,从而大幅度提高制造效率,改善产品质量、降低产品成本和资源消耗,最终实现将传统工业提升到智能化的新阶段。(2)工业物联网的特征。IIoT专注于大规模改善制造业、物流、能源和航空等行业的工业环境,利用从小型环境传感器到供应链监控和高级分析等一系列工具和技术,做出更好的业务决策并获得竞争优势。随着工业与互联网全面深度融合,IIoT通过四大特征展示出未来美好蓝图:一是智能感知。IIoT利用射频识别、传感器等技术,随时获取产品从生产过程直到销售至终端用户使用的各个阶段信息数据。二是互联传输。IIoT以专用网络和互联网相连的方式,实时将设备信息准确无误传递出去。它对网络有极强的依赖性并更注重数据交互。三是智能处理。IIoT利用云计算、云存储、模糊识别及神经网络等智能计算技术,对数据和信息进行分析处理,结合大数据深挖数据的价值。四是自我优化。IIoT通过将工业资源数据处理、分析和存储,形成有效的可继承的知识库、模型库和资源库,经过不断迭代自我优化,实现全方位互相连通以达到最优目标。2.工业大数据的定义和特征(1)工业大数据的定义。工业大数据是工业领域产品和服务全生命周期数据的总称,包括工业企业在研究发展设计、生产制造、经营管理、运维服务等环节中生成和使用的数据,以及IIoT平台中的数据等,主要是指工业领域在业务活动和过程中所产生、采集、处理、存储、传输和使用的海量数据的综合。从来源上,可粗略分为内部数据和外部数据两大类:内部数据指来自工厂内部的数据,主要包括生产经营业务数据和机器设备数据;外部数据指来源于工厂外部的数据,主要包括来自市场、客户、政府、供应链等外部环境的信息和数据。工业大数据是智能制造与工业物联网的核心,本质是通过促进数据自动流动解决控制和业务问题,减少决策过程带来的不确定性,克服人工决策的失误。随着第四次工业革命的深入展开,工业大数据日渐成为工业发展最宝贵的战略资源,是推动制造数字化、网络化、智能化发展的关键生产要素。(2)工业大数据的特征。工业大数据不仅拥有人们通常谈论的传统大数据“4V”特征:“规模性”(Volume),数据呈爆发性增长,需要分析大量数据;“高速性”(Velocity),恢复信息、处理信息和做出决定的时间最短;“多样性”(Variety),数据来源多、数据类型多,信息源之间没有连接,以非结构化方式呈现数据;“价值性”(Varacity),大数据背后潜藏的价值巨大,在获得数据后必须诚实处理。而且拥有反映工业逻辑的“多模态、强关联、高通量”等新特征:“多模态”,工业大数据是工业系统在网络空间的镜像,必须反映工业系统的系统化特征和各方面要素,数据记录必须追求完整。“强关联”,工业数据之间的关联并不是数据字段的关联,其本质是物理对象之间和过程的语义关联,包括产品部件间的关联、生产过程的数据关联、产品生命周期不同环节的数据关联和不同学科不同专业的数据关联。“高通量”,嵌入了传感器的智能互联产品成为工业互联网时代的重要标志,工业物联网数据已成为工业大数据的主体。二.工业物联网和工业大数据的优势和风险1.工业物联网的优势和风险(1)工业物联网的优势。IIoT可利用从小型环境传感器到供应链监控和高级分析等一系列工具和技术,在业务方面做出更好决策从而获得竞争优势。一是改进库存管理-基于云的库存系统。IIoT以各种方式使库存规划流程受益。例如,当耗材低于特定阈值时,可以使用货架级传感器订购,考虑存储成本、过期材料等因素,减少过度订购造成的浪费,保持了生产线移动所需的供应。二是获得供应链的可见性。IIoT技术使用户可以通过跟踪材料、制造周期和单个产品在全球供应链中移动获取实时信息,这些数据可以帮助制造商预测潜在问题,基于各种因素做出采购决策。在供应商方面,IIoT支持更高的透明度,从而准确评估周转时间、可用材料和工作进度等状态。三是改进产品设计和质量控制。IIoT传感器可用于收集与产品周期中每个阶段关联的产品数据和第三方数据,帮助确定外部因素对最终产品的影响。例如,工厂温度、使用哪种原材料以及其他环境因素。跟踪浪费或运输影响等情况,以努力创建更可持续的最终产品。四是实时洞察提供业务敏捷性。IIoT通过从各种“事物”收集数据,与高级分析软件以及交易信息、客户反馈和市场信号共同进行分析,能够在宏观层面上评估数据,从而能够就维护需求、潜在供应链中断和流程改进方面做出明智决策。五是位置跟踪提供的成本节约。IIoT传感器允许组织在设备上启用位置跟踪,帮助工人能够很方便地找到设备所在位置。跟踪设备可以减少步行时间,帮助组织减少盗窃行为。这对于在非工作时间将设备留在工地的建筑公司来说非常有帮助。六是通过预测性维护减少停机时间和维修成本。设备监控是一种预防性工作,无论是否需要服务,都是根据时间安排手动完成。IIoT预测性维护使组织能够节省与预防性维护相关的不必要的人工成本,使用IIoT技术确定何时需要服务,帮助公司提前发现系统故障,延长昂贵设备的使用寿命,降低与零件、人工和停机时间相关的成本。七是保障安全和合规。IIoT可用于保护工人和消费者的安全。在能源部门,传感器可用于指示气体泄漏。或者,它可能会提醒操作员某个油井正在接近危险的压力水平,在爆炸前发出警告。IIoT可以帮助确保制造设施内的工人安全,传感器可用于在操作危险设备或在设施的远程部分执行维修时监控工人的位置,连接到IIoT的安全设备可以提醒附近人员,确保立即采取安全行动。八是捕获实时动态并立即采取行动。IIoT是更大的物联网生态系统的一部分,该生态系统由收集和传输数据的设备、计算机和对象网络组成,然后将该信息发送到云。边缘计算优化了IIoT系统中使用的传感器、计算机和设备,使计算更接近那些主动生成数据,捕获实时动态并及时发现安全威胁,从而减少系统中的故障点。(2)工业物联网的风险。IIoT最初定义便具有高度互联互通、网络规模巨大、比IoT风险更高的特点。一个完整的IIoT系统,拥有数万个“数据节点”,一旦某个节点被攻破渗透,破坏将通过节点网络高速扩散,从而对整个系统造成巨大影响。当前,IIoT领域在信息安全方面危机四伏,黑客通过系统漏洞对IIoT应用进行攻击达到破坏系统或者窃取数据的目的。IIoT系统中包含的大量有价值数据,也吸引着各方去攻击挑战。当前,IIoT面临的信息安全风险主要包括:一是网络安全威胁。许多与IIoT相关的安全问题可以追溯到缺乏基本的安全保护。公开的端口、过时的软件应用程序或粗浅的身份验证。这些漏洞直接连接到网络,使破坏者能够轻松访问整个系统。IIoT系统将IT与OT相结合,为混合增加了另一层潜在威胁。网络攻击所带来的安全威胁还包括财务损失、数据泄露、声誉损害等。二是数据集成风险。IIoT采用的最大障碍之一是数据集成。在工厂环境中,一个系统中可能包括数千个连接的传感器和设备、新设备和软件系统以及旧机器。虽然互联智能设备使组织能够收集到比以往更多的数据,但在实施过程中难免产生混乱。例如,由不同制造商制造的传感器可能具有不同的软件要求,因此很难从整体层面上分析数据。三是设备安全风险。许多负责托管IIoT资产的OT环境面临的最大问题是,不仅要应对IIoT设备数量的不断增长,还要支撑一些比较陈旧的工业控制系统(ICS),其中有些系统运行已长达30年。这其中的许多资产均已实现联网,很容易成为网络恶意攻击者的潜在目标。四是系统漏洞风险。在ICS系统中发现漏洞虽可通过推出的补丁予以修复,但对大批IIoT资产进行修复就意味着大批设备需要下线,而这对于严重依赖设备高可用性的关键基础设施或生产线来说,绝对是不可取的。所以最终的结果就是,补丁程序往往被扔在一边,而且随着设备的日益老化,给恶意攻击者留下可借以破坏IIoT资产的大量漏洞。五是物联网自身安全风险。IoT安全是IIoT的保障。信息系统的安全问题原本就十分突出,IoT的出现让现状更加恶化。IoT安全问题随着使用规模的扩大而凸显。目前,接入互联网的IoT设备都非常不理想,甚至会产生新的安全问题。这些设备不可靠的操作和安全模型,有可能影响到其他设备。2.工业大数据的优势和风险(1)工业大数据的优势。Gartner报告称,2019年互联设备数量已超过142亿台,预计2021年将达到250亿台。这是一个巨大的数量,并将产生海量数据。工业大数据在工业控制系统中除了提高决策效率和速度外,将大数据整合到工业环境中时还具有以下优势:一是预测流程中涉及的资产故障或问题,从而提前采取行动;积极组织维修工程,提高服务质量。二是改善过程中产品的生成或需求平衡。得益于采购和销售数据,组织可以改善对制造流程的控制。三是异常更正。允许生成有关基础结构性能的定期报告,快速纠正异常。四是提高数据效率,降低供应成本,最大限度地利用数据,采用新的数据使用方式,促进可再生资源整合。(2)工业大数据的风险。一是数据安全性方面。数据安全包括密钥管理、信任根、身份验证、访问控制以及审核和监视。IIoT将大量支持网络的新设备添加到企业或现场网络中,从而显著增加了其攻击面。IoT设备通常设计用于低成本和低资源消耗,因此难以保护。二是数据完整性方面。这意味着要保持整个组织数据的准确性和有效性,确保数据不会被不当更改或销毁。在工业环境中,数据完整性和系统完整性密切相关,因为对工业系统和通信渠道的操纵直接会导致数据完整性的丧失。三是数据隐私和机密性方面。随着IIoT将更多的人和事物在线连接,个人数据的保护和适当使用变得越来越重要,这也是医疗保健和智慧城市领域的一个特别优先事项。目前,在工业大数据方面所面临的主要攻击方式包括:第一种是外部恶意攻击,好比炸毁管道。这可对经济产生破坏性影响。第二种是内部威胁,例如员工不经意的失误触发了安全漏洞;在防火墙外使用笔记本电脑,而笔记本电脑被感染;员工因错过晋升等故意做错事来破坏公司的数据系统。三.构建工业物联网及工业大数据安全的方法探讨IoT最大的问题之一是确保网络、数据和设备的安全,而保护IIoT是一项多方面的工作,其安全性更需要全方位考虑。IIoT的普及,使网络边缘的联网器件数量不断增加,每台设备都有可能联网并共享数据,这将大幅度增加大多数工矿企业的威胁面。因此,对于IIoT及工业大数据安全问题,至关重要的是要在数据产生的地方从设备层保护好网络。数据保护是整个组织都关心的问题,而且网络越复杂,对数据保护的需要也越大。总之,需要结合大动作和小调整,以确保网络、系统、数据和设备受到保护。(1)运行安全测试IIoT源代码。为在IIoT中建立更好的安全性,应该从网络基础设施中最小的组件“代码”开始。“大多数物联网设备非常小”,因此源代码往往用“通用语言”C或C++和C#语言编写,这些语言经常出现内存泄漏和缓冲区溢出漏洞等常见问题。在IIoT环境中,它们可能会激增,成为一个经常被忽视的安全问题。最好的防御手段是测试和重新测试。(2)了解关注点部署访问控制。在制造商环节,许多IIoT设备仅配有少量的安全控制。资产所有权的明确性、缺乏标准化、扁平化网络问题、低效的修补程序管理以及资源限制都是应该考虑的问题。控制IIoT环境中的访问,是公司在连接资产、产品和设备时面临的最大安全挑战,这包括控制已连接对象的网络访问。因此,应首先确定IIoT环境中关联事物认为可接受的行为和活动,然后实施控制。“数据保护的第一步是禁止未经授权的访问”,实现安全的授权系统,所有数据访问路径都经过监视器保护数据。(3)评估IT和OT混合风险使设备满足安全标准。在工业物联网时代,机器很有可能被连接,因此容易受到黑客攻击和其他入侵。IIoT需要IT和OT协同工作。然而两者有不同的目标和关注点:IT通常关注基础架构、安全性和治理;而OT有时可以专注于产量、质量和效率。企业必须考虑谁需要参与IIoT部署。同样重要并需要注意的是,IT和OT以不同的方式处理安全性问题,评估不同的风险,关注不同的修补周期、协议等。(4)研究攻击趋势抵御IIoT身份欺骗。最近的Mirai僵尸网络分布式拒绝服务(DDoS)攻击造成DNS服务关闭。由于大多数IIoT设备都默认或没有凭据,Mirai僵尸网络迅速传播。另一个趋势是勒索软件正在从文件移动到硬件设备,攻击者开始瞄准IIoT设备,并利用尚未更新的旧设备上的旧漏洞。近年来,黑客及其技术变得更加熟练,这可能对IIoT安全构成重大威胁。IIoT设备的指数级增长意味着攻击面或攻击媒介也呈指数级增长,因此企业及其安全和IT部门必须验证他们通信的IIoT设备的身份,确保这些设备对于关键通信、软件更新和下载是合法的。所有IIoT设备都必须具有唯一的身份,否则从微控制器级别到网络边缘的端点设备,从应用程序到传输层,都有被黑客攻击的高风险。(5)不要让IIoT设备启动网络连接。公司应该限制IIoT设备启动网络连接的能力,只能使用网络防火墙和访问控制列表与其连接。通过建立单向信任原则,IIoT设备将永远无法启动与内部系统的连接,这将限制攻击者利用它们作为跳板探索和攻击网络的能力。企业可以以通过跳转主机或网络代理的方式强制连接到IIoT设备。此外,恒温器和照明控制等许多类型的控制设备一般是通过无线连接,如环境允许可为IIoT提供自己的网络,将其与生产网络隔离,隔离的无线网络将集中进行配置管理。(6)将安全性插入供应链。IIoT工作通常覆盖供应链中的多个合作伙伴,包括技术供应商、产品提供商和客户,安全部门必须考虑到这一点。如果安全部门提出要承担分析工作,这些部门将遵守这一规定。如何更好地加强供应链供应商的选择过程由各个组织决定,应考虑允许独立验证的制造商承担;提倡在设备端安装保护开关,以便固件能在用户的授权下更新;只采购正规产品,而不是假冒产品。(7)考虑设备和网关问题。在考虑IIoT设备时,IT人员需要考虑与身份验证和预配有关的安全功能。设备发送的数据也是一个关键的安全问题,数据完整性和机密性尤为重要,企业会不断考虑数据的移动以及如何加密数据。资产管理和可见性以及行为分析也是重中之重。在设备之外,网关同样是IIoT中的关键安全向量,安全启动和执行以及安全凭据存储可以帮助工矿企业更好地保护网关。(8)分类风险实行安全数据访问。工业组织需要明白风险不是静态的,应考虑IIoT组件和支持系统的法律规范。IIoT错误的物理后果可能比其他IoT违规更严重。IIoT的适当安全态势也必须考虑进来,一旦组织对面临的风险进行分类,它必须构建一个安全框架来解决这些风险。行业标准应该用于认证和授权,以确保对公司数据的访问安全。同时,公司必须确保数据完整性和安全保护,专注于密钥、凭据和访问令牌的安全凭据管理。(9)监视和审核系统评估其安全状态。IIoT将支持大量网络新设备添加到企业或现场网络中,从而显著增加了其攻击面。在选择适用于IIoT的解决方案前,必须进行审核,并在整个系统生命周期内定期进行审核。使用基于硬件的信任根和深度防御方法保护这些设备,确保系统正常运行。基于标准和技术实施具有已知安全功能的协议,并采用安全深度策略,以保护IIoT基础架构及其生成的数据,尤其是在保护云中的数据和其通过公共互联网传输时。四.结语IIoT涵盖了云计算、网络、边缘计算和终端,在工业环境中占用空间越来越多,通过传感器、智能机械等改善运营、资源利用率、库存管理,为收集大量数据提供了新机会。Gartner研究报告称,2019年底全球工业物联网资产总量已达到48亿台,2020年通过物联网将产生大约4.4万亿GB的数据。Microsoft的一项调查发现,85%的公司至少有一个物联网项目在进行中。据百万洞察公司最近的预测,到2025年,IIoT的全球支出可能达到9920亿美元。IIoT和工业大数据的融合,结合当前5G、边缘计算、人工智能、区块链和AR/VR等技术的加速发展,共同推动“第四次工业革命”的到来。IIoT生成数据的关键来自“互联设备”,分析生成数据将有助于主动改进决策。IIoT和工业大数据不仅是相互依赖关系,而且彼此起到相互影响相互促进的作用。IIoT增长得越快,就会对企业在大数据功能方面提出越多需求。随着IIoT生成的数据飞速增长,传统的数据存储技术已经被推到顶点,这就需要更高级和创新的存储解决方案来处理这些不断增长的工作负载,从而更新组织大数据存储的基础架构。IIoT大趋势下如何保护工业大数据安全,仍是当今和未来一段时间需要认真考虑的重要问题,风险管理“任重而道远”。
服务热线:
4006-75-4006(7*24小时在线)
总机直拨:
0871-63886388(工作日9:00-18:00)
售前咨询
售后咨询
备案咨询
电话
二维码
TOP