汉澳sinox不受openssl心血漏洞影响并分析修复其漏洞代码

OpenSSL 心血(HeartBleed)漏洞 是openssl 在 2014-04-07 发布的重大安全漏洞(CVE-2014-0160)这个漏洞使攻击者可以从server内存中读取64 KB的数据,甚至获取到加密流量的密钥。用户的名字和password。以及訪问的内容。

主要影响版本号 OpenSSL 1.0.1 到 OpenSSL 1.0.1f 以及 OpenSSL 1.0.2 Beta1

不受此漏洞影响的 OpenSSL版本号信息:

OpenSSL 1.0.1g 已修复该漏洞 ,以及g以上预计也修复了

OpenSSL 1.0.0 分支版本号不受此漏洞影响

OpenSSL 0.9.8 分支版本号不受此漏洞影响 ///汉澳sinox系统使用的openssl版本号

OpenSSL 1.0.2 Beta2 不受此漏洞影响

[email protected]:~ # openssl version

OpenSSL 0.9.8y 5 Feb 2013

可是假设用户升级到OpenSSL 1.0.1 到 OpenSSL 1.0.1f。就会面临漏洞攻击。用户编译安装定义了OPENSSL_NO_HEARTBEATS。也能够避开此漏洞。

引入心跳这个功能应该是为了保持client与server的连接。事实上这个不是必须的。

#ifndef OPENSSL_NO_HEARTBEATS

int

dtls1_process_heartbeat(SSL *s)

{

unsigned char *p = &s->s3->rrec.data[0], *pl;

//rrec是心跳包ssl3结构,用户发来的数据包

/×typedef
struct ssl3_record_st

    {

        int
type;               /* type of record */

        unsigned
int length;    /* How many bytes available */

        unsigned
int off;      
/* read/write offset into ‘buf‘ */

        unsigned
char *data;    /* pointer to the record data */

        unsigned
char *input;  
/* where the decode bytes are */

        unsigned
char *comp;    /* only used with decompression - malloc()ed */

        unsigned
long epoch;    /* epoch number, needed by DTLS1 */

        unsigned
char seq_num[8];
/* sequence number, needed by DTLS1 */

    } SSL3_RECORD;

*/

unsigned short hbtype;

unsigned int payload;

unsigned int padding = 16; /* Use minimum padding */

if (s->msg_callback)

s->msg_callback(0, s->version, TLS1_RT_HEARTBEAT,

&s->s3->rrec.data[0], s->s3->rrec.length,

s, s->msg_callback_arg);

/* Read type and payload length first */

if (1 + 2 + 16 > s->s3->rrec.length) //patch

return 0; /* silently discard */             //patch

//这个是补丁,长度为0的心跳包,就返回不要处理

hbtype = *p++;//运行后就是心跳包用户设置的payload,用户能够随意设置

n2s(p, payload);//宏n2s从指针p指向的数组中取出前两个字节,并把它们存入变量payload中,p是client的数据。能够设置0xFFFF,最大65535

if (1 + 2 + payload + 16 > s->s3->rrec.length)   //patch

return 0; /* silently discard per RFC 6520 sec. 4 */  //patch

//这个是补丁,用户设置payload长度+19超过心跳包实际长度,就返回不要处理

pl = p;

if (hbtype == TLS1_HB_REQUEST)

{

unsigned char *buffer, *bp;

unsigned int write_length = 1 /* heartbeat type */ +

2 /* heartbeat length */ +

payload + padding;

int r;

if (write_length > SSL3_RT_MAX_PLAIN_LENGTH)

return 0;

/* Allocate memory for the response, size is 1 byte

* message type, plus 2 bytes payload length, plus

* payload, plus padding

*/

buffer = OPENSSL_malloc(write_length);

bp = buffer;

/* Enter response type, length and copy payload */

*bp++ = TLS1_HB_RESPONSE;

s2n(payload, bp);//宏s2n与宏n2s干的事情正好相反:s2n读入一个16 bit长的值,然后将它存成双字节值,所以s2n会将与请求的心跳包载荷长度同样的长度值存入变量payload

memcpy(bp, pl, payload);

//假设用户并没有在心跳包中提供足够多的数据,会导致什么问题?比方pl指向的数据实际上仅仅有一个字节,那么memcpy会把这条SSLv3记录之后的数据——不管那些数据是什么——都复制出来。

后面那些数据可能存有其它用户的密钥。username和password。

这个就是c语言的内存指针。编写者没有考虑到payload会超过数据实际长度的情况。要检查才行。

非常幸运,汉澳sinox没有碰上这个漏洞。这是程序设计者添加新功能引入的新漏洞。而bash漏洞则是非常久就有的一直没有被发现。所以新版本号不意味就更好,由于没有充分測试修复可能产生的新bug.

时间: 2024-10-18 08:51:59

汉澳sinox不受openssl心血漏洞影响并分析修复其漏洞代码的相关文章

很多人不愿意承认汉澳sinox已经超过windows

汉澳sinox采用的zfs和jail打造高可靠性存储服务器和矩阵计算机,这不是windows和linux能相提并论的. 不过很多人马上出来出来反驳说,windows驱动程序多(就是支持硬件多),软件多,游戏多! 但是sinox安全多,稳定多,可靠多.sinox是高性能计算机的最佳选择,打造高级工作站和可靠服务器的首选. windows也有病毒多,漏洞多,木马多,危险多.这些对用户追求安全操作系统是难以接受的.可是人们又不得不选择,因为他们没有别的选择. 最重要的是他们不愿意承认,也无法接受汉澳s

非常多人不愿意承认汉澳sinox已经超过windows

汉澳sinox採用的zfs和jail打造高可靠性存储server和矩阵计算机,这不是windows和linux能相提并论的. 只是非常多人立即出来出来反驳说,windows驱动程序多(就是支持硬件多),软件多,游戏多! 可是sinox安全多,稳定多,可靠多.sinox是高性能计算机的最佳选择,打造高级工作站和可靠server的首选. windows也有病毒多,漏洞多,木马多,危急多.这些对用户追求安全操作系统是难以接受的.但是人们又不得不选择,由于他们没有别的选择. 最重要的是他们不愿意承认,也

汉澳sinox或可阻断美国国安全局硬盘隐藏间谍程序

硬盘粉碎机对硬盘低格可以对硬盘数据清零,删除间谍软件,但是如果间谍软件存放在硬盘固件中,则删不掉,只要启动硬盘就可以激活,复制出程序在操作系统上运行. sinox只有内核系统进程和普通进程,普通进程都看得见的,而windows则眼花缭乱,有系统进程,服务进程,exe进程,隐藏进程,系统配置还有庞大的注册表,普通用户根本搞不清,而各种程序运行根本不由用户控制,可以直接运行,用户也看不见. 在sinox运行程序需要授权,设置为可执行程序才可以运行,从而阻断了非法程序偷偷运行,自动运行的程序都在rc.

快速修复汉澳sinox命令解释程序bash shell

bash是linux默认命令行管理程序shell,汉澳 sinox也安装有,虽然sinox并没有默认使用bash,但是用户一旦使用就会可能被通过漏洞入侵,所以必须快速修复.虽然sinox使用freebsd 的ports,但是freebsd已经升级到最新的软件管理pkg,ports正在被淘汰,要通过portsnap直接更新到最新的ports然后用pkg安装,不过最新的ports只是在freebsd10以上使用,对于低版本pkg可能不支持.不管怎么说,如果你要用pkg,只能用freebsd10,否则

汉澳sinox的先进文件系统zfs轻松击败微软ReFS和linux的btrfs

汉澳 sinox2014引入的zfs先进文件系统轻松击败微软的ReFS 说明汉澳sinox借助开源的力量已经在文件系统获得领先优势,适合打造高性能存储服务器. 这个事实告诉人们,windows并非不可战胜. 文件系统比拼:微软ReFS VS ZFS 作者:雷霆出处:IT专家网2013-07-30 08:47 [IT专家网存储]存储的优点,一般认为是硬件驱动.基于RAID的文件系统的高可靠.真相是,显著的潜在错误依然存在,特别是随着系统为云架构和大数据应用程序扩展.这种潜在的错误,由于操作系统或者

汉澳sinox平台的大量CAD制图、PCB电路板、IC集成电路、HDL硬件描述语言、电路仿真和元素分析等设计软件一览表

汉澳sinox平台的大量CAD制图.PCB电路板.IC集成电路.HDL硬件描述语言.电路仿真和元素分析等设计软件一览表,让你大开眼界. 最近研究在sinox运行windows版的protel,powerpcb,autucad,觉得很麻烦.转念一想,sinox下面其实也有很多辅助设计软件可用,可是大家并不知道. 于是花了不少时间逐个研究,终于发现sinox下面有很多功能强大的2d,3d CAD制图软件,pcb电路板. IC集成电路设计软件,以及电子信号仿真模拟软件. 如此也能做到,为何要去使用盗版

汉澳sinox高速下载工具axel

汉澳sinox高速下载工具axel 一直用wget.浏览器单线程下载等啊等,没完没了,必须使出刹手锏. 汉澳sinox高速下载工具axel,不是exel,读作 阿克啸 安装 cd /usr/ports/ftp/axel;make install clean 然后运行axel -n 10 网址,其中-n 后面指定多线程数量. 然后就以10倍速度download,不需要安装旋风下载等等,那还不稳定.

汉澳sinox为什么没有下载源,因为sinox运行unix/linux/windows程序

有用户下载使用汉澳sinox后说sinox没有下载源. 意思是说类似linux那样能下载linux 开源程序安装. 但是你要知道,sinox并不是linux. 首先,sinox是商业操作系统,就像 windows那样,你看到 windows有下载源吗? sinox不是开源操作系统,因此也就没有开源源代码和程序下载这种说法. 其次,sinox能运行bsd/unix/linux/windows程序,要做一个下载源那么该有多大?而且主要是支持商业软件开发,除了提供一些必要下载,大部分还是让其他软件公司

设置汉澳sinox获得winxp清晰字体靓丽界面

开始使用汉澳sinox总觉得界面比较暗淡,字体比较模糊,没有winxp的亮丽,导致眼睛比较劳累.如果说暗淡可能不那么刺眼,有利于眼睛,但是字体模糊实在受不了.即使调节了分辨率,修改了亮度,可是字体模糊还是没有改观.我希望sinox界面跟 xp一样好.其实只要设置一下就好了. 首先下载宋体字体文件simsun.ttc并安装.然后运行qtconfig命令,设置一下就大功告成. 进入qtconfig界面,appearance的GUI style选择SGI比较亮. 主要是选择GUI style.风格有点