Giới thiệu

Như đã nghiên cứu trước đó, tính bảo mật, tính toàn vẹn và tính khả dụng là ba thành phần cơ bản để xây dựng và duy trì mô hình bảo mật. Chúng ta phải biết các phương pháp khác nhau có thể triển khai từng tính năng này.

Ví dụ bằng cách sử dụng mã hóa, có thể đảm bảo rằng chỉ người gửi và người nhận mới có thể đọc dữ liệu văn bản rõ ràng. Bất kỳ ai ở giữa hai nút đều cần biết khóa để giải mã dữ liệu. Tương tự, băm được sử dụng để đảm bảo tính toàn vẹn của dữ liệu.

Phần này giải thích các khái niệm và phương pháp khác nhau mà chúng ta có thể triển khai mã hóa và băm trong mạng của mình. Một số thuật ngữ cần được giải thích trước khi chuyển sang chương trình chính của phần này.


Khái niệm

Mật mã học

Cryptography là một kỹ thuật mã hóa dữ liệu văn bản rõ ràng thành một mã xáo trộn. Dữ liệu được mã hóa này được gửi qua mạng công cộng hoặc riêng tư đến đích để đảm bảo tính bảo mật. Dữ liệu được mã hóa gọi là “Ciphertext” được giải mã tại điểm đến để xử lý.

Các khóa mã hóa mạnh được sử dụng để tránh bẻ khóa. Mục tiêu của mật mã không phải là tất cả về tính bảo mật, mà còn liên quan đến tính toàn vẹn, xác thực và không từ chối.

Các loại mật mã

Symmetric Cryptography

Mật mã khóa đối xứng là kỹ thuật mật mã lâu đời nhất và được sử dụng rộng rãi nhất trong lĩnh vực mật mã. Mật mã đối xứng sử dụng cùng một khóa bí mật để mã hóa và giải mã dữ liệu. Mật mã đối xứng được sử dụng rộng rãi nhất là AES DES.

Asymmetric Cryptography/Public Key Cryptography

Mã hoá không đối xứng, hai khoá được sử dụng. Một khóa được biết một cách công khai trong khi một khóa được giữ bí mật và được người gửi sử dụng để mã hóa dữ liệu, do đó nó còn được gọi là mật mã Khóa công khai.

Mỗi người gửi sử dụng khóa bí mật (còn được gọi là khóa riêng) để mã hóa dữ liệu của mình trước khi gửi. Người nhận sử dụng khóa công khai tương ứng của người gửi để giải mã dữ liệu. Thuật toán RSA, DSA Diffie-Hellman là những ví dụ phổ biến về mật mã không đối xứng.

Mật mã khóa bất đối xứng mang lại tính Bảo mật, tính toàn vẹn, tính xác thực và Không từ chối bằng cách sử dụng khái niệm khóa Công khai và Riêng tư. Khóa riêng tư chỉ được biết bởi chính chủ sở hữu.

Trong khi đó, Khóa công khai được cấp bằng cách sử dụng Cơ sở hạ tầng khóa công khai (PKI) trong đó Cơ quan cấp chứng chỉ đáng tin cậy (CA) chứng nhận quyền sở hữu của các cặp khóa.

Government Access to Keys (GAK)

Quyền truy cập của Chính phủ vào khóa (GAK) đề cập đến thỏa thuận giữa chính phủ và các công ty phần mềm. Tất cả hoặc các chìa khóa cần thiết được giao cho một tổ chức chính phủ giữ nó một cách an toàn và chỉ sử dụng chúng khi tòa án ra lệnh làm như vậy.


Thuật toán mã hóa

Ciphers

Mật mã là một tập hợp các quy tắc mà chúng ta thực hiện mã hóa. Hàng ngàn thuật toán mật mã có sẵn trên internet. Một số trong đó là độc quyền trong khi những cái khác là nguồn mở. Các phương pháp phổ biến mà mật mã thay thế dữ liệu gốc bằng dữ liệu được mã hóa là:

Substitution

Trong phương pháp này, mọi ký tự dữ liệu được thay thế bằng một ký tự khác. Một ví dụ rất đơn giản về vấn đề này là thay thế ký tự bằng cách chuyển nó lên trước nó ba ký tự. Do đó, “D” sẽ thay thế “A”, v.v.

Để làm cho nó phức tạp hơn, chúng ta có thể chọn một số chữ cái nhất định để thay thế trong toàn bộ văn bản. Trong ví dụ này, giá trị của khóa là 3 và cả hai nút phải biết điều đó nếu không chúng sẽ không thể giải mã dữ liệu.

Polyalphabetic

Phương pháp này làm cho substitution thậm chí khó bị phá vỡ hơn bằng cách sử dụng nhiều ký tự thay thế.

Keys

Trong ví dụ về thay thế ở trên, chúng tôi đã sử dụng khóa “ba”, Khóa đóng vai trò chính trong mọi thuật toán mật mã. Nếu không biết khóa, dữ liệu không thể được giải mã.

Stream Cipher

Một loại mật mã khóa đối xứng mã hóa từng văn bản thuần túy. Có nhiều loại mật mã nguồn như đồng bộ, không đồng bộ. RC4 là kiểu thiết kế mật mã nguồn phổ biến nhất. Sự chuyển đổi của đầu ra được mã hóa thay đổi trong chu kỳ mã hóa.

Block Cipher

Một loại mật mã khóa đối xứng mã hóa văn bản thuần túy trên độ dài cố định của nhóm. Việc chuyển đổi dữ liệu được mã hóa không khác nhau trong một mật mã khối. Nó mã hóa khối dữ liệu bằng cách sử dụng cùng một khóa trên mỗi khối. DES AES là những kiểu mật mã khối phổ biến.

Data Encryption Standard (DES)

Data Encryption Algorithm (DES) là một thuật toán khóa đối xứng được sử dụng để mã hóa, nhưng hiện nay, nó được coi là không an toàn, tuy nhiên những thuật toán kế nhiệm như Triple DES, G-DES đã thay thế nó. DES sử dụng Khóa 56-bit quá nhỏ để bảo vệ dữ liệu nó có.

Thuật toán DES bao gồm 16 vòng xử lý dữ liệu với 16 khóa vòng trung gian 48 bit được tạo từ khóa mật mã 56 bit bởi Bộ tạo khóa vòng. Tương tự, mật mã đảo ngược DES tính toán dữ liệu ở định dạng văn bản rõ ràng từ văn bản mật mã bằng cách sử dụng cùng một khóa Mật mã.

Advanced Encryption Standard (AES)

Khi DES trở nên không an toàn và việc thực hiện mã hóa DES ba lần (3-DES hoặc Triple-DES) đòi hỏi thời gian và tính toán lâu, cần có một thuật toán mã hóa khác an toàn và hiệu quả hơn. Rijndael phát hành một thuật toán mới vào năm 2000-2001 được gọi là Advanced Encryption Algorithm (AES).

AES cũng là một thuật toán đối xứng khóa riêng nhưng mạnh hơn và nhanh hơn Triple-DES. Nó có thể mã hóa dữ liệu 128 bit với khóa 128/192/256 bit.

Để hiểu thuật toán AES, hãy xem xét kịch bản AES 128 bit. Trong AES-128, sẽ có 10 vòng. 9 vòng ban đầu thực hiện cùng một bước, tức là thay thế các byte, dịch chuyển hoặc hàng, trộn các cột và thêm khoá vòng. Vòng cuối cùng chỉ Thay thế byte, dịch chuyển hoặc hàng và thêm khoá vòng.

RC4, RC5, RC6 Algorithms

RC4 là một kỹ thuật mã hóa cũ hơn được Ron Rivest thiết kế vào năm 1987 dựa trên mật mã nguồn. Nó được sử dụng trong giao thức SSL, WEP.

RC4 tạo ra một nguồn giả ngẫu nhiên sử dụng để mã hóa văn bản thuần túy bằng bit-wise OR độc quyền (tương tự mật mã Vernam ngoại trừ các bit giả ngẫu nhiên đó). Tương tự, quá trình giải mã cũng hoạt động đối xứng. Trong thuật toán RC4, Vectơ khởi tạo 24-bit (IV) tạo ra khóa 40 hoặc 128-bit.

RC5 là một Mật mã khối khóa đối xứng được giới thiệu vào năm 1994. Nó có kích thước khối thay đổi (32, 64 hoặc 128 bit), kích thước khóa từ 0 đến 2040 bit và 0 đến 255 vòng. RC5 được đề xuất với kích thước khối 64 bit, khóa 128 bit và 12 vòng. Nó cũng bao gồm một số bổ sung mô-đun và OR (XOR) độc quyền.

RC6 cũng là một mật mã khối Đối xứng nguồn gốc từ RC5 có kích thước khối 128-bit với hỗ trợ khóa 128, 192, 256 lên đến 2040-bit. RC6 rất giống RC5 về cấu trúc, sử dụng phép quay phụ thuộc vào dữ liệu, phép cộng mô-đun và phép toán XOR. RC6 không sử dụng phép toán nhân bổ sung trong RC5 để làm cho phép quay phụ thuộc.

DSA và các lược đồ chữ ký liên quan

Sử dụng khái niệm cơ bản về chữ ký mà chúng ta sử dụng trong cuộc sống hàng ngày để chứng minh tính xác thực và nguồn gốc thực tế của tài liệu, trong mạng máy tính, Thuật toán Chữ ký Số (DSA) được sử dụng.

Chữ ký số có thể cung cấp ba thành phần của bảo mật mạng, tức là Tính xác thực của tin nhắn, Tính toàn vẹn của tin nhắn và Tính không từ chối. Chữ ký điện tử không thể cung cấp tính bảo mật của giao tiếp. Tuy nhiên, nó có thể đạt được bằng cách sử dụng mã hóa tin nhắn và chữ ký.

Chữ ký số sử dụng Khóa công khai để ký và xác minh các gói tin. Việc ký tài liệu yêu cầu khóa cá nhân trong khi Xác minh yêu cầu khóa Công khai. Người gửi tin nhắn đã ký bằng khóa riêng của nó và gửi nó đến người nhận.

Người nhận xác minh tính xác thực của tin nhắn bằng cách giải mã gói tin bằng khóa công khai của người gửi. Vì khóa công khai của người gửi chỉ giải mã thư nên nó xác minh người gửi thư đó.

Tính toàn vẹn của một thư được bảo toàn bằng cách ký vào toàn bộ thư. Nếu bất kỳ nội dung nào của tin nhắn bị thay đổi, nó sẽ không có được chữ ký giống nhau. Tính toàn vẹn là ký và xác minh thông báo thu được bằng cách sử dụng Hàm băm.

Chứng thư số chứa các mục khác nhau được liệt kê bên dưới:

  • Subject: Tên người được cấp chứng chỉ
  • Serial Number: Số duy nhất để nhận dạng chứng chỉ
  • Public Key: Bản sao công khai của người được cấp chứng chỉ
  • Issuer: Chữ ký số của cơ quan cấp chứng chỉ để xác minh rằng chứng chỉ là thật
  • Signature Algorithm: Thuật toán được sử dụng để ký kỹ thuật số chứng chỉ bởi Tổ chức cấp chứng chỉ (CA)
  • Validity: Hiệu lực của chứng chỉ hay có thể nói ngày và giờ hết hạn của chứng chỉ

Chứng chỉ kỹ thuật số có phiên bản X.509 được hỗ trợ định dạng và đó là định dạng tiêu chuẩn.

RSA (Rivest Shamir Adleman)

Thuật toán này được đặt theo tên của những người tạo ra nó, đó là Ron Rivest, Adi Shamir và Leonard Adleman. Còn được gọi là tiêu chuẩn mật mã khóa công khai (PKCS) #1, mục đích chính của việc sử dụng nó ngày nay là xác thực. Độ dài khóa thay đổi từ 512 đến 2048 với 1024 được ưu tiên hơn. RSA là một trong những tiêu chuẩn mã hóa phi thực tế.

Lược đồ Chữ ký RSA

  1. Cần có hai số nguyên tố rất lớn “p” và “q”.
  2. Nhân hai số nguyên tố trên để tìm n, môđun của mã hóa và giải mã. Nói cách khác, n = p * q.
  3. Tính φ = (p -1) * (q – 1).
  4. Chọn một số nguyên ngẫu nhiên “e” tức là Khóa mã hóa và tính Khóa giải mã “d” sao cho d x e = 1 mod φ.
  5. Thông báo “e” và “n” công khai, anh ta giữ bí mật “φ” và “d”.

Message Digest (One-way Hash) Functions

Tóm lược thông điệp là một kỹ thuật băm mật mã được sử dụng để đảm bảo tính toàn vẹn của thông báo. Tin nhắn và bản tóm tắt tin nhắn có thể được gửi cùng nhau hoặc riêng biệt thông qua một kênh liên lạc.

Người nhận tính toán lại băm của thông báo và so sánh nó với thông báo tóm tắt để đảm bảo có bất kỳ thay đổi nào được thực hiện hay không. Thông báo One-WayHash of Message có nghĩa là hàm băm phải là hoạt động một chiều.

Tin nhắn gốc không được tạo lại. Tóm tắt thông báo là một chuỗi bit có kích thước cố định duy nhất được tính toán theo cách mà nếu một bit duy nhất bị sửa đổi, nó sẽ thay đổi 50% giá trị thông báo tóm tắt.

Message Digest Function: MD5

Thuật toán MD5 là một thuật toán trong chuỗi Thông báo tóm tắt. MD5 tạo ra một giá trị băm 128 bit được sử dụng tính tổng để xác minh tính toàn vẹn. Băm là kỹ thuật để đảm bảo tính toàn vẹn.

Giá trị băm được tính toán bằng các thuật toán cụ thể để xác minh tính toàn vẹn mà dữ liệu không bị sửa đổi. Giá trị băm đóng một vai trò quan trọng trong việc chứng minh tính toàn vẹn không chỉ của tài liệu, hình ảnh mà còn được sử dụng trong các giao thức để đảm bảo tính toàn vẹn của việc vận chuyển trọng tải.

Secure Hashing Algorithm (SHA)

As Message Digest 5 (MD5) là một thuật toán băm mật mã, một thuật toán băm phổ biến khác, an toàn hơn và được sử dụng rộng rãi là Secure Hashing Algorithm (SHA).

SHA-1 là một thuật toán băm an toàn tạo ra giá trị băm 160 bit so với MD5 tạo ra giá trị 128 bit. Tuy nhiên, thuật toán băm SHA-2 thậm chí còn an toàn hơn, mạnh mẽ hơn và an toàn hơn.

Syntax: The password is 12345
SHA-1: 567c552b6b559eb6373ce55a43326ba3db92dcbf

Secure Hash Algorithm 2 (SHA-2)

SHA2 có tùy chọn để thay đổi thông báo từ 224 bit đến 512 bit. SHA-2 là một nhóm các hàm băm khác nhau bao gồm SHA-256, SHA-384SHA 512. Thuật toán mật mã mạnh hơn sẽ giảm thiểu khả năng bị xâm phạm.

SHA-256

Syntax: The password is 12345
SHA-256: 5da923a6598f034d91f375f73143b2b2f58be8a1c9417886d5966968b7f79674

SHA-384

Syntax: The password is 12345
SHA-384:
 929f4c12885cb73d05b90dc825f70c2de64ea721e15587deb34309991f6d57114500465243ba
08a554f8fe7c8dbbca04

SHA-512

Syntax: The password is 12345
SHA-512:
 1d967a52ceb738316e85d94439dbb112dbcb8b7277885b76c849a80905ab370dc11d2b84dc
c88d61393117de483a950ee253fba0d26b5b168744b94af2958145

Hashed Message Authentication Code (HMAC)

HMAC sử dụng cơ chế băm, nhưng nó bổ sung thêm một tính năng khác là sử dụng khóa bí mật trong hoạt động của nó. Cả hai đồng nghiệp chỉ biết khóa bí mật này. Do đó, trong trường hợp này, chỉ các bên có khóa bí mật mới có thể tính toán và xác minh băm.

Bằng cách sử dụng HMAC, nếu có kẻ tấn công đang nghe trộm, kẻ tấn công sẽ không thể đưa hoặc sửa đổi dữ liệu và tính toán lại hàm băm chính xác vì kẻ đó sẽ không biết khóa chính xác được sử dụng.

SSH (Secure Shell)

Giao thức Secure Shell, thường được gọi là SSH là một giao thức được sử dụng cho các kết nối từ xa an toàn. Nó là một giải pháp thay thế an toàn cho các giao thức không an toàn như Telnet, rlogin FTP.

SSH không chỉ được sử dụng để đăng nhập từ xa mà còn với các giao thức khác như Giao thức truyền tệp (FTP), Giao thức sao chép an toàn (SCP). SFTP (Giao thức truyền tệp SSH) được sử dụng phổ biến để truyền tệp an toàn vì nó chạy qua SSH.

Giao thức SSH hoạt động trên kiến trúc client-server trong đó máy khách SSH kết nối với máy chủ SSH thông qua kênh SSH an toàn qua mạng không an toàn.

Giao thức SSH bao gồm 3 thành phần chính:

  • Giao thức lớp truyền tải [SSH-TRANS] cung cấp xác thực máy chủ, tính bảo mật và tính toàn vẹn. Nó cũng có thể cung cấp tính năng nén tùy chọn. Lớp truyền tải thường sẽ được chạy qua kết nối TCP/IP, nhưng cũng có thể được sử dụng trên bất kỳ luồng dữ liệu đáng tin cậy nào khác.
  • Giao thức xác thực người dùng [SSH-USERAUTH] xác thực người dùng phía máy khách với máy chủ. Nó chạy trên giao thức lớp truyền tải.
  • Giao thức kết nối [SSH-CONNECT] ghép đường hầm được mã hóa thành một số kênh logic. Nó chạy qua giao thức xác thực người dùng.

1 thoughts on “[CEH-Module 20] Phần 1: Cryptography – Khái niệm, Thuật toán

  1. Pingback: Giới thiệu về Certified Ethical Hacker v10 (Tiếng Việt) - CRF Blogger

Leave a Reply

This site uses cookies to offer you a better browsing experience. By browsing this website, you agree to our use of cookies.