Chữ ký điện tử

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Xác thực trong các mạng vô tuyến (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. Quá 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

 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:M S {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 toá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ụ 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 toà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 mode

s n. 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) = modse n 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 toá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ố nguyên 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 toán ygxmodp. Khóa công khai là PU = (p, q, g, y)

Quá 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 sK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) modr q

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

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.

 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 hoàn toàn mà không tuân 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à quá 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 quá 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à quá 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 toà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 toá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 tiếp (Thƣờng là 3 lần hoặc 5 lần).

1.4.2. Mô hình xác thực mạnh

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Xác thực trong các mạng vô tuyến (Trang 29)

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

(113 trang)