KỸ THUẬT MÃ HÓA KỸ THUẬT MÃ HÓA

Encryption

© 2011, Vietnam-Korea Friendship IT College

Mã hóa

 Căn bản về mã hóa

 Khái niệm  Phân loại  PKI

 Tiêu chuẩn và các giao thức về mã hóa

© 2011, Vietnam­Korea Friendship IT College

Khái niệm về mã hóa

 Mã hóa nhằm đảm bảo các yêu cầu sau:

 Tính bí mật

Tính bí mật (confidentiality): dữ liệu không bị xem bởi “bên thứ 3”  Tính toàn vẹn Tính toàn vẹn (Integrity): dữ liệu không bị thay đổi trong quá trình truyền  Tính không khước từ Tính không khước từ (Non-repudiation): là cơ chế người thực hiện hành động không thể chối bỏ những gì mình đã làm, có thể kiểm chứng được nguồn gốc hoặc người đưa tin

© 2011, Vietnam­Korea Friendship IT College

Khái niệm về mã hóa

Security

Hello

$%@%

Hello

Mã hóa

Giải mã

Cyphertex

ể ọ ượ ộ

ộ ở ữ

ố ượ

ộ ỉ

ủ i mã m i có th  đ c đ

ng s  h u khóa gi

ượ

ộ ả ặ Mã hóa là m t quá trình xáo tr n (scramble) n i dung c a m t file ho c m t b n  c n i dung  tin sao cho ch  có đ i t c mã hóa đã đ

© 2011, Vietnam­Korea Friendship IT College

Khái niệm về mã hóa

 Stream Cipher

Let  us  talk  one  to  one

Let  us  talk  one  to  one

F5n  om  n1fe  ih5  ni  ih5

a­>1 b­>2 c­>3 d­>4 e ­>5 f ­>6 g ­>a h ­>b . . y­>s z­>t

1­>a 2­>b 3­>c 4­>d 5 ­>d 6 ­>f a ­>g b ­>h . . s­>y t­>z

Stream cipher

ụ Ví d : mã

RC4

© 2011, Vietnam­Korea Friendship IT College

Khái niệm về mã hóa

 Block Cipher

ụ Ví d : mã

DES, SHA­1

© 2011, Vietnam­Korea Friendship IT College

Các giải thuật mã hóa

 Giải thuật băm (mã hóa 1 chiều: one-way encrypt)

`

`

MD5

MD5

Hash value

Hash value

Một số giải thuật băm:

MD5: tạo ra 128-bit checksum SHA: tạo ra 160-bit checksum

compare

© 2011, Vietnam­Korea Friendship IT College

Các giải thuật mã hóa

 Giải thuật băm (hash)

 Nhằm đảm bảo tính toàn vẹn của thông tin  Dữ liệu sau khi xử lý qua giải thuật băm gọi là giá trị băm

(hash value)

 Giá trị băm có đội dài không đổi, không phụ thuộc vào độ

dài dữ liệu và được gửi đi cùng dữ liệu.

 Giá trị băm này sẽ được so sánh với giá trị băm gửi kèm để xác định dữ liệu có bị thay đổi trên đường truyền hay không?

 Một số giải thuật băm

 MD5 (Message Digest 5): giá trị băm 128 bit (32 hex)  SHA-1 (Secure Hash Algorithm): giá trị băm 160 bit

© 2011, Vietnam­Korea Friendship IT College

Message digest #5 (MD5)

 Thuật toán biến đổi 1 chuổi string thành 1 tín hiệu “message digest” hay còn gọi là “MD5 hashes” (128 bits – 32 ký tự hexa)

 Bất cứ string nào cũng điều có duy nhất một

hash, không bao giờ có 2 hashes cho 1 string  Từ 1 hash không thể tìm ngược lại string của nó  Ý nghĩa: “vân tay của thông điệp”

 Checksum  Password

 Ví dụ:

Plaintext: viethan viethan MD5: 6A6FAB2F8227790C0776019B9DF67C1F

© 2011, Vietnam­Korea Friendship IT College

Message digest #5 (MD5)

 Thuật toán

 Gắn thêm độ dài của dữ liệu vào sao cho + 64 bit

chia hết cho 512

 Chia dữ liệu thành 16 từ mã 32-bit (512-bit)  Khởi tạo bộ đệm MD  Xử lý bản tin theo khối 16 từ mã  Xuất mã MD5

 Có thể bẻ khóa bằng tấn công Brute Force

© 2011, Vietnam­Korea Friendship IT College

Secure Hash Algorithm-1 (SHA-1)

 SHA-1 tương tự như MD5 nhưng độ dài của giá trị băm là 160 bit  có độ bảo mật cao hơn MD5, khó bị bẻ khóa bởi Brute Force

 Dữ liệu vào được nhóm thành khối 16 từ mã 32-bit dạng

 Dữ liệu khối 512-bit được đưa vào xử lý tuần tự B1,, B2,

…..

Hex (khối 512-bit)  dữ liệu ra 160 bit

Bn

 Việc tính toán được thực hiện trên 80 từ mã W0, W1, …, W79 được đưa vào 2 bộ đệm có kích thước 5 từ mã  Bộ đệm 1: A, B, C, D, E  Bộ đệm 2: H0, H1 , H2, H3 , H4

B3,

© 2011, Vietnam­Korea Friendship IT College

Secure Hash Algorithm-1 (SHA-1)

 Từ mã W16 – W79 được tính như sau:

 Quá trình tính toán xuất ra từ mã SHA – 160 bit: H0 H1 H2 H3 H4  Ví dụ

Plaintext: viethan viethan SHA­1: 61223A9F54B6AA8D15F93D1E04E8ADC225F2E9DC

© 2011, Vietnam­Korea Friendship IT College

Secure Hash Algorithm-2 (SHA-2)

 Các phiên bản của SHA-1  Độ dài của giá trị băm: 256, 348 và 512

 SHA-2 256  SHA-2 348  SHA-2 512

© 2011, Vietnam­Korea Friendship IT College

Các giải thuật mã hóa

 Giải thuật mã hóa đồng bộ/đối xứng (Symmetric)  Sử dụng cùng một khóa để mã hóa và giải mã  Sơ đồ mã hóa là một

song ánh

(cid:0)

Mm Kk

plaintexts keys

(cid:0)

E

encryption   function

k

→ C→ →  C, m E(k,m) E = K x M  Ek: M

E

D

:

decryption   function

1(cid:0) k

k

C

ciphertext s

(cid:0)

© 2011, Vietnam­Korea Friendship IT College

Các giải thuật mã hóa  Giải thuật mã hóa đồng bộ/đối xứng (Symmetric)

 Đặc điểm:

 Tốc độ mã hóa nhanh, phù hợp với dữ liệu dung lượng lớn  Quá trình trao đổi khóa không an toàn

 Các loại

 DES (Data Encryption Standard): 56 bit key / 64 bit plaintext  3DES (Triple DES): 168 bit key  AES (Advanced Encryption Standard): 128, 192, 256 bit key  Vernam’s One-time pad: khóa thay đổi “giả ngẫu nhiên”

 Có thể bẻ khóa bằng tấn công vét cạn (Brute Force)

© 2011, Vietnam­Korea Friendship IT College

Data Encryption Standard (DES)  Sơ đồ mã hóa

 Nếu khóa k được chọn, ta có

 Quá trình mã hóa gồm 16 bước (round), mỗi bước sử

dụng 1 key 48-bit (round key), bản tin được chia thành 2 khối 32-bit

© 2011, Vietnam­Korea Friendship IT College

Data Encryption Standard (DES)

 Cứ sau mỗi round, khối 32-bit được hoán vị cho đến

 Đặc điểm

 Tốc độ mã hóa nhanh, được sử dụng rộng rãi  Khóa có thể bị dò tìm bằng cách thử tất cả các tổ hợp có

thể có của khóa

56

round cuối cùng thì xuất mã DES

(cid:0)

k DES

n

)1,0( mk ,(

)

,..,1

i

ic , i

(cid:0) (cid:0)

© 2011, Vietnam­Korea Friendship IT College

Triple DES (3-DES)

 Là một phiên bản của DES  Sử dụng 2-3 khóa thay vì 1 khóa đối với DES và mã hóa

liên tục 3 lần

© 2011, Vietnam­Korea Friendship IT College

Advanced Encryption Standard (AES)  Xử lý khối dữ liệu 128-bit  Sử dụng 03 loại khóa 128, 192, 256-bit

 AES-128  AES-192  AES-256

 Đối với AES-128, mã hóa được thực hiện qua 10 round sử dụng thuật toán Rijdael xuất mã AES 128 bit

© 2011, Vietnam­Korea Friendship IT College

Các giải thuật mã hóa

 Giải thuật mã hóa không đồng bộ/không đối xứng

 Khóa bí mật (Private key): giữ riêng  Khóa công khai (Public key): đưa ra công cộng

Public Key

Public Key

`

`

Private Key

Private Key

PC

(Asymmetric)  Khóa dùng để mã hóa và giải mã là khác nhau  Có 2 loại khóa

© 2011, Vietnam­Korea Friendship IT College

Các giải thuật mã hóa

 Giải thuật mã hóa không đồng bộ/không đối

xứng (tt)  Các giải thuật

 RSA (Ron Rivest, Adi Shamir, and Leonard

 DSA (Digital Signature Standard)  Diffie-Hellman (W.Diffie and Dr.M.E.Hellman)

 Ý nghĩa thực tiễn

 Mã hóa  Chữ ký điện tử

Adleman)

© 2011, Vietnam­Korea Friendship IT College

RSA

 Tạo khóa (Public/Private) RSA theo thuật toán

(số nguyên tố)

sau:  Chọn 2 số nguyên tố (bí mật) p và q  Tính tích n = p*q  Tính giá trị E = (p-1)*(q-1)  Chọn khóa chung (public) kp  Tính khóa riêng kr sao cho: E mod (kp*kr) =1  Mã hóa bản tin C = mkr mod n  Giải mã tín hiệu nhận được = mkp mod n

© 2011, Vietnam­Korea Friendship IT College

Công cụ

 PGP Desktop  TrueCrypt  GPG

© 2011, Vietnam­Korea Friendship IT College

Thực hành

 Mã hóa file dữ liệu bằng PGP

 Tìm kiếm trên Internet ứng dụng sau và cài vào

máy:

 Mã hóa một file dữ liệu (kích thước nhỏ ~ vài

trăm KB)

 Gửi kết quả đến: trantheson@mic.gov.vn

PGP Desktop  PGP Desktop

© 2011, Vietnam­Korea Friendship IT College

trantheson@mic.gov.vn

 Mã hóa nội dung email

 1-Cài đặt ThunderBird ThunderBird  2-Cài đặt Enigmail Enigmail (add-on) tải về tại

http://enigmail.mozdev.org  3-Tạo khóa (RSA hoặc DES)  4-Gửi một email với nội dung đã được mã hóa  5-Xuất key và gửi đến người nhận  6-Giải mã nội dung email

© 2011, Vietnam­Korea Friendship IT College

Thực hành

 Mã hóa MD5 trong PHP  Mã hóa DES  Mã hóa RSA

 Tạo form nhập chuỗi bất kỳ  Mã hóa MD5, DES, RSA  Xuất dữ liệu

© 2011, Vietnam­Korea Friendship IT College

Chữ ký số

Licensing site

© 2011, Vietnam­Korea Friendship IT College

Chữ ký số

 Chữ ký số (chương III, mục 1, điều 21, Luật giao dịch

 “Chữ ký số được tạo lập dưới dạng từ, chữ, số, ký hiệu, âm thanh hoặc các hình thức khác bằng phương tiện điện tử, gắn liền hoặc kết hợp một cách lôgic với thông điệp dữ liệu, có khả năng xác nhận người ký thông điệp dữ liệu và xác nhận sự chấp thuận của người đó đối với nội dung thông điệp dữ liệu được ký.

 Chữ ký số có thể được chứng thực bởi một tổ chức cung

điện tử)

cấp dịch vụ chứng thực chữ ký.”

© 2011, Vietnam­Korea Friendship IT College

Chữ ký số

 Chữ ký điện tử : Digital Signature  Là một phương pháp chứng thực thông tin sử dụng kỹ

Gửi đến nơi nhận

Thông tin ….. …...

Thông tin ….. …...

Hàm băm (MD5/SHA)

Hàm băm (MD5/SHA)

Checksum

Checksum

Gửi đến nơi nhận

Mã hóa

Giải mã

So sánh

Khóa chung

Khóa riêng

thuật mã hóa

© 2011, Vietnam­Korea Friendship IT College

Chứng chỉ số

 Certificate Authority - CA

© 2011, Vietnam­Korea Friendship IT College

PKI

 PKI – Public Key Infrastructure

 PKI là cấu trúc nền tảng của mã hóa không đối

xứng, nó không định nghĩa các công nghệ cụ thể.

 Việc thực hiện PKI là khác nhau, phụ thuộc vào

các công nghệ sử dụng

 Khái niệm hạ tầng khóa công khai (PKI) thường được dùng để chỉ toàn bộ hệ thống bao gồm nhà cung cấp chứng thực số (CA) cùng các cơ chế liên quan đồng thời với toàn bộ việc sử dụng các thuật toán mật mã hóa khóa công khai trong trao đổi thông tin.

© 2011, Vietnam­Korea Friendship IT College

PKI

 Các thành phần của PKI

 Certificate Authority – CA: là bên thứ 3 đứng ra

 Digital Certificate: chứng chỉ số  Certificate Policy  Certificate Pratice Statement - CPS

nhận trách nhiệm cung cấp, thu hồi và phân phối khóa

© 2011, Vietnam­Korea Friendship IT College

PKI

 Certificate Authority (CA) và Digital Certificate

Digital Certificate

Internet

`

Certificate Authority

Information and Public Key

© 2011, Vietnam­Korea Friendship IT College

PKI

 Certificate Policy: mỗi một CA sẽ có chính sách

tạo, sử dụng Certificate khác nhau

 Certificate Practice Statement (CPS): nội dung cụ

thể của Certificate Policy

Ceritficate Authority

Certificate Policies

© 2011, Vietnam­Korea Friendship IT College

PKI

 Mô hình tin cậy (trust model)

Hierarchical

 Single  Peer-to-Peer  Hierarchial

CA

Peer – to - Peer

Single CA

CA

CA

CA - 2

CA - 1

CA

`

`

`

`

` User 3

User 1

User 2

` User 3

`

`

User 1

User 2

© 2011, Vietnam­Korea Friendship IT College

PKI

 Quản lý khóa

 Tạo khóa: tập trung và phân tán  Lưu trữ và phân phối khóa  Bàn giao khóa  Hạn dùng  Thu hồi khóa  Đình chỉ sử dụng khóa  Phục hồi khóa  Sử dụng lại khóa  Hủy khóa

© 2011, Vietnam­Korea Friendship IT College

Tiêu chuẩn và giao thức mã hóa

 Nguồn gốc của các tiêu chuẩn và giao thức mã hóa

 Từ các tổ chức của chính phủ và quân đội

 NSA (National Security Agency)  NIST (National Institute of Standards and Technology)

 Từ các hiệp hội

 IETF (Internet Engineering Task Force)  IEEE (Institute of Electrical and Electroncis Engineers)  W3C (World Wide Web Consortium)

 Từ các tổ chức công cộng

 PGP (Pretty Good Privacy)  RSA (Rivest, Shamir, and Adelman)

© 2011, Vietnam­Korea Friendship IT College

Tiêu chuẩn và giao thức mã hóa

 PKIX/PKCS

 PKIX (Public Key Infrastructure X.509) – các tiêu

chuẩn của IETF

 PKCS (Public Key Cryptography Standards) – tập

hợp các tiêu chuẩn của RSA

 X.509

 Định nghĩa cấu trúc và các trường trong khóa

công khai (Public key)

 Định nghĩa thủ tục phân phối khóa

© 2011, Vietnam­Korea Friendship IT College

Tiêu chuẩn và giao thức mã hóa

 SSL (Secure Socket Layer) và TLS (Transport

Connection Request

Secure Connection Needed

Security Capabilities

SSL Connection Established

`

Layer Security)  Mã hóa  Chứng thực  Đảm bảo tính toàn vẹn  TLS dựa trên SSL, tăng cường mã hóa, nhưng

Application Server

không tương thích với SSL

Session Establishment

Public Key

Public Key

Cryptography/Key Exchange

TLS Session Established

`

Private Key

Private Key

PC

Application Server

© 2011, Vietnam­Korea Friendship IT College

Tiêu chuẩn và giao thức mã hóa

 CMP (Certificate Management Protocols)

 Giao thức quản lý giao tiếp trong sử dụng khóa

 S/MIME (Secure Multipurpose Internet Mail

Extensions)  Tiêu chuẩn dùng để mã hóa e-mail

`

SMTP

Public Key

`

Internet

`

Private Key

`

User

© 2011, Vietnam­Korea Friendship IT College

Tiêu chuẩn và giao thức mã hóa

 SET (Secure Electronic Transaction)

 Chuẩn dùng để mã hóa thông tin của các thẻ tín

dụng

 SSH (Secure Shell)

 Sử dụng trong các ứng dụng terminal thay thế

cho telnet, rlogin, remote

Internet

`

User

Server

© 2011, Vietnam­Korea Friendship IT College

Tiêu chuẩn và giao thức mã hóa

 PGP (Pretty Good Privacy)  Chuẩn mã hóa e-mail  Miễn phí  Sử dụng cơ chế mã hóa không đồng bộ

 HTTPS (HTTP Secure)

 Sử dụng SSL  Giao tiếp qua cổng 443

Private Key

Private Key

Internet

`

User

Server

© 2011, Vietnam­Korea Friendship IT College

Tiêu chuẩn và giao thức mã hóa  S-HTTP (Secure HTTP)

 Có thể sử dụng nhiều phương pháp mã hóa khác

nhau

 Sử dụng cổng 443

 IPSec (Internet Protocol Security)

 Sử dụng trong mạng riêng ảo VPN  Dùng 2 giao thức

 AH (Authentication Header): chứng thực, toàn vẹn  ESP (Encapsulating Security Payload): chứng

thực, toàn vẹn, mã hóa

© 2011, Vietnam­Korea Friendship IT College

Tiêu chuẩn và giao thức mã hóa  IPSec (tt)

`

`

`

`

Internet

IPSec

Intranet ABC

Intranet XYZ

© 2011, Vietnam­Korea Friendship IT College

Tiêu chuẩn và giao thức mã hóa  CC – Common Criteria

 Tập các tiêu chuẩn quốc tế dùng để đánh giá hệ

thống

 WTLS (Wireless Transport Layer Security)

 Cung cấp chứng thực và kết nối mã hóa giữa

Client và Server trong hệ thống mạng không dây

 WEP (Wired Equivalent Privacy)

 Giao thức mã hóa cho các thiết bị không dây, đảm bảo hoạt động như các thiết bị có dây

 ISO 17799

 Tiêu chuẩn quốc tế về an toàn bảo mật thông tin

© 2011, Vietnam­Korea Friendship IT College

Thực hành

 Triển khai CA ứng dụng chữ ký điện tử cho

dịch vụ email, mã hóa nội dung email

© 2011, Vietnam­Korea Friendship IT College

Triển khai CA

 Yêu cầu: gmail, CD Win2k3  Tiến hành:

 Cài đặt email POP3 (gmail) trên máy người dùng

 Gmail:

pop.gmail.com (port: 995, SSL) smtp.gmail.com (port: 465, SSL)

 Incomming: pop.gmail.com  Outgoing: smtp.gmail.com

 Cài đặt IIS  Cài đặt CA (Certificate Service)  User đăng ký, CA cấp phát chứng chỉ  User cài đặt chứng chỉ  Gắn chữ ký số  Mã hóa e-mail

© 2011, Vietnam­Korea Friendship IT College

Trantheson@mic.gov.vn

 Bật trình duyệt web IE http://localhost/certsrv  Đ/c: http://localhost/certsrv  Tìm đến mục: Request Certificate

 Điền các thông tin vào Form của CA gửi về

http://localhost/certsrv để tải

Tìm đến mục: Request Certificate  gửi yêu cầu gửi yêu cầu cấp chứng chỉ cấp chứng chỉ Điền các thông tin vào Form của CA gửi về  Submit để gửi y/c Submit để gửi y/c Vào CA server để cấp phát chứng chỉ số  Vào CA server để cấp phát chứng chỉ số Đăng nhập vào http://localhost/certsrv  Đăng nhập vào chứng chỉ về

© 2011, Vietnam­Korea Friendship IT College

 Chọn View status of pending certificate  Chọn Email Protection Certificate  Chọn Install  cài đặt vào máy tính

© 2011, Vietnam­Korea Friendship IT College

Thảo luận

 Mã hóa: MD5(1), SHA-2(2), AES(3), RSA(4): mô

tả thuật toán (lưu đồ), viết chương trình mô phỏng thuật toán (C#, PHP,…)

 PKI:

 PGP(1,3): mã hóa email, thư mục, phân vùng  CA(2,4): mã hóa email, cấp chứng chỉ số

© 2011, Vietnam­Korea Friendship IT College