Nhận xét:
Số r không đƣợc dùng quá một lần để tạo ra các chữ ký khác nhau.
Giả sử Alice sử dụng r để ký hai thông điệp m và m’, tạo ra hai chữ ký là (c, y) và (c’, y’). Khi đó, ta có: k k k S c c S c r cS r c c y y ' ) ' ( ) ( ' '
Nhƣ vậy, nếu Alice sử dụng r quá một lần cho hai thông điệp khác nhau, bất kỳ ai có hai thông điệp trên đều có thể giải mã đƣợc khóa bí mật Sk. Vì vậy, sơ đồ chữ ký loại này đƣợc gọi là sơ đồ chữ ký dùng một lần. Chữ ký dùng một lần đƣợc áp dụng trong các hệ thống tiền điện tử. [2],[9]
5/. Chữ ký ủy nhiệm:
Hệ chữ ký này dành cho các trƣờng hợp mà ngƣời chủ chữ ký bị ốm không có khả năng làm việc hay đã đi vắng đến một nơi không có phƣơng tiện mạng máy tính cần thiết để ký. Vì vậy chữ ký ủy nhiệm đƣợc tạo ra để ngƣời ký có thể ủy nhiệm cho một ngƣời nào đó ký thay. Tất nhiên chữ ký ủy nhiệm phải có các thuộc tính riêng thêm vào:
Chữ ký ủy nhiệm là phần phân biệt với chữ ký thƣờng, và ngƣời đƣợc ủy nhiệm không thể tạo đƣợc chữ ký chủ (chữ ký của ngƣời chủ).
Chữ ký ủy nhiệm cũng có chức năng chứng thực nhƣ chữ ký chủ, chỉ có ngƣời chủ và ngƣời đƣợc ủy nhiệm mới có thể tạo đƣợc chữ ký này. Ngƣời nhận đƣợc văn bản có thể hoàn toàn tin tƣởng vào chữ ký đó nhƣ chữ ký chủ.
-Ngƣời chủ có thể xác định đƣợc danh tính ngƣời ký từ một chữ ký ủy nhiệm. - Ngƣời đƣợc ủy nhiệm không thể chối cãi đƣợc nếu đã ký một văn bản ủy nhiệm hợp lệ (tức là anh ta không thể chối đổ cho ai khác hay chính ngƣời chủ đã ký mà lại nói anh ta ký).
6/. Chữ ký không thể phủ nhận (chống chối bỏ):
Chữ ký không thể phủ nhận do David Chaum và Hans Van Antwerpen phát minh năm 1989. Ở đây, thuật toán kiểm định đòi hỏi phải có sự tham gia của ngƣời ký. Thực chất đây là chữ ký có tính chất không thể chuyển giao đƣợc (Untranferable): Chỉ có ý nghĩa với ngƣời nhận là ngƣời có trao đổi làm ăn với ngƣời ký, khi chuyển nó cho một ngƣời khác thì không có tác dụng nữa (không thể kiểm định đƣợc chữ ký nữa). Các văn bản có chữ ký này không nhằm vào mục đích đem đi công bố ở nơi khác mà chỉ có tính chất giấy phép. Vì thế nếu sao chép là mất ý nghĩa.
Chữ ký không thể phủ nhận đƣợc dùng trong việc bán sản phẩm phần mềm: Các hãng phần mềm sẽ bán các sản phẩm của mình có chữ ký chứng tỏ bản quyền. Việc kiểm định đòi hỏi phải liên lạc với hãng này. Nếu nhƣ có một ai đó bán phần mềm sao chép thì lúc đó ngƣời mua đòi kiểm định sẽ bị lộ ngay vì không thực hiện đƣợc. [9]
7/. Chữ ký nhóm:
Tình huống thực tế minh họa cho chữ ký này nhƣ sau: Một công ty có nhiều máy tính nối với nhau trong một mạng cục bộ, các máy tính này đƣợc đặt trong một số phòng ban bộ phận. Mỗi phòng chỉ có một máy in mà chỉ các cán bộ của phòng mới đƣợc in ra. Vì vậy ngƣời ta muốn một cơ chế để việc in này có thể thực hiện mà việc kiểm soát không cho ngƣời ngoài phòng in đƣợc, trong khi mỗi yêu cầu in lại không cần nêu rõ tên ngƣời yêu cầu để tránh xâm phạm tính riêng tƣ của từng công việc.
Nhƣ vậy một hệ chữ ký sẽ đƣợc thiết lập sao cho chỉ có những ngƣời nằm trong một nhóm ngƣời nào đó – trong cùng phòng – là có thể tạo ra đƣợc chữ ký mà ngƣời kiểm định – trong ví dụ trên là máy in hay chƣơng trình quản lý máy in – kiểm tra và chấp nhận. Chữ ký này chỉ nói lên ngƣời ký nằm trong nhóm đó mà thôi chứ không nói lên đích xác đó là ngƣời nào nên giữ đƣợc tính riêng tƣ của từng ngƣời ký. Tuy nhiên hệ chữ ký đặc biệt này còn có một tính chất đặc biệt nữa là: nếu cần thiết, một ngƣời thẩm quyền có thể “mở” đƣợc một chữ ký ra để xem ai cụ thể trong nhóm đã ký. Ứng dụng của nó là nếu chƣơng trình quản lý máy in cho thấy có ngƣời đã quá lạm dụng thì trƣởng phòng có thể dùng quyền hạn của mình để “cảnh báo” những chữ ký lên những yêu cầu in tốn kém đó, sau đó có biện pháp phạt ngƣời lạm dụng nhƣ là nộp tiền phạt. Khả năng này làm cho tất cả mọi ngƣời phải biết điều độ với máy in của công ty, nếu không muốn bị nêu tên cảnh báo.[5]
8/. Chữ ký mù:
Chữ ký mù đƣợc đƣợc Chaum giới thiệu vào năm 1983. Chữ ký mù là để ngƣời ký tạo ra chữ ký trên một văn bản mà chính ngƣời ký cũng không biết nội dung - không biết nội dung nhƣng vẫn tạo đƣợc chữ ký hợp lệ. Đặc trƣng của nó là: Chỉ có duy nhất ngƣời chủ của chữ ký mới có khả năng tạo ra chữ ký hợp lệ cho một văn bản và chữ ký cho một văn bản đó có thể đƣợc kiểm tra tính đúng đắn bởi bất cứ ai. Chữ ký mù đƣợc áp dụng trong kỹ thuật bỏ phiếu từ xa và hệ thống e-money ẩn danh.[6]
Giả sử Alice muốn mua quyển sách Q với giá 50$ từ Bob. Giả sử hai ngƣời cùng dùng dịch vụ của một ngân hàng. Giao thức giao dịch gồm ba giai đoạn sau:
Rút tiền (Withdrawal):
- Alice tạo tiền điện tử C (với thông tin: số serial, giá trị của C, ví dụ 50$). - Alice yêu cầu ngân hàng ký “mù” lên C.
- Giao thức ký thành công, thì ngân hàng sẽ trừ 50$ trong tài khoản của Alice.
Tiêu tiền (Spending):
- Alice đƣa C đã ký của ngân hàng cho Bob và yêu cầu quyển sách Q.
- Bob kiểm tra chữ ký C, nếu chữ ký không hợp lệ thì Bog kết thúc giao thức.
Gửi tiền (Deposit):
- Bob lấy C từ Alice và gửi cho ngân hàng. - Ngân hàng xác thực chữ ký trên C.
+ Nếu chữ ký là hợp lệ, ngân hàng sẽ kiểm tra xem C đã đƣợc tiêu trƣớc đó chƣa. + Nếu C chƣa đƣợc tiêu, thì ngân hàng sẽ cộng thêm tiền vào tài khoản của Bob. Nếu việc gửi tiền thành công, Bob sẽ gửi quyển sách Q cho Alice.
Bob khó thể biết C từ tài khoản nào. Khi Bog gửi C vào tài khoản của mình, ngân hàng cũng khó thể biết đồng tiền đó nhận từ Alice vì nó đã đƣợc ký “mù”. Nhƣ vậy tiền điện tử C không lƣu vết của những ai đã “tiêu” nó.
Khi ký mù lên văn bản x, các bƣớc đƣợc tiến hành nhƣ sau:
Hình 2.18 : Sơ đồ chữ ký mù
1/ Làm mù x: A làm mù x bằng một hàm: z = Blind(x) và gửi z cho B.
2/ Ký: B ký trên z bằng hàm y = Sign(z) = Sign(Blind(x)) và gửi lại y cho A.
3/ Xoá mù: A tiến hành xoá mù trên y bằng hàm
Lấy p,q là các số nguyên tố lớn, n=p*q, Ø(n) = (p-1)*(q-1), ab = 1 mod Ø(n), r là một số ngẫu nhiên € Zn
1/ Làm mù x: A làm mù x bằng một hàm: Blind(x) = x*rb mod n=z và gửi z cho B.
r đƣợc chọn sao cho tồn tại phần tử nghịch đảo r-1
(mod n)
2/ Ký: B ký trên z bằng hàm Sign(z) = Sign(Blind(x)) = za mod n=y và gửi lại y cho A.
3/ Xoá mù: A tiến hành xoá mù y bằng thuật toán:
UnBlind(y) = UnBlind(Sign(Blind(x))) = y/r mod n = sign(x).
Chữ ký mù dựa trên chữ ký RSA: Bài toán đặt ra là giả sử A muốn lấy chữ ký của B trên x nhƣng không muốn cho B biết x.
Quá trình thực hiện đƣợc tiến hành nhƣ sau:
Hình 2.19 : Sơ đồ chữ ký mù dựa trên chữ ký RSA
Ví dụ:
Giả sử ông A gửi ông B thông điệp x=8. Ông B ký lên thông điệp x đã đƣợc làm mù, thông điệp đƣợc ký sẽ gửi lại ông A, ông A xoá mù.
1/ Theo ví dụ ở phần chữ ký RSA, khi ký trên x=8 thì chữ ký là: Sign(x)= xamod n= 87 mod 15 = 2=y.
2/ Quy trình “ký mù”: ba bƣớc.
Bƣớc 1 (làm mù): làm mù x=8
Blind(x)=x * rb(mod n) = 8 * 57(mod 15)=8*78125(mod 15) = 625000 mod 15 = 10 = z
với r = 5 là số ngẫu nhiên Z15.
Bƣớc 2 (ký): ký trên z
y =Sig(z)= za (mod n) = 107(mod 15)= 10000000 (mod 15) = 10.
Bƣớc 3 (xoá mù): xoá mù y= 10
2.3.3.3. Chứng chỉ khóa công khai ( Chứng chỉ số)
1/. Khái niệm
Việc sử dụng mã hóa hay ký số chỉ giải quyết đƣợc vấn đề bảo mật và xác thực thông điệp. Tuy nhiên “khó” thể đảm bảo rằng ngƣời ký là đối tác thật. Trong nhiều trƣờng hợp cần thiết phải “chứng minh” bằng phƣơng tiện điện tử danh tính
của ai đó. Ví dụ phải “chứng minh” rằng ngƣời ngƣời ký là “chủ đích thực” hiện thời của chìa khóa ký.
Một cách giải quyết là dùng “Chứng chỉ số” để xác nhận “chủ đích thực”
hiện thời của khóa công khai.
Chứng chỉ khóa công khai (Public Key Certificate) (gọi tắt là chứng chỉ số) là giấy chứng nhận khóa công khai cho một thực thể.
Chứng chỉ số là kết quả của dự án phát triển chuẩn thƣ mục X.500 của ITU-T phát triển vào cuối những năm thập niên 90. Chứng chỉ số đƣợc ITU-T đặc tả trong tài liệu X.509 và dần đƣợc thay đổi qua các phiên bản cho phù hợp với thực tế. Hiện nay Chứng chỉ X.509 phiên bản 3 đƣợc sử dụng trong các hệ thống xác thực.
Một nơi có thể chứng nhận các thông tin của một thực thể là đúng, nó đƣợc gọi là cơ quan xác thực chứng chỉ (Certificate Authority - CA). Đó là một đơn vị có thẩm quyền xác nhận định danh và cấp các chứng chỉ số. CA có thể là một đối tác thứ ba độc lập hoặc tổ chức tự vận hành một hệ thống tự cấp các chứng chỉ cho nội bộ.
Các phƣơng pháp để xác định định danh phụ thuộc vào các chính sách mà CA đặt ra. Chính sách lập ra phải đảm bảo việc cấp chứng chỉ số phải đúng đắn, ai đƣợc cấp và mục đích dùng vào việc gì. Thông thƣờng, trƣớc khi cấp một chứng chỉ số, CA sẽ công bố các thủ tục cần thiết phải thực hiện cho các loại chứng chỉ số.
Chứng chỉ số chứa khóa công khai, đƣợc gắn với một tên duy nhất của một đối tƣợng (nhƣ tên của một cá nhân hay máy dịch vụ). Chứng chỉ số giúp ngăn chặn việc sử dụng khóa công khai cho việc giả mạo. Chỉ có khóa công khai đƣợc chứng thực bởi chứng chỉ số sẽ làm việc với khóa bí mật tƣơng ứng. Nó đƣợc sở hữu bởi đối tƣợng với định danh đã đƣợc ghi trong chứng chỉ số. [13],[14].
Ngoài khóa công khai, chứng chỉ số còn chứa thông tin về đối tƣợng nhƣ tên mà nó nhận diện, hạn dùng, tên của CA cấp chứng chỉ số, mã số… Quan trọng nhất là chứng chỉ số phải có “chữ ký số” của CA đã cấp chứng chỉ đó. Giống nhƣ chứng chỉ đã đƣợc “đóng dấu”, để cho ngƣời dùng khóa công khai có thể kiểm tra.
Một ngƣời muốn sử dụng Hệ mã hóa khóa công khai để mã hóa thông báo và gửi cho ngƣời nhận, ngƣời gửi phải có bản sao khóa công khai của ngƣời nhận. Một ngƣời muốn kiểm tra chữ ký số của ngƣời khác, họ phải có bản sao khóa công khai của ngƣời ký.
Chúng ta gọi cả hai thành viên (mã hóa thông báo và kiểm tra chữ ký số) là những ngƣời sử dụng khóa công khai.
Khi khóa công khai đƣợc gửi đến ngƣời sử dụng khóa công khai, thì không cần thiết phải giữ bí mật khóa công khai này. Tuy nhiên, ngƣời sử dụng khóa công khai phải đảm bảo rằng khóa công khai đƣợc sử dụng đúng là của đối tác. Nếu kẻ phá hoại dùng khóa công khai khác thay thế cho khóa công khai hợp lệ, thì nội dung thông báo đã mã hóa có thể bị lộ, chữ ký số có thể bị làm giả. Rõ ràng khóa công khai cần phải được xác thực trước khi dùng.
Đối với nhóm thành viên nhỏ, yêu cầu trên có thể đƣợc thỏa mãn dễ dàng.Ví dụ trƣờng hợp hai ngƣời quen biết nhau, khi ngƣời này muốn truyền thông an toàn với ngƣời kia, họ có thể có đƣợc bản sao khóa công khai của nhau bằng cách trao đổi các đĩa nhớ có ghi các khóa công khai của từng ngƣời. Nhƣ vậy đảm bảo rằng các khóa công khai đƣợc lƣu giữ an toàn trên mỗi hệ thống cục bộ của từng ngƣời. Đây chính là hình thức phân phối khóa công khai thủ công.
Phân phối khóa công khai thủ công nhƣ trên là không thực tế hoặc không thỏa đáng khi số lƣợng ngƣời dùng là quá lớn và nơi làm việc phân tán. Hệ thống cấp chứng chỉ khóa công khai giúp cho việc phân phối khóa công khai có hệ thống và chuẩn mực.
2/. Hệ thống cấp chứng chỉ khóa công khai
CA phát hành các chứng chỉ cho những ngƣời nắm giữ cặp khóa công khai và khóa riêng. Chứng chỉ gồm có khóa công khai và thông tin dùng để nhận dạng duy nhất chủ thể (subject) của chứng chỉ. Chủ thể của chứng chỉ có thể là một ngƣời, thiết bị, hoặc một thực thể có nắm giữ khóa riêng tƣơng ứng. Khi chủ thể của chứng chỉ là một ngƣời hoặc một thực thể nào đó, chủ thể thƣờng đƣợc nhắc đến nhƣ là một thực thể (subscriber) của CA. Các chứng chỉ đƣợc CA ký, bằng khóa riêng của CA.
Một khi các chứng chỉ số đƣợc thiết lập, công việc của ngƣời sử dụng khóa công khai rất đơn giản. Giả thiết rằng, họ đã có khóa công khai của CA một cách bí mật (ví dụ: thông qua phân phối khóa công khai thủ công) và tin cậy CA phát hành các chứng chỉ hợp lệ. Nếu ngƣời dùng cần khóa công khai của một thuê bao nào đó của CA, anh ta có thể thu đƣợc khóa công khai của thuê bao bằng cách tìm trong bản sao chứng chỉ của họ, lấy ra khóa công khai. Tất nhiên trƣớc đó anh ta phải kiểm tra chữ ký trên chứng chỉ có đúng là của CA không.
Hệ thống cấp chứng chỉ nhƣ trên là đơn giản và kinh tế khi đƣợc thiết lập trên diện rộng và tự động, bởi vì một trong các đặc tính quan trọng của chứng chỉ là:
“Các chứng chỉ có thể đƣợc phát hành mà không cần phải bảo vệ thông qua các dịch vụ an toàn truyền thông để đảm bảo xác thực và toàn vẹn”.
Chúng ta không cần giữ bí mật khóa công khai, nhƣ vậy chứng chỉ không phải là bí mật. Hơn nữa, ở đây không đòi hỏi các yêu cầu về tính xác thực và toàn vẹn do các chứng chỉ tự bảo vệ. Chữ ký của CA trong chứng chỉ đã cung cấp tính xác thực và toàn vẹn. Ngƣời dùng khóa công khai trong các chứng chỉ nhƣ trên đƣợc gọi là thành viên tin cậy.
Kẻ truy nhập trái phép định làm giả chứng chỉ khi chứng chỉ này đang lƣu hành cho những ngƣời sử dụng khóa công khai, họ sẽ phát hiện ra việc làm giả, bởi vì chữ ký của CA có thể đƣợc kiểm tra chính xác. Chính vì thế các chứng chỉ khóa công khai đƣợc phát hành theo cách không an toàn, ví dụ nhƣ thông qua các máy chủ, các hệ thống thƣ mục, các giao thức truyền thông không an toàn.
3/. Lợi ích của chứng chỉ khóa công khai
Chứng chỉ số ra đời giải quyết rất nhiều vấn đề quan trọng trong các mô hình xác thực, đảm bảo an toàn cho hệ hệ thống. Dƣới đây là các lợi ích khi sử dụng công nghệ xác thực bằng chứng chỉ số.
* Đảm bảo tính xác thực
Nhƣ đã đề cập ở phần trên Xác thực là dịch vụ quan trọng nhất của chứng chỉ số. Khi ngƣời gửi, gửi một thông tin kèm chứng chỉ số, ngƣời nhận - có thể là đối tác kinh doanh, tổ chức hoặc cơ quan chính quyền - sẽ xác định rõ đƣợc danh tính của ngƣời gửi. Có nghĩa là dù không nhìn thấy ngƣời gửi, nhƣng qua hệ thống chứng chỉ số mà ngƣời gửi và ngƣời nhận cùng sử dụng, ngƣời nhận sẽ biết chắc chắn đó đúng là ngƣời cần giao dịch chứ không phải là một ngƣời khác. Xác thực là một tính năng rất