图 1 车辆信息安全架构图车辆信息安全架构主要由信息安全管理、核心信息安全工程活动以及支持过程3大部分构成。信息安全管理包括综合管理和生命周期各阶段的信息安全管理。核心信息安全工程活动包括了概念阶段,整车系统、软硬件层面的开发阶段及生产运营阶段等。在概念阶段制定整个安全项目计划,包括识别网络安全边界、系统外部依赖关系、系统潜在威胁分析以及评估。在开发阶段,对整车系统的脆弱性和威胁性进行风险分析,制定信息安全需求与策略,在开发阶段完成后进行渗透测试,完成最终的安全审计。生产运营阶段主要对产品进行现场监控、事件响应以及之后的时间跟踪管理。支持过程阶段主要对以上阶段进行辅助支持,包括相应的配置管理、文档管理和供应链管理等。车辆信息安全开发框架如图 2 所示。系统开发设计阶段是车辆信息安全实现的基础,而车辆信息安全系统设计又依附于汽车电子电气架构(electronics/ electrical,E/E)系统设计。因此,应对汽车网络信息安全漏洞进行排查,包括与外部环境(如云服务器、其他车辆和基础设施)的连接、与车载网络的连接、与 ECU 级别的连接和单个组件的连接等,构建安全级别更高的 E/E 系统,从系统层面提高安全性。在测试阶段,对车辆信息安全功能检查测试,进行安全评估,验证车辆信息安全架构的安全性。在整体车辆信息安全开发过程中,应当将硬件设计和软件设计协调开发,同时考虑到软硬件的安全可靠性,共同实现网络安全。
图 2 车辆信息安全开发框架图以特斯拉汽车为例,分析汽车 E/E 架构方案。特斯拉汽车作为汽车 E/E 架构变革的带头人,Model 3 的电子电气架构分为 3 大部分:中央计算模块(CCM)、左车身控制模块(BCM_LH) 和右车身控制模块(BCM_RH)。CCM 直接整合了驾驶辅助系统(ADAS) 和信息娱乐系统(IVI)2 大功能域,同时包括对外通信和车内系统域通信的功能;BCM_LH 和 BCM_RH 分别负责车身与便利系统、底盘与安全系统和部分动力系统的功能。3大模块均采用高性能处理器,能够满足功能域内的大量计算需求,域内其余 ECU 仅控制汽车外围设备,域内各系统通过局域网进行通信, 而模块之间通过总线进行通信,实现了基本的安全隔离。汽车域集中式电子电气架构的出现,为信息安全以及算力不足的问题提供了解决方案。汽车域集中式电子电气架构指的是将汽车根据功能划分为若干个功能块,每个功能块以域控制器为主导搭建,各个功能域内部通信可根据不同功能的通信速率需求采用不同种类的通信总线,如 CAN、LIN、FLEXRAY、MOST 等总线,各个功能域之间的通信通过传输速率更高的以太网实现信息交换,域集中式电子电气架构图如图 3 所示。域控制器主要负责传递域与云、域与域以及域内部的通信。域内 ECU 仅负责相应执行器件的操作指令,采用带有通信功能的控制器即可。
图 3 域集中式电子电气架构图根据我国国情,智能网联汽车域集中式电子电气架构结合了智能化、网联化、电动化3大部分的应用。相较于以前的汽车分布式电子电气架构,针对算力不足方面,域控制器作为每个域的独立控制器,其内部需匹配一个核心运算力强的处理器,以满足智能网联汽车对算力的要求,目前业内有 NVIDIA、华为、瑞萨、NXP、TI、Mobileye、赛灵思、地平线等多个品牌方案。在安全防护方面,域集中式架构将车辆根据功能及通信速率要求分为若干个独立功能模块,若攻击者想要通过某一功能对整车进行攻击,该功能所在的域控制器可以及时监测并排除隐患,不会影响其他功能域,有效减少了攻击面扩大的可能性。
图 4 多域分层入侵检测示意图(1)域控制器层新架构方案中,域控制器既是整个域的计算集成平台,也是域与域、域与云端之间进行信息交流的网关。域控制器作为汽车内外网络信息交互的安全边界,是汽车车载网络安全防护的重点。因此,在安全边 界建立安全防火墙,对数据信息进行安全检测、访问限制、日志记录等安全性检测,以实现安全防护。汽车的通信报文由 ID、数据信息、校验位等部分组成。ID 确定报文的传输优先级和目的地址,数据信息确定操作指令,校验位确保传输的数据信息完整。安全防火墙的主要作用是实现访问控制功能,汽车安全防火墙框架图如图 5 所示。
图 5 安全防火墙框架图防火墙访问控制功能的实现主要基于建立汽车通信报文的白名单数据库,一旦检测到报文请求,将报文 ID 与白名单数据库进行比对,匹配成功则通过,失败则丢弃。防火墙的异常检测技术有多种,常见的检测技术包括入侵异常检测方法,基于神经网络、聚类、遗传算法,基于信息熵、关联规则等。入侵异常检测方法主要通过对大量正常行驶的汽车的通信数据进行分析,构建汽车通信网络安全模型,并用该模型监视用户及系统的行为,分析是否存在异常的非法数据活动,并向用户报警记录。汽车报文分为周期报文和事件触发报文,入侵异常检测技术可以根据不同情况建立模型。周期报文是通过设定报文周期阈值构建入侵检测模型,将报文周期与阈值对比进行判定;事件触发报文没有固定的发送周期,但多数报文的操作指令相互关联,如汽车的车速信号与刹车信号存在负相关关系,油门踏板信号与车信号存在正相关关系。因此, 通过大量的数据分析构建通信报文正/负相关入侵检测模型,一旦报文关联出现较大的偏差,则判定为入侵行为并报警。由于汽车车载芯片的计算能力不足以同时实现安全性与实时性的最大化,因此现采用的入侵检测的方法需要在保证实时性的基础上,对入侵进行有效检测,目前针对汽车车载报文流量监测是最为有效的办法。安全防火墙中访问控制、通信标准检测、异常分析的入侵检测流程如 6 所示。
图 6 入侵检测流程(2)车内网络层每个域内网络传输安全是安全防护机制的第二道防线。根据功能域所需要的通信要求的不同,采用的车载传输网络也有所不同。目前,除了信息娱乐系统以外,大都采用 CAN 总线通信。CAN 总线的广播特性、非破坏性总线仲裁方式等导致安全防护薄弱,因此需要制定通信安全协议。通信安全协议的设计主要由 ECU 节点的校验和传输数据信息的加密 2 部分组成。在汽车行驶前,域控制器随机分配每个 ECU 的身份,ECU 要向域控制器发送认证请求,进行身份认证,从而保证节点的合法性,完成 ECU 节点的校验。汽车行驶过程中,车载网络的通信信息需要加密,以防攻击者窃听、伪装。结合汽车对实时性要求高的特点,数据加密采用 AES 对称加密算法。ECU 身份认证流程如图 7 所示,CAN 通信加密报文格式如图 8 所示。
图 7 ECU 身份认证流程
图 8 CAN 通信加密报文格式对称加密计算量小、速度快,适用于汽车大数据通信。对称加密算法中,加密方和解密方事先都必须知道加密的密钥,发送和接收双方都使用该密钥对数据进 行加密和解密。基于对汽车数据的安全性和实时性的 要求,可以根据已校验成功的 ECU ID 以及数据发送 ECU 和接收 ECU,建立独立的加密表作为密钥对数据进行加密,并根据对汽车实时性的验证,相应调整加密表的加密难易度,最大化地保证数据的安全。(3)ECU 层ECU 层面的安全防护主要是固件防护,实现防止固件刷写、外界访问、恶意更改等功能。考虑到成本问题,根据不同功能的 ECU 需分配不同等级的安全防护措施。硬件安全模块是一种用于保护和管理强认证系统所使用的密钥,并同时提供相关密码学操作的计算机硬件设备。车身域 ECU 采用轻量级硬件安全模块,动力域 ECU、信息娱乐域 ECU、辅助驾驶域均采用中量级硬件安全模块,而车身域控制器、动力域控制器、信息娱乐域控制器和辅助驾驶域控制器均采用重量级硬件安全模块。在MRIRuby中我可以这样做:deftransferinternal_server=self.init_serverpid=forkdointernal_server.runend#Maketheserverprocessrunindependently.Process.detach(pid)internal_client=self.init_client#Dootherstuffwithconnectingtointernal_server...internal_client.post('somedata')ensure#KillserverProcess.kill('KILL',
我正在编写一个小脚本来定位aws存储桶中的特定文件,并创建一个临时验证的url以发送给同事。(理想情况下,这将创建类似于在控制台上右键单击存储桶中的文件并复制链接地址的结果)。我研究过回形针,它似乎不符合这个标准,但我可能只是不知道它的全部功能。我尝试了以下方法:defauthenticated_url(file_name,bucket)AWS::S3::S3Object.url_for(file_name,bucket,:secure=>true,:expires=>20*60)end产生这种类型的结果:...-1.amazonaws.com/file_path/file.zip.A
在Ruby中是否有Gem或安全删除文件的方法?我想避免系统上可能不存在的外部程序。“安全删除”指的是覆盖文件内容。 最佳答案 如果您使用的是*nix,一个很好的方法是使用exec/open3/open4调用shred:`shred-fxuz#{filename}`http://www.gnu.org/s/coreutils/manual/html_node/shred-invocation.html检查这个类似的帖子:Writingafileshredderinpythonorruby?
导读:随着叮咚买菜业务的发展,不同的业务场景对数据分析提出了不同的需求,他们希望引入一款实时OLAP数据库,构建一个灵活的多维实时查询和分析的平台,统一数据的接入和查询方案,解决各业务线对数据高效实时查询和精细化运营的需求。经过调研选型,最终引入ApacheDoris作为最终的OLAP分析引擎,Doris作为核心的OLAP引擎支持复杂地分析操作、提供多维的数据视图,在叮咚买菜数十个业务场景中广泛应用。作者|叮咚买菜资深数据工程师韩青叮咚买菜创立于2017年5月,是一家专注美好食物的创业公司。叮咚买菜专注吃的事业,为满足更多人“想吃什么”而努力,通过美好食材的供应、美好滋味的开发以及美食品牌的孵
C#实现简易绘图工具一.引言实验目的:通过制作窗体应用程序(C#画图软件),熟悉基本的窗体设计过程以及控件设计,事件处理等,熟悉使用C#的winform窗体进行绘图的基本步骤,对于面向对象编程有更加深刻的体会.Tutorial任务设计一个具有基本功能的画图软件**·包括简单的新建文件,保存,重新绘图等功能**·实现一些基本图形的绘制,包括铅笔和基本形状等,学习橡皮工具的创建**·设计一个合理舒适的UI界面**注明:你可能需要先了解一些关于winform窗体应用程序绘图的基本知识,以及关于GDI+类和结构的知识二.实验环境Windows系统下的visualstudio2017C#窗体应用程序三.
需求:要创建虚拟机,就需要给他提供一个虚拟的磁盘,我们就在/opt目录下创建一个10G大小的raw格式的虚拟磁盘CentOS-7-x86_64.raw命令格式:qemu-imgcreate-f磁盘格式磁盘名称磁盘大小qemu-imgcreate-f磁盘格式-o?1.创建磁盘qemu-imgcreate-fraw/opt/CentOS-7-x86_64.raw10G执行效果#ls/opt/CentOS-7-x86_64.raw2.安装虚拟机使用virt-install命令,基于我们提供的系统镜像和虚拟磁盘来创建一个虚拟机,另外在创建虚拟机之前,提前打开vnc客户端,在创建虚拟机的时候,通过vnc
我正在使用ruby2.1.0我有一个json文件。例如:test.json{"item":[{"apple":1},{"banana":2}]}用YAML.load加载这个文件安全吗?YAML.load(File.read('test.json'))我正在尝试加载一个json或yaml格式的文件。 最佳答案 YAML可以加载JSONYAML.load('{"something":"test","other":4}')=>{"something"=>"test","other"=>4}JSON将无法加载YAML。JSON.load("
默认情况下:回形针gem将所有附件存储在公共(public)目录中。出于安全原因,我不想将附件存储在公共(public)目录中,所以我将它们保存在应用程序根目录的uploads目录中:classPost我没有指定url选项,因为我不希望每个图像附件都有一个url。如果指定了url:那么拥有该url的任何人都可以访问该图像。这是不安全的。在user#show页面中:我想实际显示图像。如果我使用所有回形针默认设置,那么我可以这样做,因为图像将在公共(public)目录中并且图像将具有一个url:Someimage:看来,如果我将图像附件保存在公共(public)目录之外并且不指定url(同
我有一个应用程序正在从Ruby迁移到JRuby(由于需要通过Java提供更好的Web服务安全支持)。我使用的gem之一是daemons创建后台作业。问题在于它使用fork+exec来创建后台进程,但这对JRuby来说是禁忌。那么-是否有用于创建后台作业的替代gem/wrapper?我目前的想法是只从shell脚本调用rake并让rake任务永远运行......提前致谢,克里斯。更新我们目前正在使用几个与Java线程相关的包装器,即https://github.com/jmettraux/rufus-scheduler和https://github.com/philostler/acts
我是一名决定学习Ruby和RubyonRails的ASP.NETMVC开发人员。我已经有所了解并在RoR上创建了一个网站。在ASP.NETMVC上开发,我一直使用三层架构:数据层、业务层和UI(或表示)层。尝试在RubyonRails应用程序中使用这种方法,我发现没有关于它的信息(或者也许我只是找不到它?)。也许有人可以建议我如何在RubyonRails上创建或使用三层架构?附言我使用ruby1.9.3和RubyonRails3.2.3。 最佳答案 我建议在制作RoR应用程序时遵循RubyonRails(RoR)风格。Rails