0

Session 2 - Securing Data: Bảo vệ dữ liệu của bạn như thế nào?

Session 2 - Securing Data 🔐

Bảo vệ dữ liệu của bạn như thế nào?

Mục tiêu của Session

Sau khi tìm hiểu cách bảo vệ tài khoảnSession 1, Session 2 sẽ đưa chúng ta đi sâu hơn vào cách các hệ thống bảo vệ dữ liệu phía sau hậu trường.

Bạn sẽ hiểu:

  • Hệ thống lưu mật khẩu như thế nào?
  • Tại sao website không nên biết mật khẩu của bạn?
  • Dữ liệu được bảo vệ ra sao khi lưu trên ổ cứng?
  • Dữ liệu được mã hóa như thế nào khi truyền qua Internet?

💡 Bài học quan trọng nhất của Session này:

Đừng tự phát minh thuật toán mã hóa của riêng mình. Hãy tin tưởng vào toán học và những tiêu chuẩn bảo mật đã được kiểm chứng.

1. Hashing (Băm)

Tại sao hệ thống không (và không nên) biết mật khẩu của bạn?

Ngày xưa, rất nhiều hệ thống lưu mật khẩu dưới dạng Plain Text.

Ví dụ:

Username      Password
-----------------------
alice         apple
bob           banana

❌ Rủi ro

Nếu hacker đánh cắp database thì họ sẽ có:

  • Username
  • Password

Ngay lập tức.

Và vì rất nhiều người dùng chung mật khẩu ở nhiều dịch vụ khác nhau nên hacker sẽ thực hiện:

Credential Stuffing

Ví dụ:

Email + Password lấy từ Website A
            ↓
Đăng nhập Gmail
Đăng nhập Facebook
Đăng nhập GitHub
Đăng nhập Ngân hàng...

Giải pháp: Hashing

Thay vì lưu mật khẩu thật, hệ thống sẽ đưa mật khẩu vào một Hash Function.

Ví dụ:

apple
      ↓

Hash Function

      ↓

ekwxa83dhi92...

Database chỉ lưu:

Username        Password Hash
-----------------------------------------
alice           ekwxa83dhi92...

Đặc điểm của Hash

Hash là One-way Function

Nghĩa là:

Password
    ↓
 Hash

Có thể tạo Hash từ Password.

Nhưng:

Hash
   ↓
Password

❌ Không thể đảo ngược.

Hashing giống như việc bạn:

  • bỏ trái cây vào máy xay
  • xay nhuyễn

Bạn không thể lấy lại quả táo nguyên vẹn nữa.

Khi đăng nhập sẽ diễn ra điều gì?

Giả sử bạn nhập:

apple

Hệ thống sẽ:

Bạn nhập password
        ↓

Hash(password)

        ↓

So sánh với Hash trong Database

        ↓

Giống nhau → Đăng nhập thành công

Hệ thống không bao giờ cần biết password thật.

Red Flag

Nếu bạn chọn:

Quên mật khẩu

và website gửi email:

"Mật khẩu của bạn là: apple"

👉 Điều này có nghĩa họ đang lưu password dạng Plain Text.

Đây là dấu hiệu rất nguy hiểm.

Bạn nên làm gì?

  • Ngừng sử dụng dịch vụ đó.
  • Đổi mật khẩu ngay.
  • Nếu dùng chung mật khẩu ở nơi khác thì đổi luôn.

2. Salting (Thêm "Muối")

Hashing vẫn còn một điểm yếu.

Giả sử:

Carol:
password = cherry

Charlie:
password = cherry

Sau khi Hash:

Carol
Hash = abc123

Charlie
Hash = abc123

Hacker nhìn vào sẽ biết:

Hai người đang dùng cùng một mật khẩu.

Giải pháp: Salt

Mỗi người sẽ được tạo một chuỗi ngẫu nhiên.

Ví dụ:

Carol

Password:
cherry

Salt:
50

Hash(cherry50)

Trong khi Charlie:

Password:
cherry

Salt:
49

Hash(cherry49)

Kết quả:

Carol
Hash = x8asd91...

Charlie
Hash = h72jkfa...

Hoàn toàn khác nhau.

Salt giúp chống lại điều gì?

Salt giúp vô hiệu hóa:

  • Rainbow Table
  • Hash Lookup Database
  • Tấn công hàng loạt bằng Hash có sẵn

Đây là lý do mọi hệ thống hiện đại đều sử dụng Salt.

3. Encryption (Mã hóa)

Khác với Hashing.

Hash:

Password
    ↓
 Hash

Không thể quay lại.

Encryption thì khác.

Plain Text
     ↓

Encrypt

     ↓

Cipher Text

     ↓

Decrypt

     ↓

Plain Text

Có thể giải mã.

3.1 Symmetric Encryption

Hay còn gọi là:

Secret Key Encryption

Người gửi và người nhận dùng cùng một chìa khóa.

Key

↓

Encrypt

↓

Cipher Text

↓

Decrypt

↓

Original Data

Các thuật toán phổ biến:

  • AES
  • TripleDES

Nhược điểm

Làm sao để hai người chưa từng quen biết có thể chia sẻ cùng một Secret Key?

Ví dụ:

Bạn
↓

Internet

↓

Amazon

Nếu Key bị lộ trong lúc truyền thì mọi dữ liệu đều mất an toàn.

3.2 Asymmetric Encryption

Hay còn gọi là:

Public Key Cryptography

Mỗi người có:

  • Public Key
  • Private Key
Public Key
↓

Encrypt

↓

Cipher Text

↓

Private Key

↓

Decrypt

Public Key

  • Có thể công khai.
  • Ai cũng được phép biết.
  • Dùng để mã hóa dữ liệu gửi cho bạn.

Private Key

  • Chỉ bạn giữ.
  • Không ai được biết.
  • Là chìa khóa duy nhất mở được dữ liệu đã mã hóa bằng Public Key.

4. Digital Signature (Chữ ký điện tử)

Nếu đảo ngược quy trình trên.

Bạn dùng:

Private Key

để ký tài liệu.

Người khác dùng:

Public Key

để xác minh.

Nếu xác minh thành công thì:

✅ Tài liệu đúng do bạn ký.

Vì chỉ bạn mới sở hữu Private Key.

5. Passkeys

Tương lai không cần mật khẩu

Đây là ứng dụng phổ biến nhất của Public Key.

Thay vì:

Username

Password

Thiết bị sẽ tạo:

Public Key

Private Key

Website chỉ lưu:

Public Key

Thiết bị giữ:

Private Key

được bảo vệ bằng:

  • Face ID
  • Touch ID
  • Windows Hello

Hiện nay các trình duyệt phổ biến dùng loại này.

Khi đăng nhập

Website gửi một thử thách (Challenge).

Thiết bị sẽ:

Challenge

↓

Private Key ký

↓

Signature

↓

Website

↓

Public Key kiểm tra

↓

Đăng nhập

Không cần nhập password.

Không lo bị phishing.

Không sợ lộ mật khẩu.

6. End-to-End Encryption (E2EE)

Nhiều người nghĩ:

HTTPS

đã đủ an toàn.

Thực tế:

Bạn

↓

HTTPS

↓

Máy chủ

↓

HTTPS

↓

Người nhận

Máy chủ vẫn có thể đọc dữ liệu.

End-to-End Encryption

Bạn

↓

Encrypted

↓

Server

↓

Encrypted

↓

Người nhận

Máy chủ chỉ chuyển tiếp dữ liệu. Không thể đọc nội dung.

Ví dụ

Các ứng dụng hỗ trợ E2EE:

  • WhatsApp
  • iMessage
  • Signal

Ngay cả công ty phát triển ứng dụng cũng không thể đọc được nội dung cuộc trò chuyện.

7. Secure Deletion & Encryption at Rest

Bạn nghĩ:

Delete

↓

Recycle Bin

↓

Empty Recycle Bin

là file biến mất?

❌ Không.

Hệ điều hành chỉ:

  • quên vị trí file
  • đánh dấu vùng nhớ có thể ghi đè

Trong khi dữ liệu thật vẫn còn trên ổ cứng.

Full Disk Encryption

Đây là giải pháp tốt nhất.

Ví dụ:

  • BitLocker (Windows)
  • FileVault (macOS)

Khi máy tính tắt:

Ổ cứng

↓

Toàn bộ dữ liệu

↓

Cipher Text

Nếu máy bị đánh cắp:

Không có mật khẩu hoặc khóa giải mã thì dữ liệu gần như vô dụng.

Lợi ích

  • Bảo vệ dữ liệu khi laptop bị mất.
  • An toàn khi bán máy cũ.
  • Chống khôi phục dữ liệu.

Tổng kết Session

Sau Session này mình hiểu được:

  • ✅ Vì sao website không nên lưu mật khẩu.
  • ✅ Hashing và Salting bảo vệ password như thế nào.
  • ✅ Sự khác nhau giữa Hash và Encryption.
  • ✅ Cách Public Key / Private Key hoạt động.
  • ✅ Passkey sẽ dần thay thế mật khẩu truyền thống.
  • ✅ End-to-End Encryption bảo vệ nội dung trò chuyện.
  • ✅ Full Disk Encryption giúp dữ liệu an toàn ngay cả khi thiết bị bị đánh cắp.

Những việc mình sẽ áp dụng ngay

  • [ ] Kiểm tra các ứng dụng nhắn tin đã bật End-to-End Encryption hay chưa.
  • [ ] Đổi mật khẩu ngay nếu website từng gửi lại mật khẩu cũ qua email.
  • [ ] Trải nghiệm Passkey trên các dịch vụ như Google hoặc GitHub.
  • [ ] Đảm bảo laptop và điện thoại đã bật Full Disk Encryption.

Nguồn học tập

  • Harvard CS50's Introduction to Cybersecurity
  • Session 2 – Securing Data

Cảm ơn mọi người đã đọc đến đây! Cho mình xin 1 theo dõi và 1 upvote nếu thấy hưu ích nhé. ❤️

Session 3 – Securing Systems, chúng ta sẽ cùng tìm hiểu cách bảo vệ hệ thống trước các cuộc tấn công mạng.


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí