1.1.5 .Khái niệm thuật tốn xác suấ t
1.3. Vấn đề ký số
1.3.6. Chữ ký khơng phủ định được và khơng chối bỏ đượ c
a. Đặt vấn đề.
Trong các sơ đồ chữ ký điện tử, việc kiểm thử tính đúng đắn của chữ ký là do người nhận thực hiện. Như vậy, cả văn bản cùng chữ ký cĩ thể được sao chép và tán phát cho nhiều người mà khơng được phép của người gửi. Để tránh khả năng đĩ, người ta đưa ra các sơ đồ chữ ký khơng phủ định được với một yêu cầu là chữ ký khơng thể được kiểm thử nếu khơng cĩ sự hợp tác của người ký. Sự hợp tác đĩ được thực hiện thơng qua một giao thức mời hỏi và trả lời giữa người nhận và người gửi (cũng là người ký), gọi là giao thức kiểm thử.
Khi chữ ký địi hỏi được xác nhận bằng một giao thức kiểm thử thì một vấn
đề khác lại nẩy sinh là làm thế nào để ngăn cản người ký chối bỏ một chữ ký mà anh ta đã ký, bằng cách tuyên bố rằng chữ ký đĩ là giả mạo? Để đáp ứng yêu cầu đĩ, cần cĩ thêm một giao thức chối bỏ. Thơng qua giao thức này người ký cĩ thể chứng minh một chữ ký khơng phải của mình đúng thực là giả mạo. Nếu anh ta từ chối khơng tham gia giao thức đĩ thì cĩ bằng chứng để chứng tỏ rằng anh ta khơng chứng minh được đĩ là chữ ký giả mạo, tức khơng chối bỏ được chữ ký của mình! Như vậy, một sơ đồ chữ ký khơng phủđịnh được sẽ gồm ba phần: một thuật tốn ký, một giao thức kiểm thử và một giao thức chối bỏ.
b. Sơ đồ chữ ký Chaum-van Antverpen.
Sơ đồ chữ ký khơng phủ định được đầu tiên được Chaum và Van Antverpen đề xuất năm 1989.
Chọn một số nguyên tố dạng Sophie Germain p =2q +1, trong đĩ q cũng là số nguyên tố; chọn α∈Zp∗ là một phần tử cấp q. Gọi G là nhĩm con theo phép nhân cấp q sinh bởi α của Zp∗.
Sơ đồ chữ ký Chaum-Van Antverpen gồm cĩ:
Π=Α =G, cặp khố K =(K’,K'') gồm cĩ khố bí mật K =a và khố cơng khai
K'' = (p,α, a, β), trong đĩ α là một số nguyên dương <p -1, và β= αa mod p. Thuật tốn ký: A ký trên văn bản x∈Π=G với chữ ký
y = ( ) a K
sig ′ x =x mod p.
Giao thức kiểm thử: Với văn bản x và chữ ký y người nhận B cùng người ký A thực hiện giao thức kiểm thử sau đây:
1. B chọn ngẫu nhiên hai số e e1, 2∈Zq∗,tính c y= e1.βe2mod p và gửi cho A. 2. A tính d c= a−1modqmod p và gửi cho B.
3. B chấp nhận y là chữ ký của A trên x, nếu d x≡ e1.αe2 modp. Giao thức chối bỏ:
1. B chọn ngẫu nhiên hai số e e1, 2∈Zq∗,tính c y= e1.βe2mod p và gửi cho A. 2. A tính d c= a−1modqmod p và gửi cho B.
3. B thử điều kiện d≠ xe1.αe2(modp .)
4. B chọn tiếp hai số f f1, 2∈Zq∗,tính C y= f1.βf2mod p và gửicho A. 5. A tính D C= a−1modqmod p và gửi cho B.
6. B thử điều kiện D≠ xf1.αf2(modp .)
Chương 2 - VẤN ĐỀ XÁC THỰC ĐIỆN TỬ
2.1. XÁC THỰC ĐIỆN TỬ. 2.1.1. Khái niệm xác thực.
Xác thực là việc xác minh, kiểm tra một thơng tin để cơng nhận hoặc bác bỏ tính hợp lệ của thơng tin đĩ. Xác thực luơn là yêu cầu quan trọng trong các giao tiếp cần cĩ sự tin cậy. Để đơn giản ta xét mơ hình giao tiếp gồm 2 thực thể trao đổi thơng tin A và B, họ cùng mục đích trao đổi một thơng tin X nào đĩ. Khi đĩ, việc xác thực bao gồm:
- A cần xác minh B đúng là B và ngược lại.
- Cả A và B cần xác minh tính an tồn của thơng tin X mà họ trao đổi. Như vậy, xác thực bao gồm 2 việc chính:
1. Xác thực tính hợp lệ của các thực thể tham gia giao tiếp. 2. Xác thực tính bảo mật, tồn vẹn của thơng tin được trao đổi.
Theo phương pháp truyền thống, việc xác thực thực thể được thực thi bằng
các giấy tờ như chứng minh thư, giấy phép lái xe, hoặc các giấy tờ cá nhân khác; việc xác thực tính an tồn của thơng tin thường dựa trên chữ ký, con dấu.
2.1.2. Khái niệm xác thực số (điện tử)
Một trong những thách thức lớn nhất của xã hội số hĩa là ngăn ngừa các hành vi truy nhập bất hợp pháp và ngăn ngừa các loại tội phạm tin học. Đa phần các nguy cơ bắt nguồn từ bản chất phân tán của mạng, khi mà các thành viên tham gia khơng tiếp xúc trực tiếp với nhau. Việc nghiên cứu các phương pháp xác thực danh tính của các đối tượng tham gia trao đổi thơng tin điện tử, cũng như xác thực tính an tồn của các thơng tin được trao đổi cĩ ý nghĩa rất quan trọng. Các loại xác thực như trên được gọi là xác thực số hay xác thực điện tử.
Cĩ nhiều phương pháp xác thực điện tử đã được phát triển. Tuy nhiên cĩ ba
phương pháp xác thực chính sau đây:
a. Phương pháp thứ nhất: Xác thực dựa vào những gì mà ta "biết".
Phương pháp này thường sử dụng mật khẩu, mã PIN để xác thực chủ thể. Khi cần xác thực, hệ thống yêu cầu chủ thể cung cấp những thơng tin mà chủ thể biết (mật khẩu, mã PIN,…).
b. Phương pháp thứ hai: Xác thực dựa vào những gì mà ta "cĩ".
Phương pháp này địi hỏi người dùng phải sở hữu một thứ gì đĩ để cĩ thể xác nhận chẳng hạn như chứng chỉ số, thẻ ATM, thẻ SIM, …
c. Phương pháp thứ ba: Xác thực dựa vào những gì mà ta "đại diện".
Phương pháp này thường sử dụng việc nhận dạng sinh học như dấu vân tay, mẫu võng mạc, mẫu giọng nĩi, …. để xác thực.
Xác thực bằng mật khẩu, mã PIN cĩ ưu điểm là tạo lập và sử dụng đơn giản, nhưng lại cĩ nhược điểm lớn là người dùng thường chọn mật khẩu dễ nhớ, do vậy dễ đốn nên dễ bị tấn cơng. Kẻ tấn cơng cũng cĩ thể cĩ nhiều phương pháp tấn cơng để đạt được mật khẩu như thâm nhập vào hệ thống máy tính và đọc file password, dự đốn password, vét cạn các từ trong từ điển để tìm password, hoặc lừa người dùng để lộ password, vv….
Phương pháp nhận dạng sinh học thì địi hỏi phải dựa trên hạ tầng cơng nghệ thơng tin tốt. Sử dụng sơ đồ định danh thì giao thức phức tạp, do địi hỏi nhiều
tương tác hỏi đáp giữa các thực thể, và phương pháp này cũng chỉ dùng để xác thực thực thể.
Hiện nay xác thực bằng chứng chỉ số đang được xem là giải pháp xác thực điện tử hiện đại, nĩ khắc phục được các nhược điểm của các phương pháp khác và đang ngày càng được sử dụng rộng rãi.
Mơ hình xác thực bằng chứng chỉ số được xây dựng trên hệ mật mã khĩa cơng khai nên việc làm giả hay ăn cắp chứng chỉ số để sử dụng gần như là điều
khơng thể. Tuy nhiên phương pháp này thường địi hỏi thời gian lớn hơn các
phương pháp khác. Trên thực tế, người ta thường kết hợp nhiều phương pháp xác thực để đảm bảo tính an tồn đến một mức độ nào đĩ.
2.2. CƠNG CỤ XÁC THỰC: CHỨNG CHỈ SỐ
2.2.1. Khái niệm chứng chỉ số
Chứng chỉ số là một văn bản điện tử theo một định dạng chuẩn nhất định
được sử dụng để xác minh danh tính một cá nhân, một máy chủ hay một thực thể nào đĩ trên mạng truyền thơng cơng cộng. Nĩ giống như bằng lái xe, chứng minh thư, hộ chiếu hay các giấy tờ xác minh cá nhân. Chứng chỉ số phải do một nhà cung cấp chứng chỉ số gọi tắt là CA phát hành. CA phải đảm bảo về độ tin cậy, chịu trách nhiệm về độ chính xác của chứng chỉ số mà mình cấp. Thơng tin trên chứng chỉ số gồm 3 thành phần chính:
- Thơng tin cá nhân của đối tượng được cấp. - Khĩa cơng khai của đối tượng được cấp. - Chữ ký số của CA cấp chứng chỉ.
Nếu đối tượng được cấp chứng chỉ là các cá nhân thì thơng tin gồm cĩ tên, quốc tịch, địa chỉ, email, tên tổ chức,…Phần này giống như các thơng tin trên chứng minh thư của mỗi người. Nếu đối tượng được cấp là một máy chủ, một website thì thơng tin gồm cĩ tên miền, tên máy chủ, địa chỉ IP,…
Khĩa cơng khai của đối tượng được cấp chứng chỉ dùng để mã hĩa thơng tin, xác minh chữ ký,…
Chữ ký của CA là sự xác nhận của CA bảo đảm tính chính xác và hợp lệ của chứng chỉ. Muốn kiểm tra một chứng chỉ số, trước tiên phải kiểm tra chữ ký số của CA cấp chứng chỉ cĩ hợp lệ hay khơng.
2.2.2. Định dạng X.509 của chứng chỉ số
Cơ sở hạ tầng mật mã khĩa cơng khai PKI được xây dựng để thiết lập sự tin tưởng. Để giải quyết vấn đề này, người ta sử dụng một thành phần dữ liệu được gọi là chứng chỉ số (Digital Certificate), nĩ gắn thơng tin về người sở hữu khĩa riêng với khĩa cơng khai tương ứng. Hình 2.1 mơ tả chứng chỉ số theo phiên bản 3 được định nghĩa theo chuẩn X.509, một chuẩn được sử dụng phổ biến trên thế giới hiện nay. Bất kỳ một ứng dụng nào sử dụng cơng nghệ chứng chỉ số, thì tối thiểu phải hỗ trợ chuẩn X.509.
Các thành viên tham gia hệ thống sử dụng hệ mật mã khĩa cơng khai hồn tồn cĩ thể tin tưởng rằng : khĩa cơng khai chứa trong chứng chỉ số là thuộc về đối tượng cĩ thơng tin trong trường đối tượng được cấp. CA sử dụng chữ ký điện tử để đảm bảo tính tồn vẹn và xác thực các thơng tin cĩ trong chứng chỉ số. Chữ ký được tạo ra như sau:
- Thiết lập đại diện của tồn bộ thơng tin trong chứng chỉ số (gồm các thơng tin cơ bản và phần mở rộng).
- CA sử dụng private key của mình cùng với đại diện vừa cĩ được, để tạo ra chữ ký điện tử.
- Đĩng gĩi các thơng tin cùng với chữ ký trên, đĩ là chứng chỉ số.
Sự tin tưởng của các thành viên chỉ cĩ thể được đảm bảo khi họ tin tưởng vào CA đã tạo ra chứng chỉ số đĩ. Mỗi chứng chỉ số đều cĩ hạn sử dụng. Việc kiểm tra chứng chỉ số được thực hiện độc lập với hệ thống cấp chứng chỉ số, nĩ được thực hiện tại đầu cuối, hoặc thơng qua các dịch vụ kiểm tra trạng thái của chứng chỉ số. Chứng chỉ số cĩ thể được cơng khai.
Hình 2.1. Các trường dữ liệu và các phần mở rộng của Digital Certificate v3 theo chuẩn X.509.
ITU-T X.509 hay ISO/IEC/ITU 9594-8 được cơng bố vào năm 1988, định ra chuẩn định dạng cho chứng chỉ số và là một phần trong X.500 áp dụng cho dịch vụ thư mục. Đến năm 1993, X.500 được sửa đổi, cĩ rất nhiều trường thơng tin được đưa vào, được coi là phiên bản 2 – X.509 v2. Đến năm 1996 chuẩn định dạng phiên bản 3 được cơng bố. Chuẩn định dạng X.509 v3 được đưa ra với mục đích ứng dụng cho mơi trường Internet. Đặc tính của các trường mở rộng phụ thuộc vào các ứng dụng trong www, thư điện tử, IPSec… Tùy theo các mơ hình ứng dụng cĩ thể cĩ thêm các trường mở rộng đã được định nghĩa sẵn hoặc mang tính chất riêng tư để cĩ thể đáp ứng một chức năng nào đĩ.
a. Đường chứng thực và sự tin tưởng (Mơ hình phân cấp CA)
Trong mỗi chứng chỉ số đều cĩ thơng tin về tổ chức CA đã tạo ra chứng chỉ
số đĩ. Chỉ dựa vào thơng tin cĩ trên một chứng chỉ số thì khơng thể đảm bảo chứng chỉ số đĩ thuộc về đối tượng cần giao dịch hay các thơng tin cĩ trong chứng chỉ số đĩ là chính xác. Việc kiểm tra tính hợp lệ cần phải dựa vào chứng chỉ số của CA, cĩ thơng tin nằm trong trường thơng tin người cấp (xem Hình 2.1). Để xác định tính tồn vẹn và xác thực của một chứng chỉ số, người ta sử dụng public key của CA đã tạo ra chứng chỉ số đĩ, kiểm tra chữ ký điện tử cĩ trong chứng chỉ số này. Đường chứng thực là một chuỗi các chứng chỉ số của các CA, trong đĩ mỗi CA sẽ được
xác thực bởi một CA cha. Một CA đặc biệt được gọi gốc, tự chứng thực. Trong
trường hợp này, trường Subject và Issuer là giống nhau, public key của CA gốc được dùng để tự kiểm tra chữ ký trên chứng chỉ số. Do vậy, để cĩ thể cĩ được sự tin tưởng, người sử dụng phải tin tưởng vào CA gốc. Chứng chỉ số của CA phải được phân phối tới người sử dụng theo một kênh an tồn.
b. Các trường cơ bản của một chứng chỉ số
Chứng chỉ số gồm nhiều trường thơng tin khác nhau, chúng được xếp vào hai loại: cơ bản và mở rộng. Ở đây chỉ đề cập đến các trường cơ bản, chi tiết cĩ thể tham khảo trong RFC2459. Cấu trúc định dạng của chứng chỉ số theo DER ASN.1 (X.208). Mã hĩa kiểu DER ASN.1 gồm các thành phần: thẻ, kích thước, giá trị. Định dạng ASN.1 của chứng chỉ số:
Certificate::= SEQUENCE { tbsCertificate TBSCertificate,
signatureAlgorithm AlgorithmIdentifier, signatureValue BIT STRING }
TBSCertificate::= SEQUENCE {
version [0] EXPLICIT Version DEFAULT v1, serialNumber CertificateSerialNumber, signature AlgorithmIdentifier, issuer Name, validity Validity, subject Name, subjectPublicKeyInfo SubjectPublicKeyInfo,
issuerUniqueID [1] IMPLICIT UniqueIdentifier OPTIONAL, -- Nếu cĩ, phiên bản phải là v2 hoặc v3
subjectUniqueID [2] IMPLICIT UniqueIdentifier OPTIONAL, -- Nếu cĩ, phiên bản phải là v2 hoặc v3
} Version::= INTEGER { v1(0), v2(1), v3(2) } CertificateSerialNumber::= INTEGER Validity::= SEQUENCE { notBefore Time, notAfter Time } Time::= CHOICE { utcTime UTCTime, generalTime GeneralizedTime } UniqueIdentifier::= BIT STRING
SubjectPublicKeyInfo::= SEQUENCE { algorithm AlgorithmIdentifier, subjectPublicKey BIT STRING }
Extensions::= SEQUENCE SIZE (1..MAX) OF Extension Extension::= SEQUENCE {
extnID OBJECT IDENTIFIER,
critical BOOLEAN DEFAULT FALSE, extnValue OCTET STRING }
Chứng chỉ số là một chuỗi (SEQUENCE) gồm 3 trường. Các trường sẽ được mơ tả chi tiết tại các mục sau.
1. tbsCertificate
Trường tbsCertificate chứa tên của đối tượng được cấp, khĩa cơng khai, thời hạn sử dụng và các thơng tin liên quan khác. Nĩ cũng cĩ thể chứa các trường mở rộng.
2. signatureAlgorithm
Trường signatureAlgorithm chứa thơng tin về thuật tốn mà CA dùng để ký. Cấu trúc ASN.1 của trường này cĩ dạng như sau:
AlgorithmIdentifier::= SEQUENCE { algorithm OBJECT IDENTIFIER,
parameters ANY DEFINED BY algorithm OPTIONAL }
algorithm là định danh thuật tốn (ví dụ RSAwithSHA-1); parameters là
thành phần tùy chọn, nĩ biến đổi tùy theo thuật tốn. Thơng tin về thuật tốn của trường này phải trùng với thơng tin về thuật tốn trong trường chữ ký số (cĩ trong chứng chỉ số, signatureValue).
3. signatureValue
Trường signatureValue chứa giá trị của chữ ký số được tính từ trường
tbsCertificate. Ở đây sẽ khơng đề cập chi tiết đến các bước tạo ra chữ ký số, mà chỉ cần hiểu rằng tbsCertificate sẽ là dữ liệu đưa vào hàm ký. Dựa vào trường này, CA cĩ thể kiểm tra thơng tin trong trường tbsCertificate và mối quan hệ giữa khĩa cơng khai và đối tượng sở hữu chứng chỉ số.
4. version
Mơ tả phiên bản định dạng của chứng chỉ số. Khi sử dụng các trường mở
rộng phiên bản sẽ là 3 (giá trị là 2). Khi khơng cĩ trường mở rộng, nhưng cĩ thơng tin về UniqueIdentifier thì phiên bản sẽ là 2 (giá trị là 1). Nếu chỉ cĩ các trường cơ bản, phiên bản sẽ là 1 (giá trị sẽ khơng được quan tâm đến, mặc địch là 0).
5. serialNumber
serialNumber là một số nguyên khơng âm, được CA gắn cho mỗi chứng chỉ số, nĩ là duy nhất đối với mỗi chứng chỉ số mà được cấp bởi CA.
6. signature
Chứa định danh thuật tốn được CA sử dụng để ký cho chứng chỉ số. Trường
này phải chứa định danh thuật tốn trùng với trường signatureAlgorithm trong
chuỗi Certificate. Nội dung phần tùy chọn sẽ biến đổi theo thuật tốn.
7. issuer
Định danh đối tượng được ký và cấp bởi CA. Giá trị của trường này khơng được rỗng. Các giá trị được định nghĩa trong X.501.
Name::= CHOICE { RDNSequence }
RDNSequence::= SEQUENCE OF RelativeDistinguishedName RelativeDistinguishedName::= SET OF AttributeTypeAndValue AttributeTypeAndValue::= SEQUENCE {
type AttributeType, value AttributeValue }
AttributeType::= OBJECT IDENTIFIER
AttributeValue::= ANY DEFINED BY AttributeType