GIẢI PHÁP XÁC THỰC VÀ BẢO MẬT

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu giải pháp xác thực và bảo mật tài liệu trong trao đổi văn bản trên môi trường mạng giữa các cơ quan nhà nước (Trang 40)

Từ những nghiên cứu trong chương 1 và chương 2, chương 3 tập trung phân tích thiết kế giải pháp xác thực và bảo mật thông tin trong trao đổi tài liệu trên môi trường mạng.

3.1. Giới thiệu giải pháp

Hiện nay đã có nhiều cơng cụ (phần mềm, giải pháp) hỗ trợ người dùng trong việc xác thực và mã hố thơng tin. Tuy nhiên các cơng cụ này chủ yếu được cung cấp từ các nhà cung cấp chữ ký số hoặc phần mềm miễn phí dùng để cài đặt tại máy PC của người dùng để sử dụng cho các ứng dụng cài đặt tại máy. Việc tích hợp với các ứng dụng khác, đặc biệt là các ứng dụng web chưa được chú trọng.

Giải pháp xác thực tài liệu trên môi trường mạng: Là việc xây dựng phần mềm xác thực (ký số) tài liệu trong trao đổi văn bản trên môi trường mạng. Giải pháp được xây dựng cho phép tích hợp trên các chức năng gửi nhận tài liệu của các ứng dụng web bằng việc sử dụng chứng chỉ số cho máy chủ và chứng chỉ số của tổ chức, cá nhân tham gia vào hệ thống.

3.2. Sơ đồ kiến trúc giải pháp xác thực tài liệu trên môi trường mạng

Từ những nghiên cứu trong chương 1 về hiểm họa đối với ứng dụng web, đặc biệt đối với các ứng dụng trong các hoạt động của các cơ quan nhà nước cần được coi trọng và đảm bảo tính xác thực, toàn vẹn cho các tài liệu (văn bản) trao đổi qua mạng. Hình 3.1 mơ tả q trình xác thực tài liệu truyền nhận giữa máy chủ và máy trạm.

Hình 3.1. Mơ hình xác thực tài liệu trên mơi trƣờng mạng

Các thành phần trong của sơ đồ:

a) Thiết bị eToKen:

Là thiết bị được sử dụng để lưu trữ các khóa riêng và chứng chỉ số của người dùng, được sử dụng trong xác thực người dùng, ký số tài liệu điện tử, mã hóa tài liệu điện tử như Hình 3.2 a và b.

a) Thiết bị eToKen

b) Thành phần của eToKen

Hình 3.2. Thiết bị eToKen và thành phần của eToKen

Chứng chỉ: Lưu trữ chứng chỉ số được cấp bởi tổ chức cấp chứng chỉ cho người dùng.

Khóa: Bao gồm một khóa cơng khai (public key), một khóa riêng (private key) và khóa bảo vệ (secret key).

Các đối tượng này chỉ được sử dụng khi thiết bị eToKen kết nối với ứng dụng, nó khơng cho phép đọc hoặc lưu trữ khóa riêng ra thiết bị lưu trữ khác. Do tính an tồn của thiết bị eToKen, nên nó được sử dụng phổ biến trong các ứng dụng hiện nay như sử dụng để ký số, thực hiện các giao dịch thương mại, hải quan điện tử, kê khai thuế qua mạng.

b) Ứng dụng phía máy trạm bao gồm

Là giao diện được tích hợp trong mỗi chức năng có yêu cầu ký số hoặc xác thực của ứng dụng.

c) Thư viên mật mã

Cung cấp các lớp, các phương thức cho phép tương tác với modul tích hợp trên trình duyệt để thực thi các chức năng theo yêu cầu của chương trình.

d) Chứng chỉ số cho máy chủ

Sử dụng chứng chỉ SSL, nhằm đảm bảo thông tin trên kênh truyền cho ứng dụng web. Khi đó mọi dữ liệu trao đổi giữa người dùng và website sẽ được mã hóa (ở phía người gửi) và giải mã (ở phía người nhận) bởi cơ chế SSL mạnh mẽ nhất hiện nay. Nếu website không sử dụng chứng chỉ số SSL, mọi dữ liệu nhập vào website từ người dùng sẽ được truyền đi nguyên bản trên Internet. Khi đó, nguy cơ dữ liệu bị xâm nhập trong quá trình trao đổi dữ liệu giữa người dùng và website sẽ rất cao.

e) Các Dịch vụ phía máy chủ

Thực hiện xác thực tài liệu; dịch vụ Upload tài liệu cho phép máy trạm thực hiện tải tải liệu đã được ký số hoặc mã hóa lên server phục vụ cho quá trình phân phối tài liệu của ứng dụng (mạng văn phịng điện tử liên thơng).

3.3. Phân tích thiết kế giải pháp

3.3.1. Các chức năng cần thiết cho yêu cầu của phần mềm xác thực

STT Tên chức năng Mô tả chi tiết

1 Chức năng tại máy trạm

1.1 Cung cấp giao diện cho người dùng

Để tạo giao diện tích hợp với ứng dụng cho phép người dùng thực hiện các thao tác cần thiết

1.2 Ghép nối với thư viện mật mã Ghép nối với thư viện mật mã để thực hiện ký số, mã hóa theo yêu cầu của chương trình

1.3 Ghép nối với thiết bị eToKen Ghép nối với thiết bị eToKen khi có yêu cầu về khóa và chứng chỉ lưu trữ trong eToKen

2 Chức năng tại máy chủ

2.1 Tạo giao diện giao tiếp với máy trạm

Tạo giao diện để tải tài liệu trước khi xử lý

2.2 Kiểm tra, xác thực tài liệu Kiểm tra tính đúng đắn của tài liệu được gửi cũng như chứng chỉ người gửi

2.3 Thực hiện Upload tài liệu lên máy chủ

Upload tài liệu lên thư mục hoặc CSDL trên máy chủ

3 Thƣ viện mật mã

3.3 Các phương thức mã hóa Các phương thức mã hóa

3.3.2. Lựa chọn ngơn ngữ lập trình và cơng cụ thiết kế ứng dụng

- Visual Studio 2010 và.NET Framework 4

Visual Studio là bộ cơng cụ hồn chỉnh cho phép xây dựng, triển khai các ứng dụng cho máy để bàn lẫn các ứng dụng web. Visual Studio hỗ trợ nhiều ngôn ngữ lập trình từ C, C++, C#, C#.net, VB..; với Visual Studio 2010 Ultimate SP1 hỗ trợ.NET Framework 4 và Siverlight 5 cần thiết để xây dựng ứng dụng trong giải pháp này.

- Công cụ phát triển Silverlight verson 5.0

Việc lựa chọn Silverlight vì các lý do sau: Silverlight là một plug-in đa nền, đa trình duyệt nhằm cung cấp các ứng dụng cho phép tương tác với tài nguyên tại máy client. Silverlight cung cấp mơ hình lập trình động hỗ trợ AJAX, C#,.. và tích hợp với các ứng dụng Web hiện tại. Silverlight hỗ trợ đến phần lớn cả các trình duyệt web phổ biến hiện nay và chạy trên nền Mac OS hoặc Windows (Hình 3.3). Mặt khác với yêu cầu phục vụ cho ứng dụng ký số và mã hóa, do đó ứng dụng phải được thực thi phía máy trạm để thực hiện giao tiếp với thiết bị eToKen nhằm nâng cao tính an tồn và tồn vẹn thơng tin cho người dùng.

Hình 3.3. Khả năng hỗ trợ của Siverlight 5 đối với các loại hệ điều hành và trình duyệt Web

3.3.3. Phân tích thiết kế các thành phần của mơ hình

Trên cơ sở mơ hình xác thực và bảo mật đã giới thiệu trong mục 3.2, việc phân tích thiết kế phần mềm cần thực hiện các nội dung sau:

- Phân tích thiết kế thư viện mật mã cài đặt phía máy trạm và sử dụng tại máy chủ;

- Phân tích thiết kế dịch vụ phía máy chủ - Thiết kế công cụ ký số trên web

3.3.3.1. Thƣ viện mật mã

Thư viện mật mã trong mơ hình này được xây dựng trên cơ sở cá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ố được quy định tại Quyết định sô: 59/2008/QĐ-BTTTT ngày 31/12/2008 của Bộ Thông tin và Truyền thơng và các tiêu chuẩn về an tồn thơng tin theo quy định tại Thông tư số 01/2011/TT-BTTTT ngày 04/01/2011 của Bộ trưởng Bộ Thông tin và Truyền thông.

Thư viện mật mã bao gồm các hàm, thủ tục cho phép giao tiếp với thiết bị eToken và các hàm, thủ tục ký số, xác thực văn bản như hình Hình 3.4 và dưới đây:

Hình 3.5. Lƣợc đồ xác thực văn bản ký số

3.3.3.2. Dịch vụ phía máy chủ

Để nâng cao tính an tồn thơng tin, mơ hình xác thực và bảo mật tài liệu thiết kế theo mơ hình client- server trên mơi trường web, trong đó q trình ký số hoặc mã hóa được thực thi tại máy trạm (client), máy chủ (server) chỉ làm nhiệm vụ cung cấp giao diện tại trình duyệt và đẩy dữ liểu lên server.

Dịch vụ WebService với phương thức Upload cho phép ứng dụng sử dụng để đưa dữ liệu file lên máy chủ một cách an tồn. Thuật tốn được mơ tả như sau:

- Đầu vào: tệp dữ liệu từ máy trạm được chọn - Đầu ra: đường dẫn tệp dữ liệu trên máy chủ - Các bước thực hiện:

B1) Đọc dữ liệu từ tệp dữ liệu từ máy trạm được chọn

B2) Thử Ghi dữ liệu vào biến writer (BinaryWriter) và đẩy lên máy chủ B3) Nếu q trình tại B2 thành cơng thì trả về đường dẫn tệp dữ liệu trên máy chủ, nếu khơng được thì trả về đường dẫn rỗng.

- Phương thức Upload chi tiết như sau:

public class SecureUpload : System.Web.Services.WebService {

[WebMethod]

public string Upload(string filename, byte[] rawfile)

{

string folderpath = stem.Web.Hosting.HostingEnvironment.MapPath("~/FileUpload/"); string filepath = WSUtils.getFilePathForUpload(Path.Combine(folderpath,filename)); BinaryWriter writer = null;

try {

// Create a new stream to write to the file

FileStream fstream = System.IO.File.Open(filepath, FileMode.OpenOrCreate); writer = new BinaryWriter(fstream);

// Writer raw data writer.Write(rawfile); writer.Flush(); writer.Close(); try { fstream.Close(); } catch (Exception) { } return filepath; }

catch (Exception) { return ""; }

} }

3.3.4. Công cụ ký số trên web

Mục tiêu thiết kế công cụ ký số trên web nhằm thực hiện việc ký số trực tiếp trên ứng dụng web, tuy nhiên vẫn đảm bảo tính tồn vẹn và tin cậy cho tài liệu được ký (vì tài liệu được ký tại máy trạm và thao tác trực tiếp trên thiết bị eToken). Chương trình ký được phát triển trên siverlight phiên bản 5 và.Net FrameWork 4.0.

Việc thiết kế công cụ ký số đảm bảo các yêu cầu sau:

- Cho phép người dùng lựa chọn văn bản để ký (văn bản định dạng.pdf) - Khi thực hiện lệnh ký số cho văn bản ứng dụng tự động giao tiếp với thiết bị eToken và thư viện mật mã đã cài đặt tại máy trạm để thực hiện ký văn bản.

- Kết quả trả về tệp văn bản được ký và tự động đẩy lên máy chủ - Thông báo cho người dùng kết quả đã thực hiện.

Mơ tả chƣơng trình:

Đầu vào: - Tệp văn bản cần ký - Thiết bị eToken

- Thao tác, lệnh từ người dùng Đầu ra: - Tệp văn bản được ký

- Đẩy tệp văn bản ký lên máy chủ

- Thông báo cho người dùng kết quả thực hiện Các bước:

B1 Kiểm tra độ tin cậy (ứng dụng phải được tin cậy với trình duyệt bằng cách sử dụng chứng chỉ để ký cho ứng dụng và cài đặt tại máy trạm. Nếu khơng tin cậy thì cho thơng báo và kết thúc.

B2 Cho phép người dùng duyệt tệp văn bản, nếu tệp văn bản

khơng dúng định dạng thì u cầu duyệt lại tệp văn bản. B3 - Kiểm tra thiết bị eToken, nếu hợp lệ (đã kết nối và nhập

đúng mã PIN) thì thực hiện ký tệp văn bản - Đẩy tệp văn bản đã ký lên máy chủ - Thông báo ký thành cơng

Mã chương trình: using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Windows; using System.Windows.Controls; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Animation; using System.Windows.Shapes; using System.Runtime.InteropServices.Automation; using System.IO; using System.Windows.Browser; using Demo.Service_UpLoad; using System.ServiceModel; namespace Demo {

public partial class MainPage : UserControl { string FileName = ""; string UploadWS_url = ""; public MainPage() { InitializeComponent(); }

public MainPage(IDictionary<string, string> initParams) { InitializeComponent(); try { this.UploadWS_url = initParams["UploadWS"]; } catch (Exception) { } }

private void Button_Click(object sender, RoutedEventArgs e) { if (Application.Current.HasElevatedPermissions) { BrowserFile(); RefresbtnSign(); } else {

MessageBox.Show("Ứng dụng khơng được tin cậy với trình duyệt");

} }

private void BrowserFile() {

try {

OpenFileDialog fld = new OpenFileDialog(); fld.ShowDialog();

FileName = fld.File.FullName;

lblFileName.Content = FileName.Substring(FileName.LastIndexOf(@"\") + 1); } catch (Exception) { FileName = ""; } }

private void button1_Click(object sender, System.Windows.RoutedEventArgs e) {

try {

dynamic bcycom = AutomationFactory.CreateObject("BCYCryptoClass"); //bcycom.SignPDFByEtoken1(txtInputFile.Text,txtFileDes.Text); MessageBox.Show("Đã ký xong văn bản");

}

catch (Exception ex) { MessageBox.Show(ex.ToString()); } }

private void cmdTestWS_Click(object sender, System.Windows.RoutedEventArgs e) {

this.busyIndicator1.IsBusy = true; cmdTestWS.IsEnabled = false;

WSUploadSoapClient proxy = new WSUploadSoapClient(); if (!string.IsNullOrEmpty(this.UploadWS_url)) {

EndpointAddress MyEndpointAddress = new EndpointAddress(this.UploadWS_url); proxy.Endpoint.Address=MyEndpointAddress;

}

string fname = "", folderpath = ""; if (FileName == "")

{

MessageBox.Show("Bạn hãy chọn văn bản để ký "); this.busyIndicator1.IsBusy = false;

return; }

dynamic bcycom = AutomationFactory.CreateObject("BCYCryptoClass"); byte[] raw = null;

try { raw = (byte[])bcycom.SignPDFByEtoken2(FileName); } catch (Exception) {

MessageBox.Show("Lỗi thao tác ký, hãy thực hiện lại thao tác"); busyIndicator1.IsBusy = false;

RefresbtnSign(); return;

}

getFileName(FileName, ref fname, ref folderpath); proxy.UploadCompleted+=new

EventHandler<UploadCompletedEventArgs>(proxy_UploadCompleted); proxy.UploadAsync(fname, raw);

}

void proxy_UploadCompleted(object sender, UploadCompletedEventArgs e) {

string sFileSign = Part.Substring(Part.LastIndexOf(@"\") + 1);

HtmlPage.Document.GetElementById("txtData").SetProperty("value", Part);//txtData //HtmlPage.Document.GetElementById("txtFileName").SetProperty("value",

sFileSign);//txtFileName

lblFileNameSign.Content = "Văn bản ký số: " + sFileSign; busyIndicator1.IsBusy = false;

//cmdTestWS.IsEnabled = true;

}

public static void getFileName(string filepath, ref string fname, ref string folderpath) { if (filepath == null) return; if (filepath == "") return;

int pos = filepath.LastIndexOf('\\'); if (pos < 0)

return; else {

fname = filepath.Substring(pos + 1); folderpath = filepath.Substring(0, pos); }

}

private void RefresbtnSign() { if (FileName == "") { cmdTestWS.IsEnabled = false; } cmdTestWS.IsEnabled = true; lblFileNameSign.Content = ""; } } }

3.4. Cài đặt giải pháp xác thực và bảo mật

3.4.1. Cài đặt chứng thƣ SSL cho ứng dụng mạng văn phịng điện tử

Để cài đặt an tồn tầng giao vận với giao thức https, máy chủ cần được cấp chứng thư số và chứng thư này phải được tin cậy tức là được một đơn vị có đủ tin cậy cấp. Sau đây là các bước cài đặt chứng chỉ SSL trên máy chủ Window server 2008, IIS 7:

1. Chuẩn bị chứng chỉ SSL

2. Vào Start –> Administrative Tools –> Internet Information Services (IIS) Manager.

3. Nhấn vào tên máy chủ.

5. Từ trình đơn “Actions“, nhấn “Complete Certificate Request.” để mở trình thuật sĩ Complete Certificate Request.

6. Chỉ đến vị trí tập tin chứng chỉ SSL. Ta sẽ được yêu cầu nhập tên đại diện cho chứng chỉ này (nên đặt trùng với tên miền mà đã đăng ký SSL).

7. Nhấn “OK” để cài đặt chứng chỉ.

Chú ý: Có thể sẽ gặp các thông báo lỗi sau: “Cannot find the certificate request associated with this certificate file. A certificate request must be completed on the computer where it was created.” hoặc “ASN1 bad tag value met“. Nếu đang cài đặt SSL lên chính máy chủ mà đã tạo CSR thì trong đa phần các trường hợp có thể làm ngơ trước các thông báo lỗi này. Và chứng chỉ SSL sẽ được cài đặt thành công và hiện trong danh sách. Nếu không hiện trong danh sách cần tạo lại CSR và tiến hành đăng ký một chứng chỉ SSL khác.

8. Từ cửa sổ IIS, chọn tên trang web sẽ được áp dụng bảo mật SSL. 9. Từ trình đơn “Actions“, nhấn “Bindings.” để mở cửa sổ “Site Bindings“.

10. Trong cửa sổ “Site Bindings“, nhấn nút “Add…“.

11. Trong danh sách “Type” chọn https. Ở danh sách “SSL Certificate” chỉ định chứng chỉ số đã được cài đặt thành công ở bước 7.

12. Nhấn “OK.”

Như vậy là chứng chỉ SSL đã được cài đặt và có thể thử truy cập vào website bằng giao thức https.

3.4.2. Cài đặt tích hợp ứng dụng ký số cho ứng dụng mạng văn phòng điện tử điện tử

a) Tích hợp giao diện trên ứng dụng

Cơng cụ ký số được tích hợp trong chức năng cập nhật văn bản đi tại đầu mối các cơ quan trong hệ thống mạng văn phịng điện tử liên thơng

<form id="form1" runat="server" style="height:100%"> <div id="silverlightControlHost">

<input type="text" runat="server" id="txtData" value=""/>

<object data="data:application/x-silverlight-2," type="application/x-

silverlight-2" width="100%" height="100%">

<param name="source" value="ClientBin/KySo.xap"/> <param name="onError" value="onSilverlightError" /> <param name="background" value="white" />

<param name="minRuntimeVersion" value="5.0.60401.0" /> <param name="initParams"

value="UploadWS=http://localhost:8691/WSUpload.asmx"/>

<a

href="http://go.microsoft.com/fwlink/?LinkID=149156&v=5.0.60401.0" style="text- decoration:none">

<img src="http://go.microsoft.com/fwlink/?LinkId=161376"

alt="Get Microsoft Silverlight" style="border-style:none"/>

</a> </object><iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe> </div> </form>

Trong đó tệp “KySo.xap” là tệp biên dịch từ ứng dụng Siverlight để cung cấp giao diện ký số cho ứng dụng web.

b) Cài đặt thư viện tại máy trạm

Để ứng dụng Siverlight hoạt động được trên máy trạm cần thực hiện các yêu cầu sau:

- Cài đặt thư viện mã hóa (cung cấp các hàm đã xây dựng);

Bước 1: Mở tệp setup.exe trong thư mục cài đặt để tiến hành cài đặt bộ thư viện cho ứng dụng. Nhấn Next để thực hiện bước tiếp theo.

- Cài đặt chứng thư số tại máy trạm: Chứng thư này chính là chứng thư đã ký cho giao diện trên trình duyệt để đảm bảo tính tin cậy giữa trình duyệt và máy chủ;

- Cài đặt trình điều khiển (Driver) cho thiết bị eTocken (thiết bị lưu

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu giải pháp xác thực và bảo mật tài liệu trong trao đổi văn bản trên môi trường mạng giữa các cơ quan nhà nước (Trang 40)

Tải bản đầy đủ (PDF)

(62 trang)