首页 文章 精选 留言 我的

精选列表

搜索[lan],共611篇文章
优秀的个人博客,低调大师

Cube LAN Gateway篇

概述 去年,我们的安全团队确认了 CVE-2015-7503漏洞,又名ZF2015-10,这是一个在使用RSA过程中,出现的功能上的漏洞,存在于Zend框架的密码库中。 这个实际漏洞(采用PKCS1v1.5 填充方法的RSA密码“填充预言”漏洞)最初是由Daniel Bleichenbacher在1998年发布出来的。“填充预言”漏洞允许攻击者用一个加密的消息,并多次发送修改过的密文到服务器(每一次得到一个填充错误的标识),根据返回的错误标识,有可能恢复出原始信息。 人们可能希望,任何允许攻击者还原出原始信息的漏洞(“填充预言”已经被发现了超过十六年),开发者都应该有所了解,并减小漏洞利用的可能性。 很遗憾,当我们审察PHP软件时(包括开源的和专用的),我们发现,即使在2016年编写的应用层加密协议中,仍然存在这种漏洞,可以通过这种方法去攻击。 我们相信造成这种结果的因素主要有两个方面: 1.大多数开发人员对如何在所有语言中安全的实现公钥加密了解不够。 2.PHP的OpenSSL 扩展在默认配置下是不安全的,但是在实际操作中,没有人会去修改默认配置。 快速解决方案:使用安全的PHP公钥加密库 如果你对这么多的“为什么不安全”不感兴趣,你可以直接看这个:“为你的PHP项目选择一个正确的加密库”。 RSA是如何变坏的 当涉及到应用层加密,使用RSA简直是一个错误。这并不意味着你的应该程序是完全失败的。无论如何,你必须避免很多RSA的实施缺陷(有些是明示的,有些不明显)。让我们看一看一些PHP开发人员可能会遇到的情况。 1.默认安全配置会让每个人都上当 在PHP中,大多数的RSA在实施过程中都会用到下面的两个函数: openssl_public_encrypt() openssl_private_encrypt() 来看一个这两个函数的原型,有一个默认配置: OPENSSL_PKCS1_PADDING 常量告诉OpenSSL 扩展:”我们想用PKCS1填充方法“。但是我们之前已经说过了,采用PKCS1v1.5 填充方法的RSA密码,存在填充预言的弱点,这一点从1998年就已经被公开了。由于攻击者为了恢复明文,可能需要一百万个消息的攻击成本,因此这种攻击更多的被普遍称为 "百万消息攻击"。 解决方案是无论你什么时候使用这两个函数,都需要使用OPENSSL_PKCS1_OAEP_PADDING常量。这个常量会强制用OAEP填充方法代替不安全的PKCS1 V1.5填充方法。 在我们的体会中,实际上没有人这么做(除非在我们团队中有某个人帮它指了出来): Zend\Crypt didn't Sikker (PHP security library) didn't Pikirasa (PHP cryptography library) didn't Minds (social network allegedly backed by "Anonymous") didn't 甚至是有经验加密开发人员,在使用RSA加密时,常常都会忘记使用OAEP。 因此,如果你需要强制使用公钥算法(不论作为一个开发者,还是一个渗透测试者),并且当你们提到RSA算法,还谈论着”2048bit密钥够不够?或者需不需要用4096bit?“时,请先检查你使用的填充方法吧。你很有可能只需要几千条信息就能恢复出明文,从而完全将应用程序的安全性作废。 2.直接使用RSA加密的危险性 如果你已经阅读了前面的内容,并且已经思考过,”那好,如果我仅仅记着使用OAEP,我就可以不受阻碍,直接使用RSA加密任何信息吗?”,没有这么快,你最好不要用RSA加密长信息。 当面对加密长信息时,大多数开发者很聪明:他们会将信息分割成214-byte的信息块(对于2048bit的密钥),并且对每块分别进行加密,可以简单的将RSA的这种模式称为ECB模式。 如果你这样做,攻击者可能不会去恢复出你的明文,但是正如之前所说过的,RSA很慢,罪犯可能会充分利用这个特点,去发动DDOS攻击,从而很容易的扩大DDOS的影响,并且对RSA发动DDOS攻击,不需要用明显的攻击方法,你可能只需要用复制、重新排序或删除214字节块的方法,而不是创建一个解密错误。 使用混合密码体制 最好的实现公钥密码的方法是建立一个混合的加密体制。结合对称密码和非对称密码。这样做有如下几个好处: 效率高:对称密码加密速度比非对称密码快很多 适用性:对信息长度没有实际限制 安全性:请看来面 1.混合RSA+AES 结合RSA和AES通常很有必要: (1)用对称密钥,使用对称密码加密消息。 (2)使用公钥密码加密(1)中的对称密钥,从而让只有私钥的一方才可以解密出对称密钥,并使用它。 Zend\Crypt在3.1.0版本以后,就已经支付混合RSA-AES的加密体制了,并采用了EasyRSA库。在Zend框架说明文档中,对它采用的混合加密方案的工作原理理解的很好。 由于现有的AES密钥大小一定,你需要加密的数据只有16、24、或者32byte,这远小于2048bit RSA最大允许的214bytes。实际的数据加密采用的是CBC模式的AES,或者是CTR模式的AES。对于大多数应用程序,这种加密对消息长度没有实践的上限。 2.混合ECDH+Xsalsa20-Poly1305 Libsodium 加密库使用基于椭圆曲线的DH密钥交换算法,代替RSA,用于协商共享密钥,该共享密钥被xsalsa20-poly1305用于消息加密和密文鉴定中。 相关功能为crypto_box()。 当你想用接收者的公钥加密数据时(即发送者无法解密),Libsodium 的另一功能是对于每条消息,产生一个随机的公私密钥对,并将公钥附在密文后面,名为 crypto_box_seal()。 针对RSA的模数攻击是一个长期的威胁 RSA的安全性基于大数分解的困难性,然而,在不久的将来,这一安全保证会面对两个主要威胁: 1.改进的攻击算法有可能比“通用数域筛法”更快的从公钥中恢复出私钥。对椭圆曲线密码体制没有效果。 2.量子计算机,这货太强大,连椭圆曲线密码体制都能破。 目前认为,一个老练的攻击者,有可能在短短几个月的时间里破解出1024位RSA,但是2048bit RSA仍然是安全的,然而,如果有一种方法能突破2048位RSA,那么这种方法对4096位RSA可能也有效。 如果你打算在2016年将加密技术应用到一个新的应用程序中,有可能突破RSA的那些迫在眉睫眉睫的威胁(真正的问题是,这种突破方法对ECDH或ECDSA是不是适用)绝对应该被考虑。实际上,在未来,你最好考虑不要用RSA、DSA、或者传统的Diffie-Hellman算法。 总结 如果你需要在你的PHP应用中添加公钥加密算法: 1.不要用RSA。我们甚至没有讲到数字签名,它同样也面临着很多尚未解决的复杂问题(细微的伪造攻击,假冒安全证明等等)。 2.你果你必须用RSA,不要直接用RSA。最好使用混合的加密体制,结合RSA和下面的一个: AES-256-GCM AES-256-CTR + HMAC-SHA256 (in an Encrypt then MAC construction) 3.确保你用了OAEP,而不是PKCS1 V1.5填充。否则,这肯定是一个漏洞。 作者:pwn_361 来源:51CTO

优秀的个人博客,低调大师

基于Web的Kafka管理器工具之Kafka-manager启动时出现Exception in thread "main" java.lan...

问题详情 我在Kafka-manager启动时出现 [hadoop@master kafka-manager-1.3.2.1]$ nohup bin/kafka-manager -Dconfig.file=/home/hadoop/app/kafka-manager-1.3.2.1/conf/application.conf -Dhttp.port=10000 & [1] 5930 [hadoop@master kafka-manager-1.3.2.1]$ nohup: ignoring input and appending output to `nohup.out' [1]+ Exit 1 nohup bin/kafka-manager -Dconfig.file=/home/hadoop/app/kafka-manager-1.3.2.1/conf/application.conf -Dhttp.port=10000 [hadoop@master kafka-manager-1.3.2.1]$ ll total 36 drwxrwxr-x 2 hadoop hadoop 4096 Jul 28 20:51 bin drwxrwxr-x 2 hadoop hadoop 4096 Jul 28 21:00 conf drwxrwxr-x 2 hadoop hadoop 12288 Jul 28 20:51 lib -rw------- 1 hadoop hadoop 1179 Jul 28 21:03 nohup.out -rw-r--r-- 1 hadoop hadoop 6323 Feb 22 08:55 README.md drwxrwxr-x 3 hadoop hadoop 4096 Jul 28 20:51 share [hadoop@master kafka-manager-1.3.2.1]$ cat nohup.out Exception in thread "main" java.lang.UnsupportedClassVersionError: com/typesafe/config/ConfigException : Unsupported major.minor version 52.0 at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:800) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:449) at java.net.URLClassLoader.access$100(URLClassLoader.java:71) at java.net.URLClassLoader$1.run(URLClassLoader.java:361) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:425) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) at java.lang.ClassLoader.loadClass(ClassLoader.java:358) at play.core.server.ProdServerStart$.readServerConfigSettings(ProdServerStart.scala:81) at play.core.server.ProdServerStart$.start(ProdServerStart.scala:42) at play.core.server.ProdServerStart$.main(ProdServerStart.scala:27) at play.core.server.ProdServerStart.main(ProdServerStart.scala) [hadoop@master kafka-manager-1.3.2.1]$ ll 解决办法 若大家,还不会建立软连接,则见我下面的博客 大数据各子项目的环境搭建之建立与删除软连接(博主推荐) drwxrwxr-x. 8 hadoop hadoop 4096 Jul 26 08:14 hive-1.0.0 lrwxrwxrwx. 1 hadoop hadoop 11 Apr 12 10:18 jdk -> jdk1.7.0_79 drwxr-xr-x. 8 hadoop hadoop 4096 Apr 11 2015 jdk1.7.0_79 drwxr-xr-x. 8 hadoop hadoop 4096 Aug 5 2015 jdk1.8.0_60 lrwxrwxrwx 1 hadoop hadoop 19 Jul 27 17:27 kafka -> kafka_2.10-0.9.0.1/ drwxr-xr-x 7 hadoop hadoop 4096 Jul 28 19:55 kafka_2.10-0.9.0.1 drwxr-xr-x 6 hadoop hadoop 4096 May 3 22:01 kafka_2.11-0.8.2.2 drwxrwxr-x 6 hadoop hadoop 4096 Jul 28 21:03 kafka-manager-1.3.2.1 lrwxrwxrwx 1 hadoop hadoop 26 Apr 21 22:18 kibana -> kibana-4.6.3-linux-x86_64/ drwxrwxr-x 11 hadoop hadoop 4096 Nov 4 2016 kibana-4.6.3-linux-x86_64 lrwxrwxrwx 1 hadoop hadoop 37 Jul 3 22:18 phoenix -> apache-phoenix-4.10.0-HBase-0.98-bin/ lrwxrwxrwx 1 hadoop hadoop 13 Jun 8 09:44 scala -> scala-2.11.8/ drwxrwxr-x 9 hadoop hadoop 4096 Feb 27 2015 scala-2.10.5 drwxrwxr-x 6 hadoop hadoop 4096 Mar 4 2016 scala-2.11.8 lrwxrwxrwx 1 hadoop hadoop 12 May 1 19:35 snappy -> snappy-1.1.3 drwxr-xr-x 6 hadoop hadoop 4096 May 1 19:40 snappy-1.1.3 lrwxrwxrwx 1 hadoop hadoop 26 Jun 8 00:39 spark -> spark-1.6.1-bin-hadoop2.6/ drwxr-xr-x 12 hadoop hadoop 4096 Feb 27 2016 spark-1.6.1-bin-hadoop2.6 lrwxrwxrwx. 1 hadoop hadoop 11 Apr 12 11:28 sqoop -> sqoop-1.4.6 drwxr-xr-x. 9 hadoop hadoop 4096 May 19 10:31 sqoop-1.4.6 lrwxrwxrwx 1 hadoop hadoop 19 May 21 17:21 storm -> apache-storm-1.0.2/ lrwxrwxrwx 1 hadoop hadoop 34 Jun 8 11:20 zeppelin -> zeppelin-0.5.6-incubating-bin-all/ drwxr-xr-x 11 hadoop hadoop 4096 Jun 8 11:33 zeppelin-0.5.6-incubating-bin-all lrwxrwxrwx. 1 hadoop hadoop 15 Apr 12 11:28 zookeeper -> zookeeper-3.4.6 drwxr-xr-x. 10 hadoop hadoop 4096 Apr 12 17:13 zookeeper-3.4.6 [hadoop@master app]$ rm -rf jdk [hadoop@master app]$ ln -s jdk1.8.0_60/ jdk [hadoop@master app]$ 然后,再次打开,即可 http://192.168.80.145:10000/ 或者 http://master:10000/ 本文转自大数据躺过的坑博客园博客,原文链接:http://www.cnblogs.com/zlslch/p/7252702.html,如需转载请自行联系原作者

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册