1. Trang chủ
  2. » Công Nghệ Thông Tin

Hacker Professional Ebook part 131 pps

5 94 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 5
Dung lượng 124,93 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Nghề này chỉ có làm một việc là nhận 1 message text như thư từ chẳng hạn, sau đó chuyển thông tin text đó thành 1 chuổi mật mã 0,1 theo một quy luật gọi là khóa “Key” và rồi “gỏ” tín hiệ

Trang 1

“ngồi mát ăn bát vàng” Nghề này chỉ có làm một việc là nhận 1 message text (như thư từ chẳng hạn), sau đó chuyển thông tin text đó thành 1 chuổi mật mã 0,1 theo một quy luật gọi là khóa “Key” và rồi “gỏ” tín hiệu 0,1 đó bằng 1 công cụ đặc biệt

để chuyển đi bằng sóng điện từ (nên được gọi là gỏ dây thép) Người nhận tín hiệu bên kia ghi lại chuổi mã hóa 0,1 và dựa vào khóa “key” qui định mà chuyển ra tín hiệu text Đấy là qui trình chuyển 1 tín hiệu mã hóa Ví dụ này để các bạn dể hình dung ra cách mã hóa tin hiệu text như thế nào và nó cũng là một ví dụ thật “thô sơ” cho thuật tóan mã hóa Blowfish

GIỚI THIỆU VÀ THUẬT NGỮ

Trong chu trình mã hóa, plaintext là tín hiệu mà bạn chuyển đi Tín hiệu này có thể

là một bản báo cáo kiểm tra sức khỏe, một bức thư tình… Hay một cái gì đó mà

nó có thể được diễn tả ra thành một luồng bits Quá trình mã hóa là biến tín hiệu plaintext thành ciphertext (văn bản đã mã hóa), và quá trình giải mã thì ngược lại chuyển ciphertext thành plaintext

Thông thường người ta hay nói rằng, thuật tóan mã hóa có 2 lọai , symmetric (đối xứng) và public (công khai) Thuật tóan đối xứng như Blowfish chẳng hạn , dùng khóa bí mật giống nhau (same secret key) để mã hóa và giải mã Bạn phải giấu key một cách bí mật chỉ cho người nhận và gởi tín hiệu biết mà thôi Ví dụ như chúng

ta thường sử dụng một password trong IT,thì chỉ có người nhận và người gởi biết

mà thôi

Thuật tóan mã hóa khóa công khai (public) là dùng 2 key, một cho mã hóa, khóa kia cho giải mã Khóa được dùng cho mã hóa gọi là “public key” (khóa công khai) không cần giữ bí mật Người gởi tín hiệu dùng khóa này để gởi tín hiệu của họ và người nhận tín hiệu dùng khóa giải mã bí mật hay còn gọi là “private key” (khóa riêng) để đọc tín hiệu nhận được Khóa public key nó “locks” tín hiệu, còn khóa private key thì “unclocks” tín hiệu: một tín hiệu được mã hóa bằng public key, thì

ko ai ngọai trừ người giữ khóa private key có thể giải mã được tín hiệu RSA là một thuật tóan mã hóa public key thông dụng

Ở đây tui xin lấy một ví dụ để mô tả kiểu mã hóa key public và symmetric như sau (ko biết đúng ko nhe nhưng dễ hình dung,hihi) Nếu các bạn nào có đi du lịch ở khách sạn, hay gia đình khá giả chắc các bạn sẽ biết và đã từng xem truyền hình cáp Thực ra nó cũng giống như lọai truyền hình bình thường, không phải nối cáp

từ đài phát hình đến truyền hình của ta như là cái tên của nó dễ làm ta nhằm lẩn

Nó chỉ khác ở chổ, truyền hình bình thường, các bạn cứ tường tượng tín hiệu của

nó là lọai tín hiệu được mã hóa đối xứng, tức là tín hiệu hình ảnh được mã hóa

Trang 2

bằng một chuổi tín hiệu được truyền qua sóng điện từ đến truyền hình của ta Lúc

đó truyền hình sẽ giải mã chuổi tín hiệu đó thành hình ảnh bằng 1 khóa giống nhau (same secret key) khi mã hóa và giải mã Đây là lọai mã hóa đối xứng symmetric Còn truyền hình cáp thì khác, đài phát hình sẽ mã hóa hình ảnh bằng một khóa

“public key” mà tất cả các ăn-ten truyền hình nào cũng nhận được Nhưng bạn phải

có một đầu giải mả tín hiệu (hình dáng giống như một cái đầu máy DVD), có

nhiệm vụ giải mã tín hiệu truyền hình đã mã hóa thành tín hiệu hình ảnh thông qua một khóa riêng “private key” kết hợp với khóa “public key” để giải mả Đó chính

là lọai thuật tóan mã hóa công khai

Vậy muốn giải mã một tín hiệu mã hóa bằng thuật tóan symmetric ta phải biết khóa “same secret key” Và muốn giải mã một tín hiệu mã hóa bằng thuật tóan public key chúng ta bắt buộc phải biết khóa “private key”

Ngòai ví dụ trên, các thuật tóan mã hóa còn được sử dụng rất nhiều trong thực tế như : tín hiệu điện thọai di động, hay một vi chương trình cập nhật nâng cấp mà chúng ta thường thấy ,nó sẽ gởi 1 tín hiệu về trang chủ của soft để báo có cần nâng cấp soft ko khi có 1 bản upgrade mới,hoặc được sử dụng trong Embedded systems, vân vân nhiều lắm

Phần lớn thuật tóan đáng tin cậy nhất đã được xuất bản free để cho phân tích

(analysis) thỏai mái, bởi vì khóa bảo mật của chúng được sử dụng trong thực tế kiểm chứng rất an tòan Một thuật tóan tốt nó giống như “ một cái hầm chứa tiền của nhà băng ”: Cái hầm này được làm rất hòan chỉnh , nó là lọai tốt nhất , bạn ko thể vào bên trong hầm mà ko có khóa Blowfish chính là thuật tóan lọai này, nó rất đáng tin cậy đã được public công khai

Đôi khi một thuật tóan mã hóa bị giới hạn ko free, có nghĩa là chính thuật tóan này được giử bí mật Chính vì vậy bạn sẽ ko bao giờ biết chắc rằng thuật tóan bị giới hạn đó thật sự yếu kém như thế nào, bởi vì người phát triển ko cho bất cứ ai một cơ hội để phân tích nó

Thuật tóan có thể được sử dụng bảo mật những lọai dữ liệu khác nhau Đôi khi bạn muốn dữ liệu được “tòan vẹn” khi gởi đi, và tin chắc rằng người nhận sẽ nhận được những thông tin giống đúng như bạn đã gởi,lúc đó bạn cũng phải sử dụng đến thuật tóan mã hóa Thuật tóan mã hóa cũng cung cấp những “xác nhận”, cho biết chắc rằng một tín hiệu đến từ một người nào đó đã gởi nó đến đó là một vài mục đích sử dụng của thuật tóan mã hóa Một ứng dụng nữa của các thuật tóan mã hóa nói chung và Blowfish nói riêng là bảo mật phần mềm , ko cho các cracker chôm chỉa Nó sẽ mã hóa chuổi password (là plaintext) thành chuổi mã hóa ciphertext

Trang 3

Và sao đó sẽ xử lý chuổi ciphertext này

Trên đây là những giới thiệu sơ khởi về thuật tóan mã hóa và các ứng dụng của nó trong thực tế nhằm mục đích khởi xứng cho việc ứng dụng vào cracking mà chúng

ta quan tâm Tui xin tóm tắt lại các ý chính trên để chúng ta bắt đầu đi vào phần chính của vấn đề là phân tích thuật tóan Blowfish và ứng dụng trong cracking như thế nào:

-plaintext là tín hiệu mà bạn chuyển đi

-Ciphertext: tín hiệu mã hóa

-Thuật tóan mã hóa có 2 lọai , symmetric (đối xứng) và public (công khai)

- Thuật tóan đối xứng (symmetric) như Blowfish chẳng hạn , dùng khóa bí mật giống nhau (same secret key) để mã hóa và giải mã

- Thuật tóan mã hóa khóa công khai (public) là dùng 2 key, một cho mã hóa, khóa kia cho giải mã Khóa được dùng cho mã hóa gọi là “public key” (khóa công khai) không cần giữ bí mật.Khóa được dùng cho giải mã là “private key” (khóa riêng) RSA là một thuật tóan mã hóa public key thông dụng

- Vậy muốn giải mã một tín hiệu mã hóa bằng thuật tóan symmetric ta phải biết khóa “same secret key” Và muốn giải mã một tín hiệu mã hóa bằng thuật tóan public key chúng ta bắt buộc phải biết khóa “private key”

-Encryption algorithm thuật tóan mã hóa ở đây khác thuật tóan hash chuổi MD5 là: Thuật tóan mã hóa sẽ mã hóa ra 1 Ciphertext và có thể giải mã ngược lại 1

ciphertext thành 1 plaintext Còn thuật tóan MD5 thì sẽ hash chuổi thành 1 tín hiệu

MD nhưng ko thể biến đổi từ 1 chuổi MD về tín hiệu gốc

Đến đây thì hết phần giới thiệu, phần sao sẽ “chua” hơn phần này

Benina 2004

Patch: Add CRC32C chksums to crypto routines

Linux Code:

This patch against 2.6.1 adds CRC32C checksumming capabilities to the

crypto routines The structure of it is based wholly on the existing

digest (md5) routines, the main difference being that chksums are

often used in an "accumulator" fashion, effectively requiring one to

set the seed, and the digest algorithms don't do that

CRC32C is a 32-bit CRC variant used by the iSCSI protocol and in other

Trang 4

drivers iSCSI uses scatterlists, so it was strongly suggested by the

SCSI maintainers during reviews of Version 4 of the linux-iscsi driver

that the code be added to the crypto routines, which operate on

scatterlists

Test routines have been added to tcrypt.c

The linux-iscsi project can be found on SourceForge:

http://sourceforge.net/projects/linux-iscsi/

diff -urN exclude '*.ko' exclude '*.mod.*' exclude '*~' exclude '*.o*' exclude '.*' exclude '*.cmd' exclude drivers linux-2.6.1.orig/crypto/Kconfig linux/crypto/Kconfig

- linux-2.6.1.orig/crypto/KconfigFri Jan 9 01:00:03 2004

+++ linux/crypto/KconfigMon Jan 12 10:33:59 2004

@@ -22,6 +22,14 @@

help

These are 'Null' algorithms, used by IPsec, which do nothing

+config CRYPTO_CRC32C

+tristate "CRC32c CRC algorithm"

+depends on CRYPTO

+help

+ Castagnoli, et al Cyclic Redundancy-Check Algorithm Used

+ by iSCSI for header and data digests and by others

+ See Castagnoli93

+

config CRYPTO_MD4

tristate "MD4 digest algorithm"

depends on CRYPTO

diff -urN exclude '*.ko' exclude '*.mod.*' exclude '*~' exclude '*.o*' exclude '.*' exclude '*.cmd' exclude drivers linux-2.6.1.orig/crypto/Makefile linux/crypto/Makefile

- linux-2.6.1.orig/crypto/MakefileFri Jan 9 01:00:04 2004

+++ linux/crypto/MakefileMon Jan 12 10:33:59 2004

@@ -4,11 +4,12 @@

proc-crypto-$(CONFIG_PROC_FS) = proc.o

Trang 5

-obj-$(CONFIG_CRYPTO) += api.o cipher.o digest.o compress.o \

+obj-$(CONFIG_CRYPTO) += api.o cipher.o digest.o compress.o chksum.o \ $(proc-crypto-y)

obj-$(CONFIG_CRYPTO_HMAC) += hmac.o

obj-$(CONFIG_CRYPTO_NULL) += crypto_null.o

+obj-$(CONFIG_CRYPTO_CRC32C) += crc32c.o

obj-$(CONFIG_CRYPTO_MD4) += md4.o

obj-$(CONFIG_CRYPTO_MD5) += md5.o

obj-$(CONFIG_CRYPTO_SHA1) += sha1.o

diff -urN exclude '*.ko' exclude '*.mod.*' exclude '*~' exclude '*.o*' exclude '.*' exclude '*.cmd' exclude drivers linux-2.6.1.orig/crypto/api.c linux/crypto/api.c

- linux-2.6.1.orig/crypto/api.cFri Jan 9 01:00:04 2004

+++ linux/crypto/api.cMon Jan 12 10:33:59 2004

@@ -68,6 +68,9 @@

case CRYPTO_ALG_TYPE_COMPRESS:

return crypto_init_compress_flags(tfm, flags);

+case CRYPTO_ALG_TYPE_CHKSUM:

+return crypto_init_chksum_flags(tfm, flags);

+

default:

break;

}

@@ -88,6 +91,9 @@

case CRYPTO_ALG_TYPE_COMPRESS:

return crypto_init_compress_ops(tfm);

+case CRYPTO_ALG_TYPE_CHKSUM:

+return crypto_init_chksum_ops(tfm);

+

default:

break;

}

@@ -111,6 +117,10 @@

crypto_exit_compress_ops(tfm);

break;

Ngày đăng: 04/07/2014, 11:20

TỪ KHÓA LIÊN QUAN