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 不受此漏洞影响

root@www:~ # 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.

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

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

    汉澳sinox采用的zfs和jail打造高可靠性存储服务器和矩阵计算机,这不是windows和linux能相提并论的. 不过很多人马上出来出来反驳说,windows驱动程序多(就是支持硬件多),软件多 ...

  2. windows7停售,win8被禁,安装汉澳sinox正其时,sinox支持大部分windows软件

    腾讯科技: 如微软此前宣布的,10月31日起,Windows 7家庭普通版.家庭高级版以及旗舰版的盒装版将不再销售.而且微软也不再向OEM厂商发放这三个版本的授权. windows7停售,由于中国已经 ...

  3. xp灾难不降临中国不会使用汉澳sinox源于消防救灾式管理

    xp灾难不降临中国不会使用汉澳sinox源于消防救灾式管理 几年前微软已经提出停止xp服务,大家要用新的操作系统,但是几年过去了,中国不但无动于衷,还想在xp停止服务后继续使用.这有几个原因. 一是贪 ...

  4. 汉澳sinox高速下载工具axel=迅雷?

    一直用wget.浏览器单线程下载等啊等,没完没了,必须使出刹手锏.这个就是人们说的sinox下面的迅雷. 汉澳sinox高速下载工具axel,不是exel,读作 阿克啸 安装 cd /usr/port ...

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

    汉澳sinox平台的大量CAD制图.PCB电路板.IC集成电路.HDL硬件描述语言.电路仿真和元素分析等设计软件一览表,让你大开眼界. 最近研究在sinox运行windows版的protel,powe ...

  6. winxp死亡倒计时,大家快安装使用汉澳sinox!

    winxp死亡倒计时,大家快安装使用汉澳sinox! 微软下载中心在4月19号发布了一个小工具,名叫"XP支援服务停止倒计时".它的唯一功能就是不停告诉你,距离2014年XP的支持 ...

  7. 汉澳sinox运行photoshop8,dreamweaver8,flashmx2004,fireworks8

    汉澳sinox2014直接运行windows程序,并不是太难 绿色版dreamweaver8 ,直接运行没发现什么问题 bitwise ssh代理上网,forefox设置代理就可以,你懂的 photo ...

  8. 北斗导航 | 北斗RDSS受地面5G干扰影响的分析及对策研究

    ================================================ 博主github:https://github.com/MichaelBeechan 博主CSDN:h ...

  9. 汉澳sinox运行wps2003,office2003,IE8,用爱奇艺客户端看电影

    很多应用程序只有windows版本,没有sinox版本怎么办? 我总不能等死吧,他不支持我,我可以去支持他啊. 目前sinox支持很多windows软件的winxp以及以下版本.比winxp更高的版本 ...

最新文章

  1. Microbiome:植物发育和氮肥共同作用下的小麦根系微生物组
  2. 52 个深度学习目标检测模型汇总,论文、源码一应俱全
  3. 渗透中poc、exp、payload与shellcode的区别
  4. 二进制数代替数组做标记
  5. mysql 启动出错问题排查
  6. hashlib 模块用来进行hash
  7. mysql5.1编译安装centos7_02: mysql 5.7 编译安装 (centos7)
  8. ajax简单做html查询删除(鲜花)
  9. 'conda' 不是内部或外部命令,也不是可运行的程序 或批处理文件。
  10. 掌财社:传联想控股收身而退 放弃参与高盛投行计划
  11. 设置 cmd 窗口默认为快速编辑(quickedit)
  12. 职高计算机班主任工作计划,教学工作计划:高职班主任工作计划
  13. PON系统基础知识简介
  14. Mr.Alright---安卓N系统最近任务锁定功能实现
  15. 【STM32F407】第2章 ThreadX FileX文件系统介绍
  16. 数位板怎么用?刚开始使用数位板要从什么开始练习
  17. 软件项目管理指南:定义、5大过程、估算及进度管理方法等
  18. 路由器限制计算机访问,路由器如何禁止设备访问指定网站?
  19. 基于django的open_edx平台如何读取setting文件
  20. 怎样对股票交易下单接口进行测试?

热门文章

  1. matlab模糊控制图怎么导出_使用MATLAB生成模糊控制的离线查询表
  2. 你写一个web网页小游戏
  3. 2022年蓝桥杯:第十三届蓝桥杯大赛软件赛省赛C/C++大学B组真题(考后回顾,文末附真题链接)
  4. Java开发者跳槽必备,面试:Redis为什么这么快呢
  5. 【毕业设计_课程设计】位置信息管理网站设计(源码+论文)
  6. coursera使用前准备
  7. 数学建模算法总结——03二次规划+非线性规划
  8. MediaPlayer+SurfaceView实现视频播放器
  9. slam中的相机相关
  10. 二叉搜索树(平衡二叉搜索树)