Tải bản đầy đủ (.docx) (85 trang)

Đồ án PKI full setup Hạ tầng khóa công khai PKI

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.5 MB, 85 trang )

Sinh viên thực hiện: Lưu Việt Tùng – 20159550 Khóa 57 Lớp CNTT.TT2

1


PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
1. Thông tin về sinh viên
Họ và tên sinh viên: Lưu Việt Tùng
Điện thoại liên lạc

:0968877723

Lớp:CNTT.TT2

Email:
Hệ đào tạo:Kĩ sư – K57

Đồ án tốt nghiệp được thực hiện tại: Bộ môn truyền thông và mạng máy tính . Viện công nghệ
thông tin và truyền thông – Đại học Bách Khoa Hà Nội.
Thời gian làm ĐATN: Từ ngày 14 /02 /2016 đến 30 /06 /2016

2. Mục đích nội dung của ĐATN
Nhiệm vụ của đồ án là nghiên cứu hoạt động và triển khai hạ tầng khóa công khai PKI trên
Windows Server 2008.

3. Các nhiệm vụ cụ thể của ĐATN

• Nghiên cứu hạ tầng khóa công khai PKI.
• Xây dựng hạ tầng khóa công khai PKI.
• Ứng dụng hạ tầng khóa công khai PKI vào triển khai các ứng dụng trên windows
server 2008.



Sinh viên thực hiện: Lưu Việt Tùng – 20159550 Khóa 57 Lớp CNTT.TT2

2


4. Lời cam đoan của sinh viên:
Tôi Lưu Việt Tùng cam kết ĐATN là công trình nghiên cứu của bản thân tôi dưới sự hướng
dẫn của TS. Trần Quang Đức
Các kết quả nêu trong ĐATN là trung thực, không phải là sao chép toàn văn của bất kỳ công
trình nào khác.
Hà Nội, ngày tháng năm
Tác giả ĐATN

Lưu Việt Tùng
5. Xác nhận của giáo viên hướng dẫn về mức độ hoàn thành của ĐATN và cho phép bảo vệ:

Hà Nội, ngày tháng năm
Giáo viên hướng dẫn
Ts.Trần Quang Đức

Sinh viên thực hiện: Lưu Việt Tùng – 20159550 Khóa 57 Lớp CNTT.TT2

3


MỤC LỤC

Sinh viên thực hiện: Lưu Việt Tùng – 20159550 Khóa 57 Lớp CNTT.TT2


4


LỜI CẢM ƠN
Tôi xin gửi lời cảm ơn chân thành nhất tới TS. Trần Quang Đức, người thầy đã
cho tôi những định hướng và những ý kiến rất quý báu để tôi hoàn thành được đồ án tốt
nghiệp này. Tôi xin tỏ lòng biết ơn sâu sắc tới các thầy cô, bạn bè cùng làm việc đã dìu
dắt, giúp đỡ tôi tiến bộ trong suốt quá trình làm đồ án tốt nghiệp. Xin cảm ơn gia đình
và bè bạn, những người luôn khuyến khích và giúp đỡ tôi trong mọi hoàn cảnh khó
khăn. Tôi xin cảm ơn bộ môn Truyền Thông và Mạng Máy Tính, viện Công Nghệ
Thông Tin và Truyền Thông trường Đại Học Bách Khoa Hà Nội đã hết sức tạo điều
kiện cho tôi trong quá trình học tập và làm đồ án này.

Sinh viên thực hiện: Lưu Việt Tùng – 20159550 Khóa 57 Lớp CNTT.TT2

5


TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP
Đồ án này có tên “Nghiên cứu – Xây dựng hạ tầng khóa công khai PKI ” là đề tài xây
dựng làm đồ án tốt nghiệp. Nội dung đồ án là nghiên cứu – xây dựng hạ tầng khóa công khai
PKI, trên nền tảng hạ tầng đó triển khai các ứng dụng trên Windows Server. Trong đó tập
trung nghiên cứu – xây dựng hạ tầng khóa công khai PKI và triển khai bảo mật cho hệ thống
Mail , Website, thiết lập đường truyền bảo mật VPN.
Đồ án được chia ra làm 3 phần:
Phần 1: Chương 1: Đặt vấn đề và định hướng giải pháp
Phần 2: Quá trình nghiên cứu và kết quả đạt được.
Chương 2: Lý thuyết tổng quan: Có nhiệm vụ giới thiệu tổng quan về mật
mã, tổng quan hạ tầng khóa công khai PKI, tổng quan VPN, tổng quan SSL.
Chương 3: Triển khai hạ tầng PKI: Xây dựng mô hình và triển khai hạ tầng

PKI trên nền Windows Server 2008, thử nghiệm với các kịch bản đề ra, rút ra
nhận xét.
Phần 3: Kết luận : Đưa ra nhận xét về hệ thống, đánh giá kết quả đạt được, phần chưa
làm được và đưa ra định hướng phát triển.

Sinh viên thực hiện: Lưu Việt Tùng – 20159550 Khóa 57 Lớp CNTT.TT2

6


ABSTRACT OF THESIS
The graduated dissertation is named: “studying – public infrastructure of PKI . The main
content of the dissertation is studying and building the public key infrastructure PKI, which is
the foundation to deploy the application for Windows Server .The disserfation focuses on
studying and building public key infrastructure PKI and deploying the security for mai system,
website, setting up the secured lines VPN
The dissertation is divided into 3 parts :
Part1: Chapter 1: introduction and orientation for solution
Part2: Process of studying and results
Chapter 2: Overall theory, Overall introduction about encryption, Overall
introduction about public key infrastructure PKI, Overall introduction about
VPN, Overall introduction about SSL
Chapter 3: Deployment of infrastructure PKI: building the model and deploying
the public key infrastructure PKI which is basic in Windows Server 2008,
testing some script, giving comments
Part 3: Conlusion: Giving comments about the system, notable the achieved results and
uncomplete part, giving the orientation of development as well

Sinh viên thực hiện: Lưu Việt Tùng – 20159550 Khóa 57 Lớp CNTT.TT2


7


DANH MỤC TỪ VIẾT TẮT
APKI

Architecture for Public-Key Infrastructure

CA

Certificate Authority

CRL

Certifiate Revocation List

DES

Data Encrytion Standard

DSA

Digital Signature Algorithm

DSS

Digital Signature Standard

IETF


Internet Engineering Task Force

LDAP

Lightweight Directory Access Protocol

MD2, 4,5

Message Digest 2,4,5

NIST

National Institute of Standards and Technology

NSA

National Security Agency

PEM

Privacy Enhanced Mail

PGP

Pretty Good Privacy

RA

Registration Authority


PKCS

Public Key Cryptography Standards

PKI

Public Key Infrastructure

PKIX

Public Key Infrastructure X.509 group

RFC

Request For Comments

RSA

Rivest Shamir Adleman

SCEP

Simple Certificate Enrollment Protocol

SET

Secure Electronic Transactions

SHA


Secure Hash Algorithm

SPKI

Simple Public Key Infrastructure

SSL

Secure Socket Layer

TSL

Transport Layer Security

Sinh viên thực hiện: Lưu Việt Tùng – 20159550 Khóa 57 Lớp CNTT.TT2

8


DANH MỤC HÌNH VẼ

Sinh viên thực hiện: Lưu Việt Tùng – 20159550 Khóa 57 Lớp CNTT.TT2

9


CHƯƠNG 1. ĐẶT VẤN ĐỀ VÀ ĐỊNH HƯỚNG GIẢI PHÁP
1.1: GIỚI THIỆU ĐỀ TÀI
Trong một vài năm lại đây, hạ tầng truyền thông IT càng ngày càng được mở
rộng khi mà người sử dụng dựa trên nền tảng này để truyền thông và giao dịch với các

đồng nghiệp, các đối tác kinh doanh cũng như việc khách hàng dùng email trên các
mạng công cộng. Hầu hết các thông tin kinh doanh nhạy cảm và quan trọng được lưu
trữ và trao đổi dưới hình thức điện tử. Sự thay đổi trong các hoạt động truyền thông
doanh nghiệp này đồng nghĩa với việc phải có biện pháp bảo vệ tổ chức, doanh nghiệp
của mình trước các nguy cơ lừa đảo, can thiệp, tấn công, phá hoại hoặc vô tình tiết lộ
các thông tin đó. Cấu trúc hạ tầng mã khoá công cộng (PKI - Public Key Infrastructure
- hay còn gọi là Hạ tầng mã khoá bảo mật công cộng hoặc Hạ tầng mã khoá công khai)
cùng các tiêu chuẩn và các công nghệ ứng dụng của nó có thể được coi là một giải
pháp tổng hợp và độc lập mà bản có thể sử dụng để giải quyết vấn đề này.
Đó cũng chính là lí do em lựa chọn đề tài : Nghiên cứu xây dựng hạ tầng khóa
công khai PKI làm đồ án tốt nghiệp
1.2: MÔ TẢ BÀI TOÁN ĐẶT RA
Bài toán đặt ra là nghiên cứu và triển khai hạ tầng khóa công khai PKI :
Bảo mật cho quá trình gửi mail.Tấn công xâm nhập hệ thống.Xác thực người
dùng.Truy cập web với giao thức HTTPS trên nền tảng SSL triển khai với CA. Xây
dựng đường hầm VPN ứng dụng với hạ tầng khóa công khai PKI
Mô hình bài toán đặt ra được miêu tả như hình

Sinh viên thực hiện: Lưu Việt Tùng – 20159550 Khóa 57 Lớp CNTT.TT2

10


Hình 1. 1 : Mô hình bài toán đặt ra

Bài toán đặt ra được phân tích cụ thể như sau :
Bài toán gửi mail:
User1 gửi thư cho User2 , bức thư phải đi qua Mail server rồi chuyển đến
User2 .Kẻ thứ 3 tấn công xâm nhập vào hệ thống. Bức thư khi không có cơ chế bảo
mật và xác thực người dùng, nên kẻ thứ 3 đã đọc được nội dung bức thư, sửa đổi và

chuyển tiếp đi.
Bài toán truy cập web với giao thức an toàn:
Khi một hệ thống Mail truy cập ra bên ngoài sử dụng đường truyền internet
thông qua web browser , hoặc các thành viên trong công ty truy cập web thông tin nội
bộ qua web browser. Khi đó sử dụng giao thức HTTP không còn an toàn, nội dung
không được mã hóa và xác thực. Đó là tiền đề cho việc kết hợp giao thức bảo mật SSL
để đảm bảo an toàn, xác thức…
Bài toán truy cập vào tài nguyên nội bộ của công ty từ một máy ngoài thông qua
đường hầm VPN.
Truy cập theo kết nối thường khi chưa kết hợp hạ tầng khóa công khai PKI làm
cho kẻ tấn công có thể dễ dàng xâm nhập vào hệ thống. Truy cập thông qua đường hầm
VPN thông qua chế độ đường hầm ( Tunnel mode ) SSTP , L2TP kết hợp IPSEC để mã
hóa thông tin, bảo mật quá trình truyền thông tin và sử dụng USB Token để xác thực
người dùng.
1.3: CÔNG NGHỆ LIÊN QUAN
Giới thiệu về PKI
Trong mật mã học, hạ tầng khóa công khai (tiếng Anh: public key
infrastructure, viết tắt PKI) là một cơ chế để cho một bên thứ 3 (thường là nhà cung
cấp chứng thực số) cung cấp và xác thực định danh các bên tham gia vào quá trình trao
đổi thông tin. Cơ chế này cũng cho phép gán cho mỗi người sử dụng trong hệ
thống một cặpkhóa công khai/khóa bí mật. Các quá trình này thường được thực hiện
bởi một phần mềm đặt tại trung tâm và các phần mềm phối hợp khác tại các địa điểm
của người dùng. Khóa công khai thường được phân phối trong chứng thực khóa công
khai.
Khái niệm hạ tầng khóa công khai (PKI) thường được dùng để chỉ toàn bộ hệ
thống bao gồm nhà cung cấp chứng thực số (CA) cùng các cơ chế liên quan đồng thời
với toàn bộ việc sử dụng các thuật toán mật mã hóa khóa công khai trong trao đổi
thông tin. Tuy nhiên phần sau được bao gồm không hoàn toàn chính xác bởi vì các cơ
chế trong PKI không nhất thiết sử dụng các thuật toán mã hóa khóa công khai.
Giới thiệu về Window Server 2008

Sinh viên thực hiện: Lưu Việt Tùng – 20159550 Khóa 57 Lớp CNTT.TT2

11


Ngày 12/11/2007 Microsoft chính thức tung ra thị trường phiên bản hệ điều
hành máy chủ Windows Server 2008, hệ điều hành này gồm 6 phiên bản chính:Việc
lựa chọn phiên bản nào thì phụ thuộc vào yêu cầu của người sử dụng.
Windows Server 2008 Standard Edition: là lựa chọn tốt nhất cho doanh nghiệp
nhỏ, không có nhu cầu mở rộng của phần cứng và không sử dụng tính năng clustering.
Windows Server 2008 Enterprise Edition: là lựa chọn tốt cho môi trường doanh
nghiệp lớn, hỗ trợ đầy đủ các tính năng như: clustering, failover, virtualization và khả
năng mở rộng phần cứng.
Windows Server 2008 DataCenter Edition (IA-64 DataCenter Edition): là tùy
chọn cho các doanh nghiệp dùng lưu trữ dữ liệu lớn và sử dụng tính năng ảo hoá trên
quy mô lớn
Một số tính năng mới Windows Server 2008 so với Windows Server 2003:
Server Manager, Terminal Services Advanced Event Viewer, Server Core, Hỗ trợ Ipv6,
Windows PowerShell, Internet Information Services 7.0, máy chủ ảo.
Giới thiệu về hệ thống Mail Server Kerio
Kerio Connect là ứng dụng kế thừa của Kerio MailServer. Nó thực chất là hệ
thống mailserver hoạt động trên nhiều hệ điều hành khác nhau, hỗ trợ nhiều giao thức.
Những giao thức này cho phép sử dụng bất kỳ email client được hỗ trợ bởi các thiết bị
di động. Mailserver này còn cho phép bạn trực tiếp truy cập vào hòm thư thông qua
giao diện web độc quyền. Kerio Connect sử dụng các hòm thư để lưu trữ nhiều dạng
dữ liệu khác nhau như tin nhắn email, lịch, ghi chú, danh sách liên hệ, nhiệm vụ.
Tính năng:
Kết nối mọi người: Chia sẻ email, lịch, danh sách liên hệ,…trên mọi hệ thống
như Mac, Windows, Linux và smartphone.Kết nối mọi lúc, mọi nơi:Tập trung hóa dữ
liệu vào một địa điểm. Truy cập công việc tại văng phòng, trên đường đi hoặc tại nhà.

Với domain đã phân chia, có thể lập kế hoạch cuộc họp, sử dụng danh sách địa chỉ
toàn cầu, và dễ dàng quản lý hay liên lạc với các văn phòng chi nhánh từ xa.
Tùy chọn client linh hoạt: Gồm Microsoft Outlook, Microsoft Entourage Apple
iCal, Apple Mail, Apple Address Book Kerio WebMail, thiết bị đi động.
Đồng bộ mọi dữ liệu: Đồng bộ với email push trực tiếp. Tự động đồng bộ email,
lịch, và danh sách liên hệ với thiết bị di động . Thay đổi trên điện thoại, máy tính hoặc
web trong thời gian thực.
Dễ dàng quản lý các folder công cộng hoặc được chia sẻ bằng cách lựa chọn
những folder muốn đồng bộ với thiết bị di động.Kerio Connect kết nối trực tiếp với
các thiết bị kích hoạt Exchange ActiveSync.
Sinh viên thực hiện: Lưu Việt Tùng – 20159550 Khóa 57 Lớp CNTT.TT2

12


Bảo vệ dữ liệu:Bảo vệ dữ liệu khi điện thoại bị mất. Xóa thông tin quan trọng
từ thiết bị thông qua Kerio Smart Wipe.
Sức mạnh của ứng dụng:Kerio Connect được tích hợp với công cụ chống spam
và virus mạnh nhất vào mail server.Ngăn chặn spam và virus hiệu quả hơn từ các tin
nhắn email và đính kèm gửi đi, chuyển tiếp hoặc nhận.
Chống spam:Hơn 14 lớp chống spam. DHA (Directory Harvest Attack
protection).Loại bỏ spam (Bayes, Heuristic, and SURBL). Chống lừa đảo. Server danh
sách đen RBL (Real-time blacklist servers). Tùy chỉnh whitelists và blacklists.Giảm
thiểu lượng tiêu thụ tài nguyên server.Ngăn chặn tới 80% spam trước khi tấn công vào
server. Tiết kiệm dung lượng ổ cứng, RAM và CPU.
Chống virus: Sophos tích hợp. Kết hợp Sophos với một công cụ chống virus
khác để bảo vệ kép.
Bảo vệ kịp thời: Công nghệ quét tiên tiến.Dễ dàng bảo dưỡng.Cập nhật từng
giờ.Chương trình nhúng chống virus bên thứ 3. Sử dụng hệ thống chống virus đang có
với Kerio Connect dễ dàng thông qua chương trình nhúng chống virus tích hợp.

Khôi phục sao lưu trên một server khác: Khôi phục dữ liệu user và cấu hình
server trên một cài đặt mới trong trường hợp lỗi phần cứng. Tích hợp với các giải pháp
thứ 3 để có thời gian hoạt động tối đa.
Giới thiệu về SSL
Giao thức Secure Socket Layer (SSL) được phát triển bởi Netscape, ngày nay
giao thức Secure Socket Layer (SSL) đã được sử dụng rộng rãi trên hệ thống mạng
nhằm mục đích xác thực và mã hoá thông tin giữa client và server. Cụ thể SSL được sử
dụng để mã hóa cho tất cà các protocol hoạt động tại lớp Application như: HTTP, FTP,
SMTP, POP, IMAP…Hiện nay, khi public một web site lên internet, để áp dụng cơ chế
mã hóaSSL chúng ta phải thuê SSL Certificate cho Web Server từ các tổ chức cung cấp
Digital Certificate như: Verisign, CyberTrust, EnTrust…
Giới thiệu về đường hầm VPN
VPN được hiểu đơn giản là sự mở rộng của một mạng riêng (Private Network)
thông qua các mạng công cộng. Về căn bản, mỗi VPN là một mạng riêng rẽ sử dụng
một mạng chung (thường là Internet) để kết nối cùng với các site (các mạng riêng lẻ)
hay nhiều người sử dụng từ xa. Thay cho việc sử dụng kết nối thực, chuyên dùng như
đường leased-line, mỗi VPN sử dụng các kết nối ảo được dẫn qua đường Internet từ
mạng riêng của các công ty tới các site các nhân viên từ xa. Để có thể gửi và nhận dữ
liệu thông qua mạng công cộng mà vẫn đảm bảo tính an toàn và bảo mật, VPN cung
cấp các cơ chế mã hóa dữ liệu trên đường truyền tạo ra một đường ống bảo mật giữa
nơi nhận và nơi gửi gọi là Tunnel , Tunnel giống như một kết nối point-to-point trên
mạng riêng.
Sinh viên thực hiện: Lưu Việt Tùng – 20159550 Khóa 57 Lớp CNTT.TT2

13


Sinh viên thực hiện: Lưu Việt Tùng – 20159550 Khóa 57 Lớp CNTT.TT2

14



CHƯƠNG 2. LÝ THUYẾT TỔNG QUAN
2.1 :TỔNG QUAN VỀ MẬT MÃ VÀ ỨNG DỤNG
2.1.1 :Giới thiệu chung về mật mã
Mật mã đã được con người sử dụng từ lâu đời. Các hình thức mật mã sơ khai đã
được tìm thấy từ khoảng bốn nghìn năm trước trong nền văn minh Ai Cập cổ đại. Trải
qua hàng nghìn năm lịch sử, mật mã đã được sử dụng rộng rãi ở khắp nơi trên thế giới
từ Đông sang Tây để giữ bí mật cho việc giao lưu thông tin trong nhiều lĩnh vực hoạt
động giữa con người và các quốc gia, đặc biệt trong các lĩnh vực quân sự, chính trị,
ngoại giao. Mật mã trước hết là một loại hoạt động thực tiễn, nội dung chính của nó là
để giữ bí mật thông tin.. Để thực hiện được một phép mật mã, ta cần có một thuật toán
biến bản rõ cùng với khoá mật mã thành bản mã mật và một thuật toán ngược lại biến
bản mật cùng với khoá mật mã thành bản rõ. Các thuật toán đó được gọi tương ứng là
thuật toán lập mã và thuật toán giải mã. Các thuật toán này thường không nhất thiết
phải giữ bí mật, mà cái luôn cần được giữ bí mật là khoá mật mã. Trong thực tiễn, có
những hoạt động ngược lại với hoạt động bảo mật là khám phá bí mật từ các bản mã
“lấy trộm” được, hoạt động này thường được gọi là mã thám hay phá khoá
2.1.2 :Khái niệm mật mã và hệ mật mã
Khái niệm về mật mã.
Mã hóa (code): Biến đổi cách thức biểu diễn thông tin.
Mật mã ( cipher ):Mã Hóa để che giấu, giữ mật thông tin.
Mật mã học (cryptography ): Ngành khoa học nghiên cứu các phương pháp
toán học để mã hóa giữ mật thông tin.
Thám mã (cryptoanalysis) : Ngiên cứu các phương pháp toán học để phá vỡ hệ
mật mã.
Khái niệm về hệ mật mã.
Hệ mật mã được định nghĩa là một bộ năm (P, C, K, E, D), trong đó:
P là tập hữu hạn các các bản rõ có thể, C tập hữu hạn các bản mã có thể, K là tập hữu
hạn các khoá có thể, E là tập các hàm lập mã, D là tập các hàm giải mã. Với mỗi k

thuôc K, có một hàm lập mã
ek thuộc E, ek : P → C và một hàm giải mã dk thuộc D, dk: C → P sao cho
dk(ek(x)) = x , ∀ x thuộc P

Sinh viên thực hiện: Lưu Việt Tùng – 20159550 Khóa 57 Lớp CNTT.TT2

15


Hình 2. 1 Quá trình mã hoá và giải mã

2.1.3: Hệ mật mã đối xứng và bất đối xứng
Hệ mật mã gồm :
Hệ mật mã khóa đối xứng.

Hình 2. 2. Hệ mật mã khóa đối xứng

Symmetric cryptography, Secret-key cryptography: sử dụng cùng một khóa khi mã
hóa và giải mã. Được phát triển từ rất sớm. Thuật toán mã hóa: phối hợp các toán tử
thay thế, đổi chỗ, XOR .Tốc độ thực hiện các thuật toán nhanh, có thể thực hiện bằng
dễ dàng bằng phần cứng
Một số hệ mật mã khóa đối xứng hiện đại: DES, 2DES, 3DES, AES, RC4, RC5
Hạn chế: Cần kênh mật để chia sẻ khóa bí mật giữa các bên.Số lượng khóa lớn:
n(n-1)/2. Khó ứng dụng trong các hệ thống mở (E-commerce) Không dễ dàng để xác
thực đối với thông tin quảng bá
Sinh viên thực hiện: Lưu Việt Tùng – 20159550 Khóa 57 Lớp CNTT.TT2

16



Hệ mật mã phi đối xứng.

Hình 2. 3. Hệ mật mã phi đối xứng

Asymmetric key cryptography, Public key cryptography: Tháng 11/1976, Diffie và
Hellman giới thiệu ý tưởng về một kịch bản chia sẻ khóa bí mật (của hệ mật mã khóa
đối xứng) mới mà không truyền trực tiếp giá trị của khóa. Độ an toàn dựa trên độ khó.
Các thuật toán dựa trên các hàm toán học. Một số hệ mật mã khóa công khai: RSA, ElGamal
2.1.4 : Chữ kí số
Mật mã khoá công khai có thể được sử dụng theo nhiều cách khác nhau. Chữ ký
số là một ví dụ minh chứng cho việc đảm bảo xác thực người dùng và toàn vẹn dữ liệu.
Nếu người gửi A mã hoá thông điệp hay tài liệu với khoá cá nhân của mình thì bất kỳ
ai cũng có thể giải mã thông điệp với khoá công của A. Do đó, người nhận có thể chắc
chắn rằng thông điệp mình nhận chỉ có thể do A mã vì chỉ A mới có khoá cá nhân của
mình. Quá trình mã hoá thông điệp với khoá cá nhân của người gửi gọi là quá trình “ký
số”.
Trong thực tế, quá trình ký số thường khó hơn. Thay bằng việc mã bản thông
điệp gốc với khoá cá nhân của người gửi thì chỉ có bản đại diện thông điệp (bản băm)
có độ dài cố định được mã hoá với khoá cá nhân của người gửi và bản băm đã được mã
hoá này được gắn vào với thông điệp gốc. Người nhận B sau khi nhận được thông điệp
đầu tiên sẽ giải mã bản băm với khoá công của người gửi, sau đó băm thông điệp đi
kèm bằng thuật toán băm tương ứng với thuật toán băm người gửi đã sử dụng. B so
sánh hai giá trị băm nếu giống nhau thì chắc chắn rằng thông điệp A gửi cho B còn
nguyên vẹn, đồng thời xác thực được người gửi thông tin là ai.
Tính toàn vẹn của thông điệp được đảm bảo vì chỉ thay đổi một bit trong thông
điệp gửi đi thì kết quả hai giá trị băm sẽ khác nhau. Tính xác thực của người gửi cũng
được đảm bảo vì chỉ có người gửi A mới có khoá cá nhân để mã bản băm. Chữ ký số
cũng chứng minh được tính chống chối bỏ bản gốc vì chỉ có A mới có khoá cá nhân
dùng để ký số.
Sinh viên thực hiện: Lưu Việt Tùng – 20159550 Khóa 57 Lớp CNTT.TT2


17


Sơ đồ chữ ký được định nghĩa như sau:
Sơ đồ chữ ký là một bộ năm (P, A, K, S, V), trong đó:
P là một tập hữu hạn các văn bản có thể
A là một tập hữu hạn các chữ ký có thể
K là một tập hữu hạn các khoá có thể
S là tập các thuật toán ký
V là tập các thuật toán kiểm thử
Với mỗi k ∈ K, có một thuật toán ký sig k ∈ S, sig k: P → A và một thuật
toán kiểm thử ver k ∈ V, ver k: P x A → {đúng, sai}, thoả mãn điều kiện
sau đây với mọi x ∈ P, y ∈ A:

RSA cũng là thuật toán được dùng nhiều cho mục đích ký số. Sơ đồ chữ ký RSA được
mô tả Ngoài ra, còn có một số thuật toán công khai khác được dùng để ký số, ví dụ
như chuẩn chữ ký số DSS.
Cho n = p*q với p,q là số nguyên tố lớn . Đặt P = A = Zn
K = {(n, p, q, a, b)/ n = p*q, a*b ≡ 1 mod φ(n)}
trong đó (n,b) là công khai, (a, p, q) là bí mật
Với mỗi K = (n, p, q, a, b), mỗi x ∈ P, ta định nghĩa:
y = sigK (x) = xa mod n, y ∈ A
verK (x, y) = đúng ⇔ x ≡ yb mod n

Hình 2. 4Sơ đồ chữ ký RSA

Quá trình ký và kiểm tra chữ ký được mô tả trong hình
Giả sử A muốn gửi cho B thông điệp x. A thực hiện các bước sau:
1.A băm thông điệp x thu được bản đại diện z = h(x) – có kích

thước cố định 128 bit hoặc 160 bit.
2. A ký số trên bản đại diện z bằng khóa bí mật của mình, thu
được bản ký số y = sigK (z).
3. A gửi (x, y) cho B

Sinh viên thực hiện: Lưu Việt Tùng – 20159550 Khóa 57 Lớp CNTT.TT2

18


Hình 2. 5Băm thông điệp.

Hình 2. 6Ký trên bản băm.

Hình 2. 7Truyền dữ liệu thông tin cần gửi.

Sơ đồ mô tả các công đoạn người A làm trước khi gửi thông điệp
cho người B (sử dụng hàm băm rồi ký số)
Sinh viên thực hiện: Lưu Việt Tùng – 20159550 Khóa 57 Lớp CNTT.TT2

19


Khi B nhận được (x, y). B thực hiện các bước sau:
1. B kiểm tra chữ ký số để xác minh xem thông điệp mà mình nhận được có
phải được gửi từ A hay không bằng cách giải mã chữ ký số y, bằng khóa công
khai của A, được z.
2. B dùng một thuật toán băm – tương ứng với thuật toán băm mà A dùng – để
băm thông điệp x đi kèm, nhận được h(x).
3. B so sánh 2 giá trị băm z và h(x), nếu giống nhau thì chắc chắn rằng thông

điệp x – mà A muốn gửi cho B – còn nguyên vẹn, bên cạnh đó cũng xác thực
được người gửi thông tin là ai.

Hình 2. 8Xác minh chữ ký.

Hình 2. 9Tiến hành băm thông điệp x đi kèm.

Hình 2. 10Kiểm tra tính toàn vẹn của thông điệp

Sơ đồ mô tả các công đoạn kiểm tra chữ ký sau khi người B nhận
được thông điệp

Sinh viên thực hiện: Lưu Việt Tùng – 20159550 Khóa 57 Lớp CNTT.TT2

20


2.1.5 : Hàm băm
Hàm băm (tiếng Anh: hash function) là hàm sinh ra các giá trị băm tương ứng
với mỗi khối dữ liệu (có thể là một chuỗi kí tự, một đoạn tin nhắn...). Giá trị băm đóng
vai trò gần như một khóa để phân biệt các khối dữ liệu, tuy nhiên, người ta chấp nhận
hiện tượng trùng khóa hay còn gọi là đụng độ và cố gắng cải thiện giải thuật để giảm
thiểu sự đụng độ đó. Hàm băm thường được dùng trong bảng băm nhằm giảm chi phí
tính toán khi tìm một khối dữ liệu trong một tập hợp (nhờ việc so sánh các giá trị băm
nhanh hơn việc so sánh những khối dữ liệu có kích thước lớn).
Trong ngành mật mã học, một hàm băm mật mã học là một hàm băm với một
số tính chất bảo mật nhất định để phù hợp việc sử dụng trong nhiều ứng dụng bảo mật
thông tin đa dạng, chẳng hạn như chứng thực (authentication) và kiểm tra tính nguyên
vẹn của thông điệp (message integrity). Một hàm băm nhận đầu vào là một xâu ký tự
dài (hay thông điệp) có độ dài tùy ý và tạo ra kết quả là một xâu ký tự có độ dài cố

định, đôi khi được gọi là tóm tắt thông điệp (message digest) hoặc chữ ký số (digital
fingerprint).
Hàm băm - hiểu theo một nghĩa đơn giản là hàm cho tương ứng một mảng dữ liệu lớn
với một mảng dữ liệu nhỏ hơn - được sử dụng rộng rãi trong nhiều ứng dụng khác nhau
của tin học, không chỉ thuộc phạm vi mật mã học
Hàm băm được đề cập đến trong phạm vi đồ án là hàm băm một chiều, có tác
dụng trợ giúp cho các sơ đồ ký số nhằm làm giảm dung lượng của dữ liệu cần thiết để
truyền qua mạng. Hàm băm ở đây được hiểu là các thuật toán không sử dụng khoá để
mã hóa (ở đây ta dùng thuật ngữ “băm” thay cho “mã hoá”), nó có nhiệm vụ băm
thông điệp được đưa vào theo một thuật toán h một chiều nào đó, rồi đưa ra một bản
băm – văn bản đại diện – có kích thước cố định. Giá trị của hàm băm là duy nhất và
không thể suy ngược lại được nội dung thông điệp từ giá trị băm này. Hàm băm một
chiều h có một số đặc tính quan trọng sau:
- Với thông điệp đầu vào x thu được bản băm z = h(x) là duy nhất.
- Nếu dữ liệu trong thông điệp x thay đổi hay bị xóa để thành thông điệp x’ thì
h(x’) ≠ h(x). Cho dù chỉ là một sự thay đổi nhỏ hay chỉ là xóa đi 1 bit dữ liệu của thông
điệp thì giá trị băm cũng vẫn thay đổi. Điều này có nghĩa là: hai thông điệp hoàn toàn
khác nhau thì giá trị hàm băm cũng khác nhau.
- Nội dung của thông điệp gốc không thể bị suy ra từ giá trị hàm băm. Nghĩa là
với thông điệp x thì dễ dàng tính được z = h(x), nhưng lại không thể (thực chất là khó)
suy ngược lại được x nếu chỉ biết giá trị hàm băm h(x).
Một số thuật toán băm được biết đến nhiều là hàm băm dòng và hàm băm chuẩn
như: [MD2], [MD4], [MD5], [SHA-1]…
2.2 :TỔNG QUAN VỀ HẠ TẦNG KHÓA CÔNG KHAI PKI
2.2.1: Khái niệm hạ tầng khóa công khai PKI
Trong một vài năm lại đây, hạ tầng truyền thông IT càng ngày càng được mở
rộng khi mà người sử dụng dựa trên nền tảng này để truyền thông và giao dịch với các
đồng nghiệp, các đối tác kinh doanh cũng như việc khách hàng dùng email trên các
mạng công cộng. Hầu hết các thông tin kinh doanh nhạy cảm và quan trọng được lưu
Sinh viên thực hiện: Lưu Việt Tùng – 20159550 Khóa 57 Lớp CNTT.TT2


21


trữ và trao đổi dưới hình thức điện tử. Sự thay đổi trong các hoạt động truyền thông
doanh nghiệp này đồng nghĩa với việc người sử dụng phải có biện pháp bảo vệ tổ chức,
doanh nghiệp của mình trước các nguy cơ lừa đảo, can thiệp, tấn công, phá hoại hoặc
vô tình tiết lộ các thông tin đó. Cấu trúc hạ tầng PKI cùng các tiêu chuẩn và các công
nghệ ứng dụng của nó có thể được coi là một giải pháp tổng hợp và độc lập có thể sử
dụng để giải quyết vấn đề này.
Trong mật mã học, hạ tầng khóa công khai (Public Key Infracstructure – PKI) là
một cơ chế để cho một bên thứ 3 (thường là nhà cung cấp chứng thực số) cung cấp và
xác thực định danh các bên tham gia vào quá trình trao đổi thông tin. Cơ chế này cũng
cho phép gán cho mỗi người sử dụng trong hệ thống một cặp khóa công khai và khóa
bí mật. Các quá trình này thường được thực hiện bởi một phần mềm đặt tại trung tâm
và các phần mềm phối hợp khác tại các địa điểm của người dùng. Khóa công khai
thường được phân phối trong chứng thực khóa công khai.
Khái niệm hạ tầng khóa công khai (PKI) thường được dùng để chỉ toàn bộ hệ
thống bao gồm nhà cung cấp chứng thực số (Certificate Authority) cùng các cơ chế
liên quan đồng thời với toàn bộ việc sử dụng các thuật toán mã hóa khóa công khai
trong trao đổi thông tin.
Tới nay, những nỗ lực hoàn thiện PKI vẫn đang được đầu tư và thúc đẩy. Và để
hiện thực hoá ý tưởng này, các tiêu chuẩn cần phải được nghiên cứu phát triển ở các
mức độ khác nhau bao gồm: mã hoá, truyền thông và liên kết, xác thực, cấp phép và
quản lý. Nhiều chuẩn bảo mật trên mạng Internet, chẳng hạn Secure Sockets
Layer/Transport Layer Security (SSL/TLS) và Virtual Private Network (VPN), chính
là kết quả của sáng kiến PKI.
PKI là công nghệ xác thực đầu tiên và hoàn thiện nhất sử dụng phương pháp mã
hoá dựa trên khoá bí mật và khoá công cộng. Tuy nhiên, PKI cũng bao gồm cả việc
ứng dụng rộng rãi các dịch vụ bảo mật khác, bao gồm dịch vụ dữ liệu tin cậy, thống

nhất dữ liệu về tổng thể và quản lý mã khoá.
2.2.2: Các khái niệm trong hệ thống PKI
a, Chứng thư số - Chứng thư khóa công khai X.509
Mật mã khoá công khai sử dụng hai khoá khác nhau (khoá công và khoá cá
nhân) để đảm bảo yêu cầu “bí mật, xác thực, toàn vẹn và chống chối bỏ ” của những
dịch vụ an toàn. Một đặc tính quan trọng khác của lược đồ khoá công khai là phần
khoá công khai được phân phối một cách tự do. Ngoài ra, trong hạ tầng mã khoá công
khai thì khoá công ngoài việc phải luôn sẵn có để mọi người trong hệ thống có thể sử
dụng còn phải được đảm bảo về tính toàn vẹn.
Khoá công được đặt ở vị trí công khai trong một định dạng đặc biệt. Định dạng
này được gọi là chứng thư. Chứng thư (thực ra là chứng thư khoá công – public key
certificate (PKC)) là sự gắn kết giữa khoá công của thực thể và một hoặc nhiều thuộc
tính liên quan đến thực thể Thực thể có thể là người, thiết bị phần cứng như máy tính,
router hay một phần mềm xử lý. Một chứng thư khoá công (PKC) được người cấp ký
Sinh viên thực hiện: Lưu Việt Tùng – 20159550 Khóa 57 Lớp CNTT.TT2

22


bằng chữ ký có hiệu lực đưa ra một bảo bảm đầy đủ về sự gắn kết giữa khoá công, thực
thể sở hữu khoá công này và tập các thuộc tính khác được viết trong chứng thư.
PKC còn được gọi là “digital certificate”- chứng thư số, “digital ID”, hay đơn
giản là chứng thư.
Chứng thư chứa những thông tin cần thiết như khóa công khai, chủ thể (người sở hữu)
khoá công, người cấp và một số thông tin khác. Tính hợp lệ của các thông tin được
đảm bảo bằng chữ ký số của người cấp chứng thư. Người nào muốn sử dụng chứng thư
trước hết sẽ kiểm tra chữ ký số trong chứng thư. Nếu đó là chữ ký hợp lệ thì sau đó có
thể sử dụng chứng thư theo mục đích mong muốn.
Có nhiều loại chứng thư, một trong số đó là:
Chứng thư khoá công khai X.509

Chứng thư khoá công khai đơn giản (Simple Public Key Certificates - SPKC)
Chứng thư Pretty Good Privacy (PGP)
Chứng thư thuộc tính (Attribute Certificates - AC)

Hình 2. 11.Certificate

Tất cả các loại chứng thư này đều có cấu trúc định dạng riêng. Hiện nay chứng
thư khoá công khai X.509 được sử dụng phổ biến trong hầu hết các hệ thống PKI. Hệ
thống chương trình cấp chứng thư số thử nghiệm cũng sử dụng định dạng chứng thư
theo X.509, nên đồ án này tập trung vào xem xét chi tiết chứng thư công khai X.509.
Trong đồ án, thuật ngữ chứng thư “certificate” được sử dụng đồng nghĩa với chứng thư
khoá công khai X.509 v3.
b,Chứng thư khoá công khai X.509
Chứng thư X.509 v3 là định dạng chứng thư được sử dụng phổ biến và được
hầu hết các nhà cung cấp sản phẩm PKI triển khai.
Chứng thư khoá công khai X.509 được Hội viễn thông quốc tế (ITU) đưa ra lần
đầu tiên năm 1988 như là một bộ phận của dịch vụ thư mục X.500.
Sinh viên thực hiện: Lưu Việt Tùng – 20159550 Khóa 57 Lớp CNTT.TT2

23


Chứng thư gồm 2 phần. Phần đầu là những trường cơ bản cần thiết phải có trong
chứng thư. Phần thứ hai chứa thêm một số trường phụ, những trường phụ này được gọi
là trường mở rộng dùng để xác định và đáp ứng những yêu cầu bổ sung của hệ thống

Hình 2. 12 Chứng thư X.509

Những trường cơ bản của chứng thư X.509
Version: xác định số phiên bản của chứng thư.

Certificate Serial Number: do CA gán, là định danh duy nhất của chứng thư.
Signature Algorithm ID: chỉ ra thuật toán CA sử dụng để ký số chứng thư. Có
thể là thuật toán RSA hay DSA…
Issuer: chỉ ra CA cấp và ký chứng thư.
Validity Period: khoảng thời gian chứng thư có hiệu lực. Trường này xác định
thời gian chứng thư bắt đầu có hiệu lực và thời điểm hết hạn.
Subject: xác định thực thể mà khoá công khai của thực thể này được xác nhận.
Tên của subject phải duy nhất đối với mỗi thực thể CA xác nhận.
Subject public key information: chứa khoá công khai và những tham số liên
quan; xác định thuật toán (ví dụ RSA hay DSA) được sử dụng cùng với khoá.
Issuer Unique ID (Optional): là trường không bắt buộc, trường này cho phép sử
dụng lại tên người cấp. Trường này hiếm được sử dụng trong triển khai thực tế.
Subject Unique ID (Optional): là trường tuỳ chọn cho phép sử dụng lại tên của
subject khi quá hạn. Trường này cũng ít được sử dụng.
Extensions (Optional): chỉ có trong chứng thư v.3.
Certification Authority’s Digital Signature: chữ ký số của CA được tính từ
những thông tin trên chứng thư với khoá cá nhân và thuật toán ký số được chỉ ra trong
trường Signature Algorithm Identifier của chứng thư.
Sinh viên thực hiện: Lưu Việt Tùng – 20159550 Khóa 57 Lớp CNTT.TT2

24


Những trường mở rộng của chứng thư X.509
Authority Key Indentifier: chứa ID khoá công khai của CA, ID này là duy nhất
và được dùng để kiểm tra chữ ký số trên chứng thư. Nó cũng được sử dụng để phân
biệt giữa các cặp khoá do một CA sử dụng (trong trường hợp nếu CA có nhiều hơn một
khoá công khai). Trường này được sử dụng cho tất cả các chứng thư tự ký số (CA certificates).
Subject Key Identifier: chứa ID khoá công khai có trong chứng thư và được sử
dụng để phân biệt giữa các khoá nếu như có nhiều khoá được gắn vào trong cùng

chứng thư của người sử dụng (Nếu chủ thể có nhiều hơn một khoá công khai).
Key Usage: chứa một chuỗi bit được sử dụng để xác định (hoặc hạn chế) chức
năng hoặc dịch vụ được hỗ trợ qua việc sử dụng khoá công khai trong chứng thư.
Extended Key Usage: chứa một hoặc nhiều OIDs (định danh đối tượng – Object
Identifier) để xác định cụ thể việc sử dụng khoá công trong chứng thư. Các giá trị có
thể là : (1) xác thực server TLS, (2) xác thực client TLS, (3) Ký Mã, (4) bảo mật e-mail
, (5) Tem thời gian.
CRL Distribution Point: chỉ ra vị trí của CRL tức là nơi hiện có thông tin thu hồi
chứng thư. Nó có thể là URI (Uniform Resource Indicator), địa chỉ của X.500 hoặc
LDAP server.
Private Key Usage Period: trường này cho biết thời gian sử dụng của khoá cá
nhân gắn với khóa công khai trong chứng thư.
Certificate Policies: trường này chỉ ra dãy các chính sách OIDs gắn với việc cấp
và sử dụng chứng thư.
Policy Mappings: trường này chỉ ra chính sách xác thực tương đương giữa hai
miền CA. Nó được sử dụng trong việc thiết lập xác thực chéo và kiểm tra đường dẫn
chứng thư. Trường này chỉ có trong chứng thư CA.
Subject Alternative Name: chỉ ra những dạng tên lựa chọn gắn với người sở hữu
chứng thư. Những giá trị có thể là: địa chỉ e-mail, địa chỉ IP, địa chỉ URI…
Issuer Alternative Name: chỉ ra những dạng tên lựa chọn gắn với người cấp
chứng thư.
Subject Directory Attributes: trường này chỉ ra dãy các thuộc tính gắn với người
sở hữu chứng thư. Trường mở rộng này không được sử dụng rộng rãi. Nó được dùng
để chứa những thông tin liên quan đến đặc quyền.
Basic Constraints Field: trường này cho biết đây có phải là chứng thư CA hay
không bằng cách thiết lập giá trị logic (true). Trường này chỉ có trong chứng thư CA.
Chứng thư CA dùng để thực hiện một số chức năng. Chứng thư này có thể ở một trong
hai dạng. Nếu CA tạo ra chứng thư để tự sử dụng, chứng thư này được gọi là chứng thư
CA tự ký. Khi một CA mới được thiết lập, CA tạo ra một chứng thư CA tự ký để ký
lên chứng thư của người sử dụng cuối trong hệ thống. Và dạng thứ hai là CA cấp

chứng thư cho những CA khác trong hệ thống.
Path Length Constraint: trường này chỉ ra số độ dài tối đa của đường dẫn chứng
thư có thể được thiết lập. Giá trị “zero” chỉ ra rằng CA chỉ có thể cấp chứng thư cho
thực thể cuối , không cấp chứng thư cho những CA khác. (Trường này chỉ có trong
chứng thư của CA).
Sinh viên thực hiện: Lưu Việt Tùng – 20159550 Khóa 57 Lớp CNTT.TT2

25


×