Giao dịch điện tử và các vấn đề bảo đảm an toàn
Giao dịch điện tử
Giao dịch điện tử là giao dịch được thực hiện bằng phương tiện điện tử
Ngày nay với nền tảng của công nghệ thông tin hiện đại, giao dịch điện tử cũng phát triển nhanh chóng, thu hút được sự quan tâm sâu rộng của các quốc gia, các tổ chức quốc tế và các khối liên kết kinh tế; góp phần quan trọng làm thay đổi cách thức kinh doanh, giao dịch truyền thống, phong cách sống, học tập, làm việc của con người; thúc đẩy mạnh mẽ sự tăng trưởng kinh tế, tăng cường hiệu quả hoạt động và khả năng cạnh tranh của các tổ chức, doanh nghiệp; tạo ra nhiều ngành nghề sản xuất, kinh doanh, dịch vụ mới như công nghiệp công nghệ thông tin, dịch vụ thương mại điện tử, dịch vụ tài chính – ngân hàng trực tuyến, dịch vụ thư điện tử, dịch vụ chữa bệnh qua mạng, giáo dục đào tạo từ xa Giao dịch điện tử cũng thúc đẩy “tin học hóa” hoạt động của các cơ quan nhà nước, giúp cho quá trình gửi nhận các văn bản được thực hiện nhanh chóng, kịp thời và chính xác; cho phép mọi người dân có thể dễ dàng tiếp cận các dịch vụ công cũng như giám sát hoạt động của các cơ quan Nhà nước.
An toàn thông tin
An toàn thông tin là sự bảo vệ thông tin, hệ thống thông tin tránh bị truy nhập, sử dụng, tiết lộ, gián đoạn, sửa đổi hoặc phá hoại trái phép nhằm đảm bảo tính nguyên ven, tính bảo mật và tính khả dụng của thông tin
An toàn thông tin liên quan đến hai khía cạnh đó là an toàn về mặt vật lý và an toàn về mặt kỹ thuật
Mục tiêu cơ bản của an toàn thông tin [8]:
+ Đảm bảo tính bảo mật (Confidentiality): Thông tin chỉ được truy cập bởi những người có thẩm quyền;
+ Đảm bảo tính toàn vẹn dữ liệu (Integrity): Thông tin chỉ được thay đổi bởi những người có thẩm quyền;
+ Đảm bảo tính xác thực (Authentication): Xác thực đúng thực thể cần kết nối, giao dịch Xác thực đúng thực thể có trách nhiệm về nội dung thông tin
+ Đảm bảo tính sẵn sàng (Availability): Thông tin luôn sẵn sàng được sử dụng bởi những người có thẩm quyền.
Các nguy cơ mất an toàn thông tin
Nguy cơ mất an toàn thông tin về khía cạnh vật lý: là nguy cơ do mất điện, nhiệt độ, độ ẩm không đảm bảo, hỏa hoạn, thiên tai, thiết bị phần cứng bị hư hỏng, các phần tử phá hoại như nhân viên xấu bên trong và kẻ trộm bên ngoài
Nguy cơ bị mất, hỏng, sửa đổi nội dung thông tin: Người dùng có thể vô tình để lộ mật khẩu hoặc không thao tác đúng quy trình tạo cơ hội cho kẻ xấu lợi dụng để lấy cắp hoặc làm hỏng thông tin Kẻ xấu có thể sử dụng công cụ hoặc kỹ thuật của mình để thay đổi nội dung thông tin (các file) nhằm sai lệnh thông tin của chủ sở hữu hợp pháp
Nguy cơ bị tấn công bởi các phần mềm độc hại: Các phần mềm độc hại tấn công bằng nhiều phương pháp khác nhau để xâm nhập vào hệ thống với các mục đích khác nhau như: virus, sâu máy tính (Worm), phần mềm gián điệp (Spyware),
Nguy cơ xâm nhập từ lỗ hổng bảo mật: lỗ hổng bảo mật thường là do lỗi lập trình, lỗi hoặc sự cố phần mềm, nằm trong một hoặc nhiều thành phần tạo nên hệ điều hành hoặc trong chương trình cài đặt trên máy tính
Nguy cơ xâm nhập do bị tấn công bằng cách phá mật khẩu
Nguy cơ mất an toàn thông tin do sử dụng e-mai
Nguy cơ mất an toàn thông tin trong quá trình truyền tin
Nguy cơ bị các cuộc tấn công mạng, v.v
Thực trạng mất an ninh an toàn trong giao dịch điện tử
Giao dịch điện tử là một hoạt động mang lại hiệu quả cao, song một khi gặp rủi ro thì những thiệt hại đối với các tổ chức, doanh nghiệp cũng không nhỏ
Theo đánh giá tổng thể, tình hình bảo đảm an toàn thông tin của Việt Nam đã có những chuyển biến tích cực rõ rệt [1] Chỉ số an toàn thông tin Việt Nam năm 2015 (VNISA Index 2015) đã tăng từ mức 39% vào năm 2014 lên 46,4% vào năm 2015
Tuy nhiên vẫn còn nhữn bất cập, tồn tại về an toàn thông tin như: Việt Nam tiếp tục nằm trong danh sách các quốc gia có tỉ lệ lây nhiễm phần mềm độc hại cao trên thế giới Chỉ số này của Việt Nam năm 2015 ước tính vào khoảng 64,36%, mặc dù tỉ lệ này có giảm so với năm 2014 nhưng là không đáng kể
Trong năm 2015, Việt Nam phát hiện 38.177 cuộc tấn công mạng, tăng gấp 2 lần so với năm 2014, trong đó có 5.600 cuộc tấn công lừa đảo
(Phishing), 22.200 cuộc tấn công cài phần mềm độc hại (Malware) và 10.377 cuộc tấn công thay đổi giao diện (Deface), trong số đó có 212 cuộc tấn công thay đổi giao diện vào các hệ thống có tên miền “.gov.vn”
Bảng 1.1 Tổng hợp số liệu thống kê ATTT Việt Nam 2015
TT Nội dung Năm 2015 Năm 2014
Chỉ số an toàn thông tin Việt Nam
1 Chỉ số an toàn thông tin Việt Nam 46.4 % 39 %
Tỷ lệ lây nhiễm phần mềm độc hại
3 Trên thiết bị di động 24 % 23 %
5 Qua các thiết bị đa phương tiện 77 % 77 %
6 Tổng số cuộc tấn công 38.177 cuộc > 19.000 cuộc
7 Tổng số cuộc tấn công thay đổi giao diện 10.377 cuộc
8 Tổng số cuộc tấn công thay đổi giao diện vào tên miền “.gov.vn’
9 Tổng số cuộc tấn công lừa đảo 5.600 cuộc
10 Tổng số cuộc tấn công lây nhiễm phần mềm độc hại 22.200 cuộc
Tấn công từ chối dịch vụ (DDoS)
11 Tỷ lệ số lượt bị tấn công DdoS của
Việt Nam so với thế giới 3.95 %
12 Tỷ lệ thư rác phát tán từ Việt Nam 6.1 % 4.5 %
Các giải pháp bảo đảm An toàn thông tin
Để đảm bảo ATTT trong giao dịch điện tử chúng ta cần có những giải pháp phù hợp, hiện nay có nhiều giải pháp cho vấn đề ATTT trong giao dịch điện tử như:
+ Giảm thiểu nguy cơ từ cơ sở hạ tầng kỹ thuật: Xác định nguồn và nguyên nhân gây mất ATTT và ứng dụng các giải pháp kỹ thuật tương ứng
+ Trong sạch và nâng cao chất lượng nguồn nhân: lựa chọn nhân lực quản trị và vận hành hệ thống, đào tạo và nâng cao ý thức người sử dụng
+ Hành lang pháp lý: chính sách ATTT; xây dựng và áp dụng các chế tài, ban hành các quy chế, quy định, thẩm quyền khai thác, sử dụng thông tin
Các giải pháp đảm bảo ATTT hệ thống:
+ Sử dụng các hệ thống kỹ thuật để bảo vệ hệ thống thông tin: sử dụng hệ thống phát hiện và chống xâm nhập, chống nghe lén, phá hoại và ăn cắp thông tin dữ liệu, v.v…
+ Sử dụng các hệ thống thiết bị, phần mềm chất lương cao, ổn định
Các giải pháp kỹ thuật cụ thể:
+ Kiểm tra mức độ an ninh của các thành phần tham gia hệ thống Cụ thể như: kiểm tra các lỗ hổng an ninh đối với toàn bộ hệ thống, kiểm tra các phần mềm cài cắm nghe lén, v.v…
+ Bảo mật, xác thực các thông tin dữ liệu trong quá trình giao dịch, trao đổi như sử dụng các kỹ thuật mã hóa, chữ ký số, v.v…
Cơ sở mật mã ứng dụng trong an toàn bảo mật thông tin
Tổng quan về hệ mật mã
Mật mã được sử dụng để bảo vệ tính bí mật của thông tin khi thông tin được truyền trên các kên truyền thông công cộng như các kênh bưu chính, điện thoại, mạng tuyền thông máy tính, mạng Internet, v.v [2]
Mật mã gắn liền với quá trình mã hóa; tức là gắn với các cách thức để chuyển đỗi thông tin từ dạng có thể nhận thức được thành dạng không thể nhận thức được, làm cho thông tin trở thành dạng không thể đọc được Các thuộc tính yêu cầu của mật mã hóa là tính bí mật, tính nguyên vẹn, tính xác thực, tính không bị từ chối và tính chống lặp lại Mã hóa được sử dụng chủ yếu để đảm bảo tính bí mật của các thông tin, chứng thực khóa công khai, chữ ký số, v.v
Một hệ mã bao gồm 5 thành phần (P, C, K, E, D) [2], trong đó:
- P là tập hữu hạn các bản rõ (dữ liệu trước khi mã hóa)
- C là tập hữu hạn các bản mã (dữ liệu sau khi mã hóa)
- K là tập hữu hạn các khóa (khóa công khai, khóa bí mật)
- E là tập các hàm lập mã
- D là tập các hàm giải mã Với khóa lập mã ke K có hàm lập mã: e k e E e , k e : P C (2.1)
Với khóa giải mã kd K có hàm lập mã: d kd E d , k d : C D (2.2)
Sao cho: d kd ( e ke ( )) x x , x P (2.3) Ở đây x là bản rõ, e ke (x) là bản mã
Quá trình mã hóa được tiến hành bằng cách áp dụng hàm lập mã E lên bản rõ P, vốn được biểu diễn dưới dạng số, để trở thành thông tin đã mã hóa C
Quá trình giải mã được tiến hành ngược lại: áp dụng hàm giải D lên thông tin C để được thông tin đã giải mã P
Hệ mật mã chính là hệ thống cung cấp các kỹ thuật mã hóa và giải mã dữ liệu, được phân loại thành hệ mật mã khóa đối xứng và hệ mật mã khóa công khai.
Hệ mật mã khóa đối xứng
Hệ mật mã khóa đối xứng là hệ mật mã chỉ dùng một khóa duy nhất cho cả hai quá trình mã hóa và giải mã Hệ mật mã này có đặc điểm là có thời gian mã hóa và giải mã tương đối nhanh Do yậy, hệ mật mã khóa đối xứng thường được sử dụng để mã hóa những dữ liệu lớn
Có hai thuật toán được sử dụng chủ yếu trong việc tạo khóa bí mật trong hệ mật mã khóa đối xứng:
- Loại thứ nhất tác động trên bản rõ theo từng nhóm bits Từng nhóm bits này được gọi với một cái tên khác là khối (Block) và thuật toán được áp dụng gọi là mã hoá khối (Block Cipher) Theo đó, từng khối dữ liệu trong văn bản ban đầu được thay thế bằng một khối dữ liệu khác có cùng độ dài Đối với các thuật toán ngày nay thì kích thước chung của một khối là 64 bits
Loại thứ hai tác động lên bản rõ theo từng bit một Các thuật toán áp dụng được gọi là mã hoá dòng (Stream Cipher) Dữ liệu của văn bản được mã hoá từng bit một Các thuật toán mã hoá dòng này có tốc độ nhanh hơn các thuật toán mã hoá khối và nó thường được áp dụng khi lượng dữ liệu cần mã hoá chưa biết trước Độ an toàn của thuật toán này phụ thuộc vào khóa, nếu để lộ ra khóa này nghĩa là bất kỳ người nào cũng có thể mã hóa và giải mã dữ liệu trong hệ thống mã hóa
Hình 2.1 Mật mã đối xứng
Một số thuật toán nổi tiếng trong mã hoá đối xứng là: DES, Triple DES (3DES), RC4, AES
- DES: bản rõ (Plaintext) được mã hoá theo từng khối 64 bits và sử dụng một khoá là 64 bits, nhưng thực tế thì chỉ có 56 bits mã hoá và giải mã sử dụng 3 khoá [2] Khối 64 bits của bản rõ đầu tiên sẽ được dùng để tạo khoá, 8 bits còn lại dùng để kiểm tra tính chẵn, lẻ DES là một thuật toán được sử dụng rộng rãi nhất trên thế giới Hiện tại DES không còn được đánh giá cao do kích thước của khoá quá nhỏ 56 bits, và dễ dàng bị phá vỡ
- Triple DES (3DES): 3DES cải thiện độ mạnh của DES bằng việc sử dụng một mã quá trình mã hoá sử dụng khoá thứ nhất Sau đó, dữ liệu bị mã hóa được giải mã bằng việc sử dụng một khoá thứ hai Cuối cùng, sử dụng khoá thứ ba và kết quả của quá trình mã hoá trên để mã hoá
AES: được sử dụng để thay thế cho DES Nó hỗ trợ độ dài của khoá từ
128 bits cho đến 256 bits AES là một thuật toán có tốc độ mã hóa và giải mã nhanh, có khả năng chống được nhiều phương pháp tấn công như vét cạn, kẻ tấn công đứng giữa, v.v
2.2.2 Ưu nhược điểm của hệ mã hóa đối xứng Ưu điểm:
- Có thể thiết kế để đạt tốc độ cao
- Khóa dùng chung cho mã hóa khóa đối xứng tương đối ngắn
- Được xem như thành phần cơ bản có thể triển khai để xây dựng các kỹ thuật mã hóa khác, bao gồm khởi tạo các số ngẫu nhiên, các hàm băm, các thuật toán tính toán
- Có thể được kết hợp để tạo ra các thuật toán mã hóa mạnh hơn
- Trong quá trình truyền thông giữa hai người, khóa phải được giữ bí mật cho cả hai phía
- Trong hệ thống mạng lớn, số lượng khóa cần được quản lý nhiều Do vậy việc quản lý khóa một cách hiệu quả đòi hỏi sự dụng một bộ phận tin cậy thứ ba (TTP: Trusted Third Party)
- Khóa bí mật cần được thay đổi thường xuyên
- Kỹ thuật chữ ký số được phát triển từ cơ chế mã hóa khối đối xứng đòi hỏi sử dụng các khóa lớn cho các hàm xác nhận công khai hoặc là sủ dụng một TTP.
Hệ mật mã khóa công khai
Khác với hệ mật mã khóa đối xứng, hệ mật mã khóa công khai sử dụng một cặp khóa có liên quan với nhau về mặt toán học để mã hóa và giải mã thông tin
Thuật toán mã hóa công khai là thuật toán được thiết kế sao cho khóa mã hóa khác với khóa giải mã, mà khóa giải mã không thể tính được từ kháo mã hóa Khóa mã hóa gọi hòa khóa công khai (public key), khóa giải mã được gọi là khóa riêng (private key)
Hệ mật mã khóa công khai có tính chất bất đối xứng, tính bất đối xứng được thể hiện ở chỗ bên giữ khóa công khai chỉ có thể mã hóa dữ liệu, hoặc kiểm tra chữ ký số chứ không thể giải mã dữ liệu và tạo chữ ký số được
Quá trình truyền và sử dụng mã hoá khoá công khai được thực hiện như sau:
Bên gửi yêu cầu cung cấp hoặc tự tìm khoá công khai của bên nhận trên một server chịu trách nhiệm quản lý khoá
Sau đó hai bên thống nhất thuật toán dùng để mã hoá dữ liệu, bên gửi sử dụng khoá công khai của bên nhận cùng với thuật toán đã thống nhất để mã hoá thông tin được gửi đi
Khi nhận được thông tin đã mã hoá, bên nhận sử dụng khoá bí mật của mình để giải mã và lấy ra thông tin ban đầu
Vói sự ra đời của Mã hóa công khai thì khoá được quản lý một cách linh
Hình 2.2 Mã hóa khóa công khai hoạt và hiệu quả hơn, người sử dụng chỉ cần bảo vệ khoá bí mật Đặc trưng nổi bật của hệ mã hóa công khai là cả khóa công khai và dữ liệu mã hóa (ciphertext) đều có thể giử đi trên một kên truyền thông tin không an toàn
Mục đích chính của hệ mật khóa công khai là phân phối khóa và ký số
Các ứng dụng của hệ mật mã này gồm có: Mã hóa/giải mã, chữ ký, trao đổi khóa
Một số hệ mã hóa khóa công khai phổ biến như: RSA, Rabin, Elgaml, v.v
2.3.2 Ưu nhược điểm của hệ mật mã khóa công khai Ưu điểm:
- Chỉ có khóa riêng thì cần được giữ bí mật, tuy nhiên việc xác nhận các khóa công khai cần được đảm bảo
- Việc quản trị các khóa trên mạng đòi hỏi sự tồn tại duy nhất một thành phần tin cậy
- Cặp khóa riêng và công khai có thể được sử dụng trong thời gian dài
- Nhiều mô hình khóa công cộng được phát triển hình thành nên các kỹ thuật chữ ký số hiệu quả Khóa được sử dụng cho hàm kiểu công khai thì nhỏ hơn rất nhiều so với dùng khóa đối xứng
- Trong một mạng lớn, số lượng khóa cần thiết được quan tâm ít hơn so với việc dùng khóa đối xứng
- Tốc độ cho các phương thức mã hóa công khai chậm hơn so với các mô hình khóa đối xứng
- Kích thước khóa lớn hơn nhiều so với cơ chế mã hóa đối xứng
Các đặc điểm chính trong thuật toán mã hóa RSA
Thuật toán RSA được thiết kế dựa trên độ khó của bài toán phân tích ra thừa số nguyên tố trên tập số nguyên Z n
Cho số nguyên dương n = p * q, với p, q là 2 số nguyên tố rất lớn (ít nhất
100 ký số) Khi biết n, muốn tìm p, q thì phải giải bài toán phân tích ra thừa số nguyên tố, công việc này đòi hỏi phải thực hiện một số lượng các phép tính vô cùng lớn
Thuật toán RSA dựa trên cơ sở hai bài toán:
+ Bài toán Logarith rời rạc
+ Bài toán phân tích thành thừa số
Sơ đồ chung của hệ mã hóa RSA [2]:
- P là tập hữu hạn các bản rõ (dữ liệu trước khi mã hóa)
- C là tập hữu hạn các bản mã (dữ liệu sau khi mã hóa)
- K là tập hữu hạn các khóa (KE khóa lập mã, KD khóa giải mã)
- E là tập các hàm lập mã
- D là tập các hàm giải mã
Phương pháp lập mã và giải mã cuả hệ RSA
Hình 2.3 Sơ đồ biểu diễn thuật toán RSA
- Tạo ngẫu nhiên 2 số nguyên tố p, q khác nhau và rất lớn (có số ký tự ít nhất là 100), sau đó tính: n = p * q; Ф(n) = (p -1) * (q -1) (2.9)
- Chọn ngẫu nhiên 1 số e sao cho 1 < e < Ф(n), với e là số nguyên tố cùng nhau với Ф(n)
- Tính số nghịch đảo d của e đối với Ф(n): 1 < d < Ф(n), ed =
1(mod Ф(n)) Ở đây d là số mũ bí mật; e là số mũ công khai
- Cặp K U = {e, n} được gọi là khoá công khai
- Cặp K R = {d, n} được gọi là khoá bí mật
Khi bên gửi muốn gửi thông điệp M cho bên nhận với yêu cầu cần bảo mật thông tin Bên gửi yêu cầu Bên nhận gửi khoá công khai K U = {e, n} Bên gửi dùng khoá công khai K U này để mã hoá thông điệp M thành C theo công thức: C = M e mod n, sau đó Bên gửi gửi C cho Bên nhận
Giải mã: Để giải mã bản mã C, Bên nhận dùng khoá bí mật K R = {d, n} để có thể khôi phục lại dữ liệu gốc ban đầu do Bên gửi gửi đến thông qua phép toán M =
C d mod n Đặc trưng của hệ RSA
- Không cần phải thiết lập một kênh bảo vệ phức tạp để truyền khóa như trong hệ mã bí mật
- Cặp khóa công khai được tạo ra theo một phương pháp đặc biệt có quan hệ với nhau và được chọn trong nhiều khóa có thể (trong đó nếu khóa này dùng để mã hóa thi khóa kia dùng để giải mã)
- Ứng với một cặp p, q có thể chọn được nhiều bộ khóa công khai (n; e; d)
- Mọi người trong hệ thống nếu nhận được bản mật C thì cũng không thể biết được bản rõ P Với việc chỉ biết khóa mã hóa k e và căn cứ vào các thông tin về thuật toán thì không thể tìm ra khóa giải mã k d trong thời gian chấp nhận được (kể cả dùng hệ thống hiện đại nhất để tinh toán) Độ an toàn của hệ mã hóa RSA [8]:
- Hệ mã hóa RSA là tất định, tức là với một bản rõ x và một khóa bí mật d, thì chỉ có một bản mã y Tính mật của hệ RSA, chủ yếu dựa vào việc bảo vệ khóa riêng d và giữ bí mật các số nguyên tố p va q
- Độ an toàn của hệ mật RSA phụ thuộc vào khả năng giải bài toán phân tích số nguyên dương n thành tích hai số nguyên tố lớn p và q Để xây dựng hệ RSA an toàn n=p.q phải đủ lớn để không có khả năng phân tích nó về mặt tính toán Để đảm bảo an toàn, nên chọn các số nguyên tố p và q từ 100 chữ số trở lên Thời gian phân tích mã RSA được nêu trong bảng 2.1
Bảng 2.1 Thời gian dự đoán phép tính thuật toán RSA
Số các chữ số trong số được phân tích Thời gian phân tích
Thuật toán RSA sử dụng hai khóa có liên quan với nhau về mặt toán học, cho nên kẻ tấn công nếu biết được khóa công khai cũng chưa chắc có thể tìm được khóa bí mật Tuy nhiên, vẫn có những phương pháp tấn công đối với thuật toán RSA:
- Vét cạn: không gian khóa của RSA là rất lớn vì vậy tấn công theo hướng này là không thể thực hiện được
- Phương pháp phân tích toán học: Phân tích n là một số nguyên lớn thành
2 thừa số nguyên tố p và q Tuy nhiên, việc phân tích một số nguyên lớn ra số nguyên tố là rất khó khăn, với tốc độ của máy tính hiện nay cũng không thể đáp ứng được việc phân tích số nguyên tố lớn trong thời gian đa thức nếu các số p, q được chọn là lớn Thời gian phân tích xem bảng 2.1
- Xác định trực tiếp Ф(n) không thông qua p và q
- Xác định trực tiếp d không thông qua Ф(n) Ứng dụng RSA:
Hàm băm
Hàm băm là một giải thuật nhằm sinh ra các giá trị băm tương ứng với mỗi khối dữ liệu Giá trị băm đóng vai trò gần như một khóa để phân biệt các khối dữ liệu [10]
Hình 2.4 Minh họa hàm băm
- Giá trị đầu vào là dữ liệu có độ dài bất kỳ
- Giá trị đầu ra là dữ liệu có độ dài cố định
2.4.2 Đặc tính của hàm băm
Hàm băm h là hàm một chiều (one - way hash ) với các đặc tính sau:
- Với thông điệp đầu vào x thu được bản băm z = 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 bit 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 hoàn toàn khác nhau thì giá trị hàm băm cũng hoàn toà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 z = h(x), nhưng lại không thể tính suy ngược lại được x nếu chỉ biết giá trị hàm băm h(x)
2.4.3 Một số tính chất cơ bản của hàm băm
- Có thể áp dụng với thông báo đầu vào có độ dài bất kỳ
- Tạo ra giá trị băm y = h(x) có độ dài cố định
- h(x) dễ dàng tính được với bất kỳ giá trị của x
- Tính một chiều: với mọi đầu ra y cho trước không thể tìm được x’ sao cho h(x’) bằng giá trị y cho trước
- Tính chống xung đột yếu: với mọi dữ liệu đầu vào x 1 cho trước không thể tìm được bất kỳ giá trị x 2 nào (x 2 ≠ x 1 ) mà h(x 2 ) = h(x 1 )
- Tính chống xung đột mạnh: không thể tính toán để tìm được 2 dữ liệu đầu vào x 1 và x 2 phân biệt sao cho chúng có cùng giá trị băm (h(x 2 ) = h(x 1 ))
2.4.4 Vai trò của hàm băm
- Bảo vệ tính toàn vẹn và phát hiện xâm nhập thông điệp được gửi qua mạng bằng cách kiểm tra giá trị băm của thông điệp trước và sau khi gửi nhằm phát hiện những thay đổi cho dù là nhỏ nhất
- Được dùng trong quá trình tạo chữ kí số trong giao dịch điện tử
Một số hàm băm thông dụng:
Các hàm băm dụng MD (MD2, MD4, MD5) do Rivest đề xuất Giá trị băm theo các thuật toán này có độ dài cố định là 128 bit
Hàm băm an toàn SHA, SHA1, SHA2 Giá trị băm theo thuật toán này có độ dài cố định là 160 bit.
Chữ ký số
Chữ ký số 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ý
Chữ ký số là một dạng chữ ký điện tử (Electronic Signature) là dạng thông tin đi kèm dữ liệu (văn bản, hình ảnh, video, v.v…) nhằm mục đích xác định người chủ của dữ liệu đó Để sử dụng chữ ký số thì người dùng phải có một cặp khoá gồm khoá công khai (public key) và khoá bí mật (private key) Khoá bí mật dùng để tạo chữ ký số, khoá công khai dùng để thẩm định chữ ký số hay xác thực người tạo ra chữ ký số đó
Chữ ký số có một số tính chất sau:
- Có khả năng kiểm tra chữ ký số và thời gian ký số
- Có khả năng xác thực các nội dung tại thời điểm ký số
- Thành viên thứ 3 có thể kiểm tra chữ ký số để giải quyết các tranh chấp
Dựa vào các tính chất cơ bản này, chữ ký số có các yêu cầu sau:
- Phải là một mẫu bít phụ thuộc vào thông báo được ký số
- Phải sử dụng một thông tin duy nhất của người gửi để ngăn chặn tình trạng làm giả và chối bỏ
- Được tạo ra dễ dàng
- Khó có thể làm giả chữ ký số bằng cách tạo ra một thông báo mới cho một chữ ký số hiện có, hoặc tạo ra một chữ ký số giả mạo cho một thông báo cho trước
2.5.2 Cách tạo chữ ký số
Quá trình sử dụng chữ ký số bao gồm 2 qúa trình: tạo và kiểm tra chữ ký
Chữ ký số được tạo ra bằng cách mã hóa giá trị băm (được tạo ra từ dữ liệu ban đầu bằng cách sử dụng thuật toán băm) với khóa riêng của người gửi
Quá trình kiểm tra chữ ký số gồm các bước: sử dụng thuật toán băm để tạo ra giá trị băm tính được từ dữ liệu nhận được, giải mã chữ ký số với khóa công khai của người gửi để thu được giá trị mong muốn, so sánh giá trị mong muốn và giá trị băm tính được, nếu trùng nhau thì chữ ký số là hợp lệ, người nhận có thể tin cậy vào thông báo nhận được, xác định thông báo không bị làm giả trong quá trình trao đổi và có nguồn gốc từ người gửi
2.5.3 Sơ đồ chữ ký số
Sơ đồ chữ ký là bộ năm (P, A, K, S, V), trong đó:
P là tập hữu hạn các văn bản có thể
A là tập hữu hạn các chữ ký có thể
K là tập hữu hạn các khóa có thể
S là tập các thuật toán ký
V là tập các thuật toán kiểm thử Với mỗi khóa kK, có thuật toán ký Sig k S Sig, k :PA,có thuật toán kiểm tra chữ ký Ver k V Ver P A , k : đúng sai , , thỏa mãn điều kiện sau với mọi xP y, A:Ver x y k ( , )đúngySig x k ( ) [7]
Hình 2.5 Lược đồ tạo và kiểm tra chữ ký số
Người ta thường sử dụng hệ mã hóa khóa công khai để lập sơ đồ chữ ký số Khóa bí mật dùng làm khóa ký, khóa công khai dùng làm khóa kiểm tra chữ ký
2.5.4 Một số chữ ký phổ biến 2.5.4.1 Chữ ký RSA a) Sơ đồ chữ ký [8]
Sơ đồ chữ ký RSA được cho bởi bộ năm
Trong đó P = A = Z n , với n = p.q là tích của hai số nguyên tố lớn p, q K là tập khóa K = (a, n, b), với a, b là hai số thuộc Z * n
- Tạo cặp khóa bí mật, công khai (a, b):
Tính bí mật ( ) n ( p 1).( q 1) (2.2) Chọn khóa công khai b