chương 1: Giới thiệu về công tác quản lý của nhà trường đối với giáo viên và học sinh, trang web của nhà trường và nhu cầu quan trọng của vấn đề nhận dạng đối tác trong các giao dịch trực tuyến thông qua trang web quản lý của nhà trường. 7 CHƯƠNG 2: GIỚI THIỆU MỘT SỐ CÔNG NGHỆ SỬ DỤNG CHO HỆ THỐNG THÔNG TIN AN TOÀN 2.Tổng quan về hệ thống thông tin an toàn 2.1 Yêu cầu cho một hệ thống thông tin an toàn trong môi trường “mở” Các giao dịch điện tử nói chung là giao dịch trong môi trường mở, giao dịch trên Internet, giao dịch xuyên quốc gia. Trong quá trình trao đổi thông tin đó các đối tác thường là không “mặt đối mặt” để có thể nhận diện ra nhau. Vì thế rất khó để có thể thực hiện được những yêu cầu sau đây của việc trao đổi thông tin được xem là nguyên lý cơ bản của vấn đề bảo mật thông tin: 1.
Tính bí mật/ riêng tư. Tính toàn vẹn của thông tin. Tính không thể chối bỏ. Tính nhận dạng đối tác.
Thêm vào đó, tốc độ thực hiện truyền tin (nhanh chóng) cũng là một yêu cầu cần chú ý. Ta sẽ lần lượt xét qua các yêu cầu đã kể trên. Nguyên lý 1: Nguyên lý bí mật/ riêng tư (Confidentiality/ Privacy) Gỉa sử A gửi một “vật mang tin” đến cho B. Nguyên lý đầu tiên của lý thuyết bảo mật là phải đảm bảo bí mật và tính riêng tư cho quá trình truyền tin.
Điều này có nghĩa là việc truyền tin phải đảm bảo rằng chỉ có hai đối tác A và B khi tiếp cận vật mang tin mới nắm bắt được nội dung thông tin được truyền. Trong quá trình truyền tin, nếu có kẻ thứ ba C (vì một nguyên nhân nào đó ) có thể tiếp cận được vật mang tin thì phải đảm bảo rằng kẻ đó vẫn không thể nắm bắt được, không thể hiểu được nội dung “thực sự” của thông tin chứa trong vật mang tin đó.2 Nguyên lý 2: Nguyên lý toàn vẹn (Integrity) Trong quá trình truyền tin, có thể vì lý do khách quan của môi trường, nhất là sự xâm nhập phá hoại của kẻ thứ ba, nội dung của thông tin ban đầu chứa trong vật mang tin có thể bị mất mát hay bị thay đổi. Nguyên lý này không yêu cầu đến mức phải đảm bảo rằng thông tin không bị thay đổi trong quá trình truyền tin, nhưng phải đảm bảo được là mỗi khi thông tin bị thay đổi thì người nhận (và tất nhiên là cả 8 người gửi ) đều phát hiện được. Chẳng hạn vật mang tin của A gửi cho B trên đường truyền tạm thời lọt vào tay người thứ ba C.
C tuy không hiểu được nội dung thông tin (do quá trình truyền tin đã thực hiên nguyên lý 1) nhưng vẫn có thể tác động vào vật mang tin (đã bị thay đổi) B lập tức nhận biết rằng nó đã bị làm thay đổi.Nguyên lý 3: Nguyên lý chống chối bỏ (Non Repudition) Nguyên lý này đòi hỏi rằng khi quá trình truyền tin kết thúc, A đã gửi cho B một thông tin và B đã nhận thông tin thì A không thể chối bỏ rằng thông tin đó không do mình gửi (hoặc mình không gửi tin) mặt khác B cũng không thể chối bỏ rằng mình chưa nhận được. Cũng trong ví dụ về việc đặt tiệc nói trên, nếu A đã đặt tiệc nhưng không đến ăn thì không thể chối là tin đặt tiệc không do mình gửi, ngược lại khi khách khứa đến mà B quên chuẩn bị thì B cũng không thể chối bỏ là do mình chưa nhận được đơn đặt hàng của A.4 Nguyên lý 4: Nguyên lý nhận dạng (Identification) Giả sử một hệ thống tài nguyên thông tin chung có nhiều người sử dụng (user) với mức độ quyền hạn khác nhau. Nguyên lý 5 của bảo mật thông tin yêu cầu phải có biện pháp để hệ thống có thể nhận dạng được các người sử dụng với quyền hạn kèm theo của họ. Chẳng hạn trong một thư viện có nhiều kho sách chứa các loại tài liệu thông thường là tài liệu mật.
Người đọc chia là nhiều loại, có loại chỉ được đọc sách thông thường tại chỗ, có loại được đọc tài liệu mật, có loại lại được mượn về nhà. Người vào thư viện phải xuất trình thẻ, có các loại thẻ khác nhau: Căn cứ vào thẻ, người thủ thư nhận dạng được ra người đó có phải là người có quyền sử dụng thư viện không và có quyền sử dụng theo dạng nào. Trong vấn đề bảo mật còn có một điều cần lưu ý: “đó là sự tin tưởng”. Khi chia sẻ bí mật cho một người, bạn phải tin vào khả năng bảo vệ bí mật của người đó.
Nhưng có một điều khó khăn ở đây là: “tin tưởng” là một phạm trù có tính tâm lý, xã hội không có các đặc trưng của một loại quan hệ toán học nào: - Tính không phản xạ: Một người có luôn luôn tin tưởng vào chính mình không? (Điều này chưa chắc chắn đối với tất cả mọi người và trong tất cả mọi trường hợp!) 9 - Tính không đối xứng: A tin tưởng vào B nhưng liệu B tin tưởng A không? (chưa chắc!) - Tính không bắc cầu: A tin tưởng B, B tin tưởng C, nhưng không có gì đảm bảo (trong rất nhiều trường hợp ) là A tin tưởng vào C. Chính vì vậy, trong các vấn đề bảo mật nhiều khi chúng ta không thể hoàn toàn dùng các phương pháp suy luận Logic thông thường mà phải chú ý đến việc tuân thủ các nguyên lý bảo mật thông tin. Đại cương về Mật mã học 2. Khái niệm chung –Cryptography.
Người ta gọi mật mã học là một khoa học nghiên cứu nghệ thuật nhằm che dấu thông tin, bằng cách mã hoá (encryption) tức là biến đổi ‘‘Thông tin gốc ’’ dạng tường minh (plaintext) thành ‘‘thông tin mã hóa’’ dạng ẩn tàng (cipher text) bằng cách sử dụng một khóa mã (thuật toán mã hóa) nào đó. Chỉ có những người giữ chìa khóa (key) bí mật thì mới có thể giải mã (decryption) thông tin dạng ẩn tàng trở thành dạng thông tin có dạng tường minh ab #. ab cd Encryption ^$ Decryption cd plaintext Ciphertext plaintext Key Key Hình 2.1 : Sơ đồ mã hóa và giải mã Thông tin ẩn tàng đôi khi vẫn bị khám phá mà không cần biết khóa bí mật : Việc đó gọi là bẻ khóa. Ngành học nghiên cứu về việc bẻ khóa (attack/ crack/ hack) này còn gọi là Cryptanalysis.
Như đã nói ở ví dụ trên, trong các phương pháp tấn công thám mã ta gọi là tấn công bạo lực – brute-force attack (exhaustive key search) : là phương pháp tấn công bằng cách thử tất cả những khả năng chìa khóa có thể có. Đây là phương pháp tấn công thô sơ nhất và cũng khó khăn nhất. Theo lý thuyết , tất cả các thuật toán hiện đại đều có thể đánh bại bởi tấn công bạo lực nhưng trong 10 thực tiễn việc này chỉ có thể thực hiện được trong thời gian rất dài nên thực tế là không khả thi. Vì thế có thể coi một thuật toán là an toàn nếu như không còn cách nào khác để tấn công nó ngoài cách sử dụng brute-force attack.
Để chống lại tấn công này, chìa khóa bí mật được thay đổi một cách thường xuyên hơn. Trong lý thuyết mật mã, người ta nghiên cứu đồng thời các thuật toán lập mã và vấn đề thám mã được dùng để đánh giá mức độ an toàn và khả năng bảo mật thông tin của mỗi thuật toán mã hóa. - Trong phần sau đây chúng ta không nói đến các phương pháp mã hóa cổ điển – trong đó văn bản gốc và văn bản mã hóa có thể sử dụng nhiều loại ký tự thông thường (chữ viết, con số, dấu hiệu riêng v.) mà chỉ quan tâm đến mã hóa hiện đại, trong đó các thông điệp gốc và thông điệp mã hóa đều là những chuỗi ký tự dạng {0, 1}.21] Người ta phân biệt hai loại thuật toán mã hóa khác nhau : 2.2 Mã hóa khóa đối xứng 2.1 Khái niệm Mã hoá khóa đối xứng (hay còn gọi là mã hóa khóa đồng bộ ) là một thuật toán mà trong đó cả hai quá trình mã hóa và giải mã đều dùng một khóa. Để đảm bảo tính an toàn, khóa này phải được giữ bí mật riêng cho 2 đối tác .Vì thế các thuật toán mã hóa khóa đồng bộ này còn có tên gọi khác là mã hóa với khóa bí mật (Secret key cryptograph).
Một điều cần lưu ý là khi một người mã hóa một thông điệp gốc (plaintext) thành thông điệp mã hóa bằng một khóa K, nghĩa là trước đó hai đối tác đã phải trao đổi cho nhau chia sẻ để cùng biết được khóa K. Trong ví dụ về gậy mã hóa của người Sparte, các đối tác phải bàn giao cho nhau để sở hữu những cây gậy giống nhau trước khi trao đổi thông điệp. Trong mật mã vòng của Caesar muốn cho tướng lĩnh dưới quyền đọc được thư đã mã hóa của mình thì trước khi ra đi các tướng lĩnh phải được Hoàng Đế triệu tập vào phòng kín để báo cho biết số bước xoay vòng và tất nhiên điều này (chìa khóa) phải được giữ kín. Giả sử nếu An chỉ gửi thông điệp đã mã hóa cho Bình mà không hề báo trước về thuật toán mã hóa đã sử dụng, Bình sẽ chẳng hiểu trong thông điệp của An muốn 11 nói gì.
Vì thế bắt buộc An phải thông báo cho Bình về chìa khóa và thuật toán sử dụng tại một thời điểm nào trước đấy. KA-B KA-B Thông điệp gốc Thông điệp mã hóa Thông điệp gốc Thuật toán Thuật toán Mã hóa KA-B (m) Giải mã Tin nhắn, m m=KA-B (m)( KA-B (m)) Hình 2.2: Thuật toán mã hóa đối xứng Bình và An có cùng một khóa KA-B. Gỉa sử m là thông điệp gốc, khóa này được xây dựng sao cho: m=KA-B [( KA-B (m)]: Dùng KA-B vừa để mã hóa vừa để giải mã.2 Phân loại mã hóa khóa đối xứng a. Thuật toán mã hóa theo khối (Block cipher): Trong đó từng khối dữ liệu trong văn bản gốc ban đầu được thay thế bằng một khối dữ liệu khác có cùng độ dài.
Độ dài mỗi khối gọi là kích thước khối (Block size), thường được tính bằng đơn vị bit. Ví dụ thuật toán 3-Way có kích thước khối bằng 96 bit. Một số thuật toán khối thông dụng là: DES, 3DES, RC5, RC6, 3-Way, CAST, Camelia, Blowfish, MARS, Serpent, Twofish, GOST… b. Thuật toán mã dòng (Stream ciphers): Trong đó dữ liệu đầu vào được mã hóa từng bit một.
Các thuật toán dòng có tốc độ nhanh hơn các thuật toán khối, được dùng khi khối lượng dữ liệu cần mã hóa chưa được biết trước, ví dụ trong kết nối không dây. Có thể coi thuật toán dòng là thuật toán khối với kích thước mỗi khối là 1 bit.