Trên chữ ký của tài liệu có thông tin người ký xác nhận, và đối tượng đó đãđược xác nhận bởi một tổ chức uy tín, được thế giới công nhận... Các tính năng chủ yếucủa giải pháp: Quản l
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM
KHÓA LUẬN TỐT NGHIỆP
TÌM HIỂU CMIS ,PKI VÀ ALFRESO ỨNG DỤNG XÂY DỰNG HỆ THỐNG
QUẢN LÝ TÀI LIỆU UIT
Giảng viên hướng dẫn : TH.S NGUYỄN TRÁC THỨC
06520467 - NGUYỄN HÒA THUẬN
Lớp : CNPM01
Khoá :1
TP Hồ Chí Minh, tháng 3 năm 2011
Trang 2………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
TpHCM, ngày ……, tháng ……, năm 2011
Giảng viên hướng dẫn
Trang 3………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
……… Khóa luận đáp ứng yêu cầu của Khóa luận kỹ sư CNTT
TpHCM, ngày ……, tháng ……, năm 2011
Giảng viên phản biện
Trang 4Chúng em xin gửi lời cám ơn Khoa Công Nghệ Phần Mềm, trường Đại HọcCông Nghệ Thông Tin, ĐH Quốc gia Tp HCM đã tạo mọi điều kiện để chúng em
có thể thực hiện đề tài tốt nghiệp
Chúng em xin chân thành cảm ơn thầy Nguyễn Trác Thức, giảng viên hướngdẫn chúng em thực hiện đề tài này Thầy đã luôn hướng dẫn và chỉ bảo tận tìnhchúng em trong suốt thời gian thực hiện khóa luận
Chúng em cũng xin gửi lời cảm ơn tới tất cả thầy cô trong Khoa Công NghệPhần Mềm đã tận tình giảng dạy, truyền đạt những kiến thức cũng như kinhnghiệm cho chúng em trong suốt thời gian học tập tại trường
Chúng em xin gửi lòng biết ơn sâu sắc đến ba mẹ, các anh chị và bạn bè đãluôn ủng hộ, động viên và giúp đỡ chúng em trong những lúc khó khăn và trongsuốt quá trình học tập và nghiên cứu
Tuy đã cố gắng và nỗ lực hoàn thành luận văn với thời gian và khả năng chophép, nhưng chắc chắn chúng em không tránh khỏi những sai sót và hạn chế, kínhmong sự cảm thông và chỉ bảo tận tình của quý Thầy Cô và các bạn
Nhóm thực hiệnĐoàn Quang Minh - Nguyễn Hòa Thuận
Tp HCM, tháng 03/2011
GVHD: ThS Nguyễn Trác Thức SVTH: Nguyễn Hòa Thuận – Đoàn Quang Minh
Trang 5Tên Đề Tài: TÌM HIỂU CMIS VÀ PKI TRÊN ALFRESCO, XÂY DỰNG
HỆ THỐNG QUẢN LÝ TÀI LIỆU UIT
Giáo viên hướng dẫn: ThS Nguyễn Trác Thức
Thời gian thực hiên: Từ ngày 1/09/2010 đến ngày 31/03/2011
Sinh viên thực hiện:
Đoàn Quang Minh – 06520285
Nguyễn Hòa Thuận – 06520467
Loại đề tài: Tìm hiểu công nghệ - Nghiên cứu lý thuyết và xây dựng ứng dụngminh họa
Nội Dung Đề Tài:
Tìm hiểu Alfresco: sử dụng, phát triển
Tìm hiểu và triển khai PKI, ứng dụng triển khai chữ ký số
Xây dựng thư viện php CMIS
GVHD: ThS Nguyễn Trác Thức SVTH: Nguyễn Hòa Thuận – Đoàn Quang Minh
Trang 6Dựng site Joomla ( module, theme cho joomla) tích hợp CMIS, kết nối vớiAlfresco.
02/02/2011 – 15/02/2011:
Viết báo cáo sơ bộ
Tiếp tục xây dựng ứng dụng minh họa
Hoàn thành module chữ ký số cho Alfresco
16/02/2011 – 31/03/2010:
Kết hợp Joomla, Alresco thông qua CMIS để ra sản phẩm ban đầu
Cải thiện giao diện, cải tiến hiệu năng, đánh giá kết quả
01/03/2010 – 15/03/2011:
Triển khai CAS, LDAP cho Alfresco và Joomla
Hoàn thiện báo cáo
Trang 71.2 Qui trình hiện tại 1
1.3 Giải pháp 2
Chương 2: CƠ SỞ LÝ THUYẾT (30 trang) 5
2.1 Tổng quan về ECM 5
2.1.1 Khải niệm ECM 5
2.1.2 Những điều cần biết về ECM 5
2.2 Tổng quan Alfresco 6
2.2.1 Tính năng 7
2.2.2 Kiến trúc Alfresco 8
2.2.3 Kiến trúc bậc cao 9
2.2.4 Các Add-On 10
2.2.5 Các Component nguồn mở 10
2.2.6 Các chuẩn và giao thức chính được hỗ trợ 11
2.3 Tổng quan CMIS 13
2.3.1 Đặc tả kỹ thuật 14
2.3.2 Các dịch vụ (Services) 17
2.4 Tổng quan về chữ ký số 18
2.4.1 Khái niệm 18
2.4.2 Chữ ký tay truyền thống và chữ ký số 18
2.4.3 Tính năng 19
2.4.4 Kỹ thuật chữ ký số 20
2.5 Tổng quan mã hóa khóa công khai: 23
2.5.1 Khái niệm 23
2.5.2 Quan hệ khóa và chủ khóa 24
2.5.3 Các dạng chuẩn mã hóa khóa công khai 25
2.6 OTP Token – Yubikey 27
2.6.1 Giới thiệu 27
2.6.2 Thông tin kỹ thuật: 28
2.6.3 Ưu điểm 28
2.7 Giới thiệu iText 29
2.7.1 Giới thiệu 29
2.7.2 Dùng itext để ký file PDF 29
2.7.3 Lưu ý Signature trong iText 30
2.8 Tổng quan jBPM 32
GVHD: ThS Nguyễn Trác Thức SVTH: Nguyễn Hòa Thuận – Đoàn Quang Minh
Trang 82.9.2 Ưu điểm 36
2.9.3 Các ứng dụng thực hiện SSO 36
Chương 3: KỸ THUẬT VÀ SẢN PHẨM THỰC TẾ 38
3.1 Hệ thống thư mục và phân quyền 38
3.1.2 Phân quyền 38
3.1.3 Áp dụng vào hệ thống 38
3.2Mô hình Use Case hệ thống 40
3.2.1 Sơ đồ Use case 40
3.2.2 Mô tả Use case 41
3.3 Xây dựng thành phần hệ thống 45
3.3.1 Server Ldap 45
3.3.2 Cài đặt và cấu hình CAS trên tomcat 45
3.3.3 Cấu hình CAS Server xác thực thông qua LDAP 47
3.3.4 Alfresco – Cas – Ldap 48
3.3.5 Joomla – Cas – Ldap 51
3.4 Một số màn hình ứng dụng 54
Chương 4: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 64
4.1 Kết luận 64
4.2 Nhược điểm giải pháp 66
4.3 Hướng phát triển 66
PHỤ LỤC 68
1.Cấu trúc đĩa ứng dụng 68
2.Qui trình cài đặt ứng dụng 68
3.Tính pháp lý của chữ ký điện tử 69
4 Pháp luật liên quan tới việc sử dụng chữ ký điện tử 71
5 JavaScript API 72
6 Alfresco 74
DANH MỤC TÀI LIỆU THAM KHẢO 81
GVHD: ThS Nguyễn Trác Thức SVTH: Nguyễn Hòa Thuận – Đoàn Quang Minh
Trang 9Chương 1: Thực trạng và giải pháp Chương đầu tiên nhóm trình bày về hiện
trạng quản lý tài liệu, luận văn và qui trình xử lý thực tế của trường Đề ra giảipháp khắc phục các nhược điểm của cách làm hiện tại
Chương 2: Cơ sở lý thuyết Với giải pháp trên, chương 2 nhóm nói về các
công nghệ sẽ ứng dụng trong giải pháp ở các mặt như: khái niệm, tính năng, ưunhược điểm so với các kỹ thuật tương tự, các thành phần, cấu trúc, cơ chế hoạtđộng của các công nghệ được sử dụng trong đồ án
Chương 3: Kỹ thuật và sản phẩm thực tế Chương 3 nhóm sẽ nói chi tiết về
quá trình cài đặt, xây dựng, triển khai giải pháp
Chương 4: Kết luận và hướng phát triển Những điểm đã làm được và chưa
làm tốt của nhóm cùng định hướng phát triển ứng dụng trong tương lai
GVHD: ThS Nguyễn Trác Thức SVTH: Nguyễn Hòa Thuận – Đoàn Quang Minh
Trang 10Bảng 2.1: Các component nguồn mở được sử dụng để xây dựng Alfresco
Bảng 2.2: Các chuẩn vào giao thức chính được Alfresco hỗ trợ
Bảng 2.3: Các loại chữ ký của iText
Bảng 2.4: Các thuộc tính chữ ký của iText
Bảng 3.1: Phân quyền áp dụng trên Joomla
Bảng 3.2: Phân quyền trên thư mục của Alfresco
Bảng 3.3: Phân quyền áp dụng trên Alfresco
Bảng 3.4: Bảng mô tả màn hình sau khi đăng nhập cho quyền sinh viên
Bảng 3.5: Bảng mô tả màn hình sau đăng nhập cho quyền phòng ban
Bảng 3.6: Bảng mô tả màn hình xem trước tài liệu
Bảng 3.7: Bảng mô tả màn hình thông tin tài liệu cho quyền sinh viên
Bảng 3.8: Bảng mô tả màn hình bình luận tài liệu
Bảng 3.9: Bảng mô tả màn hình minh họa sign tài liệu
Bảng 3.10: Bảng mô tả màn hình tác vụ khi xem trước của quyền phòng ban Bảng 3.11: Bảng mô tả màn hình assign workflow
GVHD: ThS Nguyễn Trác Thức SVTH: Nguyễn Hòa Thuận – Đoàn Quang Minh
Trang 11Hình 2.1: Mô hình tổng quan ECM
Hình 2.2: Sơ đồ tính năng Alfresco
Hình 2.3: Sơ đồ kiến trúc bậc cao của Alfresco
Hình 2.4: Mô hình dữ liệu của CMIS
Hình 2.5: Mô hình cơ chế hoạt động bậc cao của CMIS trên Alfresco
Hình 2.6: Mô hình tổng quan giao thức kết nối của CMIS
Hình 2.7: Quá trình tạo chữ ký số
Hình 1.8: Quá trình kiểm tra và xác nhận chữ ký
Hình 2.9: Thiết bị Yubikey
Hình 2.10: Ví dụ minh họa qui trình jBPM
Hình 2.11: Sơ đồ các giai đoạn của BPM
Hình 2.12: Sơ đồ tổng quan hoạt động của jBPM
Hình 3.1: Sơ đồ hệ thống thư mục Alfresco
Hình 3.2: Màn hình sau khi đăng nhập cho quyền sinh viên
Hình 3.3: Màn hình sau khi đăng nhập cho quyền phòng ban
Hình 3.4: Màn hình xem trước tài liệu
Hình 3.5: Màn hình thông tin tài liệu cho quyền sinh viên
Hình 3.6: Màn hình bình luận, đánh giá tài liệu
Hình 3.7: Màn hình minh họa sign tài liệu
Hình 3.8: Màn hình tác vụ khi xem trước của quyền phòng ban
Hình 3.9: Màn hình assign workflow
Hình 3.10: Màn hình Upload tài liệu
GVHD: ThS Nguyễn Trác Thức SVTH: Nguyễn Hòa Thuận – Đoàn Quang Minh
Trang 12Hình 3.12: Sơ đồ Use Case
GVHD: ThS Nguyễn Trác Thức SVTH: Nguyễn Hòa Thuận – Đoàn Quang Minh
Trang 13ECM : Enterprise Content Management
CMS : Content Management System
CMIS : Content Management Interoperability Services
PKI : Public Key Infrastructure
CRUD : create, read, update, delete
UIT DM : UIT Document Management
OTP : One Time Password
GVHD: ThS Nguyễn Trác Thức SVTH: Nguyễn Hòa Thuận – Đoàn Quang Minh
Trang 14Repository : Kho chứa tài liệu
Single Sign On : Cơ chế đăng nhập một lần trên hệ thống tích hợp
Advanced workflow : Luồng công việc phức tạp
OTP Token : Thiết bị OTP
Public/Private key : Cặp khóa công khai, khóa bí mật – một thành tố quan trọngcủa cơ sở hạ tầng khóa công khai
GVHD: ThS Nguyễn Trác Thức SVTH: Nguyễn Hòa Thuận – Đoàn Quang Minh
Trang 15Chương 1: THỰC TRẠNG VÀ GIẢI PHÁP
1.1 Nhu cầu thực tế
Trường Đại học Công Nghệ Thông Tin – ĐHQG HCM đã trải qua 4 năm hìnhthành và phát triển Năm 2011, nhà trường tổ chức bảo vệ luận văn tốt nghiệp chosinh viên khóa I (2006 - 2011) Số lượng nhóm sinh viên được bảo vệ lên đến gần
200 với số luận văn tương đương Chưa kể đến 7 khóa trước đây được đào tạo từ
xa, khó có thể ước lượng đầy đủ Đây là kho tài liệu và kiến thức giá trị cần đượclưu trữ tốt, dành tra cứu về sau
Ngoài luận văn, phần lớn giấy tờ, công văn của các phòng ban vẫn được lưu trữdạng vật lý (dạng truyền thống – giấy tờ) Điều này dẫn đến việc nhận và xử lý cácyêu cầu về giấy tờ của sinh viên tốn nhiều thời gian và công sức
1.2 Qui trình hiện tại
Hiện tại, luận văn của sinh viên tại trường đang được lưu trữ dạng quyển ở khochứa kèm CD, DVD ứng dụng Cách lưu trữ cổ điển này có nhiều nhược điểm:
Diện tích và không gian lưu trữ lớn : Với số lượng luận văn lớn và ngày càng
gia tăng theo thời gian, nhà trường cần phòng chứa với diện tích lớn cùng hệ thốngđiện, điều hòa không khí giúp bảo quản tài liệu ở điều kiện tốt nhất
Nhân lực khá lớn: Cần ít nhất là 2 nhân lực làm việc toàn thời gian, kiên nhẫn
và làm việc có trách nhiệm cho việc sắp xếp và kiểm tra cũng như theo dõi tìnhtrạng tài liệu Nhu cầu nhân lực sẽ gia tăng theo thời gian
Tìm kiếm rất khó khăn Để có thể tra cứu 1 tài liệu trong kho, người có nhu
cầu cần qua một qui trình rườm rà, phức tạp và mất thời gian mới có thể tìm thấytài liệu cần thiết
Tài liệu dễ hư hỏng Tuy được bảo quản với điều kiện tốt nhưng các quyển
luận văn khó tồn tại lâu dài Các đĩa CD, DVD ứng dụng sẽ hỏng sau 2 năm dosinh viên thường dùng đĩa chất lượng kém Ngoài ra, quá trình truy cứu, mượn trả
dễ dàng gây hư hỏng tài liệu
Di chuyển tài liệu khó khăn: Khi cần di chuyển kho chứa tài liệu qua địa điểm
khác, chi phí nhân vật lực rất tốn kém, dễ gây hư hỏng tài liệu
Trang 16Qui trình xử lý giấy tờ và công văn hiện tại khá rườm rà, thủ công Các quitrình như xử lý xét học bổng cho sinh viên, duyệt bảng điểm phải qua nhiều bước
và thời gian chờ xử lý cho từng bước là khá dài, hiệu quả chưa cao
Tốn ít nhân lực và không gian Thay vì cần một kho chứa lớn cho việc lưu trữ
tài liệu dạng vật lý (luận văn, đĩa phần mềm, giấy tờ, công văn), ECM chỉ cần mộtkhu vực nhỏ cho Server và một admin để quản lý Công việc quản lý khá nhẹnhàng nên có thể do admin chung của nhà trường thực hiện Tài liệu được số hóa
và upload lên server theo cấu trúc qui định
Tìm kiếm dễ dàng, nhanh chóng Với tất cả tài liệu được số hóa và lưu trữ
trên hệ thống server Chỉ với thao tác đơn giản từ website, người dùng có thể tìmthấy tài liệu họ cần
Tính năng phiên bản hóa tài liệu Tài liệu mỗi lần được sửa đổi sẽ được lưu
lại thành một phiên bản Cho phép trở lại phiên bản cũ và quản lý những ngườidùng đã tác động vào tài liệu
Hệ thống phân quyền mạnh mẽ ECM cung cấp phân quyền động trên từng
folder hay từng file, cho phép người quản trị kiểm soát tốt người dùng trên hệthống
Tính bảo mật cao Được cung cấp sức mạnh bởi các framework mạnh mẽ về
bảo mật, hệ thống ECM an toàn trước phần lớn các tấn công ác ý
Giải pháp backup tiện lợi Tài liệu lưu trữ có thể được backup định kỳ hàng
tuần hoặc tháng và phục hồi dễ dàng nhờ công cụ được hỗ trợ từ ECM Tránh tìnhtrạng tài liệu bị mất do hư hỏng hoặc lỗi hệ thống
Tài liệu có thể xem như không thể hư hỏng Tình huống có khả năng gây hư
hỏng tài liệu là lỗi phần cứng hoặc lỗi trong quá trình xử lý tài liệu Nếu thực hiệnnghiêm túc quá trình backup hệ thống kèm theo cấu hình clustering cho server, khảnăng gây lỗi là rất nhỏ
Trang 17Dung lượng lưu trữ chỉ bị giới hạn bởi kinh phí Thật vậy, theo thời gian hệ
thống có thể sẽ bị quá tải nhưng việc nâng cấp khá đơn giản với chi phí thấp hơnnhiều so với giải pháp truyền thống
Dù có nhiều ưu điểm, hệ thống ECM cũng không tránh khỏi nhược điểm.Trong số đó, điểm yếu lớn nhất của ECM là giao diện quản lý phức tạp và khó sửdụng Giải pháp tích hợp ECM vào CMS sẽ giúp giải quyết vấn đề này Việc tíchhợp sẽ cho ra đời một sản phẩm thừa hưởng nguồn sức mạnh của kho chứa ECM
và giao diện thân thiện người dùng từ CMS
Người dùng sẽ không cần quan tâm đến kho chứa (ECM - repository) bên dưới
mà chỉ cần tương tác với hệ thống CMS (website của nhà trường)
Khi hệ thống quản lý tài liệu truyền thống đã được thay thế bởi ECM, một nhucầu khác xuất hiện Lúc này, qui trình nộp đơn – ký duyệt không còn phù hợp vìtoàn bộ tài liệu, hồ sơ đã được số hóa Chữ ký số sẽ giải quyết vấn đề trên vớinhiều ưu điểm
Nếu như với cách lưu trữ truyền thống, các văn bản chỉ thực sự được xem là cógiá trị, thể hiện sự công nhận đối với văn bản thông qua chữ ký của một cá nhân,con dấu của một tổ chức Thì khi chuyển sang lưu trữ tài liệu dạng số, vấn đề kýxác nhận các văn bản điện tử đó là vấn đề quan trọng hàng đầu đề đảm bảo cácđiều kiện văn bản số được thừa nhận
Làm sao biết được tài liệu đó có bị ai chỉnh sửa cho đến khi người nhận cóđược tài liệu có được nó ?
Làm sao biết được ai sẽ đứng ra chịu trách nhiệm về nội dung ghi trong tàiliệu đó ?
Tài liệu đó chắc chắn được gửi từ ai, tài liệu này có đáng tin hay khôngcóphải một tài liệu giả mạo hay không ?
Với một tài liệu dạng số, việc chỉnh sửa, hay giả mạo là hoàn toàn dễ dàng Do
đó yêu cầu với tài liệu dạng số về độ tin cậy rất cao Chữ ký số được ra đời để giảiquyết vấn đề cốt lỗi đó Với một tài liệu số có chữ ký hợp lệ, cho ta biết các thôngtin về tài liệu :
Tài liệu đó có nguyên bản so với văn bản gốc: tức không hề bị chỉnh sửabởi một người nào khác hay bị hư hỏng trong quá trình lưu trữ hay không
Trên chữ ký của tài liệu có thông tin người ký xác nhận, và đối tượng đó đãđược xác nhận bởi một tổ chức uy tín, được thế giới công nhận
Trang 18 Việc 1 chữ ký xuất hiện trong tài liệu, khiến người ký sau này không thếnào khước từ tài liệu đó Hay nói cách khác, chữ ký số có tính chất chốngchối bỏ về sau.
Với tình hình thực tế, ý nghĩa thiết thực của đề tài, cũng như sự đam mê vềcông nghệ chữ ký số, nhóm đã quyết định tìm hiểu và đưa chữ ký số kết hợp với
hệ thống quản lý tài liệu vào luận văn tốt nghiệp Tạo thành một hệ thống quản lýtài liệu đầy tiện lợi, linh hoạt, mạnh mẽ và chuyên nghiệp Các tính năng chủ yếucủa giải pháp:
Quản lý tài liệu chuyên nghiệp với nền tảng là ECM Alfresco với các tínhnăng cao cấp: fulltext search, workflow, quản lý phiên bản, bảo mật nộidung…
Tích hợp với trung tâm chứng thực “đăng nhập 1 một cửa” - Single Sign Ongiúp dễ dàng tích hợp và đồng bộ hóa cơ sở dữ liệu tài khoản người dùngvới các hệ thống khác về sau cũng như hệ thống sẵn có
Triển khai CMIS để quản lý tập trung nội dung từ các CMS, ECM khác Dễdàng tích hợp với các hệ thống quản lý nội dung khác có sẵn hay cả các hệthống về sau này
Tính năng enterprise, dùng chứng thư số để triển khai chữ ký số, tạo tínhpháp lý, tăng cường độ tin cậy cho tài liệu được kí
Bên cạnh hệ thống chứng thực SSO, UIT DM còn dùng thiết bị One TimePassword (OTP Token) để tăng cường tính bảo mật đăng nhập cho hệ thống
Trang 19Chương 2: CƠ SỞ LÝ THUYẾT
2.1 Tổng quan về ECM
2.1.1 Khải niệm ECM
Enterprise Content Management (ECM) là những chiến lược, phương thức vàcông cụ được sử dụng để thu thập, quản lý, lưu trữ, bảo toàn và phân phối các nộidung và tài liệu liên quan đến các qui trình của tổ chức ECM bao trùm việc quản
lý thông tin trên toàn bộ phạm vi một doanh nghiệp dù những thông tin đó có ởdạng tài liệu giấy, file dữ liệu, cơ sở dữ liệu hay thậm chí là email
2.1.2 Những điều cần biết về ECM
ECM là một thuật ngữ bao gồm quản lý tài liệu, quản lý nội dung web, tìmkiếm, cộng tác, quản lý hồ sơ, quản lý tài sản số (Digital Asset Management -DAM), quản lý qui trình, thu thập và quét (scanning) tài liệu ECM chủ yếu nhắmđến việc quản lý vòng đời của thông tin từ xuất bản ban đầu hay khởi tạo cho đếnlưu trữ và cuối cùng là tiêu hủy Các ứng dụng ECM được phân phối theo phươngthức: On-Premise Software (phần mềm được cài đặt trên mạng riêng của tổ chức),Software as a Service (SaaS) - truy cập thông tin lưu trữ trên hệ thống của nhà sảnxuất phần mềm qua giao thức web, hoặc một giải pháp lai giữa hai loại vừa nêu
Hình 2.1: Mô hình tổng quan ECM
Trang 20ECM nhắm đến mục tiêu làm việc quản lý thông tin trong doanh nghiệp trở nên
dễ dàng hơn thông qua việc đơn giản hóa lưu trữ, bảo mật, kiểm soát phiên bản,định tuyến qui trình và sử dụng Nhờ đó, một tổ chức sẽ được nhiều lợi ích như:hiệu suất gia tăng, khả năng kiểm soát tốt hơn và giảm thiểu chi phí Ví dụ nhiềungân hàng đã chuyển sang dùng các hệ thống ECM để lưu trữ bản sao của các hồ
sơ, giấy tờ thay vì cách làm cũ, giữ lại các bản gốc trong những kho tài liệu khổng
lồ Với hệ thống cũ, một khách hàng gọi điện yêu cầu bản sao của một tấm séc cóthể mất nhiều tuần Với ECM, các nhân viên ngân hàng chỉ cần tìm kiếm theo sốtài khoản của khách hàng và số của tấm séc Khi tìm thấy, họ có thể email ngaycho khách hàng - lúc đó khách hàng thường vẫn còn đang nghe máy
Một số hệ thống ECM hiện tại: Documentum, Alfresco, Laserfiche, FileNet,OpenText, SharePoint
Hầu hết các ECM trên đều là giải pháp có phí do các hãng lớn cung cấp như:FileNet từ IBM, SharePoint của Microsoft, Documentum của EMC Corporation.Các giải pháp phần mềm này được bán theo gói bao gồm cả hệ thống phần cứngvới chi phí đắt đỏ Nhóm quyết định chọn Alfresco cho giải pháp Quản lý tài liệu ởnhà trường do các ưu điểm nổi bật: mã nguồn mở và miễn phí, cộng đồng pháttriển to lớn, khả năng mở rộng chức năng cao, tích hợp workflow engine jBPM, hỗtrợ CMIS
2.2 Tổng quan Alfresco
Alfresco là một hệ thống ECM mã nguồn mở dùng cho Microsoft Windows vàcác hệ điều hành tương tự Unix khác Alfresco có hai phiên bản: AlfrescoCommunity Edition là phần mềm miễn phí dựa trên các chuẩn mở và giấy phép mãnguồn mở LGPL Alfresco Enterprise Edition là phiên bản thương mại cho đốitượng doanh nghiệp Alfresco bao gồm một kho quản trị nội dung (contentrepository), đi cùng một web portal framework dùng cho việc quản lý và sử dụngnội dung được lưu trữ, một giao thức CIFS hỗ trợ tương thích với hệ thống file trênMicrosoft Windows và các hệ điều hành tương tự Unix khác, một hệ thống quản lýnội dung web có khả năng xây dựng các ứng dụng web và website tĩnh quaApache Tomcat, engine tìm kiếm Lucene, engine qui trình jBPM Hệ thốngAlfresco được phát triển trên công nghệ Java
John Newton (đồng sáng lập Documentum) và John Powell (cựu COO củaBusiness Objects) đã sáng lập Alfresco Software, Inc vào năm 2005 Các nhà đầu
tư bao gồm bộ phân đầu tư của SAP Ventures, Accel Partners và Mayfield Fund.Đội ngũ kỹ thuật ban đầu gồm các kỹ sư từ Documentum và Oracle
Trang 21Vào tháng 10 năm 2009, báo cáo Open Source CMS Market Share 2009 đã tônvinh Alfresco là hệ thống quản trị nội dung web nền Java hàng đầu.
Phiên bản Alfresco hiện tại là 3.4d ra mắt ngày 15 – 03 – 2011 Nhóm hiệndùng phiên bản 3.3
Records Management (quản lý hồ sơ theo chứng chỉ 5015.2)
Truy cập kho dữ liệu (Repository) qua CIFS/SMB, FTP, WebDAV, NFS vàCMIS
Trang 22jBPM workflow (engine qui trình jBPM) Lucene search (engine tìm kiếmLucene )
Hỗ trợ đa nền tảng (chính thức hỗ trợ Windows, Linux và Solaris)
Giao diện người dùng nền trình duyệt (hỗ trợ chính thức cho Internet Explorer
và Firefox)
Tích hợp với ứng dụng desktop như Microsoft Office và OpenOffice.org
Hỗ trợ Clustering
Hỗ trợ nhiều hình thức chứng thực: NTLM, LDAP, Kerberos, CAS
Hỗ trợ nhiều hệ quản lý cơ sở dữ liệu mạnh mẽ: mysql, postgresql, oracle
2.2.2 Kiến trúc Alfresco
Nhiều đối thủ cạnh tranh của Alfresco(phần lớn là closed-source) có thiết kếphức tạp bao gồm nhiều công nghệ đôi khi đối lập nhau Theo thời gian, kiến trúccủa các ECM này ngày càng cồng kềnh làm giảm hiệu năng và tính ổn định hệthống Alfresco không đi theo con đường đó Alfresco bảo đảm các điều kiện sau:Tương đối đơn giản và minh bạch trong kiến trúc
Xây dựng từ các framework và các component nguồn mở mạnh mẽ và uy tínnhất
Hỗ trợ nhiều phương thức tương tác với dữ liệu và các chuẩn liên quan
Dưới đây là sơ đồ kiến trúc bậc cao của Alfresco
Trang 23Hình 2.3: Sơ đồ kiến trúc bậc cao của Alfresco
2.2.3 Kiến trúc bậc cao
Một số điểm quan trọng ở kiến trúc Alfresco từ sơ đồ trên:
Có nhiều cách để truy cập nội dung bên trong Repository Ta có thể dùng cácgiao thức (CIFS, WebDAV, FTP, SMTP) hoặc các bộ thư viện được cung cấp sẵn
ở bên phải sơ đồ (JavaScript API, Web Services, JCR, )
Alfresco hoạt động dưới dạng một ứng dụng web bên trong một ServletContainer Trong đó, web client (Alfresco Explorer) chạy cùng một tiến trình vớiRepository
Các thành phần mở rộng(extension) và các tùy chỉnh(customization) hoạt độngnhư một bộ phận của ứng dụng web Alfresco Alfresco định ra một cơ chế để táchrời các phần này khỏi nhân sản phẩm giúp dễ dàng nâng cấp về sau
Metadata được lưu trữ trong một cơ sở dữ liệu quan hệ(Relation DB) trong khicác file tài liệu và các chỉ mục (index) của Lucene lưu trên hệ thống file của máychủ
WCM Virtualization Server là một bộ Webserver Tomcat với các cài đặt củaAlfresco cùng các bộ thư viện dạng file JAR được Alfresco sử dụng
Trang 242.2.4 Các Add-On
Alfresco cho phép cài đặt thêm các phần tính năng chưa được nhân sản phẩm
hỗ trợ gọi là Add-On Ta có thể download về nhiều gói Add-On do Alfresco cộngđồng phát triển, hoặc bên thứ ba cung cấp Một số Add-On quan trọng là RecordsManagement và bộ tích hợp Facebook (Alfresco cung cấp), bộ tích hợp giải phápOCR Kofax do Kofax cung cấp và các gói ngôn ngữ dùng cho việc bản địa hóa(localize) webclient của Alfresco
2.2.5 Các Component nguồn mở
Alfresco được xây dựng trên nhiều component nguồn mở chất lượng cao Nhờ đóviệc phát triển mất ít thời gian hơn và kết quả thu được là một sản phẩm mạnh mẽ,
hỗ trợ nhiều chuẩn thông dụng Lợi ích thứ hai dành cho các nhà phát triển Họ sẽ
dễ dàng chuyển đổi từ nền tảng đang làm việc sang Alfresco Ví dụ nếu lập trìnhviên đã có kiến thức về JSF(JavaServer Faces) hoặc Spring thì khi làm việc vớiAlfresco, họ sẽ phát hiện nhiều cách làm tương tự
Bảng dưới đây liệt kê danh sách một số component nguồn mở chính được sử dụng
Component JSF dùng cho web client
FreeMarker (http://freemarker.org/) Framework tạo giao diện Web script
Mozilla Rhino JavaScript Engine
Trang 25Chuyển đổi XSL:FO thành PDF
Apache POI (http://poi.apache.org/) Rút trích metadata từ file MS Office
Chiba (http://chiba.sourceforge.net/) Tạo các Web Form dựa trên XForms
Bảng 2.1: Các component nguồn mở được sử dụng để xây dựng Alfresco
2.2.6 Các chuẩn và giao thức chính được hỗ trợ
Alfresco là phần mềm nguồn mở Vì thế việc hỗ trợ các chuẩn và giao thức là rấtquan trọng, giúp Alfresco có khả năng phối hợp tốt hơn với các dự án nguồn mởkhác Dưới đây là một số chuẩn và giao thức chính được hỗ trợ
Chuẩn/Giao thức Ghi chú
Alfresco chưa hỗ trợ Secure FTP
WebDAV WebDAV là giao thức trên nền HTTP thường được hỗ trợ
bởi các nhà cung cấp ECM WebDAV cho phép WindowExplorer truy cập Repository như trên file hệ thống
cho nhiều máy trong một hệ thống Khác với WebDAV,người dùng không thể thấy được sự khác biệt giữ fileserver truyền thống và Alfresco Repository được dùng nhưđĩa cứng mạng qua CIFS
JCR API
(JSR-170)
JCR là một bộ API Java cho phép làm việc với các kho nộidung như Alfresco Có 2 cấp độ tương thích với JCR,
Trang 26Alfresco gần đạt độ tương thích cấp 2 với chuẩn JCR.
XForms, XML
Schema
Các Web form được định nghĩa bằng XML Schema Chưa
hỗ trợ hết các XForm
XSLT, XSL:FO Dữ liệu từ Web form sẽ được chuyển đổi bằng XSL 1.0
server Microsoft Active Directory
Bảng 2.2: Các chuẩn vào giao thức chính được Alfresco hỗ trợ
Để tích hợp Alfresco với CMS ta có 2 giải pháp: sử dụng WebService APIđược Alfresco cung cấp hoặc CMIS So với Alfresco WebService API, CMIS cócác ưu điểm sau:
Chỉ cần viết một lần, chạy với tất cả các Repository CMIS là chuẩn đặc tả
chung do các nhà phát triển ECM lớn nhất lập ra Ngày càng nhiều ứng dụng ECMtham gia hỗ trợ Do đó, việc tích hợp chỉ cần làm một lần Nếu cần kết nối thêmmột Repository của ECM khác, nhà phát triển chỉ cần thiết lập các thông số màthôi
Tích hợp đa Repository CMIS cho phép làm việc cùng lúc với một hoặc
nhiều ECM Ưu điểm này có được do phần lớn các nhà phát triển ECM đồng thuận
hỗ trợ CMIS
Hỗ trợ Quản lý qui trình nghiệp vụ xuyên suốt các Repository Hiện nay
phiên bản 0.9 của đặc tả CMIS chưa hỗ trợ Tuy nhiên tính năng này được các nhàphát triển hứa hẹn sẽ ra mắt trong phiên bản tiếp theo
Người dùng chỉ cần học cách dùng một giao diện cho tất cả Repository.
Điều này có được do khả năng tích hợp đa Repository Việc này rất tiện lợi cho
Trang 27người dùng vì một lần tiếp xúc với giao diện mới họ sẽ gặp nhiều khó khăn gầnnhư học lại từ đầu.
Việc sử dụng CMIS tạo cho giải pháp tích hợp khả năng mở rộng cao trongtương lai, khi cần tích hợp thêm một hoặc nhiều Repository của nhà cung cấpkhác
2.3 Tổng quan CMIS
Mục tiêu của Content Management Interoperability Services (CMIS) là cungcấp một tập các dịch vụ(services) tương tác với các hệ quản trị nội dung Chuẩnnày được sáng lập bởi IBM, Microsoft
và EMC và mở rộng ra năm 2007 với
Alfresco, Open Text, SAP, và Oracle
Hiện tại CMIS sở hữu bởi Hội đồng
kỹ thuật(Technical Committee)
OASIS
CMIS không phải là một đặc tả ngôn ngữ, nó không diễn giải cách mà một hệquản trị nội dung làm việc và không phải là các dịch vụ giúp mở rộng tính năngcho các hệ quản trị nội dung Mục tiêu của CMIS là định nghĩa tập các hàm thôngdụng khi làm việc với các hệ quản trị nội dung và các dịch vụ Cả REST và SOAPđều được hỗ trợ bởi CMIS Những người quan tâm đến CMIS thường nói rằngchuẩn này có tầm quan trọng với các hệ quản trị nội dung ngang với tầm quantrọng của SQL với các ứng dụng database cuối những năm 80 đầu những năm 90.Ngay lúc này đây, cộng đồng phát triển đang rất quan tâm đến CMIS, các công cụclient và tích hợp dựa trên CMIS đang dần lộ diện CMIS ngày càng có được hỗtrợ nhiều từ các nhà cung cấp ECM lớn trên toàn thế giới
Xuất phát từ vấn đề hầu hết các doanh nghiệp lớn đều sử dụng nhiều côngnghệ trong việc trình bày nội dung và nhiều hệ quản trị nội dung khác nhau Nếumuốn tập hợp nội dung và trình bày dưới một giao diện đồ họa chung, các doanhnghiệp, tổ chức phải tốn nhiều thời gian và tiền bạc để viết riêng cho mình nhữngservice riêng giúp tích hợp chúng lại với nhau Vấn đề ở chỗ các hệ quản trị nộidung có giao diện đặc trưng của riêng mình Lúc này, CMIS sẽ giải quyết vấn đềbằng cách cung cấp một tập những dịch vụ nằm phía trên các hệ quản trị nội dung.Chỉ cần tầng trình bày của bạn(website, portal) hỗ trợ REST hay SOAP, nó có thểlàm việc với bất kỳ hệ quản trị nội dung(ECM) nào tương thích với CMIS, bấtchấp cài đặt bên dưới Front-end không còn phụ thuộc vào back-end Bất kỳ ứngdụng front-end nào cũng có thể giao tiếp với hệ quản trị nội dung bất kỳ Một nhàphát triển Drupal có thể dùng module Drupal CMIS để giao tiếp với Alfresco và
Trang 28không cần phải làm gì thêm khi chuyển từ Alfresco sang dùng Open Text haySharepoint Và những ai đã từng tham gia tìm hiểu CMIS module của Drupal sẽ cóthể chuyển qua phát triển các module tương tự cho các ứng dụng khác mà khôngcảm thấy khó khăn vì kết quả trả về của Alfresco hoàn toàn tương tự
2.3.1 Đặc tả kỹ thuật
Đặc tả của CMIS gồm 226 trang nhưng hầu hết là tài liệu cơ bản về API, ta cóthể bỏ qua đến khi nào cần có thể tra lại Tài liệu đặc tả là thứ nhất thiết phải cókhi làm việc với CMIS
Trong tài liệu đặc tả, CMIS định nghĩa: một Domain Model, một ngôn ngữ truyvấn, các giao thức kết nối, một tập các dịch vụ chuẩn
Dưới đây là những vấn đề chính trong đặc tả kỷ thuật của CMIS:
Domain Model:
Domain Model định nghĩa các khái niệm và quan hệ giữa các hệ quản trị nộidung giúp tìm được tiếng nói chung, thứ ngôn ngữ chung cho tất cả Ví dụ, mộtRepository là một kho chứa các đối tượng Kho chứa có một tập các khảnăng”capabilities” có thể khác biệt tùy thuộc vào kiến trúc của từng repository.Một Repository có thể có các khả năng tùy biến khác nhau nhưng vẫn tương thíchvới CMIS
Đối tượng(Objects) là các phần tử mà Repository quản lý Tất cả Object đều cómột Object Type Một Object Type là một lớp các đối tượng sẽ có chung tính chất
và các thuộc tính Cấu trúc của lớp đối tượng mang tính thừa kế nên các lớp con sẽthừa kế các thuộc tính của cha chúng
Chỉ có 4 dạng đối tượng chính: Document, Folder, Relationship, và Policy.Trong đó Policy là chính sách phần quyền cho đối tượng
Dưới đây là hình ảnh của mô hình CMIS Domain Model:
Trang 29Hình 2.4: Mô hình dữ liệu của CMISNhư trong ảnh trên , cả 4 lớp đối tượng đều chia sẽ một tập các thuộc tính nhưtype ID, tên hiển thị, đối tượng có thể truy vấn được không, đối tượng có thể đượcquản lý bởi policy không…
Một đối tượng có nhiều thuộc tính, mỗi thuộc tính có một tập các tính chất nhưproperty ID, tên hiển thị, tên truy vấn… CMIS cho phép mở rộng các lớp mặcđịnh của mình tạo nên những lớp đối tượng đặc biệt Việc làm thế nào những lớpđối tượng đặc biệt được định nghĩa phụ thuộc vào cấu trúc bên dưới củaRepository
Đối tượng Document là đối tượng duy nhất có thể thực hiện phiên bản hóa.Mỗi phiên bản của một Document là một bản sao của nó và có một ID của riêngmình Nhiều phiên bản của môt đối tượng sẽ chia sẻ một series ID
Một Content Stream là một dòng byte dữ liệu, ta có thể hình dung như một file.Một đối tượng Document không nhất thiết phải có một content stream Folderkhông có content stream Repository có thể có những qui trình khác nhau cho việccập nhật content stream Đó là phần việc của hệ quản trị nội dung Nhiệm vụ củaCMIS là cung cấp thông tin và thông báo cho các ECM biết chúng cần làm gì
Trang 30Ngôn ngữ truy vấn (Query Language )
CMIS đặc tả một ngôn ngữ truy vấn dựa trên SQL – 92 Ngôn ngữ này hỗ trợjoin khá giới hạn Tùy vào Repository, nó có thể thực hiện cả truy vấn toàn vănbản (full text) hoặc chỉ metadata
Các giao thức kết nối.(Protocol Bindings)
Để tương thích hoàn toàn với CMIS, một repository cần cung cấp 2 dạng kếtnối yêu cầu bởi đặc tả: RESTful AtomPub và Web Services (SOAP) Khi đó, cách
mà các repository sẽ tiến hành cài đặt kết nối tùy thuộc vào từng repository
Hình dưới đây cho thấy cách Alfresco cài đặt CMIS ở cấp cao:
Hình 2.5: Mô hình cơ chế hoạt động bậc cao của CMIS trên Alfresco
Sử dụng dạng kết nối RESTful AtomPub, một client sẽ bắt đầu với URL củatrang thông tin từ Repository (dịch vụ getRepositoryInfo) Máy khách có thể dựavào những liên kết trên được Repository cung cấp để tạo những request GET,POST, PUT, DELETE với Repository
Response từ request tạo qua kết nối AtomPub hầu hết đều ở dạng một feedAtom XML hay một entry Atom XML Thông thường response được mở rộng đểkèm theo các tag đặc biệt của CMIS Ta có thể dùng thư viện đặc tả Atom nhưApache Abdera để rút trích kết quả
Trang 31Hình 2.6: Mô hình tổng quan giao thức kết nối của CMISWebservice kết nối dùng SOAP Có 2 tài liệu XSD tạo nên WSDL cho service:một định nghĩa data model, cái còn lại định nghĩa format của message Những dịch
vụ được Webservice hỗ trợ hoàn toàn giống với danh sách các dịch vụ được liệt kêdưới đây
2.3.2 Các dịch vụ (Services)
Không phụ thuộc vào dạng kết nối, CMIS cung cấp một tập các service baogồm:
Repository Services: dùng tìm hiểu thông tin và năng lực của repository
Navigation Services: dùng để di chuyển trên hệ thống cây thư mục của
repository
Object Services: dùng thực hiện các hàm CRUD trên các đối tượng
Multi-filing Services: nếu repository hỗ trợ việc đặt một file vào nhiều folder,
dịch vụ này sẽ thực hiện
Discovery Services: dùng để truy vấn tài liệu lưu trữ
Versioning Services: dùng để check out và làm việc về phiên bản với các đối
Trang 32ACL Services: có thể không được hỗ trợ bởi một số repository, dịch vụ này
dùng để lấy thông tin và quản lý ACL của một đối tượng
Các dịch vụ trên chia sẻ một vài đặc tính chung Ví dụ:
Hầu hết các dịch vụ trả về một danh sách có thể được chuyển thành một tậpkết quả có thể phân trang
Dịch vụ trả về đối tượng có thể thường trả về thông tin kèm theo về nhữngđối tượng đó nếu bạn yêu cầu ví dụ relationships, ACL, rendition và nhữnghành vi hợp lệ
Mọi service đều có thể trả về các ngoại lệ (exception)
Chữ ký số và khóa công khai có mối quan hệ mật thiết với nhau Vì như đã nóichữ ký số được triển khai trên nền khóa công khai và chỉ có khóa công khai mới có
đủ điều kiện triển khai chữ ký số
2.4.2 Chữ ký tay truyền thống và chữ ký số
Đối với các tài liệu, văn bản được lưu trữ bằng giấy, để có thể được công nhận
là có giá trị thì cần có chữ ký tay, con dấu, mộc đỏ…gọi chung là chữ ký truyềnthống Nhưng ngày nay khi mà nhu lưu trữ tài liệu dạng số ngày càng cao, các vănbản được số hóa : scan thành file ảnh,hay văn bản dạng plain text thì việc giả mạochữ ký trở nên dễ dàng hay nói cách khác chữ ký truyền thống đã mất đi ý nghĩatrong phương diện lưu trữ số
Trang 33Để giải quyết vấn đề này, các tổ chức bảo mật thế giới cho ra đời khái niệmchữ ký số, nhằm thay thế chữ ký truyền thống trên phương diện số.
So với việc dùng tài liệu giấy với loại chữ ký tay truyền thống hay các condấu, mộc đỏ, thì chữ ký số trên tài liệu điện tử còn cung cấp thêm khả năng đảmbảo về nguồn gốc của tài liệu, định danh và trạng thái của tài liệu điện tử cũng nhưviệc ký xác nhận , phê chuẩn vào các ký ước Bên cạnh đó, chữ ký số ra đời còntăng cường tinh an toàn, độ tin cậy trong các hoạt động: giao dịch kinh doanh, lưuchuyển công văn trong các tổ chức, các giao dịch tài chính, giao dịch thương mạiđiện tử quốc tế, điện tín, email…
2.4.3 Tính năng
Chữ ký số trên một tài liệu điện tử cho cung cấp tính năng
Chứng thực: Mặc dù các thông điệp thường đính kèm thông tin về người gửi
thông điệp, nhưng chúng có thể bị thay đổi dễ dàng dẫn đến không còn đúng đắn.Chữ ký số có thể dùng để xác minh nguồn gốc của thông điệp Ứng với mỗi khóa
bí mật của chữ ký số là 1 cá nhân xác định về thông tin, nguồn gốc , một chữ kýhợp lệ cho ta biết cá nhân nào đã ký thông tin đó Đó là vấn đề quan trọng đối vớicác tài liệu tối mật, chẳng hạn một chi nhánh của ngân hàng yêu cầu trung tâmthay đổi số cho một tài tài khoản Nếu trung tâm không kiểm tra nguồn gửi cóđược xác thực hay chưa, mà hành động theo mail thì hậu quả thật nguy hiểm.Việc xác định danh tính người ký thông qua chữ ký hợp lệ hoàn toàn có thể tintưởng được, vì người đó đã được xác minh bởi một bên thứ ba – tổ chức cấp chứngchỉ điện tử
Tính toàn vẹn dữ liệu:Trong nhiều tình huống, người gửi và người nhận cần
đảm bảo các dữ liệu quan trọng phải không bị chỉnh sửa trong quá trình lưuchuyển Mặc dù mã hóa có thể ẩn đi nội dung của thông điệp, song nó hoàn toàn
có thể bị thay đổi bằng thông điệp bị mã hóa khác mà không cần hiểu nội dungthông điệp Tuy nhiên nếu thông điệp đó đã được ký bằng chữ ký số, bất kỳ thayđổi nào trên thông điệp đề khiến cho chữ ký không còn hợp lệ Do đó, không cócách nào để chỉnh sửa thông điệp và tạo ra chữ ký hợp lệ nếu không có khóa bímật
Tính chống chối bỏ:Chống chối bỏ hay cụ thể hơn là chống chối bỏ nguồn
gốc, đây là 1 khía cạnh cực kỳ quan trọng của chữ ký số Với chữ ký số thì vấn đềnày được giải quyết triệt để, nhờ tính chất này, một cá nhân khi đã ký vào tài liệuhay dữ liệu thì sau đó không thể tuyên bố chưa ký được Tính năng này có được do
Trang 34chữ ký số triển khai sử dụng cơ sở hạ tầng khóa công khai sẽ được đề cập ở phầnsau.
Tính pháp lý của chữ ký số:Ở các nước Mỹ, Ấn Độ, và châu Âu, chữ ký số
được pháp luật thừa nhận và có giá trị như ký viết tay bình thường, tức là với dữliệu có chữ ký số hợp lệ sẽ được pháp luật bảo hộ Ở Việt Nam, trước đây côngnghệ chữ ký số chưa được phổ biến, song trong 1 vài năm gần đây, khi mà lĩnhvực công nghệ thông tin phát triển, nhu cầu hoạt động giao dịch kinh doanh điện
tử, đặc biệt là kinh doanh liên quốc gia ngày càng cao, thì công nghệ chữ ký số,chứng thực số dần được manh nha phát triển Năm 2006 luật pháp Việt Nam đãban hành các văn bản quy định về giao dịch điện tử ( xem phụ lục),vào 2008, bộCNTT đã ra văn bản công bố các loại tài liệu cần dùng chữ ký số Trong nhữngnăm 2010,2011 gần đây các tổ chức cấp chứng thư số ( BKAV, FPT, Viettel ) đãbắt đầu công bố dịch vụ cấp chứng chỉ số cho cá nhân và tổ chức
2.4.4 Kỹ thuật chữ ký số
Để dễ hiểu về chữ ký số cũng như có cái nhìn tổng quan về vai trò của chữ ký
số trong giao dịch điện tử, có thể hình dung như thế này:
A và C trao đổi thông điệp với nhau, nhưng nếu trong quá trình thông điệp từ Agửi đến C, dữ liệu có bị chỉnh sửa hay bị hư hỏng thì C cũng không biết được
Do đó A sẽ gửi cho C ngoài thông điệp còn có bản tóm tắt thông điệp hay còngọi là MD (Message Digest), ứng với bất kì thông điệp hay dữ liệu nào thì bản tómtắt là di nhất, và khi thông điệp đó bị thay đổi dù chỉ 1 bit thì bản MD đó sẽ kháchoàn toàn C có thể dựa vào MD đó so sánh với MD tự tạo từ thông điệp nhận
được để so sánh và xác định xem thông điệp nhận được có bị thay đổi hay không.
Nhưng vấn đề là nếu có 1 nhân vật nữa tên C “ở giữa” A và B, dùng phươngthức middle attack, bắt và thay đổi hoàn toàn gói tin cũng như bản tóm tắt thôngđiệp thì sao ? Vấn đề đó được giải quyết bằng cách dùng MAC ( MessageAuthentication Code ),
MAC cũng giống như MD nhưng, khác là nó dùng 1 khóa bí mật để tạo bảntóm tắt của dữ liệu, tức MD của dữ liệu được mã hóa, và chỉ A và C biết cho dù B
có thay đổi thông điệp, nhưng không biết khóa để tạo MAC Do đó thông điệpđược truyền đi an toàn
Nhưng nếu A hay C muốn gửi và nhận thông điệp với nhau thì phải cho nhaubiết khóa bí mật đó, việc đó thật bất tiện khi phải trao đổi với người thứ 3 haynhiều người khác, và trong số những người đó, có thể là người muốn mạo danhthông điệp để gửi cho người khác
Trang 35Cuối cùng thì chữ ký số được ra đời,trước mắt chữ ký đảm bảo được hai nhiệm
vụ là xác thực và tính nguyên vẹn của dữ liệu Có thể hiểu chữ ký số cũng giốngnhư MAC nhưng thay vì dùng khóa chia sẽ thì chữ ký số dùng mã hóa khóa côngkhai, bao gồm 1 cặp khóa :khóa bí mật dùng để tạo chữ ký, khóa công khai dùng
để xác nhận chữ ký
Người gửi sẽ dùng khóa bí mật của mình mã hóa MD của thông điệp tạo thànhchữ ký số và gửi nó cho B ( gửi thông điệp có kèm theo chữ ký) B nhận đượcthông điệp dùng khóa công khai của người gửi để kiểm tra tính hợp lệ của chữ ký.Nếu chữ ký hợp lệ thì tính toàn vẹn dữ liệu của thông điệp được đảm bảo, đồngthời định danh được người gửi là ai
Như vậy, về nguyên tắc không ai ngoài chủ nhân của khóa bí mật có thể sở hữukhóa bí mật đó ( hiển nhiên chủ nhân của khóa bí mật phải có trách nhiệm giữkhóa) Việc dùng khóa bí mật chỉ do chủ nhân của nó dùng mà thôi
Vậy chữ ký số ra đời giải quyết được 3 vấn đề : đảm bảo tính toàn vẹn dữ liệu,xác thực người dùng ( hay nguồn gốc của dữ liệu), và tính chống chối bỏ Tức làkhi dữ liệu đã được ký bởi một người nào đó thì sau này anh ta không thể phủnhận được
Cụ thể quá trình ký và xác nhận chữ ký có thể diễn giải như sau:
Hình 2.7: Quá trình tạo chữ ký số
Trang 36Quá trình ký trên 1 dữ liệu : Với bất kỳ dữ liệu nào có ta đều có thể có đượcbản tóm tắt của nó – gọi là hash, và bản tóm tắt dữ liệu này là duy nhất cho 1 mẫu
dữ liệu,dữ liệu ban đầu dù có thay đổi dù 1 bit thì bản tóm tắt dữ liệu cũng sẽ thayđổi hoàn toàn, tuy nhiên từ bản tóm tắt của dữ liệu việc tìm lại dữ liệu dạng gốctheo lý thuyết là không được và thực tế là rất rất khó để tìm ra Tiếp theo bản tómtắt dữ liệu sẽ được mã hóa bằng khóa bí mật của người ký, để tạo thành chữ ký.Chữ ký này sẽ được đính kèm vào dữ liệu ban đầu Sau bước này ta sẽ có được dữliệu đã được ký Dữ liệu mới này dùng để gửi cho người nhận hay dùng vào mụcđích cụ thể nào đó
Vậy việc ký 1 dữ liệu nào đó chỉ đơn giản là lấy hash của dữ liệu đó, mã hóavới khóa bí mật của người ký và đính kèm trở lại vào dữ liệu cần ký
Hình 2.8: Quá trình kiểm tra và xác nhận chữ ký
Kế tiếp là quá trình xác thực chữ ký: Người nhận, sau khi nhận được dữ liệu đãđược ký sẽ tiến hành xác thực chữ ký Việc xác thực chữ ký gồm 3 quá trình con:
Bước 1: Lấy hash của dữ liệu nhận được ( không bao gồm phần chữ kýđược attach vào)
Bước 2: Giải mã chữ ký bằng khóa công khai của người gửi ( xem phầnkhóa công khai ), để được mã hash gốc của dữ liệu
Trang 37Bước 3: So sánh 2 hash ( hash tự tạo từ data và hash giải mã từ chữ ký của
dữ liệu nhận được), nếu 2 hash này giống nhau thì chữ ký được xác nhận hợplệ
Tóm lại, quy trình cho chữ ký số yêu cầu 3 loại thuật toán :
Thuật toán tạo khóa
Thuật toán ký dữ liệu, thuật toán này nhận đầu vào là dữ liệu và khóa bí mật,
và đầu ra là chữ ký
Thuật toán xác thực chữ ký, thuật toán này nhận đầu vào là 1 thông điệp, khóacông khai và chữ ký ( thường thì được đính kèm vào data), kết quả cho biết chữ kýhợp lệ hay không
Lưu ý: nếu lập trình bằng java, ta không cần phải lo thuật toán này, java hỗ trợkhá nhiều thuật toán, nhiệm vụ của ta là chọ provider này phù hợp với công việccủa mình
Chữ ký được tạo từ một dữ liệu và một khóa bí mật, chỉ có thể được xác thựchợp lệ bằng chính khóa công khai của khóa bí mật đó Không thể tính toán để tạođược chữ ký hợp lệ nếu không có khóa bí mật
2.5 Tổng quan mã hóa khóa công khai:
Trong hầu hết lịch sử mật mã học, khóa dùng trong các quá trình mã hóa và giải
mã phải được giữ bí mật và cần được trao đổi bằng một phương pháp an toàn khác(không dùng mật mã) như gặp nhau trực tiếp hay thông qua một người đưa thư tin
cậy Vì vậy quá trình phân phối khóa trong thực tế gặp rất nhiều khó khăn, đặc biệt là khi số lượng người sử dụng rất lớn Mật mã hóa khóa công khai đã
giải quyết được vấn đề này vì nó cho phép người dùng gửi thông tin mật trênđường truyền không an toàn mà không cần thỏa thuận khóa từ trước
Trang 38Cơ chế mã hóa khóa công khai bao gồm 1cặp khóa: khóa bí mật và khóa côngkhai,2 khóa này có mối quan hệ toán học với nhau, với 1 khóa bí mật chỉ có dinhất 1 khóa công khai và ngược lại
Khóa bí mật thì chỉ di nhất chủ sở hữu của nó có Còn khóa công khai thì chia
sẽ tự do, mọi người có thể tìm thấy trong niên giám điện tử
Mã hóa khóa công khai ra đời giải quyết được nhiều vấn đề thuộc lĩnh vực bảomật Mã hóa khóa công khai được dùng trong :
- Mã hoá: giữ bí mật thông tin và chỉ có người có khoá bí mật mới giải mãđược
- Tạo chữ ký số : Dùng khóa bí mật của người ký để ký và dùng khóa côngkhai của người đó để xác nhận chữ ký
- Thoả thuận khoá: cho phép thiết lập khoá dùng để trao đổi thông tin bảo mậtgiữa 2 bên
Nguyên tắc của khóa công khai là mã hóa chéo, hay còn gọi là mã hóa bất đốixứng,chẳng hạn A gửi B 1 thông điệp cần được mã hóa, A sẽ dùng khóa bí mật củamình và khóa công khai của B để mã hóa thông điệp nhằm mục đích xác nhậnthông điệp được gửi bởi A và muốn chỉ B mới có thể đọc, B nhận được thông điệp
sẽ dùng khóa bi 1 mật của mình để giải mã thông điệp và khóa công khai của A đểxác định có chắc từ A gửi hay không Mô hình này thường dùng trong hệ thốngthư điện tử đòi hỏi tính năng bảo mật nhất định
2.5.2 Quan hệ khóa và chủ khóa
Tuy nhiên, làm sao A biết đâu là khóa công khai của B và ngược lại ? Để cóthể đạt được những ưu điểm của hệ thống thì mối quan hệ giữa khóa công khai vàthực thể sở hữu khóa phải được đảm bảo chính xác Vì thế các giao thức thiết lập
và kiểm tra mối quan hệ này là đặc biệt quan trọng Việc gắn một khóa công khaivới một định danh người sử dụng thường được thực hiện bởi các giao thức thựchiện hạ tầng khóa công khai (PKI) Các giao thức này cho phép kiểm tra mối quan
hệ giữa khóa và người được cho là sở hữu khóa thông qua một bên thứ ba được tintưởng gọi là CA ( Cerfiticate Authority ) Mô hình tổ chức của hệ thống kiểm tra
có thể theo phân lớp (các nhà cung cấp chứng thực số - X.509) hoặc theo thống kê(mạng lưới tín nhiệm - PGP, GPG) hoặc theo mô hình tín nhiệm nội bộ (SPKI).Không phụ thuộc vào bản chất của thuật toán hay giao thức, việc đánh giá mốiquan hệ giữa khóa và người sở hữu khóa vẫn phải dựa trên những đánh giá chủquan của bên thứ ba bởi vì khóa là một thực thể toán học còn người sở hữu và mốiquan hệ thì không
Trang 39CA làm nhiệm vụ: nhận yêu cầu cấp chứng thư số, xác thực thông tin ngườiđăng ký và cấp chứng thư cũng như thu hồi chứng thư Hiện nay trên thế giới cócác CA : VerySign, Global Sign ( có đại lý tại Việt Nam)… ,tại Việt Nam thì cócác CA : FPT, BKAV, VNPT, Vietteltelcom…
2.5.3 Các dạng chuẩn mã hóa khóa công khai
PKI hay cơ sở hạ tầng khá công khai gồm 2 chuẩn, chuẩn mã hóa khóa côngkhai ( Public-Key Cryptography Standards )và mật khẩu một lần (One Time Password)
Sơ lược về PKCS
Public Key Cryptography Standard-PKCS là tập hợp các chuẩn về mật mã khóacông khai, được phát triển bởi tổ chức RSA cùng với sự hợp tác của nhiều tổ chức,bao gồm Apple, Microsoft, DEC, Lotus, Sun và MIT PKCS được thiết kế cho dữliệu dạng nhị phân và ASCII PKCS cũng tương thích với chuẩn X.509 Các chuẩnPKCS đã công bố PKCS #1, #3,#5 , #7, #8, #9, #10 , #11, #12, và #15 PKCS #13
và #14 hiện vẫn đang trong quá trình phát triển
PKCS #1: định nghĩa các cơ chế dành cho việc mã hóa và “ký” dữ liệu dùng hệthống khóa công khai RSA
PKCS #3: định nghĩa 1 giao thức thỏa thuận khóa Diffie-Hellman
PKCS #5: mô tả phương pháp mã hóa 1 chuỗi ký tự dùng khóa bí mật có mật khẩubảo vệ
PKCS#9: định nghĩa các loại thuộc tính đã chọn để dùng cho các chuẩn PKCSkhác
PKCS#10: mô tả dạng thức cho các yêu cầu cấp chứng thực
PKCS#11: định nghĩa kỹ thuật tạo interface lập trình độc lập, gọi là Cryptoki,dùng cho các thiết bị mật mã : thẻ thông minh, thẽ PCMCIA
Trang 40PKCS #12: đưa ra 1 dạng thức lưu trữ và truyền tải các thông tin : khóa bí mậtngười dùng, chứng chỉ, và những thứ bí mật khác….
Các tài liệu về các chuẩn PKCS có thể tìm đọc ở địa chỉ sau:
http://www.rsasecurity.com/rsalabs/pkcs/
ftp://ftp.rsasecurity.com/pub/pkcs/doc/
Để tạo chữ ký số thường người ta thường dùng 2 kỹ thuật : dùng khóa mềm vàdùng khóa cứng hay còn gọi là thiết bị token
Khóa mềm dùng chuẩn PKCS#12 để triển khai, còn khóa cứng dùng PKCS#11
để triển khai Ở kỹ thuật dùng khóa cứng các khóa được lưu trữ bên trong 1 thiết bịgọi chung là token ( bao gồm 2 dạng : smart card và usb token)
Mỗi kĩ thuật có ưu và nhượt điểm khác nhau, tuy nhiên thông thường người tadùng PKCS#11 được nạp vào các token để triển khai nhằm tăng cường tính bảomật cho giải pháp Nhưng do hạn chế về điều kiện, nên chúng em chỉ có thể ápdụng kỹ thuật dùng khóa mềm vào đồ án tốt nghiệp
Trong cryptography, PKCS#12 là 1 dạng của chuẩn mã hóa có tên là Chuẩn
mã hóa khóa công khai ( Public Key Cryptography Standard), được sáng lập bởi tổchức RSA Nó định nghĩa 1 dạng fille dùng để chứa khóa bí mật X.509 cùng vớikhóa công khai, file này được bảo vệ bởi 1 password dựa trên khóa đối xứng.Cùng dạng với nó là PFX được phát triển bởi Microsoft
Để có chứng thư dạng PKCS#12 này, trên thực tế người ta có thể xin cấp từ các
tổ chức CA ( Cerfiticate Authority) với chi phí không nhỏ, hiện tại nhóm chúng
em dùng phần mềm EJBCA ( tham khảo phần phụ lục), đề dựng hệ thống CA dạngSelf-Cerfiticate, về mặt hình thức, tác dụng thì hoàn toàn giống với các chứng thưđược cấp bởi các tổ chức CA, chỉ khác là thuộc tính người cấp là chúng em, haynói cách khác các chứng thư này không được công nhận, mà chỉ dùng để nghiêncứu, thí nghiệm
One Time Password:
OTP – One Time Password là loại mật khẩu chỉ dùng một lần và chỉ có giá trịcho một phiên đăng nhập hoặc cho một giao dịch trong một khoảng thời gian nhấtđịnh OTP thường được tạo ra dựa trên các thông tin chia sẻ trước giữa hai bên xácthực, hoặc các sự kiện diễn ra đồng thời ở cả hai bên
Mục đích ra đời