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ản ở Session 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:
- 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