硬核观察 #1067 Meta 发布新大语言模型，可免费商用，采用特别的“开源”方式
Meta 发布新大语言模型，可免费商用，采用特别的“开源”方式Meta 周二发布了 Llama 2：这是一套经过预训练和微调的基于文本的人工智能模型，有三种不同的规模，分别包含 70 亿、130 亿和 700 亿个参数。与之前的 LLaMA 模型不同的是，任何人都可以申请下载 Llama 2，开发人员可以用它来构建商业产品或服务，以及开展有趣的项目。Meta 表示，不会对访问或使用其开发的模型收费，而是通过向其他公司开放该技术，如与微软和亚马逊合作，在 Azure 和 AWS 上提供该模型。值得注意的是，Llama 2 采用了专门的 许可证，有一些独特的限制，因此不符合“开源”的定义。除了常见的免责声明外，开发人员不能利用其输出结果来改进其他类型的大型语言模型。以及，如果将 Llama 2 用于支持那些拥有超过 7 亿月活跃用户的应用程序的大公司，必须申请使用 Meta 技术的特殊许可。消息来源：The Register老王点评：虽然不是规范定义的“开源”软件，但至少是开放的。值得注意但是，从 LLaMA 到 Llama 2，Meta 都采用了非同寻常的“开源”方式，这或许是 Meta 既想利用开源的优势，又有一些不确定的担忧。也许人工智能领域需要一种独特的开放许可证。美国启动物联网安全标签计划该计划的正式名称为《美国网络信任标识》，旨在帮助美国人确保他们购买的互联网连接设备具有强大的网络安全保护措施，可防范网络攻击。长期以来，物联网一直被认为是网络安全的薄弱环节。符合该标准的设备将要求具有唯一且强大的默认密码、保护存储和传输的数据、提供定期的安全更新以及具备事故检测能力等。消息来源：Tech Crunch老王点评：越来越多的物联网设备，其实是埋在信息社会底层的空洞，你不知道它什么时候就会导致塌陷。印度大部分外包程序员将在两年内因人工智能而消失Stability AI 公司的 CEO 表示，印度的大多数外包程序员将在未来一两年内失业。不过他认为，在法国等受《劳动法》保护较强的国家受到这种影响的可能性较小。他重申了他之前的说法，五年后将 “不再有程序员”，不过，他也说明，他指的是传统意义上的程序员。他说，“当你把编程这件事从错误测试、单元测试到构思进行解构时，人工智能可以做到这一点，而且做得更好。但这不是自动完成的，而是人工智能‘辅助驾驶’完成的。”消息来源：CNBC老王点评：其实也不用特别慌，就像计算器、计算机出现，并没有让原来的财务和文员失业一样，只是如果你掌握不了新工具，那这种“古典程序员”被淘汰也是自然的。
Rust 叫好不叫座据 2022 年 Stack Overflow 开发者调查，只有 9% 的开发者在使用 Rust，但它已经在“最受喜爱”的语言中占据了七年的位置。在今年的调查中，几乎有 87% 的开发者表示他们喜欢 Rust，这比第二大受欢迎的语言 Elixir 高出约 10 个百分点。消息来源：Stack Overflow老王点评：看起来发展很好，而且已经进入了 Linux 内核，但是离撼动 C 和 C++ 的位置还需要很长的时间。Docker Hub 至少有 1600 个公开镜像带有恶意行为Docker Hub 是一个基于云的容器库，允许人们自由搜索和下载 Docker 镜像。除了由 Docker 库项目审查的镜像之外，在该服务上还有数十万个状态不明的镜像。Sysdig 使用其自动扫描器仔细检查了 25 万个未经验证的镜像，并确定其中 1652 个镜像是恶意的。这些恶意行为包括加密矿工、隐藏的认证凭证等。消息来源：Bleeping Computer老王点评：未经验证的 Docker Hub 上的镜像是非常危险的。新加坡将每棵大树都连上物联网新加坡大约有 700 万棵树，他们通过一个巨大的物联网监测计划对 600 万棵大树进行监控。新加坡国家公园管理局用一个应用程序来管理它们，除了用 LiDAR 采集数据，对每棵植物进行地理定位之外，还通过卫星遥感进行多光谱分析，以确定叶绿素水平，确保树木仍然茁壮成长，以及在树木上安装倾斜传感器确保树木没有被移动或倾倒。消息来源：The Register老王点评：这是不是可以叫做“树联网”。
数字化转型涉及数据驱动的决策与人工智能（AI）的结合。重要数据通过物联网（IoT）设备和智能组件进行传播。由于物联网设备常常处于不安全的环境，而且由于缺乏内生安全机制的脆弱性，很难免于潜在的网络攻击。以下是一些用于实现安全审计的开源工具，可以降低此类攻击风险。网络攻击者和嗅探器可以从物联网设备中获取敏感数据，并利用这些信息对其他相关系统发起攻击。反病毒和计算机安全服务公司卡巴斯基表示，在 2021，物联网黑客数量同比增长了四倍多。在很大程度上，黑客通过使用 Telnet 协议访问物联网网络，该协议为通过互联网与设备或服务器进行通信提供了命令行接口。根据研究报告，超过 58% 的物联网入侵使用各种协议以求实现挖掘加密货币、通过分布式拒绝服务（DDoS）攻击关闭系统、窃取机密数据的目的。由于人们在疫情期间居家使用物联网设备的时间增加，安全风险也随之上升。这些物联网组件中的大部分无论是个人用还是商用，都缺乏基本的安全措施。人工智能和边缘计算等新技术也使网络和数据安全形势复杂化。卡巴斯基的一位安全专家 Dan Demeter 表示：智能组件变得流行，攻击的数量也随之上升了。物联网组件的安全审计需求网络攻击一直在演变，商业公司和政府部门都在采用越来越复杂的网络安全设施以防止他们的应用和基础设施免于在线攻击。全球渗透测试市场预计将从 2021 的 16 亿美元增长到 2026 年的 30 亿美元，2021 至 2026 年的复合年增长率为 13.8%。物联网设备的渗透测试是一个热门话题，在这一领域有大量研究。即使采用“设计安全”的方法，渗透对于识别真正的安全危险并采取适当的预防措施也是至关重要的。物联网部署中需要安全和隐私的关键部分和协议包括： 受限应用协议 Constraint application protocol （CoAP） 低功耗蓝牙 Bluetooth low energy （BLE） 高级消息队列协议 Advanced message queuing protocol （AMQP） 消息队列遥测传输 Message queuing telemetry transport （MQTT）攻击者有多种可能的入口访问到联网设备。在物联网渗透测试（或安全审计）时，要测试完整的物联网场景和生态。测试内容包括从单个层和嵌入式软件到通信协议和服务器的所有内容。对服务器、在线接口和移动应用的测试并非物联网独有，但至关重要，因为它们涵盖了故障可能性很高的领域。物联网漏洞是电气、嵌入式软件和通信协议测试的重点。在评估联网设备的安全性时会进行以下测试。这些测试都是使用不同的针对漏洞的高性能渗透测试和安全审计工具进行的：通信端口中的攻击和操纵的测试基于无线电信号捕获和分析的 IoT 嗅探接口和后门测试缓冲区溢出测试密码破解测试调试密码学分析固件操纵测试逆向工程内存转储物联网安全审计使用的开源工具物联网设备在我们的日常生活中变得越来越普遍，比如，智能自行车、健身跟踪器、医疗传感器、智能锁和联动工厂等。所有这些设备和组件都可以使用开源工具来抵御网络攻击，本文将简要介绍其中一些工具。PENIOTPENIOT 是一种物联网渗透测试工具，使安全审计团队能够通过利用设备的连接来测试和破坏具有各种安全威胁的设备。可以测试主动和被动安全威胁。在确定目标设备和相关信息（或参数）后，可以进行主动安全攻击，例如改变系统资源、重放合法通信单元等。还可以分析被动安全威胁，例如破坏敏感数据的机密性或访问网络流量分析。ObjectionObjective 是一个对物联网环境中使用的安卓和 iOS 应用程序进行详细分析和安全审计的工具。目前许多智能组件和设备都在使用安卓和 iOS 平台，使用该工具可以通过详细的日志和安全审计报告对这些平台进行分析。Routersploit这个 针对嵌入式设备的开源开发框架具有多个用于渗透测试和安全审计的功能和模块：Exploits —— 漏洞评估Creds —— 网络服务和证书的测试Scanners —— 对目标进行详细的安全审计Payloads —— 有效载荷和注入关键点的生成Generic —— 执行和测试攻击WiresharkWireshark 是一款功能丰富的、免费的网络协议分析器。MQTT 等多种物联网协议可通过该工具实现有效分析。为了发现弱点，可以根据协议配置安全规则并检查流量。可以使用 tcpdump 通过命令行访问网络数据包分析器。此类工具用于检查物联网设备和网络之间交换的数据包。BinwalkBinwalk 是一种逆向硬件设计的工具。它是 Kali Linux 的关键组件之一，用于渗透测试、服务器指纹识别、安全审计和取证应用。FirmwalkerFirmwalker 是一款自由开源的工具，用于搜索和扫描固件文件系统，无论是否被提取或挂载。使用这个工具可以做一个详细的安全审计。在物联网（IoT）和万物互联（IoE）的时代，有必要设计并使用高性能工具包进行渗透测试和安全审计。随着物联网设备数量的增加，安全风险也在增加。为了物联网和万物互联部署有更高级别的安全和隐私，有必要根据最新的协议和动态的流量定制化自由及开源的工具箱和软件包。via: https://www.opensourceforu.com/2022/05/tools-you-can-use-for-the-security-audit-of-iot-devices/作者：Dr Kumar Gaurav 选题：lkxed 译者：tendertime 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出
硬核观察 #454 微软阻止了所有绕过 Edge 浏览器的方法
微软阻止了所有绕过 Edge 浏览器的方法微软在 Windows 11 发布会上告诉媒体，它知道它使改变应用程序默认值变得毫无意义的困难，但它不是恶意这样做的，并将修复该问题。但事实恰恰相反，在最近的 Windows 11 Insider 版本中，不再能使用 EdgeDeflector 等应用程序绕过微软的默认浏览器设置。即使你已经通过令人难以置信的、深思熟虑的步骤，使非 Edge 浏览器成为 Windows 11 的默认浏览器，微软仍然通过系统层面的 URL 请求迫使你使用 Edge。EdgeDeflector 以及 Firefox 等第三方浏览器通过拦截系统级的 URL 请求来使自己服务这些 URL 请求。但在最新的 Insider 版本中，微软正在改变这些 URL 请求的工作方式，导致这些 URL 不能再被拦截。微软会忽略所有这些方法，而默默打开 Edge，即便你野蛮清除了 Edge 浏览器，它也只是报错而坚持不使用你的默认浏览器。老王点评：微软这是要掀起默认浏览器大战么？我觉得微软是忘记了当年是如何因为 IE 而被起诉的了。预计到 2030 年中国将创造所有物联网价值的四分之一以上麦肯锡全球研究院估计，到 2030 年，物联网可以在全球范围内实现 5.5 万亿美元至 12.6 万亿美元的价值。其中约 65% 的价值预计将在商业应用中创造，如智能工厂或办公室，而不是像联网的吸尘器这样的消费应用。他们预计到 2030 年，中国将创造所有物联网价值的四分之一以上。并且指出，对未来物联网价值的高端估计有四分之三取决于建立互操作性，而网络安全问题仍将是一个挥之不去的问题。老王点评：在基础设施进一步发展的形势下，到时候我们身边会遍布物联网设备和机器人。美国雇用机器人的数量创造了新纪录根据 行业组织 A3 汇编的数据，美国的工厂和其他工业用户订购了价值 14.8 亿美元的 2.9 万台机器人，比去年同期多 37%。长期以来，汽车公司已经购买了大部分工业机器人。但在 2020 年，其他类型企业的销售总额首次超过了汽车行业，而且这一趋势在今年继续。根据 A3 的数据，今年前 9 个月，与汽车相关的机器人订单增长了 20%，而非汽车公司的订单扩大了 53%。老王点评：别说身边的机器人了，以后很多工作都是机器人的了。
物联网（IoT）是一个由智能设备连接起来的网络，并提供了丰富的数据，但是它也有可能是一场安全领域的噩梦。 物联网 Internet of Things （IoT）是一个统称，指的是越来越多不属于传统计算设备，但却连接到互联网接收或发送数据，或既接收也发送的电子设备组成的网络。现在有数不胜数的东西可以归为这一类：可以联网的“智能”版传统设备，比如说电冰箱和灯泡；那些只能运行于有互联网环境的小设备，比如像 Alexa 之类的电子助手；与互联网连接的传感器，它们正在改变着工厂、医疗、运输、物流中心和农场。什么是物联网？物联网将互联网、数据处理和分析的能力带给了现实的实物世界。对于消费者来说，这就意味着不需要键盘和显示器这些东西，就能和这个全球信息网络进行互动；他们的日常用品当中，很多都可以通过该网络接受操作指令，而只需很少的人工干预。互联网长期以来为知识工作提供了便利，在企业环境当中，物联网也能为制造和分销带来同样的效率。全球数以百万计甚至数十亿计的嵌入式具有互联网功能的传感器正在提供令人难以置信丰富的数据集，企业可以利用这些数据来保证他们运营的安全、跟踪资产和减少人工流程。研究人员也可以使用物联网来获取人们的喜好和行为数据，尽管这些行为可能会严重影响隐私和安全。它有多大？一句话：非常庞大。Priceonomics 对此进行了分析：在 2020 年的时候，有超过 50 亿的物联网设备，这些设备可以生成 4.4 泽字节 zettabyte （LCTT 译注：1 zettabyte = 10 9 terabyte = 10 12 gigabyte）的数据。相比较，物联网设备在 2013 年仅仅产生了 1000 亿 千兆字节 gigabyte 的数据。在物联网市场上可能挣到的钱也同样让人瞠目；到 2025 年，这块市场的价值可以达到 1.6 万亿美元到 14.4 万亿美元不等。物联网的历史一个联网设备和传感器无处不在的世界，是科幻小说中最经典的景象之一。物联网传说中将 1970 年 卡耐基•梅隆大学的一台连接到 APRANET 的自动贩卖机 称之为世界上第一个物联网设备，而且许多技术都被吹捧为可以实现 “智能” 的物联网式特征，使其颇具有未来主义的光彩。但是“物联网”这个词是由英国的技术专家 Kevin Ashton 于 1999 年提出来的。一开始，技术是滞后于当时对未来的憧憬的。每个与互联网相连的设备都需要一个处理器和一种能和其他东西通信的方式，无线的最好，这些因素都增加了物联网大规模实际应用的成本和性能要求，这种情况至少一直持续到 21 世纪头十年中期，直到摩尔定律赶上来。一个重要的里程碑是 RFID 标签的大规模使用，这种价格低廉的极简转发器可以被贴在任何物品上，然后这些物品就可以连接到更大的互联网上了。对于设计者来说，无处不在的 Wi-Fi 和 4G 让任何地方的无线连接都变得非常简单。而且，IPv6 的出现再也不用让人们担心把数十亿小设备连接到互联网上会将 IP 地址耗尽。（相关报道：物联网网络可以促进 IPv6 的使用吗？）物联网是如何工作的？物联网的基本元素是收集数据的设备。广义地说，它们是和互联网相连的设备，所以每一个设备都有 IP 地址。它们的复杂程度不一，这些设备涵盖了从工厂运输货物的自动驾驶车辆到监控建筑温度的简单传感器。这其中也包括每天统计步数的个人手环。为了让这些数据变得有意义，就需要对其收集、处理、过滤和分析，每一种数据都可以通过多种方式进行处理。采集数据的方式是将数据从设备上传输到采集点。可以通过各种无线或者有线网络进行数据的转移。数据可以通过互联网发送到具有存储空间或者计算能力的数据中心或者云端，或者这些数据也可以分段进行传输，由中间设备汇总数据后再沿路径发送。处理数据可以在数据中心或者云端进行，但是有时候这不太可行。对于一些非常重要的设备，比如说工业领域的关停设备，从设备上将数据发送到远程数据中心的延迟太大了。发送、处理、分析数据和返回指令（在管道爆炸之前关闭阀门）这些操作，来回一趟的时间可能要花费非常多的时间。在这种情况下， 边缘计算 edge-computing 就可以大显身手了，智能边缘设备可以汇总数据、分析数据，在需要的时候进行回应，所有这些都在相对较近的物理距离内进行，从而减少延迟。边缘设备可以有上游连接，这样数据就可以进一步被处理和储存。物联网是如何工作的。物联网设备的一些例子本质上，任何可以搜集来自于真实世界数据，并且可以发送回去的设备都可以参与到物联网生态系统中。典型的例子包括智能家居设备、射频识别标签（RFID）和工业传感器。这些传感器可以监控一系列的因素，包括工业系统中的温度和压力、机器中关键设备的状态、患者身上与生命体征相关的信号、水电的使用情况，以及其它许许多多可能的东西。整个工厂的机器人可以被认为是物联网设备，在工业环境和仓库中移动产品的自主车辆也是如此。其他的例子包括可穿戴设备和家庭安防系统。还有一些其它更基础的设备，比如说树莓派和Arduino，这些设备可以让你构建你自己的物联网终端节点。尽管你可能会认为你的智能手机是一台袖珍电脑，但它很可能也会以非常类似物联网的方式将你的位置和行为数据传送到后端服务。设备管理为了能让这些设备一起工作，所有这些设备都需要进行验证、分配、配置和监控，并且在必要时进行修复和更新。很多时候，这些操作都会在一个单一的设备供应商的专有系统中进行；要么就完全不会进行这些操作，而这样也是最有风险的。但是整个业界正在向标准化的设备管理模式过渡，这使得物联网设备之间可以相互操作，并保证设备不会被孤立。物联网通信标准和协议当物联网上的小设备和其他设备通信的时候，它们可以使用各种通信标准和协议，这其中许多都是为这些处理能力有限和电源功率不大的设备专门定制的。你一定听说过其中的一些，尽管有一些设备使用的是 Wi-Fi 或者蓝牙，但是更多的设备是使用了专门为物联网世界定制的标准。比如，ZigBee 就是一个低功耗、远距离传输的无线通信协议，而 MQTT（ 消息队列遥测传输 Message Queuing Telemetry Transport ）是为连接在不可靠或者易发生延迟的网络上的设备定制的一个发布/订阅信息协议。（参考 Network World 的词汇表：物联网标准和协议。）物联网也会受益于 5G 为蜂窝网络带来的高速度和高带宽，尽管这种使用场景会滞后于普通的手机。物联网、边缘计算和云边缘计算如何使物联网成为可能。对于许多物联网系统来说，大量的数据会以极快的速度涌来，这种情况催生了一个新的科技领域， 边缘计算 edge computing ，它由放置在物联网设备附近的设备组成，处理来自那些设备的数据。这些机器对这些数据进行处理，只将相关的素材数据发送到一个更集中的系统系统进行分析。比如，想象一个由几十个物联网安防摄像头组成的网络，边缘计算会直接分析传入的视频，而且只有当其中一个摄像头检测到有物体移动的时候才向安全操作中心（SoC）发出警报，而不会是一下子将所有的在线数据流全部发送到建筑物的 SoC。一旦这些数据已经被处理过了，它们又去哪里了呢？好吧，它也许会被送到你的数据中心，但是更多情况下，它最终会进入云。对于物联网这种间歇或者不同步的数据来往场景来说，具有弹性的云计算是再适合不过的了。许多云计算巨头，包括谷歌、微软和亚马逊，都有物联网产品。物联网平台云计算巨头们正在尝试出售的，不仅仅是存放传感器搜集的数据的地方。他们正在提供一个可以协调物联网系统中各种元素的完整平台，平台会将很多功能捆绑在一起。本质上，物联网平台作为中间件，将物联网设备和边缘网关与你用来处理物联网数据的应用程序连接起来。也就是说，每一个平台的厂商看上去都会对物联网平台应该是什么这个问题有一些稍微不同的解释，以更好地与其他竞争者拉开差距。物联网和数据正如前面所提到的，所有这些物联网设备收集了 ZB 级的数据，这些数据通过边缘网关被发送到平台上进行处理。在很多情况下，这些数据就是要部署物联网的首要原因。通过从现实世界中的传感器搜集来的数据，企业就可以实时的作出灵活的决定。例如，Oracle 公司假想了一个这样的场景，当人们在主题公园的时候，会被鼓励下载一个可以提供公园信息的应用。同时，这个程序会将 GPS 信号发回到公园的管理部门来帮助他们预测排队时间。有了这些信息，公园就可以在短期内（比如通过增加员工数量来提升景点的一些容量）和长期内（通过了解哪些设施最受欢迎，那些最不受欢迎）采取行动。这些决定可以在没有人工干预的情况作出。比如，从化工厂管道中的压力传感器收集的数据可以通过边缘设备的软件进行分析，从而发现管道破裂的威胁，这样的信息可以触发关闭阀门的信号，从而避免泄漏。物联网和大数据分析主题公园的例子可以让你很容易理解，但是和许多现实世界中物联网收集数据的操作相比，就显得小菜一碟了。许多大数据业务都会使用到来自物联网设备收集的信息，然后与其他数据关联，这样就可以分析预测到人类的行为。Software Advice 给出了一些例子，其中包括由 Birst 提供的一项服务，该服务将从联网的咖啡机中收集的咖啡冲泡的信息与社交媒体上发布的帖子进行匹配，看看顾客是否在网上谈论咖啡品牌。另一个最近才发生的戏剧性的例子，X-Mode 发布了一张基于位置追踪数据的地图，地图上显示了在 2020 年 3 月春假的时候，正当新冠病毒在美国加速传播的时候，人们在 劳德代尔堡 Ft. Lauderdale 聚会完最终都去了哪里。这张地图令人震撼，不仅仅是因为它显示出病毒可能的扩散方向，更是因为它说明了物联网设备是可以多么密切地追踪我们。（更多关于物联网和分析的信息，请点击此处。）物联网数据和 AI物联网设备能够收集的数据量远远大于任何人类能够以有效的方式处理的数据量，而且这肯定也不是能实时处理的。我们已经看到，仅仅为了理解从物联网终端传来的原始数据，就需要边缘计算设备。此外，还需要检测和处理可能就是完全错误的数据。许多物联网供应商也同时提供机器学习和人工智能的功能，可以用来理解收集来的数据。比如，IBM 的 Jeopardy!-winning Watson 平台就可以在物联网数据集上进行训练，这样就可以在预测性维护领域产生有用的结果 —— 比如说，分析来自无人机的数据，可以区分桥梁上轻微的损坏和需要重视的裂缝。同时，ARM 也在研发低功耗芯片，它可以在物联网终端上提供 AI 的能力。物联网和商业物联网的商业用途包括跟踪客户、库存和重要部件的状态。IoT for All 列举了四个已经被物联网改变的行业：石油和天然气：与人工干预相比，物联网传感器可以更好的检测孤立的钻井现场。农业：通过物联网传感器获得的田间作物的数据，可以用来提高产量。采暖通风：制造商可以监控全国各地的气候控制系统。实体零售：当顾客在商店的某些地方停留的时候，可以通过手机进行微目标定位，提供优惠信息。更普遍的情况是，企业正在寻找能够在四个领域上获得帮助的物联网解决方案：能源使用、资产跟踪、安全领域和客户体验。via: https://www.networkworld.com/article/3207535/what-is-iot-the-internet-of-things-explained.html作者：Josh Fruhlinger 选题：lujun9972 译者：Yufei-Yan 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出
为什么区块链（可能会）来到你身边的物联网
各个公司发现，物联网与最近其他许多流行的企业级计算技术有着良好的合作关系，以支持加密货币而闻名的创新的分布式信任系统的区块链也不例外。然而，在物联网应用中实施区块链可能具有挑战性，并且需要对技术有深入的了解。区块链是一个跟踪各种交易的分布式账本。链上的每个“块”都包含要防止篡改的交易记录或其他数据，并通过加密散列链接到前一个，这意味着对块的任何篡改都将使该链接无效。节点（几乎可以是其中装有 CPU 的任何节点）通过分布式的对等网络进行通信，以共享数据并确保链中数据的有效性。北卡罗来纳大学格林波若分校的管理学教授 Nir Kshetri 表示，区块链系统之所以有效，是因为所有的块都必须就它们所保护的数据的细节达成一致。如果有人尝试更改给定节点上先前的事务，则存储在网络上的其余数据会回推回来。“数据的旧记录仍然存在，” Kshetri 说。这是一项强大的安全技术 —— 如果没有坏人成功控制给定区块链上的所有（LCTT 译注：应为“大部分”）节点（著名的“51％ 攻击”），那么该区块链保护的数据就不会被伪造或以其他方式弄乱。因此，对于在物联网世界某些角落的公司来说，使用区块链是一种有吸引力的选择也就不足为奇了。物联网安全初创企业 NXMLabs 的首席技术官兼联合创始人 Jay Fallah 认为，除了区块链能够在网络上安全地分发可信信息的能力这一事实之外，部分原因还在于区块链在技术堆栈中的地位。“区块链站在一个非常有趣的交叉点。在过去的 15 年中，在存储、CPU 等方面，计算技术一直在加速发展，但是直到最近，网络技术并没有发生太大变化。”他说，“ 区块链不是网络技术、不是数据技术，而是二者兼具。”区块链和物联网区块链作为物联网世界的部分意义取决于你在和谁交谈以及他们在出售什么，但是最接近的概括可能来自企业区块链供应商 Filament 的首席执行官 Allison Clift-Jenning。她说：“在任何地方，人们都想互相信任，并且用的是非常古老的方式，这通常是进入场景的好地方。”直接从 Filament 自己的客户群中挑选出来的一个例子是二手车销售。Filament 与“一家主要的底特律汽车制造商”合作，创建了一个受信任的车辆历史平台，该平台基于一种设备，该设备可插入二手车的诊断端口，从那里获取信息，并将该数据写入区块链。像这样，二手车的历史记录就是不可变的，包括它的安全气囊是否曾经打开过，是否被水淹过等等。任何不道德的二手车或不诚实的前车主都无法更改数据，甚至拔掉设备也将意味着记录中存在可疑的空白期。SAP 物联网高级副总裁兼全球负责人 Elvira Wallis 表示，当今大多数区块链物联网方案都与信任和数据验证有关。她说：“我们遇到的大多数用例都在项目的跟踪和溯源领域，”她举例说明了高端食品的农场到餐桌跟踪系统，该系统使用安装在板条箱和卡车上的区块链节点，这样就可以为物品在运输基础设施中创建无懈可击的记录。（例如，该牛排在这样的温度下冷藏了多长时间，今天运输了多长时间，等等。）将区块链与物联网一起使用是个好主意吗？不同的供应商针对不同的用例出售不同的基于区块链的产品，这些产品使用不同的区块链技术实现，其中一些与加密货币中所使用的经典的、线性的、挖矿式交易区块链不太一样。这意味着你目前需要从供应商那里购买特定功能。451 Research 高级分析师 Csilla Zsigri 表示，很少有客户组织拥有可以实施区块链安全系统的内部专家。她说，区块链技术的任何智能应用的想法都是发挥其优势，为关键信息创建可信赖的平台。Zsigri 说：“这就是我真正看到增值的地方，只是增加了一层信任和验证。”专家们一致认为，尽管相当了解基于区块链的物联网应用程序的基本概念，但它并不适用于每个物联网用例。 将区块链应用于非交易系统（尽管有例外，包括 NXM Labs 的用于物联网设备的基于区块链配置的产品）通常不是正确的举动。如果不需要在两个不同的参与方之间共享数据，而是简单地将数据从传感器移到后端，那么区块链通常就没有意义，因为它实际上并没有为当前大多数物联网实现中的数据分析增加任何关键的增值。“今天，我们仍处于区块链的早期拨号时代。”Clift-Jennings 说，“它比典型的数据库要慢，它甚至无法读取，也常常没有查询引擎。从本质上讲，你并没有真正获得隐私。”via: https://www.networkworld.com/article/3386881/why-blockchain-might-be-coming-to-an-iot-implementation-near-you.html作者：Jon Gold 选题：lujun9972 译者：wxy 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出
如何使用 Android Things 和 TensorFlow 在物联网上应用机器学习
探索如何将 Android Things 与 Tensorflow 集成起来，以及如何应用机器学习到物联网系统上。学习如何在装有 Android Things 的树莓派上使用 Tensorflow 进行图片分类。这个项目探索了如何将机器学习应用到物联网上。具体来说，物联网平台我们将使用 Android Things，而机器学习引擎我们将使用 Google TensorFlow。现如今，Android Things 处于名为 Android Things 1.0 的稳定版本，已经可以用在生产系统中了。如你可能已经知道的，树莓派是一个可以支持 Android Things 1.0 做开发和原型设计的平台。本教程将使用 Android Things 1.0 和树莓派，当然，你可以无需修改代码就能换到其它所支持的平台上。这个教程是关于如何将机器学习应用到物联网的，这个物联网平台就是 Android Things Raspberry Pi。物联网上的机器学习是最热门的话题之一。要给机器学习一个最简单的定义，可能就是 维基百科上的定义：机器学习是计算机科学中，让计算机不需要显式编程就能去“学习”（即，逐步提升在特定任务上的性能）使用数据的一个领域。换句话说就是，经过训练之后，那怕是它没有针对它们进行特定的编程，这个系统也能够预测结果。另一方面，我们都知道物联网和联网设备的概念。其中前景最看好的领域之一就是如何在物联网上应用机器学习，构建专家系统，这样就能够去开发一个能够“学习”的系统。此外，还可以使用这些知识去控制和管理物理对象。在深入了解 Android Things 的细节之前，你应该先将其安装在你的设备上。如果你是第一次使用 Android Things，你可以阅读一下这篇如何在你的设备上安装 Android Things 的教程。这里有几个应用机器学习和物联网产生重要价值的领域，以下仅提到了几个有趣的领域，它们是：在工业物联网（IIoT）中的预见性维护消费物联网中，机器学习可以让设备更智能，它通过调整使设备更适应我们的习惯在本教程中，我们希望去探索如何使用 Android Things 和 TensorFlow 在物联网上应用机器学习。这个 Adnroid Things 物联网项目的基本想法是，探索如何去构建一个能够识别前方道路上基本形状（比如箭头）并控制其道路方向的无人驾驶汽车。我们已经介绍了 如何使用 Android Things 去构建一个无人驾驶汽车，因此，在开始这个项目之前，我们建议你去阅读那个教程。这个机器学习和物联网项目包含如下的主题：如何使用 Docker 配置 TensorFlow 环境如何训练 TensorFlow 系统如何使用 Android Things 去集成 TensorFlow如何使用 TensorFlow 的成果去控制无人驾驶汽车这个项目起源于 Android Things TensorFlow 图像分类器。我们开始吧！如何使用 Tensorflow 图像识别在开始之前，需要安装和配置 TensorFlow 环境。我不是机器学习方面的专家，因此，我需要找到一些快速而能用的东西，以便我们可以构建 TensorFlow 图像识别器。为此，我们使用 Docker 去运行一个 TensorFlow 镜像。以下是操作步骤：1、 克隆 TensorFlow 仓库：git clone https://github.com/tensorflow/tensorflow.git cd /tensorflow git checkout v1.5.0 2、 创建一个目录（/tf-data），它将用于保存这个项目中使用的所有文件。3、 运行 Docker：docker run -it \ --volume /tf-data:/tf-data \ --volume /tensorflow:/tensorflow \ --workdir /tensorflow tensorflow/tensorflow:1.5.0 bash 使用这个命令，我们运行一个交互式 TensorFlow 环境，可以挂载一些在使用项目期间使用的目录。如何训练 TensorFlow 去识别图像在 Android Things 系统能够识别图像之前，我们需要去训练 TensorFlow 引擎，以使它能够构建它的模型。为此，我们需要去收集一些图像。正如前面所言，我们需要使用箭头来控制 Android Things 无人驾驶汽车，因此，我们至少要收集四种类型的箭头：向上的箭头向下的箭头向左的箭头向右的箭头为训练这个系统，需要使用这四类不同的图像去创建一个“知识库”。在 /tf-data 目录下创建一个名为 images 的目录，然后在它下面创建如下名字的四个子目录：up-arrowdown-arrowleft-arrowright-arrow现在，我们去找图片。我使用的是 Google 图片搜索，你也可以使用其它的方法。为了简化图片下载过程，你可以安装一个 Chrome 下载插件，这样你只需要点击就可以下载选定的图片。别忘了多下载一些图片，这样训练效果更好，当然，这样创建模型的时间也会相应增加。扩展阅读如何使用 API 去集成 Android Things如何与 Firebase 一起使用 Android Things打开浏览器，开始去查找四种箭头的图片：每个类别我下载了 80 张图片。不用管图片文件的扩展名。为所有类别的图片做一次如下的操作（在 Docker 界面下）：python /tensorflow/examples/image_retraining/retrain.py \ --bottleneck_dir=tf_files/bottlenecks \ --how_many_training_steps=4000 \ --output_graph=/tf-data/retrained_graph.pb \ --output_labels=/tf-data/retrained_labels.txt \ --image_dir=/tf-data/images 这个过程你需要耐心等待，它需要花费很长时间。结束之后，你将在 /tf-data 目录下发现如下的两个文件：retrained_graph.pbretrained_labels.txt第一个文件包含了 TensorFlow 训练过程产生的结果模型，而第二个文件包含了我们的四个图片类相关的标签。如何测试 Tensorflow 模型如果你想去测试这个模型，去验证它是否能按预期工作，你可以使用如下的命令：python scripts.label_image \ --graph=/tf-data/retrained-graph.pb \ --image=/tf-data/images/[category]/[image_name.jpg] 优化模型在 Android Things 项目中使用我们的 TensorFlow 模型之前，需要去优化它：python /tensorflow/python/tools/optimize_for_inference.py \ --input=/tf-data/retrained_graph.pb \ --output=/tf-data/opt_graph.pb \ --input_names="Mul" \ --output_names="final_result" 那个就是我们全部的模型。我们将使用这个模型，把 TensorFlow 与 Android Things 集成到一起，在物联网或者更多任务上应用机器学习。目标是使用 Android Things 应用程序智能识别箭头图片，并反应到接下来的无人驾驶汽车的方向控制上。如果你想去了解关于 TensorFlow 以及如何生成模型的更多细节，请查看官方文档以及这篇 教程。如何使用 Android Things 和 TensorFlow 在物联网上应用机器学习TensorFlow 的数据模型准备就绪之后，我们继续下一步：如何将 Android Things 与 TensorFlow 集成到一起。为此，我们将这个任务分为两步来完成：硬件部分，我们将把电机和其它部件连接到 Android Things 开发板上实现这个应用程序Android Things 示意图在深入到如何连接外围部件之前，先列出在这个 Android Things 项目中使用到的组件清单：Android Things 开发板（树莓派 3）树莓派摄像头一个 LED 灯LN298N 双 H 桥电机驱动模块（连接控制电机）一个带两个轮子的无人驾驶汽车底盘我不再重复 如何使用 Android Things 去控制电机 了，因为在以前的文章中已经讲过了。下面是示意图：上图中没有展示摄像头。最终成果如下图：使用 TensorFlow 实现 Android Things 应用程序最后一步是实现 Android Things 应用程序。为此，我们可以复用 Github 上名为 TensorFlow 图片分类器示例 的示例代码。开始之前，先克隆 Github 仓库，这样你就可以修改源代码。这个 Android Things 应用程序与原始的应用程序是不一样的，因为：它不使用按钮去开启摄像头图像捕获它使用了不同的模型它使用一个闪烁的 LED 灯来提示，摄像头将在 LED 停止闪烁后拍照当 TensorFlow 检测到图像时（箭头）它将控制电机。此外，在第 3 步的循环开始之前，它将打开电机 5 秒钟。为了让 LED 闪烁，使用如下的代码：private Handler blinkingHandler = new Handler(); private Runnable blinkingLED = new Runnable() { @Override public void run() { try { // If the motor is running the app does not start the cam if (mc.getStatus()) return ; Log.d(TAG, "Blinking.."); mReadyLED.setValue(!mReadyLED.getValue()); if (currentValue <= NUM_OF_TIMES) { currentValue++; blinkingHandler.postDelayed(blinkingLED, BLINKING_INTERVAL_MS); } else { mReadyLED.setValue(false); currentValue = 0; mBackgroundHandler.post(mBackgroundClickHandler); } } catch (IOException e) { e.printStackTrace(); } } }; 当 LED 停止闪烁后，应用程序将捕获图片。现在需要去关心如何根据检测到的图片去控制电机。修改这个方法：@Override public void onImageAvailable(ImageReader reader) { final Bitmap bitmap; try (Image image = reader.acquireNextImage()) { bitmap = mImagePreprocessor.preprocessImage(image); } final List<Classifier.Recognition> results = mTensorFlowClassifier.doRecognize(bitmap); Log.d(TAG, "Got the following results from Tensorflow: " + results); // Check the result if (results == null || results.size() == 0) { Log.d(TAG, "No command.."); blinkingHandler.post(blinkingLED); return ; } Classifier.Recognition rec = results.get(0); Float confidence = rec.getConfidence(); Log.d(TAG, "Confidence " + confidence.floatValue()); if (confidence.floatValue() < 0.55) { Log.d(TAG, "Confidence too low.."); blinkingHandler.post(blinkingLED); return ; } String command = rec.getTitle(); Log.d(TAG, "Command: " + rec.getTitle()); if (command.indexOf("down") != -1) mc.backward(); else if (command.indexOf("up") != -1) mc.forward(); else if (command.indexOf("left") != -1) mc.turnLeft(); else if (command.indexOf("right") != -1) mc.turnRight(); } 在这个方法中，当 TensorFlow 返回捕获的图片匹配到的可能的标签之后，应用程序将比较这个结果与可能的方向，并因此来控制电机。最后，将去使用前面创建的模型了。拷贝 assets 文件夹下的 opt_graph.pb 和 reatrained_labels.txt 去替换现在的文件。打开 Helper.java 并修改如下的行：public static final int IMAGE_SIZE = 299; private static final int IMAGE_MEAN = 128; private static final float IMAGE_STD = 128; private static final String LABELS_FILE = "retrained_labels.txt"; public static final String MODEL_FILE = "file:///android_asset/opt_graph.pb"; public static final String INPUT_NAME = "Mul"; public static final String OUTPUT_OPERATION = "output"; public static final String OUTPUT_NAME = "final_result"; 运行这个应用程序，并给摄像头展示几种箭头，以检查它的反应。无人驾驶汽车将根据展示的箭头进行移动。总结教程到此结束，我们讲解了如何使用 Android Things 和 TensorFlow 在物联网上应用机器学习。我们使用图片去控制无人驾驶汽车的移动。via: https://www.survivingwithandroid.com/2018/03/apply-machine-learning-iot-using-android-things-tensorflow.html作者：Francesco Azzola 译者：qhwdw 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出
用增强的日志守护进程 syslog-ng 来监控你的物联网设备。现在，物联网设备和嵌入式系统越来越多。对于许多连接到因特网或者一个网络的设备来说，记录事件很有必要，因为你需要知道这些设备都做了些什么事情，这样你才能够解决可能出现的问题。可以考虑去使用的一个监视工具是开源的 syslog-ng 应用程序，它是一个强化的、致力于可移植的、中心化的日志收集守护程序。它可以从许多不同种类的来源、进程来收集日志，并且可以对这些日志进行处理和过滤，也可以存储或者路由它们，以便于做进一步的分析。syslog-ng 的大多数代码是用高效率的、高可移植的 C 代码写成的。它能够适用于各种场景，无论你是将它运行在一个处理能力很弱的设备上做一些简单的事情，还是运行在数据中心从成千上万的机器中收集日志的强大应用，它都能够胜任。你可能注意到在这个段落中，我使用了大量的溢美词汇。为了让你更清晰地了解它，我们来复习一下，但这将花费更多的时间，也了解的更深入一些。日志首先解释一下日志。 日志 logging 是记录一台计算机上事件的东西。在一个典型的 Linux 机器上，你可以在 /var/log 目录中找到这些信息。例如，如果你通过 SSH 登录到机器中，你将可以在其中一个日志文件中找到类似于如下内容的信息：Jan 14 11:38:48 linux-0jbu sshd[7716]: Accepted publickey for root from 127.0.0.1 port 48806 ssh2 日志的内容可能是关于你的 CPU 过热、通过 HTTP 下载了一个文档，或者你的应用程序认为重要的任何东西。syslog-ng正如我在上面所写的那样，syslog-ng 应用程序是一个强化的、致力于可移植性、和中心化的日志收集守护程序。守护程序的意思是，syslog-ng 是一个持续运行在后台的应用程序，在这里，它用于收集日志信息。虽然现在大多数应用程序的 Linux 测试是限制在 x86\_64 的机器上，但是，syslog-ng 也可以运行在大多数 BSD 和商业 UNIX 变种版本上的。从嵌入式/物联网的角度来看，这种能够运行在不同的 CPU 架构（包括 32 位和 64 位的 ARM、PowerPC、MIPS 等等）的能力甚至更为重要。（有时候，我通过阅读关于 syslog-ng 是如何使用它们的来学习新架构）为什么中心化的日志收集如此重要？其中一个很重要的原因是易于使用，因为它放在一个地方，不用到成百上千的机器上挨个去检查它们的日志。另一个原因是可用性 —— 即使一个设备不论是什么原因导致了它不可用，你都可以检查这个设备的日志信息。第三个原因是安全性；当你的设备被黑，检查设备日志可以发现攻击的踪迹。syslog-ng 的四种用法syslog-ng 有四种主要的用法：收集、处理、过滤、和保存日志信息。收集信息： syslog-ng 能够从各种各样的 特定平台源 上收集信息，比如 /dev/log，journal，或者 sun-streams。作为一个中心化的日志收集器，传统的（rfc3164）和最新的（rfc5424）系统日志协议、以及它们基于 UDP、TCP 和加密连接的各种变种，它都是支持的。你也可以从管道、套接字、文件、甚至应用程序输出来收集日志信息（或者各种文本数据）。处理日志信息： 它的处理能力几乎是无限的。你可以用它内置的解析器来分类、规范，以及结构化日志信息。如果它没有为你提供在你的应用场景中所需要的解析器，你甚至可以用 Python 来自己写一个解析器。你也可以使用地理数据来丰富信息，或者基于信息内容来附加一些字段。日志信息可以按处理它的应用程序所要求的格式进行重新格式化。你也可以重写日志信息 —— 当然了，不是篡改日志内容 —— 比如在某些情况下，需要满足匿名要求的信息。过滤日志： 过滤日志的用法主要有两种：丢弃不需要保存的日志信息 —— 像调试级别的信息；和路由日志信息—— 确保正确的日志到达正确的目的地。后一种用法的一个例子是，转发所有的认证相关的信息到一个安全信息与事件管理系统（SIEM）。保存信息： 传统的做法是，将文件保存在本地或者发送到中心化日志服务器；不论是哪种方式，它们都被发送到一个普通文件。经过这些年的改进，syslog-ng 已经开始支持 SQL 数据库，并且在过去的几年里，包括 HDFS、Kafka、MongoDB、和 Elasticsearch 在内的大数据存储，都被加入到 syslog-ng 的支持中。消息格式当在你的 /var/log 目录中查看消息时，你将看到（如上面的 SSH 信息）大量的消息都是如下格式的内容：日期 + 主机名 + 应用名 + 一句几乎完整的英文信息 在这里的每个应用程序事件都是用不同的语法描述的，基于这些数据去创建一个报告是个痛苦的任务。解决这种混乱信息的一个方案是使用结构化日志。在这种情况下，事件被表示为键-值对，而不是随意的日志信息。比如，一个 SSH 日志能够按应用程序名字、源 IP 地址、用户名、认证方法等等来描述。你可以从一开始就对你的日志信息按合适的格式进行结构化处理。当处理传统的日志信息时，你可以在 syslog-ng 中使用不同的解析器，转换非结构化（和部分结构化）的信息为键-值对格式。一旦你的日志信息表示为键-值对，那么，报告、报警、以及简单查找信息将变得很容易。物联网日志我们从一个棘手的问题开始：哪个版本的 syslog-ng 最流行？在你回答之前，想想如下这些事实：这个项目启动于 20 年以前，Red Hat 企业版 Linux EPEL 已经有了 3.5 版，而当前版本是 3.14。当我在我的演讲中问到这个问题时，观众通常回答是他们用的 Linux 发行版中自带的那个。你们绝对想不到的是，正确答案竟然是 1.6 版最流行，这个版本已经有 15 年的历史的。这什么这个版本是最为流行的，因为它是包含在亚马逊 Kindle 阅读器中的版本，它是电子书阅读器，因为它运行在全球范围内超过 1 亿台的设备上。另外一个在消费类设备上运行 syslog-ng 的例子是 BMW i3 电动汽车。Kindle 使用 syslog-ng 去收集关于用户在这台设备上都做了些什么事情等所有可能的信息。在 BMW 电动汽车上，syslog-ng 所做的事情更复杂，基于内容过滤日志信息，并且在大多数情况下，只记录最重要的日志。使用 syslog-ng 的其它类别设备还有网络和存储。一些比较知名的例子有，Turris Omnia 开源 Linux 路由器和群晖 NAS 设备。在大多数案例中，syslog-ng 是在设备上作为一个日志客户端来运行，但是在有些案例中，它运行为一个有丰富 Web 界面的中心日志服务器。你还可以在一些行业服务中找到 syslog-ng 的身影。它运行在来自美国国家仪器有限公司（NI）的实时 Linux 设备上，执行测量和自动化任务。它也被用于从定制开发的应用程序中收集日志。从命令行就可以做配置，但是一个漂亮的 GUI 可用于浏览日志。最后，还有大量的项目，比如，汽车和飞机，syslog-ng 在它们上面既可以运行为客户端，也可以运行为服务端。在这种使用案例中，syslog-ng 一般用来收集所有的日志和测量数据，然后发送它们到处理这些日志的中心化服务器集群上，然后保存它们到支持大数据的目的地，以备进一步分析。对物联网的整体益处在物联网环境中使用 syslog-ng 有几个好处。第一，它的分发性能很高，并且是一个可靠的日志收集器。第二，它的架构也很简单，因此，系统、应用程序日志、以及测量数据可以被一起收集。第三，它使数据易于使用，因为，数据可以被解析和表示为易于使用的格式。最后，通过 syslog-ng 的高效路由和过滤功能，可以显著降低处理程序的负载水平。via: https://opensource.com/article/18/3/logging-iot-events-syslog-ng作者：Peter Czanik 选题：lujun9972 译者：qhwdw 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出
用这些开源软件解决方案构建一个更智能的家庭。物联网 不仅是一个时髦词，在现实中，自 2016 年我们发布了一篇关于家庭自动化工具的评论文章以来，它也在迅速占领着我们的生活。在 2017，26.5% 的美国家庭 已经使用了一些智能家居技术；预计五年内，这一数字还将翻倍。随着这些数量持续增加的各种设备的使用，可以帮助你实现对家庭的自动化管理、安保、和监视，在家庭自动化方面，从来没有像现在这样容易和更加吸引人过。不论你是要远程控制你的 HVAC 系统，集成一个家庭影院，保护你的家免受盗窃、火灾、或是其它威胁，还是节省能源或只是控制几盏灯，现在都有无数的设备可以帮到你。但同时，还有许多用户担心安装在他们家庭中的新设备带来的安全和隐私问题 —— 这是一个很现实也很 严肃的问题。他们想要去控制有谁可以接触到这个重要的系统，这个系统管理着他们的应用程序，记录了他们生活中的点点滴滴。这种想法是可以理解的：毕竟在一个连你的冰箱都是智能设备的今天，你不想要一个基本的保证吗？甚至是如果你授权了设备可以与外界通讯，它是否是仅被授权的人访问它呢？对安全的担心 是为什么开源对我们将来使用的互联设备至关重要的众多理由之一。由于源代码运行在他们自己的设备上，完全可以去搞明白控制你的家庭的程序，也就是说你可以查看它的代码，如果必要的话甚至可以去修改它。虽然联网设备通常都包含它们专有的组件，但是将开源引入家庭自动化的第一步是确保你的设备和这些设备可以共同工作 —— 它们为你提供一个接口 —— 并且是开源的。幸运的是，现在有许多解决方案可供选择，从 PC 到树莓派，你可以在它们上做任何事情。这里有几个我比较喜欢的。CalaosCalaos 是一个设计为全栈的家庭自动化平台，包含一个服务器应用程序、触摸屏界面、Web 应用程序、支持 iOS 和 Android 的原生移动应用、以及一个运行在底层的预配置好的 Linux 操作系统。Calaos 项目出自一个法国公司，因此它的支持论坛以法语为主，不过大量的介绍资料和文档都已经翻译为英语了。Calaos 使用的是 GPL v3 的许可证，你可以在 GitHub 上查看它的源代码。DomoticzDomoticz 是一个有大量设备库支持的家庭自动化系统，在它的项目网站上有大量的文档，从气象站到远程控制的烟雾探测器，以及大量的第三方 集成软件 。它使用一个 HTML5 前端，可以从桌面浏览器或者大多数现代的智能手机上访问它，它是一个轻量级的应用，可以运行在像树莓派这样的低功耗设备上。Domoticz 是用 C++ 写的，使用 GPLv3 许可证。它的 源代码 在 GitHub 上。Home AssistantHome Assistant 是一个开源的家庭自动化平台，它可以轻松部署在任何能运行 Python 3 的机器上，从树莓派到网络存储（NAS），甚至可以使用 Docker 容器轻松地部署到其它系统上。它集成了大量的开源和商业的产品，允许你去连接它们，比如，IFTTT、天气信息、或者你的 Amazon Echo 设备，去控制从锁到灯的各种硬件。Home Assistant 以 MIT 许可证 发布，它的源代码可以从 GitHub 上下载。MisterHouse从 2016 年起，MisterHouse 取得了很多的进展，我们把它作为一个“可以考虑的另外选择”列在这个清单上。它使用 Perl 脚本去监视任何东西，它可以通过一台计算机来查询或者控制任何可以远程控制的东西。它可以响应语音命令，查询当前时间、天气、位置、以及其它事件，比如去打开灯、唤醒你、记下你喜欢的电视节目、通报呼入的来电、开门报警、记录你儿子上了多长时间的网、如果你女儿汽车超速它也可以告诉你等等。它可以运行在 Linux、macOS、以及 Windows 计算机上，它可以读/写很多的设备，包括安全系统、气象站、来电显示、路由器、机动车位置系统等等。MisterHouse 使用 GPLv2 许可证，你可以在 GitHub 上查看它的源代码。OpenHABOpenHAB（开放家庭自动化总线的简称）是在开源爱好者中所熟知的家庭自动化工具，它拥有大量用户的社区以及支持和集成了大量的设备。它是用 Java 写的，OpenHAB 非常轻便，可以跨大多数主流操作系统使用，它甚至在树莓派上也运行的很好。支持成百上千的设备，OpenHAB 被设计为与设备无关的，这使开发者在系统中添加他们的设备或者插件很容易。OpenHAB 也支持通过 iOS 和 Android 应用来控制设备以及设计工具，因此，你可以为你的家庭系统创建你自己的 UI。你可以在 GitHub 上找到 OpenHAB 的 源代码，它使用 Eclipse 公共许可证。OpenMoticsOpenMotics 是一个开源的硬件和软件家庭自动化系统。它的设计目标是为控制设备提供一个综合的系统，而不是从不同的供应商处将各种设备拼接在一起。不像其它的系统主要是为了方便改装而设计的，OpenMotics 专注于硬件解决方案。更多资料请查阅来自 OpenMotics 的后端开发者 Frederick Ryckbosch的 完整文章 。OpenMotics 使用 GPLv2 许可证，它的源代码可以从 GitHub 上下载。当然了，我们的选择不仅有这些。许多家庭自动化爱好者使用不同的解决方案，甚至是他们自己动手做。其它用户选择使用单独的智能家庭设备而无需集成它们到一个单一的综合系统中。如果上面的解决方案并不能满足你的需求，下面还有一些潜在的替代者可以去考虑：EventGhost 是一个开源的（GPL v2）家庭影院自动化工具，它只能运行在 Microsoft Windows PC 上。它允许用户去控制多媒体电脑和连接的硬件，它通过触发宏指令的插件或者定制的 Python 脚本来使用。ioBroker 是一个基于 JavaScript 的物联网平台，它能够控制灯、锁、空调、多媒体、网络摄像头等等。它可以运行在任何可以运行 Node.js 的硬件上，包括 Windows、Linux、以及 macOS，它使用 MIT 许可证。Jeedom 是一个由开源软件（GPL v2）构成的家庭自动化平台，它可以控制灯、锁、多媒体等等。它包含一个移动应用程序（Android 和 iOS），并且可以运行在 Linux PC 上；该公司也销售 hub，它为配置家庭自动化提供一个现成的解决方案。LinuxMCE 标称它是你的多媒体与电子设备之间的“数字粘合剂”。它运行在 Linux（包括树莓派）上，它基于 Pluto 开源 许可证 发布，它可以用于家庭安全、电话（VoIP 和语音信箱）、A/V 设备、家庭自动化、以及玩视频游戏。OpenNetHome，和这一类中的其它解决方案一样，是一个控制灯、报警、应用程序等等的一个开源软件。它基于 Java 和 Apache Maven，可以运行在 Windows、macOS、以及 Linux —— 包括树莓派，它以 GPLv3 许可证发布。Smarthomatic 是一个专注于硬件设备和软件的开源家庭自动化框架，而不仅是用户界面。它基于 GPLv3 许可证，它可用于控制灯、电器、以及空调、检测温度、提醒给植物浇水。现在该轮到你了：你已经准备好家庭自动化系统了吗？或者正在研究去设计一个。你对家庭自动化的新手有什么建议，你会推荐什么样的系统？via: https://opensource.com/life/17/12/home-automation-tools作者：Jason Baker 译者：qhwdw 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出
八月份，四名美国参议员提出了一项旨在改善物联网（IoT）安全性的法案。2017 年的 “物联网网络安全改进法” 是一项小幅的立法。它没有规范物联网市场。它没有任何特别关注的行业，或强制任何公司做任何事情。甚至没有修改嵌入式软件的法律责任。无论安全多么糟糕，公司可以继续销售物联网设备。法案的做法是利用政府的购买力推动市场：政府购买的任何物联网产品都必须符合最低安全标准。它要求供应商确保设备不仅可以打补丁，而且是以认证和及时的方式进行修补，没有不可更改的默认密码，并且没有已知的漏洞。这是一个你可以达到的低安全值，并且将大大提高安全性，可以说明关于物联网安全性的当前状态。（全面披露：我帮助起草了一些法案的安全性要求。）该法案还将修改“计算机欺诈和滥用”和“数字千年版权”法案，以便安全研究人员研究政府购买的物联网设备的安全性。这比我们的行业需求要窄得多。但这是一个很好的第一步，这可能是对这个立法最好的事。不过，这一步甚至不可能施行。我在八月份写这个专栏，毫无疑问，这个法案你在十月份或以后读的时候会没有了。如果听证会举行，它们无关紧要。该法案不会被任何委员会投票，不会在任何立法日程上。这个法案成为法律的可能性是零。这不仅仅是因为目前的政治 - 我在奥巴马政府下同样悲观。但情况很严重。互联网是危险的 - 物联网不仅给了眼睛和耳朵，而且还给手脚。一旦有影响到位和字节的安全漏洞、利用和攻击现在将会影响到其血肉。正如我们在过去一个世纪一再学到的那样，市场是改善产品和服务安全的可怕机制。汽车、食品、餐厅、飞机、火灾和金融仪器安全都是如此。原因很复杂，但基本上卖家不会在安全方面进行竞争，因为买方无法根据安全考虑有效区分产品。市场使用的竞相降低门槛的机制价格降到最低的同时也将质量降至最低。没有政府干预，物联网仍然会很不安全。美国政府对干预没有兴趣，所以我们不会看到严肃的安全和保障法规、新的联邦机构或更好的责任法。我们可能在欧盟有更好的机会。根据“通用数据保护条例”在数据隐私的规定，欧盟可能会在 5 年内通过类似的安全法。没有其他国家有足够的市场份额来做改变。有时我们可以选择不使用物联网，但是这个选择变得越来越少见了。去年，我试着不连接网络来购买新车但是失败了。再过几年, 就几乎不可能不连接到物联网。我们最大的安全风险将不会来自我们与之有市场关系的设备，而是来自其他人的汽车、照相机、路由器、无人机等等。我们可以尝试为理想买单，并要求更多的安全性，但企业不会在物联网安全方面进行竞争 - 而且我们的安全专家不是一个可以产生影响的足够大的市场力量。我们需要一个后备计划，虽然我不知道是什么。如果你有任何想法请评论。这篇文章以前出现在 9/10 月的 《IEEE安全与隐私》上。作者简介：自从 2004 年以来，我一直在博客上写关于安全的文章，以及从 1998 年以来我的每月订阅中也有。我写书、文章和学术论文。目前我是 IBM Resilient 的首席技术官，哈佛伯克曼中心的研究员，EFF 的董事会成员。via: https://www.schneier.com/blog/archives/2017/10/iot_cybersecuri.html作者：Bruce Schneier 译者：geekpi 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出