Bài tiểu luận: An toàn bảo mật thông tin IPSEC (IP SECURITY PROTOCOL) - Pdf 13

Bài tiểu luận: An toàn bảo mật thông tin
IPSEC (IP SECURITY PROTOCOL)
Như chúng ta biết, để các máy tính trên hệ thống mạng LAN/WAN hay Internet truyền thông với
nhau, chúng phải sử dụng cùng một giao thức (giống như ngôn ngữ giao tiếp trong thế giới con
người) và giao thức phổ biến hiện nay là TCP/IP.
Khi truyền các gói tin, chúng ta cần phải áp dụng các cơ
chế mã hóa và chứng thực để bảo mật. Có nhiều giải
pháp để thực hiện việc này, trong đó cơ chế mã hóa
IPSEC hoạt động trên giao thức TCP/IP tỏ ra hiệu quả
và tiết kiệm chi phí trong quá trình triển khai.
Trong quá trình chứng thực hay mã hóa dữ liệu, IPSEC
có thể sử dụng một hoặc cả hai giao thức bảo mật sau:
- AH (Authentication Header): header của gói tin được
mã hóa và bảo vệ phòng chống các trường hợp "ip spoofing" hay "man in the midle attack", tuy
nhiên trong trường hợp này phần nội dung thông tin chính không được bảo vệ
- ESP (Encapsulating Security Payload): Nội dung thông tin được mã hóa, ngăn chặn các trường
hợp hacker đặt chương trình nghe lén và chặn bắt dữ liệu trong quá trình truyền. Phương thức
này rất hay được áp dụng, nhưng nếu muốn bảo vệ luôn cả phần header của gói tin thì phải kết
hợp cả 2 giao thức AH và ESP.
Mục đích của IPSEC:
Được dùng để bảo mật dữ liệu cho các chuyển giao thông tin qua Mạng. Admin có thể xác lập
một hoặc nhiều chuỗi các Rules, gọilà IPSEC Policy, những rules này chứa các Filters, có trách
nhiệm xác định những loại thông tin lưu chuyển nào yêu cầu được mã hóa (Encryption), xác
nhận (digital signing), hoặc cả hai. Sau đó, mỗi Packet, được Computer gửi đi, sẽ được xem xét
có hay không gặp các điều kiện của chính sách. Nếu gặp những điều kiện này, thì các Packet có
thể được mã hóa, được xác nhận số, theo những quy định từ Policy. Quy trình này hòa toàn vô
hình với User và Application kích hoạt truyền thông tin trên Mạng.
Do IPSEC được chứa bên trong mỗi gói IP chuẩn, cho nên có thể dùng IPSEC qua Network, mà
không yêu cầu những cấu hình đặc biệt trên thiết bị hoặc giữa 2 Computer.
Tuy nhiên, IPSEC không tiến hành mã hóa một vài loại giao tiếp Mạng như: Broadcast,
MultiCast, các packet dùng giao thức xác thực Kerberos.

liệu quan trọng của tổ chức: tình hình tài chính, danh sách nhân sự, chiến lược phát triển). IPSEC
policy sẽ bảo vệ dữ liệu của tổ chức chống lại các cuộc tấn công từ bên ngoài, và đảm bảo tính
tích hợp thông tin, cũng như an toàn cho Client.
IPSEC làm việc thế nào ?
Có thể cấu hình IPSEC thông qua Local policy, hoặc triển khai trên diện rộng thì dùng Active
Directory Group Policy (GPO.)
1. Giả sử chúng ta có 2 Computer : Computer A và Computer B, IPSEC policy đã được cấu hình
trên 2 computer này. Sau khi được cấu hình IPSEC policy sẽ báo cho IPSEC driver cách làm thế
nào để vận hành và xác định các liên kết bảo mật giữa 2 computer khi nối kết được thiết lập.
Các liên kết bảo mật ảnh hưởng đến những giao thức mã hóa sẽ được sử dụng cho những loại
thông tin giao tiếp nào và những phương thức xác thực nào sẽ được đem ra thương lượng.
2. Liên kết bảo mật mang tính chất thương lượng. Internet Key Exchange – IKE, sẽ có trách
nhiệm thương lượng để tạo liên kết bảo mật. IKE kết hợp từ 2 giao thức: Internet Security
Association and Key Management Protocol (ISAKMP) và Oakley Key Determination Protocol.
Nếu Computer A yêu cầu xác thực thông qua Certificate và Computer B yêu cầu dùng giao thức
Sinh viên thực hiện: Phùng Thế Bốn
Lớp : TK6LC1
Bài tiểu luận: An toàn bảo mật thông tin
Kerberos, thì IKE sẽ không thể thiết lập liên kết bảo mật giữa 2 Computer. Nếu dùng Network
Monitor để theo dõi IPSEC hoạt động, sẽ không thấy được bất cứ AH hoặc ESP packet nào, vì
giao tiếp IPSEC chưa được thiết lập, có lẽ chúng ta chỉ quan sát được các ISAKMP packets.
3. Nếu như liên kết ảo mật được thiết lập giửa 2 computer IPSEC driver sẽ quan sát tất cả IP
traffic, so sánh các traffic đã được định nghĩa trong các Filter, nếu có hướng đi tiếp các traffic
này sẽ được mã hóa hoặc xác nhận số.
CHÍNH SÁCH BẢO MẬT IPSEC:
IPSEC security policy bao gồm một hoặc nhiều Rule xác định cách thức hoạt động IPSEC. Các
Administrator có thể có thể cài đặt IPSEC thông qua một policy. Mỗi Policy có thể chứa một
hoặc nhiều Rule, nhưng chỉ có thể xác định một Policy hoạt động tại Computer tại một thời điểm
bất kì. Các Administrator phải kết hợp tất cả những Rule mong muốn vào một single policy. Mỗi
Rule bao gồm:

bảo mật cho Mạng, vì có một số cách thức tấn công phổ biến nhắm vào những điểm yếu của
ICMP.), Yêu cầu ESP cho tất cả IP traffic.
- Secure Server (require security): Bắt buộc dùng IPSEC cho giao tiếp
Mạng. Có thể dùng chính sách này cho cả Server, Workstation. Nếu chính sách được xác lập,
không cho phép giao tiếp không bảo mật. chính sách có 3 Rules: 2 chính sách đầu tươn tự như
trên là Default Respond rule và Permit ICMP, và chính sách thứ 3 quy định: Tất cả các giao tiếp
(trừ ICMP) phải được mã hóa với ESP, ngược lại Server sẽ không giao tiếp.
1. Giao thức Ipsec
Ipsec có 3 tầng giao thức chính
- Internet Key Exchange ( IKE ) : Giúp cho các thiết bị tham gia VPN trao đổi với nhau
về thông tin an ninh như mã hóa thế nào ? Mã hóa bằng thuật toán gì ? Bao lâu mã hóa 1
lần . IKE có tác dụng tự động thỏa thuận các chính sách an ninh giữa các thiết bị tham gia
VPN . Do đó IKE giúp cho Ipsec có thể áp dụng cho các hệ thống mạng mô hình lớn .
Trong quá trình trao đổi key IKE dùng thuật toán mã hóa đối xứng (symmetrical
encrytion) để bảo vệ việc trao đổi key giữa các thiết bị tham gia VPN .
- Encapsulation Security Payload (ESP) : Có tác dụng xác thực ( authentication ) , mã hóa
( encrytion ) và đảm bảo tính trọn vẹn dữ liệu ( securing of data ) . Đây là giao thức được
dùng phổ biến trong việc thiết lập IPSec .
- Authentication Header ( AH ) : Có tác dụng xác thực , AH thì thường ít được sử dụng vì
nó đã có trong giao thức ESP
2. Ipsec có 2 dạng là :
- Transports mode : Dữ liệu (Layer4 Payload) được mã hóa sẽ nằm trong ESP header và
ESP sẽ chèn vào giữa Layer 2 header và layer 3 header
- Tunnel mode : Dữ liệu sẽ được mã hóa và đóng gói thành 1 IP Header mới với source
và des IP mới .
IPSec có những phương pháp mã hóa như DES (Data Encrution Standard) , 3DES , AES
(Advance Encrytion Standar)
IPSec có những phương pháp xác thực như HMAC , MD5 , SHA-1
3. Trước khi trao đổi key để thiết lập 1 kênh truyền ảo (VPN-Ipsec) IPSEC sẽ làm nhiệm
vụ là xác thực xem mình đang trao đổi với ai ?

User (Authentication User ) . Giao thức được gọi trong quá trình này là Xauth (Extended
Authentication)
- IKE Phases 2 (Bắt buộc phải xảy ra )
Sau khi trải qua Phase 1& 1.5 lúc này giữa các thiết bị đã có đầy đủ các thông tin về nhau
như chính sách mã hóa , xác thực ( SA ) và key .
Và nhờ IKE thì giữa các thiết bị đã xây dựng được 1 kênh truyền ảo an ninh .
Đến đây giữa các thiết bị lại tiếp tục trao đổi cho nhau 1 SA khác ( mọi người chú ý khúc
này ) .
Cái SA được trao đổi lúc này là chính sách của giao thức Ipsec (chính sách an ninh đóng
gói dự liệu ) nó khác với SA của giao thức IKE ( làm thế nào để xây dựng 1 kênh an
toàn ) .
Cái SA của Ipsec này nó sẽ trao đổi với nhau việc mã hóa đóng gói dự liệu theo ESP hay
AH , nó hoạt động theo dạng tunel mode hay transports mode , thời gian mã hóa là bao
lâu ? .
Đây là mã hóa dự liệu chứ không còn là mã hóa trao đổi khóa (key) như diễn ra trong quá
trình IKE .
Sinh viên thực hiện: Phùng Thế Bốn
Lớp : TK6LC1
Bài tiểu luận: An toàn bảo mật thông tin
Đến lúc này nếu muốn trao đổi với ai thì nó sẽ trao đổi SA IPSec với người đó và dữ liệu
được gửi trên đường truyền được mã hóa dựa vào SA Ipsec này
6 .Các chức năng khác của IKE giúp cho IKE hoạt động tối ưu hơn bao gồm :
- Dead peer detection ( DPD ) and Cisco IOS keepalives là những chức năng bộ đếm thời
gian . Nghĩa là sau khi 2 thiết bị đã tạo được VPN IPsec với nhau rồi thì nó sẽ thường
xuyên gửi cho nhau gói keepalives để kiểm tra tình trạng của đối tác . Mục đích chính để
phát hiện hỏng hóc của các thiết bị . Thông thường các gói keepalives sẽ gửi mỗi 10s
- Hỗ trợ chức năng NAT-Traversal : Chức năng này có ý nghĩa là nếu trên đường truyền
từ A tới B nếu có những thiết bị NAT or PAT đứng giữa thì lúc này IPSec nếu hoạt động
ở chế độ tunel mode và enable chức năng NAT- Trasersal sẽ vẫn chuyển gói tin đi được
bình thường .

Phần 2 Cơ chế hoạt động của 2 protocol ESP và AH
Bộ giao thức Ipsec thì ngoài IKE còn có ESP và AH là 2 giao thức chính trong việc mã
hóa&xác thực dữ liệu .
1. Khái quát
ESP sử dụng IP protocol number là 50 (ESP được đóng gói bởi giao thức IP và trường
protocol trong IP là 50 )
AH sử dụng IP protocol number là 51 (AH được đóng gói bởi giao thức IP và trường
protocol trong IP là 51 )
Bộ giao thức Ipsec hoạt động trên 2 mode chính là Tunel Mode và Transport Mode
- Tunel Mode
Khi bộ giao thức Ipsec hoạt động ở mode này thì sau khi đóng gói dữ liệu và giao thức
ESP mã hóa toàn bộ payload , frame header , ip header thì nó sẽ thêm 1 IP header mới và
gói packet trước khi forward đi .
- Transports Mode
Khi bộ giao thức Ipsec hoạt động ở mode này thì IP header vẫn được giữ nguyên và lúc
này giao thức ESP sẽ chèn vào giữa payload và IP header của gói tin .
Giao thức này rất hay được sử dụng khi những người quản trị mạng có tạo thêm 1 tunnel
GRE (Generic Routing Encapsulation) . Còn tunnel GRE là gì tôi sẽ giải thích trong một
TUT khác .
Tất cả gói tin được mã hóa bởi Ipsec đều là khóa đối xứng (symetric key)
2. Tổng quan ESP và AH Header
Đây là hình minh họa việc đóng gói dự liệu bằng 2 protocol Esp và AH .
Trên cùng là gói dữ liệu nguyên thủy bao gồm Data và Ip Header .
- Nếu sử dụng giao thức ESP :
Thì giao thức ESP sẽ làm công việc là mã hóa ( encryption ) , xác thực ( authentication ) ,
bảo đảm tính trọn vẹn của dữ liệu ( Securing of data ) . Sau khi đóng gói xong bằng ESP
mọi thông tin về mã hóa và giải mã sẽ nằm trong ESP Header .
Các thuật toán mã hóa bao gồm DES , 3DES , AES
Các thuật toán để xác thực bao gồm MD5 hoặc SHA-1
ESP còn cung cấp tính năng anti-relay để bảo vệ các gói tin bị ghi đè lên nó.

Esp là giao thức hỗ trợ cả xác thực và mã hóa .
Phía trên là gói dự liệu ban đầu và ESP sẽ dùng 1 cái key để mã hóa toàn bộ dữ liệu ban
đầu . Và trường hợp trên là Ipsec đang chạy ở chế độ Tunel mode nên ngoài ESP header
ra nó sẽ sinh ra 1 Ip Header mới không bị mã hóa để có thể truyền đi trong mạng
Internet .
Như vậy trong phần này mình đã giới thiệu với các bạn về cơ chế hoạt động của 2
protocol ESP và AH .
Các bạn lưu ý quá trình xác thực và mã hóa của ESP và AH chỉ diễn ra sau khi quá trình
IKE hòan thành.
Ở phần này mình không muốn đi sâu vào phân tích các thuật toán mã hóa
Cấu hình cho mã hóa dữ liệu:
- Sau đây bạn sẽ cấu hình Cisco IOS IPSec bằng cách sử dụng chính sách bảo mật IPSec (IPSec
Security Policy) để định nghĩa các các chính sách bảo mật IPSec (transform set).
- Chính sách bảo mật IPSec (transform set) là sự kết hợp các cấu hình IPSec transform riêng rẽ
được định nghĩa và thiết kế cho các chính sách bảo mật lưu thông trên mạng. Trong suốt quá
trình trao đổi ISAKMP IPSec SA nếu xảy ra lỗi trong quá trình IKE Phase 2 quick mode, thì hai
bên sẽ sử dụng transform set riêng cho việc bảo vệ dữ liệu riêng của mình trên đường truyền.
Transform set là sự kết hợp của các nhân tố sau:
Sinh viên thực hiện: Phùng Thế Bốn
Lớp : TK6LC1
Bài tiểu luận: An toàn bảo mật thông tin
• Cơ chế cho việc chứng thực: chính sách AH
• Cơ chế cho việc mã hóa: chính sách ESP
• Chế độ IPSec (phương tiện truyền thông cùng với đường hầm bảo mật)
- Transform set bằng với việc kết hợp các AH transform, ESP transform và chế độ IPSec (hoặc
cơ chế đường hầm bảo mật hoặc chế độ phương tiện truyền thông). Transform set giới hạn từ
một cho tới hai ESP transform và một AH transform. Định nghĩa Transform set bằng câu lệnh
cryto ipsec transform-set ở chế độ gobal mode. Và để xoá các cài đặt transform set dùng lệnh
dạng no.
- Cú pháp của lệnh và các tham số truyền vào như sau:

Sinh viên thực hiện: Phùng Thế Bốn
Lớp : TK6LC1
Bài tiểu luận: An toàn bảo mật thông tin
thấy, nó sẽ được chọn và áp dụng cho việc bảo vệ đường truyền như là một phần của IPSec SA
của cả hai phía. IPSec ở mỗi bên sẽ chấp nhận một transform duy nhất được chọn cho mỗi SA.
PGP viết tắt cho Pretty Good Privacy là 1 chương trình mã hóa tài liệu với chìa khóa công cộng
(public key). Chương trình này rất nổi tiếng và được sử dụng rộng rãi trên thế giới.
PGP được dùng trong các lãnh vực sau :
- Mã hóa tài liệu: PGP dùng thuật toán mã hóa rất hữu hiệu IDEA. Một tài liệu được mã hóa với
PGP thì chỉ được cải mã bởi người có chìa khóa mật (secret key).
- Tạo 1 cặp khóa RSA (khóa công cộng và khóa mật): RSA cũng là 1 thuật toán mã hóa rất tác
dụng. Cặp khóa công cộng/mật được dùng để mã hóa/cải mã những tài liệu.
- Quản lý khóa: PGP dùng để tạo khóa và quản lý 1 CSDL chứa đựng chìa khóa công cộng của
những người khác.
Mục đích khi sử dụng PGP
- Bí mật cá nhân : Bảo đảm rằng những tài liệu cá nhân được bảo mật
- Tính nguyên thủy của tài liệu : Bảo đảm rằng tài liệu sau khi được gởi đi không bị biến đổi bởi
người thứ ba.
- PGP là miển phí và hầu như được xử dụng trên mọi hệ điều hành, mọi nơi, mọi lúc và mọi
người.
Cách gắn PGP.DESKTOP.SECURiTY.v7.0
1. Cài đặt
Chạy Setup.exe. Sau khi extract, nó chạy Installer. Click Next, Yes, Next.
Nếu bạn chưa gắn PGP lần nào thì bạn phải click vào No, I'm a New User
Sau đó bạn chọn nơi nào trong ổ cứng để gắn chương trình này.
Chương trình sẽ tự xét xem bạn có gắn những chương trình nào mà ủng hộ PGP không và sẽ cho
bạn tự chọn những Components. Nếu không rành thì bạn cứ để như PGP đã chọn cho bạn và bấm
Next. PGP sẽ bắt đầu copy vào nơi bạn đã chọn.
Sau đó Chương trình PGP sẽ hỏi bạn có muốn mã hóa những card mạng không ! Bạn click vào
ô !!! (tôi cũng không hiểu ô !!! là ô nào, nhưng theo đề nghị của tôi thì cứ chọn No cho chắc ăn)

Khi 1 người quen gởi cho bạn 1 email đã được mã hóa bằng PGP thì có nghĩa là người đó đã
dùng chìa khóa công cộng của bạn để mã hóa tài liệu. Bạn muốn đọc được thì bạn phải dùng
chức năng “Decrypt & Verify” :
Tìm Hiểu Về các giap thức SMTP,MIME,POP và IMAP
Chuẩn Internet cho e-mail là Simple Mail Transport Protocol (SMTP). SMTP là nghi thức cấp
ứng dụng (application-level) dùng để điều khiển các dịch vụ thông điệp thông qua các mạng
TCP/IP. SMTP được nói rõ trong RFC 321 và 822. SMTP sử dụng cổng TCP 25.
Bên cạnh SMTP, hai nghi thức khác dùng để phân phát mail đến client là POP3 và IMAP4.
Sinh viên thực hiện: Phùng Thế Bốn
Lớp : TK6LC1
Bài tiểu luận: An toàn bảo mật thông tin
MIME và SMTP
MIME (Multipurpose Internet Mail Extensions) bổ sung thêm cho SMTP để cho phép gắn kèm
các thông điệp đa phương tiện (không phải là văn bản) bên trong thông điệp SMTP chuẩn.
IME sử dụng mã hóa Base64 để chuyển các file phức tạp sang ASCII. MIME được mô tả trong
các RFC 2045-2049.
Các lệnh SMTP thường sử dụng:
HELO - Sử dụng để định danh máy gửi với máy nhận. Lệnh này phải kèm với tên máy tính của
máy gửi. Trong nghi thức mở rộng (ESMTP), lệnh EHLO thay cho lệnh này.
MAIL - Khởi tạo một phiên gửi mail. Đối số bao gồm trường “FROM” và địa chỉ email của
người gửi.
RCPT - Định danh người nhận thông điệp. Đi kèm với “TO” và địa chỉ email người nhận.
DATA - Thông báo bắt đầu gửi dữ liệu thực sự của mail (phần thân của message). Dữ liệu kết
thúc bằng một dòng trống và một dấu chấm (.).
RSET - Hủy (reset) phiên gửi mail hiện hành.
VRFY - Sử dụng để xác nhận một người nhận mail.
NOOP - Viết tắt của “no operation”, lệnh này không làm gì cả.
QUIT - Đóng kết nối
SEND - Báo cho host nhận biết là message phải được gửi đến một terminal khác.
HELP - Yêu cầu thông tin trợ giúp từ host nhận.

Các mã trạng thái SMTP
Khi một sending host gửi một lệnh SMTP đến receiving host, host nhận trả về một mã trạng thái
cho máy gửi biết là điều gì đã xảy ra. Danh sách bên dưới là code được nhóm theo số đầu tiên
(5xx là lỗi, 4xx lỗi tạm thời, 1xx-3xx thành công):
211 Trả lời trợ giúp, trạng thái hệ thống
214 Help message
220 Dịch vụ sẳn sàng (Service ready)
221 Đóng kết nối
250 Hành động yêu cầu được chấp nhận
251 Người sử dụng không ở mạng cục bộ, chuyển đến
354 Bắt đầu nhập mail
421 Dịch vụ không sẳn sàng
450 Hành động không chấp nhận, mailbox bận
451 Hành động bị hũy, lỗi cục bộ
452 Hành động không chấp nhận, thiếu không gian lưu trữ
Sinh viên thực hiện: Phùng Thế Bốn
Lớp : TK6LC1
Bài tiểu luận: An toàn bảo mật thông tin
500 Không hiểu lệnh hoặc lỗi cú pháp
501 Lỗi cú pháp ở tham số
502 Lệnh không được hổ trợ
503 Sai thứ tự các lệnh
504 Tham số của lệnh không được hổ trợ
550 Hành động không chấp nhận, mailbox không có.
551 Không phải là người sử dụng cục bộ
552 Hũy lệnh do vượt quá không gian lưu trữ
553 Hành động không chấp nhận, tên mailbox không cho phép
554 Phiên dao dịch bị lỗi
Post Office Protocol (POP)
POP cho phép các mail client (UA – User Agent) ở máy cục bộ kết nối vào pop server (MTA –

CREATE Tạo một mailbox
DELETE Xóa một mailbox
RENAME Đổi tên một mailbox
SUBSCRIBE Thêm một mailbox vào danh sách cho phép.
UNSUBSCRIBE Loại mailbox ra khỏi danh sách cho phép.
LIST Liệt kê các mailbox
LSUB Liệt kê các mailbox cho phép.
STATUS Yêu cầu trạng thái của mailbox
APPEND Thêm một message vào mailbox
CHECK Yêu cầu một mailbox checkpoint
CLOSE Chấp nhận các thao tác xóa và đóng mailbox
EXPUNGE Chấp nhận các thao tác xóa
SEARCH Tìm trong mailbox các message thỏa điều kiện cụ thể
FETCH Lấy một phần của một message cụ thể
STORE Thay đổi dữ liệu của message cụ thể
COPY Chép message sang một mailbox khác
NOOP Không làm gì cả
LOGOUT Đóng kết nối
Các lệnh RFC thực sự không phải là các lệnh ngôn ngữ lập trình, nó là các chuỗi dùng để gửi đến
Server qua Socket được tạo với cổng tương ứng.Ví dụ, nếu muốn gửi mail, tạo một socket TCP
cổng 25 với Server (ví dụ, Post Office) sau đó lần lượt gửi các lệnh RFC (kết thúc lệnh là ký tự
ENTER) và nhận các trả lời từ server để gửi mail.
Cách nhanh nhất để thử các lệnh RFC là dùng chương trình Telnet. Ví dụ để gửi một mail, làm
Sinh viên thực hiện: Phùng Thế Bốn
Lớp : TK6LC1
Bài tiểu luận: An toàn bảo mật thông tin
như sau:
Windows 2000: ở Command Prompt gõ lệnh:
Telnet mail.myserver.com 25
Sau đó gõ các lệnh như trong ví dụ đã nêu phần trước.

Lớp : TK6LC1
Bài tiểu luận: An toàn bảo mật thông tin
Ta có thể mô phỏng trực quan một hệ mật mã khoá công khai như sau : Bob muốn gửi cho Alice
một thông tin mật mà Bob muốn duy nhất Alice có thể đọc được. Để làm được điều này, Alice
gửi cho Bob một chiếc hộp có khóa đã mở sẵn và giữ lại chìa khóa. Bob nhận chiếc hộp, cho vào
đó một tờ giấy viết thư bình thường và khóa lại (như loại khoá thông thường chỉ cần sập chốt lại,
sau khi sập chốt khóa ngay cả Bob cũng không thể mở lại được-không đọc lại hay sửa thông tin
trong thư được nữa). Sau đó Bob gửi chiếc hộp lại cho Alice. Alice mở hộp với chìa khóa của
mình và đọc thông tin trong thư. Trong ví dụ này, chiếc hộp với khóa mở đóng vai trò khóa công
khai, chiếc chìa khóa chính là khóa bí mật.
Tạo khóa: Giả sử Alice và Bob cần trao đổi thông tin bí mật thông qua một kênh không an toàn
(ví dụ như Internet). Với thuật toán RSA, Alice đầu tiên cần tạo ra cho mình cặp khóa gồm khóa
công khai và khóa bí mật theo các bước sau:
1. Chọn 2 số nguyên tố lớn và với , lựa chọn ngẫu nhiên và độc lập.
2. Tính: .
3. Tính: giá trị hàm số Ơle .
4. Chọn một số tự nhiên e sao cho và là số nguyên tố cùng nhau với .
5. Tính: d sao cho .
Một số lưu ý:
• Các số nguyên tố thường được chọn bằng phương pháp thử xác suất.
• Các bước 4 và 5 có thể được thực hiện bằng giải thuật Euclid mở rộng (xem thêm: số học
môđun).
• Bước 5 có thể viết cách khác: Tìm số tự nhiên sao cho
cũng là số tự nhiên. Khi đó sử dụng giá trị .
• Từ bước 3, PKCS#1 v2.1 sử dụng thay cho
).
Khóa công khai bao gồm:
• n, môđun, và
• e, số mũ công khai (cũng gọi là số mũ mã hóa).
Khóa bí mật bao gồm:

Sinh viên thực hiện: Phùng Thế Bốn
Lớp : TK6LC1
Bài tiểu luận: An toàn bảo mật thông tin
Do p và q là hai số nguyên tố cùng nhau, áp dụng định lý số dư Trung Quốc, ta có:
.
hay:
.
Ví dụ
Sau đây là một ví dụ với những số cụ thể. Ở đây chúng ta sử dụng những số nhỏ để tiện tính toán
còn trong thực tế phải dùng các số có giá trị đủ lớn.
Lấy:
p = 61 — số nguyên tố thứ nhất (giữ bí mật hoặc hủy sau khi tạo khóa)
q = 53 — số nguyên tố thứ hai (giữ bí mật hoặc hủy sau khi tạo khóa)
n = pq =
3233
— môđun (công bố công khai)
e = 17 — số mũ công khai
d = 2753 — số mũ bí mật
Khóa công khai là cặp (e, n). Khóa bí mật là d. Hàm mã hóa là:
encrypt(m) = m
e
mod n = m
17
mod 3233
với m là văn bản rõ. Hàm giải mã là:
decrypt(c) = c
d
mod n = c
2753
mod 3233

vì giá trị lớn nhất của m chỉ là 255 và 255
3
nhỏ hơn giá trị n chấp nhận được. Những bản mã này
sẽ dễ dàng bị phá mã.
Để tránh gặp phải những vấn đề trên, RSA trên thực tế thường bao gồm một hình thức chuyển
đổi ngẫu nhiên hóa m trước khi mã hóa. Quá trình chuyển đổi này phải đảm bảo rằng m không
rơi vào các giá trị không an toàn. Sau khi chuyển đổi, mỗi bản rõ khi mã hóa sẽ cho ra một trong
số khả năng trong tập hợp bản mã. Điều này làm giảm tính khả thi của phương pháp tấn công lựa
chọn bản rõ (một bản rõ sẽ có thể tương ứng với nhiều bản mã tuỳ thuộc vào cách chuyển đổi).
Một số tiêu chuẩn, chẳng hạn như PKCS, đã được thiết kế để chuyển đổi bản rõ trước khi mã hóa
bằng RSA. Các phương pháp chuyển đổi này bổ sung thêm bít vào M. Các phương pháp chuyển
đổi cần được thiết kế cẩn thận để tránh những dạng tấn công phức tạp tận dụng khả năng biết
trước được cấu trúc của bản rõ. Phiên bản ban đầu của PKCS dùng một phương pháp đặc ứng
(ad-hoc) mà về sau được biết là không an toàn trước tấn công lựa chọn bản rõ thích ứng
(adaptive chosen ciphertext attack). Các phương pháp chuyển đổi hiện đại sử dụng các kỹ thuật
như chuyển đổi mã hóa bất đối xứng tối ưu (Optimal Asymmetric Encryption Padding - OAEP)
để chống lại tấn công dạng này. Tiêu chuẩn PKCS còn được bổ sung các tính năng khác để đảm
bảo an toàn cho chữ ký RSA (Probabilistic Signature Scheme for RSA - RSA-PSS).
Tạo chữ ký số cho văn bản
Thuật toán RSA còn được dùng để tạo chữ ký số cho văn bản. Giả sử Alice muốn gửi cho Bob
một văn bản có chữ ký của mình. Để làm việc này, Alice tạo ra một giá trị băm (hash value) của
văn bản cần ký và tính giá trị mũ d mod n của nó (giống như khi Alice thực hiện giải mã). Giá trị
cuối cùng chính là chữ ký điện tử của văn bản đang xét. Khi Bob nhận được văn bản cùng với
chữ ký điện tử, anh ta tính giá trị mũ e mod n của chữ ký đồng thời với việc tính giá trị băm của
văn bản. Nếu 2 giá trị này như nhau thì Bob biết rằng người tạo ra chữ ký biết khóa bí mật của
Alice và văn bản đã không bị thay đổi sau khi ký.
Sinh viên thực hiện: Phùng Thế Bốn
Lớp : TK6LC1
Bài tiểu luận: An toàn bảo mật thông tin
Cần chú ý rằng các phương pháp chuyển đổi bản rõ (như RSA-PSS) giữ vai trò quan trọng đối

chưa thể phát triển được tới mức độ này trong nhiều năm nữa.
Các vấn đề đặt ra trong thực tế
Quá trình tạo khóa
Việc tìm ra 2 số nguyên tố đủ lớn p và q thường được thực hiện bằng cách thử xác suất các số
ngẫu nhiên có độ lớn phù hợp (dùng phép kiểm tra nguyên tố cho phép loại bỏ hầu hết các hợp
số).
p và q còn cần được chọn không quá gần nhau để phòng trường hợp phân tích n bằng phương
pháp phân tích Fermat. Ngoài ra, nếu p-1 hoặc q-1 có thừa số nguyên tố nhỏ thì n cũng có thể dễ
dàng bị phân tích và vì thế p và q cũng cần được thử để tránh khả năng này.
Sinh viên thực hiện: Phùng Thế Bốn
Lớp : TK6LC1
Bài tiểu luận: An toàn bảo mật thông tin
Bên cạnh đó, cần tránh sử dụng các phương pháp tìm số ngẫu nhiên mà kẻ tấn công có thể lợi
dụng để biết thêm thông tin về việc lựa chọn (cần dùng các bộ tạo số ngẫu nhiên tốt). Yêu cầu ở
đây là các số được lựa chọn cần đồng thời ngẫu nhiên và không dự đoán được. Đây là các yêu
cầu khác nhau: một số có thể được lựa chọn ngẫu nhiên (không có kiểu mẫu trong kết quả)
nhưng nếu có thể dự đoán được dù chỉ một phần thì an ninh của thuật toán cũng không được đảm
bảo. Một ví dụ là bảng các số ngẫu nhiên do tập đoàn Rand xuất bản vào những năm 1950 có thể
rất thực sự ngẫu nhiên nhưng kẻ tấn công cũng có bảng này. Nếu kẻ tấn công đoán được một nửa
chữ số của p hay q thì chúng có thể dễ dàng tìm ra nửa còn lại (theo nghiên cứu của Donald
Coppersmith vào năm 1997)
Một điểm nữa cần nhấn mạnh là khóa bí mật d phải đủ lớn. Năm 1990, Wiener chỉ ra rằng nếu
giá trị của p nằm trong khoảng q và 2q (khá phổ biến) và d < n
1/4
/3 thì có thể tìm ra được d từ n
và e.
Mặc dù e đã từng có giá trị là 3 nhưng hiện nay các số mũ nhỏ không còn được sử dụng do có
thể tạo nên những lỗ hổng (đã đề cập ở phần chuyển đổi văn bản rõ). Giá trị thường dùng hiện
nay là 65537 vì được xem là đủ lớn và cũng không quá lớn ảnh hưởng tới việc thực hiện hàm
mũ.

nhiều ứng dụng đã thực hiện.
Để chống lại tấn công dựa trên thời gian là đảm bảo quá trình giải mã luôn diễn ra trong thời
gian không đổi bất kể văn bản mã. Tuy nhiên, cách này có thể làm giảm hiệu suất tính toán. Thay
vào đó, hầu hết các ứng dụng RSA sử dụng một kỹ thuật gọi là che mắt. Kỹ thuật này dựa trên
tính nhân của RSA: thay vì tính c
d
mod n, Alice đầu tiên chọn một số ngẫu nhiên r và tính (r
e
c)
d

mod n. Kết quả của phép tính này là rm mod n và tác động của r sẽ được loại bỏ bằng cách nhân
kết quả với nghịch đảo của r. Đỗi với mỗi văn bản mã, người ta chọn một giá trị của r. Vì vậy,
thời gian giải mã sẽ không còn phụ thuộc vào giá trị của văn bản mã.
Tấn công lựa chọn thích nghi bản mã
Năm 1981, Daniel Bleichenbache r mô tả dạng tấn công lựa chọn thích nghi bản mã (adaptive
chosen ciphertext attack) đầu tiên có thể thực hiện trên thực tế đối với một văn bản mã hóa bằng
RSA. Văn bản này được mã hóa dựa trên tiêu chuẩn PKCS #1 v1, một tiêu chuẩn chuyển đổi bản
rõ có khả năng kiểm tra tính hợp lệ của văn bản sau khi giải mã. Do những khiếm khuyết của
PKCS #1, Bleichenbacher có thể thực hiện một tấn công lên bản RSA dùng cho giao thức SSL
(tìm được khóa phiên). Do phát hiện này, các mô hình chuyển đổi an toàn hơn như chuyển đổi
mã hóa bất đối xứng tối ưu (Optimal Asymmetric Encryption Padding) được khuyến cáo sử
dụng. Đồng thời phòng nghiên cứu của RSA cũng đưa ra phiên bản mới của PKCS #1 có khả
năng chống lại dạng tấn công nói trên.
Sinh viên thực hiện: Phùng Thế Bốn
Lớp : TK6LC1


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status