Cách tạo ra chữ ký số

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 tích hợp chữ ký số bảo mật ứng dụng trong hệ điều hành tác nghiệp lotus notes 04 (Trang 34)

CHƢƠNG 1 : TỔNG QUAN VỀ AN TOÀN VĂN PHÒNG ĐIỆN TỬ

2.5. Chữ ký số

2.5.2. Cách tạo ra chữ ký số

Quá trình sử dụng chữ ký số bao gồm hai quy trình: tạo chữ ký và kiểm tra chữ ký số.

Quy trình tạo chữ ký số

Dùng giải thuật băm để thay đổi thông điệp cần truyền đi, kết quả ta đƣợc một bản tóm lƣợc của thông điệp, trƣờng hợp nếu dùng giải thuật MD5 ta sẽ thu đƣợc bản tóm lƣợc có độ dài 128 bit, nếu dùng giải thuật SHA-1 ta sẽ thu đƣợc bản tóm lƣợc có độ dài 160 bit.

Sử dụng khóa private key của ngƣời ký để mã hóa bản tóm lƣợc ở trên ta thu đƣợc chữ ký số. Chữ ký số đƣợc gắn với thông điệp dữ liệu tạo thành thông điệp dữ liệu đƣợc ký số.

Hình 2.5 Quy trình tạo chữ ký số

Quy trình xác thực chữ ký số

Sử dụng khóa public key của ngƣời gửi để giải mã chữ ký số của thông điệp. Nếu quá trình giải mã thất bại thì chứng tỏ chữ ký đó không phải của ngƣời gửi, nếu quá trình giải mã thành công thì chứng tỏ chữ ký số đó của ngƣời gửi và kết quả ta thu đƣợc bản tóm lƣợc.

Dùng giải thuật MD5 hoặc SHA để băm thông điệp đính kèm ta thu đƣợc bản tóm lƣợc thứ hai, ta thực hiện so sánh hai bản tóm lƣợc trên, nếu thấy trùng nhau ta kết luận thông điệp không bị thay đổi trong quá trình truyền đi, và ngƣợc lại nếu so sánh hai bản tóm lƣợc không trùng nhau thì kết luận thông điệp đã bị thay đổi.

Hình 2.6 Quy trình xác thực chữ ký số 2.5.3. Sơ đồ chữ ký số 2.5.3. Sơ đồ chữ ký số Sơ đồ chữ ký số là bộ 5 (P, A, K, S, V), trong đó: P là tập hữu hạn các văn bản có thể. A là tập hữu hạn các chữ ký có thể. K là tập hữu hạn các khoá có thể. S là tập các thuật toán ký.

V là tập các thuật toán kiểm thử.

Với mỗi khóa kK, có thuật toán ký Sig kS, Sigk: P A, và thuật toán kiểm tra chữ ký Ver kV, Ver k: PAđúng, sai, thoả mãn điều kiện sau với mọi xP, yA:

Trong đó khóa bí mật a dùng làm khóa “ký”, khóa công khai b dùng làm khóa kiểm tra “chữ ký”.

Ngƣợc lại với việc mã hóa, dùng khóa công khai b để lập mã, dùng khóa bí mật a để giải mã.

Điều này là hoàn toàn tự nhiên, vì “ký” cần giữ bí mật nên phải dùng khóa bí mật a để “ký”. Còn “chữ ký” là công khai cho mọi ngƣời biết, nên họ dùng khóa công khai b để kiểm tra.

2.5.4. Các ƣu điểm của chữ ký số

2.5.4.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ỡ.

2.5.4.2. Tính toàn vẹn

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: 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,b3) 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.5.4.3. Tính không thể phủ nhận

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.5.5. Chữ ký số RSA

2.5.5.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ý.

2.5.5.2. Hoạt động

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.

Tạo cặp khóa

- 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ính bí mật (n) = (p-1).(q-1).

- Chọn khóa công khai b<(n),nguyên tố cung 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 Zn, a*b 1 mod

(n).

Ký số:

Chữ ký trên xP là y = Sig k (x) = xa mod n, yA

Kiểm tra chữ ký:

Ver k(x, y) = đúng  x  yb mod n Chú ý:

- So sánh giữa sơ đồ chữ ký RSA và sơ đồ mã hóa RSA ta thấy có sự tƣơng ứng. - Việc ký chẳng qua là mã hoá, việc kiểm thử lại chính là việc giải mã:

Việc “ký số” vào x tƣơng ứng với việc “mã hoá” tài liệu x.

Kiểm thử chữ ký chính là việc giải mã “chữ ký”, để kiểm tra xem tài liệu đã giải mã có đúng là tài liệu trƣớc khi ký không. Thuật toán và khóa kiểm thử “chữ ký” là công khai, ai cũng có thể kiểm thử chữ ký đƣợc.

2.6. Kết luận

Trong chƣơng này, đã đề cập đƣợc một số vấn đề căn bản về lý thuyết mật mã, ứng dụng an toàn bảo mật trong văn phòng điện tử. Cụ thể trình bày vai trò của mật mã trong việc bảo mật văn phòng điện tử. Tổng quan về hệ mật mã khóa đối xứng, hệ mật mã khóa công khai, về hàm băm và chữ ký số.

Trong chƣơng tiếp theo, sẽ tập trung xây dựng giải pháp bảo mật, xác thực văn phòng điện tử và phát triển ứng dụng bảo mật và xác thực văn phòng điện tử trên cơ sở giải pháp đề ra.

CHƢƠNG 3: GIẢI PHÁP BẢO MẬT, XÁC THỰC VĂN PHÒNG ĐIỆN TỬ VÀ XÂY DỰNG ỨNG DỤNG

3.1. Thực trạng an toàn bảo mật văn phòng điện tử

Các phần mềm văn phòng điện tử hiện nay trên thị trƣờng với việc tích hợp các modul và phát triển các tính năng riêng nên có thể phù hợp với từng lĩnh vực. Tuy nhiên các chức năng cơ bản nhƣ đã nêu ở trên nói chung là giống nhau. Trong đó chức năng quản lý văn bản đƣợc coi là chức năng quan trọng, thiết yếu trong văn phòng điện tử. Việc quản lý văn bản đƣợc chia làm hai quá trình: văn bản đến và văn bản đi.

Khi một văn bản đến, ngƣời nhận sẽ xem thông tin văn bản, tác động vào văn bản nếu đƣợc phép, xử lý các yêu cầu nhập tài liệu, thêm file đính kèm hoặc chuyển cho ngƣời tiếp theo. Khi một văn bản đƣợc gửi đi, văn bản sẽ đƣợc chuyển tới nơi yêu cầu. Tại đây văn bản đƣợc xử lý tiếp hoặc chuyển đến các bộ phận liên quan nhƣ phòng ban hay lƣu trữ. Quy trình lƣu chuyển văn bản trên, có thể thấy các văn bản điện tử đƣợc lƣu chuyển liên tục, qua nhiều trạm, thời gian văn bản đi trên đƣờng truyền là nhiều. Trong quá trình này, văn bản ở dạng có thể đọc đƣợc nên việc mất cắp thông tin là có thể xảy ra, văn bản không còn tính toàn vẹn. Hiện nay việc giải quyết vấn đề này chƣa đƣợc đặt ra trong các phần mềm văn phòng điện tử.

Trong trƣờng hợp trên, tài liêu sẽ đảm bảo tính toàn vẹn thông tin hay tính an toàn nếu tài liệu đó đƣợc mã hóa. Lúc đó, dù tài liệu có lấy cắp cũng không thể đọc đƣợc.

Hơn thế nữa trong các văn phòng điện tử, việc lãnh đạo phải ký các văn bản hồ sơ, xác nhận thông tin là rất nhiều, nhƣng trong văn phòng điện tử hiện nay chƣa có giải pháp nào giải quyết điều này. Việc xác nhận này chủ yếu đƣợc in ra giấy, xác nhận bằng chữ ký thông thƣờng, dấu đỏ. Sau đó nhờ các thiết bị số scan rồi truyền đi. Nhƣ vậy, đã làm giảm hiệu quả của quá trình sử dụng văn

phòng điện tử. Việc này có thể giải quyết bằng chữ ký số. Tuy nhiên trong các văn phòng điện tử hiện nay, giải pháp này chƣa đƣợc chú trọng.

Từ những phân tích trên đây, nhận thấy một số vấn đề tồn tại là các phần mềm văn phòng điện tử đƣợc triển khai ồ ạt với nhiều sản phẩm nhƣng vấn đề bảo mật, xác thực thông tin trong văn phòng điện tử là chƣa đƣợc quan tâm. Việc bảo mật xác thực cho văn phòng điện tử là một vấn đề lớn, với nhiều lĩnh vực nhƣ bảo mật cơ sở dữ liệu, email,.. hồ sơ văn bản trong hoạt động giao dịch điện tử. Trong đó hiện nay việc bảo mật, xác thực trong hoạt động giao dịch điện tử là vấn đề đáng đƣợc quan tâm.

Phần mềm Lotus Note là phần mềm văn phòng điện tử đƣợc triển khai rộng ở các nƣớc trên thế giới trong đó có Việt Nam. Trong Luận văn này sẽ đề cập đến giải pháp bảo mật và xác thực trên phần mềm văn phòng điện tử Lotus Note.

3.2. Giải pháp bảo mật văn phòng điện tử Lotus Note

Trong văn phòng điện tử việc thông tin đƣợc lƣu tạm thời trên máy và trao đổi qua lại giữa các nhân viên là luôn xảy ra. Đồng thời môi trƣờng mạng là môi trƣờng làm việc ảo trong văn phòng điện tử. Tuy nhiên các môi trƣờng truyền tin là không an toàn, tính bảo mật không cao nên việc thông tin bị thất lạc, lấy cắp là điều không tránh khỏi. Việc sử dụng thuật toán mã hóa dữ liệu có thể giải quyết vấn đề này. Việc mã hóa cần phải thực hiện nhanh, đảm bảo độ bảo mật tốt.

Ứng dụng sử dụng các giải pháp cho việc mã hóa, giải mã nhƣ sau: - Sử dụng thuật toán khóa đối xứng AES 128 bit,

- Thuật toán phi đối xứng RSA 2048 bit, - Thuật toán hàm băm SHA-1 160 bit, - Công cụ tạo khóa OpenSSL

Trong Luận văn này, lựa chọn sử dụng thuật toán khóa đối xứng AES để xây dựng ứng dụng tích hợp bảo mật vào văn phòng điện tử, cụ thể là trên Lotus Note nhằm thể hiện tính khả thi giải pháp đƣa ra trong Luận văn.

3.3. Giải pháp xác thực văn phòng điện tử Lotus Note

Trong văn phòng điện tử, việc các văn bản giấy tờ cần có sự chứng thực của ngƣời dùng là một yêu cầu cần thiết. Đồng thời, việc thông tin truyền trên mạng nên có khả năng thông tin bị giả mạo hay mạo danh ngƣời dùng. Sử dụng chữ ký số là giải pháp hữu hiệu trên môi trƣờng này và tƣơng ứng là việc xác thực tài liệu, thông tin nhằm khẳng định chủ sở hữu của thông tin đã gửi.

Việc xây dựng modul chữ ký số sử dụng thuật toán RSA làm khóa bí mật tạo chữ ký số, khóa công khai nhằm xác thực thông tin, và sử dụng thuật toán hàm băm SHA-1 để băm dữ liệu ban đầu. Đồng thời sử dụng phân phối khóa công khai để phân phối khóa.

Modul này gồm hai quá trình sau:

Quá trình ký số [1]:

Đầu tiên thông điệp đƣợc tính toán bởi một hàm băm, hàm này tính toán thông điệp và trả về một bản tóm tắt của thông điệp, hàm băm một chiều đảm bảo rằng bản tóm tắt của thông điệp này là duy nhất và bất kỳ một sửa đổi nào dù là nhỏ nhất trên thông điệp cũng gây ra thay đổi cho bản tóm tắt này. Sau đó ngƣời gửi sẽ dùng khóa riêng của mình để mã hóa bản tóm tắt này. Nội dung sau khi mã hóa chính là chữ ký điện tử cửa thông điệp đó đƣợc ký bởi ngƣời gửi.

Hình 3.1 Lƣợc đồ ký số dữ liệu

Quá trình xác thực [1]:

Tài liệu đã ký đến tay ngƣời nhận, ngƣời nhận tính toán làm sao để tách văn bản và chữ ký thành hai phần độc lập. Để kiểm tra tính hợp lệ của chữ ký điện tử, ngƣời ta dùng khóa công khai của ngƣời gửi để giải mã chữ ký điện tử. Kết quả của quá trình giải mã chữ ký điện tử chính là bảng tóm tắt thông điệp đã gửi đi. Sau đó ngƣời nhận dùng hàm băm một chiều để tính toán ra bảng tóm tắt qua nội dung của thông điệp. Rồi lấy kết quả so sánh với bản tóm tắt vừa đƣợc

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 tích hợp chữ ký số bảo mật ứng dụng trong hệ điều hành tác nghiệp lotus notes 04 (Trang 34)

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

(63 trang)