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

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

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 (250.01 KB, 23 trang )

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.


Những thuận lợi khi sử dụng IPSEC:
Thuận lợi chính khi dùng IPSEC, là cung cấp được giải pháp mã hóa cho tất cả các giao thức
hoạt động tại lớp 3 – Network Layer (OSI model), và kể cả các giao thức lớp cao hơn.
IPSEC có khả năng cung cấp:
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
- Chứng thực 2 chiều trước và trong suốt quá trình giao tiếp. IPSEC quy định cho cả 2 bên tham
gia giao tiếp phải xác định chính mình trong suốt quy trình giao tiếp.
- Tạo sự tin cậy qua việc mã hóa, và xác nhận số các Packet. IPSEC có 2 chẽ độ Encapsulating
Security Payload (ESP) cung cấp cơ chế mã hóa dùng nhiều thuật toán khác nhau, và
Authentication Header (AH) xác nhận các thông tin chuyển giao, nhưng không mã hóa.
- Tich hợp các thông tin chuyển giao và sẽ loại ngay bất kì thông tin nào bị chỉnh sửa. Cả hai loại
ESP và AH đều kiểm tra tính tích hợp của các thông tin chuyển giao. Nếu một gói tin đã chỉnh
sửa, thì các xác nhận số sẽ không trùng khớp, kết quả gói tin sẽ bị loại. ESP cũng mã hóa địa chỉ
nguồn và địa chỉ đích như một phần của việc mã hóa thông tin chuyển giao.
- Chống lại các cuộc tấn công Replay (thông tin chuyển giao qua mạng sẽ bị attacker chặn, chỉnh
sữa, và được gửi đi sau đó đến đúng địa chỉ người nhận, người nhận không hề hay biết và vẫn tin
rằng đấy là thông tin hợp pháp. IPSEC dùng kĩ thuật đánh số liên tiếp cho các Packet Data của
mình (Sequence numbers), nhằm làm cho attacker không thể sử dụng lại các dữ liệu đã chặn
được, với ý đồ bất hợp pháp. Dùng Sequence numbers còn giúp bảo vệ chống việc chặn và đánh
cắp dữ liệu, sau đó dùng những thông tin lấy được để truy cập hợp pháp vào một ngày nào đó.
Ví dụ sử dụng IPSEC:
Việc mất mát các thông tin khi cuyển giao qua mạng, có thể gây thiệt hại cho hoạt động của tổ
chức, điều này cảnh báo các tổ chức cần trang bị và xây dựng những hệ thống mạng bảo mật chặt
chẽ những thông tin quan trọng như dữ iệu về Product, báo có tài chính, kế hoạch Marketing.
Trong trường hợp này các tổ chức có thể sử dụng IPSEC đảm bảo tính chất riêng tư và an toàn
của truyền thông Mạng (Intranet, Extranet) bao gốm giao tiếp giữa Workstation với Server,
Server với server.
Ví dụ: Có thể tạo các IPSEC policies cho các Computer kết nối với Server (nắm giữ những dữ

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:

- Filter: Filter báo cho Policy những thông tin lưu chuyển nào sẽ áp dụng với Filter action.
Ví dụ: Administrator có thể tạo một filter chỉ xác định các lưu thông dạng HTTP hoặc FTP.
- Filter Action: Báo cho Policy phải đưa ra hành động gì nếu thông tin lưu chuyển trùng với định
dang đã xác định tại Filter. Ví dụ: thông báo cho IPSEC chặn tất cả những giao tiếp FTP, nhưng
với những giao tiếp HTTP thì dữ liệu sẽ được mã hóa. Filter action cũng có thể xác định những
thuật toán mã hóa và hashing (băm) mà Policy nên sử dụng.
- Authentication method: IPSEC cung cấp 3 phương thức xác thực:
Certificates (thông thường các Computer triển khai dùng IPSEC nhận
Certificates từ một Certificate Authority – CA server), Kerberos (Giao thức chứng thực phổ biến
trong Active directory Domain), Preshared Key (khóa ngầm hiểu, một phương thức xác thực đơn
giản). Mỗi một Rule của IPSEC policy có thể bao gồm nhiều phưong thức xác thực vừa nêu.
NHỮNG CHÍNH SÁCH IPSEC MẶC ĐỊNH:
Kể từ Windows 2000 trở đi IPSEC đã cấu hình sẵn 3 chính sách, tạo sự thuận tiện khi triển khai
IPSEC.
- Client (Respond only) : chính sách thụ động, chỉ phản hồi sử dụng IPSEC nếu partner có yêu
cầu, thường được enable trên các Workstation. Chính sách mặc định này chỉ có một rule được
gọi là Default Respond Rule.
Rule này cho phép Computer phản hồi đến các yêu cầu IPSEC ESP từ các Computer được tin
cậy trong Active directory domain. ESP là một chế độ IPSEC cung cấp độ tin cậy cho việc xác
thực, tích hợp, và chống Replay attack.
- Server (Request Security): Computer hoạt động với chính sách này luôn chủ động dùng IPSEC
trong giao tiếp, tuy nhiên nếu đối tác không dùng IPSEC, vẫn có thể cho phép giao tiếp không
bảo mật. Chính sách này được dùng cho cả Server hoặc Workstation. Chính sách có 3 Rules:
Default respond rule (như đã trình bày ở trên), Permit ICMP (internet ControlMessage Protocol)
rule cho phép các giao tiếp dùng giao thức ICMP, ví dụ như Ping (mặc dù ICMP là một giao
thức kiểm tra và thông
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áo tình trạng kết nối Mạng, phục vụ cho xử lý các sự cố, nhưng cũng có thể disable để tăng tính

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 ?

Các phương pháp Peer Authentication :
- Username password
- OTP (One time password)
- Biometric (Xác thực bằng sinh học)
- Preshared keys
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
- Digital certificate (chữ ký số) phương pháp này thường được dùng trong chính phủ điện
tử .
4. Cơ chế hoật động của Internet Key Exchange ( IKE )
Như đã nói ở trên giao thức IKE sẽ có chức năng trao đổi key giữa các thiết bị tham gia
VPN và trao đổi chính sách an ninh giữa các thiết bị . Và nếu không có giao thức này thì
người quản trị phải cấu hình thủ công .
Và những chính sách an ninh trên những thiết bị này được gọi là SA (Security Associate)
Do đó các thiết bị trong quá trình IKE sẽ trao đổi với nhau tất cả những SA mà nó có . Và
giữa các thiết bị này sẽ tự tìm ra cho mình những SA phù hợp với đối tác nhất
Những key được trao đổi trong quá trình IKE cũng được mã hóa và những key này sẽ
thay đổi theo thơi gian (generate key) để tránh tình trạng bruteforce của Attacker .
Và dứoi đây là các giao thức xác thực cũng như mã hóa key trong quá trình IKE
Oakley (Tham khao thêm trên RFC 2412) , ISAKMP (RFC 2408) , Skeme .
Giao thức IKE sử dụng UDP port 500
5. Các giai đoạn hoạt động của IKE (IKE Phases)
- IKE Phases 1 (Bắt buộc xảy ra trong quá trình IKE)
Bước 1 : Xác thực giữa các thiết bị tham gia VPN (Authentication the peers)
Bước 2 : Trao đổi các SA
Và Phases 1 này có 2 chế độ hoạt động là Main mode (Cần 6 mess để hoàn thành các
bước 1&2) và Aggressive mode (Cần 3 mess đển hoàn thành các bước 1&2)
- IKE Phases 1.5 (Không bắt buộc)
Giao đoạn này có tác dụng cấp phát địa chỉ IP LAN , DNS thông qua DHCP và xác thực

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 .

Tại sao IPSec chỉ hoạt động ở tunel mode mà không hoạt động ở tranports mode thì tôi sẽ
giải thích kỹ trong những đoạn sau .
Lưu ý : Chức năng NAT-T bắt đầu được Cisco hỗ trợ tự phiên bản IOS Release
122.2(13)T
Tại sao phải hỗ trợ chức năng NAT-T thì các packet mới tiếp tục đi được ?
Các bạn chú ý phần trên tôi đã trình bày . Khi thực hiện quá trình mã hóa bằng ESP thì
lúc này các source IP , port và destination IP, port đều đã được mã hóa và nằm gọn tron
ESP Header . Như vậy khi tất cả các thông tin IP và Port bị mã hóa thì kênh truyền IPSec
không thể diễn ra quá trình NAT .
Do đó NAT Traversal ra đời trong quá trình hoạt động của IKE nhằm phát hiện và hỗ trợ
NAT cho Ipsec .
Các dự liệu sẽ không bị đóng gói trực tiếp bỏi giao thức IP mà nó sẽ đóng gói thông qua
giao thức UDP . Và lúc này các thông tin về IP và Port sẽ nằm trong gói UDP này .
- Chức năng Mode Configuration :
Chức năng này có tác dụng pushing các chính sách bảo mật cũng như thông tin về IP ,
DNS , Gateway cho người dùng di động khi họ quay VPN vào hệ thống .
Ngoài ra Cisco có cung cấp giải pháp cho việc này đó là Easy VPN . Nhưng trong phạm
vi bài này tôi sẽ không đi sâu về vấn đề này .
Xauth sẽ cho phép phương thức AAA (Authentication , Authorization , Accounting) hoạt
động đối với việc xác thực user . Các bạn cũng nên lưu ý phần này . Xauth không đè lên
IKE mà việc xác thực của giao thức Xauth này là xác thực người dùng chứ không phải
quá trình xác thực diễn ra trong Phares 1
Như vậy trong phần I tôi đã giới thiệu cơ chế hoạt động của VPN Ipsec và đi sâu vào bộ
giao thức đầu tiên là IKE . Trong các phần kế tiếp mình sẽ trình bày kỹ hơn về cơ chế
hoạt động của ESP và AH . Sau đó là cấu hình Router trong 1 sơ đồ cụ thể .
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
Hy vọng bài viết này sẽ giúp các bạn hiểu hơn phần nào về giao thức IP Sec và cách thiết
lập VPN Ipsec sẽ được trình bày ở các phần kế tiếp

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ó.

- Nếu sử dụng giao thức AH
Thì giao thức AH chỉ làm công việc xác thực ( authentication ) và bảo đảm tính trọn vẹn
dự liệu . Giao thức AH không có chức năng mã hóa dự liệu . Do đó AH ít được dùng
trong IPSec vì nó không đãm bảo tính an ninh .
3 . AH xác thực và đảm bảo tính trọn vẹn dự liệu
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
Dưới đây là hình minh họa về cơ chế xác thực của giao thứ AH
Bước thứ 1 : Giao thức AH sẽ đem gói dữ liệu ( packet ) bao gồm payload + Ip header +
Key
Cho chạy qua 1 giải thuật gọi là giải thuật Hash và cho ra 1 chuỗi số . Các bạn nhớ đây là
giải thuật 1 chiều , nghĩa là từ gói dữ liệu + key = chuỗi số . Nhưng từ chuỗi số không thể
hash ra = dữ liệu + key
Và chuỗi số này sẽ đuợc gán vào AH header .
Bước thứ 2 : AH Header này sẽ được chèn vào giữa Payload và Ip Header và chuyển
sang phía bên kia .
Đương nhiên các bạn cũng nhớ cho rằng việc truyền tải gói dự liệu này đang chạy trên 1
tunel mà trước đó quá trình IKE sau khi trao đổi khóa đã tạo ra .
Bước thứ 3 : Router đích sau khi nhận được gói tin này bao gồm IP header + AH header
+ Payload sẽ được chạy qua giải thuật Hash 1 lần nữa để cho ra 1 chuỗi số .
Bước thứ 4 : So sánh chuỗi số nó vừa tạo ra và chuỗi số của nó nếu giống nhau thì nó sẽ
chấp nhận gói tin .
Nếu trong quá trình truyền gói dữ liệu 1 attacker sniff nói tin và chỉnh sửa nó dẫn đến
việc gói tin bị thay đổi về kích cỡ , nội dung thì khi đi qua quá trình hash sẽ cho ra 1
chuỗi số khác chuỗi số ban đầu mà router đích đang có . Do đó gói tin sẽ bị drop
Thuật toán hash bao gồm MD5 và SHA-1
Và trong trừong hợp này IPSec đang chạy ở chế độ trasports mode .
4 . Giao thức ESP
Phía dưới đây là cơ chế mã hóa gói dữ liệu bằng giao thức ESP

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:

crypto ipsec transform-set transform-set-name transform1 [transform2 [transform3]]
- Các tham số của lệnh crypto ipsec transform-set:
- Bạn có thể cấu hình nhiều transform set và chỉ rõ một hay nhiều transform set trong mục crypto
map. Định nghĩa các transform set trong mục crypto map được sử dụng trong trao đổi IPSec SA
để bảo vệ dữ liệu được đinh nghĩa bởi ACL của mục crypto map. Trong suốt quá trình trao đổi,
cả hai bên sẽ tìm kiếm các transform set giống nhau ở cả hai phiá. Khi mà các transform set được
tìm thấy, nó sẽ được sử dụng để bảo vệ dữ liệu trên đường truyền như là một phần của các IPSec
Sa ở cả 2 phía.
- Khi mà ISAKMP không được sử dụng để thiết lập các Sa, một transform set riêng rẽ sẽ được sử
dụng. Transform set đó sẽ không được trao đổi.
- Thay đổi cấu hình Transform set:
B1: Xóa các tranform set từ crypto map
B2: Xóa các transform set trong chế độ cấu hình gobal mode
B3: Cấu hình lại transform set với những thay đổi
B4: Gán transform set với crypto map
B5: Xóa cơ sở dữ liệu SA (SA database)
B6: Theo dõi các trao đổi SA và chắc chắn nó họat động tốt
- Cấu hình cho việc trao đổi transform:
- Tranform set được trao đổi trong suốt chế độ quick mode trong IKE Phase 2 là những các
transform set mà bạn cấu hình ưu tiên sử dụng. Bạn có thể cấu hình nhiều transform set và có thể
chỉ ra một hay nhiều transform set trong mục crypto map. Cấu hình transform set từ những bảo
mật thông thường nhỏ nhất giống như trong chính sách bảo mật của bạn. Những transform set
được định nghĩa trong mục crypto map được sử dụng trong trao đổi IPSec SA để bảo vệ dữ liệu
được định nghĩa bởi ACL của mục crypto map.
- Trong suốt quá trình trao đổi mỗi bên sẽ tìm kiếm các transform set giống nhau ở cả hai bên
như minh họa ở hình trên. Các transform set của Router A được so sánh với một transform set
của Router B và cứ tiếp tục như thế. Router A transform set 10, 20, 30 được so sánh với
transform set 40 của Router B. Nếu mà không trả vể kết quả đúng thì tất cả các transform set của
Router A sau đó sẽ được so sánh với transform set tiếp theo của Router B. Cuối cùng transform
set 30 của Router A giống với transform set 60 của Router B. Khi mà transform set được tì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
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)

Như vậy là sự cài đặt PGP.DESKTOP.SECURiTY.v7.0 cũng chưa xong hoàn toàn. Buớc cuối là
bạn phải cho khởi động lại máy. Bạn phải làm "restart"! Sau khi khởi động lại thì bạn sẽ thấy 1
cái hình nhỏ ở cuối, bên phải. Đến đây thì sự cài đặt PGP đã hoàn tất.
2. Tạo chìa khoá
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
Trước khi dùng PGP để mã hóa tài liệu thì bạn phải tạo 1 cặp chìa khóa công cộng/mật!
Bạn click chuột bên phải vào cái ổ khóa này, sau đó click vào "PGPkeys" như hình sau:
Sau đó bạn đánh Ctrl+N (hoặc click vào Keys/New Key) để tạo 1 cặp khóa.
Sau đó nó sẽ hiện ra 1 bảng quảng cáo, bạn cứ click Next để tới trang khác. Nơi này bạn phải
điền tên và địa chỉ email để liên lạc của bạn.
Sau đó bạn phải cho mật mã vào ! Nên nhớ mật mã càng khó nhớ thì sự bảo mật càng cao. Bạn
có thể đánh giá qua "Passphrase Quality"! Khi bạn click “Next>” thì PGP sẽ tạo ra cặp chìa khóa
công cộng/mật.
Sau khi hoàn tất việc tạo cặp chìa khóa thì bạn có thể kiểm soát như trong hình trên.
Việc kế tiếp là bạn phải kêu chương trình xuất (export) cái chìa khóa công cộng của bạn và bạn
phải thông báo cho những người bạn giao tiếp, trao đổi tài liệu về chìa khóa này. Điều này có
nghĩa là bạn phải có chứa chìa khóa này vào nơi nào đó và những người muốn liên lạc với bạn
phải đọc được cái chìa khóa công cộng này.
Để xuất cái chìa công cộng thì bạn xử dụng chức năng “Export ” và chọn chỗ để chương trình
tạo ra cái chìa công cộng.
Sau đó bạn sẽ tìm thấy chìa khóa này trong file thí dụ như “Haiphong's Serialkiller.asc”. Khi bạn
dùng 1 editor để đọc cái file này thì bạn sẽ thấy đại khái như hình sau :
Giờ bạn chỉ copy toàn bộ nội dung cái file này và gắn vào một nơi công cộng nào đó (Chính vì
thế người ta mới gọi chìa khóa này là chìa khóa công cộng !!!)
3.Cách gửi/nhận email mã hóa bằng PGP
Điều kiện để làm việc này là bạn phải có chìa khóa công cộng của người quen và bạn nhập
(import) chìa này vào chương trình PGP của bạn.
Sau đó bạn dùng chức năng “Encrypt” để mã hoá và gởi đi.

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.

Ví dụ một phiên giao dịch SMTP:
220 ntbooks-pro Microsoft ESMTP MAIL Service, Version: 6.0.2505.1 ready at Mon, 8 Jul 2002
17:44:12 -0700
HELO
250 ntbooks-pro Hello [192.168.0.1]
MAIL FROM :
250 2.1.0 Sender OK
RCPT TO :
250 2.1.5
DATA 354 Start mail input; end with .
mail test
ha ha ha .
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

250 2.6.0 Queued mail for delivery
QUIT
221 2.0.0 ntbooks-pro Service closing transmission channel
Nội dung mail nhận được có dạng như sau:
Received: from ([192.168.0.1]) by ntbooks-pro with Microsoft SMTPSVC(6.0.2505.1); Mon, 8
Jul 2002 17:46:21 -0700
From:
Bcc:
Return-Path:
Message-ID:
X-OriginalArrivalTime: 09 Jul 2002 00:46:50.0836 (UTC) FILETIME=[1CDAC940:01C226E2]
Date: 8 Jul 2002 17:46:50 -0700
mail test
ha ha ha

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 –

Message Transfer Agent) và lấy mail về máy tính cục bộ nơi mà người sử dụng có thể đọc và trả
lời các message. POP được định nghĩa đầu tiên vào năm 1984, được nâng cấp trong POP2 vào
năm 1988. Chuẩn hiện hành là POP3.
POP3 UA kết nối với TCP/IP đến server (cổng chuẩn 110). UA nhập vào một tên đăng nhập
(username) và mật mã (password). Sau khi đăng nhập, UA sử dụng các lệnh POP3 để lấy và xóa
mail.
POP3 là nghi thức chỉ để nhận mail. POP3 UA sử dụng SMTP để gửi mail đến server.
POP3 được mô tả trong RFC 1939.
Các lệnh của POP3
USER Chỉ rõ username
PASS Chỉ rõ password
STAT Yêu cầu trạn thái của mailbox (số lượng message, kích thước của các message)
LIST Liệt kê các message
RETR Lấy một message cụ thể
DELE Xóa một message cụ thể
NOOP Không làm gì cả
RSET Hủy hành động của các lệnh DELE (rollback)
QUIT Chấp nhận các thay đổi và cắt kết nối.
Internet Mail Access Protocol (IMAP)
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
POP3 là một nghi thức đơn giản. IMAP4 là một chuẩn mail khác có hổ trợ nhiều tính năng hơn.
IMAP4 được mô tả trong RFC 2060. IMAP4 sử dụng cổng TCP 143.
Các lệnh IMAP4
CAPABILITY Yêu cầu một danh sách các chức năng có hỗ trợ.
AUTHENTICATE Chỉ rõ cơ chế đăng nhập
LOGIN Cung cấp username và password
SELECT Chỉ rõ mailbox
EXAMINE Chỉ định mailbox ở chế độ chỉ đọc.

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.

Nếu viết một Windows Application thì có thể dùng MAPI control của Windows, nếu viết (asp)
Webmail có thể dùng CDO, các control này giúp cho người lập trình không cần biết RFC nhưng
vẫn có thể viết được các ứng dụng mail bằng cách sử dụng các phương thức và các thuộc tính
của chúng. Nhưng các control trên đều dùng các lệnh RFC để làm việc gửi và nhận mail thực sự.
Thuật toán RSA
RSA là một thuật toán mật mã hóa khóa công khai. Đây là thuật toán đầu tiên phù hợp với việc
tạo ra chữ ký điện tử đồng thời với việc mã hóa. Nó đánh dấu một sự tiến bộ vượt bậc của lĩnh
vực mật mã học trong việc sử dụng khóa công cộng. RSA đang được sử dụng phổ biến trong
thương mại điện tử và được cho là đảm bảo an toàn với điều kiện độ dài khóa đủ lớn.
Lịch sử
Thuật toán được Ron Rivest, Adi Shamir và Len Adleman mô tả lần đầu tiên vào năm 1977 tại
Học viện Công nghệ Massachusetts (MIT). Tên của thuật toán lấy từ 3 chữ cái đầu của tên 3 tác
giả.
Trước đó, vào năm 1973, Clifford Cocks, một nhà toán học người Anh làm việc tại GCHQ, đã
mô tả một thuật toán tương tự. Với khả năng tính toán tại thời điểm đó thì thuật toán này không
khả thi và chưa bao giờ được thực nghiệm. Tuy nhiên, phát minh này chỉ được công bố vào năm
1997 vì được xếp vào loại tuyệt mật.
Thuật toán RSA được MIT đăng ký bằng sáng chế tại Hoa Kỳ vào năm 1983 (Số đăng ký
4.405.829). Bằng sáng chế này hết hạn vào ngày 21 tháng 9 năm 2000. Tuy nhiên, do thuật toán
đã được công bố trước khi có đăng ký bảo hộ nên sự bảo hộ hầu như không có giá trị bên ngoài
Hoa Kỳ. Ngoài ra, nếu như công trình của Clifford Cocks đã được công bố trước đó thì bằng
sáng chế RSA đã không thể được đăng ký.
Hoạt động
Mô tả sơ lược: Thuật toán RSA có hai khóa: khóa công khai (hay khóa công cộng) và khóa bí
mật (hay khóa cá nhân). Mỗi khóa là những số cố định sử dụng trong quá trình mã hóa và giải
mã. Khóa công khai được công bố rộng rãi cho mọi người và được dùng để mã hóa. Những
thông tin được mã hóa bằng khóa công khai chỉ có thể được giải mã bằng khóa bí mật tương ứng.
Nói cách khác, mọi người đều có thể mã hóa nhưng chỉ có người biết khóa cá nhân (bí mật) mới
có thể giải mã đượ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
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:

• n, môđun, xuất hiện cả trong khóa công khai và khóa bí mật, và
• d, số mũ bí mật (cũng gọi là số mũ giải 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
Một dạng khác của khóa bí mật bao gồm:
• p and q, hai số nguyên tố chọn ban đầu,
• d mod (p-1) và d mod (q-1) (thường được gọi là dmp1 và dmq1),
• (1/q) mod p (thường được gọi là iqmp)
Dạng này cho phép thực hiện giải mã và ký nhanh hơn với việc sử dụng định lý số dư Trung
Quốc (tiếng Anh: Chinese Remainder Theorem - CRT). Ở dạng này, tất cả thành phần của khóa
bí mật phải được giữ bí mật.
Alice gửi khóa công khai cho Bob, và giữ bí mật khóa cá nhân của mình. Ở đây, p và q giữ vai
trò rất quan trọng. Chúng là các phân tố của n và cho phép tính d khi biết e. Nếu không sử dụng
dạng sau của khóa bí mật (dạng CRT) thì p và q sẽ được xóa ngay sau khi thực hiện xong quá
trình tạo khóa.
Mã hóa: Giả sử Bob muốn gửi đoạn thông tin M cho Alice. Đầu tiên Bob chuyển M thành một
số m < n theo một hàm có thể đảo ngược (từ m có thể xác định lại M) được thỏa thuận trước. Quá
trình này được mô tả ở phần #Chuyển đổi văn bản rõ.
Lúc này Bob có m và biết n cũng như e do Alice gửi. Bob sẽ tính c là bản mã hóa của m theo
công thức:
Hàm trên có thể tính dễ dàng sử dụng phương pháp tính hàm mũ (theo môđun) bằng (thuật toán
bình phương và nhân) Cuối cùng Bob gửi c cho Alice.
Giải mã: Alice nhận c từ Bob và biết khóa bí mật d. Alice có thể tìm được m từ c theo công thức
sau:
Biết m, Alice tìm lại M theo phương pháp đã thỏa thuận trước. Quá trình giải mã hoạt động vì ta

.
Do ed ≡ 1 (mod p-1) và ed ≡ 1 (mod q-1), (theo Định lý Fermat nhỏ) nên:


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ới c là văn bản mã.
Để mã hóa văn bản có giá trị 123, ta thực hiện phép tính:
encrypt(123) = 123
17
mod 3233 = 855
Để giải mã văn bản có giá trị 855, ta thực hiện phép tính:
decrypt(855) = 855
2753
mod 3233 = 123
Cả hai phép tính trên đều có thể được thực hiện hiệu quả nhờ giải thuật bình phương và nhân.
Chuyển đổi văn bản rõ
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
Trước khi thực hiện mã hóa, ta phải thực hiện việc chuyển đổi văn bản rõ (chuyển đổi từ M sang
m) sao cho không có giá trị nào của M tạo ra văn bản mã không an toàn. Nếu không có quá trình
này, RSA sẽ gặp phải một số vấn đề sau:
• Nếu m = 0 hoặc m = 1 sẽ tạo ra các bản mã có giá trị là 0 và 1 tương ứng
• Khi mã hóa với số mũ nhỏ (chẳng hạn e = 3) và m cũng có giá trị nhỏ, giá trị m
e
cũng
nhận giá trị nhỏ (so với n). Như vậy phép môđun không có tác dụng và có thể dễ dàng
tìm được m bằng cách khai căn bậc e của c (bỏ qua môđun).
• RSA là phương pháp mã hóa xác định (không có thành phần ngẫu nhiên) nên kẻ tấn công
có thể thực hiện t ấn công lựa chọn bản rõ bằng cách tạo ra một bảng tra giữa bản rõ và
bản mã. Khi gặp một bản mã, kẻ tấn công sử dụng bảng tra để tìm ra bản rõ tương ứng.
Trên thực tế, ta thường gặp 2 vấn đề đầu khi gửi các bản tin ASCII ngắn với m là nhóm vài ký tự
ASCII. Một đoạn tin chỉ có 1 ký tự NUL sẽ được gán giá trị m = 0 và cho ra bản mã là 0 bất kể
giá trị của e và N. Tương tự, một ký tự ASCII khác, SOH, có giá trị 1 sẽ luôn cho ra bản mã là 1.
Với các hệ thống dùng giá trị e nhỏ thì tất cả ký tự ASCII đều cho kết quả mã hóa không an toàn

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

với quá trình mã hóa cũng như chữ ký điện tử và không được dùng khóa chung cho đồng thời
cho cả hai mục đích trên.
An ninh: Độ an toàn của hệ thống RSA dựa trên 2 vấn đề của toán học: bài toán phân tích ra
thừa số nguyên tố các số nguyên lớn và bài toán RSA. Nếu 2 bài toán trên là khó (không tìm
được thuật toán hiệu quả để giải chúng) thì không thể thực hiện được việc phá mã toàn bộ đối
với RSA. Phá mã một phần phải được ngăn chặn bằng các phương pháp chuyển đổi bản rõ an
toàn.
Bài toán RSA là bài toán tính căn bậc e môđun n (với n là hợp số): tìm số m sao cho m
e
=c mod
n, trong đó (e, n) chính là khóa công khai và c là bản mã. Hiện nay phương pháp triển vọng nhất
giải bài toán này là phân tích n ra thừa số nguyên tố. Khi thực hiện được điều này, kẻ tấn công sẽ
tìm ra số mũ bí mật d từ khóa công khai và có thể giải mã theo đúng quy trình của thuật toán.
Nếu kẻ tấn công tìm được 2 số nguyên tố p và q sao cho: n = pq thì có thể dễ dàng tìm được giá
trị (p-1)(q-1) và qua đó xác định d từ e. Chưa có một phương pháp nào được tìm ra trên máy tính
để giải bài toán này trong thời gian đa thức (polynomial-time). Tuy nhiên người ta cũng chưa
chứng minh được điều ngược lại (sự không tồn tại của thuật toán). Xem thêm phân tích ra thừa
số nguyên tố về vấn đề này.
Tại thời điểm năm 2005, số lớn nhất có thể được phân tích ra thừa số nguyên tố có độ dài 663 bít
với phương pháp phân tán trong khi khóa của RSA có độ dài từ 1024 tới 2048 bít. Một số chuyên
gia cho rằng khóa 1024 bít có thể sớm bị phá vỡ (cũng có nhiều người phản đối việc này). Với
khóa 4096 bít thì hầu như không có khả năng bị phá vỡ trong tương lai gần. Do đó, người ta
thường cho rằng RSA đảm bảo an toàn với điều kiện n được chọn đủ lớn. Nếu n có độ dài 256
bít hoặc ngắn hơn, nó có thể bị phân tích trong vài giờ với máy tính cá nhân dùng các phần mềm
có sẵn. Nếu n có độ dài 512 bít, nó có thể bị phân tích bởi vài trăm máy tính tại thời điểm năm
1999. Một thiết bị lý thuyết có tên là TWIRL do Shamir và Tromer mô tả năm 2003 đã đặt ra câu
hỏi về độ an toàn của khóa 1024 bít. Vì vậy hiện nay người ta khuyến cáo sử dụng khóa có độ
dài tối thiểu 2048 bít.
Năm 1993, Peter Shor công bố thuật toán Shor chỉ ra rằng: máy tính lượng tử (trên lý thuyết) có
thể giải bài toán phân tích ra thừa số trong thời gian đa thức. Tuy nhiên, máy tính lượng tử vẫn

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ũ.

Tốc độ
RSA có tốc độ thực hiện chậm hơn đáng kể so với DES và các thuật toán mã hóa đối xứng khác.
Trên thực tế, Bob sử dụng một thuật toán mã hóa đối xứng nào đó để mã hóa văn bản cần gửi và
chỉ sử dụng RSA để mã hóa khóa để giải mã (thông thường khóa ngắn hơn nhiều so với văn
bản).
Phương thức này cũng tạo ra những vấn đề an ninh mới. Một ví dụ là cần phải tạo ra khóa đối
xứng thật sự ngẫu nhiên. Nếu không, kẻ tấn công (thường ký hiệu là Eve) sẽ bỏ qua RSA và tập
trung vào việc đoán khóa đối xứng.
Phân phối khóa
Cũng giống như các thuật toán mã hóa khác, cách thức phân phối khóa công khai là một trong
những yếu tố quyết định đối với độ an toàn của RSA. Quá trình phân phối khóa cần chống lại
được tấn công đứng giữa (man-in-the-middle attack). Giả sử Eve có thể gửi cho Bob một khóa
bất kỳ và khiến Bob tin rằng đó là khóa (công khai) của Alice. Đồng thời Eve có khả năng đọc
được thông tin trao đổi giữa Bob và Alice. Khi đó, Eve sẽ gửi cho Bob khóa công khai của chính
mình (mà Bob nghĩ rằng đó là khóa của Alice). Sau đó, Eve đọc tất cả văn bản mã hóa do Bob
gửi, giải mã với khóa bí mật của mình, giữ 1 bản copy đồng thời mã hóa bằng khóa công khai
của Alice và gửi cho Alice. Về nguyên tắc, cả Bob và Alice đều không phát hiện ra sự can thiệp
của người thứ ba. Các phương pháp chống lại dạng tấn công này thường dựa trên các chứng thực
khóa công khai (digital certificate) hoặc các thành phần của hạ tầng khóa công khai (public key
infrastructure - PKI).
Tấn công dựa trên thời gian
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
Vào năm 1995, Paul Kocher mô tả một dạng tấn công mới lên RSA: nếu kẻ tấn công nắm đủ
thông tin về phần cứng thực hiện mã hóa và xác định được thời gian giải mã đối với một số bản
mã lựa chọn thì có thể nhanh chóng tìm ra khóa d. Dạng tấn công này có thể áp dụng đối với hệ
thống chữ ký điện tử sử dụng RSA. Năm 2003, Dan Boneh và David Brumley chứng minh một
dạng tấn công thực tế hơn: phân tích thừa số RSA dùng mạng máy tính (Máy chủ web dùng
SSL). Tấn công đã khai thác thông tin rò rỉ của việc tối ưu hóa định lý số dư Trung quốc 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

×