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, VietnamKorea 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, VietnamKorea 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, VietnamKorea 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, VietnamKorea Friendship IT College
Khái niệm về mã hóa
Block Cipher
ụ Ví d : mã
DES, SHA1
© 2011, VietnamKorea 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, VietnamKorea 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, VietnamKorea 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, VietnamKorea 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, VietnamKorea 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, VietnamKorea 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 SHA1: 61223A9F54B6AA8D15F93D1E04E8ADC225F2E9DC
© 2011, VietnamKorea 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, VietnamKorea 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, VietnamKorea 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, VietnamKorea 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, VietnamKorea 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, VietnamKorea 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, VietnamKorea 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, VietnamKorea 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, VietnamKorea 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, VietnamKorea 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, VietnamKorea Friendship IT College
Công cụ
PGP Desktop TrueCrypt GPG
© 2011, VietnamKorea 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, VietnamKorea 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, VietnamKorea 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, VietnamKorea Friendship IT College
Chữ ký số
Licensing site
© 2011, VietnamKorea 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, VietnamKorea 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, VietnamKorea Friendship IT College
Chứng chỉ số
Certificate Authority - CA
© 2011, VietnamKorea 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, VietnamKorea 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, VietnamKorea Friendship IT College
PKI
Certificate Authority (CA) và Digital Certificate
Digital Certificate
Internet
`
Certificate Authority
Information and Public Key
© 2011, VietnamKorea 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, VietnamKorea 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, VietnamKorea 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, VietnamKorea 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, VietnamKorea 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, VietnamKorea 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, VietnamKorea 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, VietnamKorea 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, VietnamKorea 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, VietnamKorea 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, VietnamKorea Friendship IT College
Tiêu chuẩn và giao thức mã hóa IPSec (tt)
`
`
`
`
Internet
IPSec
Intranet ABC
Intranet XYZ
© 2011, VietnamKorea 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, VietnamKorea 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, VietnamKorea 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, VietnamKorea 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, VietnamKorea 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, VietnamKorea 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, VietnamKorea Friendship IT College