SHA-1不再安全 GitHub使用碰撞检测机制

今年2月,谷歌宣布攻破SHA-1哈希算法,这一消息震惊加密界,也就意味着SHA-1哈希从此不再安全。加密学哈希算法 SHA-1 被誉为密码学的瑞士军刀。哈希算法在我们日常的网络安全、代码仓库安全、甚至是确认文件的完整性方面扮演着重要的角色。

虽然大多数人已经不再使用SHA-1,但GitHub这个开源“神经中枢”却将其作为核心加密算法。众所周知,GitHub上覆盖各种开源项目,包括比特币、政府拥有的选举软件等等。

所幸的是,GitHub本周一采用了一个系统,能自动检测SHA-1破解入侵,并加以阻止。

GitHub将用户数据存储为具有唯一SHA-1哈希的“对象”。 该网站将唯一SHA-1哈希作为ID追踪“对象”。由于SHA-1的设计,产生两个相同哈希值的可能性很小。然而,谷歌二月通过高度专业的方法以及强大的云计算能力发现了SHA-1碰撞(指两个内容不同的对象产生了相同的 SHA-1 哈希值)实例,所以对GitHub进行SHA-1 碰撞攻击的方法被认为是首先创造出一对 SHA-1 哈希值相同的对象,然后让其中一个看似合法的对象获得合法签名,然后对外散播包含另一个恶意对象的版本,这个恶意版本的签名仍然与原始版本相同。

GitHub发表博文指出,谷歌发现SHA-1碰撞的方法会在字节上留下模式,而GitHub能检测到。如果触发碰撞规则,GitHub将自动中止操作。GitHub正在寻求更持久的解决方案。Git项目还制定计划将SHA-1过渡到另一种更安全的哈希算法,同时最大限度减少对现有存储库数据的破坏。待这项工作成熟时,我们计划在GitHub支持新算法

本文转自d1net(转载)

时间: 2017-07-04

SHA-1不再安全 GitHub使用碰撞检测机制的相关文章

如何正确接收 GitHub 的消息邮件

如何正确接收 GitHub 的消息邮件 背景 我厂的开发流程通常都是基于 GitHub 的.在 GitHub 上 review 代码,也是我日常工作的重要组成部分.对我来说,在 code review 过程中最讨厌的莫过于,我在 pull request 或 commit 下面评论或 @ 人,往往石沉大海,没有回音.我事后追问当事人,他们的回复往往是 "不知道你 @ 我了呀-". 这让我非常恼火.所以,我决定写篇文档给所有人看,避免他们漏看重要的 GitHub 消息.此后在 GitHu

Android界面性能调优手册

注:本文是我在 Android 界面性能调优知识的系统性总结,纯属个人碎碎念.秉持开源分享的原则发布本文出来,各位看官有需则取.原文见:https://androidtest.org/android-graphics-performance-pattens/ 界面是 Android 应用中直接影响用户体验最关键的部分.如果代码实现得不好,界面容易发生卡顿且导致应用占用大量内存. 我司这类做 ROM 的公司更不一样,预装的应用一定要非常流畅,这样给客户或用户的第一感觉就是快.又卡又慢的应用体验,会

【深度好文】Android界面性能调优手册

界面是 Android 应用中直接影响用户体验最关键的部分.如果代码实现得不好,界面容易发生卡顿且导致应用占用大量内存.我司这类做 ROM 的公司更不一样,预装的应用一定要非常流畅,这样给客户或用户的第一感觉就是快.又卡又慢的应用体验,会影响客户或用户对产品的信心和评价,所以不可忽视. 一. Android渲染知识 1.1 绘制原理 Android系统要求每一帧都要在 16ms 内绘制完成,平滑的完成一帧意味着任何特殊的帧需要执行所有的渲染代码(包括 framework 发送给 GPU 和 CP

深入理解JavaScript编程中的同步与异步机制

  这篇文章主要介绍了深入理解JavaScript编程中的同步与异步机制,不仅仅是AJAX已经深入到了各个角落,Node.js的火爆也让JS的异步编程格外引人注目,需要的朋友可以参考下 JavaScript的优势之一是其如何处理异步代码.异步代码会被放入一个事件队列,等到所有其他代码执行后才进行,而不会阻塞线程.然而,对于初学者来说,书写异步代码可能会比较困难.而在这篇文章里,我将会消除你可能会有的任何困惑. 理解异步代码 JavaScript最基础的异步函数是setTimeout和setInt

Github Coding Developer Book For LiuGuiLinAndroid

Github Coding Developer Book For LiuGuiLinAndroid 收集了这么多开源的PDF,也许会帮到一些人,现在里面的书籍还不是很多,我也在一点点的上传,才上传不到一半,没办法,库存太多了 觉得全部pull麻烦的话,也可以评论留下书名+邮箱,我每天都会统一发邮件,当然,也可以是一个系列,感谢大家的支持 地址:https://github.com/LiuGuiLinAndroid/Coding-Developer-Book Coding-Developer-Bo

Android 优化二 Java内存分配机制及内存泄漏

Java内存分配机制及内存泄漏目录介绍 1.JVM内存管理 1.1 JVM内存管理图 1.2 Java采用GC进行内存管理. 2.JVM内存分配的几种策略 2.1 静态的 2.2 栈式的 2.3 堆式的 2.4 堆和栈的区别 2.5 得出结论 2.6 举个例子 2.7 调用 System.gc();进行内存回收 3.GC简单介绍 3.1 内存垃圾回收机制 3.2 关于GC介绍 3.3 如何监听GC过程 3.4 GC过程与对象的引用类型关系 4.内存泄漏简单介绍 4.1 内存泄漏的定义 4.2 内

Github热度周排行第一,阿里Java规约插件开发之路曝光

大家好,我是研发效能事业部-天基-应用与基础运维平台的骏烈,集团编码规约P3C项目IDE插件主要开发者,家有一只小边牧,叫骏骨. 10月14号,云栖大会研发效能专场,<阿里巴巴Java开发手册>IDE插件(包括PMD规则实现库)正式对外开源,并且迅速占领Github开源热度周排行榜第一的位置,作为项目组的一员,看到业界对该项目的关注及认可,发自内心的高兴.高兴之余,分享一下在整个过程中的一些心得体会. 如果把每个人当成是一个分支,那么从我个人的分支视角而言,P3C经历了规则实现.IDEA集成.

分布式系统常见的事务处理机制

原文同步至https://waylau.com/distributed-system-transaction/ 为保障系统的可用性.可靠性以及性能,在分布式系统中,往往会设置数据冗余,即对数据进行复制.举例来说,当一个数据库的副本被破环以后,那么系统只需要转换到其他数据副本就能继续运行下去.另外一个例子,当访问单一服务器管理的数据的进程数不断增加时,系统就需要对服务器的数量进行扩充,此时,对服务器进行复制,随后让它们分担工作负荷,就可以提高性能.但同时,如何保障多个数据节点之间数据的一致以及如何

立足GitHub学编程:13个不容错过的Java项目

文章转自<http://developer.51cto.com/art/201607/514785.htm>,感谢作者分享! --------------------------------------------------------------------------------------- 立足GitHub学编程:13个不容错过的Java项目 GitHub可谓一座程序开发的大宝库,有些素材值得fork,有些则能帮助我们改进自有代码或者学习编程技能.无论如何,开发工作当中我们几乎不可能

实例介绍Cocos2d-x物理引擎:碰撞检测

碰撞检测是使用物理引擎的一个重要目的使用物理引擎可以进行精确的碰撞检测而且执行的效率也很高.在Cocos2d-x 3.x中使用事件派发机制管理碰撞事件EventListenerPhysicsContact是碰撞事件监听器.碰撞检测相关的API我们在前面一节介绍过了下面通过一个实例介绍碰撞检测的实现.这个实例的运行后的场景如图所示当场景启动后玩家可以触摸点击屏幕每次触摸时候就会在触摸点生成一个新的精灵精灵的运行是自由落体运动.当这些精灵之间发生接触时候它们的颜色被设置为黄色分离后颜色又恢复到原来状