Đảm bảo ATTT [4] là đảm bảo an toàn kỹ thuật cho hoạt động của các cơ sở hệ tầng thông tin HTTT, trong đó bao gồm đảm bảo an toàn cho cả phần cứng và phần mềm hoạt động; ngăn ngừa khả nă
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
Hà Nội – 2016
Trang 2i
MỤC LỤC
Trang
PHẦN MỞ ĐẦU 1
CHƯƠNG I: AN TOÀN THÔNG TIN (ATTT) 3
1.1 Khái quát về an toàn thông tin: 3
1.2 Các đặc điểm của ATTT: 4
1.2.1 Tính bí mật: 5
1.2.2 Tính toàn vẹn: 5
1.2.3 Tính sẵn sàng: 5
1.3 Các dạng tấn công và nguy cơ mất ATTT: 6
1.3.1 Các dạng tấn công: 6
1.3.2 Nguy cơ mất ATTT: 6
1.4 Đặc tính ATTT thế hệ mới (New Generation - NG) 8
1.4.1 Đặc tính thế hệ mới trong an toàn vận hành 8
1.4.2 Đặc tính thế hệ mới trong an toàn thông minh: 9
1.4.3 Đặc tính thế hệ mới trong điện toán đám mây và an ninh ảo hóa 9
CHƯƠNG II: BẢO MẬT 11
2.1 Các phương pháp mã hóa-giải mã: 11
2.1.1 Khái niệm mã hóa và giải mã: 11
2.1.2 Mã hóa kết nối 11
2.1.3 Mã hóa email gửi đi 12
2.1.4 Mã hóa email lưu trữ 12
2.2 Mã hoá đối xứng - mã khóa bí mật 14
2.2.1 Giới thiệu: 14
2.2.2 Mã hóa cổ điển: 16
2.2.3 Hệ mã hóa khóa bí mật hiện đại: 17
2.3 Hệ mã hóa bất đối xứng - mã hóa khóa công khai: 25
2.3.1 Khái niệm: 25
Trang 3ii
2.3.2 Xây dựng thuật toán mã hóa công khai (bất đối xứng) : 26
2.4 Kết luận: 31
CHƯƠNG III: THƯ ĐIỆN TỬ 34
3.1 Hoạt động của thư điện tử: 34
3.1.1 SMTP (Simple Mail Transfer Protocol) 35
3.1.2 POP (Post Office Protocol) 35
3.1.3 IMAP (Internet Message Access Protocol) 36
3.2 Cấu trúc thư điện tử 36
3.2.1 Một số trường Header: 37
3.2.2 Body: 37
3.3 Phần mềm thư điện tử nguồn mở: 38
3.3.1.Mozilla Thunderbird: 38
3.3.2 Desktop Zimbra: 41
3.4 Xây dựng ứng dụng: 44
3.4.1 Thiết kế giao diện quản lý đăng nhập: 44
3.4.2 Thiết kế giao diện gửi email: 46
3.5 Kết luận: 46
CHƯƠNG IV: THIẾT KẾ ỨNG DỤNG 48
4.1 Thuật toán mã hoá: 48
4.1.1 Sinh khóa : 48
4.1.2 Mã hoá DES: 49
4.1.3 Mã hoá – giải mã RSA 53
4.2 Triển khai ứng dụng 56
4.2.1 Mô tả các chức năng: 56
4.2.2 Cài đặt giao diện và phương pháp mã hoá: 59
4.3 Kết luận: 61
KẾT LUẬN 62
TÀI LIỆU THAM KHẢO 64
Trang 4iii
LỜI CAM ĐOAN Tôi xin cam đoan Luận văn Tốt Nghiệp Thạc Sĩ : “Ứng dụng mô hình an toàn thông tin trong bảo mật thư điện tử‖ là công trình nghiên cứu của bản thân tôi
dưới sự hướng dẫn của TS Phạm Đăng Hải
Các kết quả nêu trong luận văn là trung thực, không sao chép toàn văn của bất kỳ công trình nào khác
Hà nội, tháng 8 năm 2016
Học viên
Trần Huy Hoàng
Trang 5iv
LỜI CẢM ƠN
Em xin chân thành cảm ơn sự hướng dẫn của các thầy giáo, cô giáo trong Viện CNTT-TT – Trường Đại học Bách Khoa Hà Nội giảng dạy nhiệt tình, cung cấp rất nhiều kiến thức, tài liệu quý giá và phương pháp học vừa qua
Em đặc biệt bày tỏ lòng biết ơn thầy giáo TS Phạm Đăng Hải đã tạo mọi
điều kiện và luôn giúp đỡ, hướng dẫn em tận tình để em hoàn thành đề tài luận văn chuyên ngành này Em chân thành cảm ơn các thầy cô Ban giám hiệu trường THPT Đặng Thúc Hứa luôn sẵn sàng giúp đỡ và tạo mọi điều kiện tốt nhất Cảm ơn gia đình, bạn bè đồng nghiệp tổ Lý – CN - Tin luôn quan tâm động viên giúp đỡ để em
có được như ngày hôm nay
Mặc dù có nhiều cố gắng bằng toàn bộ kiến thức để hoàn thành công việc, song thời gian và kinh nghiệm của bản thân chưa được trau dồi nhiều nên việc trình bày, phân tích, xây dựng chương trình còn nhiều thiếu sót cần được bổ sung Vì vậy
em rất mong nhận được ý kiến đóng góp của thầy cô để sản phẩm này có thể hoàn thiện, được ứng dụng vào thực tiễn
Hà nội, tháng 8 năm 2016
Học viên
Trần Huy Hoàng
Trang 6v
CÁC TỪ VIẾT TẮT
ANSI American National Standards Institute
ASCII American Standard Code for Infornation Interchange Bcc Blind Carbon Copy
CBC Cipher Block Chaining
DES Data encryption Standard
ECB Electronic Code Book
IDEA International Data Encryption Algorithm
IEEE Institute of Electrical and Electronic Engineers
IETF Internet Engineering Task Force
IMAP Internet Message Access protocol
CIA Confidenttiality, Integrity, Availability
ITU International Telecommunication Union
ATTT An Toàn Thông Tin
HTTT Hạ tầng thông tin
MAC Message Authentication Code
MIME Multipurpose Internet Mail Extensions
PBE Password – Based Encryption
PCBC Propagating cipher block chaining
PGP Pretty Good Privacy
PKCS Public Key Cryptography Standard
POP Post Office Protocol
Trang 7vi S/ MIME Secure-MIME
TLS Transport Layer Security
Trang 8vii
DANH MỤC CÁC HÌNH
Trang
Hình 1.1: Các mục tiêu của ATTT 4
Hình 1.2: Các mô hình tấn công 6
Hình 2.1: Mô hình mã hóa đối xứng 14
Hình 2.2: Padding 15
Hình 2.3: Mô hình thuật toán khoá bí mật 17
Hình 2.4: Sơ đồ mã hóa PBE ban đầu 23
Hình 2.5: Sơ đồ mã hóa PBE khi thêm salt 24
Hình 2.6: Sơ đồ giải mã PBE 24
Hình 2.7: Mô hình mã hóa công khai 25
Hình 3.1: Mô hình client/server 34
Hình 3.2: Giao diện chính phần mềm mã nguồn mở Mozilla Thunderbird 39
Hình 3.3: Giao diện chính phần mềm mã nguồn mở Zimbra Desktop 42
Hình 3.4: Giao diện đăng nhập 45
Hình 3.5: Giao diện CSDL đăng nhập 45
Hình 3.7: Giao diện gửi mail 46
Hình 4.1: Giao diện sinh khóa 48
Hình 4.2: Demo sinh khoá 49
Hình 4.3: Sơ đồ hoạt động của DES 51
Hình 4.4: Hàm F (F-funtion) dùng trong DES 52
Hình 4.5: Giao diện mã hoá file DES, tripDES 53
Hình 4.6: Chương trình mã hoá file DES, tripDES 53
Hình 4.7: Sơ đồ khối quá trình sinh khóa RSA 54
Hình 4.8: Giao diện mã hoá và giải mã file 56
Hình 4.9: Chương trình mã hoá và giải mã file 56
Hình 4.10: Mô hình cho người dùng SMTP (RFC) 57
Hình 4.11: Mô hình quy trình xác thực người dùng POP3 (RFC) 57
Hình 4.12: Mô hình cho người dùng SMTP/POP3 58
Trang 9viii
Hình 4.13: Giao đăng nhập 59Hình 4.14: Giao diện send mail mã hoá 59Hình 4.15: Giao diện kết quả nhận thƣ 61
Trang 10và làm việc trực tuyến Thư điện tử (e-mail) là một trong những dịch vụ phổ biến nhất trên Internet, giúp mọi người sử dụng máy tính kết nối Internet đều có thể trao
đổi thông tin với nhau
Việc gửi thông tin qua e-mail tiềm ẩn nhiều rủi ro, đặc biệt khi truy cập mạng
ở những nơi công cộng Việc kết nối không mã hoá sẽ dẫn đến thông tin dễ dàng bị xem trộm, bị thay đổi trên đường truyền hoặc ngay cả khi nội dung email đã được tải về trên máy tính cá nhân của người dùng
Để tránh việc bị lộ hoặc bị thay đổi nội dung của thông tin được gửi đi, cần thực hiện mã hoá thông tin trước khi gửi Người nhận, để đọc được cần phải giải mã với khóa thích hợp Do vậy kể cả thông tin bị bên thứ ba truy nhập tới, nhưng nếu không có khóa cũng không thể đọc được do đã bị mã hoá
Do đó việc nghiên cứu về các mô hình mã hoá thông tin và những ứng dụng trong bảo mật nội dung thư điện tử là có ý nghĩa trong thực tế
2 Lịch sử nghiên cứu:
Vấn đề ―Bảo mật thông tin‖ ở trên thế giới đã được chủ trọng từ rất lâu, còn ở Việt nam đa số mới quan tâm khoảng vài năm gần đây Có nhiều phương pháp bảo mật được đưa ra và ứng dụng trong việc gửi/nhận thư điện tử Tuy vậy, việc tìm ra giải pháp bảo mật thông tin, cũng như chứng nhận quyền sở hữu của cá nhân là một vấn đề luôn mới, bảo mật phải luôn cải tiến và nghiên cứu các giải pháp mới để theo kịp sự phát triển của công nghệ
3 Mục đích nghiên cứu của luận văn:
Về mặt lý thuyết, luận văn nhằm mục đích nghiên cứu các phương pháp đảm bảo an toàn trong việc trao đổi thông tin, trong đó đặc biệt chú ý đến các phương
Trang 114 Phương pháp nghiên cứu:
- Thu thập, phân tích các tài liệu và những thông tin liên quan đến đề tài
- Nghiên cứu, tổng hợp các tài liệu đã được công bố có liên quan đến đề tài của các tác giả trong và ngoài nước
- Nghiên cúu quá trình mã hoá cũng như giải mã các file dữ liệu cũng như các vấn đề liên quan đến ứng dụng thực tế như sinh khóa, mã hoá, qua đó phát triển ứng dụng
Trang 123
CHƯƠNG I: AN TOÀN THÔNG TIN (ATTT)
1.1 Khái quát về an toàn thông tin:
Vào thập niên cuối của thế kỷ 20, sự giải thích thuật ngữ ATTT (information security) [4] đã có hai sự thay đổi quan trọng Trước khi có sự phổ biến rộng rãi của các thiết bị tự động xử lý số liệu, các biện pháp bảo vệ an toàn thông tin mà các tổ chức thực hiện thường dựa trên:
+ Các giải pháp vật lý – như bổ sung thêm các khóa cho các két sắt trong đó
có lưu giữ các tài liệu quan trọng
+ Các giải pháp hành chính – kiểm tra hồ sơ của các cá nhân khi thu nhận vào làm việc
An toàn thông tin [1,2] là các hoạt động bảo vệ tài sản thông tin và là một lĩnh vực rộng lớn Nó bao gồm cả những sản phẩm và những quy trình nhằm ngăn chặn truy cập trái phép, hiệu chỉnh, xóa thông tin, An toàn thông tin liên quan đến hai khía cạnh đó là an toàn về mặt vật lý và an toàn về mặt kỹ thuật
Mục đích của ATTT là bảo vệ các thông tin Tuy nhiên, các sản phẩm và hệ thống thường luôn tồn tại những điểm yếu dẫn đến những rủi ro có thể xảy ra
Các đối tượng tấn công (tin tặc) có chủ tâm đánh cắp, tìm cách khai thác các điểm yếu để tấn công, lợi dụng hoặc phá hoại dữ liệu của các chủ sở hữu, tạo ra các nguy cơ và các rủi ro cho các hệ thống thông tin
Đảm bảo ATTT [4] là đảm bảo an toàn kỹ thuật cho hoạt động của các cơ sở
hệ tầng thông tin (HTTT), trong đó bao gồm đảm bảo an toàn cho cả phần cứng và phần mềm hoạt động; ngăn ngừa khả năng lợi dụng mạng và các cơ sở HTTT để thực hiện các hành vi trái phép; đảm bảo các tính chất bí mật, toàn vẹn, sẵn sàng của thông tin trong lưu trữ, xử lý và truyền dẫn trên mạng
Với các biện pháp đảm bảo ATTT người dùng có được công cụ trong tay để nhận thức được các điểm yếu, giảm thiểu các điểm yếu, ngăn chặn các nguy cơ tấn công, làm giảm các yếu tố rủi ro
Trang 13Trong mối liên hệ này đã xuất hiện thuật ngữ an toàn mạng (network securty), được hiểu không chỉ cho một mạng cục bộ riêng lẻ mà cho cả một tổ hợp các mạng (mạng internet)
ATTT là một trong những lĩnh vực hiện đang rất được quan tâm Một khi internet ra đời và phát triển thì nhu cầu trao đổi thông tin đã trở nên cần thiết và phát triển không ngừng
Mục tiêu của việc nối mạng là để cho mọi người có thể dùng chung và trao đổi tài nguyên trên toàn cầu Cũng chính vì vậy mà tài nguyên sẽ bị phân tán, dẫn đến một điều hiển nhiên là chúng sẽ dễ bị xâm phạm Càng giao thiệp nhiều thì càng dễ bị tấn công, đó là một quy luật Từ đó, vấn đề ATTT cũng xuất hiện
1.2 Các đặc điểm của ATTT:
ATTT nhằm đảm bảo ba đặc điểm quan trọng nhất của thông tin và là tiêu chuẩn cho tất cả các hệ thống an ninh (hình 1.1) gồm: Tính bí mật, tính toàn vẹn, tính sẵn sàng
Tùy thuộc vào từng ứng dụng và hoàn cảnh cụ thể, mà một trong ba nguyên tắc trên sẽ quan trọng hơn những cái khác
Hình 1.1: Các mục tiêu của ATTT [4, 6]
Toàn vẹn
Phá hoại
Mô hình
vi phạm
Sửa đổi
Truy nhập
Trang 145
1.2.1 Tính bí mật:
Bí mật là sử dụng để tránh việc tiết lộ trái phép những thông tin quan trọng, nhạy cảm Đó là khả năng đảm bảo mức độ bí mật cần thiết được đảm bảo và thông tin nhạy cảm, quan trọng đó được che giấu với người dùng không được cấp phép
Đối với an ninh mạng thì tính bí mật là điều đầu tiên được nói đến và nó thường xuyên bị tấn công nhất
Một giải pháp đảm bảo an toàn là xác định quyền được truy cập đối với thông tin đang tìm kiếm, với một số lượng người sử dụng nhất định và một số lượng thông tin là tài sản nhất định Trong trường hợp kiểm soát truy cập, nhóm người truy cập sẽ được kiểm soát xem họ đã truy cập những dữ liệu nào Tính bí mật là sự đảm bảo rằng các chức năng kiểm soát truy cập có hiệu lực
Trang 15- Chặn bắt thông tin (interception) [8]: Là hình thức tấn công vào tính bí mật của thông tin Kẻ tấn công có thể truy nhập tới tài nguyên thông tin
- Sửa đổi thông tin (Modification) [4]: Là hình thức tấn công vào tính toàn vẹn của thông tin Kẻ tấn công truy nhập, chỉnh sửa thông tin trên mạng
- Chèn thông tin giả mạo (Fabrication) [4]: Là hình thức tấn công vào tính xác thực của thông tin Kẻ tấn công chèn các thông tin và dữ liệu giả vào hệ thống
1.3.2 Nguy cơ mất ATTT:
Có rất nhiều nguy cơ mất ATTT song trong đề tài này chỉ nêu ba nguy cơ làm mất ATTT trong bảo mật thƣ điện tử đó là
Nguồn thông tin
Đích thông tin Chặn bắt
thông tin
Nguồn
thông tin
Đích thông tin
thông tin
Nguồn thông tin
Đích thông tin Chặn thông
tin gửi
Trang 167
Thứ nhất nguy cơ mất an toàn thông tin do sử dụng e-mail: Là một dạng tấn công có chủ đích bằng thư điện tử là tấn công bằng email giả mạo giống như email được gửi từ một người thân trong gia đình, bạn bè, đồng nghiệp có thể gắn tập tin đính kèm nhằm làm cho thiết bị bị nhiễm virus Cách thức tấn công này thường nhằm vào một cá nhân hay một tổ chức cụ thể Người gửi chỉ đơn giản giả địa chỉ nguồn hay sử dụng một khoản mục email mới để gửi e-mail phá hoại đến người
nhận Đôi khi một e-mail được gửi đi với một tiêu đề hấp dẫn như ―I love you‖
Những e-mail phá hoại có thể mang một tệp đính kèm chứa một virus, một sâu mạng, phần mềm gián điệp hay một trojan horse Một tệp đính kèm dạng văn bản word hoặc dạng bảng tính có thể chứa một macro (một chương trình hoặc một tập các chỉ thị) chứa mã độc Ngoài ra, e-mail cũng có thể chứa một liên kết tới một web site giả
Thứ hai nguy cơ bị mất, hỏng, sửa đổi nội dung thông tin: Người dùng có thể
vô tình để lộ mật khẩu hoặc không thao tác đúng quy trình tạo cơ hội cho kẻ xấu lợi dụng để lấy cắp hoặc làm hỏng thông tin Kẻ xấu có thể sử dụng công cụ hoặc kỹ thuật của mình để thay đổi nội dung thông tin (các file) nhằm sai lệnh thông tin của chủ sở hữu hợp pháp
Thứ ba nguy cơ xâm nhập do bị tấn công bằng cách phá mật khẩu: Quá trình truy cập vào một hệ điều hành có thể được bảo vệ bằng một khoản mục người dùng
và một mật khẩu Ta có thể dễ dàng tìm kiếm một số ví dụ về các chương trình đoán mật khẩu trên mạng Internet như: Xavior, Authforce và Hypnopaedia Các chương trình dạng này làm việc tương đối nhanh và luôn có trong tay những kẻ tấn công
- Nguy cơ mất an toàn thông tin trong quá trình truyền tin: Trong quá trình lưu thông và giao dịch thông tin trên mạng internet nguy cơ mất an toàn thông tin trong quá trình truyền tin là rất cao do kẻ xấu chặn đường truyền và thay đổi hoặc phá hỏng nội dung thông tin rồi gửi tiếp tục đến người nhận
Ngoài ra có các nguy cơ khác như bị tấn công bởi các phần mềm độc hại, mất an toàn thông tin về khía cạnh vật lý, xâm nhập từ lỗ hổng bảo mật
Trang 178
1.4 Đặc tính ATTT thế hệ mới (New Generation - NG)
1.4.1 Đặc tính thế hệ mới thế hệ mới trong an toàn vận hành
Nhận thức mối đe dọa dựa trên việc kết hợp sản phẩm và phân tích thông minh, đặc tính này chủ yếu đề cập đến khả năng mạng lưới nhận biết mối đe dọa ATTT thông qua Internet, thực hiện các báo cáo về nhận biết mối đe dọa (như thống
kê nhật ký, thông tin cảnh báo, thông tin lỗ hổng cấu hình hệ thống) và phân tích quản lý, nhanh chóng thu thập các thông tin về việc thay đổi trạng thái an toàn hệ thống (thống kê, tương quan, hội nhập, dự báo); dự báo xu hướng phát triển mạng lưới hoặc trạng thái ATTT hệ thống, đánh giá nguy cơ bảo mật đang phải đối mặt
a) Trực quan về trạng thái ATTT và quản lý thông tin dữ liệu:
Tính năng này chủ yếu đề cập đến việc thu thập các thông tin về an toàn dữ liệu từ các sản phẩm an toàn (như thông tin cấu hình, cảnh báo, nhật ký), phân tích quá trình, đánh giá dữ liệu (trạng thái an toàn, phân tích kết quả ) và quản lý hệ thống cấu hình của sản phẩm an toàn, quản lý chức năng, chiến lược, thông qua trực quan dùng hình ảnh biểu thị giúp người dùng giao diện dễ sử dụng
b) Duy trì trạng thái ATTT vòng kín dựa trên thiết bị cảm ứng mối đe dọa, đánh giá trạng thái, phản ứng nhanh và chủ động phòng chống
Vòng kín phản hồi thông tin hệ thống điều khiển, thường được sử dụng để
mô tả các phương tiện để đo lường sản lượng hệ thống An toàn của nền tảng quản
lý ATTT mạng dựa trên trạng thái liên tục cải tiến Đặc điểm hoạt động của các vòng kín:
- Thuộc bộ sưu tập cơ bản các mối đe dọa ATTT tình báo, phân tích tình báo
và đánh giá tình hình trên toàn bộ mạng lưới Tối ưu hóa trạng thái an toàn, tinh chỉnh chính sách bảo mật để đạt được phát hiện thời gian thực của các mối đe dọa
an toàn, phản ứng nhanh chóng và phòng ngừa chủ động
- Sau khi một vòng khép kín hoàn chỉnh cho mỗi chu kỳ (mối đe dọa nhận thức, đánh giá tình hình, phản ứng nhanh, phòng ngừa hoạt động), có thể cải thiện tình trạng của mạng
Trang 189
1.4.2 Đặc tính thế hệ mới trong an toàn thông minh:
a) Kiểm tra tình trạng bất thường dựa vào các mô hình hành vi và độ an toàn:
Từ các mô hình về hành vi và lưu lượng để tìm thấy những hành vi bất thường của hệ thống Trước hết một chủ thể trong hệ thống bảo vệ (người dùng, quy trình) truy cập vào hệ thống (dữ liệu, tài nguyên của hệ thống) sau đó đặt ra một định mức hoặc một mô hình đặc trưng lưu lượng mạng, nếu khi kiểm tra phát hiện
có hành vi vượt quá định mức này (hoặc mô hình đặc trưng lưu lượng mạng) sẽ được quy vào là hành vi bất thường (hoặc lưu lượng mạng bất thường)
Chức năng này có thể nâng cao khả năng phát hiện những hiểm họa an ninh chưa lường trước, những chức năng chưa công bố và khả năng đối phó với các tấn công 0-day(zero-day) Lỗi "zero-day" là thuật ngữ dùng để chỉ những lỗi bảo mật nguy hiểm có thể bị khai thác bằng các đoạn mã hay chương trình và hoàn toàn chưa được vá lỗi từ nhà sản xuất.
Tận dụng kĩ thuật an toàn tín nhiệm có thể tăng tỷ lệ phát hiện thâm nhập và đánh giá đe dọa của sản phẩm
b) Khả năng phối hợp trong môi trường tấn công và bảo vệ
Chức năng chủ yếu nói về việc chia sẻ thông tin, hợp tác hoàn thành nhiệm
vụ, tích hợp các hệ thống bảo vệ an toàn trong môi trường tấn công và phòng vệ, thực hiện các biện pháp bảo vệ an toàn, phối hợp lẫn nhau để đạt hiệu quả cao hơn
Sự phối hợp được thực hiện trong quy mô giữa các hệ thống với nhau và cả giữa những người dùng với nhau
1.4.3 Đặc tính thế hệ mới trong điện toán đám mây và an ninh ảo hóa
a) Ảo hóa sản phẩm bảo mật trong môi trường điện toán đám mây
Ảo hóa sản phẩm bảo mật trong môi trường điện toán đám mây [6] có hai tầng ý nghĩa Thứ nhất tận dụng kỹ thuật ảo hóa thực hiện ảo hóa sản phẩm bảo mật như ảo hóa nền tảng phần mềm, phần cứng sản phẩm, hỗ trợ quản lý điều chỉnh và
di chuyển tài nguyên của máy ảo, hỗ trợ tính năng an toàn trong sản phẩm ảnh ảo Thứ hai tiến hành triển khai ảo hóa linh hoạt nhanh chóng sản phẩm an toàn trong
Trang 19b) Đám mây an toàn trong môi trường điện toán đám mây (MSS\SaaS)[5,6]
Tận dụng đám mây, kỹ thuật ảo hóa, các sản phẩm an toàn ảo hóa, dịch vụ SaaS an toàn và nền tảng an toàn vận hành để cung cấp dịch vụ giám sát an toàn cho người dùng Chức năng này được ứng dụng trong:
+ Hỗ trợ đánh giá độ an toàn và dịch vụ chia sẻ của nền tảng quản lý an toàn vận hành:
- Đánh giá trạng thái ATTT toàn cầu, các dịch vụ dự báo nguy cơ;
- Đưa ra những kiến nghị về các phương thức bảo mật tốt nhất, chia sẻ tư vấn
online về kiến thức bảo mật (dịch vụ SaaS) [5]
+ Cung cấp dịch vụ giám sát an toàn bao gồm các chức năng: phát hiện, phân tích, phòng chống
1.5 Kết luận:
Chương này đã giới thiệu, phân tích các biện pháp, các đặc điểm và kỹ thuật đảm bảo ATTT chính là mang lại sự tin cậy cho các sản phẩm và hệ thống thông tin Đưa ra mô hình nghiên cứu của ATTT thế hệ mới cùng với những mô hình nhân vật liên quan, dựa vào những mô hình này mô tả và phân tích sự biến hóa và những thử thách mới kèm theo Tiếp theo đó tiến hành tổng hợp những mối đe dọa mới và những nguy cơ tiềm ẩn trong môi trường tấn công và phòng vệ, đưa ra những dự đoán và những hướng phát triển cần được đột phá trong tương lai gồm: an toàn vận hành, an toàn thông minh, đám mây và an toàn ảo hóa, an toàn dữ liệu và các mục tiêu của ATTT, đồng thời tổng kết phân tích các đặc điểm nổi bật của các lĩnh vực trên
Trang 2011
CHƯƠNG II: BẢO MẬT
2.1 Các phương pháp mã hóa-giải mã:
2.1.1 Khái niệm mã hóa và giải mã:
Mã hóa (Encrypt): Là phương pháp để biến thông tin dạng siêu văn bản
(video, văn bản, hình ảnh ) sang dạng thông tin không thể hiểu được gọi là bản mã (ciphertext) nếu không có phương tiện giải mã với mục đích giữ bí mật thông tin đó
Giải mã (Decrypt): Là phương pháp để chuyển từ dạng thông tin đã được mã
hóa sang dạng thông tin ban đầu, quá trình ngược của mã hóa [8]
Mã hóa có rất nhiều ứng dụng trong thực tế như bảo vệ giao dịch tài chính trực tuyến (rút tiền ATM, mua bán online qua mạng,…), bảo vệ bí mật cá nhân Nếu kẻ tấn công đã vượt qua tường lửa và các hệ thống bảo vệ khác thì mật mã chính là ―hàng phòng vệ‖ cuối cùng cho dữ liệu Các thông tin thường được tổ chức dưới dạng văn bản thường, người gửi sẽ làm nhiệm vụ mã hóa các thông tin này, kết quả thu được là các bản mã Bản mã này được gửi đi trên đường truyền tới người nhận Người nhận sau khi nhận bản mã sẽ giải mã để lấy được nội dung thông tin
mà người gửi muốn trao đổi
2.1.2 Mã hóa kết nối
Để bảo đảm việc kết nối giữa nhà cung cấp dịch vụ email với máy tính hay thiết bị khác, cần cài đặt mã hóa giao thức SSL và TLS tương tự như cách thức bảo
vệ khi kiểm tra tài khoản ngân hàng hay thực hiện giao dịch trực tuyến
Khi kiểm tra email qua trình duyệt web cần mất một chút thời gian để chắc rằng việc mã hóa giao thức SSL/TLS được kích hoạt Nếu thực hiện đúng, địa chỉ website sẽ bắt đầu bằng https thay vì là http Tùy vào trình duyệt thấy một số dấu hiệu bổ sung, ví dụ như một thông báo bên cạnh thanh địa chỉ hay biểu tượng ổ khóa màu vàng trên thanh trạng thái ở phía dưới cùng của cửa sổ trình duyệt
Khi dùng chương trình email như gmail.com để nhận email hay một ứng dụng email trên điện thoại thông minh, máy tính bảng, cần cố gắng sử dụng mã hóa SSL/TLS
Trang 212.1.3 Mã hóa email gửi đi
Chúng ta có thể mã hóa nội dung email cá nhân trong suốt quá trình email di chuyển, nhưng người gửi và người nhận phải thực hiện một số thao tác để tính bảo mật được bảo đảm Có thể dùng các tính năng mã hóa tích hợp trong dịch vụ email hay có thể tải phần mềm mã hóa hay các ứng dụng phụ trợ sử dụng phương thức OpenPGP
Việc hỗ trợ chuẩn S/MIME được tích hợp sẵn trong nhiều trình email, trong
đó có Mozilla thunderbird Ngoài ra, các tiện ích trên trình duyệt web, như Gmail S/MIME dành cho Firefox cũng hỗ trợ cho các nhà cung cấp dịch vụ email nền web
Chuẩn mã hóa email OpenPGP có một vài biến thể, gồm PGP và GNU Privacy Guard (GnuPG) Các phần mềm miễn phí hay thương mại và ứng dụng phụ trợ (add-on), như Gpg4win, PGP Desktop Email để hỗ trợ cho mã hóa theo chuẩn OpenPGP
2.1.4 Mã hóa email lưu trữ
Nếu sử dụng trình email trên máy tính hay ứng dụng trên thiết bị di động hơn
là qua trình duyệt web, nên cân nhắc dữ liệu email được lưu trữ đã mã hóa để những
kẻ tấn công trên mạng không thể truy cập vào nội dung email đã lưu, còn nếu lỡ mất hay bị ai đó đánh cắp thiết bị
Cách tốt nhất là mã hóa toàn bộ nội dung và tập tin trên laptop hay thiết bị di động, bởi vì các thiết bị di động thường rơi vào trường hợp đặc biệt là bị mất hay đánh cắp
Trang 2213
Các hệ điều hành như BlackBerry và iOS (như iPhone, iPad và iPod Touch)
đã cung cấp loại mã hóa này trong nhiều năm qua; hệ điều hành Android hỗ trợ chỉ phiên bản 3.0 hay cao hơn như TouchDown cung cấp mã hóa dành cho các tài khoản Exchange
Ví dụ: Nếu Windows dùng phiên bản Professional, Business hay Ultimate thì có thể
mã hóa nội dung email, không phụ thuộc vào chương trình email người dùng, nhờ vào tính năng Encrypted File System (EFS) tích hợp sẵn trong Windows Trước hết, tìm các dạng tập tin mà trình email sử dụng để lưu trữ các nội dung email; Microsoft Outlook dùng tập tin PST để lưu nội dung, hay tập tin OST dành cho các tài khoản Exchange Trong Windows Vista và 7 Các mục dưới đâylàm rõ hơn các vấn đề mã hoá và giải mã như thế nào
2.1.5 Mã hoá thông tin:
Trong khoa học mật mã thì mã hóa thông tin là việc sử dụng các kỹ thuật thích hợp để biến đổi một bản thông điệp có ý nghĩa thành một dãy mã ngẫu nhiên
để liên lạc với nhau giữa người gửi và người nhận mà người ngoài cuộc có thể có được sự hiện hữu của dãy mã ngẫu nhiên đó nhưng khó có thể chuyển thành bản thông điệp ban đầu nếu không có ―khóa‖ để giải mã của thông điệp Mã hóa và giải
mã gồm:
- Bản rõ (plaintext or cleartext): Chứa các xâu ký tự gốc, thông tin trong bản
rõ là thông tin cần mã hoá để giữ bí mật
- Bản mã (ciphertext): Chứa các ký tự sau khi đã được mã hoá, mà nội dung của nó được giữ bí mật
- Mật mã học (Crytography) Là một ngành khoa học chuyên nghiên cứu về các vấn đề bảo mật Mật mã liên quan đến việc giữ gìn thông tin, thường là những thông tin nhạy cảm, bí mật
- Sự mã hoá (Encryption): Quá trình che dấu thông tin bằng phương pháp nào đó để làm ẩn nội dung bên trong gọi là sự mã hoá
- Sự giải mã (Decryption): Quá trình biến đổi trả lại bản mã bản thành bản rõ gọi là giải mã
Trang 23Các hệ mã mà trong đó, khi biết khoá lập mã ta có thể tìm ra khoá giải mã,
đồng thời việc giải mã cũng đòi hỏi thời gian như việc lập mã như vậy gọi là mã
vệ bí mật cho nhau trong quá trình trao đổi thông tin
Hình 2.1: Mô hình mã hóa đối xứng [4]
C=E(P,K); P=D(C,K) Trong đó: P (Plaitext): bản rõ; K (secret Key): khóa bí mật;
C (Ciphertext): bản mã; D (Decrypt algorithm): thuật toán giải mã; E (Encrypt
algorithm): thuật toán mã hóa
a) Mã hóa khối (Block cipher)
Dữ liệu đầu vào được mã hóa từng khối (block) thông tin và tạo đầu ra theo từng khối thông tin Độ dài mỗi khối gọi là block size, thường được tính bằng đơn
vị bit Độ dài của khối thông tin thông thường là cố định ở 64 bit hoặc 128 bit Một
số thuật toán có độ dài khối thay đổi nhưng không phổ biến Trước những năm giữa của thập kỷ 1990 thì độ dài 64 bit thường được sử dụng Từ đó trở về sau thì khối
128 bit được sử dụng rộng rãi hơn Trong các chế độ mã hóa khối thì người ta
Trang 2415
thường phải bổ sung thêm một số bit cho văn bản (padding) để văn bản chứa số nguyên lần các khối Block cipher thích hợp cho việc mã hóa một tin nhắn đơn (single message) Block cipher được dùng cả trong hệ mã hóa khóa bí mật và hệ mã hóa khóa công khai
b) Mã hóa dòng (Stream cipher):
Dữ liệu đầu vào được mã hóa từng bit một gọi là phương pháp thuật toán luồng Các thuật toán luồng có tốc độ nhanh hơn các thuật toán khối, được dùng khi khối lượng dữ liệu cần mã hóa chưa được biết trước Có thể coi thuật toán luồng là thuật toán khối với kích thước mỗi khối là 1 bit
c) Khái niệm Padding:
Padding là thành phần bổ sung thêm một số bit cho văn bản để văn bản chứa số nguyên lần số khối Có nhiều cách khác nhau để thêm padding, nhưng hệ
mã hóa khóa bí mật có hai kiểu padding là No Padding và PKCS#5 hay PKCS#7 padding
- No padding: Nghĩa của nó là không thêm padding Điều này đòi hỏi dữ liệu mã hóa phải có độ dài là nguyên lần của số khối
- PKCS#5(7) được dùng phổ biến hơn trong hệ mã hóa khóa bí mật PKCS#5 (7) gồm PKCS và một số do chuẩn PKCS tạo ra
Last Block of Plaintext
Last Block of Plaintext
Trang 2516
d) Khái niệm Mode:
Mode chỉ ra một block bản gốc được mã hóa thành block bản mã như thế nào
và ngược lại
Có bốn chế độ làm việc đã được phát triển cho hệ mã hóa khóa bí mật
- Chế độ sách mã điện tử (ECB – Electronic Code Book)
- Chế độ liên kết khối mã (CBC – Cipher Block Chaining)
- Chế độ phản hồi mã (CFB – Cipher Feed Back)
- Chế độ phản hồi đầu ra (OFB – Output Feed Back)
Ở chế độ ECB và OFB, sự thay đổi của một block plaintext xi 64 bit sẽ làm thay đổi khối bản mã yi tương ứng, nhưng các block bản mã khác không bị ảnh hưởng OFB thường dùng để mã hóa khi truyền vệ tinh Mặt khác ở chế độ CBC
và CFB, nếu một block plaintext bị thay đổi, thì tất cả các block tiếp theo của bản
mã cũng sẽ bị thay đổi Như vậy CBC và CFB có thể được sử dụng rất hiệu quả cho mục đích xác thực Đặc biệt các chế độ này có thể dùng để tạo mã xác thực bản in (MAC)
Ngoài bốn chế độ trên còn có các chế độ khác như (PCBC) PCBC là một chế độ giống như CBC, nhưng khi một block của bản gốc được mã hóa PCBC dùng
cả block bản gốc lẫn block bản mã trước đó (thay vì chỉ sử dụng block bản mã trước
đó như CBC)
e) Vector khởi tạo (Initialization Vector-IV)
Là một giá trị được gắn thêm vào dữ liệu trước khi mã hóa IV được khởi tạo một cách ngẫu nhiên (tương tự như thành phần salt trong thuật toán PBE) IV có độ dài tùy theo thuật toán được sử dụng
2.2.2 Mã hóa cổ điển:
Là một dạng của mật mã học đã được sử dụng từ rất lâu xuất hiện đầu tiên khoảng thế kỷ thứ 3 trước công nguyên (cách đây khoảng 2000 năm) trong lịch sử phát triển của loài người nhưng ngày nay đã bị ―bỏ rơi‖ do các phương thức mã hóa này quá đơn giản và những kẻ tấn công có thể dễ dàng bẻ khóa thông qua nhiều phương thức (ví dụ như dùng máy tính kiểm thử hết mọi trường hợp hay dựa trên
Trang 26 Transposition - Hoán vị:
Phương pháp mã hóa trong đó các kí tự trong văn bản ban đầu chỉ thay đổi vị trí cho nhau còn bản thân các kí tự không hề bị biến đổi như mã Transposition Cipher
2.2.3 Hệ mã hóa khóa bí mật hiện đại:
Các thuật toán mã hoá khoá bí mật hiện nay được phát triển dựa trên nền tảng của hệ mã hóa cổ điển Thuật toán có nhiều tên gọi khác nhau như thuật toán khóa bí mật, thuật toán khóa đơn giản hay thuật toán một khóa Các thuật toán cổ điển sử dụng cùng một khóa cho mã hóa và giải mã nên yêu cầu phải có sự thoả thuận trước giữa người gửi và người nhận về việc sử dụng khóa và khóa này phải được giữ bí mật
Hình 2.3: Mô hình thuật toán khoá bí mật a) Thuật toán DES và TripleDES:
DES (viết tắt của Data Encryption Standard, hay Tiêu chuẩn Mã hóa Dữ liệu) là một phương pháp mật mã hóa được FIPS (Tiêu chuẩn xử lý thông tin Liên
bang Hoa Kỳ) [12] chọn làm chuẩn chính thức vào năm 1976 Sau đó chuẩn này
Reytuyiofgjhkjj ghghghugh fg Fgghgjhjjhjhj cvcvrègh
Trang 2718
được sử dụng rộng rãi trên phạm vi thế giới Ngay từ đầu, thuật toán của nó đã gây
ra rất nhiều tranh cãi, do nó bao gồm các thành phần thiết kế mật, độ dài khóa tương đối ngắn, và các nghi ngờ về cửa sau để cơ quan An ninh quốc gia Hoa Kỳ (NSA)
có thể bẻ khóa Do đó, DES đã được giới nghiên cứu xem xét rất kỹ lưỡng, việc này
đã thúc đẩy hiểu biết hiện đại về mật mã khối (block cipher) và các phương pháp
thám mã tương ứng
Hiện nay DES được xem là không đủ an toàn cho nhiều ứng dụng Nguyên nhân chủ yếu là độ dài 56 bit của khóa là quá nhỏ Khóa DES đã từng bị phá trong vòng chưa đầy 24 giờ Đã có rất nhiều kết quả phân tích cho thấy những điểm yếu
về mặt lý thuyết của mã hóa có thể dẫn đến phá khóa, tuy chúng không khả thi trong thực tiễn Thuật toán được tin tưởng là an toàn trong thực tiễn có dạng Triple DES (thực hiện DES ba lần), mặc dù trên lý thuyết phương pháp này vẫn có thể bị phá
Gần đây DES đã được thay thế bằng AES (Advanced Encryption Standard, hay tiêu
chuẩn mã hóa tiên tiến)
Trong một số tài liệu, người ta phân biệt giữa DES (là một tiêu chuẩn) và
thuật toán DEA (Data Encryption Algorithm, hay thuật toán mã hóa dữ liệu) - thuật
toán dùng trong chuẩn DES
Lịch sử phát triển :
Khởi nguyên của thuật toán đã có từ đầu thập niên 1970 Vào năm 1972, sau khi tiến hành nghiên cứu về nhu cầu an toàn máy tính của chính phủ Hoa Kỳ, Cục Tiêu chuẩn Liên bang Hoa Kỳ (National Bureau of Standard - NBS), hiện nay đã đổi tên thành Viện Tiêu chuẩn và Công nghệ Quốc gia Hoa Kỳ (National Institute
of Standards and Technology - NIST), đã nhận ra nhu cầu về một tiêu chuẩn của chính phủ dùng để mật mã hóa các thông tin mật/nhạy cảm Vào ngày 15 tháng 5 năm 1973, sau khi tham khảo với NSA, NBS đưa ra kêu gọi thiết kế một thuật toán
mã hóa có thể đáp ứng được các tiêu chuẩn nghiêm ngặt Tuy nhiên không có đề xuất nào đáp ứng được yêu cầu đề ra Ngày 27 tháng 8 năm 1974, NBS đưa ra kêu gọi lần thứ hai Lần này công ty IBM đã đưa ra một đề xuất có thể chấp nhận được
Đề xuất này được phát triển trong những năm 1973-1974 dựa trên một thuật toán đã
Trang 2819
có từ trước - thuật toán mật mã Lucifer của Horst Feistel Đội ngũ tại công ty IBM liên quan tới quá trình thiết kế bao gồm: Feistel, Walter Tuchman, Don Coppersmith, Alan Konheim, Carl Meyer, Mike Matyas, Roy Adler, Edna Grossman, Bill Notz, Lynn Smith và Bryant Tuckerman Các chế độ họat động của DES
Có bốn chế độ làm việc đã đuợc phát triển cho DES
- Chế độ sách mã điện tử (ECB)
- Chế độ phản hồi mã (CFB)
- Chế độ liên kết khối mã (CBC – Cipher Block Chaining)
- Chế độ phản hồi đầu ra (OFB)
Nhận xét: Hạn chế của DES, đó chính là kích thước của không gian khóa 256 là quá nhỏ để đảm bảo an toàn thật sự DES đã trải qua nhiều năm đánh giá và ―tấn công‖ và được xem là an toàn Chỉ vào tháng 7/1997 DES bị tấn công thành công bởi nhiều máy tính nối qua Internet, nhưng ngay cả những kẻ tấn công cũng cho rằng DES vẫn an toàn đối với nhiều ứng dụng
b) TripleDES
TripleDES một biến thể an toàn hơn của DES còn được gọi là DESede hay 3DES TripleDES có tính bảo mật cao hơn DES do sử dụng 3 vòng DES với các khóa khác nhau Vòng đầu tiên và vòng thứ ba là vòng mã hóa, vòng thứ hai là vòng giải mã DESede có thể dùng hai hoặc ba khóa có độ dài 56, 112 hoặc 168 nếu dùng hai khóa thì khóa đầu tiên được dùng cho vòng thứ nhất và vòng thứ ba, khóa thứ hai dùng cho vòng thứ hai
- Thuật toán
Triple DES sử dụng một "bó chìa khóa" đó bao gồm ba DES phím,
K 1, K 2, K 3, mỗi 56 bit (không bao gồm các bit chẵn lẻ ) Các thuật toán mã hóa là:
ciphertext = E K3 (D K2 (E K1 (plaintext)))
Tức là, DES mã hóa với K1, DES giải mã với K2, sau đó mã hóa DES với K3 Giải mã là ngược lại:
Trang 2920
plaintext = D K1 (E K2 (D K3 (ciphertext))) Tức là, giải mã với K3, mã hóa với K2, sau đó giải mã với K1
Mỗi mã hóa ba mã hóa một khối 64 bit dữ liệu
Trong mỗi trường hợp hoạt động giữa là đảo ngược của người đầu tiên và cuối cùng Điều này cải thiện sức mạnh của thuật toán khi sử dụng tùy chọn keying 2, và cung cấp khả năng tương thích ngược với DES với tùy chọn 3 khóa
3DES Mã hóa với ba khóa 56 bit (Mã hóa với hai khóa 56 bit ( 112 bit))
NGƯỜI GỬI
Bước 1: Mã hóa plaintext bằng khóa thứ nhất
Bước 2: Mã hóa văn bản được tạo ra ở bước 1 bằng khóa thứ hai
Bước 3: Mã hóa văn bản được tạo ra ở bước 2 bằng khóa thứ ba, tạo ra bản mã gửi cho người nhận
NGƯỜI NHẬN
Bước 1: Giải mã bản mã với khóa thứ ba
Bước 2: Giải mã văn bản được tạo ra ở bước 1 bằng khóa thứ hai
Bước 3: Giải mã văn bản được tạo ra ở bước 2 bằng khóa thứ nhất, tạo ra bản gốc
do người gửi gửi tới
3DES Mã hóa với hai khóa 56 bit: Mã hóa với một khóa 56 bit
NGƯỜI GỬI
Bước 1: Mã hóa plaintext bằng khóa thứ nhất
Bước 2: Giải mã văn bản được tạo ra ở bước 1 bằng khóa thứ hai
Bước 3: Mã hóa văn bản được tạo ra ở bước 2 bằng khóa thứ nhất, tạo ra bản mã gửi cho người nhận
NGƯỜI NHẬN
Bước 1: Giải mã bản mã với khóa thứ nhất
Bước 2: Mã hóa văn bản được tạo ra ở bước 1 bằng khóa thứ hai
Bước 3: Giải mã văn bản được tạo ra ở bước 2 bằng khóa thứ nhất, tạo ra bản gốc
do người gửi gửi tới
Trang 3021
Mặc dù 3DES có tính bảo mật cao hơn DES, nhưng thực tế ít được sử dụng
vì để tạo ra được bản mã phải chạy ba lần DES, chiếm nhiều bộ nhớ nên tốc độ chậm
c) AES – Advanced Encrypt Standard:
Từ những nhược điểm của DES và Triple DES, tháng 9/1997 Viện Tiêu chuẩn và Công nghệ Quốc gia Hoa Kỳ (NIST) chính thức kêu gọi hưởng ứng cuộc thi xây dựng thuật toán cho AES
Từ tháng 8/1998 đến 5/2000 sau hai vòng thi chọn ra được năm phương án vào chung kết, với sự chọn lựa tỉ mỉ cả năm thuật toán từ mọi phương diện, ban tổ chức đã chọn Rijndael làm thuật toán cho AES Rijndael được phát triển bởi Joan Daemen và Vincent Rijman Rijndael cho phép độ dài của khóa là 128, 192, và 256 Block của thuật toán này là có kích thước 128, 192, 256
Các tính năng của AES như sau
Symmetric mật mã khối đối xứng chính
dữ liệu 128-bit, các phím 128/192/256-bit
Mạnh hơn và nhanh hơn so với Triple-DES
Cung cấp các đặc điểm kỹ thuật đầy đủ và chi tiết thiết kế
Phần mềm thực hiện được trong C và Java
d) Blowfish:
Năm 1993 Bruce Schneier phát triển Blowfish là thuật toán mã hóa khối Blowfish có tốc độ nhanh có tính bảo mật cao hơn DES Độ dài khóa cũng lớn hơn rất nhiều so với DES, 3DES có thể lên tới 448 bit
Thuật toán Blowfish cũng mã hóa từng block 64 bit gồm hai phần: Phần phát triển khóa và phần mã hóa dữ liệu
Phát triển khóa: chuyển một khóa có độ dài lớn nhất 448 bit thành một mảng khóa con tổng cộng 4168 byte
Mã hóa dữ liệu: được thực hiện qua 16 vòng
d) IDEA – International Data Encryption Algorithm
(Giải thuật mã hóa dữ liệu Quốc tế)
Trang 3122
IDEA là một giải thuật mã hóa khóa mật theo khối được phát triển bởi Viện công nghệ Swiss Federal Nó dùng khóa 128 bit so với khóa 56 bit của DES và mã hóa một khối 64 bit tại mỗi thời điểm Giải thuật được phép sử dụng tự do, và không đòi hỏi bản quyền Nó được hiện thực trong PGP (Pretty Good Privacy), một công cụ mã hóa thường được dùng trong các chương trình e-mail
IDEA đang được toàn xã hội thừa nhận và được xem như một sự chọn lựa tốt hơn cả DES (Data Encrytion Standard) Tốc độ mã hóa cao, và nó được hiện thực trên các chíp có thể mã hóa ở tốc độ 177 Mbits/sec Giải thuật được xem là phù hợp cho thương mại điện tử và có thể áp dụng cho toàn thế giới
e) PBE ( Password – Based Encryption)
PBE – là thuật toán dùng password như một khóa PBE dùng kết hợp giữa hashing và một thuật toán trong hệ mã hóa khóa bí mật Password được hash dùng thuật toán Message digest SHA-1 Bản hash này được dùng như một khóa thông thường trong hệ mã hóa khóa bí mật
- Password: Mật khẩu, là một hay nhiều từ mà người dùng phải biết để được cấp quyền truy cập
- Key Derivation Function: Là một hàm hash được thiết kế sao cho khóa an toàn
hơn đối với tấn công kiểu brute-force hay cổ điển Hàm này được thực hiện lại nhiều lần trên mật khẩu ban đầu cùng với một số ngẫu nhiên để tạo ra một khóa có
độ an toàn cao hơn Số ngẫu nhiên này gọi là salt, còn số lần lặp lại là iteration
Ví dụ một mật khẩu là "pandoras B0x", cùng với salt là "230391827", đi qua hàm hash SHA-1 1000 lần cho kết quả là một khóa có độ dài 160 bit như sau: 3BD454A72E0E7CD6959DE0580E3C19F51601C359 (thể hiện dưới dạng số thập lục phân)
- Hàm Hash (hash function) là hàm một chiều mà nếu đưa một lượng dữ liệu bất kỳ
qua hàm này sẽ cho ra một chuỗi có độ dài cố định ở đầu ra
- Hai tính chất quan trọng của hàm này là:
• Tính một chiều: không thể suy ra dữ liệu ban đầu từ kết quả
Trang 32• Bảo vệ tính toàn vẹn của thông điệp được gửi qua mạng bằng cách kiểm tra giá trị hash của thông điệp trước và sau khi gửi nhằm phát hiện những thay đổi cho
Hình 2.4: Sơ đồ mã hóa PBE ban đầu
PBE không có tính bảo mật cao như các thuật toán khóa nhị phân (như 3DES, Blowfish…) Đặc trưng của PBE là sử dụng bộ kí tự ASCII Với password
có độ dài khoảng 6 kí tự thì không gian khóa khoảng 266
(tương đương 228) Nhằm nâng cao khả năng bảo mật người ta đã sử dụng thêm hai yếu tố là salt và iteration trước khi mã hóa Salt là một giá trị ngẫu nhiên được gắn vào password trước khi
Symmetric Cipher
ciphertext Plaintext
Trang 3324
hash tạo ra khóa mã hóa dữ liệu Iteration quy định số lần salt và password được hash
Hình 2.5: Sơ đồ mã hóa PBE khi thêm salt
Hình 2.6: Sơ đồ giải mã PBE
Các thành phần dùng trong thuật toán
- Salt: Là một giá trị được lấy ngẫu nhiên được gắn vào password trước khi hash, làm không gian khóa tăng thêm so với password ban đầu
New salt
Ciphertext
Ciphertext Salt
Salt
Ciphertext
Ciphertext Encrypted Data
Password
PBE Cipher
PBE Cipher Salt
Salt
Ciphertext
Ciphertext Encrypted Data
Trang 34công khai (Kp)
Khóa bí mật (Ks)
Plain text
Plain text
Salt được lưu trữ cùng với dữ liệu đã được mã hóa Mỗi lần mã hóa một mẩu (piece) dữ liệu, một salt mới được tạo ra Khi giải mã salt sẽ được lọc ra từ dữ liệu
đã được mã hóa Dùng salt này gắn với password để giải mã
- Iteration count số lần hash password + salt
- BASE64 encoding
Dùng BASE64 để hiển thị dữ liệu theo chuẩn ASCII Dữ liệu dạng nhị phân thường được lưu trữ dưới dạng byte (8 bit) Chuẩn ASCII thì chỉ có 7 bit Do đó muốn hiển thị dạng nhị phân của ASCII thì phải bỏ đi ít nhất một bit trên một byte
2.3 Hệ mã hóa bất đối xứng - mã hóa khóa công khai:
2.3.1 Khái niệm:
Thuật toán mã hoá bất đối xứng là khác biệt so với thuật toán đối xứng
Chúng được thiết kế sao cho khóa sử dụng vào việc mã hoá là khác so với khóa gi i
m Hơn nữa khóa giải mã không thể tính toán được từ khóa mã hoá Chúng được
gọi với tên hệ thống mã hoá công khai bởi vì khóa để mã hoá có thể công khai, một người bất kỳ có thể sử dụng khóa công khai để mã hoá dữ liệu, nhưng chỉ một vài người có đúng khóa giải mã thì mới có khả năng giải mã Trong nhiều hệ thống,
khóa mã hoá gọi là khóa công khai (Public key), khóa giải mã thường được gọi là khóa riêng, khoá bí mật (Private key)
Trong đó: - Public Key: Dùng để mã hoá dữ liệu
- Private Key: Dùng để giải mã dữ liệu, khôi phục lại dữ liệu gốc ban đầu
Hình: 2.7: Mô hình mã hóa công khai
Hoạt động: Ciphertext=E(Kp,P), Plaintext=D(Ks,E(Kp,P))
Trang 3526
Public Key sẽ mã hóa dữ liệu và để giải mã dùng Private Key Từ Public Key, không thể suy đoán hay biết được điều gì về Private Key, do đó, Public Key có thể công bố rộng rãi, bất kỳ ai cũng có thể đọc chúng mà không gây nguy hiểm cho
dữ liệu Một người muốn sử dụng thuật toán Asymmetric để mã hoá dữ liệu thì phải công bố Public Key của mình đến những người khác để sử dụng và giữ kín Private Key Private Key là bí mật, không thể để người khác biết đến, nếu không thì dữ liệu
sẽ không được đảm bảo tính bảo mật, an toàn Và sau đó, một người khác sử dụng Public Key này sẽ mã hoá dữ liệu và gửi đến người gửi, và để đọc được nội dung của dữ liệu thì người này phải dùng Private key của anh ta để giải mã lại
2.3.2 Xây dựng thuật toán mã hóa công khai (bất đối xứng) :
Là một dạng mật mã hóa cho phép người sử dụng trao đổi các thông tin mật
mà không cần phải trao đổi các khóa chung bí mật trước đó Điều này được thực hiện bằng cách sử dụng một cặp khóa có quan hệ toán học với nhau là khóa công khai và khóa cá nhân (hay khóa bí mật)
Thuật toán mật mã hóa khóa công khai được thiết kế đầu tiên[4] bởi James
H Ellis, Clifford Cocks, và Malcolm Williamson tại GCHQ(Anh) vào đầu thập
kỷ 1970 Thuật toán sau này được phát triển và biết đến dưới tên Diffie-Hellman, và
là một trường hợp đặc biệt của RSA Tuy nhiên những thông tin này chỉ được tiết lộ vào năm 1997 Trong các hệ mã hoá công khai có rất nhiều thuật toán sau :
Một số thuật toán mã hóa khóa công khai được đánh giá cao:
Trao đổi khóa Diffie-Hellman; ElGamal; Thuật toán mã hóa RSA (PKCS), DSS (Tiêu chuẩn chữ ký số); Các kỹ thuật mã hóa đường cong elliptic; Các kỹ thuật thỏa thuật khóa chứng thực bằng mật khẩu; Hệ thống mật mã Paillier
Một số thuật toán không được đánh giá cao: Merkle-Hellman (sử dụng bài
toán cái balô)
Tuy nhiên trong luận văn này chỉ đề cập một số thuật toán được đánh giá cao thường sử dụng trong bảo mật thư điện tử như «Trao đổi khóa Diffie-Hellman, Thuật toán mã hóa RSA (PKCS), ElGamal»
a) Trao đổi khóa Diffie-Hellman (D-H)
Trang 3627
D-H là một phương pháp trao đổi khóa được phát minh sớm nhất trong mật
mã học Phương pháp trao đổi khóa D-H cho phép hai bên (người, thực thể giao tiếp) thiết lập một khóa bí mật chung để mã hóa dữ liệu sử dụng trên kênh truyền thông không an toàn mà không cần có sự thỏa thuận trước về khóa bí mật giữa hai bên Khóa bí mật tạo ra sẽ được sử dụng để mã hóa dữ liệu với phương pháp mã hóa khóa đối xứng
Giao thức này được công bố đầu tiên bởi Whitfield Diffie và Martin Hellman vào năm 1976 và được cấp bằng sáng chế Hoa Kỳ số 4.200.770 mô tả thuật toán này từ năm 1977 ghi nhận Hellman, Diffie, và Merkle [19] là tác giả phát minh, dù rằng trước đó vài năm nó đã được phát minh một cách độc lập trong GCHQ, cơ quan tình báo Anh, bởi James H Ellis, Clifford Cocks và Malcolm
J Williamson nhưng được giữ bí mật Năm 2002, Hellman đề xuất thuật toán nên được gọi là trao đổi khóa Diffie–Hellman–Merkle để ghi nhận sự đóng góp của Ralph Merkle trong phát minh lĩnh vực mật mã hóa khóa công khai (Hellman, 2002)
Mặc dù giao thức trao đổi khóa Diffie–Hellman bản thân nó là giao thức trao đổi khóa ẩn danh (không xác thực), nó đã đưa ra một nền tảng cơ sở cho nhiều loại giao thức xác thực và được sử dụng để tạo nên bí mật chuyển tiếp hoàn hảo trong chế độ ngắn hạn của giao thức Transport Layer Security (EDH hoặc DHE tùy theo
bộ mã hóa) Phương pháp này được áp dụng sau đó cho thuật toán RSA
Mô tả giao thức: Sau đây là mô tả khái quát của giao thức
Thiết lập khóa:
Bước 1: Alice và Bob thỏa thuận sử dụng chung một nhóm cyclic hữu hạn G và một phần tử sinh g của G Phần tử sinh g công khai với tất cả mọi người, kể cả
kẻ tấn công Dưới đây chúng ta giả sử nhóm G là nhóm nhân
Bước 2: Alice chọn một số tự nhiên ngẫu nhiên a và gửi g a mod p cho Bob
Bước 3: Bob chọn một số tự nhiên ngẫu nhiên b và gửi g b
mod p cho Alice
Bước 4: Alice tính (g b)a mod p
Bước 5: Bob tính (g a)b mod p
Trang 37)|G|-b = ga(|G|-b) = ga|G|-ab = ga|G|g-ab = (g|G|)ag-ab=1ag-ab=g-ab=(gab)-1 Việc giải mã bây giờ trở nên dễ dàng: Bob sử dụng (gab)-1 để tính và phục hồi thông điệp nguyên thủy bằng cách tính: mgab(gab)-1 = m(1) = m
b) Hệ mật RSA:
Ý tưởng về một hệ mật khoá công khai đã được Diffie và Hellman đưa ra vào
1976 Còn việc hiện thực hóa hệ mật khoá công khai thì do Rivest, Shamir và Adleman đưa ra đầu tiên vào 1977 tại MIT, họ đã tạo nên hệ mật RSA [16] nổi tiếng
Hệ mật này sử dụng các tính toán trong Zn, trong đó n là tích của 2 số nguyên tố phân biệt p và q Ta có thể mô tả hệ mật RSA các bước thực hiện như sau:
Bước 4: Tính toán số mũ riêng d từ e, p và q sao cho 1<e< φ(n)
Bước 5: Đầu ra (n,e) là khóa công khai và (n,d) là khóa riêng: de1(mod φ(n)) 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),