Chữ ký điện tử

Một phần của tài liệu LUẬN VĂN: XÁC THỰC TRONG CÁC MẠNG VÔ TUYẾN pptx (Trang 29)

CHƯƠNG 1 : XÁC THỰC TRONG MẠNG VÔ TUYẾN

1.3 Chữ ký điện tử

1.3.1. Khái niệm

Chữ ký điện tử là một kỹ thuật mật mã cung cấp dịch vụ xác thực, điều khiển truy cập và chống chối bỏ. Mục tiêu của chữ ký điện tử là cung cấp khả năng để 1 thực thể truyền thơng có thể đính kèm những thơng tin có tính chất định danh lên một thơng điệp truyền. Q trình ký 1 thơng điệp là một quá trình sử dụng một số thơng tin bí mật của bên gửi để mã hóa thơng điệp đó thành 1 chuỗi định danh để chứng minh quan hệ không thể chối bỏ của thông điệp được ký và thực thể ký . Chữ ký điện tử được định nghĩa như sau [13]:

 M là tập các thông điệp được ký.

Comment [u6]: Noureddine Boudriga

(2009), “Security of mobile

communications”, Auerbach Publications, pp

 S là tập các thành phần chữ ký (Thường là 1 xâu binary có độ dài cố định).

 Hàm “ký” SgA: M → S là hàm biến đổi từ tập M sang tập S của thực thể

truyền A. Phép biến đổi SgA được gọi là một thuật toán “ký”, với 1 khóa bí mật.

 Hàm xác thực VA:MS{0,1} là hàm biến đổi từ tập MSsang tập

{0,1} tương ứng với trạng thái không hợp lệ và hợp lệ. Hàm xác thực VA

sử dụng khóa cơng khai của thực thể A để xác thực thông điệp M được truyền từ A.

 Hàm ký SgA và hàm xác thực VA định nghĩa một mơ hình chữ ký điện tử

của thực thể truyền thơng A

Mơ hình chứ ký điện tử (Sg, V) phải đảm bảo các tính chất sau:

 Chữ ký SgA(m) là chữ ký hợp lệ của thực thể truyền thông A khi và chỉ

khi VA(m, SgA(m)) = 1.

 Với một thông điệp m thuộc M, việc tính tốn hàm ra hàm ký s của thông điệp m đối với thực thể giả danh sao cho V(m,s) = 1 là một việc không khả thi.

 Các hàm ký Sg và hàm xác thực V là các hàm dễ tính.

Mơ hình ký số và xác thực của chữ ký điện tử hoạt động như sau: Thực thể truyền A khi muốn ký số vào thơng điệp m của mình, A sẽ chọn 1 cặp khóa của hệ mã hóa cơng khai, và 1 hàm băm H, A sẽ sử dụng khóa bí mật của mình để ký vào giá trị băm của thông điệp m được băm bởi hàm băm H. Giá trị của chữ ký sẽ được gửi đính kèm với thơng điệp m. Khi B nhận được thông điệp m cùng với chữ ký của A, B sẽ sử dụng hàm băm H để băm lại thơng điệp m, sau đó sẽ sử dụng khóa cơng khai của A để giải mã chữ ký số A gửi kèm, nếu giá trị được giải mã trùng với giá trị băm của hàm H thì B sẽ chắc chắn thơng điệp m là do A gửi chứ không phải một bên thứ 3 nào khác.

Với việc áp dụng kết hợp các kỹ thuật đóng dấu thời gian (timestamp), chữ ký điện tử cung cấp các dịch vụ an ninh sau:

 Dịch vụ xác thực

 Dịch vụ điểu khiển truy cập

 Dịch vụ toàn vẹn dữ liệu

 Chống chối bỏ

Bên cạnh những ưu điểm, chữ ký điện tử cũng có những yếu điểm, nó xuất phát từ yếu điểm của mật mã khóa cơng khai. Mật mã khóa cơng khai cung cấp cho các thực thể truyền cơng cụ để đảm bảo an tồn, xác thực và tin cậy, nhưng khơng đảm bảo được việc có bên thứ 3 đứng giữa giả mạo (Tấn công người ở giữa – Man in the middle)

1.3.2. Mơ hình ký số RSA

Theo mơ hình mật mã RSA, khóa bí mật của thực thể truyền thơng A có dạng là PRA=(n,d), khóa cơng khai có dạng PUA=(n,e). Không gian của thông điệp và bảng mã là {1,2,3 … n} (n là một hợp số có giá trị rất lớn)

Để ký vào một thông điệp m, thực thể A sẽ sử dụng một hàm băm H để băm thông điệp m về một bản mã có kích thước cố định, sau đó A sẽ sử dụng khóa bí mật của mình để ký trên giá trị băm đó. Ta có thể viết:

( ) ( ( )) modd

sSg mH m n

Thực thể A sau khi ký thơng điệp m tính được giá trị s, A sẽ gửi cho đối tác là

B thông điệp m và chữ ký s, ký hiệu là ( | )m s . Khi B nhận được thông điệp m và

chữ ký s A gửi, B sẽ sử dụng khóa cơng khai của A là PUA=(n,e) để giải mã chữ ký

s, tức B sẽ tính giá trị của semodn. Sau đó A sẽ so sánh giá trị giải mã tính được

với giá trị băm của hàm băm H(m), nếu H(m) = semodn thì chữ ký của A là hợp lệ,

và B có thể chắc chắn A đã ký vào thông điệp m.

Hình 1.13: Mơ hình ký số RSA

1.3.3. Mơ hình ký số DSA

Mơ hình ký số DSA là thuật toán ký số dựa trên độ khó của bài tốn tính logarit rời rạc, được đề xuất lần đầu bởi 2 nhà toán học ElGamal [11] và Schnorr [20]

Thuật toán DSA được thực hiện qua các bước sau:

Khởi tạo:

 Chọn số nguyên tố p có độ dài bit là 160bit

 Chon số nguyên tố p nằm trong khoảng 1

(2L, 2 )L , với L là bội của 64 thỏa mãn 512L1024.

 Chọn số g có dạng gh(p1)/qmodp với h là số nguyên dương nằm trong khoảng (1, p-1)

Tạo khóa bí mật:

 Chọn 1 số ngun ngẫu nhiên, hoặc giả ngẫu nhiên x với 0 < x < q. Khóa bí mật là PR=( x )

Tạo khóa cơng khai :

 Tính tốn ygxmodp. Khóa cơng khai là PU = (p, q, g, y)

Q trình ký số thơng điệp m của bên gửi :

 Chọn ra số ngẫu nhiên hoặc giả ngẫu nhiên x với 0 < x < q

 Tính r(gkmod ) modp q

 Tính sK1(H m( ) x r) mod q

 

  

 Công bố chứ ký Sg(m)=(r,s)

Quá trình xác thực của bên nhận :

 Thơng điệp bên nhận nhận được là ( m’|(r’,s’) )

 Tính w=(s') mod1 q

 Tính u1H m( ') w mod  q

 Tính u2( ' w) modrq

Comment [u7]: ElGamal, T. "A

Public-Key Cryptosystem and a Signature Scheme Based on Discrete Logarithms." IEEE Transactions on Information Theory, July 1985.

Comment [u8]: Schnorr, C. "Efficient

Signatures for Smart Card." Journal of Cryptology, No. 3, 1991.

 Tính v gu1yu2modpmodq

 

 Nếu v=r’ thì chữ ký trên thơng điệp m là hợp lệ

Trong mơ hình chữ ký điện tử DSA, hàm H được quy định là hàm băm SHA-1

Mơ hình ký số và xác thực của DSA được mơ tả trong hình vẽ 1.14a, và mơ hình truyền thơng sử dụng chữ ký điện tử DSA được biểu diễn trong hình 1.14b

Hình 1.14a : Mơ hình ký số và xác thực DSA

1.3.4. Thuật toán băm

Trong các hệ thống an ninh, thuật toán băm thường được sử dụng và giữ một vai trò quan trọng trong các hệ thống mật mã. Một hàm băm H ánh xạ xâu dữ liệu có độ dài hữu hạn tùy ý thành một xâu khác được gọi là mã băm có độ dài cố định n, chiều dài cố định n phụ thuộc vào hàm băm H. Mã băm của một thông điệp được băm bởi hàm H có đặc điểm là khi thay đổi, dù chỉ là 1 bit dữ liệu đầu vào, thì mã băm bị thay đổi hồn tồn mà khơng tn theo một quy luật logic nào, so với mã băm trước khi bị thay đổi.

Một hàm băm H có những đặc điểm sau:

 Có thể áp dụng với thơng báo M có độ dài bất kỳ.

 Tạo ra giá trị băm có độ dài cố định.

 H(M) có thể được tính dễ dàng với bất cứ thơng báo M nào.

 Từ mã băm h rất khó tìm lại được thơng điệp M thỏa mã H(M)=h. Đây là

tính một chiều của hàm băm.

 Từ thơng báo M1, rất khó để tìm được thơng điệp M2 thỏa mãn

H(M1)=H(M2). Tức hàm băm có tính chống xung đột yếu.

 Rất khó để tìm được 2 thơng điệp ( M1, M2 ) thỏa mãn H(M1)=H(M2). Tức hàm băm có tính chống xung đột mạnh.

Hiện nay có rất nhiều loại hàm băm khác nhau như MD5, SHA-1, SHA-256, SHA-512. Độ an toàn của hàm băm phụ thuộc vào loại hàm băm, cũng như chiều dài kết quả băm.

Ví dụ: Xét hàm băm SHA-256 SHA(“”)= e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 SHA(“mobile”)= d524c1a0811da49592f841085cc0063eb62b3001252a94542795d1ca9824a941 SHA(“mobilz”) = “0617a2dd1e4d7c1e00b15bf723c6a77baa7c2a74e1bbb8a97b817ba5a870cbb3” SHA(“mobil”)=”403b42efc1997638d33da8f5282c7579d00a885c3e7bd0193fd2d26fd7ef72e0” 1.4. Xác thực và các các mơ hình xác thực

Xác thực là quá trình nhằm xác nhận định danh của một thực thể truyền thống, cũng nhưng các thông tin quan trọng đi kèm khác như tên, mật khẩu, và một số

thông tin khác. Thực thể cần xác thực ở đây có thể là người sử dụng cuối, thiết bị di động, máy tính, ứng dụng, một dịch vụ, hoặc một hệ thống.

Quá trình xác thực bao gồm 2 bên: Bên cần xác thực (claimant) và bên xác thực (verifier). Bên cần xác thực sẽ khai báo định danh và các thơng tin để bên xác thực có thể xác thực lại định danh đó. Khái niệm “xác thực” ( authentication) là một khái niệm đặc biệt, nó có ý nghĩa khác hẳn với khái niệm “định danh” (identification) – Là việc xác định danh tính của thực thể đang giao tiếp – Khái niệm xác thực cũng khác với khái niệm “quyền truy cập” ( authorization) - là việc xác định quyền truy cập dữ liệu và tài nguyên của một thực thể đã được “xác thực” (authentication)

Ta cần phân biệt 2 khái niệm xác thực, là xác thực thực thể (entity authentication) và xác thực thông điệp (message authentication). Xác thực thực thể là q trình xác thực danh tính của một thực thể, xem liệu thực thể đang được xác thực có đúng với danh tính của nó, ví dụ là xác thực người dùng đăng nhập vào hệ thống, và đó là một q trình thời gian thực. Ngược lại xác thực thơng điệp là một quá trình khơng là q trình thời gian thực, nó đảm bảo việc thơng điệp được xác thực không bị thay đổi và thơng điệp đó được gửi bởi một thực thể đã xác định danh tính.

Trong xã hội thơng tin ngày nay, việc xác thực thông báo trở thành một vấn đề quan trọng trên nhiều lĩnh vực, đặc biệt là lĩnh vực kinh doanh và lĩnh vực quân sự. Đã có rất nhiều phương pháp, nhiều cơng nghệ được phát minh cung cấp nhiều kỹ thuật, nhiều dịch vụ xác thực an toàn và tiện lợi. Tuy nhiên, có thể phân loại kỹ thuật xác thực thành 3 nhóm:

 Xác thực dựa trên mã hóa thơng điệp: Là kỹ thuật sử dụng phương pháp

mã hóa để mã hóa tồn bộ thơng điệp, sau đó làm căn cứ để xác thực.

 Xác thực mật mã kiểm tra : Sử dụng 1 hàm tổng kiểm tra cơng khai, với

1 khóa bí mật sẽ được mã hóa thành 1 xâu giá trị có độ dài cố định, làm căn cứ xác thực.

 Xác thực dựa trên hàm băm: Sử dụng các hàm băm một chiều, mã hóa thơng điệp có độ dài bất kỳ thành xâu có độ dài cố định, làm căn cứ xác thực.

Như đã nêu ở trên, xác thực thực thể là một quá trình thời gian thực, các giao thức xác thực thực thể (entity authentication protocol) phải đảm bảo được những tiêu chí sau:

 Khơng có một bên thứ ba nào có thể giả mạo được.

 Bên xác thực không thể tái sử dụng được các thông tin xác thực cũ của

thực thể cần xác thực để cung cấp khả năng giả mạo cho một bên thứ ba.

 Thông báo được ký không thể được khôi phục lại từ mã của chữ ký trong

suốt quá trình xác thực.

Trong phần này, ta sẽ xét lần lượt các các mơ hình xác thực và các đặc điểm của các mơ hình đó.

1.4.1. Mơ hình xác thực yếu

Mơ hình xác thực yếu là một mơ hình xác thực, nhưng nó khơng cung cấp một giải pháp xác thực hiệu quả và đầy đủ về tổng thể. Có hai loại hình xác thực yếu rất được quan tâm bởi đó là các phương pháp xác thực tự nhiên và rất phổ biến hiện này, đó là mơ hình xác thực dựa trên mật khẩu (Password-based Authentication) và mơ hình xác thực dựa trên mã cá nhân (PIN-based Authentication)

1.4.1.1. Xác thực dựa trên mật khẩu

Xác thực dựa trên mật khẩu là phương pháp xác thực người dùng phổ biến nhất hiện nay. Hệ xác thực dựa trên mật khẩu được xây dựng trên mơ hình chia sẻ mật khẩu giữa người sử dụng và hệ thống, hệ thống sẽ lưu các bản ghi chứa mật khẩu chia sẻ của người dùng, mật khẩu này sẽ được người sử dụng dùng để cung cấp cùng với tên định danh khi đăng nhập trong bước xác thực.

Các hệ xác thực dựa trên mật khẩu thường được phân biệt bởi phương thức lưu trữ mật khẩu trong hệ thống. Ở các hệ thống thế hệ trước, mật khẩu thường được lưu dưới dạng bản rõ (plaintext) trên hệ thống file hoặc trong một cơ sở dữ liệu. Việc lưu như vậy khá nguy hiểm, bởi ai có thẩm quyền truy cập hệ thống (Quản trị viên, hoặc hacker khi chiếm được quyền kiểm soát) đều có thể lấy cắp được mật khẩu và thông tin của người dùng. Để khắc phục nhược điểm này, các hệ thống ngày nay thường lưu mật khẩu dưới dạng mã băm sử dụng hàm băm 1 chiều (Ví dụ là MD5, SHA-256) của mật khẩu người dùng. Theo đó, khi người dùng nhập mật khẩu đăng nhập, mật khẩu đó sẽ được băm thành mã băm, sau đó hệ thống sẽ so sánh mã băm đó với mã băm mật khẩu được lưu trong hệ thống. Biện pháp này đảm bảo rằng mật khẩu nguyên gốc của người dùng không bị lộ, ngay cả khi người quản trị hay hacker xem được bản chứa mật khẩu được lưu trong hệ thống.

Mơ hình xác thực dựa trên mật khẩu hiện nay đã bộc lộ một số yếu điểm về an ninh. Kẻ tấn cơng có nhiều phương pháp chiếm quyền kiểm soát của người sử dụng bằng cách đánh cắp mật khẩu. Phương pháp đơn giản nhất là kẻ tấn công sẽ sử dụng

phương pháp nghe lén đường truyền, nếu mật khẩu khơng được mã hóa trên đường truyền, kẻ tấn cơng có thể dễ dàng lấy được mật khẩu của người sử dụng. Nếu mật khẩu đã được mã hóa trên đường truyền, kẻ tấn cơng có phương pháp khác là sử dụng tấn công bằng từ điển (Dictionary attack – Là cách tấn công sử dụng 1 từ điển các mật khẩu thường được sử dụng – Hoặc sử dụng phương pháp tấn công ngày sinh (Birthday attack) [31] để tìm ra điểm xung đột của thuật tốn băm.

Tuy nhiên, có một kỹ thuật để cải tiến nâng cao độ an toàn trong hệ thống xác thực dựa trên mật khẩu, đó là sử dụng mật khẩu một lần (One time password). Nguyên lý của hệ mật khẩu một lần là mỗi mật khẩu được chỉ có hiệu lực 1 lần, trong một khoảng thời gian nhất định. Mật khẩu một lần đảm bảo việc cho dù kẻ tấn cơng có lấy được mật khẩu trên đường truyền, thì kẻ đó cũng khơng sử dụng lại mật khẩu đó. Mật khẩu một lần được hệ thống sinh ra theo một thuật toán ngẫu nhiên, hoặc giả ngẫu nhiên, có kích thước cố định và được thông báo lại cho người sử dụng bằng một kênh truyền thơng nào đó như qua tin nhắn di động, qua internet, hoặc qua các thiết bị chuyên dụng. , ví dụ như thiết bị Secure ID của hãng bảo mật RSA, hay OTP token của hãng VeriSign.

1.4.1.2. Xác thực dựa trên mã định danh cá nhân (PIN-based Authentication) Authentication)

Mơ hình xác thực dựa trên mã định danh cá nhân sử dụng các thiết bị vật lý để lưu trữ mã định danh cá nhân như thẻ SmartCard, hay USB Token. Mỗi người sử dụng được cấp một mã cá nhân (PIN) có chiều dài từ 4-10 chữ số, mã cá nhân được bảo vệ trong thiết bị vật lý bằng mật khẩu tự đặt của người sử dụng. Khi đăng nhập vào hệ thống, ở bước xác thực, người dùng phải cắm thiết bị vào máy tính để nhập mã PIN, thơng thường khi đó thiết bị sẽ yêu cầu người sử dụng nhập mật khẩu để có thể kích hoạt mã PIN được lưu trong thiết bị. Để đảm bảo mã PIN của người sử dụng được an toàn ngay cả trong trường hợp người sử dụng bị mất, thiết bị token sẽ khóa hoặc tự hủy nếu kẻ tấn công nhập sai mật khẩu sử dụng trong một số lần liên

Một phần của tài liệu LUẬN VĂN: XÁC THỰC TRONG CÁC MẠNG VÔ TUYẾN pptx (Trang 29)