Tải bản đầy đủ (.pdf) (24 trang)

NGHIÊN CỨU VỀ HẠ TẦNG KHÓA CÔNG KHAI PKI, ỨNG DỤNG VÀO BẢO MẬT THÔNG TIN TRONG PHẦN MỀM QUẢN LÝ BỆNH VIỆN

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 (850.15 KB, 24 trang )



HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG



Lê Anh Tuấn



NGHIÊN CỨU VỀ HẠ TẦNG KHÓA CÔNG KHAI
PKI, ỨNG DỤNG VÀO BẢO MẬT THÔNG TIN
TRONG PHẦN MỀM QUẢN LÝ BỆNH VIỆN

Chuyên ngành: Hệ thống thông tin
Mã số: 60.48.01.04


TÓM TẮT LUẬN VĂN THẠC SĨ








HÀ NỘI - 2013


Luận văn được hoàn thành tại:


HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG


Người hướng dẫn khoa học: PGS. TS. Đặng Văn Chuyết


Phản biện 1: ……………………………………………………………………………

Phản biện 2: …………………………………………………………………………




Luận văn sẽ được bảo vệ trước Hội đồng chấm luận văn thạc sĩ tại Học viện Công nghệ Bưu
chính Viễn thông
Vào lúc: giờ ngày tháng năm

Có thể tìm hiểu luận văn tại:
- Thư viện của Học viện Công nghệ Bưu chính Viễn thông














HÀ NỘI - 2013



1

MỞ ĐẦU
1. Lý do chọn đề tài
Ngày nay với sự phát triển của công nghệ thông tin, việc giao tiếp qua mạng Internet
ngày càng phát triển và trở thành một trong những phương tiện quan trọng nhất. Tính phổ
biến rộng rãi của Internet một mặt đem lại nhiều ứng dụng tiện lợi, thú vị và hầu hết các
thông tin nhạy cảm và quan trọng đều được lưu trữ và trao đổi trên môi trường Internet; mặt
khác nó đặt ra các vấn đề về sự an toàn, tính tin cậy của những trao đổi trên Internet, với
những thủ đoạn tinh vi, nguy cơ các thông tin này bị đánh cắp qua mạng thật sự là vấn đề
đáng quan tâm. Cơ sở hạ tầng khóa công khai (PKI) có thể ứng dụng để giải quyết những
vấn đề về an toàn thông tin. Dựa trên các dịch vụ cơ bản về chứng thực số và chữ ký số, một
PKI chính là bộ khung của các chính sách, dịch vụ và phần mềm mã hóa, đáp ứng nhu cầu
bảo mật của người sử dụng.
Chứng thực số hiện còn được sử dụng như một dạng chứng minh thư cá nhân. Chứng
thực số CA có thể được tích hợp vào các chip nhớ nằm trong thẻ căn cước, thẻ tín dụng để
tăng cường khả năng bảo mật, chống giả mạo, cho phép chủ thẻ xác thực danh tính của
mình trên nhiều hệ thống khác nhau, chẳng hạn như xe bus, thẻ rút tiền ATM, kiểm soát hải
quan, ra vào chung cư .v.v.
Vấn đề đảm bảo an ninh, an toàn thông tin dữ liệu là nội dung nghiên cứu thiết thực,
là chủ đề luôn được các cấp, các ngành quan tâm trong lĩnh vực công nghệ thông tin. Nhu
cầu đảm bảo an ninh thông tin dữ liệu trên mạng máy tính là cấp thiết trong các hoạt động
kinh tế xã hội, đặc biệt là đối với các mạng máy tính chuyên dùng phục vụ công tác an ninh,
quốc phòng, đối ngoại của các cơ quan Đảng, Nhà nước,…

Hiện nay hầu hết các Bệnh viện đều đã và đang sử dụng hệ thống phần mềm quản lý
bệnh viện để lưu trữ thông tin trên mạng, có thể truy xuất vào bất cứ thời điển nào, việc tìm
kiếm thông tin dễ dàng và chính xác, giúp cho việc quản lý và khám chữa bệnh tại bệnh
viện trở nên dễ dàng hơn.
Tuy nhiên, việc đưa thông tin lên mạng đó mang lại tiềm ẩn nhiều rủi ro, trong đó
đặc biệt phải kể đến những rủi ro về bảo mật nhất là thông tin trong hệ thống là thông tin
của mỗi bệnh nhân. Đây là thông tin nhạy cảm và cần phải xác thực được tính chính xác vì
những sai sót sẽ dẫn đến hậu quả nghiêm trọng. Bên cạnh đó, do việc khám chữa bệnh có
thể nảy sinh nhiều vấn đề, thông tin y tế là thông tin cần bảo mật do vậy cần có giám sát sự
thay đổi thông tin.
2

Do hệ thống phần mềm Bệnh viện được đưa vào sử dụng sẽ phục vụ cho số lượng
bệnh nhân lớn, số lượng các bác sỹ tham gia khâu khám chữa bệnh rất nhiều, vì vậy hệ
thống phải được xây dựng trên cơ sở tích hợp hoạt động với một hệ thống phân phối và
kiểm soát khóa một cách chính xác. Đó chính là cơ sở của việc áp dụng PKI vào cung cấp
các chức năng an toàn bảo mật cho hệ thống phần mềm Bệnh viện, vì vậy em chọn đề tài:
“Nghiên cứu về hạ tầng khóa công khai PKI, ứng dụng vào bảo mật thông tin trong phần
mềm quản lý Bệnh viện” làm đề tài luận văn tốt nghiệp.
2. Mục đích nghiên cứu
Nghiên cứu về hạ tầng khóa công khai PKI, ứng dụng của hạ tầng khóa công khai
vào hệ thống quản lý phần mềm Bệnh viện cụ thể là: Xác thực chữ ký của người người cập
nhật thông tin của bệnh nhân mà mình khám, và mã hóa thông tin bệnh nhân đó.
3. Đối tượng và phạm vi nghiên cứu
- Xác thực và mã hóa ứng dụng khóa công khai PKI là đối tượng nghiên cứu chính
của đề tài nhằm xác thực người dùng đã ký lên thông tin của bệnh nhân và mã hóa thông tin
của bệnh nhân.
- Phạm vi nghiên cứu: đề tài nghiên cứu xác thực và mã hóa ứng dụng khóa công
khai trong trường hợp bệnh nhân đến khám và người khám cần an toan thông tin của minh
đã khám cho bệnh nhân đó và cần bảo mật thông tin của bệnh nhân đến khám.

4. Phương pháp nghiên cứu
- Tìm hiểu hạ tầng khóa công khai PKI , tìm hiểu ứng dụng của PKI. Từ đó lựa chọn
ra giải pháp để ứng dụng trong hệ thống quản lý Bệnh viện.
- Thu thập các tài liệu, các bài báo trên tạp chí khoa học trong nước, nước ngoài, và
các tài liệu trên mạng internet có liên quan đến nội dung nghiên cứu.
- Tham khảo, vận dụng và kế thừa các thuật toán, mã đã có.
3

Các nội dung chính trình bày:
CHƯƠNG 1: HẠ TẦNG MÃ KHÓA CÔNG KHAI
Ở chương này luận văn sẻ tìm hiểu về khái niệm hạ tầng mã khóa công khai, chứng
chỉ số.
CHƯƠNG 2: BẢO MẬT HỒ SƠ BỆNH NHÂN
Ở chương này nêu lên một bài toán cần bảo mật và mã hóa thông tin của một bệnh
nhân.
CHƯƠNG 3: TÌM HIỂU PKI – EJBCA
Ở chương này tìm hiểu về EJBCA và cách cài đặt.
CHƯƠNG 4: TRIỂN KHAI ỨNG DỤNG PKI - BẢO MẬT THÔNG
TIN TRONG PHẦN MỀM QUẢN LÝ BỆNH VIỆN
Trong chương này sẻ giới thiệu demo ứng dụng PKI vào việc bảo mật thông tin một
hồ sơ bệnh nhân đến khám.
4

CHƯƠNG 1: HẠ TẦNG MÃ KHÓA CÔNG KHAI
1.1. PKI là gì?
Một PKI (Public Key Infrastructure) cho phép người sử dụng của một mạng công cộng
không bảo mật, chẳng hạn như Internet, có thể trao đổi dữ liệu và tiền một cách an toàn
thông qua việc sử dụng một cặp mã khóa công khai và khóa cá nhân được cấp phát và sử
dụng thông qua một nhà cung cấp chứng thực được tín nhiệm. Nền tảng khóa công khai
cung cấp một chứng chỉ số, dùng để xác minh một cá nhân hoặc một tổ chức, và các dịch vụ

danh mục có thể lưu trữ và khi cần có thể thu hồi các chứng chỉ số. Mặc dù các thành phần
cơ bản của PKI đều được phổ biến, nhưng một số nhà cung cấp đang muốn đưa ra một
chuẩn PKI riêng khác biệt. Một tiêu chuẩn chung về PKI trên Internet cũng đang trong quá
trình xây dựng.
1.2. Chức năng của PKI
PKI cho phép những người tham gia xác thực lẫn nhau. Mục tiêu chính của PKI là
cung cấp khóa công khai và xác định mối liên hệ giữa khóa và định dạng người dùng. Nhờ
vậy người dùng có thể sử dụng trong một số ứng dụng như:
- Mã hóa, giải mã văn bản
- Xác thực người dùng ứng dụng.
- Mã hóa Email hoặc xác thực người gửi Email.
- Tạo chữ ký số trên văn bản điện tử
1.3. Mã hóa khóa công khai
- Là một chuyên ngành của mật mã học cho phép người sử dụng trao đổi các thông
tin mật mà không cần phải trao đổi các khóa chung bí mật trước đó. Điều này được thực
hiện bằng cách sử dụng một cặp khóa có quan hệ toán học với nhau là khóa công khai và
khóa cá nhân (hay khóa bí mật).
- Trong mật mã học khóa công khai, khóa cá nhân phải được giữ bí mật trong khi
khóa công khai được phổ biến công khai. Trong 2 khóa, một dùng để mã hóa và khóa còn
lại dùng để giải mã. Điều quan trọng đối với hệ thống là không thể tìm ra khóa bí mật nếu
chỉ biết khóa công khai.
1.4. Các thành phần của PKI
- Certification Authorities (CA)
 Cấp và thu hồi chứng thư
- Registration Authorities (RA)
5

 Tiếp nhập thông tin đăng ký chứng chư
 Gắn kết giữa khóa công khai và định danh của người giữ chứng thư
- End entity

 Người sử dụng chứng thư
 Hệ thống là chủ thể của chứng thư như webserver, mailserver v.v
- Repository
 Hệ thống (có thể tập trung hoặc phân tán) lưu trữ chứng thư và danh sách các
chứng thư bị thu hồi
 Cung cấp cơ chế phân phối chứng thư và danh sách thu hồi chứng thư (CRLs -
Certificate Revocatio Lists)

Hình 1.1: Mô hình PKI
1.5. Mô hình hoạt động của PKI
1.5.1. Đăng ký và phát hành chứng thư số

Hình 1.2: Quy trình đăng ký chứng thư số
6

Các bước thực hiện đăng ký chứng thư số:
 User gửi thông tin về bản thân tới RA để đăng ký. Thông tin này có thể là họ
tên, số chứng minh thư, email, địa thư v.v
 RA ký yêu cầu được chấp thuận và gửi thông tin về User đến trung tâm CA.
 CA tạo chứng thư trên khóa công khai, ký bằng khóa bí mật của CA và cập
nhật chứng thư trên cơ sở dữ liệu LDAP, MySQL v.v
 CA gửi chứng thư trở lại RA.
 RA cấp chứng thư cho người sử dụng.
1.5.2. Sử dụng chứng thư số
Mục đích sử dụng chứng thư số để đảm bảo các dịch vụ sau:
- Xác thực: đảm bảo cho một người dùng rằng một thực thể nào đó đúng là đối tượng
mà họ đang cần khẳng định. Có thể là xác minh thực thể hoặc xác minh nguồn gốc dữ liệu
- Bí mật: đảm bảo bí mật của dữ liệu. Không ai có thể đọc dữ liệu ngoại trừ những
thực thể được phép. Tính bí mật được yêu cầu khi dữ liệu được lưu trữ trên các thiết bị như
ổ đĩa, usb hay được truyền trên các mạng không được bảo vệ hoặc mức độ an toàn thấp.

- Toàn vẹn dữ liệu: đảm bảo dữ liệu không bị thay đổi, nếu có thay đổi thì sẽ bị phát
hiện. Để đảm bảo tính toàn vẹn, một hệ thống phải có khả năng phát hiện những thay đổi dữ
liệu trái phép với mục đích là giúp cho người nhận dữ liệu xác minh được rằng dữ liệu của
mình có bị thay đổi hay không.
1.6. Các chức năng cơ bản của PKI
1.6.1. Chứng thực
Chứng thực là chức năng quan trọng nhất của hệ thống PKI. Đây là quá trình ràng
buộc khóa công khai với định danh của thực thể. CA là thực thể PKI thực hiện chức năng
chứng thực.
1.6.2. Thẩm tra
Quá trình xác dịnh liệu chứng chỉ đã đưa ra có thể đuợc sử dụng đúng mục đích thích
hợp hay không được xem như là quá trình kiểm tra tính hiệu lực của chứng chỉ.
1.6.3. Một số chức năng khác
Hệ thống PKI thực hiện chức năng chứng thực, thẩm tra cùng với một số chức năng
phụ trợ khác. Dưới đây là một số chức năng và dịch vụ được hầu hết các hệ thống PKI cung
cấp. Một số những chức năng khác có thể được định nghĩa tuỳ theo yêu cầu cụ thể của các
hệ thống PKI.
7

- Đăng ký.
- Khởi tạo ban đầu.
- Khôi phục cặp khóa.
- Tạo khóa.
- Hạn sử dụng và cập nhật khóa.
- Xâm hại khóa.
- Thu hồi.
- Công bố và gửi thông báo thu hồi chứng chỉ.
- Xác thực chéo.
1.7. Các mô hình của PKI
Một số mô hình tin cậy có thể được áp dụng hoặc được đề xuất sử dụng trong hạ tầng

mã hóa công khai –PKI dựa trên x.509:
- Single CA Model (mô hình CA đơn)
- Hierarchical Model (Mô hình phân cấp)
- Mesh Model (Mô hình mắt lưới- xác thực chéo)
- Web Model (Trust List) (Mô hình web)
- Hub and Spoke (Birdge CA) (Mô hình cầu CA)
1.8. Chứng chỉ số
1.8.1. Giới thiệu chứng chỉ số
Chứng chỉ số là một văn bản điện tử kết hợp một chữ ký số để ràng buộc khóa công
khai với đối tượng chủ khóa (cá nhân, một công ty, một máy chủ,…). Chứng chỉ số tồn tại
dưới dạng tập tin để có thể dễ dàng truyền qua môi trường mạng. Chứng chỉ số được sử
dụng giống như một Chứng minh nhân dân truyền trên mạng, cho phép người sử dụng
chứng minh mình là ai khi tham gia các giao dịch điện tử.
Chứng chỉ số do một bên thứ ba đáng tin cậy là CA phát hành sau khi kiểm tra tính
xác thực của thông tin người chủ khóa. CA áp dụng chữ ký số của mình vào các chứng chỉ
do bản thân phát hành vì vậy các bên tham gia giao dịch nếu tin tưởng vào CA thì có thể tin
tưởng vào các chứng chỉ số.
Trong chứng chỉ số có ba thành phần chính:
 Thông tin cá nhân của người được cấp.
 Khóa công khai (Public key) của người được cấp.
 Chữ ký số của CA cấp chứng chỉ.
8

 Thời gian hợp lệ
1.8.2. Lợi ích của chứng chỉ số
1.8.2.1. Mã hóa
Lợi ích đầu tiên của chứng chỉ số là tính bảo mật thông tin. Khi người gửi đã mã hóa
thông tin bằng khóa công khai của bạn, chắc chắn chỉ có bạn mới giải mã dược thông tin để
đọc.
1.8.2.2. Chống giả mạo

Khi bạn gửi đi một thông tin, có thể là một dữ liệu hoặc một Email, có sử dụng
chứng chỉ số, người nhận sẽ kiểm tra được thông tin của bạn có bị thay đổi hay không. Bất
kỳ một sự sửa đổi hay thay thế nội dung của thông điệp gốc đều sẽ bị phát hiện.
1.8.2.3 Xác thực
Khi sử dụng một chứng chỉ số, người nhận có thể là đối tác kinh doanh, tổ chức hoặc
cơ quan chính quyền sẽ xác định rõ được danh tính của bạn. Có nghĩa là dù không nhìn thấy
bạn, nhưng qua hệ thống chứng chỉ số mà bạn và người nhận cùng sử dụng, người nhận sẽ
biết chắc chắn đó là bạn chứ không phải ai khác.
1.8.2.4 Chống chối bỏ nguồn gốc
Khi sử dụng một chứng chỉ số, bạn phải chịu trách nhiệm hoàn toàn về những thông
tin mà chứng chỉ số đi kèm. Trong trường hợp người gửi chối cãi, phủ nhận một thông tin
nào đó không phải do mình gửi (chẳng hạn qua mạng) chứng chỉ số mà người nhận có được
sẽ là bằng chứng khẳng định người gửi là tác giả của thông tin đó.
1.8.2.5. Chữ ký điện tử
Email đóng vai trò khá quan trọng trong trao đổi thông tin hàng ngày của chúng ta vì
ưu điểm nhanh, rẻ và dễ sử dụng. Những thông điệp có thể gửi đi nhanh chóng qua internet
đến khách hàng đồng nghiệp, nhà cung cấp và đối tác. Tuy nhiên, email rất dễ bị đọc bởi các
Hacker. Những thông điệp có thể bị đọc hay bị giả mạo trước khi đến người nhận.
Bằng việc sử dụng chứng chỉ cá nhân, bạn sẽ ngăn ngừa được các nguy cơ này mà vẫn
không làm giảm những lợi thể của Email. Với chứng chỉ số cá nhân, bạn có thể tạo thêm
một chữ ký điện tử vào email như một bằng chứng xác nhận của mình. Chữ ký điện tử cũng
có tính năng xác thực thông tin, toàn vẹn dữ liệu và chống chối bỏ nguồn gốc.
1.8.2.6 Bảo mật Website
Khi website của bạn sử dụng cho mục đích thương mại điện tử hay cho những mục
đích quan trọng khác, những thông tin trao đổi giữa bạn và khách hàng có thể bị lộ. Để tránh
nguy cơ này, bạn có thể dùng chứng chỉ số SSL server để bảo mật cho Website của mình.
9

1.8.2.7 Đảm bảo phần mềm
Chứng chỉ số nhà phát triển phần mềm sẽ cho phép bạn ký vào các applet, script,

Java software, ActiveX control, các file định dạng EXE, CAB, DLL Như vậy, thông qua
chứng chỉ số bạn sẽ đảm bảo tính hợp pháp cũng như nguồn gốc xuất xứ của sản phẩm. Hơn
nữa người dùng có thể xác thực được bạn là nhà cung cấp, phát hiện được sự thay đổi của
chương trình(virus, crack, bản lậu ).
10

CHƯƠNG 2: BẢO MẬT HỒ SƠ BỆNH NHÂN
2.1. Yêu cầu an toàn bảo mật
Dữ liệu y tế của mỗi cá nhân là thông tin hết sức nhạy cảm và cần phải bảo mật, vì
việc để lộ thông tin y tế sẽ gây ra nhiều hậu quả nghiêm trọng. Vì vậy, hệ thống quản lý
Bệnh viện với vai trò chính là quản lý và chia sẻ thông tin y tế phải đảm bảo được một số
yêu vầu về an toàn và bảo mật nhất định, cụ thể như sau:
o Tính bảo mật: Các thông tin trong hệ thống phải được giữ kín trong quá trình truyền
tải và lưu trữ, chỉ có người có thẩm quyền mới có quyền truy cập thông tin theo mức
độ mà thẩm quyền đó cho phép.
o Tính toàn vẹn: Thông tin lưu trữ trong hệ thống phải đảm bảo tính toàn vẹn, chính
xác như khi nó được tạo ra.
o Tính xác thực: Đảm bảo hệ thống có thể xác định được rõ ràng ai là người cung cấp
các thông tin được chuyển giao trong hệ thống nhằm xác định vai trò trách nhiệm của
các cơ sở y tế đối với sức khỏe của bệnh nhân.
o Tính chống chối bỏ: Đảm bảo các đối tượng tham gia hoạt động trên hệ thống có
trách nhiệm về nội dung mà mình đã tạo ra và không thể chối bỏ các nội dung mà
bản thân đã đồng ý.
2.2. Ứng dụng bảo mật hồ sơ bệnh nhân
Các hệ thống phần mềm quản lý Bệnh viện nói chung đều yêu cầu đáp ứng một số
yêu cầu an toàn cần nhất định. Bên cạnh các giải pháp an toàn được cung cấp bởi một bên
thứ ba như các giải pháp an ninh vật lý, firewall, mã hóa kênh truyền, điều quan trọng là
hệ thống khi xây dựng cũng phải được tích hợp sẵn các module bảo mật. Các biện pháp phổ
biến được áp dụng có thể kể đến như:
o Username/Password: Với việc sử dụng Username/Password cố định thì việc

triển khai rất đơn giản, nhanh chóng nhưng phương án này có nhược điểm là
máy tính bị xâm nhập, nhiễm virus, nghe lén trên đường truyền.
o OTP: Là giải pháp tăng cường mức độ an ninh hơn phương pháp sử dụng
username/password cố định. Tuy nhiên, giải pháp này vẫn không đảm bảo
được đầy đủ các yêu cầu cơ bản về an toàn bảo mật như: tính chống chối bỏ,
tính toàn vẹn.
11

o Chứng thư số: Giải pháp sử dụng chứng thư số trong xác thực trên các hệ
thống điển tử hiện nay là biện pháp đảm bảo các yếu tố an toàn và an ninh
nhất.
Với những đặc điểm riêng biệt trong quá trình hoạt động cũng như yêu cầu khá toàn
diện trong khía cạnh an toàn bảo mật như đã được phân tích ở trên, hệ thống phần mềm
quản lý Bệnh viện cần thiết một giải pháp tương đối toàn diện. Vì vậy em xin đề xuất áp
dụng biện pháp tích hợp vào hệ thống phần mềm quản lý Bệnh viện giải pháp sử dụng
chứng thư số cung cấp bởi hạ tầng PKI – EJBCA trong quá trình xác thực và mã hóa thông
tin kết hợp với việc sử dụng Username/ password trong việc đăng nhập/ phân quyền nhằm
đem lại hiệu quả hơn.
2.3. Giải pháp bảo mật hồ sơ
Đối với các hệ thống thông thường, quá trình đăng nhập hệ thống sử dụng Username
và password. Đây là phương thức xác thực cổ điển có độ an toàn không cao, có thể sử dụng
thêm chứng thư để đăng nhập vào hệ thống. Phương pháp này có độ an toàn cao, tránh được
các nguy cơ về bảo mật, mất tài khoản.
Sau khi đăng nhập và nhập dữ liệu bệnh nhân, tùy theo mức độ cần bảo mật của
thông tin bệnh nhân mà người bác sỹ có thể chọn yêu cầu phù hợp. Ký số đối với những
thông tin có thể công khai cho người khác biết, mọi người có thể xem được thông tin này
nhưng không thể chỉnh sửa và chỉ khi người ký sau khi xác thực lại mới được chỉnh sửa.
Nếu sử dụng mã hóa bảo mật đối với những thông tin bệnh nhân có tính bí mật cao, không
cho người khác xem nội dung thông tin, đối với những thông tin này chỉ duy nhất người tạo
có quyền xem nội dung.

2.3.1. Quá trình ký số
Sơ đồ thực hiện quy trình:

Hình 2.1: Quy trình ký số
12

- Quá trình đăng nhập hệ thống:
 Mỗi tài khoản trên hệ thống được lưu giữ bao gồm các thông tin Username,
password, certificate.
o Sử dụng username password để đăng nhập nếu đúng với thông tin được
lưu trữ trên hệ thống thì cho đăng nhập.
o Sử dụng chứng thư số để đăng nhập hệ thống: Mỗi tài khoản người
dùng được gắn với một certificate. Khi người dùng sử dụng certificate
để đăng nhập vào hệ thống, người dùng sẽ sử dụng khóa bí mật để tạo
ra chữ ký số lên dữ liệu được tạo ngẫu nhiên, sau đó chương trình sẽ sử
dụng certificate được lưu trữ trên hệ thống để xác thực chữ ký số của
người dùng. Nếu quá trình xác thực thành công thì cho đăng nhập.
 Khi khám bệnh, bác sĩ điền thông tin về bệnh nhân bao gồm mã bệnh nhân, họ
tên, chuẩn đoán, xét nghiệm, đơn thuốc Sau khi nhập đầy đủ thông tin bệnh
nhân và kê đơn, bác sĩ sẽ tiến hành lưu vào hệ thống. Để xác nhận y bạ bệnh
nhân do mình lập, bác sĩ sẽ sử dụng khóa bí mật để tạo ra chữ ký số ký lên file
lưu dữ liệu của bệnh nhân (XML). Chữ ký số trên file dữ liệu đảm bảo tính
xác thực của hệ thống.
- Quá trình xác thực để chỉnh sửa:
 File dữ liệu có chữ ký số xác thực. Khi tra cứu mã số bệnh nhân có thể xem
được thông tin về bệnh nhân, bệnh án, đơn thuốc. Do có chữ ký số, để chỉnh
sửa thì bác sĩ cần xác thực mình chính là người kê đơn. Chương trình sử dụng
certificate của tài khoản được đăng nhập để xác thực chữ ký trong file dữ liệu
(xml). Nếu người đăng nhập hệ thống chính là người tạo kê đơn (xác thực
đúng với chứng thư tạo ra chữ ký trên file) thì mới có quyền sửa dữ liệu và

ngược lại hệ thống sẽ báo xác thực không thành công và sẽ chỉ có quyền xem
dữ liệu chứ không có quyền chỉnh sửa.
2.3.2. Mã hóa thông tin bệnh nhân
Một vài trương hợp đặc biệt bệnh nhân đến khám cần giữ bí mật thông tin khám
bệnh, thông tin tên tuổi, bênh lý, họ chỉ có nhu cầu chia sẻ với chính người khám và cần giữ
bí mật, kể cả với các bác sĩ khác. Vì vậy cần mã hóa thông tin khám của bệnh nhân đó.
Sơ đồ thực hiện quy trình:
13


Hình 2.2: Quy trình mã hóa thông tin
- Quá trình mã hóa:
 Đăng nhập hệ thống: Sử dụng username password hoặc sử dụng certificate.
 Cập nhật thông tin của bệnh nhân đến khám, bác sĩ sẽ tiến hành mã hóa file
theo yêu cầu của bệnh nhân. Chương trình sẽ sử dụng chuỗi số (mật khẩu mã
hóa) để tiến hành mã hóa file. Phương thức sử dụng là mã hóa đối xứng để
bảo vệ thông tin bệnh nhân.
- Quá trình giải mã để xem và chỉnh sửa thông tin:
 Đăng nhập hệ thống: Sử dụng username password hoặc sử dụng certificate.
 Xác thực thông tin mã hóa:
o Khi đăng nhập hệ thống, bác sĩ điền mã số bênh nhân cần tra cứu thông
tin, đối với thông tin được mã hóa sẽ không hiển thị nội dung. Do đó để
xem và chỉnh sửa nhưng nội dung này bác sĩ cần giải mã thông tin.
Phương thức mã hóa đối xứng được sử dụng để giải mã, khóa của quá
trình giải mã chính là mật khẩu được sử dụng khi bác sĩ mã hóa thông
tin lúc tạo hồ sơ.
14

CHƯƠNG 3: TÌM HIỂU PKI – EJBCA
3.1. PKI – EJBCA

EJBCA là sản phẩm mã nguồn mở của hãng Primekey. Đây là một CA được xây
dựng dựa trên công nghệ Java J2EE, nhờ đó hiệu suất hoạt động cũng như khả năng tùy biến
của CA là tương đối cao so với các hệ thống mã nguồn mở khác. Bên cạnh đó, EJBCA còn
cung cấp các tính năng và thành phần (OCSP, RA Service, Publisher, ) giúp cấu thành một
hệ thống PKI tương đối đầy đủ và hoàn thiện.
3.2. Đặc điểm kỷ thuật
Được xây dựng dựa trên Java, EJBCA thực sự là một nền tảng độc lập, chạy trên hầu
như toàn bộ các phần cứng phổ biến cũng như các hệ điều hành thông dụng như: Windows,
Linux. Để có thể hoạt động, EJBCA cần chạy trên một nền tảng máy chủ ứng dụng
(Application Server) cũng như một hệ thống Cơ sở dữ liệu nhất định. Về mặt này, EJBCA
cũng hỗ trợ hầu hết các nền tảng App Server phổ biến hiện này như: JBOSS – Oracle
Weblogic – IBM Web Sphere cũng như các hệ cơ sở dữ liệu từ miễn phí đến trả phí:
MySQL, Oracle, IBM DB2, MS SQL,
Bên cạnh đó, EJBCA còn có một số điểm đặc trưng sau:
o Cung cấp khả năng xây dựng CA theo nhiều mức, không giới hạn số lượng
CA.
o Hỗ trợ thuật toán RSA với độ dài khóa lên tới 4096 bits.
o Hỗ trợ các thuật toán DSA với độ dài khóa lên tới 1024 bits.
o Hỗ trợ các hàm băm như MD5, SHA-1, SHA-256.
o Chứng thư được phát hành tuân thủ nghiêm ngặt chuẩn X509.
3.3. Kiến trúc EJBCA

Hình 3.1: Kiến trúc EJBCA
15

EJBCA được xây dựng với kiến trúc phân tầng, cụ thể như sau:
 Data Tier – Tầng dữ liệu: Tầng dữ liệu lưu trữ các chứng nhận, CRL cũng như các
thực thể cuối.
 Thành phần CA: Thành phần có chức năng tạo các CA gốc, CA con, chứng nhận,
CRL và giao tiếp với kho chứa LDAP để lưu trữ thông tin chứng nhận.

 Thành phần RA: Thành phần có chức năng tạo, xóa và hủy bỏ người dùng.
 Tầng Web Tier: Đây là giao diện (điển hình là giao diện người – máy bằng đồ họa)
để trình khách tương tác với hệ thống EJBCA, đồng thời quy định các cấp độ và
phạm vi truy cập thông tin khác nhau cho thực thể cuối.
 Trình khách: Trình khách là thực thể cuối hay người sử dụng như trình khách
thư điện tử, máy chủ web, trình duyệt web hay cổng VPN.
3.4. Chức năng
EJBCA là một tổ chức chứng nhận rất phổ biến hiện đang được sử dụng, một trong
những CA được ưa thích hiện nay. Các đặc trưng cơ bản của CA này bao gồm sự lựa chọn
của thuật toán ta cần như tùy chọn chọn giữa các thuật toán SHA1 hay SHA256 với RSA và
với các kích thước khóa khác nhau như 1024, 2048 và 4096.
EJBCA cung cấp một số tính năng nổi bật về lựa chọn ngôn ngữ trong quá trình cấu
hình hệ thống. Ngoài ra ta cũng có thể chọn loại publisher chúng ta muốn như LDAP, thư
mục động (AD – Active Directory) hay một kết nối publisher tự làm.
3.5. Đánh giá
Ngoài EJBCA còn có các sản phẩm khác có thể triển khai hệ thống PKI hoàn chỉnh
như OpenCA và Windows 2003 Server CA. Do Windows 2003 Server CA không phải là
sản phẩm mã nguồn mở, không thể tự do phát triển cũng như kiểm soát được quá trình phát
triển và độ an toàn nên không được quan tâm tìm hiểu.
EJBCA và OpenCA đều là các dự án PKI mã nguồn mở mạnh và hiện cũng có nhiều
phát triển đang được thực hiện trên cả hai phần mềm này.
EJBCA là một CA và là một hệ thống quản lý PKI hoàn chỉnh, là một giải pháp PKI
rất mạnh, độc lập môi trường, hiệu suất cao, có thể mở rộng và dựa trên thành phần. Ngoài
ra, EJBCA rất linh hoạt trong việc cung cấp các cách thức hoạt động tùy chọn như một CA
độc lập hoặc được tích hợp hoàn toàn trong ứng dụng thương mại bất kỳ. Hơn nữa, tuy việc
cấu hình hệ thống EJBCA phức tạp hơn OpenCA rất nhiều nhưng hệ thống EJBCA khi đã đi
vào hoạt động lại mang đến rất nhiều tiện lợi và đơn giản cho người sử dụng trong việc phát
16

sinh và quản lý chứng nhận. Ngoài ra, khác với OpenCA, việc cập nhật CRL trong EJBCA

hoàn toàn tự động.
Ngoài ra, EJBCA được phát triển và cung cấp bởi PrimeKey, một công ty PKI mã
nguồn mở đứng đầu trên thế giới nên với việc sử dụng EJBCA ta có thể thừa hưởng từ năng
lực phát triển của công ty và hoàn toàn yên tâm về tính an toàn luôn có trong mã nguồn.
3.6. Cài đặt EJBCA
Phần mềm yêu cầu
- Apache-ant-1.8.2-bin.zip
- Mysql server
- Mysql-connector-java-5.0.8.tar.gz
- Jboss-5.1.0.GA.zip
- Jce_policy-6.zip
- Jdk-6u26-linux-i586-rpm.bin
- Ejbca_4_0_3.zip
Hệ thống được cài đặt trên hệ điều hành Centos 5.5. Down các file trên và save tại
/usr/local/ejbca.
3.6.1. Cài đặt EJBCA

Hình 3.2: Giao diện quản trị hệ thống EJBCA
3.6.2. Tạo chứng thư từ hệ thống CA được cung cấp bởi EJBCA
3.6.2.1. Tạo CA “TOKEN-CA”
3.6.2.2. Tạo Certificate Profile "TokenLogon"
3.6.2.3. Tạo End Entity Profile “TokenUser”
3.6.2.4. Tạo chứng thư cho người sử dụng cuối
17

CHƯƠNG 4: TRIỂN KHAI ỨNG DỤNG PKI – BẢO MẬT THÔNG
TIN TRONG PHẦN MỀM QUẢN LÝ BỆNH VIỆN
4.1. Chuẩn bị chứng thư
Chương trình demo sử dụng chứng thư số do hệ PKI cung cấp. Chứng thư số và cặp
khóa có thể được lưu trữ trong USB Token hoặc dưới dạng file mềm *.p12. Để tiện cho quá

trình demo, chương trình sẽ sử dụng file mềm *.p12 và tiến hành cài đặt file *.p12 vào máy
tính để có thể sử dụng chứng thư.
Cụ thể trong chương trình demo sử dụng 2 file *.p12 tương ứng với các chứng thư là:
BS ANH TUAN và BS TRONG DUNG.
4.2. Sử dụng chữ ký số
4.2.1. Sử dụng chữ ký số đăng nhập
Khi một người sử dụng tạo tài khoản, tài khoản người dùng gồm 3 thành phần:
o User.
o Password.
o Certificate.
Mỗi username được map với 1 certificate. Khi người dùng đăng nhập bằng username
chương trình kiểm tra user trong cơ sở dữ liệu, nếu đúng sẽ cho đăng nhập tương ứng với
quyền của user đó.
4.2.2. Tạo chữ ký số với file dữ liệu (XML)
Đối với hệ thống lớn cần lưu trữ dữ liệu trong cơ sở dữ liệu có thể là MSSQL, Mysql,
Oracle v.v Ngoài việc lưu trữ dữ liệu trong database, ta có thể lưu dữ liệu dưới dạng file.
Các dạng dữ liệu có thể là:
- Offile: Word, excel
- PDF
- XML
Với hệ thống PM quản lý bệnh viện ngoài việc xem thông tin, bác sĩ có thể chỉnh
sửa, mã hóa nội dung. Để tiện cho việc thay đổi và truyền thông tin trong demo sử dụng
định dang file XML. Đây là định dạng dữ liệu chuẩn, dễ sử dụng cả trong môi trường
desktop và môi trường web.
- Quá trình chữ ký số:
18

Khi một người muốn gửi cho ai đó một văn bản quan trọng, đòi hỏi văn bản phải
được ký xác nhận chính danh người gửi văn bản; người gửi văn bản sẻ làm thực hiện quy
trình ký chữ ký số.

Quy trình ký chữ ký số sử dụng khóa công khai mô phỏng như ở hình 29, các bước
thực hiện như sau:

Hình 4.1: Quá trình ký số
Bên gửi gồm 4 bước:
o Bước 1: Dùng giả thuật băm cho thông tin cần truyền đi. Kết quả được một
bản tin tóm lược (Massage Digest). Dùng giải thuật MD5(Massage Digest 5)
ta được bản mã có chiều dài là 128 bit hoặc dùng giải thuật SHA(Secure Hash
Algorithm) ta được bản mã có chiều dài 160 bit.
o Bước 2: Sử dụng khóa bí mật (Private Key) của người gửi để mã hóa Massage
Digest thu được ở bước 1. Thông thường ở bước này sử dụng giải thuật mã
hóa RSA. Kết quả là chữ ký điện tử (Digital Signature) của thông điệp ban
đầu.
o Bước 3: Gộp chữ ký điện tử (Digital Signature) và bản tin ban đầu. Việc này
gọi là “ký xác nhận” vào thông điệp. Sau khi đã ký xác nhận vào thông điệp,
mọi sự thay đổi trên thông điệp sẻ bị phát hiện trong gia đoạn kiểm tra. Ngoài
ra việc ký xác nhận này đảm bảo người nhận tin tưởng thông điệp này xuất
phát từ người gửi.
19

- Quá trình xác thực chữ ký số: Sau khi nhận được một văn bản có đính kèm chữ ký
của người gửi, người nhận văn bản phải giải mã trở lại văn bản trên và kiểm tra xem văn
bản này đã bị thay đổi bởi người thứ ba chưa, và chữ ký đính kèm trên văn bản có đúng của
người gửi hay không.
Quy trình giải mã và kiểm tra thể hiện ở hình 30, các bước thực hiện như sau:

Hình 4.2: Quy trình xác thực chữ ký số
o Bước 1: Dùng giải thuật băm MD5 (hoặc SHA) để băm văn bản đã tách phần
chữ ký số, kết quả thu được bản tin tóm lược 1.
o Bước 2: Bản tin điện tử có đính kèm chữ ký của người gửi, sau khi nhận được

tách riêng phần chữ ký và phần văn bản nguyên vẹn. Sử dụng khóa công khai
(Public Key) của người gửi (khóa này được thông báo đến mọi người) để giãi
mã chữ ký số của thông điệp, kết quả thu được bản tin tóm lược 2.
o Bước 3: So sánh hai bản tin tóm lược thu được ở bước 1 và bước 2. Nếu
giống nhau, ta kết luận thông điệp này không bị thay đổi trong quá trình
truyền và thông điệp này là của người gửi. Nếu khác nhau, thi ngược lại.
4.3. Quá trình mã hóa dữ liệu
Thông tin được lưu trong file XML, khi cần mã hóa dữ liệu để bảo mật thông tin chỉ
có người chỉ định mới được xem. Các bước tiến hành mã hóa dữ liệu.
- Xác định dữ liệu cần mã hóa.
20

- Chọn file cần mã hóa dữ liệu.
- Nhập mật khẩu để làm key mã hóa.
- Sử dụng thuật toán mã hóa Rijndael để mã hóa và giải mã dữ liệu.
4.4. Chương trình mô phỏng bảo mật thông tin hồ sơ bệnh nhân
+ Giao diện chương trình đăng nhập thành công:

Hình 4.3: Giao diện đăng nhập thành công
+ Giao diện ký lên thông tin bệnh nhân

Hình 4.4: Giao diện ký lên thông tin bệnh nhân và lưu thông tin đã ký
+ Giao diện xác thực thông tin bệnh nhân đã ký

Hình 4.5: Xác thực thông tin bệnh nhân thành công
21

+ Giao diện xác thực không thành công và không cho phép chỉnh sửa thông tin

Hình 4.6: Không cho phép chỉnh sửa thông tin bệnh nhân

+ Giao diện mã hóa thông tin bệnh nhân

Hình 4.7: Nhập mật khẩu để mã hóa thông tin bệnh nhân
+ Giao diện nhập mật khẩu để giải mã thông tin bệnh nhân để có thể xem và chỉnh sửa
thông tin bệnh nhân.

Hình 4.8: Nhập mật khẩu giải mã
 Kết luận: Kết quả mô phỏng trên đây đã thể hiện được việc bảo mật thông tin hồ sơ
của bệnh nhân trong hệ thống phần mềm quản lý bệnh viện có tích hợp hệ thống PKI.
22

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
Các kết quả đạt được
Đề tài “Nghiên cứu hạ tầng khóa công khai (PKI), ứng dụng vào bảo mật thông tin
trong hệ thống phần mềm quản lý Bệnh viện” là một đề tài khó và rộng. Trong thời gian
nghiên cứu, tìm hiểu, xây dựng ứng dụng đố án đã hoàn thành được các nhiệm vụ được đặt
ra, cụ thể là:
- Nghiên cứu cơ sở hạ tầng khóa công khai PKI: thành phần, chức năng, mô hình và
quy trình hoạt động.
- Triển khai hệ thống PKI dựa trên mã nguồn mở EJBCA. Sử dụng nó để cấp phát
chứng thư số cho người dùng để có thể sử dụng chữ ký điện tử.
- Xây dựng mô hình quản lý bệnh nhân, phân tích và áp dụng hệ thông PKI vào phần
mềm để nâng cao tính chính xác, an toàn và tiện lợi cho việc quản lý bệnh nhân trong bệnh
viện.
- Thực hiện việc mô phỏng bảo mật thông tin hồ sơ bệnh nhân trong hệ thống phần
mềm quản lý Bệnh viện có tích hợp hệ thống PKI.
Chương trình thử nghiệm tích hợp PKI có thể hoàn thiện hơn nếu có sự đầu tư nhiều
hơn về thời gian và công sức, đề tài hoàn thiện có thể áp dụng vào thực tế.
Hướng phát triển của đề tài
Tích hợp PKI vào toàn bộ hệ thống quản lý bệnh nhân, hình thành mô hình bệnh viện

điện tử giúp cho việc khám chữa bệnh nhanh chóng, tiết kiệm tối đa chi phí.
Mở rộng, kết hợp với các dịch vụ đi kèm với khám chữa bệnh như hệ thống bảo hiểm
tiến tới thanh toán bảo hiểm trực tuyến.

×