II. BỐ CỤC CỦA LUẬN VĂN
2.1.2. Một vài kiến trúc và công nghệ PKI hiện hành
2.1.2.1. Một số ứng dụng
Mục tiêu chính của PKI là cung cấp khóa riêng và khóa công khai, xác định mối liên hệ giữa khóa và định dạng ngƣời dùng. Nhờ vậy ngƣời dùng có thể sử dụng trong một số ứng dụng nhƣ:
Mã hoá Email hoặc xác thực ngƣời gửi Email (OpenPGP hay S/MIME).
Mã hóa hoặc nhận thực văn bản (Các tiêu chuẩn Chữ ký XML* hoặc
mã hoá XML* khi văn bản đƣợc thể hiện dƣới dạng XML).
Xác thực ngƣời dùng ứng dụng (Đăng nhập bằng thẻ thông minh, nhận thực ngƣời dùng trong SSL).
Các giao thức truyền thông an toàn dùng kỹ thuật Bootstrapping (IKE, SSL) trao đổi khóa bằng khóa bất đối xứng, còn mã hóa bằng khóa đối xứng.
2.1.2.2. Một số hệ thống PKI
Dƣới đây là danh sách một số hệ thống PKI, trong đó một số nhà cung cấp chứng thực số hàng đầu (ví dụ VeriSign) không đƣợc liệt kê vì các phần mềm của họ không đƣợc công bố công khai:
Hệ thống quản lý chứng thực Red Hat
Computer Associate eTrust PKI
Microsoft
OpenCA (Một mô hình PKI mã nguồn mở)
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
IDX-PKI
Simple CA
2.2. Chữ ký số, thuật toán tạo và kiểm tra chữ ký số
Chữ ký số là một tập con của chữ ký điện tử. Ta có thể dùng định nghĩa về chữ ký điện tử cho chữ ký số:
Chữ ký điện tử là thông tin đi kèm theo dữ liệu (văn bản, hình ảnh, video...) nhằm mục đích xác định ngƣời chủ của dữ liệu đó.
Ta cũng có thể sử dụng định nghĩa rộng hơn, bao hàm cả mã nhận
thực, hàm băm và các thiết bị bút điện tử.
Chữ ký số khóa công khai (hay hạ tầng khóa công khai) là mô hình sử dụng các kỹ thuật mật mã để gắn với mỗi ngƣời sử dụng một cặp khóa công khai, bí mật và qua đó có thể ký các văn bản điện tử cũng nhƣ trao đổi các thông tin mật. Khóa công khai thƣờng đƣợc phân phối thông qua chứng thực khóa công khai.
Quá trình sử dụng chữ ký số bao gồm 2 quá trình: tạo chữ ký và kiểm tra chữ ký.
Khái niệm chữ ký điện tử mặc dù thƣờng đƣợc sử dụng cùng nghĩa với chữ ký số nhƣng thực sự có nghĩa rộng hơn. Chữ ký điện tử chỉ đến bất kỳ phƣơng pháp nào (không nhất thiết là mật mã) để xác định ngƣời chủ của văn bản điện tử. Chữ ký điện tử bao gồm cả địa chỉ telex và chữ ký trên giấy đƣợc truyền bằng fax.
2.2.1. Thuật toán chữ ký số RSA
Phƣơng pháp chữ ký số RSA đƣợc xây dựng dựa trên thuật toán mã hóa khóa công khai RSA. Để tạo một cặp khóa, RSA thực hiện các bƣớc sau: Tạo khóa
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Giả sử NHA và NHB cần trao đổi thông tin bí mật thông qua một kênh không an toàn. Với thuật toán RSA, NHA đầu tiên cần tạo ra cho mình cặp khóa gồm khóa công khai và khóa bí mật theo các bƣớc sau:
Chọn 2 số nguyên tố lớn và với , lựa chọn ngẫu nhiên và độc lập.
Tính: .
Tính: giá trị hàm số Ơle .
Chọn một số tự nhiên sao cho và là số nguyên tố
cùng nhau với .
Tính: sao cho .
Một số lƣu ý:
Các số nguyên tố thƣờng đƣợc chọn bằng phƣơng pháp thử xác suất. Các bƣớc 4 và 5 có thể đƣợc thực hiện bằng giải thuật Euclid mở
rộng.
Bƣớc 5 có thể viết cách khác: Tìm số tự nhiên sao
cho cũng là số tự nhiên. Khi đó sử dụng
giá trị .
Từ bƣớc 3, PKCS#1 sử dụng thay
cho ).
Khóa công khai bao gồm: n, môđun, và
e, số mũ công khai (cũng gọi là số mũ mã hóa). Khóa bí mật bao gồm:
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
n, môđun, xuất hiện cả trong khóa công khai và khóa bí mật, và d, số mũ bí mật (cũng gọi là số mũ giải mã).
Mã hóa
Giả sử NHA muốn gửi điện thanh toán cho NHB. Đầu tiên NHA chuyển điện thanh toán thành một điện mã hóa nhỏ hơn kích cỡ điện ban đầu theo một hàm có thể đảo ngƣợc (từ điện mã hóa có thể xác định lại đƣợc điện thanh toán gốc) đƣợc thỏa thuận trƣớc (thuật toán mã hóa, khóa công khai do NHB cung cấp).
Lúc này NHA có điện gốc và biết n cũng nhƣ e do NHB gửi. NHA sẽ tính c là bản mã hóa của m theo công thức:
Hàm trên có thể tính dễ dàng sử dụng phƣơng pháp tính hàm mũ (theo môđun) bằng (thuật toán bình phƣơng và nhân) Cuối cùng NHA gửi điện mã hóa cho NHB.
Giải mã
NHB nhận điện mã hóa c từ NHA và có sắn khóa bí mật d. NHB có thể tìm đƣợc điện gốc m ban đầu từ điện mã hóa c theo công thức sau:
Biết m, NHB tìm lại điện gốc M theo phƣơng pháp đã thỏa thuận trƣớc. Quá trình giải mã hoạt động vì ta có
.
Do ed ≡ 1 (mod p-1) và ed ≡ 1 (mod q-1), (theo Định lý Fermat nhỏ) nên: và
Do p và q là hai số nguyên tố cùng nhau, áp dụng định lý số dƣ Trung Quốc, ta có:
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
hay .
Dùng RSA để tạo chữ ký số cho văn bản. Giả sử NHA muốn gửi cho NHB một văn bản có chữ ký của mình. Để làm việc này, NHA tạo ra một giá trị băm(hash value) của điện thanh toán ký và tính giá trị mũ d mod n của nó. Giá trị cuối cùng chính là chữ ký số của điện thanh toán đang xét. Khi NHB nhận đƣợc văn bản cùng với chữ ký số, NHB ta tính giá trị mũ e mod n của chữ ký đồng thời với việc tính giá trị băm của văn bản. Nếu 2 giá trị này nhƣ nhau thì NHB biết rằng ngƣời tạo ra chữ ký biết khóa bí mật của NHA và điện thanh toán không bị thay đổi sau khi ký.
2.2.2. Thuật toán chữ ký số DSA
Thuật toán chữ ký số DSA (Digital Signature Algorithm) đƣợc đề nghị bởi NIST vào tháng 8/1991 để sử dụng trong chuẩn chữ ký số DSS (Digital Signature Standard), đƣợc chỉ ra trong FIPS 186, đƣợc chấp nhận năm 1993. Một sửa đổi nhỏ đƣợc đƣa ra ngày năm 1996 trong FIPS 186-1, chuẩn đƣợc mở rộng hơn năm 2000, đƣợc xem nhƣ xem nhƣ FIPS 186-2. Việc tạo khóa gồm hai bƣớc. Bƣớc thứ nhất là lựa chọn các tham số cho thuật toán đƣợc chia sẻ giữa các ngƣời sử dụng khác nhau trong cùng hệ thống:
Chọn một hàm băm mã hóa ℋ. Trong DSS chuẩn ℋ luôn là SHA-
1, nhƣng các hàm băm tốt hơn trong nhóm SHA cũng đang đƣợc sử dụng. Đôi khi đầu ra của một thuật toán băm mới hơn bị rút ngắn kích thƣớc so với các thuật toán băm mới cũ để tƣơng tích với cặp khóa hiện có.
Chọn kích thƣớc khóa L. Đây là thƣớc đo chính quyết định sức mạnh mã hóa của khóa. DSS chuẩn ràng buộc L là bội số của 64 và 512≤L≤1024. Sau đó, FIPS 186-2 xác định L luôn là 1024. Không lâu sau, NIST 800-57 đề nghị độ dài khóa là 2048 (hoặc 3072) để
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
thời gian an toàn đến năm 2010 (hoặc 2030), sử dụng tƣơng ứng với các giá trị băm và q dài hơn. Bản thảo FIPS 186-3 cũng tính đến các hàm băm sau này và các khóa dài hơn.
Chọn một số nguyên tố q cùng số bit với đầu ra của ℋ.
Chọn một số nguyên tố p độ dài L bit sao cho p–1 là bội của q. Tức là p=qz–1 với số nguyên z nào đó.
Chọn g = h(p1)/q mod p với h bất kỳ (1<h<p–1), và chọn lại nếu kết quả là 1. Hầu hết cách chọn h đều nhận đƣợc g có thể sử dụng, thông thƣờng chọn h = 2.
Các tham số thuật toán (p, q, g) có thể chia sẻ giữa những ngƣời khác nhau trong hệ thống. Bƣớc thứ hai tính các khóa bí mật và khóa công khai của từng ngƣời:
Chọn x ngẫu nhiên sao cho 0<x<q. Tính y=gx mod p.
Khóa công khai là (p, q, g, y), khóa bí mật là x.
Phiên bản FIPS 186-3 sắp tới sử dụng SHA-224/256/384/512 là các
hàm băm, kích thƣớc của q là 224 (hoặc 256 bit), và L bằng 2048 (hoặc 3072).
Để ký một thông điệp m, ngƣời ký thực hiện các bƣớc sau:
Phát sinh một số ngẫu nhiêu k (0<k<q) cho mỗi thông điệp. Tính r = (gk mod p) mod q.
Tính s = k1(ℋ(m) + xr)) mod q.
Tính toán lại chữ ký trong trƣờng hợp không chắc chắn r=0 hoặc s=0.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Chữ ký là (r, s).
Để xác nhận chữ ký, ngƣời nhận thực hiện các bƣớc sau: Loại bỏ chữ ký nếu 0<r<q hoặc 0<s<q không thỏa mãn. Tính w=s1 mod q. Tính u1=(ℋ(m)×w) mod q. Tính u2=(r×w) mod q. Tính v=((gu1 ×yu2 )mod p) mod q Chữ ký có hiệu lực nếu v=r.
Tính đúng đắn của giải thuật đƣợc chứng minh nhƣ sau:
Đầu tiên, nếu g = h(p1)/qmod p suy ra gp=hp1−1=1 (mod p) theo định lý Fermat nhỏ. Bởi vì g>1 và q là số nguyên tố nên g có bậc q. Ngƣời ký tính s = k1(ℋ(m) + xr)) mod q. Nhƣ vậy k = ℋ(m)s1 + xrs1 = ℋ(m)w + xrw (mod q). Bởi vì g có bậc q nên ta có: gk = gH(m)w.gxrw = gH(m)wyrw = gu1 yu2 (mod p). Cuối cùng, tính đúng đắn của DSA suy ra từ:
R = (gk mod p) mod q = (gu1
yu2
mod p) mod q = v.
Phƣơng pháp DSA đã giải quyết vấn đề này bằng cách sử dụng chữ ký 320 bit cho văn bản 160 bit với các phép tính đƣợc thực hiện trên tập con có 2160 phần tử với p là số nguyên tố 512 bit.
Chữ ký số (Digital Signature) chỉ là tập con của chữ ký điện tử. Chữ ký số là chữ ký điện tử dựa trên kỹ thuật mã hóa với khóa công khai, trong đó,
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
mỗi ngƣời có một cặp khóa (một khóa bí mật và một khóa công khai). Khóa bí mật không bao giờ đƣợc công bố, trong khi đó, khóa công khai đƣợc tự do sử dụng. Để trao đổi thông điệp bí mật, ngƣời gửi sử dụng khóa công khai của ngƣời nhận để mã hóa thông điệp gửi, sau đó, ngƣời nhận sẽ sử dụng khóa bí mật tƣơng ứng của mình để giải mã thông điệp.
Chữ ký điện tử là thông tin đƣợc mã hoá bằng Khoá riêng của ngƣời gửi, đƣợc gửi kèm theo văn bản nhằm đảm bảo cho ngƣời nhận định danh, xác thực đúng nguồn gốc và tính toàn vẹn của tài liệu nhận đƣợc. Chữ ký điện tử thể hiện văn bản gửi đi là đã đƣợc ký bởi chính ngƣời sở hữu một Khoá riêng tƣơng ứng với một Chứng chỉ điện tử nào đó.
Chữ ký số khóa công khai (hay hạ tầng khóa công khai) là mô hình sử dụng
các kỹ thuật mật mã để gắn với mỗi ngƣời sử dụng một cặp khóa công khai - bí mật và qua đó có thể ký các văn bản điện tử cũng nhƣ trao đổi các thông tin mật. Khóa công khai thƣờng đƣợc phân phối thông qua chứng thực khóa công khai. Quá trình sử dụng chữ ký số bao gồm 2 quá trình: tạo chữ ký và kiểm tra chữ ký.
2.3. Cấp phát và xác thực chứng thực số 2.3.1. Chứng thực số 2.3.1. Chứng thực số
Trong mật mã học, chứng thực khóa công khai (còn gọi là chứng thực số/chứng thực điện tử) là một chứng thực sử dụng chữ ký số để gắn một khóa công khai với một thực thể (cá nhân, máy chủ hoặc tổ chức...). Một chứng thực khóa công khai tiêu biểu thƣờng bao gồm khóa công khai và các thông tin (tên, địa chỉ, thời hạn...) về thực thể sở hữu khóa đó. Chứng thực điện tử có thể đƣợc sử dụng để kiểm tra một khóa công khai nào đó thuộc về ai.
CA phát hành các chứng thực khóa công khai trong đó thể hiện rằng CA đó chứng nhận khóa công khai nằm trong mỗi chứng thực thuộc về cá nhân, tổ
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
chức, máy chủ hay bất kỳ thực thể nào ghi trong cùng chứng thực đó. Nhiệm vụ của CA là kiểm tra tính chính xác của thông tin liên quan tới thực thể đƣợc cấp chứng thực. Khi ngƣời sử dụng tin tƣởng vào một CA và có thể kiểm tra chữ ký số của CA đó thì họ cũng có thể tin tƣởng vào khóa công khai và thực thể đƣợc ghi trong chứng thực.
2.3.2. Cấp phát chứng thực số
Chứng thƣ số bao gồm các thông tin: tên, tuổi, địa chỉ, ngày tháng cấp phát chứng thực số, khóa công khai và ID của chứng thực số. Việc cấp phát chứng thực số hoàn tất sau khi Client gửi thông tin đăng ký nên server. Server sẽ kiểm tra các thông tin client gửi lên. Bằng việc thẩm tra chữ ký số, và khóa công khai. Nếu chữ ký số đúng đắn tƣơng đƣơng việc khóa công khai là đúng đắn. Thông tin client gửi mẫu lên đăng ký server gồm những thông tin sau:
Sinh cặp khóa ngẫu nhiên. Tại Client hệ thống PKI sẽ cấp phát cặp khóa riêng và khóa công khai. Hệ thống PKI (cụ thể PKI client) sẽ sử dụng 1 thuật toán bất kỳ hợp lý đƣợc chọn lựa để sinh cặp khóa ngẫu nhiên. Chẳng hạn đây là thuật tóa RSA. Cặp khóa ngẫu nhiên đƣợc sinh ra từ 2 số nguyên tố ngẫu nhiên lập đủ lớn. Cặp khóa ngẫu nhiên ở đây là:
Khóa công khai: (n, e)
Khóa bí mật: (n, d)
Tạo chữ ký số sau khi tạo cặp khóa ngẫu nhiên, hệ thống PKI client sẽ tạo ra chữ ký số tƣơng ứng với cặp khóa ngẫu nhiên của từng client và ký theo từng văn bản ngẫu nhiên. Tạo chứng thƣ số Sau khi PKI client tạo cặp khóa riêng và khóa công khai đồng thời tạo chữ ký số cho client tƣơng ứng. Thông tin bảo mật sẽ đƣợc gửi đến server.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Tại server, server sẽ xác thực những thông tin mà client gửi đến có chính xác và đúng đắn.Nếu thông tin xác thực là đúng đắn (khóa công khai, chữ ký số, giá trị băm của văn bản, tin nhắn) server sẽ cấp phát cho client 1 chứng thực số bao gồm các thông tin sau: tên, tuổi, địa chỉ, các thông tin cá nhân khác, khóa công khai, ngày tạo, ngày hết hạn và ID của chứng thực số. ID của chứng thực số có tính duy nhất với mỗi client.
2.3.3. Thu hồi và cấp phát lại chứng thực số
Một chứng thực số bị thu hồi khi nào:
Khi mà chứng thƣ số đã hết hạn sử dụng, chứng thƣ sẽ bị thu hồi để ra hạn hoặc cấp một chứng thƣ số mới.
Khi client phát hiện khóa bí mật của ngƣời này bị lộ hoặc server phát hiện thấy hằm băm mật mã của mình bị lộ hoặc các thông tin bảo mật khác của 1 client đã bị rò rỉ.
2.3.4. Xác thực chứng thực số
Khi bên gửi một thông tin kèm chứng chƣ số, bên 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 bên nhận. Có nghĩa là dù không nhìn thấy bên gửi, nhƣng qua hệ thống chứng chỉ số mà bên gửi và bên nhận cùng sử dụng, bên nhận sẽ biết chắc chắn đó là bên gửi mong muốn chứ không phải là một bên nào khác. Xác thực là một tính năng rất quan trọng trong việc thực hiện các giao dịch điện tử qua mạng, cũng nhƣ các thủ tục hành chính với cơ quan pháp quyền. Các hoạt động này cần phải xác minh rõ ngƣời gửi thông tin để sử dụng tƣ cách pháp nhân. Đây chính là nền tảng của một Chính phủ điện tử, môi trƣờng cho phép công dân có thể giao tiếp, thực hiện các công việc hành chính với cơ quan nhà nƣớc hoàn toàn qua mạng. Có thể nói, chứng chỉ số là một phần không thể thiếu, là phần cốt lõi của Chính phủ điện tử.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Một ngƣời thứ 3 bất kỳ (Có thể là 1 client khác, khách chƣa đăng ký chứng