Tổng quan về an toàn thông tin, khảo sát thực trạng tài liệu tại các
Tổng quan về an toàn thông tin
Khi nhu cầu trao đổi thông tin dữ liệu ngày càng lớn và đa dạng, các tiến bộ về điện tử - viễn thông và công nghệ thông tin không ngừng được phát triển ứngdụng để nâng cao chất lượng và lưu lượng truyền tin thì các quan niệm ý tưởngvà biện pháp bảo vệ thông tin dữ liệu cũng được đổi mới Bảo vệ an toàn thôngtin dữ liệu là một chủ đề rộng, có liên quan đến nhiều lĩnh vực và trong thực tế có thể có rất nhiều phương pháp được thực hiện để bảo vệ an toàn thông tin dữ liệu Các phương pháp bảo vệ an toàn thông tin dữ liệu có thể được quy tụ vào ba nhóm sau:
- Bảo vệ an toàn thông tin bằng các biện pháp hành chính
- Bảo vệ an toàn thông tin bằng các biện pháp kỹ thuật (phần cứng)
- Bảo vệ an toàn thông tin bằng các biện pháp thuật toán (phần mềm)
Ba nhóm trên có thể được ứng dụng riêng rẽ hoặc phối kết hợp Môi trường khó bảo vệ an toàn thông tin nhất và cũng là môi trường đối phương dễ xân nhập nhất đó là môi trường mạng và truyền tin Biện pháp hiệu quả nhất và kinh tế nhất hiện nay trên mạng truyền tin và mạng máy tính là biện pháp thuật toán
An toàn thông tin bao gồm các nội dung sau:
- Tính bí mật: tính kín đáo riêng tư của thông tin
- Tính xác thực của thông tin, bao gồm xác thực đối tác (bài toán nhận danh), xác thực thông tin trao đổi
- Tính chống chối bỏ: đảm bảo người gửi thông tin không thể thoái thác trách nhiệm về thông tin mà mình đã gửi Để đảm bảo an toàn thông tin dữ liệu trên đường truyền tin và trên mạng máy tính có hiệu quả thì điều trước tiên là phải lường trước hoặc dự đoán trước các khả năng không an toàn, khả năng xâm phạm, các sự cố rủi ro có thể xảy ra đối với thông tin dữ liệu được lưu trữ và trao đổi trên đường truyền tin cũng như trên mạng Xác định càng chính xác các nguy cơ nói trên thì càng quyết định được tốt các giải pháp để giảm thiểu các thiệt hại
Có hai loại hành vi xâm phạm thông tin dữ liệu đó là: vi phạm chủ động và vi phạm thụ động Vi phạm thụ động chỉ nhằm mục đích cuối cùng là nắm bắt được thông tin (đánh cắp thông tin) Việc làm đó có khi không biết được nội dung cụ thể nhưng có thể dò ra được người gửi, người nhận nhờ thông tin điều khiển giao thức chứa trong phần đầu các gói tin Kẻ xâm nhập có thể kiểm tra được số lượng, độ dài và tần số trao đổi Vì vậy vi phạm thụ động không làm sai lệch hoặc hủy hoại nội dung thông tin dữ liệu được trao đổi .Vi phạm thụ động thường khó phát hiện nhưng có thể có những biện pháp ngăn chặn hiệu quả Vi phạm chủ động là dạng vi phạm có thể làm thay đổi nội dung, xóa bỏ, làm trễ, xắp xếp lại thứ tự hoặc làm lặp lại gói tin tại thời điểm đó hoặc sau đó một thời gian Vi phạm chủ động có thể thêm vào một số thông tin ngoại lai để làm sai lệch nội dung thông tin trao đổi Vi phạm chủ động dễ phát hiện nhưng để ngăn chặn hiệu quả thì khó khăn hơn nhiều
Một thực tế là không có một biện pháp bảo vệ an toàn thông tin dữ liệu nào là an toàn tuyệt đối Một hệ thống dù được bảo vệ chắc chắn đến đâu cũng không thể đảm bảo là an toàn tuyệt đối
An toàn thông tin trong tài liệu lưu trữ quốc gia
Tài liệu lưu trữ quốc gia là di sản của dân tộc, tài liệu có giá trị đặc biệt đối với sự nghiệp xây dựng và bảo vệ Tổ quốc Việt Nam xã hội chủ nghĩa
Tài liệu lưu trữ quốc gia là những tài liệu có giá trị về chính trị, kinh tế, quốc phòng, an ninh, ngoại giao, văn hoá, giáo dục, khoa học và công nghệ được hình thành trong các thời kỳ lịch sử của dân tộc Việt Nam qua hoạt động của các cơ quan nhà nước, tổ chức chính trị, tổ chức chính trị - xã hội, tổ chức xã hội, tổ chức xã hội - nghề nghiệp, tổ chức kinh tế, đơn vị vũ trang nhân dân và các nhân vật lịch sử, tiêu biểu, phục vụ việc nghiên cứu lịch sử, khoa học và hoạt động thực tiễn
Việc ứng dụng công nghệ thông tin vào công tác quản lý tài liệu lưu trữ giúp việc quản lý, nâng cao tuổi thọ tài liệu gốc và phục vụ nhanh chóng, kịp thời yêu cầu tra cứu tài liệu lưu trữ mọi lúc, mọi nơi, Muốn vậy chúng ta phải chuyển tài liệu từ dạng truyền thống sang tài liệu lưu trữ dạng điện tử (tài liệu số) Khi chuyển sang tài liệu lưu trữ điện tử, tài liệu phải phải bảo đảm tính xác thực, tính toàn vẹn, nhất quán, an toàn thông tin, tính chống chối bỏ, có khả năng truy cập và chuyển đổi theo thời gian ở môi trường điện tử ngay từ khi tài liệu được tạo lập Tuy nhiên khi chuyển đổi tài liệu sang dạng số các thông tin tài liệu có thể dễ dàng bị chỉnh sửa mà không hề để lại bất kỳ một dấu vết nào
Chính vì lẽ đó mà giá trị của chúng như là bằng chứng pháp lý nhìn chung là yếu, nếu không muốn nói là chúng không được thừa nhận
Việt đảm bảo tính xác thực tài liệu lưu trữ quôc gia là một trong những yêu cầu hàng đầu trong việc quản lý tài liệu lưu trữ của Cục Văn thư và Lưu trữ nhà nước - đơn vị quản lý trực tiếp bốn Trung tâm Lưu trữ quốc gia.
Khảo sát thực trạng tài liệu tại các Trung tâm Lưu trữ quốc gia
1.3.1 Giới thiệu Trung tâm Lưu trữ quốc gia
Cục văn thư và Lưu trữ nhà nước đang quản lý bốn Trung tâm Lưu trữ quốc gia bao gồm Trung tâm Lưu trữ quốc gia I, Trung tâm Lưu trữ quốc gia II, Trung tâm Lưu trữ quốc gia III, Trung tâm Lưu trữ quốc gia IV Tài liệu lưu trữ hện đang lưu trữ tại các Trung tâm Lưu trữ quốc gia là những tài liệu có giá trị về chính trị, kinh tế, quốc phòng, an ninh, ngoại giao, văn hoá, giáo dục, khoa học và công nghệ được hình thành trong các thời kỳ lịch sử của dân tộc Việt Nam qua hoạt động của các cơ quan nhà nước, tổ chức chính trị, tổ chức chính trị - xã hội, tổ chức xã hội, tổ chức xã hội - nghề nghiệp, tổ chức kinh tế, đơn vị vũ trang nhân dân và các nhân vật lịch sử, tiêu biểu, phục vụ việc nghiên cứu lịch sử, khoa học và hoạt động thực tiễn, bao gồm các loại tài liệu sau:
- Tài liệu do các cơ quan thuộc chính quyền cũ để lại trong thời kỳ phong kiến, thời kỳ Pháp thuộc
- Tài liệu hình thành trong hoạt động của các cơ quan thuộc Ngụy quyền Sài Gòn tồn tại ở miền Nam trước năm 1975
- Tài liệu của các cơ quan Nhà nước nước Việt Nam Dân chủ Cộng hòa trước đây, nay là nước Cộng hòa xã hội chủ nghĩa Việt Nam (từ năm 1945 đến nay)
- Tài liệu hình thành trong hoạt động của các nhân vật nổi tiếng, của cá nhân, gia đình, dòng họ
1.3.2 Khảo sát tài liệu lưu trữ tại các Trung tâm Lưu trữ quốc gia Hiện nay, bốn Trung tâm Lưu trữ quốc gia thuộc Cục Văn thư và Lưu trữ nhà nước đang trực tiếp quản lý gần 30km giá tài liệu lưu trữ, trong đó:
Trung tâm Lưu trữ quốc gia I đang trực tiếp quản lý khoảng gần 06km giá tài liệu lưu trữ và tư liệu lưu trữ, bao gồm các khối tài liệu chính sau đây
- Khối tài liệu Hán - Nôm: Khối tài liệu này được hình thành trong quá trình hoạt động của các cơ quan, tổ chức thuộc thời kỳ Phong kiến đã từng tồn tại trên lãnh thổ Việt Nam Hầu hết tài liệu được viết bằng chữ Hán - Nôm và do vậy còn được gọi là khối tài liệu Hán - Nôm Tài liệu có sớm nhất thuộc khối này hiện còn lưu giữ được là Bằng của Bộ Lại cấp cho Phạm Nam chức Thí quan Phòng ngự thiêm sự Ty Phòng ngự sứ ngày 21/11 năm Hồng Đức thứ 19
(1488) Khối tài liệu Hán - Nôm bao gồm các phông và sưu tập như phông Nha Kinh lược Bắc kỳ (1886-1897); phông huyện Thọ Xương (1874-1896); khối Châu bản triều Nguyễn; khối tài liệu địa bạ triều Nguyễn; sưu tập tài liệu
Hương Khê và sưu tập tài liệu Vĩnh Linh Đây là một trong những khối tài liệu quý, hiếm, một nguồn sử liệu rất quan trọng vì nội dung mà tài liệu phản ánh đã bao quát được toàn bộ các mặt của đời sống chính trị, kinh tế, văn hoá, xã hội thuộc thời kỳ này, điển hình là các việc như việc Lễ; việc Hình; việc Công; việc Hộ; việc Lại Với nội dung đó, khối tài liệu này được coi là qúy hiếm cần phải được bảo vệ, bảo quản an toàn và tổ chức khai thác sử dụng có hiệu quả đáp ứng mọi yêu cầu của xã hội khi nghiên cứu về thời đại phong kiến Việt Nam
- Khối tài liệu tiếng Pháp: Khối tài liệu này được hình thành trong quá trình hoạt động của các cơ quan, tổ chức của thực dân Pháp có trụ sở đóng trên lãnh thổ Bắc Kỳ từ 1858 đến 1945 và Bắc Việt từ 1945 đến 1954 Vì được viết bằng chữ Pháp nên khối tài liệu này còn được gọi là khối tài liệu tiếng Pháp Đây là khối tài liệu có số lượng nhiều nhất hiện đang được bảo quản tại Trung tâm Lưu trữ quốc gia I Khối tài liệu này được tổ chức thành hai nhóm chính là nhóm tài liệu hành chính và nhóm tài liệu kỹ thuật Nhóm tài liệu hành chính gồm gần 50 phông tài liệu hình thành trong hoạt động của các cơ quan cấp Đông Dương, cấp kỳ và cấp tỉnh thuộc Bắc kỳ Do được hình thành trong quá trình hoạt động của các cơ quan, tổ chức nêu trên nên thành phần tài liệu chủ yếu là tài liệu hành chính bao gồm các văn bản quản lý như nghị định, quyết định, thông tư, kế hoạch, báo cáo, tờ trình, công văn hành chính và nội dung mà tài liệu phản ánh hầu như đã bao quát được khá đầy đủ các mặt của đời sống chính trị , kinh tế, văn hoá, xã hội Việt Nam thời kỳ thực dân Pháp xâm lược từ
1887 đến 1954 Nhóm tài liệu kỹ thuật gồm gần 179 công trình lớn nhỏ Trong số các công trình đó có 138 công trình kiến trúc, 28 công trình thuỷ lợi và 13 công trình giao thông quan trọng được xây dựng trong thời kỳ Pháp thuộc Phần lớn tài liệu thuộc nhóm này là tài liệu kỹ thuật như bản can, bản sao in ánh sáng
Trung tâm Lưu trữ quốc gia II đang trực tiếp quản lý gần 15 km giá tài liệu lưu trữ, bao gồm:
- Khối tài liệu Mộc bản: là những văn bản chữ Hán hoặc chữ Nôm được khắc ngược trên những tấm gỗ để in ra được hình thành dưới triều Nguyễn
- Khối tài liệu tiếng Pháp: Khối tài liệu này được hình thành trong quá trình hoạt động của các cơ quan, tổ chức như Khâm sứ Trung kỳ (1874-1945), Thống đốc Nam kỳ (1861-1945), Toà Đại biểu Chính phủ Nam Việt (1929-1957) và các cơ quan chuyên môn trực thuộc
- Khối tài liệu Mỹ - Ngụy: Khối tài liệu này được hình thành trong quá trình hoạt động của các cơ quan, tổ chức của Mỹ và của chính quyền Việt Nam cộng hoà ở miền Nam Việt Nam thời kỳ từ 1954 đến 1975 gồm có 41 phông, khối phông và sưu tập, trong đó có các phông tài liệu quan trọng như phông Quốc hội, Phủ Tổng thống đệ nhất cộng hoà, Phủ Tổng thống đệ nhị cộng hoà, Phủ Thủ tướng Việt Nam cộng hoà, phông Cơ quan phát triển quốc tế Hoa Kỳ (United States Agency for International Development - viết tắt là USAID)
- Khối tài liệu Cách mạng: Khối tài liệu Cách mạng vì đây là khối tài liệu được hình thành trong quá trình hoạt động của các cơ quan, tổ chức cách mạng ở miền Nam Việt Nam từ 1954 đến nay
- Khối tài liệu bản đồ: Hiện nay, Trung tâm Lưu trữ Quốc gia II đang quản lý khoảng trên 12.000 tấm bản đồ các loại, kể cả bản đồ nổi
- Khối tài liệu phim ảnh ghi âm: về các bài nói của Tổng thống Việt Nam cộng hoà, của Thủ tướng Việt Nam Cộng hoà và của các quan chức cao cấp trong nội các Chính phủ Việt Nam cộng hoà; về các cuộc họp của Quốc hội Việt Nam Cộng hoà; về hoạt động của Tổng thống, Phu nhân Tổng thống, của các quan chức cấp cao trong Nội các, về các buổi lễ trọng thể và các buổi tiếp kiến của các đoàn ngoại giao
Trung tâm Lưu trữ quốc gia III hiện đang quản lý khoảng 10 km giá tài liệu của các cơ quan nhà nước và đoàn thể trung ương, các nhân vật lịch sử tiêu biểu, bao gồm:
Nghiên cứu cở sở lý thuyết về chữ ký số ứng dụng trong quản lý tài liệu lưu trữ quốc gia
Mã hóa dữ liệu
Theo nghĩa hẹp, “mật mã” chủ yếu dùng để bảo mật dữ liệu, người ta quan niệm: Mật mã học là khoa học nghiên cứu mật mã, bao gồm: Tạo mã và Phân tích mã
Phân tích mã là kỹ thuật, nghệ thuật phân tích mật mã, kiểm tra tính bảo mật của nó hoặc phá vỡ sự bí mật của nó Phân tích mã còn gọi là Thám mã
Theo nghĩa rộng, “mật mã” là một trong những công cụ hiệu quả bảo đảm an toàn thông tin nói chung: bảo mật, bảo toàn, xác thực, chống chối cãi,…
Khái niệm mã hoá thông tin
- Mã hóa là quá trình chuyển thông tin có thể đọc được (gọi là Bản rõ) thành thông tin “khó” thể đọc được theo cách thông thường (gọi là Bản mã) Đây là một trong những kỹ thuật để bảo mật thông tin
- Giải mã là quá trình chuyển thông tin ngược lại, từ Bản mã thành Bản rõ
- Thuật toán mã hóa hay giải mã là thủ tục tính toán để mã hóa hay giải mã
- Khóa mã hóa là một giá trị làm cho thuật toán mã hóa thực hiện theo cách riêng biệt sinh ra bản rõ Thông thường khóa càng lớn (độ dài và tính ngẫu nhiên của khoá càng lớn)thì bản mã càng an toàn Phạm vi giá trị có thể có của khóa được gọi là Không gian khóa
- Hệ mã hóa là tập các thuật toán, các khóa nhằm che giấu thông tin, cũng như làm cho rõ nó
Hệ mã hoá được định nghĩa là bộ năm (P, C, K, E, D), trong đó:
- P: là tập hữu hạn các bản rõ có thể
- C: tập hữu hạn các bản mã có thể
- K: tập hữu hạn các khoá có thể
- E: tập các hàm lập mã
- D: tập các hàm giải mã
Với khoá lập mã ke K, có hàm lập mã e ke E, e ke : P →C
Với khoá giải mã kd K, có hàm giải mã d kd D, d kd : C→P, sao cho d kd (e ke (x))=x, Với mọi x P Ở đây x được gọi là bản rõ, e ke (x) được gọi là bản mã
Quá trình mã hoá và giải mã:
Bảng 2.1: Quá trình mã hóa và giải mã Người gửi tin G muốn gửi bản tin T cho người nhận N Để đảm báo bí mật, G mã hoá bản tin bằng khoá lập mã ke, nhận được bản mã eke(T), sau đó gửi cho N Tin tặc có thể trộm bản mã eke(T) nhưng cũng “khó” để hiểu được bản tin gốc T nếu không có khoá giải mã kd
Người nhận N nhận được bản mã, họ dùng khoá giải mã kd để giải mã eke(T) và nhận được bản tin gốc T=d kd (eke(T))
2.1.2 Phân loại hệ mật mã Hiện có 2 loại hệ mật mã chính: mã hoá khoá bí mật và mã hoá khoá công khai
2.1.2.1 Hệ mã hoá khoá bí mật Trong hệ thống mã hóa khoá bí mật, quá trình mã hóa và giải mã một thông điệp sử dụng cùng một mã khóa gọi là khóa bí mật (secret key) hay khóa đối xứng (symmetric key) Do đó, vấn đề bảo mật thông tin đã mã hóa hoàn toàn phụ thuộc vào việc giữ bí mật nội dung của mã khóa đã được sử dụng
Trước đây, phương pháp mã hóa chuẩn DES được coi là tiêu chuẩn của hệ mã hóa khóa bí mật Tuy nhiên, với tốc độ và khả năng xử lý ngày càng được nâng cao của các bộ vi xử lý hiện nay, phương pháp mã hóa DES đã trở nên không an toàn trong bảo mật thông tin Do đó, Viện Tiêu chuẩn và Công nghệ Quốc gia Hoa Kỳ đã quyết định chọn một chuẩn mã hóa mới với độ an toàn cao nhằm phục vụ nhu cầu bảo mật thông tin liên lạc của chính phủ Hoa Kỳ cũng như trong các ứng dụng dân sự Thuật toán Rijndael do Vincent Rijmen và Joan Daeman đã được chính thức chọn trở thành chuẩn mã hóa nâng cao AES từ 02 tháng 10 năm 2000
Bảng 2.2: Mô hình hệ thống mã hoá khoá bí mật
Hệ mã hoá khoá bí mật có đặc điểm sau:
- Ưu điểm: Hệ mã hoá khoá bí mật mã hoá và giải mã nhanh hơn Hệ mã hoá khoá công khai
+ Mã hoá khóa bí mật chưa thật an toàn với lý do sau: người giải mã và người mã hoá phải có chung một khoá Khoá phải được giữ bí mật tuyệt đối, vì biết khoá này dễ xác định được khoá kia và ngược lại
+ Vấn đề thỏa thuận và quản lý khoá chung là khó khăn và phức tạp
Người gửi và người nhận phải luôn thống nhất với nhau về khoá Việc thay đổi khoá là rất khó và dễ bị lộ Khóa chung phải được gửi cho nhau trên kênh an toàn
Mặt khác, khi người lập mã và người giải mã cùng biết chung một bí mật thì càng khó giữ bí mật
Hệ mã hoá khoá bí mật thường được sử dụng trong môi trường mà khoá chung có thể dễ dàng trao chuyển bí mật, chẳng hạn trong cùng một mạng nội bộ và để mã hoá những bản tin lớn vì tốc độ mã hoá và giải mã nhanh hơn hệ mã hoá khoá công khai
2.1.2.2 Hệ mã hoá khoá công khai Nếu như vấn đề khó khăn đặt ra đối với các phương pháp mã hóa khoá bí mật chính là bài toán trao đổi mã khóa thì ngược lại, các phương pháp mã hóa khóa công khai giúp cho việc trao đổi mã khóa trở nên dễ dàng hơn Nội dung của khóa công khai (public key) không cần phải giữ bí mật như đối với khóa bí mật trong các phương pháp mã hóa bí mật Sử dụng khóa công khai, chúng ta có thể thiết lập một quy trình an toàn để truy đổi khóa bí mật được sử dụng trong hệ thống mã hóa khoá bí mật
Trong những năm gần đây, các phương pháp mã hóa khóa công khai, đặc biệt là phương pháp RSA, được sử dụng ngày càng nhiều trong các ứng dụng mã hóa trên thế giới và có thể xem như đây là phương pháp chuẩn được sử dụng phổ biến nhất trên Internet, ứng dụng trong việc bảo mật thông tin liên lạc cũng như trong lĩnh vực thương mại điện tử
Có thể định nghĩa hệ mã hoá công khai như sau:
Hệ mã hoá công khai (Hệ mã hoá khoá phi đối xứng): là hệ mã hoá có khoá lập mã và khoá giải mã khác nhau (ke khác kd) Hệ mã hoá này được gọi là Hệ mã hoá khoá công khai vì:
- Khoá lập mã cho công khai, gọi là khoá công khai
- Khoá giải mã: giữ bí mật, còn gọi là khoá riêng hay khoá bí mật
Một người bất kỳ có thể dùng khoá công khai để mã hoá bản tin nhưng chỉ có người nào có đúng khoá giải mã thì mới có khả năng đọc được bản rõ
Bảng 2.3: Mô hình hệ thống mã hoá với khoá công khai
Hệ mã hoá khoá công khai có đặc điểm sau:
Hàm băm mật mã
Hàm băm là một giải thụât nhằm sinh ra các giá trị băm tương ứng với mỗi khối dữ liệu 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
Bảng 2.4: Ảnh minh họa làm việc của một hàm băm 2.2.2 Phân loại hàm băm
- Hàm băm một chiều (one-way hash functions): Là hàm băm mang chất với mọi mã băm biết trước, không thể tính toán để tìm được chuỗi bit ban đầu vào có mã băm bằng với mã băm đã cho
- Hàm băm kháng xung đột (collision resistant hash funtions): là hàm băm mang tính chất không thể tính toán để tìm ra hai chuỗi bit có cùng giá trị băm
2.2.3 Họ hàm băm SHA 2.2.3.1 Đặc điểm
Thuật toán SHA là thuật toán băm mật được phát triển bởi cục an ninh quốc gia Mỹ (NSA: National Security Agency) và được xuất bản thành chuẩn của chính phủ Mỹ bởi viện công nghệ và chuẩn quốc gia Mỹ (NIST: National Institute of Standards and Technology) Họ hàm băm SHA bao gồm 5 thuật toán băm là: SHA - 1, SHA - 224, SHA - 256, SHA - 384 và SHA - 512 Bốn thuật giải sau thường được gọi chung là SHA - 2 Bảng 2.5 dưới đây thể hiện các tính chất cơ bản của năm thuật toán băm
Kích thước (đơn vị: bit) Độ an toàn
Thuật toán Thông điệp Khối Thông điệp rút gọn
Bảng 2.5: Các tính chất cơ bản của thuật toán băm 2.2.3.2 Nhận xét về họ hàm băm SHA Ưu điểm: SHA là họ hàm băm được coi là an toàn bởi:
- Cho một giá trị băm nhất định được tạo nên bởi một trong những thuật giải SHA, việc tìm lại được đoạn dữ liệu gốc là không khả thi
- Việc tìm được hai đoạn dữ liệu nhất định có cùng kết quả băm tạo ra bởi một trong những thuật giải SHA là không khả thi Bất cứ thay đổi nào trên đoạn dữ liệu gốc, dù nhỏ, cũng sẽ tạo nên một giá trị băm hoàn toàn khác với xác suất rất cao SHA - 1 được sử dụng rộng rãi trong nhiều ứng dụng và giao thức an ninh khác nhau
Nhược điểm: Hiện nay, SHA-1 không còn được coi là an toàn bởi đầu năm
2005, ba nhà mật mã học người Trung Quốc đã phát triển thành công một thuật toán dùng để tìm được hai đoạn dữ liệu nhất định có cùng kết quả băm tạo ra bởi SHA-1 Mặc dù chưa có ai làm được điều tương tự với SHA-2, nhưng vì thuật toán, SHA-2 không khác biệt mấy so với SHA-1 nên nhiều nhà khoa học đã bắt đầu phát triển một thuật toán khác tốt hơn SHA NIST cũng đã khởi đầu một cuộc thi phát triển thuật toán băm mới an toàn hơn SHA, giống như quy trình phát triển chuẩn mã hóa nâng cao AES.
Chữ ký số
Chữ ký số là mô hình sử dụng các kỹ thuật mã hóa để gắn một người sử dụng một cặp khóa bí mật – công khai và qua đó có thể ký các văn bản điện tử cũng như trao đổi các thông tin mật Khóa công khai thường được phân phối thông qua chứng thực công khai Quá trình sử dụng chữ ký số bao gồm: tạo chữ ký và kiểm tra chữ ký
2.3.2 Các ưu điểm của chữ ký số 2.3.2.1 Khả năng xác định nguồn gốc
Các hệ thống mật mã hóa khóa công khai cho phép mật mã hóa văn bản với khóa bí mật mà chỉ có người chủ của khóa biết Để sử dụng chữ ký số thì văn bản cần phải được mã hóa bằng hàm băm (văn bản được "băm" ra thành chuỗi, thường có độ dài cố định và ngắn hơn văn bản) sau đó dùng khóa bí mật để mã hóa, khi đó ta được chữ ký số Khi cần kiểm tra, bên nhận giải mã (với khóa công khai) để lấy lại chuỗi gốc (được sinh ra qua hàm băm ban đầu) và kiểm tra với hàm băm của văn bản nhận được Nếu 2 giá trị (chuỗi) này khớp nhau thì bên nhận có thể tin tưởng rằng văn bản xuất phát từ người sở hữu khóa bí mật Tất nhiên là chúng ta không thể đảm bảo 100% là văn bản không bị giả mạo vì hệ thống vẫn có thể bị phá vỡ
Cả hai bên tham gia vào quá trình thông tin đều có thể tin tưởng là văn bản không bị sửa đổi trong khi truyền vì nếu văn bản bị thay đổi thì hàm băm cũng sẽ thay đổi và lập tức bị phát hiện Quá trình mã hóa sẽ ẩn nội dung của gói tin đối với bên thứ 3 nhưng không ngăn cản được việc thay đổi nội dung của nó
Một ví dụ cho trường hợp này là tấn công đồng hình (homomorphism attack): tiếp tục ví dụ như ở trên, một kẻ lừa đảo gửi 1.000.000 đồng vào tài khoản của a, chặn gói tin (a,b) mà chi nhánh gửi về trung tâm rồi gửi gói tin (a,b 3 ) thay thế để lập tức trở thành triệu phú!Nhưng đó là vấn đề bảo mật của chi nhánh đối với trung tâm ngân hàng không hẳn liên quan đến tính toàn vẹn của thông tin gửi từ người gửi tới chi nhánh, bởi thông tin đã được băm và mã hóa để gửi đến đúng đích của nó tức chi nhánh, vấn đề còn lại vấn đề bảo mật của chi nhánh tới trung tâm của nó
2.3.2.3 Tính không thể chối bỏ
Trong giao dịch, một bên có thể từ chối nhận một văn bản nào đó là do mình gửi Để ngăn ngừa khả năng này, bên nhận có thể yêu cầu bên gửi phải gửi kèm chữ ký số với văn bản Khi có tranh chấp, bên nhận sẽ dùng chữ ký này như một chứng cứ để bên thứ ba giải quyết Tuy nhiên, khóa bí mật vẫn có thể bị lộ và tính không thể phủ nhận cũng không thể đạt được hoàn toàn
2.3.3 Thực hiện chữ ký số khóa công khai
Chữ ký số khóa công khai dựa trên nền tảng mật mã hóa khóa công khai Để có thể trao đổi thông tin trong môi trường này, mỗi người sử dụng có một cặp khóa: một công khaivà một bí mật Khóa công khai được công bố rộng rãi còn khóa bí mật phải được giữ kín và không thể tìm được khóa bí mật nếu chỉ biết khóa công khai
Toàn bộ quá trình gồm 3 thuật toán:
- Thuật toán tạo chữ ký số;
- Thuật toán kiểm tra chữ ký số;
2.3.4 Chữ ký số RSA 2.3.4.1 Giới thiệu
Trong mật mã học, RSA là một thuật toán mật mã hóa khóa công khai Đây là thuật toán đầu tiên phù hợp với việc tạo ra chữ ký điện tử đồng thời với việc mã hóa Nó đánh dấu một sự tiến bộ vượt bậc của lĩnh vực mật mã học trong việc sử dụng khóa công cộng RSA đang được sử dụng phổ biến trong thương mại điện tử và được cho là đảm bảo an toàn với điều kiện độ dài khóa đủ lớn
Thuật toán được Ron Rivest, Adi Shamir và Len Adleman mô tả lần đầu tiên vào năm 1977 tại Học viện Công nghệ Massachusetts (MIT) Tên của thuật toán lấy từ 3 chữ cái đầu của tên 3 tác giả
Trước đó, vào năm 1973, Clifford Cocks, một nhà toán học người Anh làm việc tại GCHQ, đã mô tả một thuật toán tương tự Với khả năng tính toán tại thời điểm đó thì thuật toán này không khả thi và chưa bao giờ được thực nghiệm Tuy nhiên, phát minh này chỉ được công bố vào năm 1997 vì được xếp vào loại tuyệt mật
Thuật toán RSA được MIT đăng ký bằng sáng chế tại Hoa Kỳ vào năm
1983 (Số đăng ký 4.405.829) Bằng sáng chế này hết hạn vào ngày 21 tháng 9 năm 2000 Tuy nhiên, do thuật toán đã được công bố trước khi có đăng ký bảo hộ nên sự bảo hộ hầu như không có giá trị bên ngoài Hoa Kỳ Ngoài ra, nếu như công trình của Clifford Cocks đã được công bố trước đó thì bằng sáng chế RSA đã không thể được đăng ký
Thuật toán RSA có hai khóa: khóa công khai (hay khóa công cộng) và khóa bí mật (hay khóa cá nhân) Mỗi khóa là những số cố định sử dụng trong quá trình mã hóa và giải mã Khóa công khai được công bố rộng rãi cho mọi người và được dùng để mã hóa Những thông tin được mã hóa bằng khóa công khai chỉ có thể được giải mã bằng khóa bí mật tương ứng Nói cách khác, mọi người đều có thể mã hóa nhưng chỉ có người biết khóa cá nhân (bí mật) mới có thể giải mã được
Ta có thể mô phỏng trực quan một hệ mật mã khoá công khai như sau:
Bob muốn gửi cho Alice một thông tin mật mà Bob muốn duy nhất Alice có thể đọc được Để làm được điều này, Alice gửi cho Bob một chiếc hộp có khóa đã mở sẵn và giữ lại chìa khóa Bob nhận chiếc hộp, cho vào đó một tờ giấy viết thư bình thường và khóa lại (như loại khoá thông thường chỉ cần sập chốt lại, sau khi sập chốt khóa ngay cả Bob cũng không thể mở lại được-không đọc lại hay sửa thông tin trong thư được nữa) Sau đó Bob gửi chiếc hộp lại cho Alice
Alice mở hộp với chìa khóa của mình và đọc thông tin trong thư Trong ví dụ này, chiếc hộp với khóa mở đóng vai trò khóa công khai, chiếc chìa khóa chính là khóa bí mật
- Chọn bí mật số nguyên tố lớn p, q, tính n = p * q, công khai n,
- Sao cho việc tách n thành p, q là bài toán khó đặt P = C = Z n
- Chọn khóa công khai b < (n), nguyên tố cùng nhau với (n)
- Khóa bí mật a là phần tử nghịch đảo của b theo mod (n): a*b 1 (mod (n)
- Tập cặp khóa (bí mật, công khai) K = (a, b)/ a, b Z n , a*b 1 (mod (n))
Chữ ký trên x P là y = Sig k (x) = x a (mod n), y A
2.3.4.5 Kiểm tra chữ ký Verk (x, y) = đúng x y b (mod n)
2.3.5 Lược đồ ký số RSA
Dữ liệu cần ký được băm thông qua một hàm băm (SHA-1 hoặc SHA-2)
Dữ liệu băm được ký bởi khóa bí mật của người ký; khóa bí mật được lưu trong thiết bị lưu khóa Để thuận tiện cho người xác thực dữ liệu, chứng thư số của người ký cũng được ghép với chữ ký đầu ra để người xác thực không phải tìm kiếm chứng thư số của người ký khi xác thực chữ ký
- Người dùng truy câp vào khóa bí mật được lưu trực tiếp thiết bị lưu khóa (USB token) Để truy cập được vào thiết bị này người dùng phải tiến hành xác thực bằng mã số PIN
- Áp dụng hàm băm lên tài liệu số
- Mã hóa giá trị băm thu được bằng khóa bí mật để tạo chữ ký số cho tài liệu số
- Gắn chữ ký số lên tài liệu số và gửi đi
Bảng 2.6: Lược đồ ký số RSA 2.3.6 Lược đồ xác thực chữ ký RSA
Hàm băm RSA Chứng thư số người ký
PKI Token Chứng thư số
Bảng 2.7: Lược đồ xác thực chữ ký RSA 2.3.7 Đánh giá độ chi phí, tốc độ và độ an toàn của thuật toán RSA
2.3.7.1 Chi phí và tốc độ thực hiện của thuật toán RSA
Hạ tầng khóa công khai (PKI)
2.4.1 Giới thiệu PKI 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 thư 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 thư 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
2.4.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ư:
- Xác thực người dùng ứng dụng;
- Mã hóa, giải mã văn bản;
- 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ử;
2.4.3 Các thành phần của PKI
- Cơ quan chứng thực Certificate Authority (CA): là một bên thứ 3 được tin cậy có trách nhiệm tạo, quản lý, phân phối, lưu trữ và thu hồi các chứng thư số CA sẽ nhận các yêu cầu cấp chứng thư số và chỉ cấp cho những ai đã xác minh được nhận dạng của họ
- Registration Authority (RA): đóng vai trò trung gian giữa CA và người dùng Khi người dùng cần chứng thư số mới, họ gửi yêu cầu tới RA và RA sẽ xác nhận tất cả các thông tin nhận dạng cần thiết trước khi chuyển tiếp yêu cầu đó tới CA để CA thực hiện tạo và ký số lên chứng chỉ rồi gửi về cho RA hoặc gửi trực tiếp cho người dùng
- Certificate Repository và Archive: có 2 kho chứa quan trọng trong kiến trúc của PKI Đầu tiên là kho công khai lưu trữ và phân phối các chứng chỉ và CRL (chứa danh sách các chứng chỉ không còn hiệu lực) Cái thứ 2 là một cơ sở dữ liệu được CA dùng để sao lưu các khóa hiện đang sử dụng và lưu trữ các khóa hết hạn, kho này cần được bảo vệ an toàn như chính CA
- Security Server: là một máy chủ cung cấp các dịch vụ quản lý tập trung tất cả các tài khoản người dùng, các chính sách bảo mật chứng thư số, các mối quan hệ tin cậy (trusted relationship) giữa các CA trong PKI, lập báo cáo và nhiều dịch vụ khác
- PKI-enabled applications và PKI users: bao gồm các người dùng sử dụng các dịch vụ của PKI và các phần mềm có hỗ trợ cài đặt và sử dụng các chứng thư số như các trình duyệt web, các ứng dụng email chạy phía máy khách
2.4.4 Mô hình hoạt động của PKI
Bảng 2.8: Mô hình PKI 2.4.4.1 Đăng ký và phát hành chứng thư số
Bảng 2.9: Quy trình đăng ký chứng thư số
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 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
2.4.5 Các chức năng cơ bản của PKI 2.4.5.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
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ỉ
2.4.5.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
- Hạn sử dụng và cập nhật khóa
- Công bố và gửi thông báo thu hồi chứng chỉ
2.4.6 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)
Chứng thư số
2.5.1 Giới thiệu chứng thư số
Chứng thư 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 thư 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 thư 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 thư 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 thư số
2.5.2 Các thành phần chính trong chứng thư:
- Serial Number -> Mã số duy nhất được cấp
- 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 thư
- Các thông tin mở rộng khác
2.5.3 Ứng dụng chứng thư số
- 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.
File định dạng PDF và chữ ký số
PDF được viết tắt từ tên tiếng anh Portable Docunment Format là một định dạng file văn bản phổ biến của hãng Adobe Systems Cũng giống như các file văn bản phổ biến như file Word, PDF hỗ trợ chứa các văn bản text, hình ảnh
Với tính năng bảo mật khá cao nên PDF hiện đang một trong những file văn bản được sử dụng khá nhiều để lưu trữ các dữ liệu quan trọng trên thế giới
Một số đặc điểm của file PDF
- File PDF thường có kích thước khá nhỏ nên dễ dàng chia sẻ qua internet
- File PDF được hỗ trợ mã hóa cho nên tính bảo mật rất cao
- PDF được xem và trình bày trên bất kỳ thiết bị bao gồm: máy tính, laptop, các thiết bị di động, smartphone
- Tạo file và chuyển đổi sang các file văn bản khác dễ dàng
- Hỗ trợ nhúng chữ ký số trong file
Hiện nay trên thế giới cũng như Việt Nam chủ yếu dúng ký số trên file PDF
Trong chương đã trình bày các kiến thức cơ sở về lý thuyết liên quan như các hệ mật mã, hạ tầng khoá công khai, hàm Băm, chữ ký số, chữ ký số RSA
Phần giữa và kết chương sẽ đi sâu tìm hiểu, nghiên cứu ứng dụng chữ ký số
RSA hạ tầng khóa công khai Kết chương là giới thiệu file định dạng PDF và chữ ký số.
Xây dựng ứng dụng ký số cho tài liệu lưu trữ quốc gia
Xây dựng yêu cầu của ứng dụng chữ ký số cho tài liệu lưu trữ quốc gia43 1 Xây dựng bài toán chuyển tài liệu từ file định dạng JPEG sang định dạng PDF
3.1.1 Xây dựng bài toán chuyển tài liệu từ file định dạng JPEG sang định dạng PDF
Tài liệu tại các Trung tâm Lưu trữ quốc gia chủ yếu trữ được lưu trữ dưới dạng file ảnh kiểu JPEG, đây là đinh dạng phổ biến khi lưu tài liệu ảnh trên thế giới, nguyên do trước đây các máy quét tài liệu hầu hết không hỗ trợ file định dạng PDF nên khi số hóa tài liệu các Trung tâm Lưu trữ quôc gia đều lưu file dưới định dạng PDF Tuy nhiên đối với tài liệu lưu trữ khi quản lý và khai thác sử dụng tài liệu ảnh JPEG có rất nhiều bât lợi hơn so với file định dạng PDF
- Trung tâm Lưu trữ quốc gia phải quản lý số lượng lớn file tài liệu vì mỗi file ảnh JPEG chỉ chứa 01 trang tài liệu, mỗi hồ sơ tài liệu có rất nhiều file ảnh trong khi đó tài liệu định dạng PDF có thề chứa rất nhiều trang tài liệu bên trong giúp việc quản lý file đơn giản và dễ dàng hơn Hiện nay các Trung tâm lưu trữ quôc gia có trên 12 triệu file tài liệu JPEG, nếu chuyển về định dạng PDF số lượng file tài liệu còn dưới 1 triệu file giúp cho việc quản lý tài liệu dễ dàng hơn nhiều
- Đối với độc giả khi khai thác file tài liệu dạng JPEG có những hồ sơ có trên 500 trang tài liệu, việc đọc toàn bộ 500 file làm tốn rất nhiều thời gian, công sức của độc giả, trong khi đó nếu chuyển sang định dạng PDF khi đó chỉ có 01 file tài liệu giúp đọc giả tra cứu dễ dàng hơn
- File tài liệu dạng JPEG không hỗ trợ trong việc nhúng chữ ký số vào trong file, muốn ký số file thì phải lưu thông tin sang một file mới, gây bất tiện cho độc giả khai thác tài liệu cũng như nhà quản lý, Trong khi đó file định dạng PDF có hỗ trợ nhúng chữ ký số vào trong file giúp cho nhà quản lý và độc giả có thể kiểm tra tính xác thực của tài liệu mọi lúc, mọi nơi
- Hiện nay Cục văn thư và Lưu trữ nhà nước đang chuẩn bị hội thảo xin ý kiến chuyên gia đầu ngành trong lĩnh vực công nghệ thông tin cũng như trong lĩnh vực lưu trữ trong việc lưu trữ tài liệu số hóa theo định dạng PDF thay cho định dạng JPG
Với những lý do trên tác giả đã đề xuất giải chuyển đổi toàn bộ tài liệu JPEG sang định dạng PDF và tiếp sau đó ký số trên file tài liệu định dạng PDF đó.
Lựa chọn hàm băm đại diện và chữ ký số cho tài liệu lưu trữ
Sau khi nghiên cứu Thông tư số 06/2015/TT-BTTTT ngày 23 tháng 3 năm
2015 của Bộ Thông tin Truyền thông ngày Quy định Danh mục tiêu chuẩn bắt buộc áp dụng về chữ ký số và dịch vụ chứng thực chữ ký số Do vậy tác giả lựa chọn thuật toán ký số RSA và hàm băm SHA-256 để ký số cho tài liệu lưu trữ tại các Trung tâm Lưu trữ quốc gia.
Xây dựng ứng dụng và ký số tài liệu
3.3.1 Quá trình ký số file tài liệu
Trước tiên ứng dụng sẽ chuyển file định dạng JPEG sang file PDF sau đó sẽ sử dụng thuật toán hàm băm SHA-256 để băm dữ liệu ra thành 256 bit (gọi là bản tóm lược) Sau đó sử dụng thuật toán RSA và khóa bí mật của người gửi để ký số lên file dữ liệu thành file chữ ký sau đó lưu thông tin vào file PDF
Hình 3.1: Mô hình ký số tài liệu lưu trữ 3.3.2 Quá trình mã hóa
Người dùng không muốn để lộ thông tin trong file tài liệu nên mã hóa file tài liệu Từ file JPEG chuyển đổi sang file PDF sau đó, sử dụng thuật toán mã hóa RSA và lấy khóa công khai để mã hóa tạo ra file dữ liệu mã hóa
Bản tóm lược Ký số RSA
Khóa bí mật(lấy từ USB Token)
Lưu chữ ký vào file PDF Chuyển đổi sang
Bảng 3.1: Mô hình mã hóa file Sau khi mã hóa người dùng đã có 1 file PDF đã được mã hóa 3.3.3 Quá trình giải mã:
Sau khi người nhận thực hiện việc nhận các tệp dữ liệu Lúc này, sẽ có quá trình kiểm tra: kiểm tra file có đúng người nhận hay không? kiểm tra tính toàn vẹn của dữ liệu? Để thực hiện được các quá trình kiểm tra này phải thực hiện các công việc sau:
Bên nhận phải giải mã file dữ liệu mã hóa
Hình 3.3: Mô hình giải mã
- Sử dụng thuật toán RSA để giải mã file dữ liệu bằng khóa bí mật;
- Nếu giải mã không thành công có nghĩa file đó đã bị thay đổi dữ liệu
- Nếu giải mã thành công khi đó người dùng có nghĩa là file đó vẹn toàn dữ liệu
File PDF đã được mã hóa
Lấy khóa công khai để mã hóa
File PDF đã được mã hóa
Khóa bí mật Để giải mã
File DPF không mã hóa
Xác thực chữ ký, khi xác thực chữ ký sẽ sử dụng lấy khóa công khai, từ đó xác định chữ ký đúng hay sai, dữ liệu cũng được băm trước bằng cùng một thuật toán với lúc ký
Bảng 3.2: Mô hình xác thực
- Từ file PDF người dùng khóa công khai của người gửi, sử dụng thuật toán băm SHA 1 và thuật toán RSA để xác thực
- Kiểm tra Bản tóm lược 1 và Bản tóm lược 2 có giống nhau hay không?
Nếu giống nhau thì file nhận được là vẹn toàn (không bị thay đổi hay tác động), nếu không giống nhau là file đã bị thay đổi
3.3.5 Yêu cầu của ứng dụng xây dựng
- Chức năng chuyển đổi toàn bộ file tài liệu đinh dạng JPEG sang file tài liệu định dạng PDF trong thư mục đã được chọn;
- Chức năng tự động ký số toàn bộ tài liệu trong thư mục đã được chọn;
- Có thể đưa hình ảnh chữ ký số vào trang PDF;
- Chức năng mã hóa dữ liệu;
- Chức năng xác thực tài liệu
Phần mềm này có sử dụng 2 thư viện mã nguồn mở ItextSharp và
File dữ liệu toàn vẹn
File dữ liệu bị thay đổi
Khóa công khai để Giải mã
Lấy chữ ký số trong File
3.3.5.1 Module tự động chuyển file tài liệu từ nhiều file JPG sang file PDF
- Module này có chức năng tìm kiếm tất cả các file JPEG trong thư mục đã chọn sau đó sẽ tự động tạo một file PDF và đưa file JPEG trong cùng thư mục vào file PDF, Thư mục mới có tên của thư mục cũ và thêm từ
“_PDF” và lưu vào đó Các bước thực hiện
- Bước 1: Chọn thư mục file JPEG cần chuyển đổi
- Bước 2: Chon thư mục lưu file PDF;
- Bước 3: Bấm nút Chuyển sang PDF khi đó ứng dụng sẽ đọc tất cả các file JPEG trong cùng thư mục và chuyển thành 1 file pdf và lưu vào thu mục mới có tên giông thư mục cũ và thêm từ “_PDF” vào đằng sau
3.3.5.2 Module Module mã hóa và ký số vào file PDF;
- Module này có chức năng tìm kiếm tất cả các file PDF trong thư mục đã chọn sau đó sẽ tự động tạo một file PDF và đưa file JPEG trong cùng thư mục vào file PDF thư mục mới có tên của thư mục cũ và thêm từ
“_Signed” và lưu vào đó;
- Bước 1: Chọn thư mục file PDF cần ký;
- Bước 2: Chọn thư mục file PDF đã ký;
- Bước 3: Chọn chứng thư số cần ký; ỨNG DỤNG KÝ SỐ TÀI LIỆU LƯU TRỮ QUÔC GIA
Chuyển đổi fie JPEG sang PDF
Ký số PDF (Tùy chọn hiển thị ảnh ký số)
- Bước 4: Nếu muốn mã hóa dữ liệu tích và nút mã hóa( nếu không mã hóa bỏ qua bước này);
- Bước 5: Bấm nút ký số để ký số cho toàn bộ tài liệu đã được chọn;
3.3.5.3 Module xác thực file PDF Module này có chức năng kiểm tra tính vẹn toàn của tà PDF
- Bước 1: chọn thư file PDF cần xác thực;
- Bước 2: Ấn nút xác thực tài liệu; Ứng dụng có thông báo kết quả cùa file dữ liệu đó có ven toàn hay đã thay đổi
3.3.6 Một số hình ảnh của ứng dụng ký số
Bảng 3.3: Giao diện ứng dụng
Bảng 3.4: Chức năng chuyển đổi file JPEG sang PDF và ký số tài liệu
Bảng 3.5: Giao diện chọn chứng thư số và tùy chọn hình ảnh đại diện
ChuChuyển đổi JPEG sang PDF
Mô tả thông tin tài liệu
Bảng 3.6: Lựa chọn hình ảnh đại diện
Bảng 3.7: Lựa chọn chứng thư để ký
Bảng 3.8: Tùy chọn mã hóa dữ liệu
Kết luận
Với mục tiêu là nghiên cứu chữ ký số và ứng dụng chữ ký số trong quản lý tài liệu quốc gia, xét về mặt kết quả tổng quan, Luận văn đã đạt được các yêu cầu sau
- Nghiên cứu tổng quan về bảo mật an toàn thông tin, an toàn thông tin trong tài liệu lưu trữ
- Khảo sát thực trạng tài liệu đang được lưu trữ tại câc trung tâm Lưu trữ quốc gia, đưa ra được số liệu cụ thể tài liệu số đang được lưu trữ tại các Trung tâm Lưu trữ quốc gia
- Nghiên cứu tổng quan về chữ ký số, hàm Băm, hạ tầng khóa công khai
- Xây dựng ứng dụng ký số cho tài liệu lưu trữ quôc gia
- Ứng dụng mới chỉ ký số cho tài liệu định dạng JPEG, chưa ký số cho các định dạng khác
Trong thời gian tới ứng dụng sẽ bổ sung thêm tính năng ký các file ghi âm, và các định dạng video khác Ngoài ra ứng dụng cũng cần hoàn tiện thêm khi triển khai thực tế tại các Trung tâm Lưu trữ quốc gia giúp đảm bảo tính toàn vẹn và xác thực của tài liệu cũng như tính bảo mật của tài liệu./.
Tài liệu tham khảo
1 Trịnh Nhật Tiến, Giáo trình An toàn dữ liệu;
2 TS Hồ Văn Hương, Ths Đào Thị Ngọc Thuỳ, Ứng dụng hệ thống kiểm soát truy nhập mạng theo mô hình truy nhập một lần, Tạp chí An toàn thông tin, số 1 (025) 2013
3 TS Hồ Văn Hương, KS Hoàng Chiến Thắng, Ký số và xác thực trên nền tảng web, Tạp chí An toàn thông tin, số 2 (026) năm 2013;
4 TS Hồ Văn Hương, KS Hoàng Chiến Thắng, KS Nguyễn Quốc Uy Giải pháp bảo mật và xác thực thư điện tử, Tạp chí An toàn thông tin số 04 (028), 2013;
5 Vnisa, Báo cáo hiện trạng ATTT tại Việt Nam 2010
6 Báo cáo tổng hợp tình hình lưu trữ và sử dụng cơ sở dữ liệu tài liệu lưu trữ tại các Trung tâm Lưu trữ quốc gia năm 2014 của Cục văn thư và Lưu trữ nhà nước
7 William Stallings, Cryptography and Network Security Principles and Practices, Fourth Edition, November 16, 2005;
8 Whitfield Diffie and Martin E Hellman, New Directions in Cryptography, 1976;
9 Bart Van Rompay Analysis and Desigbn of Cryptographic Hash Functions, MAC Algorithms and Block Ciphers, Juni 2004;
10 Burt Kaliski,RSA Laboratories, The Mathematics of the RSA Public- Key Cryptosystem;
Phụ lục: Mã nguồn chương trình
private void btnConvert_Click(object sender, EventArgs e) { if (txtSrcFdr.Text == "") {
MessageBox.Show("Bạn chưa chọn thư mục nguồn"); return;
} if (!Directory.Exists(txtSrcFdr.Text)) {
MessageBox.Show("Thư mục nguồn bạn chọn không tồm tại"); return;
MessageBox.Show("Bạn chưa chọn thư mục đích"); return;
} if (!Directory.Exists(txtDestFdr.Text)) { try { Directory.CreateDirectory(txtDestFdr.Text);
} catch { MessageBox.Show("Không tạo được thư mục file ký số"); return;
} } success = false; bw.RunWorkerAsync(); toolStripProgressBar1.Style = ProgressBarStyle.Marquee;
} private void bw_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{ toolStripProgressBar1.Style = ProgressBarStyle.Blocks; toolStripProgressBar1.Value = 0; if (success) MessageBox.Show("Bạn đã chuyển đổi thành công: " + TongFileTao +
"/" + TongFileTao + TongFileLoi, "Hoan thanh", MessageBoxButtons.OK, MessageBoxIcon.Information);
PdfSharp.Pdf.PdfDocument AddPage(PdfSharp.Pdf.PdfDocument doc, XSize size, string strFileName, int intPage)
XGraphics xgr = XGraphics.FromPdfPage(doc.Pages[intPage]);
XImage img = XImage.FromFile(strFileName); if (XUnit.FromPoint(size.Height) < XUnit.FromPoint(img.Height)) {
Height = Math.Round((XUnit.FromPoint(size.Height) - XUnit.FromPoint(img.Height)) / 2);
} if (XUnit.FromPoint(img.Width) < XUnit.FromPoint(size.Width)) {
Width = Math.Round((XUnit.FromPoint(size.Width) - XUnit.FromPoint(img.Width)) / 2);
} xgr.DrawImage(img, 20, 20); return doc;
} void CreateAllFilePDF(string strSounrcetFolder, ref int TongFileTao, ref int TongFileLoi)
{ CreateFilePDF(strSounrcetFolder, ref TongFileTao, ref TongFileLoi); string[] subdirectoryEntries = Directory.GetDirectories(strSounrcetFolder); foreach (string subdirectory in subdirectoryEntries) {
CreateAllFilePDF(subdirectory, ref TongFileTao, ref TongFileLoi);
} } void CreateFilePDF(string strSounrcetFolder, ref int TongFileTao, ref int TongFileLoi)
{ try { XSize size = new XSize(XUnit.FromMillimeter(297), XUnit.FromMillimeter(210));
PdfSharp.Pdf.PdfDocument doc = new PdfSharp.Pdf.PdfDocument(); string strTargetFile = txtDestFdr.Text + strSounrcetFolder.Substring(txtSrcFdr.Text.Length, strSounrcetFolder.Length - txtSrcFdr.Text.Length); strTargetFile += "\\" + new DirectoryInfo(strSounrcetFolder).Name + ".pdf"; string strTarrgetFolder = Path.GetDirectoryName(strTargetFile); if (CreateDir(strTarrgetFolder) != 1) { return; } string[] filePaths = Directory.GetFiles(strSounrcetFolder,
"*.jpg", SearchOption.TopDirectoryOnly); if (filePaths.Length >= 0) { for (int intThutu = 0; intThutu < filePaths.Length; intThutu++) { doc.Pages.Add(new PdfSharp.Pdf.PdfPage());
AddPage(doc, size, filePaths[intThutu], intThutu);
} } doc.Save(strTargetFile); doc.Close(); success = true;
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Information);
} } private void bw_DoWork(object sender, DoWorkEventArgs e) { try { TongFileTao = 0; TongFileLoi = 0;
CreateAllFilePDF(txtSrcFdr.Text, ref TongFileTao, ref TongFileLoi);
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
Class Ký số using System; using System.Collections.Generic; using System.Text; using Org.BouncyCastle.Crypto; using Org.BouncyCastle.X509; using System.Collections; using Org.BouncyCastle.Pkcs; using iTextSharp.text.pdf; using System.IO; using iTextSharp.text.xml.xmp; using Org.BouncyCastle.Security; namespace TTTH.DAITD.KYSO { class PDFSigner { private string inputPDF = ""; private string outputPDF = ""; private Cert myCert; private MetaData metadata; public PDFSigner(string input, string output) { this.inputPDF = input; this.outputPDF = output;
} public PDFSigner(string input, string output, Cert cert) { this.inputPDF = input; this.outputPDF = output; this.myCert = cert;
} public PDFSigner(string input, string output, MetaData md) { this.inputPDF = input; this.outputPDF = output; this.metadata = md;
} public PDFSigner(string input, string output, Cert cert, MetaData md) { this.inputPDF = input; this.outputPDF = output; this.myCert = cert; this.metadata = md;
} public void Sign(PDFSignatureAP sigAP, bool encrypt, PDFEncryption Enc) {
PdfReader reader = new PdfReader(this.inputPDF);
FileStream fs = new FileStream(this.outputPDF, FileMode.Create, FileAccess.Write);
PdfStamper st; if (this.myCert == null) { st = new PdfStamper(reader, fs);
} else { st = PdfStamper.CreateSignature(reader, fs, '\0', null, sigAP.Multi);
} if (encrypt && Enc != null) Enc.Encrypt(st);
//st.SetEncryption(PdfWriter.STRENGTH128BITS, "user", "owner", PdfWriter.ALLOW_COPY); st.MoreInfo = this.metadata.getMetaData(); st.XmpMetadata = this.metadata.getStreamedMetaData(); if (this.myCert == null) //No signature just write meta-data and quit { st.Close(); return;
PdfSignatureAppearance sap = st.SignatureAppearance; sap.SetCrypto(this.myCert.Akp, this.myCert.Chain, null, PdfSignatureAppearance.WINCER_SIGNED); sap.Reason = sigAP.SigReason; sap.Contact = sigAP.SigContact; sap.Location = sigAP.SigLocation; if (sigAP.Visible) { iTextSharp.text.Rectangle rect = st.Reader.GetPageSize(sigAP.Page); sap.Image = sigAP.RawData == null ? null : iTextSharp.text.Image.GetInstance(sigAP.RawData); sap.Layer2Text = sigAP.CustomText; sap.SetVisibleSignature(new iTextSharp.text.Rectangle(sigAP.SigX, sigAP.SigY, sigAP.SigX + sigAP.SigW, sigAP.SigY + sigAP.SigH), sigAP.Page, null); }
PdfSignature dic = new PdfSignature(PdfName.ADOBE_PPKLITE, new PdfName("adbe.pkcs7.detached")); dic.Reason = sap.Reason; dic.Location = sap.Location; dic.Contact = sap.Contact; dic.Date = new PdfDate(sap.SignDate); sap.CryptoDictionary = dic; int contentEstimated = 15000;
// Preallocate excluded byte-range for the signature content (hex encoded)
Dictionary exc = new Dictionary(); exc[PdfName.CONTENTS] = contentEstimated * 2 + 2; sap.PreClose(exc);
PdfPKCS7 sgn = new PdfPKCS7(this.myCert.Akp, this.myCert.Chain, null,