Mật mã học nâng cao - Bài 01
Transcript of Mật mã học nâng cao - Bài 01
MẬT MÃ HỌC NÂNG CAOBài 1 – Kiến trúc mật mã của Windows
Tổng quan về DLL1
Ứng dụng mật mã trong Windows2
CryptoAPI3
CryptoAPI 2.0 và CNG4
Mật mã học nâng cao - Bài 1: Kiến trúc mật mã của Windows 2
Mật mã học nâng cao - Bài 1: Kiến trúc mật mã của Windows 3
T ng quan v DLLổ ề
Thư viện lập trình là
gì?
Mật mã học nâng cao - Bài 1: Kiến trúc mật mã của Windows 4
T ng quan v DLLổ ề
Lợi ích của việc sử
dụng thư viện?
Mật mã học nâng cao - Bài 1: Kiến trúc mật mã của Windows 5
T ng quan v DLLổ ề
Cách thức một người
sử dụng thư viện điện
tử?
Mật mã học nâng cao - Bài 1: Kiến trúc mật mã của Windows 6
Cách 1: T i v máy r i đ c d nả ề ồ ọ ầ
Mật mã học nâng cao - Bài 1: Kiến trúc mật mã của Windows 7
Cách 1: Đ c cu n nào, t i cu n đóọ ố ả ố
Mật mã học nâng cao - Bài 1: Kiến trúc mật mã của Windows 8
T ng quan v DLLổ ề
Cách thức một chương
trình sử dụng thư viện
lập trình?
Mật mã học nâng cao - Bài 1: Kiến trúc mật mã của Windows 9
Cách 1: Liên k t tĩnhế
Mật mã học nâng cao - Bài 1: Kiến trúc mật mã của Windows 10
Cách 2: Liên k t đ ngế ộ
Mật mã học nâng cao - Bài 1: Kiến trúc mật mã của Windows 11
T ng quan v DLLổ ề
So sánh Liên kết tĩnh
và Liên kết động!
Mật mã học nâng cao - Bài 1: Kiến trúc mật mã của Windows 12
T ng quan v DLLổ ề
Trong Windows, file
thư viện liên kết động
có phần mở rộng là
"DLL"
Tổng quan về DLL1
Ứng dụng mật mã trong Windows2
CryptoAPI3
CryptoAPI 2.0 và CNG4
Mật mã học nâng cao - Bài 1: Kiến trúc mật mã của Windows 13
Mật mã học nâng cao - Bài 1: Kiến trúc mật mã của Windows 14
ng d ng m t mã trong WindowsỨ ụ ậ
Kể tên các ứng dụng
của Microsoft trong
Windows có sử dụng
mật mã!
Mật mã học nâng cao - Bài 1: Kiến trúc mật mã của Windows 15
ng d ng m t mã trong WindowsỨ ụ ậ
1. Explorer
2. Internet Explorer ↔ IIS, CA
3. Outlook, Outlook Express, Windows
4. Word, Excel, PowerPoint,...
5. Remote Desktop Connection
và còn rất nhiều!!!!!!!!
Mật mã học nâng cao - Bài 1: Kiến trúc mật mã của Windows 16
ng d ng m t mã trong WindowsỨ ụ ậ
1. Có rất nhiều ứng dụng có sử dụng
mật mã. Vậy chúng sử dụng thuật
toán mã hóa, băm, ký số nào?
2. Các ứng dụng đó triển khai các
thuật toán đó thế nào?
Mật mã học nâng cao - Bài 1: Kiến trúc mật mã của Windows 17
ng d ng m t mã trong WindowsỨ ụ ậ
Chức năng mật mã của các ứng
dụng của Microsoft trong
Windows được cung cấp thông
qua thư viện "advapi32.dll"
(C:\Windows\System32)
Tổng quan về DLL1
Ứng dụng mật mã trong Windows2
CryptoAPI3
CryptoAPI 2.0 và CNG4
Mật mã học nâng cao - Bài 1: Kiến trúc mật mã của Windows 18
Mật mã học nâng cao - Bài 1: Kiến trúc mật mã của Windows 19
CryptoAPI
CryptoAPI =
Cryptographic API =
Cryptographic
Application
Programming Interface
Mật mã học nâng cao - Bài 1: Kiến trúc mật mã của Windows 20
CryptoAPI
• API là một tập hợp các lớp, hàm, thủ tục, cấu trúc dữ liệu, hằng số mà một chương trình (thư viện, dịch vụ) cung cấp cho các chương trình khác sử dụng
• Cryptographic API là...
• CryptoAPI (CAPI) là một API trong hệ điều hành Windows cho phép các nhà lập trình bổ sung tính năng an toàn cho các ứng dụng chạy trên Windows bằng việc sử dụng mật mã.
• CryptoAPI được hỗ trợ từ WinNT 4.0
Mật mã học nâng cao - Bài 1: Kiến trúc mật mã của Windows 21
CryptoAPI
Về mặt hình thức, CAPI là một tập hợp
các hằng số
các kiểu dữ liệu
các hàm
phục vụ cho việc thực hiện thao tác mã hóa, giải mã, tính giá trị băm, tạo chữ ký số, kiểm tra chữ ký số, sinh khóa, lưu khóa, phân phối khóa.
Mật mã học nâng cao - Bài 1: Kiến trúc mật mã của Windows 22
CryptoAPI và MSDN
Mật mã học nâng cao - Bài 1: Kiến trúc mật mã của Windows 23
CryptoAPI
Mật mã học nâng cao - Bài 1: Kiến trúc mật mã của Windows 24
CryptoAPI
Mật mã học nâng cao - Bài 1: Kiến trúc mật mã của Windows 25
CryptoAPI
Mật mã học nâng cao - Bài 1: Kiến trúc mật mã của Windows 26
Cryptographic Service ProviderCryptographic Service Provider (CSP) là module phần mềm cài đặt các thuật toán và các chuẩn mật mã.
• Mỗi CSP thường tồn tại dưới dạng một file .DLL
• Có một số CSP đòi hỏi làm việc với thiết bị phần cứng để lưu trữ khóa (eToken)
• Trong Windows đã có sẵn nhiều CSP
• Các bên thứ 3 có thể phát triển CSP của mình
• Mọi CSP phải được ký bởi Microsoft
Mật mã học nâng cao - Bài 1: Kiến trúc mật mã của Windows 27
Cryptographic Service Provider1 Microsoft Base Cryptographic Provider
2 Microsoft Strong Cryptographic Provider
3 Microsoft Enhanced Cryptographic Provider
4 Microsoft AES Cryptographic Provider
5 Microsoft DSS Cryptographic Provider
6 Microsoft Base DSS and Diffie-Hellman Cryptographic Provider
7 Microsoft Enhanced DSS and Diffie-Hellman Cryptographic Provider
8 Microsoft DSS and Diffie-Hellman/Schannel Cryptographic Provider
9 Microsoft RSA/Schannel Cryptographic Provider
10 Microsoft RSA Signature Cryptographic Providers
Mật mã học nâng cao - Bài 1: Kiến trúc mật mã của Windows 28
Cryptographic Service Provider
Mật mã học nâng cao - Bài 1: Kiến trúc mật mã của Windows 29
Cryptographic Service Provider
Chức năng của CSP:
• Tương tác với các ứng dụng thông qua giao diện CryptoAPI
• Thực hiện các tính năng an toàn: sinh khóa và trao đổi khóa, mã hóa và giải mã, băm dữ liệu, ký và kiểm tra chữ ký
Mật mã học nâng cao - Bài 1: Kiến trúc mật mã của Windows 30
Cryptographic Service ProviderĐặc trưng của CSP:
• Thuật toán mã hóa/giải mã được hỗ trợ
• Thuật toán ký số được hỗ trợ
• Chế độ mã hóa ngầm định (CBC?)
• Thuật toán trao đổi khóa phiên
• Độ dài khóa phiên
• Thuật toán sinh khóa phiên từ hàm băm
• Định dạng dữ liệu khi xuất khóa khỏi CSP
Mật mã học nâng cao - Bài 1: Kiến trúc mật mã của Windows 31
Cryptographic Service ProviderYêu cầu chính đối với CSP:
• Mỗi CSP phải đăng ký với hệ thống (vào registry) các thông tin về bản thân nó
• Mỗi CSP phải được ký bởi Microsoft (?)
• Mỗi CSP phải xuất (export) ít nhấtn 23 hàm chuẩn. Các hàm này được gọi bởi Gateway, không phải bởi ứng dụng!
Mật mã học nâng cao - Bài 1: Kiến trúc mật mã của Windows 32
Cryptographic Service Provider
Tổng quan về DLL1
Ứng dụng mật mã trong Windows2
CryptoAPI3
CryptoAPI 2.0 và CNG4
Mật mã học nâng cao - Bài 1: Kiến trúc mật mã của Windows 33
Mật mã học nâng cao - Bài 1: Kiến trúc mật mã của Windows 34
CryptoAPI 2.0
CryptoAPI 2.0
= CryptoAPI 2 + Hỗ trợ
tốt hơn các thao tác với
chứng thư số
Mật mã học nâng cao - Bài 1: Kiến trúc mật mã của Windows 35
CNG
CNG
= Cryptography Next
Generation API
Mật mã học nâng cao - Bài 1: Kiến trúc mật mã của Windows 36
CNG
Bắt đầu được hỗ trợ từ Vista, Server 2008
Hỗ trợ các thuật toán mật mã mạnh (NSA Suite B)
Tách biệt Key Storage Provider và Algorithm Provider
Về lâu dài sẽ thay thế CryptoAPI