CRYPTOGRAPHIC SYSTEMS (hệ thống mật mã) – Part 1


Trong phạm vi cục bộ, để bảo đảm an toàn cho hạ tầng mạng và thiết bị đầu cuối, chúng ta có thể dùng kết hợp nhiều tính năng, như: gia cường thiết bị (device hardening), điều khiển truy nhập (AAA access control), tường lửa (firewall), và triển khai hệ thống IPS. Nhưng data sẽ được bảo vệ như thế nào khi truyền qua mạng Internet công cộng ? Câu trả lời là sử dụng kỹ thuật mật mã.

Việc truyền thông an toàn có một yêu cầu là phải đảm bảo data không bị giả mạo, không bị thay đổi và gửi từ một nguồn tin cậy. Thêm nữa, nếu data bị đánh cắp thì không thể giải mã.

Nhiều hệ thống mạng hiện đại đảm bảo tính xác thực (authentication) với các giao thức như HMAC; đảm bảo tính toàn vẹn (integrity) bằng các thuật toán hàm băm (hash function) như MD, SHA; đảm bảo tính bí mật của dữ liệu bằng các thuật toán mã hóa đối xứng như DES, 3DES, AES, hoặc thuật toán mã hóa bất đối xứng như RSA và PKI.

Nhằm chuẩn bị kiến thức phục vụ cho các chuyên đề về VPN tiếp theo, loạt bài viết này sẽ trình bày một cách căn bản về mật mã học, bao gồm các nội dung chính như sau:

  • Cryptographic Services (Dịch vụ mật mã)
  • Integrity and Authenticity (Tính xác thực và Toàn vẹn)
  • Confidentiality (Mã hóa)
  • Public Key Cryptography (Mật mã khóa công khai)

Các thuật ngữ sử dụng trong bài viết:

  1. Cryptology: ngành khoa học làm ra và phân tích (giải) các đoạn mã bí mật
  2. Cryptography: mật mã học (phát triển và sử dụng mật mã)
  3. Cryptanalysis: phân tích mật mã
  4. Secret codes: mã bí mật
  5. Authentication: tính xác thực
  6. Integrity: tính toàn vẹn
  7. Confidentiality: tính bí mật
  8. Nonrepudiation: tính không chối bỏ
  9. Transposition: hoán vị
  10. Substitution: thay thế
  11. Plaintext/Cleartext: dữ liệu gốc (chưa mã hóa)
  12. Ciphertext: dữ liệu đã mã hóa
  13. Cipher: thuật toán/phép mã hóa
  14. Key: khóa
  15. Shared secret key: khóa bí mật được chia sẻ trước

Part 1 – Cryptographic Services

  • Truyền thông an toàn

Nhiệm vụ của nhà quản trị mạng là đảm bảo an toàn cho hạ tầng mạng (bao gồm các thiết bị router, switch, server, host) và đảm bảo dữ liệu được truyền an toàn trong phạm vị nội bộ cũng như ra bên ngoài.

Có 3 yêu cầu sau đối với việc truyền thông an toàn:

1.Authentication (tính xác thực): đảm bảo rằng dữ liệu không bị giả mạo và được gửi từ một nguồn có thể chứng minh. Ví dụ: việc sử dụng mã cá nhân PIN trong giao dịch tại ngân hang.

Chú ý sự khác nhau giữa “tính không chối bỏ” (nonrepudiation) với “tính xác thực”. Với dịch vụ nonrepudation, người gửi được xác định là duy nhất, kèm theo những đặc điểm riêng đính kèm theo dữ liệu và do đó không thể chối bỏ vai trò là nguồn truyền tin. Một ví dụ để phân biệt “tính xác thực” và “tính không chối bỏ” là sự trao đổi dữ liệu giữa 2 máy tính trong cùng công ty khác với sự trao đổi dữ liệu giữa một khách hàng với một e-commerce website. Trong cùng công ty, 2 máy tính khi trao đổi dữ liệu với nhau thì không cần các tham số chứng minh là nguồn truyền tin. Các bạn sẽ gặp lại tính chất nonrepudiation trong phần triển khai VPN với CA.

2.Integrity (tính toàn vẹn): tương tự như chức năng checksum trong đóng gói dữ liệu, đảm bảo dữ liệu không bị thay thế và sửa đổi. Ví dụ: việc gắn sáp lên phong bì thư.

3.Confidentiality (tính bí mật): đảm bảo rằng chỉ người nhận mới có thể đọc được dữ liệu và kẻ đánh cắp thì không giải mã được. Ví dụ: phương pháp mã hóa của Julius Caesar thực với nguyên tắc là chuyển vị trí các phần tử trong bảng chữ cái.

  • Mật mã học

Authentication, integrity, và confidentiality là các thành phần của mật mã học. Các thuật toán đặc biệt (còn gọi là cipher) được sử dụng để mã hóa và giải mã dữ liệu. Những phương pháp dùng để tạo ra dữ liệu được mã hóa (ciphertext) gồm có:

  • Transposition (hoán vị)
  • Substitution (thay thế)
  • Vernam
  • Transposition

Khi sử dụng thuật toán hoán vị, các chữ cái không bị thay thế mà đơn giản là chúng bị sắp xếp lại. Ví dụ: dữ liệu gốc (plaintext, cleartext) là “FLANK EAST ATTACK AT DAWN” được mã hóa thành “NWAD TAKCATTA TSAE KNALF”. Trong ví dụ này, chìa khóa (key) là đảo ngược ký tự.

Một ví dụ khác là thuật toán “rail fence”. Trong ví dụ này, key=3, nghĩa là dùng 3 đường thẳng khi thực hiện mã hóa. Chúng ta đọc văn bản theo đường chéo lên xuống, như sau:

F…K…T…A…T…N.

.L.N.E.S.A.T.C.A.D.W..

..A…A…T…K…A…

Một số thuật toán mã hóa hiện đại, như DES và 3DES vẫn kết hợp sử dụng phương pháp hoán vị.

  • Substitution

Ý tưởng của thuật toán là thay thế một ký tự này bằng một ký tự khác. Trong kiểu đơn giản nhất, thuật toán vẫn giữ nguyên trật tự của dữ liệu gốc.

Ví dụ 1: Caesar cipher

Với key=3, ký tự D sẽ thay thế cho ký tự A, E thay cho B …

Thuật toán Caesar dễ bị giải mã vì toàn bộ dữ liệu được mã hóa với cùng một key shift.

Ví dụ 2: Vigenere cipher

Thuật toán này dựa trên Caesar cipher, ngoại trừ việc sử dụng các key shift khác nhau. Các shift key này được xác định nhờ shared secret key (đã thống nhất trước giữa bên truyền và nhận). Dưới đây là Vigenere Cipher Table.

Giả sử shared secret key là: SECRETKEY. Bên truyền sẽ sử dụng key này để mã hóa plaintext “FLANK EAST ATTACK AT DAWN”, như sau:

  • Chữ F trong từ “FLANK” được mã hóa bằng ký tự X tại giao điểm của cột F và hàng S (SECRETKEY)
  • L (FLANK) được mã hóa bằng P tại giao điểm của cột L và hàng E (SECRETKEY)
  • A (FLANK) được mã hóa bằng C tại giao điểm của cột A và hàng C (SECRETKEY)
  • N (FLANK) được mã hóa bằng E tại giao điểm của cột N và hàng R (SECRETKEY)
  • K (FLANK) được mã hóa bằng O tại giao điểm của cột K và hàng E (SECRETKEY)

Và tiếp tục cho phần còn lại của dữ liệu. Khi sử dụng Vigenere cipher, nếu message dài hơn key, thì key sẽ dùng lặp lại. Ví dụ: SECRETKEYSECRETKEYSEC được sử dụng để mã hóa “FLANK EAST ATTACK AT DAWN”, như sau:

Secret key: SECRE TKEY SECRET KE YSEC

Plaintext: FLANK EAST ATTACK AT DAWN

Cipher text: XPCEO XKUR SXVRGD KX BSAP

 

Note: thuật toán này vẫn có thể crack.

 

  • Vernam

Gilbert Vernam là một kỹ sư làm việc tại phòng nghiên cứu AT&T Bell. Năm 1971, ông đã phát minh ra stream cipher và đồng phát minh ra thuật toán one-time pad (OTP).  Về lý thuyết, OTP là thuật toán duy nhất chứng minh được là không thể crack, ngay cả với tài nguyên vô tận (do đó có thể chống lại brute-force attack). Để đạt mức độ bảo mật, tất cả những điều kiện sau phải được thỏa mãn:

– Độ dài của chìa khóa phải đúng bằng độ dài văn bản cần mã hóa.

– Chìa khóa chỉ được dùng một lần.

– Chìa khóa phải là một số ngẫu nhiên thực.

  • Phân tích mật mã (cryptanalysis)

Phân tích mật mã nhằm xác định ý nghĩa của thông tin đã được mã hóa (cracking the code) mà không cần đến shared secret key.

Cryptanalysis sử dụng một số phương pháp sau:

  • Brute-Force Attack
  • Ciphertext-Only Attack
  • Known-Plaintext Attack
  • Chosen-Plaintext Attack
  • Chosen-Ciphertext Attack
  • Meet-in-the-Middle
  • Brute-Force Attack

Attacker sẽ cố gắng thử tất cả các key có thể có. Kiểu tấn công này áp dụng được cho tất cả các thuật toán mã hóa. Nhìn chung, brute-force attack sẽ thành công nếu dò được khoảng 50% keyspace (không gian key). Để ngăn chặn kiểu tấn công này, các thuật toán mã hóa hiện đại cần có keyspace đủ lớn để attacker phải tiêu tốn quá nhiều chi phí và thời gian nếu dùng brute-force attack.

Hiện nay, bằng brute-force attack, attacker có thể crack DES trong vòng 22h; còn với AES thì cần tới 149 triệu năm.

  • Ciphertext-Only Attack

Trong kiểu tấn công này, attacker chỉ có mẫu dữ liệu đã mã hóa (ciphertext). Công việc của hắn là khôi phục ciphertext của càng nhiều dữ liệu càng tốt. Attacker sẽ sử dụng phương pháp phân tích thống kê để suy đoán plaintext, thậm chí là key. Kiểu tấn công này không còn áp dụng trong thực tế vì các thuật toán hiện đại sẽ tạo ra các giá trị ngẫu nhiên tạm thời để chống lại phương pháp phân tích thống kê.

  • Known-Plaintext Attack

Trong kiểu tấn công này, attackerciphertext của một vài dữ liệu và cũng có được ít nhiều plaintext. Với hiểu biết về giao thức, kiểu tập tin, hoặc các chuỗi đặc trưng có trong dữ liệu gốc, attacker sử dụng brute-force để cố tìm key. Known-Plaintext Attack là kiểu tấn công có tính thực tế nhất. Để phòng chống kiểu tấn công này, các thuật toán hiện đại cần tạo ra keyspace khổng lồ. Vì để thành công, attacker cần dò tìm trong tối thiểu ½ keyspace.

  • Chosen-Plaintext Attack

Trong kiểu tấn công này, attacker chọn lọc dữ liệu của thiết bị mã hóa rồi thực thi mã hóa và quan sát kết quả. Kiểu tấn công này hiệu quả hơn so với Known-Plaintext Attack nhưng vẫn khó áp dụng vào thực tế vì attacker cần truy cập được vào hệ thống mạng tin cậy và đánh cắp được cả ciphertextplaintext.

  • Chosen-Ciphertext Attack

Trong kiểu tấn công này, attacker có thể chọn lọc các mẫu ciphertext khác nhau để được giải mã và có quyền truy cập tới plaintext đã giải mã. Với cặp mẫu ciphertext/plaintext attacker thực thi dò tìm key. Phương pháp tấn công này tương tự với chosen-plaintext attack và cũng khó áp dụng vào thực tế.

  • Meet-in-the-Middle

Kiểu tấn công này còn được gọi là plaintext attack. Attacker biết một phần của plaintextciphertext tương ứng. Hắn sẽ dùng các key có thể có để mã hóa plaintex, giải mã ciphertext cho đến khi có kết quả trùng khớp.

  • Phương pháp phân tích tần suất (Frequency Analysis)

So với brute-force, phân tích theo tần suất là phương pháp khoa học hơn. Phương pháp này dựa trên một thực tế là có những chữ cái tiếng Anh được sử dụng nhiều hơn chữ khác. Ví dụ: trong ngôn ngữ tiếng Anh, chữ cái E,T và A được sử dụng nhiều nhất. Sử dụng ít nhất là chữ cái J,Q,X và Z. Đặc điểm này có thể giúp giải mã dữ liệu.

Ví dụ: chúng ta có ciphertext được thực hiện bởi thuật toán Caesar là IODQN HDVW DWWDFN DW GDZQ. Trong chuỗi này, có 6 chữ cái D, và 4 chữ W. Theo nhận xét ở trên, các chữ D,W trong ciphertext có thể là chữ E,T hoặc A trong plaintext. Thay thế thử và chúng ta tìm ra chữ D đã mã hóa chữ A, chữ W thay thế chữ T.

( hết phần 1 )

Tham khảo:

  • CCNA Security curriculum
15 Tháng Tám, 2018

Chưa có bình luận, hãy trở thành người đầu tiên!

    Trả lời

    2019 © Learns.vn.

    Login

    • Họ tên (bắt buộc)

      Họ tên

    • Địa chỉ

      Địa chỉ

    • Tóm tắt thông tin

      Tóm tắt thông tin

    • Facebook

      Facebook profile link

    • Twitter

      Twitter profile link

    • Chuyên môn

      Kỹ năng chuyên môn

    • Register