Mật mã học nâng cao - Bài 01

36
MẬT MÃ HỌC NÂNG CAO Bài 1 – Kiến trúc mật mã của Windows

Transcript of Mật mã học nâng cao - Bài 01

Page 1: 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

Page 2: Mật mã học nâng cao - Bài 01

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

Page 3: Mật mã học nâng cao - Bài 01

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ì?

Page 4: Mật mã học nâng cao - Bài 01

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?

Page 5: Mật mã học nâng cao - Bài 01

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ử?

Page 6: Mật mã học nâng cao - Bài 01

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ả ề ồ ọ ầ

Page 7: Mật mã học nâng cao - Bài 01

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 đóọ ố ả ố

Page 8: Mật mã học nâng cao - Bài 01

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?

Page 9: Mật mã học nâng cao - Bài 01

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ế

Page 10: Mật mã học nâng cao - Bài 01

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ế ộ

Page 11: Mật mã học nâng cao - Bài 01

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!

Page 12: Mật mã học nâng cao - Bài 01

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"

Page 13: Mật mã học nâng cao - Bài 01

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

Page 14: Mật mã học nâng cao - Bài 01

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ã!

Page 15: Mật mã học nâng cao - Bài 01

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

Mail

4. Word, Excel, PowerPoint,...

5. Remote Desktop Connection

và còn rất nhiều!!!!!!!!

Page 16: Mật mã học nâng cao - Bài 01

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?

Page 17: Mật mã học nâng cao - Bài 01

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)

Page 18: Mật mã học nâng cao - Bài 01

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

Page 19: Mật mã học nâng cao - Bài 01

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

Page 20: Mật mã học nâng cao - Bài 01

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

Page 21: Mật mã học nâng cao - Bài 01

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.

Page 22: Mật mã học nâng cao - Bài 01

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

Page 23: Mật mã học nâng cao - Bài 01

Mật mã học nâng cao - Bài 1: Kiến trúc mật mã của Windows 23

CryptoAPI

Page 24: Mật mã học nâng cao - Bài 01

Mật mã học nâng cao - Bài 1: Kiến trúc mật mã của Windows 24

CryptoAPI

Page 25: Mật mã học nâng cao - Bài 01

Mật mã học nâng cao - Bài 1: Kiến trúc mật mã của Windows 25

CryptoAPI

Page 26: Mật mã học nâng cao - Bài 01

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

Page 27: Mật mã học nâng cao - Bài 01

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

Page 28: Mật mã học nâng cao - Bài 01

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

Page 29: Mật mã học nâng cao - Bài 01

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ý

Page 30: Mật mã học nâng cao - Bài 01

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

Page 31: Mật mã học nâng cao - Bài 01

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!

Page 32: Mật mã học nâng cao - Bài 01

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

Page 33: Mật mã học nâng cao - Bài 01

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

Page 34: Mật mã học nâng cao - Bài 01

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ố

Page 35: Mật mã học nâng cao - Bài 01

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

Page 36: Mật mã học nâng cao - Bài 01

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