1.5. Mã hóa RSA
1.5.2. Mơ tả thuật tốn
Sinh khoá:
● Chọn ngẫu nhiên hai số nguyên tố lớn p và q, với p # q
● Tính n = pq
● Ta có (n) = (p-1)(q-1) là hàm Euler của n
● Chọn một số tự nhiên e sao cho 1 < e < (n) và e nguyên tố cùng nhau với(n)
● Ta tìm được duy nhất d = e-1mod (n)
Khố cơng khai là <n, e>, khóa bí mật là <n, d>
Mã hóa:
Để gửi dữ liệu cần mã hóa thì người gửi thực hiện :
● Thu nhận khóa cơng khai của người nhận < n,e>
● Biến đổi thông điệp muốn gửi M thành những số nguyên m < n theo một hàm có thể đảo ngược (Từ m có thể xác định được M) được thỏa thuận trước.
Bảo mật và an tồn thơng tin trong hệ thống mạng cục bộ của cơ quan nhà nước
● Tính c = memod n
Giải mã:
Để khơi phục lại thông điệp M ban đầu, người nhận thực hiện các bước sau :
● Tính m = cd mod n với 0 ≤ m ≤ n
● Thực hiện phép biến đổi ngược từ số m thành chuỗi ký tự tương ứng chưa thơng tin M ban đầu.
Ví dụ Sinh khố: ● Chọn 2 số nguyên tố: p = 61, q = 53 ● Tính n = 61.53 = 3233 ● Ta có (n) = (p-1)(q-1) = 60.52 = 3120 ● Chọn e = 17
●Tính d = e-1mod 3120 bằng giải thuật Euclide mở rộng ta có d = 2753 Khố cơng khai <n, e> = <3233, 17>; khố bí mật <n, d> = <3233, 2753>
Mã hố:
Để mã hóa văn bản có giá trị m = 123, ta thực hiện phép tính : c = memod n = 12317mod 3233 = 855
Giải mã:
Để giải mã văn bản có giá trị 855, ta thực hiện phép tính : cd = 8552753 mod 3233 = 123
Cả hai phép tính trên đều có thể được thực hiện hiệu quả thuật tốn bình phương liên tiếp.
1.5.3. Hàm băm (hash)
Chúng ta có thể thấy rằng chữ ký số nói chung chỉ cho phép ký các bức điện nhỏ. Thông thường khi sử dụng, chữ ký được sinh ra có độ dài lớn hơn
Bảo mật và an tồn thơng tin trong hệ thống mạng cục bộ của cơ quan nhà nước
Một cách đơn giản để giải bài toán này là chia các bức điện dài thành nhiều đoạn, sau đó ký lên các đoạn đó độc lập nhau. Điều này cũng tương tự như mã hóa một chuỗi dài bản rõ bằng cách mã hoá mỗi ký tự bản rõ độc lập nhau sử dụng cùng một bản khoá.
Biện pháp này có một số vấn đề trong việc tạo ra các chữ ký số [5]. Trước hết với một bức điện dài, ta kết thúc bằng một chữ ký rất lớn.
+ Thứ nhất: với một thơng điệp có kích thước a, thì sau khi ký kích thước của chữ ký sẽ là 2a (trong trường hợp sử dụng DSS).
+ Thứ hai: với các chữ ký “an tồn” thì tốc độ chậm vì chúng dùng nhiều phép tính số học phức tạp như số mũ modulo.
+ Thứ ba là kết quả sau khi ký: nội dung của thơng điệp có thể bị xáo trộn các đoạn với nhau, hoặc một số đoạn có thể bị mất mát, trong khi ng ười nhận cần phải xác minh lại thơng điệp. Vì vậy mục tiêu chính là cần phải bảo vệ tính tồn vẹn của thơng điệp. Giải pháp cho các vấn đề vướng mắc đến chữ ký số là dùng thông điệp đại diện và Hàm băm để trợ giúp cho việc ký số.
1.5.3.1. Khái niệm thông điệp đại diện
Mỗi thông điệp tùy ý sau khi sử dụng thuật toán băm sẽ được thu gọn thành bản băm duy nhất - được gọi là thông điệp đại diện - có kích thước cố định (128 bits hoặc 160 bits).
1.5.3.2. Hàm băm
Hàm băm là các thuật tốn khơng sử dụng khóa để mã hóa (ở đây ta thường dùng thuật ngữ “băm” thay cho “mã hóa”), nó có nhiệm vụ (băm) thơng điệp và đưa vào theo một thuật tốn một chiều nào đó, rồi đưa ra một bản băm – văn bản đại diện – có kích thước cố định [5].
Bảo mật và an tồn thơng tin trong hệ thống mạng cục bộ của cơ quan nhà nước
+ Đặc tính quan trọng của hàm băm
Hàm băm h là hàm một chiều (one – way hash ) có các đặc tính sau: - Với thơng điệp đầu vào X thu được bản băm Y = h(X) là duy nhất. - Nếu dữ liệu trong thông điệp X thay đổi hay bị xóa để th ành thơng điệp X’thì h(X’) ≠ h(X). Cho dù chỉ có một sự thay đổi nhỏ hay chỉ l à xóa đi một bits dữ liệu của thơng điệp thì giá trị băm cũng vẫn thay đổi. Điều này có nghĩa là: hai thơng điệp khác nhau thì giá trị hàm băm hồn tồn khác nhau.
- Nội dung của thông điệp gốc không thể bị suy ra từ giá trị h àm băm. Nghĩa là với thơng điệp X thì dễ dàng tính được Y = h(X), nhưng lại khơng thể tính suy ngược lại được X nếu chỉ biết hàm băm h(X).
+ Tính chất của hàm băm
Việc đưa hàm băm h vào dùng trong sơ đồ chữ ký số khơng làm giảm sự an tồn của sơ đồ chữ ký số vì nó là bản tóm lược văn bản – văn bản đại diện cho thông điệp được ký chứ không phải là thông điệp gốc. Điều cần thiết là hàm băm cần thỏa mãn một số tính chất sau để tránh bị giả mạo:
Thông điệp đầu vào X dạng văn bản, âm thanh, hình ảnh Kích thước tùy ý
Băm thơng điệp với thuật tốn băm
h(X) Bản băm Y=h(X) Kích thước cố định (128 bit hoặc 160 bit)
Bảo mật và an tồn thơng tin trong hệ thống mạng cục bộ của cơ quan nhà nước
Tính chất 1: hàm băm h khơng va chạm yếu: h là hàm băm khơng có tính va chạm yếu nếu khi cho trước một bức điện X, không thể tiến h ành về mặt tính tốn để tìm ra một bức điện X’ ≠ X mà h(X’) = h(X).
Xét một kiểu tấn công: Thông tin cần phải truyền từ A đến B (Hình 1.8a). Nhưng trên đường truyền, thơng tin bị lấy trộm và thay đổi (Hình 1.8b)
Người A gửi cho B (X, Y) với Y = sigK(h(X)). Nhưng trên đường truyền, thông tin bị lấy trộm. Hacke bằng cách nào đó tìm được một bản thơng điệp X’có h(X’) = h(X) mà X’≠ X. Sau đó Hacker đưa X’thay thế X rồi truyền tiếp cho B. Người B nhận được và thông tin vẫn được xác thực là đúng đắn.
Người gửi
A Người nhậnB
(X, Y) = sigK(h(X))
Hình 1.8a: Đường đi đúng của thơng tin
Hình 1.8b: Thông tin bị lấy trộm và đã bị thay đổi trên đường truyền
Người gửi A (X, Y) = sigK(h(X)) (X, Y) = sigK(h(X)) (X’, Y) = sigK(h(X)) Người nhận B
Bảo mật và an tồn thơng tin trong hệ thống mạng cục bộ của cơ quan nhà nước
Tính chất 2:Hàm băm h khơng va chạm mạnh: h là hàm băm khơng có tính va chạm mạnh nếu khơng có khả năng tính tố n để tìm ra hai bức thơng điệp X và X’mà X ≠ X’ và h(X’) = h(X).
Xét kiểu tấn công sau: Đầu tiên, Hacker tìm được hai bức thơng điệp X’
và X (với X’≠ X) mà có h(X’) = h(X) (ta coi X là hợp lệ, còn X’ là giả mạo). Tiếp theo kẻ này đưa cho A và thuyết phục A ký vào bản tóm lược h(X) để nhận được Y. Khi đó (X’, Y) là bức thơng điệp giả mạo nhưng hợp lệ.
Tính chất 3: Hàm băm h là hàm một chiều: h là hàm một chiều nếu cho trước một bản tóm lược của văn bản Y thì khơng thể thực hiện về mặt tính tốn để tìm ra thơng điệp ban đầu X sao cho h(X) = Y.
Xét kiểu tấn công sau: Việc giả mạo chữ ký trên bản tóm lược Y thường xảy ra với các sơ đồ chữ ký số. Giả sử, Hacker tính được chữ ký trên bản tóm lược Y, sau đó hắn tìm được bản thơng điệp X’ được tính ngược từ bản đại diện Y = h(X). Hacker thay thế bản thông điệp X hợp lệ bằng bản thông điệp X’giả mạo nhưng lại có Y = h(X’). Và ký số trên bản đại diện cho X’ bằng đúng chữ ký hợp lệ. Như vậy thì (X’, Y) là bức điện giả mạo nhưng hợp lệ
+ Ý nghĩa của việc dùng thông điệp đại diện và hàm băm
Hàm băm trợ giúp cho các sơ đồ chữ ký số nhằm giảm dung lượng của dữ liệu cần thiết để truyền qua mạng (lúc n ày chỉ cịn bao gồm dung lượng của thơng điệp gốc và 256 bits (sử dụng MD) hay 320 bits (sử dụng SHA) của chữ ký số được ký trên văn bản đại diện của thông điệp gốc), điều này tương đương với việc giảm thời gian truyền tin qua mạng.
Hàm băm thường kết hợp với chữ ký số để tạo một loại chữ ký điện tử vừa an toàn (khơng thể cắt/dán) vừa dùng để kiểm tra tính tồn vẹn của thơng điệp. Sau đây là sơ đồ tạo chữ ký số và sơ đồ xác thực chữ ký số có sử dụng hàm băm:
Bảo mật và an tồn thơng tin trong hệ thống mạng cục bộ của cơ quan nhà nước
1.5.4. Chứng chỉ số [3]
1.5.4.1. Giới thiệu về chứng chỉ số
Việc sử dụng mã hóa hay ký số chỉ giải quyết được vấn đề bảo mật thơng điệp và xác thực. Tuy nhiên khơng có thể đảm bảo rằng Hacker không thể bị giả mạo, trong nhiều trường hợp cần thiết phải “chứng minh” bằng điện
Hình 1.9: Sơ đồ tạo chữ ký sốB ả n tó m B ả n tó m lư ợ c H à m b ă m G ắ n v ớ i th ô n g đ iệ p d ữ liệ u M ã h ó a T h ơ n g đ iệp d ữ liệu K h ó a b í m ậ t C h ữ k ý s ố Hình 1.10: Sơ đồ xác nhận chữ ký số B ả n tó m lư ợ c H à m b ă m G iả i m ã B ả n tó m lư ợ c T á c h G iả i m ã ? = ? K h ô n g đ ú n g n g ư ờ i g ử i N ộ i d u n g th ô n g đ iệp b ị th a y đ ổ i N ộ i d u n g to à n v ẹ n T h ô n g đ iệp d ữ liệu đ ư ợ c k ý C h ữ k ý s ố T h ô n g đ iệp d ữ liệ u K h ó a c ơ n g k h a i
Bảo mật và an tồn thơng tin trong hệ thống mạng cục bộ của cơ quan nhà nước
tử về danh tính của một ai đó. Chứng chỉ số là một tệp tin điện tử được sử dụng để nhận diện một cá nhân, một tổ chức,… nó gắn định danh của đối tượng đó với một khóa cơng khai, giống nh ư bằng lái xe, hộ chiếu hoặc chứng minh thư của một người.
Cơ quan chứng thực chữ ký số (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 đứng độc lập hoặc các tổ chức vận h ành một hệ thống tự cấp các chứng chỉ cho nội bộ của họ. 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ố là đúng đắn, ai được cấp và mục đích dùng vào việc gi. Thông thường, trước khi cấp một chứng chỉ số, CA sẽ cung cấp một thủ tục cần thiết phải thực hiện cho các loại chứng chỉ số.
Trong chứng chỉ số chứa một khóa cơng khai được gắn với một tên duy nhất của một đối tượng. Các chứng chỉ số giúp ngăn chặn việc sử dụng khóa cơng khai một cách 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 có định danh nằm trong chứng chỉ số. Ngồi khóa cơng khai, chứng chỉ số cịn chứa thơng tin về đối tượng như: tên để nhận diện, hạn dùng, tên của CA cấp chứng chỉ số, mã số,… Điều quan trọng nhất là chữ ký số phải được chứng thực bởi CA. Nó cho phép chứng chỉ số như đã được đóng dấu để người sử dụng có thể dùng các phần mềm ký số để kiểm tra chính các chữ số đó.
1.5.4.2. Xác thực định danh
Việc giao tiếp trên mạng điển hình là giữa một máy khách – Client và một máy dịch vụ - Server. Việc chứng thực có thể thực hiện ở cả hai phía. Việc xác thực ở đây khơng chỉ có ý nghĩa một chiều đối với ng ười gửi, tức là
Bảo mật và an tồn thơng tin trong hệ thống mạng cục bộ của cơ quan nhà nước
người gửi muốn người nhận tin tưởng vào mình. Khi một người đã gửi thơng điệp có kèm theo chữ ký số của mình (cùng với chứng chỉ số), thì khơng thể chối cãi: đó khơng phải là thơng điệp mà mình đã gửi.
Hai hình thức xác định máy khách
+ Xác thực dựa trên tên truy nhập và mât khẩu (Username và Password). Tất cả các máy dịch vụ cho phép người dùng nhập mật khẩu, để có thể truy nhập vào hệ thống. Máy dịch vụ sẽ quản lý danh sách các Username, Password này và thực hiện việc xác thực người sử dụng trước khi cho phép họ truy nhập tài nguyên của hệ thống.
Hình 1.11: Dùng mật khẩu để xác thực máy khách kết nối tới máy dịch vụ
Khi sử dụng loại xác thực này, người dùng phải nhập mật khẩu cho mỗi máy khách khác nhau, máy dịch vụ sẽ lưu lại dấu vết của các mật khẩu này cho mỗi người dùng. Quá trình này được thưc hiện theo các bước sau:
Bước 1: Để đáp lại yêu cầu từ máy dịch vụ, máy khách sẽ hiện hộp thoại yêu cầu nhập mật khẩu, người dùng phải nhập mật khẩu cho mỗi máy dịch vụ khác nhau trong cùng một phiên làm việc.
Bảo mật và an tồn thơng tin trong hệ thống mạng cục bộ của cơ quan nhà nước Bước 3:Máy dịch vụ tìm kiếm mật khẩu trong cơ sở dữ liệu.
Bước 4: Máy dịch vụ xác định xem mật khẩu đó có quyền truy cập vào những tài nguyên nào của hệ thống.
+ Xác thực dựa trên chứng chỉ số: Máy khách ký số vào dữ liệu, sau
đó gửi cả chữ ký số và chứng chỉ số qua mạng. Máy dịch vụ sẽ dùng kỹ thuật mã hóa khóa cơng khai để kiểm tra chữ ký và xác định tính hợp lệ của chứng chỉ số. Chứng chỉ số có thể thay thế 3 bước đầu của phương pháp chứng thực bằng mật khẩu với cơ chế cho phép người dùng chỉ phải nhập mật khẩu một lần và không phải truyền qua mạng, người quản trị có thể điều khiển quyền truy nhập một cách tập trung.
Chứng chỉ số chứng thực cho máy khách kết nối tới máy dịch vụ có dùng giao thức bảo mật SSL (Secure Socket Layer) là giao thức truyền thơng tin an tồn, máy khách và máy chủ quản lý các hoạt động mã hóa và giải mã trong một phiên Web an toàn qua Internet, giao thức SSL là một phiên bản an toàn của HTTP, được gọi là HTTPs, SSL có 2 dộ dài của khóa phiên riêng được sinh ra trong mọi giao dịch có mã hóa là 40 bits và 128 bits). Máy khách phải có chứng chỉ số để cho máy dịch vụ nhận diện. Sử dụng chứng chỉ số để chứng thực có lợi thế hơn khi dùng mật khẩu. Bởi vì nó dựa trên những gì mà người sử dụng có: Khóa bí mật và mật khẩu để bảo vệ khóa bí mật. Điều cần chú ý là chỉ có chủ nhân của máy khách mới được phép truy nhập vào máy khách, phải nhập mật khẩu để vào cơ sở dữ liệu của chương trình có sử dụng khóa bí mật.
Cả hai cơ chế xác thực trên đều phải truy nhập mức vật lý tới các máy cá nhân. Mã hóa khóa cơng khai chỉ có thể kiểm tra việc sử dụng khóa bí mật tương ứng khóa cơng khai trong chứng chỉ số. Nó khơng đảm nhận trách nhiệm bảo mật vật lý và mật khẩu sử dụng của khóa bí mật. Trách nhiệm này thuộc về người sử dụng.
Bảo mật và an tồn thơng tin trong hệ thống mạng cục bộ của cơ quan nhà nước
Quá trình xác thực bằng chứng chỉ số thực hiện như sau:
Bước 1: Phần mềm máy khách quản lý cơ sở dữ liệu về các cặp khóa bí mật và khóa cơng khai. Máy khách sẽ u cầu nhập mật khẩu để truy nhập vào cơ sở dữ liệu này chỉ một lần hoặc theo định kỳ. Khi máy khách truy cập vào máy dịch vụ có sử dụng SSL, để xác thực máy khách dựa trên chứng chỉ số, người dùng chỉ phải nhập mật khẩu một lần, họ không phải nhập lại khi cần truy nhập lần thứ hai.
Bước 2:Máy khách dùng khóa bí mật tương ứng với khóa cơng khai ghi trong chứng chỉ số để ký lên dữ liệu được tạo ra ngẫu nhiên cho mục đích