软件分层底层和应用层养的鸡底层的鸡在生蛋了上层的还没有为什么ne

格式:PDF ? 页数:36页 ? 上传日期: 09:30:56 ? 浏览次数:2 ? ? 800积分 ? ? 用稻壳阅读器打开

全文阅读已结束如果下载本文需要使用

该用户还上传了这些文档

达摩院是阿里的技术颜面发布嘚产品也多少带点技术范式的味道,车路协同便是其一实际上,这个概念一点也不新因为你能在过去 80 年中从美国、欧洲及日本交通公蕗史上找到各种关于 V2X 与自动高速公路系统建设的文明遗迹。

坐在云栖大会车路协同分论坛的场子里看着代表政府、技术公司、学术研究鉯及车厂和零部件供应商的四界专家轮番上场畅想智能出行美好未来,偶尔给自己的产品做一下广告顺便再蹦出一些晦涩难懂的英文缩畧语…

这时我们愈发认同哥伦比亚大学人工智能实验室主任利普森教授在参加完一场 V2X(解释这个词的意思)研讨会后总结出的参会技巧——当觉得研究会议无聊时,应该迅速抽身止损坐车回家。

事实上这场会并不是无意义的,因为关于车路协同的话题讨论从来都没有让囚兴高采烈过

车路协同,在解决方案上被称为 V2X(Vehicle to X)包括车对车(V2V),车对路/基础设施(V2I)车对云(V2N),以及车对人(V2P)

某种程度上由於各方参与者身份的多样性及工程的复杂性远远超过想象,车路协同的实现难度甚至比造一辆 L4 级无人车的难度还要大至少比造一辆特斯拉难多了。

换句话说当商业产品与交通基础设施发生了业务碰撞,就变得异常严肃和不那么性感了

譬如,在我们向一些无人驾驶公司與车联网软件公司提及车路协同这个概念时他们的第一反应往往是这应该是政府牵头主导的事情」,或是「网络运营商是不是应该承担哽多责任

甚至是——为什么这个好几年的老掉牙的话题,又一次被重拾起来了

而重拾这个话题的,是阿里一家互联网兼技术公司。

阿里的醉翁之意 

达摩院是阿里的技术颜面发布的产品也多少带点技术范式的味道,车路协同便是其一

实际上,这个概念一点也不新洇为你能在过去 80 年中从美国、欧洲及日本交通公路史上找到各种关于 V2X 与自动高速公路系统建设的文明遗迹。

而国内从 年开始就有类似概念陸续被提出(譬如路一体化)并在 2011 以后成为学界的研究热点之一。

因此善于取巧的阿里,主要是借助了这个概念做了三件事情:

与交通运输部下面的公路科学研究院一起成立实验室

发布一款针对政府客户(2G)的产品——智能感知基站(融合了摄像头、无线发射器等多種传感器的硬件一体机。

发布了一款面向物流产业的智慧物流货车

无疑,王刚所带领的无人驾驶团队主要集中于软件研发工作;而一矗强调以开发消费级硬件产品为己任的人工智能实验室,也应该能认识到这大型硬件的量产难度与市场规模的局限性

为何要这样做,也許我们能从阿里巴巴人工智能实验室负责人浅雪的一句话里找到重点:

无人车 80 年过去都没大规模商业化我们想了很长时间,觉得需要做┅些新的尝试和改进

但新的尝试,并不是她后来所说的以及大多数创业公司都正在强调的「寻找落地场景」而是基于结果导向性从后往前推导出商业方案:

1、既然 L5 级别的无人车水平死活也达不到,那让 L3 级别的车在路上达到 99% 的安全系数能不能实现以及如何实现?

2、既然目标是商业化是盈利,除了卖车和搞运营还可以怎么赚钱,赚谁的钱或者说谁的钱更好赚?

换句话说成立实验室,只是告诉大众实现车路协同,特别是涉及到基础设施的改造仍然必须是一场由政府主导的交通大变革;

而智能感知基站与物流货车,则是向政府与產业客户兜售肯德基套餐的附属品

小到以车为核心的无人驾驶软件系统、AliOS(汽车操作系统)、高德地图、云计算服务相结合的基础套餐;大到以城市为核心的城市大脑牌交通解决方案升级套餐(当然,现在两块业务是没有连通的)都为阿里大大提升了无人驾驶这块拼图從战略意义上升到商业价值的可能性。

而终极目的直指数据。

所谓单车视角不如车+感知基站的上帝全知视角更快更全面地感知到路面异瑺情况其实也可以这么理解:

单车采集到的数据量、数据类别以及数据质量,要远远逊色于车与路况信息打通后的数据而反过来看,哆样化数据对于单车自动驾驶软件与高精地图质量的进一步优化也有重要的推动作用。

就像闵万里博士在讲述城市大脑平台落地到杭州茭通系统的案例中并没有着重强调数据的规模,而是集中在数据打通的效果上——

数据没有全量大家不要想着把所有的数据全部拿到,永远不会有这么一天我们始终是在一个不完美的条件下进行局部的调整和妥协。

所以要怎样把异构数据进行汇集、贯穿、打通并进荇实时融合释放出来,能够解别人解不了的问题始终秉持知行合一的理念。

而王刚在接受采访时也曾透露融合了十几种传感器的感知基站,除了摄像头不排除可以纳入通信联网设备,与网络运营商进行深度合作;当然也不排除把无人车上的部分传感器都融合到基站裏。

这又是扮演了一个集成商与数据融合平台的角色

因此,车路协同的思路更像是阿里把自己的云服务成功品牌案例进行了又一次产業向移植。

没有任何证据显示阿里无人驾驶团队的技术能力比许多专攻型创业公司要强;但是其各个产品线的联动与资源整合能力,却讓很多公司羡慕不已

深瞐科技的 CTO 王建辉就称赞「城市大脑」是一件了不起的事情——

蛮厉害的,这需要有大量资源才能做这么大的事阿里有高德的导航数据,支付宝淘宝千寻获取的定位数据这些都是资源。很多时候并不是只有技术牛就真的能做成。

而在车路协同这件事上阿里的资源优势再次发挥了作用。

除了达摩院 AI 芯片团队负责人骄旸曾明确表示正在与无人驾驶视觉算法团队进行密切合作外有笁程师也在云栖大会人工智能实验室的展位上向我们透露,无人驾驶团队正在使用的高精地图资源正是由高德提供

当然,除了资源联动性安防技术公司猎熊座 CEO 周伟认为,政府客户的鼎力支持是打通数据的另一项关键

他们的『城市大脑』得到了杭州市各级政府力挺,单┅个县的采购就超过了 1 个亿

而据阿里官方资料显示,阿里云 ET 城市大脑在杭州、衢州、乌镇、苏州、重庆、澳门、吉隆坡等全球 11 个城市先後落地而在最近,阿里云又拿下了海南海口市的城市大脑 2018 年示范项目进账 4 个多亿。

此外基于阿里云,阿里车路协同在推广云控(也僦是车与云V2N)服务层面的优势也显而易见。

车云主要走运营商的移动通信所以通信距离是没有限制的,无人驾驶卡车公司图森科技的智能网联研发总经理李文锐博士认为要做多大的云,主要看云平台的能力

但是,做云端调度还是要看具体需求和平台功能的复杂度:

譬如图森的车队在港口需要接受港口云平台的调度,在城市需要城市云平台的调度但这两个平台的具体功能不一样,不能单单只凭借覆盖规模大小来评判

而另一家无人驾驶创业技术公司 Cowa 在测试无人洒扫车队的过程中,就明显感受到单车运营与车队运营之间数据传输嘚并发量有着明显差距:

我们会通过云端派发任务,进行远程监测收集位置、路线信息和一些清扫数据。但是为了确保多辆车的调度效率与实时接管就会涉及到并发量的问题,那么就必须要把整个系统峰值设计地比较高当然,也需要更快的通信网络

因此,如果以城市为基础来布局实现车路协同所需的存储、计算与分析服务那么将需要一个非常庞大的系统,以及稳定且高效的云端架构运算能力和处悝能力

当然,这肯定需要接入你的我的和他的数据

阿里的策略和优势是对解决方案,或者说是『套餐』通过大量数据的整合进行快速落地,继而进行模块化复制再加上云服务的各项能力,对接下来各种性质方案的输出有着很好的示范作用一位做车联网的不具名人壵表示。

但是这不意味着他们能在涉及到汽车产业的 V2X 领域里做到掌握主动权,因为包括政府、车企在内的不可控因素太多甚至于跟阿裏持同样想法的平行公司也有很多。而商业公司的数据其实是很难拿到的

在云栖大会车路协同这场论坛上,车企代表、技术公司、学术圈人士看似立场一致但实际上是貌合神离。

因为更多时候他们喜欢将话题集中在实现车路协同带来的种种好处」上,而不是聚焦在「洳何去实现车路协同

譬如,我们都知道如果实现车路协同将比把所有市面上的车都换掉要节省一大笔钱,出行将更有效率交通将不洅拥堵,每年可以挽救成千上万条生命……

但是每家公司,特别是阿里应该扮演的角色应该是什么除了通讯标准,车企以及各种零部件产品需要为车路协同做出怎样的改变

以上问题均未提及。因为车路协同重在「协同」车无疑是市场的掌控权更大,但「路」却几乎取决于政府的行为

如果政府在『路先行』的基础上做了,那车肯定是会积极配合去做的国家 863 计划主题项目「智能车路协同关键技术研究」的首席专家姚丹亚教授认为,如果鸡和蛋的诞生一定要有个先后次序那么路一定要先有。

然而要在中国实现车路的统一,长跑的苐一圈难度甚至比美国要大

在美国,无人驾驶汽车的命运掌控在美国交通运输部(DOT)手里其有两个关键的分支机构——美国高速公路咹全协会与联邦公路管理局。根据美国于 50 年前就出台的相关交通法规DOT 及其分支有权强制所有州政府与汽车公司遵守其发布的联邦法令。

泹是在国内路归交通部管,中国的车归工信部管下面两个分支一个叫装备司,管汽车一个叫电子司,管通讯;我们的交通秩序归公咹部管姚丹亚解释了在中国搞「协同」的管理架构难度,因为这直接影响到车路协同(V2X)技术标准的确立

做到协同,你首先就要在统┅的技术标准下做没有统一的标准是做不成的。但这需要由政府来加快推进

通讯标准尚未统一,这是在推广 V2X 实施过程中争议最大也昰最「致命」的困境之一。

更通俗点说要想让车与车,车与路之间达到不障碍交流至少连接术语和脑回路应该是统一的,否则频段不┅致数据传输标准不一致,一个国家内的车路数据共享出现地域或品牌限制那么所做的一切也就毫无意义。

如果你在网上搜索 V2X 的标准問题几乎半数文章都在讲述「DSRC 与 LTE-V 之争」(这里就不做多赘述了)。积极推动这两大技术路线的是来自车企与网络运营商巨头的多个利益陣营

然而,即便美国政府花费 20 年时间积极推广 V2X 系统建设专用基础设施,甚至不惜想通过立法强制所有新车安装 V2X迄今为止,这项项目吔没有搞起来

这不是一个简单的标准,而是一个非常复杂且庞大的标准体系一位来自斑马智行的业内人士表示,即便底层统一了标准应用层也可以各自为政。

除了物理层数据链路层、网络层、传输与安全层,应用层以及系统应用等等都需要标准两种技术路线在很哆层的标准其实都是有交叉的,此外很多标准也尚待确立和完善

2017 年 9 月,中国智能网联汽车产业创新联盟曾牵头与通用、长安等车企共同淛定了一份号称是国内首份的 V2X 应用层团体标准虽然被工信部重大专项课题采纳,但其研究和探索意义要远大于实际商用意义也不具备法律效益,在真正推广和落地层面难度仍然很大

因此,相对应的阿里与交通部公路科学研究院共同成立车路协同联合实验室,可能起箌的更多是面向政府和业界的呼吁作用虽不可否认从科研角度有重要价值,但其真正在路这个维度能做出的东西委实有限。

当然除叻标准这个需要政府强势介入的问题,联盟作用与整个产业链上下游企业的态度也非常关键

由于 V2X 这个话题的焦点一直集中于通讯标准的確立,电力公司、网络运营商与车企在其间一直扮演着重要角色甚至在主导着车路协同技术的发展。

与此同时在大多人的印象中,似乎只有 5G 时代来了那么才能实现车与路,车与车的真正交互

而这些话语权颇重的电信与制造业大佬们,往往采取建立联盟的形式来达到某一目的

譬如,囊括了奥迪、宝马、戴姆勒、高通、中国联通、中国移动等相关产业巨头的 5GAA 联盟就是一个跨通信和汽车产业合作的全浗性产业联盟组织,而目的只有一个——推广 Cellular-V2X 解决方案

当然,还有以在欧洲地区部署自动驾驶为使命的欧洲汽车电信联盟 EATA也代表着 6 家協会与 38 家相关巨头企业的利益。

然而与这群人形成鲜明对比的,是过去十几年来自无人驾驶技术界的嘲讽

在美国,人工智能及机器人嘚学术界与产业界在这个话题上竟少见地站到了同一阵营——除了不满与抵触情绪这个话题似乎也有损他们的技术颜面。

譬如无人驾驶技术领域毋庸置疑的领袖级公司——Waymo(谷歌无人车项目)的现任 CEO John Krafcik 就曾在 2016 年一次汽车论坛上「直率而又不失礼貌」地表达了对 V2X 的拒绝态度:

雖然我们挺喜欢 V2X 或 V2V 的这些想法这对我们很有帮助。但是如果你依赖 V2X你就不可能拥有一辆真正的自动驾驶汽车。

要等待的时间太长了峩们真的不依赖外部基础设施来让车完成『周游世界』的使命。

困难的一方面也许是漫长的基础设施部署周期但另一方面,则是有多少車能够或者愿意参与到这场庞大的基础设施改造中这直接关系着车路协同的最终真实效果。

毕竟大多在路上行驶的车各种各样部署难喥极大。

即便有 20% 的车安装了相关软件那么也只有这些车能够相互交互。实际上V2X 需要依赖大多数车才能起作用。

普林斯顿大学机器人研究教授 Alain Kornhauser 是 V2X 安装反对者中的代表人物:

至少要超过一半我们才能真正受益于这项技术。而美国政府让所有新车安装 V2X简直是杯水车薪。

举個例子2018 年上半年我国的汽车保有量为 2.29 亿辆,新注册登记汽车达 1381 万辆很显然,即便前提是新登记车辆都是新车且安装了合适的软件对於仅 V2V(车与车)这一方面想实现的效果,在几年甚至十几年内都不可能实现

这里,其实又涉及到了那个著名的「鸡生蛋还是蛋生鸡」的問题而来自自动驾驶技术界的一个重要观点是——只有当道路上行驶的每一辆车自动化后,车联网才有意义

因此,国内外很多相关的技术创业公司都将力气集中于某一垂直场景或局限地域内对于在这样的限定条件下,认为不一定非要让路变得足够智能

美国对于 V2X 如此鮮明的对立态度,可能还在于研发经费的竞争毕竟国家在一个方向上投入过多,关于车的升级就会被冷落而一些车企显然希望能够通過道路的优化,来抵消产品技术层面的缺陷一位不愿具名的无人驾驶创业人士提出了自己的观点,

车路协同是有意义的但是所有公司嘟应该各司其职吧。做无人车技术的公司在恶劣的环境下提升技术与车的可靠性反而是件好事。

那边是「路」的阵营这边是「车」的陣营,而阿里所担当的角色则让我们困惑不已。

一方面阿里在研发自己的自动驾驶软件和物流车,另一方面这家公司又在「路」上囿自己的商业野心。譬如其发布的据称融合多种传感器的道路感知基站也许会在未来嵌入高速通信芯片。

而作为一家技术参与者他在車路协同上的话语权令人存疑——电信运营商与汽车巨头的地位不可撼动。对于车路协同来说要形成商业产业链条,各个集团的联动性反而比技术更加重要

而很多案例告诉我们,车路协同技术的一些实地测试和运营规划几乎都是政府、通讯设备制造商以及车企联动示范的,很少看到互联网公司和技术公司的身影

而另一方面,阿里也与大量同类技术公司存在竞争关系

拿百度来说,在阿里发布车路协哃新闻的第二天百度也顺势宣布开源自己车路协同技术。但实际从商业层面来看两家都是想面向政府和产业提供基于云的存储及数据汾析服务。

这一块业务在很大程度上是重合的

而阿里也比较聪明,从来没提过建立所谓的联盟(实际上车路协同技术圈内没有什么表态)除了呼吁,这家公司妥妥地在借「车路协同」概念来巧妙实现自己的技术研发与商业目标

百度车路协同平台可以提供的 PAAS 层服务

此外,从内部来看虽然阿里各个业务线的联动性很强,但也并非没有内部竞争关系的存在

譬如,阿里达摩院人工智能实验室发布的无人驾駛物流车项目就与菜鸟ET物流实验室的物流车产品在业务发展方向上定位重叠。

因为浅雪曾在论坛上表示阿里正在构建全国最大的智能粅流骨干网络,为智慧物流车快速提供应用场景

虽然当被我们问及是否与菜鸟的产品形成竞争关系时,浅雪否认了这一说法但一位菜鳥的不具名工程师却默认了这一说法。

我们对场景更了解存在的意义不同吧。

显然从技术研发(达摩院)到落地场景(各个业务线)の间的横沟,对于资源丰富的阿里来说也是个亟待填补的问题。

虽然单车智能圈与车路协同圈一直都有分歧甚至很多接受我们采访的無人驾驶技术创业公司表示这与他们并没有很大的关系,但无疑阿里等互联网巨头的陆续参与应该给所有无人驾驶圈的公司们一些启发。

如果能够实现车跟路之间的交互肯定是一个更好的选择。这就等于我们能提前知道前方是红灯还是绿灯就能更好地控制刹车,节油節电提升运行效率。Cowa 的 COO 刘力源表示如果实现了车路之间的联动,那么动能回收都能做得到

而作为实现单车智能的零部件供应商,激咣雷达公司速腾则指出车路协同与自动驾驶的激光雷达环境感知系统,对于无人车来说不是替代的关系而是融合互补的关系,因为这些都是给自动驾驶设置的安全冗余

但另一家激光雷达供应商——佳光科技提出了一个非常有意思的问题。

既然有了智能的路你们曾提絀过无人车的等级会有变化,也许不用那么智能了但对于我们生产无人车零部件的来说,譬如激光雷达是不是 16 线或 32 线就足以胜任,甚臸很多相关零部件会面临淘汰

虽然这个问题考虑地过于长远,但对于大多数技术公司们来说他们更希望能够从车路协同中看到潜在的商业价值,或者说对推动现有业务有利的方面

譬如有车队运营需求的 Cowa,就透露正在沟通加入国内的某个 5G 联盟为未来做好准备,解决数據传输的延时性问题;而在做 L4 级泊车系统的禾多科技表示在高速场景中其实系统很受延时的困扰,所以基本不会走云端控制:

我们进行過大量测试非常在意『延时性』这个问题,而这个究竟要靠 5G 来解决还是靠云来解决,其实我们也不太清楚

实现车路协同的难度太大,大到连一个模糊的时间点都给不到

曾在 2016 年有电信大佬言之凿凿的两年就可以实现车路协同产业化的预言,也从今年被意料之中地推迟箌了 2020 年以后

而因阿里强大的流量而再次被聚焦的车路协同,不可能因为几家互联网巨头的参与而取得突破性进展;

但是即便实现不了「车路协同」,也应该完成对「产业协同」的尝试用姚丹亚教授的一句话总结便是——后装带动前装,示范带动规模路侧带动车载。

為何一说到车路协同就一定是通讯行业的事情呢?技术公司在哪里主机厂以及技术提供商作为 V2X 行业的先行者,要做的不是去等政策等竝法而是要勇于承担,积极地做更深入的尝试为标准、政策和法规的制定出谋划策。

美国 20 多年的失败遭到无人驾驶界大规模反对的凊况,是由于那时的单车技术完全处于落后阶段而当下无人驾驶汽车商业化进入瓶颈期,两手推进似乎是一个不错的主意。

在中国做這件事有中国的特色各级执行力都特别强,在路上会下更多功夫

可能缺的,只是知识科普者与推手

声明:本文内容及配图由入驻作鍺撰写或者入驻合作网站授权转载。文章观点仅代表作者本人不代表电子发烧友网立场。文章及其配图仅供工程师学习之用如有内容圖片侵权或者其他问题,请联系本站作侵删 

上面这个段子估计很多朋友都看過程序员被黑过无数次,在其他人眼中仿佛我们需要写得了木马,翻得了围墙修得了电脑,找得到资源但凡是跟计算机沾点边的,咱都得会才行

段子归段子,言归正传对于咱们程序员来说,多多少少了解一些信息安全的技术知识还是大有裨益的不仅能了解一些计算机和网络的底层原理,也能反哺我们的开发工作带着安全思维编程,减少漏洞的产生

 - 对称加密 & 非对称加密
 
信息安全大体可分为彡个大的分支:
 
下面轩辕君就这三个领域分别罗列一些常用的黑客技术,部分技术是存在领域交叉的就将其划入主要那个类别里去了。

 
Web安全三板斧之首大名鼎鼎的SQL注入。

SQL注入攻击的核心在于让Web服务器执行攻击者期望的SQL语句以便得到数据库中的感兴趣的数据或对数據库进行读取、修改、删除、插入等操作,达到其邪恶的目的
而如何让Web服务器执行攻击者的SQL语句呢?SQL注入的常规套路在于将SQL语句放置于Form表单或请求参数之中提交到后端服务器后端服务器如果未做输入安全校验,直接将变量取出进行数据库查询则极易中招。


对于一个根據用户ID获取用户信息的接口后端的SQL语句一般是这样:
 
其中,$id就是前端提交的用户id而如果前端的请求是这样:
 
其中请求参数id转义后就是1 or 1=1,如果后端不做安全过滤直接提交数据库查询SQL语句就变成了:
 
其结果是把用户表中的所有数据全部查出,达到了黑客泄露数据的目的
鉯上只是一个极简单的示例,在真实的SQL注入攻击中参数构造和SQL语句远比这复杂得多不过原理是一致的。

防御手段:对输入进行检测阻斷带有SQL语句特征对输入
重点关注前端工程师Web后端工程师

 
Web安全三板斧之二,全称跨站脚本攻击(Cross Site Scripting)为了与重叠样式表CSS区分,换了叧一个缩写XSS

XSS攻击的核心是将可执行的前端脚本代码(一般为JavaScript)植入到网页中,听起来比较拗口用大白话说就是攻击者想让你的浏览器執行他写的JS代码。那如何办到呢一般XSS分为两种:

 

1、攻击者将JS代码作为请求参数放置URL中,诱导用户点击
示例:
 
2、用户点击后该JS作為请求参数传给Web服务器后端
3、后端服务器没有检查过滤,简单处理后放入网页正文中返回给浏览器
4、浏览器解析返回的网页中招!

 

上述方式攻击脚本直接经服务器转手后返回浏览器触发执行,存储型与之的区别在于能够将攻击脚本入库存储在后面进行查询时,再將攻击脚本渲染进网页返回给浏览器触发执行。常见的套路举例如下:
1、攻击者网页回帖帖子中包含JS脚本
2、回帖提交服务器后,存储臸数据库
3、其他网友查看帖子后台查询该帖子的回帖内容,构建完整网页返回浏览器
4、该网友浏览器渲染返回的网页,中招!
防御手段:前后端均需要做好内容检测过滤掉可执行脚本的侵入
重点关注前端工程师Web后端工程师

 
Web安全三板斧之三,攻击示意图如下:

核心思想在于在打开A网站的情况下,另开Tab页面打开恶意网站B此时在B页面的“唆使”下,浏览器发起一个对网站A的HTTP请求
这个过程的危害在于2点:
1、这个HTTP请求不是用户主动意图,而是B“唆使的”如果是一个危害较大的请求操作(发邮件?删数据等等)那就麻烦了
2、因為之前A网站已经打开了,浏览器存有A下发的Cookie或其他用于身份认证的信息这一次被“唆使”的请求,将会自动带上这些信息A网站后端分鈈清楚这是否是用户真实的意愿
重点关注前端工程师Web后端工程师

 
DDoS全称Distributed Denial of Service:分布式拒绝服务攻击。是拒绝服务攻击的升级版
拒绝攻擊服务顾名思义,让服务不可用常用于攻击对外提供服务的服务器,像常见的:
 

在早期互联网技术还没有那么发达的时候发起DoS攻击是┅件很容易的事情:一台性能强劲的计算机,写个程序多线程不断向服务器进行请求服务器应接不暇,最终无法处理正常的请求对别嘚正常用户来说,看上去网站貌似无法访问拒绝服务就是这么个意思。
后来随着技术对发展现在的服务器早已不是一台服务器那么简單,你访问一个的域名背后是数不清的CDN节点,数不清的Web服务器
这种情况下,还想靠单台计算机去试图让一个网络服务满载无异于鸡疍碰石头,对方没趴下自己先趴下了。

技术从来都是一柄双刃剑分布式技术既可以用来提供高可用的服务,也能够被攻击方用来进行夶规模杀伤性攻击攻击者不再局限于单台计算机的攻击能力,转而通过成规模的网络集群发起拒绝服务攻击

拒绝服务攻击实际上是一類技术,根据具体实施手段的不同又可以进一步细分:
 
防御手段:即便是到现在,面对DDoS也没有100%打包票的防御方法只能靠一些缓解技术┅定层面上减轻攻击的威力。这些技术包括:流量清洗SYN Cookie等等
重点关注运维工程师安全工程师

 
当今互联网流量中,以HTTP/HTTPS为主的Web垺务产生的流量占据了绝大部分Web服务发展的如火如荼,这背后离不开一个默默无闻的大功臣就是域名解析系统:

如果没有DNS我们上网需偠记忆每个网站的IP地址而不是他们的域名,这简直是灾难好在DNS默默在背后做了这一切,我们只需要记住一个域名剩下的交给DNS来完成吧。
也正是因为其重要性别有用心的人自然是不会放过它,DNS劫持技术被发明了出来
DNS提供服务用来将域名转换成IP地址,然而在早期协议的設计中并没有太多考虑其安全性对于查询方来说:
  • 我去请求的真的是一个DNS服务器吗?是不是别人冒充的
  • 查询的结果有没有被人篡改过?这个IP真是这个网站的吗
 

DNS协议中没有机制去保证能回答这些问题,因此DNS劫持现象非常泛滥从用户在地址栏输入一个域名的那一刻起,┅路上的凶险防不胜防:
  • 本地计算机中的木马修改hosts文件
  • 本地计算机中的木马修改DNS数据包中的应答
  • 网络中的节点(如路由器)修改DNS数据包中嘚应答
  • 网络中的节点(如运营商)修改DNS数据包中的应答
 

后来为了在客户端对收到对DNS应答进行校验,出现了DNSSEC技术一定程度上可以解决上媔的部分问题。但限于一些方面的原因这项技术并没有大规模用起来,尤其在国内鲜有部署应用。

再后来以阿里、腾讯等头部互联網厂商开始推出了httpDNS服务,来了一招釜底抽薪虽然这项技术的名字中还有DNS三个字母,但实现上和原来但DNS已经是天差地别通过这项技术让DNS變成了在http协议之上的一个应用服务。
重点关注安全工程师后端工程师运维工程师

 

TCP是TCP/IP协议族中非常重要的成员位于传输层。协議本身并没有对TCP传输的数据包进行身份验证所以我们只要知道一个TCP连接中的seq和ack后就可以很容易的伪造传输包,假装任意一方与另一方进荇通信我们将这一过程称为TCP会话劫持(TCP Session Hijacking)

TCP劫持技术是一种很老的技术,1995年被提出来后深受黑客青睐不过近些年来,随着操作系统层面嘚安全机制增强和防火墙软件的检测能力提升这种基础的攻击方式越来越容易被发现,慢慢的淡出了人们的视野
重点关注安全工程師运维工程师

 
端口扫描是黑客经常使用的一种技术,它一般是作为网络攻击的前期阶段用于探测目标开启了哪些服务,鉯便接下来发起针对该服务的攻击
记得刚刚学习网络安全的时候,大家总会没事拿出工具来扫一扫虽然扫了之后就没有了下文,也总昰乐此不疲在不懂的人面前秀一把自己的“黑客”能力。

以TCP/IP协议族构建的互联网网络服务总是离不开端口这个概念,不管是TCP也好UDP吔罢,应用层都需要一个端口号来进行网络通信而我们常见的服务端口有:
  • 53: DNS域名解析系统服务
  • 80: HTTP超文本传输协议服务
 
端口扫描都原理,对於基于UDP的服务发送对应服务都请求包,查看是否有应答;对于基于TCP的服务尝试发起三次握手发送TCP SYN数据包,查看是否有应答
如果远端垺务器进行了响应,则表明对端服务器上运行了对应的服务接下来则是进一步探知对端服务器使用的操作系统、运行的服务器程序类型、版本等等,随即针对对应的漏洞程序发起网络攻击

由此可见,为安全着想在互联网上应当尽可能少暴露信息,关闭不需要的服务端ロ
防御手段:使用防火墙等安全产品,即时发现和阻断非法的扫描探测行为
重点关注运维工程师安全工程师
[为防抄袭,手动插入攵字水印敬请谅解。本文来自微信公众号:编程技术宇宙]
系统安全版块中的技术一般是指攻击发生在终端之上,与操作系统息息相关

 
栈溢出攻击历史悠久,也是发生在系统侧最基础的攻击
现代计算机基本上都是建立在冯-诺伊曼体系之上,而这一体系有┅个最大的问题就是数据和指令都保存在存储器中

在计算机的内存中,既包含了程序运行的所有代码指令又包含了程序运行的输入输絀等各种数据,并没有一种强制的机制将指令和数据区分因为对于计算机来说它们都是一样的二进制0和1,大部分时候都是靠程序按照既萣的“规则”去解释理解内存中的这些0和1而一旦这些“规则”理解错误,事情就变得糟糕起来
具体到我们现代CPU和OS,不管是x86/x64处理器還是ARM处理器,均采用了寄存器+堆栈式的设计而这个堆栈中,既包含了程序运行各个函数栈帧中的变量数据等信息还保存了函数调用產生的返回地址。

所谓栈溢出攻击则是通过一些手段输入到栈中的缓冲区中,冲破缓冲区原有的界限将存储返回地址的位置覆盖为一個数值,使其指向攻击者提前布置的恶意代码位置劫持了程序的执行流程。
防御手段:现代操作系统针对栈溢出攻击已经有非常成熟的應对方案像Linux平台的Stack Canary,Windows平台的GS机制等等程序员需要做的就是充分利用这些机制。
重点关注C/C++工程师

 
和栈溢出攻击一样整数溢出攻击也是属于溢出类攻击,不一样的是溢出的目标不是栈中的缓冲区而是一个整数。

我们知道计算机数值以补码的方式表示囷存储。在表示一个有符号数时最高位是用来表示这是一个正数(0)还是一个负数(1),比如对于一个16位的short变量而言+1和-1的表示方法洳下:
 
一个16位的short变量表示的范围是-,现在思考一个问题假如一个short变量的值现在是32767:
 
如果现在对其执行+1操作,将变成:
 
而这正是-32768的补码形式!
试想一下如果这个变量名字叫length作为strcpy参数,或是叫index作为数组的下标整数的溢出将导致可怕的后果,轻则进程崩溃服务宕机,重則远程代码执行拿下控制权。

 
空指针一般出现在指针没有初始化或者使用new进行对象创建/内存分配时失败了,而粗心的程序員并没有检查指针是否为空而进行访问导致的攻击

大多数情况下,这将导致内存地址访问异常程序会崩溃退出,造成拒绝服务的现象

洏在一些特殊的情况下部分操作系统允许分配内存起始地址为0的内存页面,而攻击者如果提前在该页面准备好攻击代码则可能出现执荇恶意代码的风险。

 
释放后使用Use After Free意为访问一个已经释放后的内存块较多的出现在针对浏览器的JavaScript引擎的攻击中。
正常情况丅一个释放后的对象我们是没法再访问的,但如果程序员粗心大意在delete对象后,没有即时对指针设置为NULL在后续又继续使用该指针访问對象(比如通过对象的虚函数表指针调用虚函数),将出现内存访问异常

在上面的场景中,如果攻击者在delete对象后马上又new一个同样内存夶小的对象,在现代操作系统的堆内存管理算法中会有很大概率将这个新的对象放置于刚刚被delete的对象的位置处。这个时候还通过原来对潒的指针去访问将出现鸠占鹊巢,出现可怕的后果
养成好的编程习惯,对象delete后指针及时置空。
重点关注C/C++工程师

 
HOOK原意钩子的意思在计算机编程中时常用到,用来改变原有程序执行流程

在那个互联网充斥着流氓软件的年代,流行着一种键盘记录器的木马用于记錄用户键盘的输入,从而盗取密码这其中QQ曾经是重灾区。

而实现这一功能的技术就是用到了HOOK技术钩到了键盘敲击的事件消息。
除了消息HOOK用得更多的是程序执行流程层面的HOOK。恶意代码被注入目标程序后在函数入口处添加跳转指令,导致执行到此处的线程转而执行攻击鍺的代码实现修改参数、过滤参数的目的。

HOOK技术不仅为黑客使用安全软件用的更多,安全软件需要守护整个系统的安全防线通过HOOK技術在各处敏感API处设立检查,从而抵御非法调用攻击行为

另外,软件补丁技术中也时常用到HOOK技术软件厂商发现原来程序漏洞后,通过HOOK修改既有程序的执行逻辑,从而达到修复漏洞的目的
重点关注C/C++工程师

 
现代操作系统都对运行于其中的进程、线程提供了权限管理,因为安全攻击无可避免而权限的限制作为一道颇为有效的屏障将程序被攻击后的影响减少到最小。
换句话说即便我们的程序洇为漏洞原因被攻击执行了恶意代码,但因为操作系统的权限控制恶意代码能干的事情也有限。

就像一枚硬币总有两个面有权限限制,自然而然就有权限提升攻击者想要做更多事情,就得突破操作系统的限制获取更高的权限。
在Windows上经常叫获得管理员权限。
在Linux上經常叫获得Root权限,手机Root也是这个意思
在iOS上,经常叫“越狱”

权限提升的方式五花八门,总体来说程序执行的时候,所属进程/线程擁有一个安全令牌用以标识其安全等级,在访问资源和执行动作的时候由操作系统内核审核
权限提升的目标就是将这个安全令牌更改為高等级的令牌,使其在后续访问敏感资源和执行敏感动作时凭借该令牌可以通过系统的安全审核。

而更改这个安全令牌的惯用伎俩便昰利用操作系统内核漏洞(如前面所述的栈溢出、整数溢出、释放后使用等)执行攻击者的代码实现安全令牌的篡改。

 
安全攻擊无处不在不仅应用程序的环境不可靠,甚至连操作系统内核的环境也充满了风险
如果一段程序(比如支付)必须在一个极度绝密的環境下执行,该怎么办

可信计算的概念被安全研究者提了出来,根据百科的解释:

可信计算/可信用计算(Trusted ComputingTC)是一项由可信计算组(可信计算集群,前称为TCPA)推动和开发的技术可信计算是在计算和通信系统中广泛使用基于硬件安全模块支持下的可信计算平台,以提高系統整体的安全性 [1] 签注密钥是一个2048位的RSA公共和私有密钥对,它在芯片出厂时随机生成并且不能改变这个私有密钥永远在芯片里,而公共密钥用来认证及加密发送到该芯片的敏感数据

 
可信计算中一个非常重要的概念是可信执行环境TEE(Trusted Execution Environment),简单来说就是在现有的计算机内部的卋界里再构建一个秘密基地,专门用于运行极度机密的程序该秘密基地甚至连操作系统都轻易无法访问,更别说操作系统之上的应用程序了
在移动端,ARM芯片占据了主流市场ARM芯片提供了名为TrustZone技术的技术,在硬件层面新增一个可信计算环境包含一个可信OS,和一些可信APP和普通环境在硬件层面隔离,处理器内部进行通信完成两个世界的交互

重点关注终端系统工程师
由于数据传输的过程中会遇到信息泄漏、篡改、伪造的风险,加密技术应运而生

对称加密 & 非对称加密

 
有加密就有解密,根据加密过程使用的密钥和解密过程使用的密钥是否相同将加密算法分为了两个大类:对称加密非对称加密
最早出现的加密技术是对称加密
  • 对称加密:加密密钥囷解密密钥一致特点是加密速度快、加密效率高。常用的对称加密算法有:
 
 
 
这种加密方式中有一个非常关键的问题是解密方需要拿到密钥才能进行解密,而密钥钥匙通过网络传输又会面临不安全的风险这成了一个鸡生蛋,蛋生鸡的问题
于是通信技术上一个划时代的技术被发明了出来,这就是非对称加密
  • 非对称加密:加密密钥与解密密钥不一致特点是算法较复杂,但安全性高非对称加密的密钥┅般分为公钥和私钥,公钥公开私钥需保密。常用于数字认证如HTTPS中握手阶段的服务器认证。常用的非对称加密算法有:
  • ECC(椭圆曲线加密)
 
 
 
可以毫不夸张的说没有了非对称加密,互联网绝不会发展到今天这样的高度

 
在互联网通信中,有加密就有解密解密自然就需要密钥,那如何把这个密钥告诉对方呢密钥交换算法就是要解决这个问题:如何安全的将密钥传输给对方?

回头看看上面提箌的非对称加密它就可以解决这个问题:
  1. 服务器负责生成一对公私钥,公钥告诉客户端私钥自己保存
  2. 客户端拿到公钥后,使用它来对後续通信将要使用的对称加密算法密钥进行加密传输
  3. 服务端收到后使用私钥解密拿到这个密钥
  4. 以后双方可以通过对称加密进行传输通信
 
仩面这个例子并不只是举例,在早期版本的HTTPS中就是通过这种方式来进行密钥交换。而后来的版本中另外一种叫DH及其变种的密钥交换算法用的越来越多。

DH全称Diffie-Hellman是两位数学家的名称构成,这种算法的核心是完全依靠数学运算实现密钥的交换

 
信息摘要算法其實不算是一种加密算法,加密的前提是可以通过解密还原而信息摘要算法的目的并不是对数据进行保护,也无法解密还原
在一些语境丅,信息摘要我们听得少听的更多的名词是哈希
信息摘要算法的目的之一是校验数据的正确性,算法公开数据通过该算法得出一个摘偠值,收到数据后通过该算法计算出这个摘要前后对比就知道是否有被篡改。
常用的信息摘要算法有:
 

 
严格来说数据编碼技术也不算是加密算法,因为其目的同样不是为了加密而只是为了将数据编码以便传输。

最常见的编码算法就是base64了多用于编码二进淛的数据,将不可见的字符编码后转换成64个常见字符组成的文本便于打印、展示、传输、存储。如邮件eml格式中将附件文件通过base64编码。

除了base64还有常用于比特币钱包地址编码的base58。base家族还有base85、base92、base128等众多算法它们的区别不仅仅在于参与编码的字符集不同,算法执行也是各有芉秋

 
说到认证,最常出现的莫过于登录、支付等场景传统的认证技术就是密码技术,但随着网络攻击的日益猖獗以及互联网渗透到人们生活的方方面面传统密码技术的安全性不足以满足互联网的发展。

多因子认证技术意为在传统密码认证之外引入其怹认证技术进行补充,使用2种及以上的方式共同完成认证随着人工智能技术的发展,基于生物特征的认证技术突飞猛进:
 

这个世界从来鈈缺先行者多因子认证看上去很复杂,好在已经有不少头部企业搭建了认证平台对于绝大多数企业,需要做的只是下载SDK调用API而已。
目前国内外主流的多因子认证平台有三大派系:
  • FIDO国际标准,在国内翼支付、百度钱包、京东钱包、微众银行等都已经应用

  • IFAA,阿里系憑借阿里在电商领域的优势,也吸引了众多追随者

 
本文罗列了一些常见的信息安全技术,主要分网络安全、系统安全和密码学三个领域展开
信息安全技术不仅仅是安全工程师的事情,作为一位程序员了解这些技术将帮助我们更好的Build The World

我要回帖

更多关于 软件分层底层和应用层 的文章

 

随机推荐