Tải bản đầy đủ (.doc) (8 trang)

BÀI TẬP LỚN MÔN HỌC MẬT MÃ VÀ AN TOÀN DỮ LIỆU TRÌNH BÀY VẤN ĐỀ XÁC THỰC DỮ LIỆU BẰNG CHỮ KÝ SỐ

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (236.95 KB, 8 trang )

ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG
NGHỆ
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập - Tự do - Hạnh phúc
BÀI TẬP LỚN
MÔN HỌC: MẬT MÃ VÀ AN TOÀN DỮ LIỆU
ĐỀ TÀI:
TRÌNH BÀY VẤN ĐỀ XÁC THỰC DỮ LIỆU BẰNG CHỮ KÝ SỐ
Họ tên: Vũ Cao Nam
Lớp: Cao học K19
Mã học viên: 12025023
Giảng viên hướng dẫn: PGS.TS. Trịnh Nhật Tiến
1
Hà Nội, 2014
Mục lục
Mục lục 2
1.Chữ ký số 3
2.Chữ ký điện tử 3
3.Thực hiện chữ ký số với khóa công khai 3
4.Dịch vụ chứng thực chữ ký số 5
4.1 USB Token & HSM 5
4.1.1 USB token 5
4.1.2 HSM (Hardware Security Module) 5
5.Các ưu điểm của chữ ký số 5
5.1 Khả năng xác định nguồn gốc 5
5.2 Tính toàn vẹn 6
5.3 Tính không thể phủ nhận 6
6.Chương trình demo 6
7.Tham khảo 8
2


1. Chữ ký số
Chữ ký số là một dạng của chữ ký điện tử.
Chữ ký số là thông tin đi kèm dữ liệu nhằm mục đích xác định người chủ của dữ liệu đó. Chữ ký
số tương đương chữ ký tay, có các thuộc tính định danh và xác thực đúng nguồn gốc, đảm bảo
được tính toàn vẹn của dữ liệu nhận được. Chữ ký số dựa trên công nghệ mã khóa công khai có 2
khóa: khóa bí mật dùng để tạo chữ ký số và khóa công khai để xác thực người tạo ra chữ ký số.
Đặc biệt, không thể sử dụng khóa công khai để tìm ra khóa bí mật.
• Khóa riêng (Private-key) Khóa riêng hay được gọi là khóa bí mật (Private-key) là một
khóa thuộc cặp khóa mã hóa không đối xứng, khóa này được tạo ra từ thiết bị tạo khóa
(USB token, HSM, ) do nhà cung cấp dịch vụ chứng thực số cấp, khóa này sẽ được
người dùng mã hóa dữ liệu để tạo ra chữ ký số, khóa bí mật chỉ có duy nhất người dùng
để tạo chữ ký số biết.
• Khóa công khai (public-key) Khóa công khai (public-key) là một khóa thuộc cặp khóa
mã hóa không đối xứng, được tạo ra từ thiết bị tạo khóa (USB token, HSM, ) do nhà
cung cấp dịch vụ chứng thực số cấp. Khóa này sẽ được người ký số tạo rà và công khai
cho người nhận, người nhận dùng khóa này để giải mã chữ ký số và kiểm tra chữ ký số
xem có đúng người cần gửi gửi cho mình không (xác thực chữ ký số).
2. Chữ ký điện tử
Con người đã sử dụng các hợp đồng với chữ ký dưới dạng điện tử từ hơn 100 năm nay
với việc sử dụng mã Morse và điện tín. Tuy nhiên, chỉ với những phát triển của khoa học
kỹ thuật gần đây thì chữ ký điện tử mới đi vào cuộc sống một cách rộng rãi.
Vào thập kỷ 1980, các công ty và một số cá nhân bắt đầu sử dụng máy fax để truyền đi
các tài liệu quan trọng. Mặc dù chữ ký trên các tài liệu này vẫn thể hiện trên giấy, nhưng
quá trình truyền và nhận chúng hoàn toàn dựa trên tín hiệu điện tử và được coi là chữ ký
điện tử.
Hiện nay, theo quan niệm thông dụng trong giao dịch quốc tế, chữ ký điện tử có thể bao
hàm các cam kết gửi bằng email, nhập các số định dạng cá nhân (PIN) vào các máy ATM
(của Vietcombank chẳng hạn) để rút tiền, chấp nhận các điều khoản người dùng (EULA)
khi cài đặt phần mềm máy tính (như phần mềm Office của Microsoft chẳng hạn), ký các
hợp đồng điện tử online,

3. Thực hiện chữ ký số với khóa công khai
Chữ ký số khóa công khai dựa trên nền tảng mật mã hóa khóa công khai. Để có thể trao đổi
thông tin trong môi trường này, mỗi người sử có một cặp khóa: một công khai và một bí mật.
Khóa công khai được công bố rộng rãi còn khóa bí mật phải được người sử dụng giữ kín. Không
thể tìm được khóa bí mật nếu chỉ biết khóa công khai. Việc tạo và xác thực chữ ký số theo nền
tảng mật mã hóa khóa công khai được mô tả trong sơ đồ sau:
3
Sơ đồ tạo và kiểm tra xác thực chữ ký số
Quá trình tạo và kiểm tra chữ ký số sử dụng 3 thuật toán:
- Thuật toán tạo khóa bí mật và công khai.
- Thuật toán tạo chữ ký số bằng khóa bí mật.
- Thuật toán kiểm tra chữ ký số bằng khóa công khai.
Xét ví dụ sau: Giả sử Alice muốn gửi một văn bản cho Bob và muốn Bob biết văn bản đó thực sự
do chính Alice gửi. Khi đó, Alice gửi cho Bob một văn bản điện tử kèm với chữ ký số. Chữ ký
này được tạo ra với khóa bí mật của Alice.
Khi nhận được bản tin, Bob kiểm tra sự thống nhất giữa văn bản và chữ ký bằng thuật toán kiểm
tra sử dụng khóa công khai của Alice. Bản chất của thuật toán tạo chữ ký đảm bảo rằng nếu chỉ
cho trước văn bản, rất khó (gần như không thể) tạo ra được chữ ký số của Alice nếu không biết
khóa bí mật của Alice. Nếu phép thử cho kết quả đúng thì Bob có thể tin tưởng rằng bản tin thực
sự do Alice gửi.
Thông thường, để tránh mất thời gian, Alice không mật mã hóa toàn bộ văn bản bằng khóa bí
mật của mình, mà chỉ thực hiện với mã băm, hay còn gọi là giá trị băm, đại diện và đặc trưng cho
văn bản đó. Điều này khiến việc ký số của Alice trở nên đơn giản hơn và chữ ký số trở nên ngắn
hơn. Xác suất xẩy ra trường hợp 2 văn bản khác nhau lại cho ra cùng một giá trị băm là cực kỳ
thấp.
4
4. Dịch vụ chứng thực chữ ký số
Dịch vụ chứng thực chữ ký số là một loại hình dịch vụ chứng thực chữ ký điện tử do tổ chức
cung cấp dịch vụ chứng thực chữ ký số cấp.
Dịch vụ chứng thực chữ ký số bao gồm :

• Tạo cặp khóa ( khóa công khai và khóa bí mật) cho thuê bao.
• Cấp, gia hạn, tạm dừng, phục hồi chứng thư số của thuê bao.
• Duy trì trực tuyến cơ sở dữ liệu về chứng thư số.
4.1 USB Token & HSM
USB token và HSM là những thiết bị phần cứng dùng để tạo cặp khóa bí mật, công khai và lưu
trữ khóa bí mật, các thiết bị này sẽ được nhà cung cấp dịch vụ chữ ký số giao cho khách hàng để
khách hàng có thể tạo cặp khóa và ký lên dữ liệu cần ký.
Tùy theo mức độ và yêu cầu sử dụng khách hàng có thể lựa chọn sử dụng một trong các loại
phần cứng trên mà nhà cung cấp dịch vụ chữ ký số cung cấp để bạn có thể ký số.
4.1.1 USB token
Đặc điểm của USB token:
• Là thiết bị phần cứng có thể sinh cặp khóa (khóa bí mật và khóa công khai) và lưu giữ
khóa bí mật cũng như chứng thư số của thuê bao.
• Có khả năng lưu trữ lớn, tốc độ xử lý cao (32 bit).
• Thích hợp cho các ứng dụng chính phủ điện tử, e-tax, e- customs, internet banking,
• Thiết bị phù hợp với người dùng cá nhân và các cơ quan sử dụng ký với lưu lượng vừa
phải.
4.1.2 HSM (Hardware Security Module)
• Là thiết bị phần cứng có thể sinh cặp khóa (khóa bí mật và khóa công khai) và bảo vệ
khóa bí mật đó, được giao cho khách hàng để thực hiện ký số.
• Là module bảo mật phần cứng duy nhất đạt chuẩn FIPS140-2 mức 4
• Có khả năng thực hiện 1200 giao dịch trên giây.
• Hỗ trợ khả năng cân bằng tải, tối đa lên tới 16 thiết bị.
• Đã được sử dụng cho các hệ thống chính phủ của Châu Âu.
• Thiết bị phù hợp với các tổ chức, doanh nghiệp cần ký nhiều và nhanh (có thể ký tự
động).
5. Các ưu điểm của chữ ký số
5.1 Khả năng xác định nguồn gốc
Các hệ thống mật mã hóa khóa công khai cho phép mật mã hóa văn bản với khóa bí mật mà chỉ
có người chủ của khóa biết. Để sử dụng chữ ký số thì văn bản cần phải được mã hóa bằng hàm

băm (văn bản được "băm" ra thành chuỗi, thường có độ dài cố định và ngắn hơn văn bản) sau đó
dùng khóa bí mật của người chủ khóa để mã hóa, khi đó ta được chữ ký số. Khi cần kiểm tra, bên
5
nhận giải mã (với khóa công khai) để lấy lại chuỗi gốc (được sinh ra qua hàm băm ban đầu) và
kiểm tra với hàm băm của văn bản nhận được. Nếu 2 giá trị (chuỗi) này khớp nhau thì bên nhận
có thể tin tưởng rằng văn bản xuất phát từ người sở hữu khóa bí mật. Tất nhiên là chúng ta không
thể đảm bảo 100% là văn bản không bị giả mạo vì hệ thống vẫn có thể bị phá vỡ.
Vấn đề nhận thực đặc biệt quan trọng đối với các giao dịch tài chính. Chẳng hạn một chi nhánh
ngân hàng gửi một gói tin về trung tâm dưới dạng (a,b), trong đó a là số tài khoản và b là số tiền
chuyển vào tài khoản đó. Một kẻ lừa đảo có thể gửi một số tiền nào đó để lấy nội dung gói tin và
truyền lại gói tin thu được nhiều lần để thu lợi (tấn công truyền lại gói tin).
5.2 Tính toàn vẹn
Cả hai bên tham gia vào quá trình thông tin đều có thể tin tưởng là văn bản không bị sửa đổi
trong khi truyền vì nếu văn bản bị thay đổi thì hàm băm cũng sẽ thay đổi và lập tức bị phát hiện.
Quá trình mã hóa sẽ ẩn nội dung của gói tin đối với bên thứ 3 nhưng không ngăn cản được việc
thay đổi nội dung của nó. Một ví dụ cho trường hợp này là tấn công đồng hình (homomorphism
attack): tiếp tục ví dụ như ở trên, một kẻ lừa đảo gửi 1.000.000 đồng vào tài khoản của a, chặn
gói tin (a,b) mà chi nhánh gửi về trung tâm rồi gửi gói tin (a,b3) thay thế để lập tức trở thành
triệu phú!Nhưng đó là vấn đề bảo mật của chi nhánh đối với trung tâm ngân hàng không hẳn liên
quan đến tính toàn vẹn của thông tin gửi từ người gửi tới chi nhánh, bởi thông tin đã được băm
và mã hóa để gửi đến đúng đích của nó tức chi nhánh, vấn đề còn lại vấn đề bảo mật của chi
nhánh tới trung tâm của nó
5.3 Tính không thể phủ nhận
Trong giao dịch, một bên có thể từ chối nhận một văn bản nào đó là do mình gửi. Để ngăn ngừa
khả năng này, bên nhận có thể yêu cầu bên gửi phải gửi kèm chữ ký số với văn bản. Khi có tranh
chấp, bên nhận sẽ dùng chữ ký này như một chứng cứ để bên thứ ba giải quyết. Tuy nhiên, khóa
bí mật vẫn có thể bị lộ và tính không thể phủ nhận cũng không thể đạt được hoàn toàn.
6. Chương trình demo
Chương trình demo có một chức năng chính là tạo chữ ký số và xác thực dữ liệu hợp lệ. Chương
trình được viết bởi ngôn ngữ C#. Giao diện của chương trình:

6
Chương trình sử dụng thuật toán SHA1 để tạo ra đại diện tài liệu với độ dài 160 bít và sử dụng
thuật toán RSA để ký lên đại diện của tài liệu.
7
7. Tham khảo
1) />2) />3) />8

×