1. Trang chủ
  2. » Luận Văn - Báo Cáo

phát triển ứng dụng bảo mật trên oracle

23 771 8
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 23
Dung lượng 599,71 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Thông tin luôn là một tài sản vô giá của doanh nghiệp và cần được bảo vệ bằng mọi giá. Tuy nhiên, với những đòi hỏi ngày càng gắt gao của môi trường kinh doanh yêu cầu doanh nghiệp phải năng động chia sẻ thông tin của mình cho nhiều đối tượng khác nhau qua Internet hay Intranet (mạng “Internet” trong nội bộ doanh nghiệp). Hầu hết các doanh nghiệp ngày nay đều sử dụng các hệ quản trị cơ sở dữliệu (CSDL) để lưu trữ tập trung tất cả các thông tin quý giá của mình. Hiển nhiên hệ thống này sẽ là tiêu điểm tấn công của những kẻ xấu. Nhẹ thì hệ thống CSDL bịhoạt động không ổn định, mất mát dữ liệu.Nặng thì các thông tin bí mật bị tiết lộ và được đem bán cho các doanh nghiệp đối thủ. Tất cả điều đó là những thiệt hại vô cùng lớn lao. Vì vậy việc bảo vệ thông tin trở nên ngày càng quan trọng và khó khăn hơn bao giờ hết. Chính vì thế nênvấn đề bảo mật trong database là một trong những ưu tiên hàng đầu của những người phát triển ứng dụng. Và trong bài tập lớn này này chúng em sẽ tìm hiểu một số vấn đề căn bản về bảo mật Database trong việc phát triển ứng dụng.

Trang 1

KHOA CÔNG NGHỆ THÔNG TIN

BÀI TẬP LỚN MÔN AN TOÀN CƠ SỞ DỮ LIỆU

- Ngô Việt Phương

- Cao Thuỳ Anh

- Dương Văn Thăng

Lớp : AT5B

HÀ NỘI 12/2011

Trang 2

KHOA CÔNG NGHỆ THÔNG TIN

BÀI TẬP LỚN MÔN AN TOÀN CƠ SỞ DỮ LIỆU

ĐỀ TÀI

PHÁT TRIỂN ỨNG DỤNG BẢO

MẬT TRÊN ORACLE

Trang 3

I Xây dựng ứng dụng oracle 5

1 Mục đích sử dụng 5

2 Cách thức xây dựng 5

2.1 Giao diện lập trình ứng dụng 5

2.2 Các phương pháp xây dựng 6

3 Hiệu suất ứng dụng 9

II Bảo mật ứng dụng và cơ sở dữ liệu 9

1 Những nguy cơ đối với cơ sở dữ liệu 9

2 Biện pháp bảo vệ 10

3 Mã hóa 11

4 Vài nét về cơ chế quản lý khóa 12

4.1 Vị trí lưu trữ khóa 13

4.2 Kiểm soát truy cập khóa 13

5 Sơ lược về kiến trúc của một hệ bảo mật CSDL 14

6 Các vấn đề bảo mật trong phát triển ứng dụng CSDL Oracle 14

6.1 Lựa chọn mô hình phát triển ứng dụng 16

6.2 Quản lý quyền hạn trong ứng dụng 17

III Demo 18

KẾT LUẬN 23

Trang 4

LỜI NÓI ĐẦU

Thông tin luôn là một tài sản vô giá của doanh nghiệp và cần được bảo vệ bằng mọi giá Tuy nhiên, với những đòi hỏi ngày càng gắt gao của môi trường kinh doanh yêu cầu doanh nghiệp phải năng động chia sẻ thông tin của mình cho nhiều đối tượng khác nhau qua Internet hay Intranet (mạng “Internet” trong nội bộ doanh nghiệp) Hầu hết các doanh nghiệp ngày nay đều sử dụng các hệ quản trị cơ sở dữ liệu (CSDL) để lưu trữ tập trung tất cả các thông tin quý giá của mình Hiển nhiên

hệ thống này sẽ là tiêu điểm tấn công của những kẻ xấu Nhẹ thì hệ thống CSDL bị hoạt động không ổn định, mất mát dữ liệu.Nặng thì các thông tin bí mật bị tiết lộ

và được đem bán cho các doanh nghiệp đối thủ Tất cả điều đó là những thiệt hại

vô cùng lớn lao Vì vậy việc bảo vệ thông tin trở nên ngày càng quan trọng và khó khăn hơn bao giờ hết Chính vì thế nênvấn đề bảo mật trong database là một trong những ưu tiên hàng đầu của những người phát triển ứng dụng Và trong bài tập lớn này này chúng em sẽ tìm hiểu một số vấn đề căn bản về bảo mật Database trong việc phát triển ứng dụng

Trang 5

I Xây dựng ứng dụng oracle

1 Mục đích sử dụng

Ứng dụng được sử dụng truy cập cơ sở dữ liệu oracle, nhằm xây dựng cho

các công ty, các cửa hàng, siêu thị lớn,… có nhu cầu truy xuất, lưu trữ dữ liệu

Những ứng dụng này cần đáp ứng được sự an toàn, bảo mật tốt Có thể sử dụng cho các nhân viên trong công ty, nâng cao chất lượng phục vụ tới khách hàng hay tăng tốc độ làm việc cho các nhân viên

2 Cách thức xây dựng

2.1 Giao diện lập trình ứng dụng

Giao diện lập trình ứng dụng (Application Programming Interface - API) là

sự mô tả cách thức để phần mềm yêu cầu một chương trình khác thực hiện một dịch vụ nào đó Dịch vụ này có thể là cấp quyền truy cập dữ liệu hay thực hiện một chức năng đặc biệt nào đó API tồn tại trong hầu hết các phần mềm xí nghiệp và là

thành phần quan trọng của hệ điều hành

Hầu như tất cả các phần mềm đều phải yêu cầu phần mềm khác làm một số công việc cho chúng Để làm như vậy, chương trình yêu cầu dùng một tập các lời yêu cầu đã được chuẩn hoá, được gọi là giao diện lập trình ứng dụng (API) Hầu như mọi ứng dụng đều dựa vào các API của hệ điều hành để thực hiện những công

việc căn bản như truy cập hệ thống tập tin

Về bản chất, API của chương trình định ra phương thức thích hợp để nhà phát triển yêu cầu các dịch vụ của chương trình đó Các nhà phát triển sẽ đưa ra yêu cầu bằng cách đưa các lời gọi vào mã chương trình ứng dụng của họ Cú pháp

của những lời gọi này được mô tả trong các tài liệu của chương trình được gọi

Trang 6

Bằng cách cung cấp phương tiện để yêu cầu dịch vụ chương trình, API được gọi là cấp quyền truy cập hay “mở cửa” ứng dụng Xây dựng ứng dụng không có API về căn bản cũng như xây nhà không có cửa; API trong mọi mục đích tính toán

là để mở ra cánh cửa và thực hiện việc trao đổi thông tin

2.2 Các phương pháp xây dựng

2.2.1 Xây dựng dựa trên kết nối qua ODBC

Hình 1 : ODBC API Những đặc tính: Giao diện này sử dụng một công nghệ chuyển tiếp cung cấp

ODBC truy cập thông qua trình điều khiển ODBC Là giao diện chuẩn của Mycrosoft OBDC API lần lượt thực hiện để có thể tiếp cận với cơ sở dữ liệu thông qua các trình điều khiển ODBC chuẩn Máy khách cần phải cài đặt các thư viện ODBC gốc, trình điều khiển, và các tập tin hỗ trợ cần thiết, và trong hầu hết các trường hợp, cơ sở dữ liệu của khách hàng là những đoạn mã Đây sẽ là trình điều khiển thích hợp cho một mạng doanh nghiệp và khách hàng cài đặt ở đâu không phải là vấn đề lớn

Ưu điểm: Giao diện này được viết cho phép truy cập và các cơ sở dữ liệu

khác nhau thông qua việc thực hiện trình điều khiển ODBC Trong một số trường

Trang 7

hợp, sự lựa chọn duy nhất của khách hàng sẽ là MS Access hoặc Mircosoft SQL Server cho việc gọi tới ODBC, oracle rất ít sử dụng tới ODBC này

Nhược điểm: Trình điều khiển loại 1 không hỗ trợ hoàn toàn các ứng dụng

được cài đặt trên máy khách hàng Các thư viện ODBC và các đoạn mã cơ sở dữ liệu phải nằm trên máy chủ, do đó nó làm giảm hiệu suất

2.2.2 Xây dưng dựa trên kết nối qua server proxy

Hình 2 : Giao diện server proxy Những đặc tính:Đây là một cách thức chuyển đổi từ lời gọi từ giao diện ứng

dụng vào một hệ quản trị cơ sở dữ liệu với một giao thức mạng độc lập, là một lần nữa chuyển dịch lời gọi tới cơ sở dữ liệu cụ thể bơi một máy chủ ở tầng trung gian Cách thức này không yêu cầu bất kỳ cơ sở dữ liệu, thư viện có nguồn gốc cụ thể sẽ được cài đặt trên máy khách Trình điều khiển loại 3 hộ trợ các ứng dụng Web, có thể triển khai tốt trên Internet mà không cần phải cài đặt trên máy client

Ưu điểm:Loại giao diện này có tính linh hoạt cao, nhất là nó không yêu cầu

bất kỳ phần mềm hoặc dịch vụ có nguồn gốc được cài đặt trên máy khách hàng Nó

có một sự thích ứng cao để thay đổi và kiểm soát cơ sở dữ liệu mà không cần phải sửa đổi trình điều khiển ở máy khách hàng

Trang 8

Nhược điểm: Cơ sở dữ liệu phải được thực hiện ở tầng máy chủ cụ thể Vì

nó thực hiện các ứng dụng dựa trên Web, nó thực hiện các biện pháp an toàn giống như việc truy xuất qua tường lửa

2.2.3 Xây dựng dựa trên nền tảng TCP/IP

Hình 3 : sử dụng giao thức TCP/IP Những đặc tính: Cách thức này là sự chuyển đổi lời gọi từ giao diện API vào

giao thức mạng để liên lạc trực tiếp với cơ sở dữ liệu thông qua giao thức TCP/IP Đây là liên kết giữa khách hàng gọi trực tiếp tới máy chủ hệ quản trị cơ sở dữ liệu

và cung cấp một giải pháp thiết thực cho việc truy xuất mạng nội bộ Trong hầu các trường hợp, các trình điều khiển cung cấp bởi nhà cung cấp cơ sở dữ liệu Giao thức này cũng không cần một thư viện cụ thể cho cơ sở dữ liệu có nguồn gốc cụ thể để cấu hình trên máy của khách hàng và có thể triển khai trên Web mà không cần khách hàng cài đặt, theo yêu cầu cho các trình điều khiển loại 3

Ưu điểm: Có thể giao tiếp trực tiếp với cơ sở dữ liệu bằng cách sử dụng

TCP/IP, chứ không cần phải thông qua một tầng trung gian hay thư viện gốc nào Đây chính là lý do các trình điều khiển JDBC hoạt động nhanh nhất Nó không cần phải bổ xung thư viện gốc là cần thiết để cài đặt trên máy khách hàng

Trang 9

Nhược điểm: Hạn chế duy nhất là client được cơ sở dữ liệu cụ thể Do đó,

nếu trong trường hợp, các thay đổi về sau với cơ sở dữ liệu, thì các nhà phát triển ứng dụng có thể phải mua và triển khai một ứng dụng cụ thể mới cho các cơ sở dữ liệu mới

3 Hiệu suất ứng dụng

Ứng dụng áp dụng cho các cửa hàng, siêu thị lớn, các cơ quan công ty,… nên cần tốc độ truy xuất tốt Chúng ta có thể đáp ứng được mức thời gian thực với mức ứng dụng, và hiệu suất phần mềm được đạt mức tối ưu khi sử dụng giao thức TCP/IP

Mặt khác, ở đây chưa kể đến mức độ authentication của database oracle Khi oracle không mã hoá dữ liệu, đây là trường hợp ứng dụng tối ưu nhất Còn khi database server đã cài đặt cơ chế mã hoá, tốc độ xử lý của ứng dụng sẽ bị giảm đi ít nhất 5%

II Bảo mật ứng dụng và cơ sở dữ liệu

1 Những nguy cơ đối với cơ sở dữ liệu

Hiển nhiên là các đe dọa đối với hệ thống CSDL trước tiên sẽ đến từ các tin tặc Chúng sẽ tấn công hệ thống của doanh nghiệp từ bên ngoài thông qua Internet

từ những trang Web công cộng hay từ các ứng dụng chia sẻ thông tin của doanh nghiệp đối với khách hàng Các kiểu tấn công này có thể bị loại bỏ phần lớn bằng cách sử dụng hệ thống tường lửa Tuy nhiên, hệ thống tường lửa lại thường giới hạn khả năng truy xuất thông tin của những khách hàng hay người dùng chân chính những đối tượng mà bản thân doanh nghiệp luôn luôn mời chào đến với mình Một điểm nữa là tường lửa không thể giúp doanh nghiệp bảo vệ mình khỏi những lỗ hổng bảo mật xuất hiện ngày càng nhiều khi hệ thống CSDL của họ ngày càng trở nên tinh vi và phức tạp

Trang 10

Tin tặc không phải là mối lo ngại duy nhất Các đe dọa còn đến từ bên trong,

từ chính các nhân viên của doanh nghiệp - những người mặc nhiên được truy cập vào hệ thống CSDL và được mặc nhiên tin tưởng Điều đặc biệt là hệ thống tường lửa hoàn toàn vô hiệu trước đối tượng này Đáng nói hơn nữa là các biện pháp bảo

vệ thông tin từ bên trong không ít thì nhiều bị các doanh nghiệp đầu tư chưa đúng mức hoặc hoàn toàn bị “quên”

2 Biện pháp bảo vệ

Dĩ nhiên là các hệ CSDL ngày nay đều có sẵn các công cụ bảo vệ tiêu chuẩn như hệ thống định danh (authentication - yêu cầu người dùng phải xác nhận danh tính của mình bằng tên và mật khẩu) và kiểm soát truy xuất (access control - giới hạn các thao tác của người dùng trên một tập dữ liệu xác định) Tuy nhiên, các biện pháp bảo vệ này hầu như không có tác dụng trước các tấn công từ bên trong Chẳng hạn, làm sao doanh nghiệp có thể cấm không cho nhân viên phụ trách việc sao lưu dữ liệu (Backup Operator) đọc dữ liệu trong CSDL ? (vì nhiệm vụ của anh

ta yêu cầu anh ta phải được đọc dữ liệu để có thể sao chép nó sang nơi khác) Một

ví dụ nữa là nếu máy chủ (hoặc ổ cứng) của doanh nghiệp bị mất cắp, làm sao bảo

vệ thông tin trong đó không bị nhìn thấy?

Để bảo vệ thông tin khỏi mối đe dọa này, người ta cần phải thực hiện hai biện pháp cơ bản là: mã hóa các thông tin quan trọng trong CSDL và quản lý thật chặt chẽ các khóa giải mã (key management) Mã hóa thông tin mà không để ý tới quản lý khóa giải mã thì cũng giống như bạn khóa cửa nhà mà lại để lại chìa khóa ngay trước cửa vậy Đáng ngạc nhiên là tác vụ quản lý khóa là tác vụ được quan tâm nhiều hơn hiện nay vì các thuật toán mã hóa thông dụng ngày nay đã đủ an toàn

Bên cạnh đó, để thắt chặt hơn nữa, doanh nghiệp có thể còn phải cài đặt thêm các cơ chế giám sát (security audit) để kịp thời phản ứng trước những kiểu

Trang 11

truy xuất hệ thống bất thường hoặc log (ghi nhận toàn bộ thao tác đang diễn ra trên CSDL)

3 Mã hóa

Mã hóa đảm bảo thông tin được mã hóa không thể sử dụng được nếu không

có khóa giải mã Để đảm bảo an toàn, các khóa dùng để mã hóa (và cũng để giải mã) thường được phát sinh một cách ngẫu nhiên trước khi thông tin được mã hóa Trong số các thuật toán mã hóa, 3DES và AES là hai thuật toán mã hóa thông dụng nhất (AES được đánh giá là nhanh hơn nhiều so với 3DES) Vì các thuật toán mã

hóa đã trở thành tiêu chuẩn, chúng ta sẽ không bàn nhiều đến điều này ở đây

Điểm đáng bàn nhất là việc mã hóa sẽ ảnh hưởng đến tính chất của dữ liệu Đầu tiên là ảnh hưởng đến kích thước dữ liệu Các thuật toán mã hóa đều ít nhiều làm tăng kích thước của dữ liệu gốc Thứ hai là làm biến đổi kiểu của dữ liệu Dữ liệu khi được mã hóa sẽ trở thành một “đống” bit vô nghĩa (kiểu binary) nên

thường không thể được lưu trữ như ban đầu

Đối với kiểu dữ liệu dạng text (như char, varchar hay text), ta có thể không cần phải thay đổi kiểu dữ liệu vì ta có thể biểu diễn kiểu binary theo định dạng

Base64

Điểm cần quan tâm kế tiếp là việc mã hóa các trường (field) có chỉ mục có thể sẽ ảnh hưởng trầm trọng đến tốc độ của CSDL Đáng tiếc là các trường này đôi lúc lại cần phải được mã hóa (như số an sinh xã hội - một dạng giống như số Chứng Minh Nhân Dân hay số thẻ tín dụng) Đa số các hệ bảo mật CSDL đều không cho phép mã hóa các trường có chỉ mục hoặc cho phép nhưng luôn luôn

cảnh báo về các hiệu ứng lề

Như vậy, mã hóa thông tin trong CSDL (hay nói gọn là mã hóa CSDL) ít nhiều làm biến đổi cấu trúc của CSDL và ảnh hưởng đến hiệu suất của CSDL đó Thay đổi cấu trúc CSDL sẽ ảnh hưởng đến các ứng dụng sử dụng CSDL đó Một ví

dụ là chẳng hạn ta mã hóa một trường có kiểu ngày tháng, khi ứng dụng truy xuất

Trang 12

mà không có khóa giải mã thì sẽ nhận được kiểu dữ liệu binary Kết quả là ứng

dụng sẽ bị treo hoặc hoạt động không ổn định

Để giảm thiểu ảnh hưởng đối với ứng dụng của CSDL người ta có các giải

Để tiến hành mã hóa, các hệ thống bảo mật CSDL phải chọn lựa giữa hai khả năng sau: (1) dùng chính máy tính của hệ quản trị CSDL để tiến hành mã hóa/giải mã, (2) sử dụng một máy tính khác Cả hai cách này đều có những ưu nhược điểm riêng Khuyết điểm dễ thấy của cách (1) là sẽ làm giảm hiệu năng chung của hệ quản trị CSDL trong trường hợp hệ thống phải phục vụ nhiều kết nối cùng lúc (điều này là rất đáng kể đối với các hệ CSDL của các doanh nghiệp lớn) Cách (2) tuy không giảm hiệu năng chung nhưng lại phụ thuộc vào tốc độ mạng (vì phải truyền dữ liệu cần được mã hóa/giải mã qua lại giữa các máy tính) và phải mã hóa các thông tin truyền trên mạng giữa máy tính của hệ CSDL và máy tính dùng

để mã hóa/giải mã để tránh bị kiểu tấn công “nghe lén”

4 Vài nét về cơ chế quản lý khóa

Cơ chế quản lý khóa trong các hệ bảo mật CSDL cần phải giải quyết hai vấn

đề cơ bản là: vị trí lưu trữ các khóa giải mã và kiểm soát các truy cập đến các khóa

Trang 13

4.1 Vị trí lưu trữ khóa

Có hai tùy chọn cơ bản trong lưu trữ khóa Một là lưu trữ khóa bên trong một bảng (table) riêng ngay bên trong hệ thống CSDL của doanh nghiệp Giải pháp này tuy đơn giản nhưng lại không đủ an toàn đối với các tác nhân bên trong Ví dụ

là các quản trị viên CSDL (Database Administrators) sẽ dễ dàng truy xuất được nội dung của khóa vì họ có khá nhiều “quyền lực” trên hệ thống CSDL của doanh

nghiệp

Giải pháp thứ hai tuy có tốn kém hơn đáng kể nhưng độ an toàn khá cao là lưu trữ khóa trong các phần cứng chuyên dụng – như trong một máy chủ khác Như vậy sẽ đảm bảo được là tất cả các quản trị viên CSDL đều không thể “tự

nhiên” truy xuất được khóa giải mã

4.2 Kiểm soát truy cập khóa

Để kiểm soát truy cập khóa khi khóa được lưu trữ trên một server riêng ta phải giải quyết được vấn đề cơ bản nhất là: xác định danh tính của người dùng truy cập vào khóa Đơn giản nhất là sử dụng tên người dùng và mật khẩu Cách này khá đơn giản nhưng vẫn có nhược điểm cố hữu là dễ bị tấn công nếu người dùng sử dụng các mật khẩu dễ đoán Cách thứ hai mạnh hơn là sử dụng smart-card Smart-card hoạt động giống như các thẻ ATM của ngân hàng Smart-card an toàn hơn vì

nó xác định danh tánh của người dùng thông qua hai yếu tố: (1) một vật mà người dùng sở hữu (cái thẻ) và (2) một thông tin mà người dùng đó biết

Để một “kẻ xấu” có được cả hai điều trên là cực khó Nguyên tắc hoạt động của smart-card cũng khá đơn giản: mật khẩu để truy cập của người dùng được lưu trữ bên trong bộ nhớ của smart-card và được mã hóa Khóa để giải mã ra mật khẩu chính là số PIN của smart-card (hoặc là một mậu khẩu khác mà chỉ có người dùng

đó biết)

Cách thứ ba mạnh nhất là sử dụng các thông tin sinh học (như vân tay, mắt hoặc giọng nói) kết hợp với mật khẩu hoặc smart-card

Ngày đăng: 17/06/2014, 13:36

HÌNH ẢNH LIÊN QUAN

Hình 1 : ODBC API - phát triển ứng dụng bảo mật trên oracle
Hình 1 ODBC API (Trang 6)
Hình 2 : Giao diện server proxy - phát triển ứng dụng bảo mật trên oracle
Hình 2 Giao diện server proxy (Trang 7)
Hình 3 : sử dụng giao thức TCP/IP - phát triển ứng dụng bảo mật trên oracle
Hình 3 sử dụng giao thức TCP/IP (Trang 8)
Hình 6 : mô hình tạo role - phát triển ứng dụng bảo mật trên oracle
Hình 6 mô hình tạo role (Trang 18)
Hình 7: Mô hình quan hệ database qlCuocHen - phát triển ứng dụng bảo mật trên oracle
Hình 7 Mô hình quan hệ database qlCuocHen (Trang 19)
Hình 8 : Màn hình chính - phát triển ứng dụng bảo mật trên oracle
Hình 8 Màn hình chính (Trang 19)
Hình 10: Chức năng truy vấn - phát triển ứng dụng bảo mật trên oracle
Hình 10 Chức năng truy vấn (Trang 20)
Hình 11 : Bảng danh sách bạn bè - phát triển ứng dụng bảo mật trên oracle
Hình 11 Bảng danh sách bạn bè (Trang 21)
Hình 12 : Chức năng nhập - phát triển ứng dụng bảo mật trên oracle
Hình 12 Chức năng nhập (Trang 21)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w