Thứ Sáu, 19 tháng 5, 2017

[Nhập môn an toàn thông tin] Đề cương ôn tập

I. Lý thuyết
1.Mục đích ý nghĩa của việc bảo vệ thông tin số:

2.Nhiệm vụ của bảo vệ thông tin số: ( Đề K57 lần 2, K55 lần 1,  K52 lần 1)

      Là bảo đảm an toàn thông tin trong máy tính hay thông tin trên đường truyền tin.

3.Mục tiêu bảo vệ thông tin số: 

  • Bảo đảm Tính bí mật (Bảo mật):
    • Thông tin không bị lộ đối với người không được phép.
  • Bảo đảm Tính toàn vẹn (Bảo toàn):
    • Ngăn chặn hay hạn chế việc bổ sung, loại bỏ và sửa dữ liệu không được phép.
  • Bảo đảm Tính xác thực (Chứng thực):
    • 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 ( Xác thực nguồn gốc thông tin).
  • Bảo đảm sẵn sàng: 
    • Thông tin sẵn sàng cho người dùng hợp pháp.
4. Các hướng nghiên cứu về an toàn thông tin:

  • Để bảo vệ thông tin bên trong máy tính hay trên đường truyền tin, phải nghiên cứu về An toàn máy tính và An toàn truyền tin:
    • An toàn máy tính( Computer security): Là sự bảo vệ các thông tin cố định bên trong máy tính( Static Information), là khoa học về bảo đảm an toàn thông tin trong máy tính.
    • An toàn truyền tin ( Communication Security): Là sự bảo vệ thông tin trên đường truyền tin ( Dynamic Information) ( thông tin đang được truyền từ hệ thống này sang hệ thống khác), là khoa học về bảo đảm an toàn thông tin trên đường truyền tin.
  • Để bảo vệ thông tin bên trong máy tính hay đang trên đường truyền tin, phải  nghiên cứu các nội dung chuyên ngành sau:
    • An toàn dữ liệu ( Data security)
    • An toàn cơ sở dữ liệu ( Data base security)
    • An toàn hệ điều hành ( Operation system security)
    • An toàn mạng máy tính ( Network Security).
5. Các phương pháp chính bảo vệ thông tin số:
  • Kiểm soát truy nhập.
  • Mật mã bảo vệ thông tin.
  • Phát hiện và xử lý các "lỗ hổng" trong an toàn thông tin.
  • Phòng tránh các tấn công  của tin tặc, phần mềm độc hại.
  • Xây dựng hành lang an toàn cho thông tin.
  • Phối hợp các phương pháp.
6. Các chức năng nhiệm vụ của  Bảo mật trong hệ thống thông tin số: ( K57_1, K54_1, K53_1)
  • Bảo đảm tính bí mật ( Bảo mật):
    • Thông tin không bị lộ đối với người không được phép
7. Các mức bảo mật dữ liệu:
  • Kiểm soát truy nhập
  • Cho truy nhập thông tin nhưng không biết thông tin ở đâu.
  • Cho truy nhập thông tin nhưng không biết, không hiểu gì
8.Các phương pháp 
  • Mức 1: Mật khẩu, tường lửa
  • Mức 2: Giấu tin
  • Mức 3: Mã hóa
9.  Các chức năng nhiệm vụ của Bảo toàn dữ liệu trong hệ thống thông tin số: (K56_1, K55_2, K54_2)
  • Bảo đảm tính toàn vẹn( Bảo toàn):
    • Ngăn chặn hay hạn chế việc bổ sung, loại bỏ và sửa chữa dữ liệu không được phép.
10. Các mức bảo toàn dữ liệu:
  • Kiểm soát truy nhập
  • Cho truy nhập thông tin nhưng không biết thông tin ở đâu.
  • Cho truy nhập thông tin nhưng không biết, không hiểu gì.
  • Chỉ được đọc thông tin nhưng không được phép chỉnh sửa.
  • Cho phép chỉnh sửa, nhưng chỉnh sửa sẽ biết ngay là thông tin đã bị chỉnh sửa.
11. Các phương pháp thực hiện:
  • Mức 1: Mật khẩu, tường lửa, mạng riêng ảo (VPN)
  • Mức 2: Giấu tin
  • Mức 3: Mã hóa
  • Mức 4: 
  • Mức 5: Chữ ký số.
12. Bài toán về an toàn thông tin trong bỏ phiếu điện tử: (K56_1, k55_1, k55_2, k54_1, k53_1)
  • Bài toán trong giai đoạn đăng ký bỏ phiếu:
    • Bài toán 1: Bảo vệ hồ sơ của cử tri xin Bầu cử
    • Bài toán 2: Bao bầu cử thẩm định hồ sơ của cử tri xin bầu cử
    • Bài toán 3: Ẩn danh lá phiếu: Phòng tránh lá phiếu bị theo dõi.
    • Bài toán 4: Một cử tri đăng ký bỏ phiếu nhiều lần
    • Bài toán 5: Ban bầu cử ký nhiều lá phiếu cho 1 cử tri.
  • Bài toán trong giai đoạn bỏ phiếu:
    • Bài toán 1: Bảo mật nội dung lá phiếu: Phòng tránh lá phiếu bị xem trộm.
    • Bài toán 2: Bảo toàn nội dung lá phiếu: Phòng tránh lá phiếu bị sửa đổi nội dung.
  • Bài toán trong giai đoạn kiểm phiếu:
    • Bài toán 1: Phòng tránh thành viên Ban kiểm phiếu thông gian: Sửa đổi nội dung lá phiếu.
    • Bài toán 2: Phòng tránh cử tri bán lá phiếu cho ứng cử viên.
    • Bài toán 3: Kiểm tra tính hợp lệ của các lá phiếu.
  • Bài toán trong kiểm tra lá phiếu của người xác minh trung thực:
    • Bài toán 1: Kiểm tra tính hợp lệ lá phiếu của Cử tri.
    • Bài toán 2: Kiểm tra tính hợp lệ khóa mã hóa của người xác minh trung thực.
13. Phương pháp giải quyết các bài toán về an toàn thông tin trong Bỏ phiếu điện tử:
  • Bài toán trong giai đoạn đăng ký bỏ phiếu:
    • Bài toán 1: Bảo vệ hồ sơ của cử tri xin Bầu cử
      • Dùng phương pháp mã hóa, chữ ký số,...
    • Bài toán 2: Ban bầu cử thâm định hồ sơ của cử tri xin bầu cử.
      • Dùng phương pháp giải mã, kiểm tra chữ ký số..
    • Bài toán 3: Ẩn danh lá phiếu: Phòng tránh lá phiếu bị theo dõi:
      • Dùng phương pháp ký "Mù"
    • Bài toán 4: Một cử tri đăng ký bỏ phiếu nhiều lần.
      • Dùng " Nhóm" thành viên trong ban đăng ký thẩm định hồ sơ: Khóa giải mã  được chia sẻ.
    • Bài toán 5: Ban bầu cử ký nhiều lá phiếu cho 1 cử tri:
      • Dùng 1 trong những phương pháp sau:
        • PP1: Chia sẻ Khóa ký Mù đơn, mỗi người trong Ban đăng ký giữ một mảnh khóa.
        • PP2: Ký mù nhóm.
        • PP3: Ký mù bội.
  • Bài toán trong giai đoạn bỏ phiếu:
    • Bài toán 1: Bảo mật nội dung lá phiếu: Phòng tránh lá phiếu bị xem trộm
      • Dùng phương pháp mã hóa,...
    • Bài toán 2: Bảo toàn nội dung lá phiếu: Phòng tránh Lá phiếu bị sửa đổi nội dung. Dùng phương pháp Mã hóa, chữ ký số,..
  • Bài toán trong giai đoạn kiểm phiếu:
    • Bài toán 1: Phòng tránh thành viên ban kiểm phiếu thông gian: Sửa đổi nội dung lá phiếu. Dùng 1 trong những phương pháp sau:
      • PP1: Chia sẻ khóa giải mã lá phiếu, mỗi người kiểm phiếu giữ một mảnh khóa.
      • PP2: Cử tri Mã hóa lá phiếu nhiều lần với khóa công khau của ừng thành viên Ban kiểm phiếu. ( Mỗi lần giải mã, có thể trộn các lá phiếu).
      • PP3: Chia sẻ lá phiếu thành nhiều mảnh, mỗi người kiểm phiếu giữ một mảnh.
    • Bài toán 2: Phòng tránh cử tri bán lá phiếu cho ứng cử viên:
      • Dùng người xác minh trung thực mã hóa lá phiếu lần thứ 2. Do đó cử tri không nhận ra lá phiếu của mình.
    • Bài toán 3: Kiểm tra tính hợp lệ của lá phiếu.
      • Kiểm tra định danh, kiểm tra chữ ký của ban đăng ký.
  • Bài toán trong kiểm tra lá phiếu của người xác minh trung thực:
    • Bài toán 1: Kiểm tra tính hợp lệ  lá phiếu cử tri.
      • Dùng phương pháp: "Chứng minh không tiết lộ thông tin"
    • Bài toán 2: Kiểm tra tính hợp lệ khóa mã hóa của người xác minh trung thực:
      • Dùng phương pháp: "Chứng minh không tiết lộ thông tin".
14. Một số bài toán trong dùng tiền điện tử:
  • Giai đoạn 1: Rút tiền từ ngân hàng
    • Bài toán 1: Bảo vệ hồ sơ yêu cầu rút tiền.
    • Bài toán 2: Ngân hàng Thẩm định Hồ sơ Yêu cầu rút tiền.
    • Bài toán 3: Thực hiện ẩn danh đồng tiền.
    • Bài toán 4: Phòng tránh khai man giá trị đồng tiền.
    • Bài toán 5: Bảo vệ đồng tiền trên đường truyền tin.
  • Giai đoạn 2: Thanh toán tiền:
    • Bài toán 1: Bảo vệ đồng tiền trên đường truyền tin.
    • Bài toán 2: Kiểm tra tính hợp pháp của Đồng tiền.
      • Đồng tiền có chữ ký của ngân hàng?
      • Đồng tiền có chữ ký của người chuyển tiền?
    • Bài toán 3: Phòng tránh tiêu một đồng tiền nhiều lần.
  • Giai đoạn 3: Gửi tiền vào ngân hàng:
    • Bài toán 1: Bảo vệ đồng tiền trên đường truyên tin
    • Bài toán 2: Kiêm tra tính hợp pháp của đồng tiền.
      • Đồng tiền có chữ ký của Ngân hàng?
      • Đồng tiền đã tiêu lần nào chưa?
15. Giải quyết một số bài toán đặc trưng trong dùng tiền điện tử:
  • Vấn đề ẩn danh người sử dụng đồng tiền:
    • Thực hiện ký mù trên đồng tiền:
      • Người rút tiền làm "mù" đồng tiền, gửi về ngân hàng.
      • Ngân hàng ký "mù" vào đồng tiền, gửi về người rút tiền.
      • Người rút tiền xóa mù đồng tiền, sẽ nhận được đồng tiền thực có chữ ký của ngân hàng.
  • Phòng tránh gian lận giá trị đồng tiền:
    • Phương pháp thứ nhất: Ngân hàng dùng một bộ khóa ( khóa ký, khóa kiểm tra chữ ký) khác nhau cho mỗi loại tiền. Nếu có k giá trị đồng tiền thì ngân hàng phải có k bộ khóa khác nhau.
    • Phương pháp thứ hai:
      • Để rút từ ngân hàng đồng tiền giá trị T, thì người rút tiền cần tạo k đồng tiền C1, C2, C3, ..., Ck cùng giá trị T. Chúng đều được gắn định danh, khác nhau duy nhất giữa chúng là số sê-ri. Người rút tiền làm mù những đồng tiền này và gửi cho ngân hàng.
      • Ngân hàng yêu cầu người rút tiền cung cấp thông tin để khử "mù" k-1 đồng tiền bất kỳ. Ngân hàng khử "mù" và kiểm tra chúng. Nếu tất cả đều hợp lệ, ngân hàng ký "mù" lên đồng tiền còn lại Ci  và gửi cho ông A.
  • Phòng tránh tiêu xài một đồng tiền hai lần:
    • Phương pháp như sau: Ông B gửi đồng tiền vào ngân hàng.
      • Ông A thanh toán ( chuyển tiền) cho ông B.
      • Ông B gửi lịch sử thanh toán đến ngân hàng ( Than toán của ông A cho ông B).
      • Ngân hàng kiểm tra chữ ký số của ngân hàng.
      • Ngân hàng kiểm tra đồng tiền này không bị tiêu xài trước đó.
      • Ngân hàng nhập vào cơ sở dữ liệu những đồng tiền đã tiêu xài, ghi lại định danh( số  series) của đồng tiền. Điều này giúp phát hiện những kẻ tiêu xài một đồng tiền hai lần.
      • Ngân hàng ghi đồng tiền vào tài khoản của ông B.
II. Bài tập
1. Sơ đồ chữ ký Elgaman

2. Độ an toàn của chữ ký Elgaman:

Bài toán căn bản bảo đảm độ an toàn của Sơ đồ chữ ký Elgamal:
  Bài toán tính Logarit rời rạc:
Biết khóa công khai h ta sẽ tính được a nếu biết p bằng tính logarit.

3. Ví dụ chữ ký Elgamal:

4.  Sự khác biệt giữa chữ ký RSA và Elgamal:


  •   Khác nhau về độ an toàn:
    • Với RSA chọn q,p tính tích p*q = n sao cho tách n ra p và q  là bài toán khó.
    • Với Elgamal: Chọn p sao cho việc tính logarit rời rạc là bài toán khó.
  • Chữ ký số RSA là chữ ký tất định, chữ ký Elgamal là chữ ký không tất định ( xác suất) vì:
    • Chìa khóa của RSA tất định là a.
    • Chìa khóa của Elgamal là 2 khóa, khóa tất định là a và r là không tất định.
  • Chữ ký số RSA chỉ có một giá trị, chữ ký Elgaman là chữ ký với cặp 2 giá trị gama và sích ma.
5. Viết code Elgamal:




Thứ Hai, 15 tháng 5, 2017

[Java] Eclipse bắt chạy run configure do thiếu args[] trong hàm main

Một lý do mà eclipse bắt người dùng phải chạy run bằng run configure bởi vì chúng không tìm thấy hàm main bên trong project. Mà lý do chính là thiếu tham số mảng args[]. args là viết tắt của arguments là tham số truyền vào. args[] là mảng kiểu String dùng để lưu các tham số dòng lệnh truyền từ ngoài vào chương trình. Nếu thiếu mảng này thì khi thực thi chương trình sẽ không thể hoạt động được. Đặc biệt là chương trình có giao diện là các IDE.
Nếu mắc lỗi này chỉ cần thêm đầy đủ args[] vào trong hàm main là chương trình sẽ hoạt động như bình thường các bạn nhé. 👍👍👍😊😊