Chữ ký trực tiếp

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 bảo mật và xác thực cho các giao dịch hành chính công điện tử sở thông tin và truyền thông bắc ninh​ (Trang 50)

Trường hợp thứ nhất: Sử dụng kỹ thuật mật mã đối xứng và trọng tài có thể

đọc nội dung thông tin mà A gửi cho B:

Bước 1: A  Z: M + E([IDA + H(M)], KAZ)

Bước 2: Z  B: E([IDA + M + E([IDA + H(M)], KAZ) + T], KBZ)

Với M là thông tin gốc mà A gửi cho B, KAZ là khố bí mật dùng chung giữa

A và Z, KBZ là khố bí mật dùng chung giữa B và Z, IDA là thông tin nhận dạng

của thực thể A và T là thời điểm chữ ký được tạo ra.

Trường hợp 2: Sử dụng kỹ thuật mật mã đối xứng và trọng tài không đọc

được nội dung thông tin A gửi cho B:

Bước 1: A  Z: IDX + E(M, Kxy) + E([IDX + H(E(M, Kxy))], Kxa)

Bước 2: Z B: E([IDA+E(M,KAB)],KZB)+E([IDA+H(E(M,KAB))+T],KAZ)

KAB là khố bí mật dùng chung giữa A và B.

Trường hợp 3: Sử dụng kỹ thuật mật mã bất đối xứng, trọng tài không đọc

được nội dung thông tin A gửi cho B:

Bước 1: A  Z: IDA + E([IDA + E(E(M, PRA), PUB)], PRA)

Bước 2: Z  B: E([IDA + E(E(M, PRA), PUB) + T], PRZ)

PRA là Private Key của A, PUB là Public key của B, PRZ là khoá riêng của Z

2.3.4 Chuẩn chữ ký DSS

Chuẩn chữ ký DSS (Digital Signature Standard): Được chuẩn hóa năm 1991, sửa đổi năm 1993 và 1996, sau đó mở rộng vào năm 2000. DSS sử dụng hàm băm SHA và thuật toán tạo chữ ký DSA (Digital Signature Algorithm). DSS thuộc loại chữ ký ngẫu nhiên và không phục hồi được.

Hình 2.7 so sánh cấu trúc DSS so với phương thức xác thực thông tin sử dụng mật mã bất đối xứng RSA. Trong thuật tốn xác thực thơng tin dùng mật mã RSA, thông tin gốc được đưa vào hàm băm SHA để tạo ra mã băm (Message Digest) có kích thước cố định. Mã băm này sau đó được mã hóa bằng khóa riêng của thuật tốn RSA của người gửi. Kết quả của phép mã hóa được gắn vào thơng tin gốc và gửi đi. Phía thu nhận được thơng tin, tách phần mã băm ra khỏi thơng tin gốc và giải mã nó bằng khóa cơng khai của phía gửi. Chú ý rằng khóa cơng khai là thông tin được công bố rộng rãi cho bất kỳ thực thể nào có quan tâm. Đồng

thời, thông tin gốc cũng được đưa vào hàm băm để tính mã băm, sau đó đem so sánh với mã băm vừa nhận được. Nếu hai mã này giống nhau thì thơng tin vừa nhận được chấp nhận như là thông tin hợp lệ.

Hoạt động của DSS cũng bao gồm việc đưa thông tin gốc vào hàm băm để tạo ra mã băm có kích thước cố định. Tuy nhiên, mã băm này sẽ khơng được mã hóa trực tiếp bằng một giải thuật mã hóa mà được sử dụng làm đầu vào cho một hàm tạo chữ ký S (Signature Function). Các thông tin đưa vào hàm tạo chữ ký bao gồm:

 Mã băm của thông tin gốc

 Một số ngẫu nhiên k

 Khóa riêng của người ký (PRa)

 Khóa cơng khai của nhóm các thực thể liên quan đến giao dịch chữ ký (PUG) Kết quả của hàm sinh chữ ký gồm hai thành phần, đặt tên là r và s. Cả hai được gửi kèm với thơng tin gốc. Ở phía nhận thu, thơng tin gốc được tách riêng để đưa vào hàm băm. Sau đó, mã băm được đưa vào hàm kiểm chứng V (Verification function) cùng với khóa cơng khai của nhóm (PUG) và khóa cơng

khai của phía gửi (PRA). Nếu kết quả của hàm kiểm chứng bằng với thành phần r

PRa M H E M M H D So sánh PUa

a- Xác thực thông tin dùng mật mã RSA

M H S PRa PUG k M s r M s r H V PUG PUa So sánh b- Dùng chữ ký số DSS

của chữ ký thì thơng tin được xem là xác thực. Hình 2.8 mơ tả quá trình tạo chữ ký và kiểm chứng chữ ký dùng DSS.

Chú ý rằng thành phần r của chữ ký không phụ thuộc vào thông tin gốc mà chỉ phụ thuộc vào số ngẫu nhiên k và 3 thành phần của khóa cơng khai của nhóm

(PUG) là p, q và g. Do vậy, để giảm chi phí tính tốn mỗi khi tạo ra chữ ký, người

sử dụng có thể tạo ra giá trị r một lần, và dùng giá trị đó cho nhiều chữ ký ứng với nhiều khối thông tin gốc khác nhau.

2.3.5 Thuật toán tạo chữ ký DSA

Thuật toán tạo chữ ký DSA (Digital Signature Algorithm) là thành phần

trọng tâm của chữ ký số DSS, có chức năng tạo ra chữ ký từ các thông tin như mã băm của thông tin gốc, khố riêng của người ký, khố cơng khai của nhóm và một số ngẫu nhiên k. DSA được xây dựng dựa trên phép tốn logarit rời rạc, được tóm tắt như sau:

 Tạo các thành phần khố cơng khai (Public Key Components):

 p: Số nguyên tố, 2L-1

<p< 2L , 512 < L < 1024 và L là bội số của 64.

 q: Số nguyên tố chia hết (p – 1), 2159

<q< 2160 (q dài 160 bit)

 g: Số nguyên, g = (h(p -1)/q mod p), trong đó h là một số nguyên thoả 1 < h < p – 1 và (h(p-1)/q mod p)> 1 p q g f2 f1 f3 f4 y q g k x q s r q s’ r’ M H H So sánh v M a- Tạo chữ ký b- Kiểm chứng chữ ký

 Tạo khoá riêng của người dùng: Số nguyên ngẫu nhiên 0 <x < 1

 Tạo khố cơng khai của người dùng: Số nguyên, y = (gx mod p)

 Tạo số bí mật cho từng bản tin: Số nguyên ngẫu nhiên lớn với 0 < k < q

 Tạo chữ ký: r = (gk mod p) mod q s = [k-1 (H(M) + xr)] mod q  Kiểm chứng chữ ký: w = (s’)-1 mod q u1 = [H(M')w] mod q u2 = (r')w mod q v = [(gu1yu2) mod p] mod q

Lưu ý: s’, r’, M’ tương ứng với các phần s, r và M tại phía thu.

Với độ phức tạp của phép tóan logarit rời rạc, rất khó có thể xác định được k khi biết r hoặc xác định được x khi biết s.

2.3.6 Những vấn đề còn tồn tại của chữ ký số

Trên lý thuyết, mỗi bước trong quá trình tạo và kiểm tra chữ ký số là an toàn. Tuy nhiên trên thực tế, cịn nhiều trường hợp vẫn chưa an tồn, đó là:

 Cũng như việc sử dụng Password, khố bí mật cũng phải được đảm bảo

tuyệt đối bí mật. Chỉ có chủ sở hữu của nó mới được biết. Nhưng nếu nó bị đánh cắp hay bị lộ từ một tập tin trên máy bởi một Hacker thì người chủ thực sự của nó có thể bị giả mạo. Khố bí mật bị Hacker sử dụng theo ý đồ xấu.

 Bất kỳ người dùng vào sử dụng khố cơng khai của một người sử dụng

khác, cần kiểm tra chữ ký số, phải có sự đảm bảo chắc chắn rằng họ đã có khố cơng khai tin tưởng và chính xác.

Làm thế nào để bạn biết chính xác được khố công khai mà bạn nhận được qua thư điện tử hoặc nhắn tin từ ngân hàng, đối tác, nhà cung cấp của bạn mà khơng phải là từ một người nào đó có ý đồ lừa đảo? Để giải quyết vấn đề này, người ký chữ ký số và người nhận có thể.

Hoặc là mỗi bên sẽ đăng ký một cặp khố gồm khố cơng khai và bí mật. Họ sẽ giữ khố bí mật của mình cịn khố cơng khai được nhập vào bản ghi của họ

trong tệp cơ sở dữ liệu được công bố công khai trên mạng. Mỗi người sử dụng khố bí mật để ký các tài liệu và người nhận dùng khố cơng khai của người gửi để kiểm tra chữ ký. Hoặc là hai bên cần tới bên thứ ba. Họ đề nghị bên thứ ba phát hành cho mỗi bên một căp khoá. Khi một bên ký hợp đồng, bên kia có thể thơng qua bên thứ ba để kiểm tra khố cơng khai có thật sự là của bên ký hợp đồng khơng. Vai trị của bên thứ ba đảm bảo cho người nhận có khố cơng khai chính xác của người gửi.

Sự can thiệp của bên thứ ba là cần thiết để xác lập lịng tin và sự an tồn trong các giao dịch điện tử. CA cung cấp chứng nhận điện tử cho các bên tham gia giao dịch. Ngồi ra CA cịn có khả năng kiểm tra tính hợp lệ của các chứng thực điện tử của các thực thể tham gia trong các giao dịch thương mại điện tử và các giao dịch online khác.

Một vấn đề khác nữa là pháp luật về chữ ký điện tử chưa được đặt dưới một chuẩn mực kỹ thuật. Hiện nay có tới hơn 12 phần mềm ứng dụng về chữ ký điện tử trên thị trường. Tuy nhiên, bởi tốc độ và sự tiện lợi, một số lượng lớn các công ty vẫn sẵn sàng sử dụng chữ ký điện tử.

Như trên đã trình bày, mỗi một thực thể khi tham gia các giao dịch điện tử cần phải có đồng thời một cặp khố mã cơng khai và khóa riêng (Public Key và Secret Key). Một câu hỏi được đặt ra: Ai là người cung cấp cặp khoá mã ấy? và dịch vụ chứng thực điện tử đã xuất hiện.

2.4 Cơ sở hạ tầng khóa cơng khai PKI [9]

2.4.1 Khái niệm

Cơ sở hạ tầng khóa cơng khai PKI (Public Key Infrastructure) là một hệ thống hạ tầng bao gồm các thiết bị phần cứng, các hệ thống phần mềm, các chính sách, các thủ tục và con người, … cần thiết để tạo ra, quản lý, lưu trữ và phân phối các chứng thực khóa phục vụ cho mục đích là phổ biến khóa cơng khai của các thực thể thơng tin.

Vai trị của PKI trong hệ thống là quản lý các chứng thực khóa một cách an tồn và cung cấp nó cho user một cách hiệu quả nhất.

Mục tiêu của PKI là cung cấp một môi trường làm việc phối hợp, trong đó thiết bị, phần mềm của nhiều nhà sản xuất khác nhau có thể cùng sử dụng chung một cấu trúc chứng thực khóa.

Đặc tính chung đối với tất cả các PKI:

1. Chứng thực (Certification): Là quá trình gắn kết một giá trị khố cơng khai với thông tin về một cá nhân, một tổ chức hay một thực thể, thậm chí với một thơng tin nào đó, ví dụ như giấy phép hay giấy tờ tuỳ thân (Credential).

Quá trình xác thực sử dụng PKI, khi một CA cấp giấy chứng nhận (Certification) cho một thực thể và khi người sử dụng xác nhận sự hợp lệ của chứng thực, được gọi là thực thể xác thực. Mức độ mà người sử dụng tin tưởng vào các thông tin của chứng thực và sự hợp lệ của nó là cách để đánh giá tính chắc chắn của sự xác thực.

Một chứng thực có thể chứa các thơng tin thực thể hay các thông tin phi thực thể. Khi là một chứng thực đặc tính, việc xác thực chứng thực đặc tính được gọi là xác thực đặc tính. Chứng thực chứa các thông tin phi thực thể như là các giấy phép hay giấy tờ tuỳ thân được gọi là chứng thực thuộc tính (Attribute Certificate). Q trình xác thực một chứng thực tin cậy gọi là xác thực tin cậy (Credential Authentication).

Việc một PKI sử dụng loại chứng thực thực thể hay chứng thực tin cậy hay cả hai cũng là một đặc tính của cơ sở hạ tầng khố cơng khai.

2. Xác nhận hợp lệ (Validation): Là quá trình kiểm tra xem một chứng thực

cịn hợp lệ hay khơng. Thơng tin trong một chứng thực có thể thay đổi theo thời gian. Một người sử dụng chứng thực số (Certificate User) cần phải đảm bảo rằng dữ liệu trong chứng thực là đúng, gọi là xác nhận hợp lệ chứng thực. Có hai phương pháp cơ bản để xác nhận hợp lệ chứng thực:

 Xác nhận trực tuyến (Online Validation): Người sử dụng có thể hỏi trực tiếp tổ chức cấp phát CA về tính hợp lệ của chứng thực số khi sử dụng.

 Xác nhận hợp lệ khơng trực tuyến (Offine Vvalidation): CA có thể gia hạn

thêm thời hạn hợp lệ của chứng thực – một bộ thời gian sẽ định nghĩa khoảng thời gian mà các thông tin chứa trong chứng thực được cho là hợp lệ (còn hiệu lực).

Cũng như các phương pháp xác nhận hợp lệ là các biện pháp thu hồi chứng thực số (Revocation). Thu hồi chứng thực là q trình thơng báo cho người sử dụng được biết khi thông tin trong chứng thực mất hiệu lực. Đặc biệt khi một chủ thể của khố riêng bị lộ, hay thơng tin định danh của một chứng thực thay đổi, ví dụ, chủ thể có một số điện thoại mới.

Nếu một chứng thực được xác nhận hợp lệ trực tuyến với một CA, thì vấn đề thu hồi chứng thực cũng có thể thực hiện được, vì CA có thể dễ dàng thơng báo một chứng chỉ đã hết hiệu lực.

Nếu không sử dụng được phương pháp trực tuyến, phương pháp sử dụng phổ biến là danh sách chứng thực thu hồi (CRLs). Một CRL là một danh sách các chứng thực bị đã ký bị loại bỏ bởi CA theo khoảng thời gian nhất định. Người sử dụng cần phải kiểm tra danh sách CRL mới nhất trong quá trình xác thực để đảm bảo là chứng thực được sử dụng không bị loại bỏ.

Một trong những quan tâm chủ yếu với CRL, đó là trong khoảng thời gian khi một CA nhận được một lưu ý là một chứng thực nên được loại bỏ, đến khi CA cơng bố nó trong danh sách CRL tiếp theo, thì người sử dụng kiểm tra CRL hiện thời sẽ không biết được các thu hồi và sẽ cho rằng chứng thực vẫn còn hiệu lực. Được gọi là CRL Time Granularity Problem.

Một quan tâm khác là kích thước của CRL. Một CA có thể xác thực cho rất nhiều chủ thể. Khi một CRL quá lớn sẽ rất khó cho người sử dụng xem xét vì băng thơng hạn chế. Thêm nữa, do CRL được ký, chữ ký đó cần được kiểm tra trước khi CRL được dùng, và thời gian cần để kiểm tra chữ ký trên CRL lớn và xử lý các đầu vào có thể trở nên quan trọng.

Để khắc phục các vấn đề trên, cần sử dụng từng loại CRL riêng rẽ cho các lý do thu hồi chứng thực khác nhau và hoặc cho các chủ thể chứng thực khác nhau. Thí dụ, CA có thể đưa ra một CRL cho các thu hồi thông thường (chẳng hạn như thay đổi trong thông tin nhận dạng của chủ thể chứng thực) và CRL khác cho các thu hồi do bị lộ sự bảo mật. Tương tự, một CA có thể đưa ra một CRL cho các chủ thể người sử dụng đầu cuối và CRL khác cho các CA khác mà nó chứng thực. Các

phương pháp này có hiệu quả trong việc phân chia một CRL lớn thành các phần nhỏ hơn, nhưng vấn đề CRL Time Granularity Problem vẫn chưa giảm đáng kể.

Một phương pháp khác được đưa ra để xử lý vấn đề này: delta-CRL. Delta- CRL là một danh sách của các thay đổi CRL (do CA tự ký ) xuất hiện kể từ khi CRL đầy đủ lần trước được đưa ra. Delta-CRL cho phép thông báo các thu hồi chứng thực được đưa ra thường xuyên hơn, và do đó sẽ làm giảm xác suất một chứng thực đã bị thu hồi được xác nhận hợp lệ nhầm. Delta-CRL còn giải quyết được vấn đề kích thước CRL. Một hệ thống xác nhận chứng thực có thể khởi đầu với một CRL đầy đủ, rồi chỉ cần xử lý với các delta-CRL khi chúng được đưa ra, cập nhật lại bản CRL đầy đủ của nó.

Phương pháp thu hồi và xác nhận hợp lệ trực tuyến vẫn cịn rất mới. Trong khi có vẻ như phương pháp trực tuyến tránh được vấn đề quản lý CRL, các yêu cầu về dải thơng và tốc độ xử lý vẫn cịn chưa được xác định rõ.

2.4.2 Chức năng chủ yếu của PKI

Một hệ thống PKI nhằm giải quyết các vấn đề sau:

1. Authentication: Là các hoạt động kiểm tra tính xác thực của một thực thể

trong giao giai dịch, liên quan đến kiểm tra tính đúng đắn một thực thể giao tiếp trên mạng. Một thực thể có thể là một người, một chương trình máy tính, hoặc một thiết bị phần cứng. Các hoạt động kiểm tra tính xác thực được đánh giá là quan trọng nhất trong các hoạt động của một phương thức bảo mật. Một hệ thống thông thường phải thực hiện kiểm tra tính xác thực của một thực thể khi thực thể đó được kết nối với hệ thống. Cơ chế kiểm tra tính xác thực của các phương thức bảo mật dựa vào 3 mơ hình chính như sau:

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 bảo mật và xác thực cho các giao dịch hành chính công điện tử sở thông tin và truyền thông bắc ninh​ (Trang 50)

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

(80 trang)