Kỹ thuật về 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

ppt50 trang | Chia sẻ: mamamia | Lượt xem: 2260 | Lượt tải: 3download
Bạn đang xem trước 20 trang tài liệu Kỹ thuật về mã hóa, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
KỸ THUẬT MÃ HÓA Encryption 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 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 (confidentiality): dữ liệu không bị xem bởi “bên thứ 3” 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ừ (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 Khái niệm về mã hóa 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 tin sao cho chỉ có đối tượng sở hữu khóa giải mã mới có thể đọc được nội dung đã được mã hóa Stream Cipher Khái niệm về mã hóa Let us talk one to one a->1 b->2 c->3 d->4 e ->5 f ->6 g ->a h ->b . . y->s z->t F5n om n1fe ih5 ni ih5 1->a 2->b 3->c 4->d 5 ->d 6 ->f a ->g b ->h . . s->y t->z Let us talk one to one Stream cipher Ví dụ: mã RC4 Block Cipher Khái niệm về mã hóa Ví dụ: mã DES, SHA-1 Các giải thuật mã hóa Giải thuật băm (mã hóa 1 chiều: one-way encrypt) Một số giải thuật băm: MD5: tạo ra 128-bit checksum SHA: tạo ra 160-bit checksum 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 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 MD5: 6A6FAB2F8227790C0776019B9DF67C1F 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 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 Hex (khối 512-bit)  dữ liệu ra 160 bit Dữ liệu khối 512-bit được đưa vào xử lý tuần tự B1,, B2, B3,….. 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 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 SHA-1: 61223A9F54B6AA8D15F93D1E04E8ADC225F2E9DC 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 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 E = K x M → C Ek: M → C, m → E(k,m) 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) 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 Data Encryption Standard (DES) Cứ sau mỗi round, khối 32-bit được hoán vị cho đến round cuối cùng thì xuất mã DES Đặ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 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 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 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 (Asymmetric) Khóa dùng để mã hóa và giải mã là khác nhau Có 2 loại khóa Khóa bí mật (Private key): giữ riêng Khóa công khai (Public key): đưa ra công cộng 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 Adleman) 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ử RSA Tạo khóa (Public/Private) RSA theo thuật toán 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 (số nguyên tố) 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 Công cụ PGP Desktop TrueCrypt GPG 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: PGP Desktop 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 trantheson@mic.gov.vn Mã hóa nội dung email 1-Cài đặt ThunderBird 2-Cài đặt Enigmail (add-on) tải về tại 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 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 Chữ ký số Chữ ký số Chữ ký số (chương III, mục 1, điều 21, Luật giao dịch điện tử) “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 cấp dịch vụ chứng thực chữ ký.” 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ỹ thuật mã hóa Chứng chỉ số Certificate Authority - CA 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. PKI Các thành phần của PKI Certificate Authority – CA: là bên thứ 3 đứng ra nhận trách nhiệm cung cấp, thu hồi và phân phối khóa Digital Certificate: chứng chỉ số Certificate Policy Certificate Pratice Statement - CPS PKI Certificate Authority (CA) và Digital Certificate 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 PKI Mô hình tin cậy (trust model) Single Peer-to-Peer Hierarchial 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 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) 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 Tiêu chuẩn và giao thức mã hóa SSL (Secure Socket Layer) và TLS (Transport 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 không tương thích với SSL 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 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 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 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 Tiêu chuẩn và giao thức mã hóa IPSec (tt) 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 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 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: Incomming: pop.gmail.com (port: 995, SSL) Outgoing: smtp.gmail.com (port: 465, SSL) 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 Trantheson@mic.gov.vn Bật trình duyệt web IE Đ/c: Tìm đến mục: Request Certificate  gửi yêu cầu 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 Vào CA server để cấp phát chứng chỉ số Đăng nhập vào để tải chứng chỉ về Chọn View status of pending certificate Chọn Email Protection Certificate Chọn Install  cài đặt vào máy tính 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ố