精华内容
下载资源
问答
  • H3C构建中小企业网络

    2018-02-12 01:04:18
    里边包含上册+下册+实验手册,三部分,好不容易搞到的,另外我 其他资源还上传了H3C构建高性能园区网络、H3C构建安全优化的广域网、H3C大规模网络路由技术。都是 我 工作经常使用的资料,里边都包含理论学习指导...
  • 华为认证培训资料,培训课件,PPT资料,中小企业网络培训PPT资料,网络技术从入门到精通,网络构建基础,Windows2000/XP/2003网络构建,RedHatLinux...突出了中小企业网络构建与管理、网络安全网络故障的分析与处理。
  • 瑞星UTM产品架设在企业网络的入口,直接把病毒抵御在企业网络之外,而不必在服务器、终端设备反复杀毒,从而提高了工作效率。其次,越来越多的网络病毒开始利用操作系统的漏洞进行攻击和传播,如果不及时修补操作...
  • 中小企业网络安全防护应不仅仅是安全产品 和技术方面需要考虑的事情,更应是从安全管理、安 全技术和人员培训等多方面综合构建全面的安全防 护体系。 在安全管理方面,企业内部要建立起一套完整的 安全策略...
  • 本书包括了许多典型的案例,涵盖了中小企业乃至大型企业常见的一些网络架构和详细的配置文档,同时对国内常用的通信线路进行了相应的介绍。非常适合于负责企业网络建设的网络工程技术人员,以及负责网络管理的管理...
  • 里边包含上册+下册+实验手册,三部分,好不容易搞到的,另外我 其他资源还上传了H3C构建高性能园区网络、H3C构建中小企业网络、H3C构建安全优化的广域网、H3C大规模网络路由技术。都是 我 工作中经常使用的资料,...
  • 企业网用户如SOHO办公者小型分支结构的用户在接入企业网络时也越来越来倾向于使用便宜的宽带接入技术先接入Internet然后通过安全VPN的方式来访问企业网络;企业网的宽带接入技术需求 宽带接入技术关键概念 主要的...
  • 无线网络的搭建对于一个企业来说是比较高成本的,尤其是在安全保护措施,更是需要花费大量的人力和财力去维护。那么,在构建的过程就需要有效地分配和管理,降低成本预算。下面就为大家介绍一下关于无线交换网络...
  • 摘 要:云服务模式契合了中小企业信息化发展的需求。然而,如何将平台服务、宽带网络、多样化终端有机结合提供一体化服务,在国内外仍处于探索和试点阶段。在分析中小企业信息化需求的基础上,提出了基于“云—管—...
  • 博达博御防火墙BDCOM Secutor F1607以其优异的性价可以满足小型企业企业分支机构用户的互联网接入、专网访问控制、VPN组网等各项安全需求,为用户构建安全、广泛、稳固、高效、便捷的网络
  • 自己的课程报告,是关于小型企业网络课程设计,主要几个部门,然后构建局域网,主要有4个部门,办公室,资源部,市场部等,本文是基于一个课程的网络互联课程设计,根据实践环境设计一个小型企业内部的网络组建。...
  • Derezzed Inc.(dba ThreatGEN)是一家美国小企业,位于休斯顿德克萨斯州,目前专注于新兴技术应用领域,从事网络安全(工控安全)培训、工控安全服务咨询及工控安全威胁监控的解决方案。在网络安全(工控安全)培训...

    Derezzed Inc.dba ThreatGEN)是一家美国小企业,位于休斯顿德克萨斯州,目前专注于新兴技术应用领域,从事网络安全(工控安全)培训、工控安全服务咨询及工控安全威胁监控的解决方案。在网络安全(工控安全)培训服务中,该公司使用先进的计算机游戏引擎构建了网络安全(工控安全)培训平台,使得该平台基于游戏化的规则结合开发的系列工控安全培训课程TGICS101TGICS201TGICS301进行工控安全培训。在其他的服务解决方案中,工控安全服务咨询及工控安全威胁监控均依托该公司的资深工控安全专家的经验进行实施,其创始团队成员编写《***大曝光--工业控制系统》一书,目前正在编写一本最新的工控安全***书籍,工控安全专家具有较深厚的工控安全实战经验。该公司创立时间比较久远,公司的产品和技术方向也跟随这最新技术的发展而不断变化。相对于工控安全领域,该公司是新人,在技术创新上,采用目前最流行的网络安全游戏化和人工智能化培训模式构建网络安全(工控安全)培训课程及体系。

    Derezzed Inc.的工控安全培训平台历经了几个产品探索阶段,在最开始转型工控安全领域之初,该公司曾经以AR工业网络靶场的方式出现在工控安全领域,即通过3D建模/渲染、物理过程建模和仿真结合AR技术实现针对工业控制系统及物理环境的模拟仿真和可视化展现,通过***手段在模拟仿真环境中进行***对抗,最终展示模拟的控制系统及类真实环境的物理反应。从人机交互的发展历程看,该公司将模拟仿真产品通过AR这一人机交互技术进行应用,提升了网络安全***过程中的展示的可视化手段和沉浸式体验。在这个产品中,还主要以构建工业系统的仿真模拟和AR交互为主。

    由于其仅仅是一种仿真模拟和呈现手段,因此产品的实际落地和应用场景还需继续优化。最开始该公司探索的应用场景即为工控安全培训。在当前的市场中,企业或组织均面临一个安全治理难题,即企业或组织是不是会受到***,而是何时受到***。各大信息安全厂商为各个企业及组织的安全治理问题建立了全方位的安全防护产品及技术体系,但远远不能解决问题,还需要企业或组织建立一个网络安全团队,该团队应该熟悉这些安全产品和技术体系并具备应对信息安全威胁的能力。因此,安全培训市场应是和安全产品市场等同的市场规模,具备较好的市场经济效益。于是在第二代产品推出中,该公司的AR工业网络靶场具备了落地的实际应用场景工控安全培训。在工控安全培训应用流程中,利用AR工业网络靶场构建的模拟仿真和AR可视化展现场景,导入实验操作指导手册和具体的预置漏洞和***路径实现***操作培训,外加包括现场课堂培训、自定进度的在线学习、培训视频、知识库等完成第二代产品的迭代优化并推出市场。

    在最近推出的第三代产品上,Derezzed Inc.集合计算机游戏化的网络安全培训趋势,利用计算机游戏引擎驱动仿真模拟技术,将培训课程场景化、剧情化和游戏化,进一步增强人机交互的丰富接口。众所周知,游戏是现目前交互性、沉浸式较强的产品,网络安全技能培训和游戏的结合,是目前世界上较为潮流的实训仿真趋势和技术之一。该技术趋势在2017年出现在美国,主要由美国军方的采购需求所驱动。游戏具有在规则范围内的强力趣味性,能够引导现在的青少年基于游戏化的方法掌握网络安全实战技能。最古老的游戏要追溯到棋盘游戏。棋盘游戏的起源可以追溯到几千年前,当时围棋在中国被发明,并且被认为是迄今为止还能够连续发挥作用的最古老的棋盘游戏。随着时间的推移,各种游戏工具已被指挥官和工作人员用于支持军事演习。今天的M&S环境(国防建模与仿真(M&S))的前身是在19世纪初设计的。最开始,基于中国的棋盘游戏,由Baron von Reisswitz1812年基于国际象棋创建了军棋,用于训练普鲁士军队。后来,他的儿子LT Georg H.R.J. von Reisswitz1824年为军棋游戏制定了一套书面规则,使游戏和结果更加一致。在美国,基于军事化的网络战采购需求和成熟的游戏化军事演习理论,诞生了基于游戏化思维培训网络安全战士的理论体系,并为其取名专有的名称“Serious Games”。该术语用于识别为娱乐以外的目的而开发的游戏和游戏环境。和军事演习不同,“Serious Games 主要焦点是支持教育和培训。基于这样的趋势,该公司的产品在第三代上结合了游戏化的机制。现在的最新趋势认为,游戏化的网络安全培训是最完美的技能培训方法。身临其境的游戏化和模拟提供了一种有吸引力的娱乐方式!游戏化和模拟使学生处于有趣,引人入胜的故事情节和环境中,他们参与叙事(通常与其他学生竞争)、练习技能和执行工具,其操作和现实生活中一样。通过游戏化与沉浸式仿真模拟环境相结合,学员是游戏的一部分,他们的操作具有直接的反馈和结果,因此更能够引导学员深度参与其中。这不仅可以提高知识保留率,而且学员还可以在学习中享受这个游戏的过程!目前在美国,“Serious Games”年销售额为15亿美元。

    Derezzed Inc.的游戏化安全培训平台全称为ThreatGEN™Red vs. Blue,是业界第一款多玩家策略计算机游戏,玩家可以相互竞争,控制/维持对计算机网络的控制。这不是像消费者游戏市场那样的基于虚构的游戏应用。这是一个基于模拟仿真现场工控环境,玩家与玩家“游戏化”的训练模拟器,旨在教授身临其境的互动应用学习环境中的网络安全技能。在该网络安全游戏中,具有很多传统游戏的功能,比如单人对阵计算机AI(红队或蓝队),11互联网和本地热门排行的多人游戏挑战、跨平台的多人组队游戏、初学者教程等等。ThreatGENRed vs. Blue是一款回合制战略游戏,与流行的棋盘游戏非常相似。“游戏板”不是世界地图,而是由计算机网络组成,玩家争夺控制权。玩家使用类似于交易卡游戏的“动作卡”来选择和提交动作,该计算机网络不是虚拟的计算机终端,而是基于真实服务器硬件仿真模拟的虚拟机和3D建模渲染的物理反馈。该计算机游戏完全继承了传统游戏的游戏化设计并结合到网络安全技能培训内容中。我很期待她的上市,网络安全的小伙伴们玩游戏吧!在游戏中学习。


    该产品具有多个版本:

    l  Red vs. Blue

    针对个人的网络安全训练游戏版本

    l  Red vs. Blue Corporate

    针对企业的网络安全训练游戏版本,提供可定制的选项和企业培训方案

    l  Red vs. Blue CTF

    用于支持CTF网络安全竞赛的游戏版本

    l  Red vs. Blue Tabletop

    类似桌面棋盘推演的网络安全训练游戏版本

    l  Red vs. Blue Instructor Led Training

     

    提前预览下部分游戏界面截图:

    image.png

    image.png

    基于3D建模和渲染、物理过程建模和仿真出来的模拟工厂

    image.png

    蓝队操作界面

    image.png

    image.png



    红队操作界面

    image.png

    image.png


    展开全文
  • 虽然现在一直在说网络安全很重要,但是你可能并...在百度企业社会责任报告构建安全网络平台部分内容给出了这样一组数字。报告显示,百度平均每天处置违规广告1000万条、屏蔽链接10万个、拦截恶意网页6000万个、...

    虽然现在一直在说网络安全很重要,但是你可能并不知道那些安全厂商都做了什么?尤其在BAT这样级别的厂商中,网络安全是一种怎样的存在?

    2月24日,百度公布了最新的百度企业社会责任报告书。报告书中,百度在网络安全领域近3年的发展和能力令人关注。

    协同作战除网络黑产 百度安全联手小伙伴做了这么多

    在百度企业社会责任报告中,构建安全网络平台部分内容给出了这样一组数字。报告显示,百度平均每天处置违规广告1000万条、屏蔽链接10万个、拦截恶意网页6000万个、拦截恶意骚扰电话106万次。

    无论从量级还是频率来看,这都是一串令人瞠目的数字。未曾想过,我们平常的网络行为背后,竟然每天都在经受如此恐怖的攻击和骚扰。当然,在我们享受的网络背后,是百度在安全领域所作出的巨大努力。

    技术创新 人工智能助力网络安全

    百度作为全球四大AI企业之一,充分利用人工智能技术驱动的技术创新来维护网络安全。目前,通过人工智能为代表的大数据、云计算的技术创新,百度安全已经拥有全网安全监测、安全告警、安全攻防、攻击溯源等一系列安全能力。借助这些安全能力,百度安全不断针对窃取个人隐私、DDoS流量攻击、账号攻击、劫持等网络黑产行为开展一系列的行动。

    协同作战除网络黑产 百度安全联手小伙伴做了这么多

    例如,去年影响颇为广泛的“网络访客营销”事件中,百度安全第一时间进行了快速响应与处理,将背后存在的恶意窃取用户手机号、QQ号等网络黑产行为全面曝光,并通过联合推广、搜索等部门下线4万个推广网站。

    此外,针对网络犯罪行为,百度安全也通过自身能力的优势,与全国各地公安积极配合,不断对网络犯罪进行深度清洗。

    在企业客户深恶痛绝但又往往无可奈何的DDoS攻击行为方面,百度安全借助建立的两大硬件、三大软件为核心的ADS中心,成功为联众游戏、百度云加速解决和防御了DDoS的攻击。而且,通过对嫌疑人所控制的僵尸网络的反向渗透,百度安全还溯源到僵尸网络的主控端地址,并获取了相应的通讯协议,配合警方成功抓捕罪犯。

    去年7月,当网络黑产针对百度网盘进行撞库攻击时。百度安全不仅第一时间上线防护策略,并通过大数据分析进行攻击溯源,成功保护了用户账号安全的同时,更协助海淀网安部门抓获制造撞库工具、实施撞库犯罪的犯罪嫌疑人。

    协同作战除网络黑产 百度安全联手小伙伴做了这么多

    安全生态共建 共卫网络社会

    网络安全碎片化,让网络安全防范面临巨大的挑战,各行各业也不断开展协同共建,以期达到多方合作机制共同保卫网络安全。今年6月《网络安全法》即将正式实施,这不仅代表着我国将网络安全提升到法律层面,更是展现出网络安全已经成为国家核心发展战略,维护社会稳定的重要方向。

    对于百度来说,创建网络安全生态是应有的企业社会责任,技术创新之余,更是需要带动行业共同发展。百度安全已经与苹果、华为、小米等多家手机制造商展开深度合作。iOS10发布后,就首次让苹果手机中实现精准垃圾来电识别。而针对华为、小米等厂商,也是全面开放安全SDK,为用户提供病毒防范、垃圾清理、骚扰拦截等安全服务,保障手机能够安全地使用。此外,百度安全还与中国移动、中国电信、中国联通全面合作,协助运营商对端口漏洞进行修复,彻底遏制用户信息泄露源头,保障用户隐私安全。

    协同作战除网络黑产 百度安全联手小伙伴做了这么多

    除了与跨行业伙伴的合作,在安全行业中百度也联合西部数码、四叶草、四川无声信息等网络安全技术公司分别在北京、上海、深圳、西北等地区建立了安全生态。去年9月更是深入西南腹地进驻成都,成立西南运营中心,全面部署全国范围的网络安全生态。

    目前,百度安全已经将最新的技术创新成果和能力,不断输出给生态伙伴,成功保护40余万个网站和数十亿网民的安全。当然,随着网络安全呈碎片化趋势,尤其是在网络安全已经上升到国家层面的大背景下,安全厂商需要对用户、社会和网络环境承担更多的责任,为国家发展、百姓安康不断践行。

    展开全文
  • 中小企业文件、打印解决方案 客户需求 无论是什么规模或类型的公司或企业,为了能够安全的保存数据和在网络中实现打印服务功能,都必须考虑构建文件服务器和打印服务器系统。 您的公司或...
    中小企业文件、打印解决方案<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

    <?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />

     

    客户需求

    无论是什么规模或类型的公司或企业,为了能够安全的保存数据和在网络中实现打印服务功能,都必须考虑构建文件服务器和打印服务器系统。

    您的公司或企业正在面临需要快速安装文件服务器或打印服务器吗?

    您的公司里的技术人员能够实现对文件服务器或打印服务器的优化工作吗?

    您希望最小化建设文件服务器和打印服务器环境的成本吗?

    只要您的企业对以上一个或多个情况持肯定态度,选择网络附加存储(NAS)方案都是一个最为明智的选择。

    什么是 NAS?

    要想了解什么是NAS,我们需要先了解存储连接的几种方式:

    1.      直接附加存储(DAS

    2.      存储区域网络(SAN

    3.      网络附加存储(NAS

    4.      网络附加存储网关(NAS gateway

    先通过以下几张图看一看以上几种存储连接的方式吧。

    1)直接附加存储:

    直接附加存储具有以下特点:

    • 直接附加存储(DAS)的容量等于每台服务器的专用存储容量

    • 存储设备通过线缆直接连接服务器或与所在机箱整合作为处理机.

    • 直接附加存储与主机之间的传输数据格式为SCSI Block I/O

    • 使用DAS的服务器无法共享其他服务器的DAS资源

    • 使用DAS的服务器没有集中的存储管理

    • DAS 缺乏可扩展性

    2)存储区域网络:

    存储区域网络的特点:

    • 提供存储合并,从而消除了服务器和存储之间的专用连接

    • SAN具有更好的磁盘利用率,可以将空闲空间分配给其他的服务器使用

    • 采用光纤连接提高了存储系统的性能

    • 服务器与存储的扩展可以独立进行,互不干扰

    • 存储设备采用高可靠配置,从软件到硬件提高了系统的可用性

    3)网络附加存储:

    网络附加存储的特点:

    • 存储资源可由多台服务器共享

    • 使用已有的IP 网络架构就可以实现

    • 安装、实施简单

    • 增强的存储选择

    • 增强的连接

    • 较强的可扩展性

    • 异类文件共享

    • 改善的可管理性

    • 潜在降低的总成本

    4)网络附加存储网关

    网络附加存储网关的特点:

    • 光纤通道投资价值杠杆作用.当你已经拥有SAN存储时为什么购买额外的NAS存储?

      • 利用你的存储投资并购买无额外NAS存储成本的NAS功能

      • 帮助减少光纤设备的访问成本

      • 允许对闲置的SAN存储的访问

      • 提供SAN存储设备上的异类文件服务

    • NAS网关提供NASSAN的复合优点和特性

      • IP网络连接

      • 提供文件服务器的功能

      • 提供异类文件公享

      • 提供NAS适应性和易用性

      • 提供基于IP网络SAN的可扩展性

    • 增加光纤通道存储设备的延伸

      • 突破光纤通道拓扑限制的扩展

      • 允许在IP网络上使用FC设备

      • 对交换机,directors, RAID控制器和磁盘阵列的连接

    • HS20 刀片存储服务器

      • 标准的光纤通道卡

      • 支持以下设备: DS300, DS400. DS4000, DS4300, DS4500

    方案功能与优势

    采用 NAS 作为文件服务器和打印服务器的优势在于:

    • NAS 设备直接与现有局域网连接.

      • 不需要额外的更昂贵复杂的设备

      • 多数IT公司已具备了相应功能

      • 不会干扰现有基本构造,并且一旦实施,只需很少或不需维护. 客户可经常加入NAS设备且可忽视掉它产生的影响.

    • NAS 设备是预配置的,目的是使一个管理员可以将设备在几分钟内完成安装和上线.

    • 将存储整合在一个存储池中使得存储管理更简化.

      • 把存储资源从应用服务器中分离出来,发挥大量简单存储管理任务可用性的潜能.

      • 管理工具很容易配置

    • NAS设备只完成一种任务文件服务他们可以为此目的设计和优化. NAS 设备也简单易用.

    • 支持不同种类文件系统和协议. I/O 由更高一层的I/O文件控制

    建议配置方案

    我们建议的NAS服务器为NAS文件服务器和NAS文件、打印服务器。

    NAS文件服务器根据成本的要求,分为640GB存储容量和1TB存储容量两种,具体差别如下:

    存储容量

    640GB SATA

    1TB SATA

    处理器主频

    3.2GHz Petium4

    3.4GHz Pentium4

    处理器个数

    1

    1

    内存容量

    512MB

    1GB

    操作系统

    Windows Storage Server 2003 Express

    Windows Storage Server 2003 Express

    存储管理软件

    Microsoft Storage Server

    Microsoft Storage Server

    服务器管理软件

    IBM Director Client

    IBM Director Client

    NAS文件、打印服务器根据成本的要求,分为SATASCSI两种,具体差别如下:

    存储容量

    1TB SATA

    2x36GB + 4x146GB

    处理器主频

    3.0GHz Xeon

    3.4GHz Xeon

    处理器个数

    2

    2

    内存容量

    512MB

    1GB

    操作系统

    Windows 2003 Storage Server standard

    Windows 2003 Storage Server standard

    存储管理软件

    Microsoft Storage Server

    Microsoft Storage Server

    服务器管理软件

    IBM Director Client

    IBM Director Client

    详细信息:

    转载于:https://blog.51cto.com/houzhiwei/66671

    展开全文
  • 大量的无线路由器被用于企业中,使得针对无线网络的故障诊断和安全保障变得与有线网络一样重要。  在企业无线网办公经常会出现一些使用手册上未涉及到的疑难和故障,有时难以应付,无法解决。下面就无线网络中由...
  • 1、智能设备安全考虑 1.1、消费者关注 ...安全在智能设备开发中非常重要, 同时作为普通的开发者和中小企业从0构建一套全面且稳定的安全防护能力,也是比较困难的。那如何轻松地构建智能设备的安全能力,免..

    1、智能设备安全考虑

    1.1、消费者关注

    根据权威机构调查报告显示消费者在购买智能设备时的考量因素,安全和隐私的因素占比大约在50%。 

    1.2、安全风险

    著名网络安全公司SonicWall在其2020年发布的网络安全报告中揭露,去年(2019)其记录的针对IoT智能设备的安全攻击增长5%,并且可以预见未来针对IoT智能设备的攻击将会越来越多。

    安全在智能设备开发中非常重要, 同时作为普通的开发者和中小企业从0构建一套全面且稳定的安全防护能力,也是比较困难的。 那如何轻松地构建智能设备的安全能力,免遭黑客的攻击呢?

    答案就是使用AliOS Things来进行智能设备的开发, AliOS Things是阿里巴巴自主研发、面向 IoT 领域的、高可伸缩的物联网操作系统。  AliOS Things 致力于搭建云端一体化 IoT 基础设施,具备极致性能、极简开发、云端一体、丰富组件、安全防护等关键能力。

    2、AliOS Things安全能力

    AliOS Things在加速智能设备产品开发的同时, 注重建设智能设备的安全防护能力。

    image.png

    在端上安全能力的建设是以ID2为中心,目标是为物联网设备提供设备身份认证, 在上方提供使用ID2的tls安全连接协议(itls:基于mbedtls修改,主要修改mbedtls中tls协议的认证部分,改用ID2认证), 在下方需要对接各种不同厂家的不同等级的安全芯片(tee, se, mcu中的安全能力)。应用的开发者可以使用大家比较熟悉的mbedtls api来开发应用。 

     

    AliOS Things的安全能力比较丰富,后续会有一系列的文章来阐述。

    本文章先从应用开发者接触比较多的Mbed TLS开始介绍。

     

    3、Mbed TLS 介绍

    3.1、Mbed TLS 是什么

    Mbed TLS 是一个提供安全基础能力的库,它提供了安全算法,X.509证书,TLS/DTLS协议的实现。

    安全算法方面它主要提供了下列功能

    • 对称加密算法

    AES, Blowfish, Triple-DES (3DES), DES, ARC4, Camellia, XTEA, ChaCha20

    • 对称加密算法的工作模式

    ECB, CBC, CFB, CTR, GCM, CCM

    • 非对称加密算法

    RSA, DH, ECC, ECDHE, ECDSA

    • Hash算法

    MD2, MD4, MD5, SHA-1, SHA-224, SHA-256, SHA-384, SHA-512, RIPEMD-160

    • 随机数
    • 消息认证算法

    HMAC, Poly1305

    • 编码

    ASN.1, BASE64

     

    协议实现方面它提供了TLS/DTLS协议的客户端和服务端实现,支持SSL 3.0,TLS 1.0,TLS 1.1,TLS 1.2, DTLS 1.0, DTLS 1.2。 

    一言以蔽之, Mbed TLS是OpenSSL的替代品,Mbed TLS比OpenSSL更轻量级,适用于资源比较受限的嵌入式设备上。

    3.2、Mbed TLS 使用场景

    鉴于Mbed TLS是一个提供安全基础能力的库,提供的能力比较全面,大多功能都可以单独使用。所以它的使用场景特别丰富。

    • 使用Mbed TLS把自己的web server进行安全加固,从http变成https的web站点。
    • 使用Mbed TLS访问一个https的web站点。
    • 使用Mbed TLS对数据进行加密/解密,签名/验签, Hash运算,证书生成/解析,产生随机数等。

    4、Mbed TLS 源码分析

    前提说明:Transport Layer Security (TLS)  是Secure Sockets Layer (SSL) 的更高级版本, TLS 1.0是在SSL 3.0的基础上开发的,TLS是IETF标准化后的重新命名。在多种代码实现中并不区分TLS与SSL的名称,在API, 数据结构中大多都使用SSL的名称。

    4.1、一次握手过程

    Mbed TLS的源码特别多, 下面以TLS客户端的一次TLS握手的代码实现为例,来分析一下TLS握手的处理过程。

    // 执行SSL握手,协商SSL连接的各个因素。
    int mbedtls_ssl_handshake( mbedtls_ssl_context *ssl )
    {
        int ret = 0;
    
        if( ssl == NULL || ssl->conf == NULL )
            return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA );
    
        MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> handshake" ) );
    
        while( ssl->state != MBEDTLS_SSL_HANDSHAKE_OVER )
        {
            // 根据SSL握手的状态,循环处理SSL握手的各个阶段,直到握手结束。
            ret = mbedtls_ssl_handshake_step( ssl );
    
            if( ret != 0 )
                break;
        }
    
        MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= handshake" ) );
    
        return( ret );
    }
    // 处理SSL握手的单个步骤
    int mbedtls_ssl_handshake_step( mbedtls_ssl_context *ssl )
    {
        int ret = MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE;
    
        if( ssl == NULL || ssl->conf == NULL )
            return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA );
    
    #if defined(MBEDTLS_SSL_CLI_C)
        if( ssl->conf->endpoint == MBEDTLS_SSL_IS_CLIENT )
            // SSL客户端主动发起SSL连接请求,在这里处理SSL握手的单个步骤。
            ret = mbedtls_ssl_handshake_client_step( ssl );
    #endif
    #if defined(MBEDTLS_SSL_SRV_C)
        if( ssl->conf->endpoint == MBEDTLS_SSL_IS_SERVER )
            // SSL被动接受SSL连接请求,在这里处理SSL握手的单个步骤。
            ret = mbedtls_ssl_handshake_server_step( ssl );
    #endif
    
        return( ret );
    }
    // SSL客户端的单个阶段的握手处理
    int mbedtls_ssl_handshake_client_step( mbedtls_ssl_context *ssl )
    {
        int ret = 0;
    
        // SSL状态和参数和合法性检查
        if( ssl->state == MBEDTLS_SSL_HANDSHAKE_OVER || ssl->handshake == NULL )
            return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA );
    
        MBEDTLS_SSL_DEBUG_MSG( 2, ( "client state: %d", ssl->state ) );
    
        // flush此连接上的数据,防止上一个步骤的数据未完全发出去
        if( ( ret = mbedtls_ssl_flush_output( ssl ) ) != 0 )
            return( ret );
    
    #if defined(MBEDTLS_SSL_PROTO_DTLS)
        // DTLS处理
        if( ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM &&
            ssl->handshake->retransmit_state == MBEDTLS_SSL_RETRANS_SENDING )
        {
            if( ( ret = mbedtls_ssl_flight_transmit( ssl ) ) != 0 )
                return( ret );
        }
    #endif /* MBEDTLS_SSL_PROTO_DTLS */
    
        /* Change state now, so that it is right in mbedtls_ssl_read_record(), used
         * by DTLS for dropping out-of-sequence ChangeCipherSpec records */
    #if defined(MBEDTLS_SSL_SESSION_TICKETS)
        if( ssl->state == MBEDTLS_SSL_SERVER_CHANGE_CIPHER_SPEC &&
            ssl->handshake->new_session_ticket != 0 )
        {
            ssl->state = MBEDTLS_SSL_SERVER_NEW_SESSION_TICKET;
        }
    #endif
    
        switch( ssl->state )
        {
            case MBEDTLS_SSL_HELLO_REQUEST:
                // 切换状态hello request到发送client hello状态
                ssl->state = MBEDTLS_SSL_CLIENT_HELLO;
                break;
    
           /*
            *  ==>   ClientHello
            */
           case MBEDTLS_SSL_CLIENT_HELLO:
               //发送client hello报文,主要包括ssl协议的版本,随机数,加密算法套件, 压缩算法,协议扩展。
               //此阶段主要是客户端用来告知服务端,自己所具备的能力,如支持的算法,协议版本,协议扩展等,
               //就这些能力与服务端进行协商,如服务端会选择一个算法套件。
               ret = ssl_write_client_hello( ssl );
               break;
    
           /*
            *  <==   ServerHello
            *        Certificate
            *      ( ServerKeyExchange  )
            *      ( CertificateRequest )
            *        ServerHelloDone
            */
           case MBEDTLS_SSL_SERVER_HELLO:
               // 解析服务端发送过来的server hello报文,处理服务端发来的协议版本,随机数,session id, 
               // 服务端选择的加密算法套件,压缩算法(一般不使用压缩),协议扩展等。
               // 另外如果客户端发来是重协商请求,执行重协商检查和处理。
               ret = ssl_parse_server_hello( ssl );
               break;
    
           case MBEDTLS_SSL_SERVER_CERTIFICATE:
               // 解析服务端发送过来的server 证书,协议证书,进行证书的合法性检查,
               // 检查通过后利用信任的CA证书进行验证,验证通过后检查证书的用途,检查用途合法后切换状态到
               // 下一个阶 MBEDTLS_SSL_SERVER_KEY_EXCHANGE。
               ret = mbedtls_ssl_parse_certificate( ssl );
               break;
    
           case MBEDTLS_SSL_SERVER_KEY_EXCHANGE:
               // 解析服务端的key交换,或者key计算的材料。
               ret = ssl_parse_server_key_exchange( ssl );
               break;
    
           case MBEDTLS_SSL_CERTIFICATE_REQUEST:
               // 解析服务度发送的证书请求报文(可选),只有在服务端要求认证客户端时才有这个报文。
               // 客户端在收到服务端发来的证书请求报文后,发送自己的认证给对端认证。
               ret = ssl_parse_certificate_request( ssl );
               break;
    
           case MBEDTLS_SSL_SERVER_HELLO_DONE:
               //解析服务度发送的server hello done报文,表示server hello阶段的报文到此结束
               ret = ssl_parse_server_hello_done( ssl );
               break;
    
           /*
            *  ==> ( Certificate/Alert  )
            *        ClientKeyExchange
            *      ( CertificateVerify  )
            *        ChangeCipherSpec
            *        Finished
            */
           case MBEDTLS_SSL_CLIENT_CERTIFICATE:
               //发送客户端的证书,只有在收到服务端发来的证书请求时才发送。服务端会对发过去的证书进行认证
               //以确定客户端身份的合法性。
               ret = mbedtls_ssl_write_certificate( ssl );
               break;
    
           case MBEDTLS_SSL_CLIENT_KEY_EXCHANGE:
               //发送客户端的KEY协商报文,主要包括KEY协商的协议如DH, 和协商的材料。
               ret = ssl_write_client_key_exchange( ssl );
               break;
    
           case MBEDTLS_SSL_CERTIFICATE_VERIFY:
               ret = ssl_write_certificate_verify( ssl );
               break;
    
           case MBEDTLS_SSL_CLIENT_CHANGE_CIPHER_SPEC:
               // 客户端发送changecipherspec报文,表明接下来开始使用协商计算出来的key,进行加密通信
               ret = mbedtls_ssl_write_change_cipher_spec( ssl );
               break;
    
           case MBEDTLS_SSL_CLIENT_FINISHED:
               // 客户端发送finished报文,表明握手结束。消息包括客户端交换过的重要信息的MAC,此消息是被加密的
               // 重要信息包括客户端发送的随机数,KEY交换的材料等, 这个报文的意义在于之前协商的报文虽然是明文,
               // 但确是不能被篡改的,所以需要一个握手最后过程的完整性保护。
               ret = mbedtls_ssl_write_finished( ssl );
               break;
    
           /*
            *  <==   ( NewSessionTicket )
            *        ChangeCipherSpec
            *        Finished
            */
    #if defined(MBEDTLS_SSL_SESSION_TICKETS)
           case MBEDTLS_SSL_SERVER_NEW_SESSION_TICKET:
               // 解析服务端的session ticket。
               ret = ssl_parse_new_session_ticket( ssl );
               break;
    #endif
    
           case MBEDTLS_SSL_SERVER_CHANGE_CIPHER_SPEC:
               // 解析服务端发送的changecipherspec报文,表明服务端接下来会使用之前
               // 协商出来的key,进行加密通信。
               ret = mbedtls_ssl_parse_change_cipher_spec( ssl );
               break;
    
           case MBEDTLS_SSL_SERVER_FINISHED:
               // 解析服务端的finished报文,计算之前协商过程重要信息的MAC值,保证之前的协商信息
               // 虽然是明文的, 但没有被篡改过。
               ret = mbedtls_ssl_parse_finished( ssl );
               break;
    
           case MBEDTLS_SSL_FLUSH_BUFFERS:
               // flush之前发送的协商报文
               MBEDTLS_SSL_DEBUG_MSG( 2, ( "handshake: done" ) );
               ssl->state = MBEDTLS_SSL_HANDSHAKE_WRAPUP;
               break;
    
           case MBEDTLS_SSL_HANDSHAKE_WRAPUP:
               // SSL连接已经建立,准备切换当前的ssl session和传输层,并释放之前旧的session和传输层数据。
               mbedtls_ssl_handshake_wrapup( ssl );
               break;
    
           default:
               //其他无效状态
               MBEDTLS_SSL_DEBUG_MSG( 1, ( "invalid state %d", ssl->state ) );
               return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA );
       }
    
        return( ret );
    }

    4.2、AliOS Things Mbed TLS

    AliOS Things Mbed TLS是在开源的Mbed TLS 2.16.0 基础上,适配到AliOS Things。 秉承的宗旨是尽量少改动,API与开源的完全保持一致,方便开发者使用和移植上面的应用。相关代码路径在components/security/mbedtls。

    AliOS Things Mbed TLS组件在开源的基础上主要有以下几点修改:

    • thread的实现。
    • network socket的发送和接受实现。
    • 动态内存的管理。
    • 适应AliOS Things的配置, 完整配置文件 components/security/mbedtls/aos/include/mbedtls_config.h 。

    为适应嵌入式设备资源非常受限的场景,AliOS Things对Mbed TLS还提供了组件化的配置, 用户可以执行aos make menuconfig, 依次进入到 Utility Configuration -> Mbed TLS 2.16.0 -> Mbedtls Configuration 根据自己的场景需要,进行适当的配置, 我们对Mbed TLS组件提供了默认配置,能覆盖大部分场景。

    5、Mbed TLS 使用例程

    以一个简单的TLS客户端为例, 该TLS客户端访问阿里云物联网平台(上海站点)iot-as-mqtt.cn-shanghai.aliyuncs.com。

    ......
    #define SERVER_PORT "1883"
    #define SERVER_NAME "a1MZxOdcBnO.iot-as-mqtt.cn-shanghai.aliyuncs.com"
    #define GET_REQUEST "GET / HTTP/1.0\r\n\r\n"
    
    // 验证对端证书所需要的CA认证
    const char* tls_client_test_ca_pem = \
        "-----BEGIN CERTIFICATE-----\r\n"
        "MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkG\r\n" \
        "A1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv\r\n" \
        "b3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAw\r\n" \
        "MDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9i\r\n" \
        "YWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJHbG9iYWxT\r\n" \
        "aWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDaDuaZ\r\n" \
        "jc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavp\r\n" \
        "xy0Sy6scTHAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp\r\n" \
        "1Wrjsok6Vjk4bwY8iGlbKk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdG\r\n" \
        "snUOhugZitVtbNV4FpWi6cgKOOvyJBNPc1STE4U6G7weNLWLBYy5d4ux2x8gkasJ\r\n" \
        "U26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrXgzT/LCrBbBlDSgeF59N8\r\n" \
        "9iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8E\r\n" \
        "BTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0B\r\n" \
        "AQUFAAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOz\r\n" \
        "yj1hTdNGCbM+w6DjY1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE\r\n" \
        "38NflNUVyRRBnMRddWQVDf9VMOyGj/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymP\r\n" \
        "AbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhHhm4qxFYxldBniYUr+WymXUad\r\n" \
        "DKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveCX4XSQRjbgbME\r\n" \
        "HMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A==\r\n" \
        "-----END CERTIFICATE-----\r\n";
    
    int tls_client_test( void )
    {
        mbedtls_net_context server_fd;
        mbedtls_ssl_context ssl;
        mbedtls_ssl_config conf;
        mbedtls_x509_crt cacert;
        ......
    
        /* 设置DEBUG级别 */
    #if defined(MBEDTLS_DEBUG_C) 
        mbedtls_debug_set_threshold( DEBUG_LEVEL );
    #endif
    
        // 0. 初始化需要的数据结构,
        mbedtls_net_init( &server_fd );
        mbedtls_ssl_init( &ssl );
        mbedtls_ssl_config_init( &conf );
        mbedtls_x509_crt_init( &cacert );
    
        // 1. 加载信任的CA证书
        mbedtls_x509_crt_parse( &cacert, (const unsigned char *) tls_client_test_ca_pem,
                              strlen( tls_client_test_ca_pem ) + 1 );
    
        // 2. 建立TCP的连接
    	mbedtls_net_connect( &server_fd, SERVER_NAME, SERVER_PORT, MBEDTLS_NET_PROTO_TCP )
    
        // 3. 使用SSL默认配置, 设定为SSL客户端,采用TCP。
        mbedtls_ssl_config_defaults( &conf,
                        MBEDTLS_SSL_IS_CLIENT,
                        MBEDTLS_SSL_TRANSPORT_STREAM,
                        MBEDTLS_SSL_PRESET_DEFAULT ) ) != 0 )
    	
        // 3.1. 配置ssl的认证模式为需要认证对端。
        mbedtls_ssl_conf_authmode( &conf, MBEDTLS_SSL_VERIFY_REQUIRED );
        
        // 3.2. 配置信任的CA链
        mbedtls_ssl_conf_ca_chain( &conf, &cacert, NULL );
        
        // 3.3. 配置系统的随机数发生函数。这里tls_client_random为自己实现的随机数发生函数。
        mbedtls_ssl_conf_rng( &conf, tls_client_random, NULL );
        
        // 3.4. 配置debug函数,这里my_debug为自己实现的debug函数,比如是一个简单的打印到串口的函数。
        mbedtls_ssl_conf_dbg( &conf, my_debug, NULL );
    
    #if defined(MBEDTLS_SSL_MAX_FRAGMENT_LENGTH)
        // 3.5. 配置SSL的最大分片长度。
        mbedtls_ssl_conf_max_frag_len( &conf, MBEDTLS_SSL_MAX_FRAG_LEN_4096 );
    #endif
    
        // 3.6. 使以上的配置conf对当前SSL连接 ssl 生效。
        mbedtls_ssl_setup( &ssl, &conf )
    	
        // 3.7. 为当前SSL连接ssl设置对端的主机名。
        mbedtls_ssl_set_hostname( &ssl, SERVER_NAME )
    
    	// 3.8. 为当前SSL连接ssl设置ssl的I/O函数分别为mbedtls_net_recv/mbedtls_net_send。
        mbedtls_ssl_set_bio( &ssl, &server_fd, mbedtls_net_send, mbedtls_net_recv, NULL );
    
        // 4. 发起SSL握手
        mbedtls_ssl_handshake( &ssl );
    
    	// 5. 获得对端证书的认证结果。注意这里只是得到认证结果,真正的认证过程是在上一步SSL握手过程中。
    	mbedtls_ssl_get_verify_result( &ssl );
    
    
    	// 6. 发送数据给对端。SSL握手成功后,SSL连接已经建立,此时可以利用SSL连接
        //    发送出去的数据是被加密和完整性保护的。
        mbedtls_ssl_write( &ssl, buf, len );
    
    
    	// 7. 从SSL连接中读取数据。
        do {
        	ret = mbedtls_ssl_read( &ssl, buf, buf_len -1 );
            if( ret == MBEDTLS_ERR_SSL_WANT_READ || ret == MBEDTLS_ERR_SSL_WANT_WRITE )
                continue;
            if( ret == MBEDTLS_ERR_SSL_PEER_CLOSE_NOTIFY )
                break;
            if(ret <= 0)
                break;
            ......
        } while (1);
    
        // 8. 关闭SSL连接。
        mbedtls_ssl_close_notify( &ssl );
    
    	// 9. 释放SSL相关资源。
        mbedtls_net_free( &server_fd );
        mbedtls_x509_crt_free( &cacert );
        mbedtls_ssl_free( &ssl );
        mbedtls_ssl_config_free( &conf );
        mbedtls_free(buf);
    	......
    }

    6、Mbed TLS 使用常见问题

    1、TLS 握手失败,Debug消息显示"buffer too small ..." 或者 "bad message length"

    这可能是TLS消息出来的I/O buffer小于消息的长度, 通过配置增大I/O buffer即可, 下列通过AliOS Things的menuconfig来配置,Mbedtls Configuration -> TLS/DTLS protocol support -> TLS/DTLS maximum incoming/outgoing content length , AliOS Things默认配置的I/O buffer为4KB, 一般扩大到16384 (16KB)可以解决所有的此类问题。

    2、支持TLS1.3吗?

    暂不支持TLS1.3,  AliOS Things 的Mbeb TLS组件能力与社区的相同版本能力保持一致,目前支持的协议版本:SSL 3.0,TLS 1.0,TLS 1.1,TLS 1.2, DTLS 1.0, DTLS 1.2。 现在主流服务器都会向后兼容支持TLS1.2等,不会强制客户端使用TLS1.3版本。 

    7、开发者技术支持

    如需更多技术支持,可加入钉钉开发者群,或者关注微信公众号

    更多技术与解决方案介绍,请访问阿里云AIoT首页https://iot.aliyun.com/

     

    展开全文
  • 构建小型的入侵检测系统(FreeBSD)

    千次阅读 2006-11-09 15:42:00
    1.Snort简介Snort是一个...更重要的它是免费的,在中小企业中很好的适应网络环境,不需要太多的资源和资金就能建立起一个优秀的IDS系统。2.系统平台安装平台选择FreeBSD4.9,本身足够安全,坚固;特性喜欢PORTS安装
  • 对于企业安全,用户必须配置企业安全的关联搜索并了解企业安全的工作方式。 但是对于此应用程序,目标是提供开箱即用的端到端安全解决方案。 因此,该用户不必进行太多配置。 此外,该应用程序还可以处理警报,使...
  • 企业越来越依赖网络,部署IT业务时,机房和服务器成为生态链关键一环。很多企业会选择Linux服务器操作系统,原因很简单,Linux开源、稳定、安全。可以给用户带来更加方便的使用感受。 我们用图说话!给出一个简单...
  • 网新英文企业手机电脑一体化建站专业版安全建议 为确保您的网站安全,请修改以下默认设置: 1、更改默认的后台用户名和密码admin; 2、更改默认的后台管理文件夹名Myadmin,直接修改根目录下的文件夹名称即可;...
  • 始终致力于开发最优化的算法和数据结构,企业网站管理系统营销旗舰版从每个表和字段的设计、每个索引的构建到每个查询的算法, 都经过缜密的考虑和最佳的优化,使用了众多知名的高效算法,并独创了一系列高效的处理...
  • 始终致力于开发最优化的算法和数据结构,企业网站管理系统营销旗舰版从每个表和字段的设计、每个索引的构建到每个查询的算法, 都经过缜密的考虑和最佳的优化,使用了众多知名的高效算法,并独创了一系列高效的处理...
  • 始终致力于开发最优化的算法和数据结构,企业网站管理系统营销旗舰版从每个表和字段的设计、每个索引的构建到每个查询的算法, 都经过缜密的考虑和最佳的优化,使用了众多知名的高效算法,并独创了一系列高效的处理...
  • 用Linux防火墙构建DMZ

    2005-12-03 10:44:00
    防守在网络安全中的重要性不必多说。保护网络最常见的方法就是使用防火墙。...这对于一些中小企业来说是简单易行的,而且这种解决方法在某些情况下也表现不错。然而这种结构毕竟比较简单。企业中有许多服务器
  • 用Linux防火墙构建DMZ

    2004-12-04 12:00:00
    防守在网络安全中的重要性不必多说。保护网络最常见的方法就是使用防火墙。...这对于一些中小企业来说是简单易行的,而且这种解决方法在某些情况下也表现不错。然而这种结构毕竟比较简单。企业中有许多服务器、客
  • 里边包含上册+下册+实验手册,三部分,好不容易搞到的,另外我 其他资源还上传了H3C构建高性能园区网络、H3C构建中小企业网络、H3C构建安全优化的广域网、H3C大规模网络路由技术。都是 我 工作中经常使用的资料,...
  • 每一个企业级的人 都置顶了 中国软件网中国软件网 为你带来最新鲜的行业干货编点评我们期待科技给我们的生活带来新的方便但是也希望能保证我们的网络安全趋势洞察沈昌祥院士:科学的网络安全观与可信计算3.0...
  • 英语讲师思科认证网络基础 解释终端用户设备和本地网络如何与全球互联网交互。 ●解释网络连接要求。 ©2019思科和/或其附属公司。版权所有。思科文件是公开的。...●解决家庭和小型企业网络中常见的网络问题。
  • 无线路由器、AP及无线网卡为代表的无线网络产品,已经逐渐打破家庭和中小企业市场中Hub以及普通路由器“一统天下”的局面,成为构建SOHO和中小型网络的首选。市场需求巨大、价格的敏感、同类产品竞争的激烈,都要求...

空空如也

空空如也

1 2 3 4 5 ... 11
收藏数 204
精华内容 81
关键字:

构建中小企业安全网络