Giao thức bắt tay của SSL

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu một số giải pháp an toàn và bảo mật cơ sở dữ liệu ứng dụng cho sở giáo dục và đào tạo tỉnh quảng ninh​ (Trang 61 - 67)

Giai đoạn 1: Thiết lập khả năng bảo mật

thông điệp cho máy chủ với những thông số sau: phiên bản SSL mới nhất mà máy khách biết, dữ liệu được sinh ra ngẫu nhiên, những thuật toán mã hóa, phương thức nén mà máy khách được hỗ trợ. Sau đó máy khách chờ thông điệp được gửi từ máy chủ có chứ thông điệp giống với thông điệp máy khách gửi và những thỏa thuận kèm theo.

Giai đoạn 2: Xác thực máy chủ và trao đổi khóa

Giai đoạn này máy chủ gửi chứng chỉ đến máy trạm, thông điệp chứa một hoặc một chuỗi chứng thực X.509. Sau đó là một thông điệp trao đổi khóa từ máy chủ nếu nó được yêu cầu. Yêu cầu chứng chỉ từ máy khách nếu có yêu cầu. Chứng thư số ở giai đoạn này chỉ ra giải thuật khóa công khai và danh sách các CA được chấp nhận.

Giaiđoạn 3: Xác thực máy khách và trao đổi khóa

Máy khách xác nhận xem máy chủ cung cấp chứng chỉ hợp lệ hay chưa, nếu được yêu cầu và kiểm tra các thông số từ thông điệp máy chủ gửi tới được chấp nhận hay không. Nếu thỏa mãn máy khác gửi một hoặc nhiều thông điệp trở lại cho máy chủ. Nếu máy chủ yêu cầu chứng chỉ thì máy khách bắt đầu giai đoạn này bằng cách gửi một thông điệp chứng chỉ. Nếu không có chứng chỉ phù hợp máy khách gửi thông điệp không có chứng chỉ thay thế. Tiếp theo máy khác gửi thông điệp trao đổi khóa, nội dung thông điệp phụ thuộc vào kiểu trao đổi khóa. Cuối cùng, trong giai đoạn này máy khách gửi một thông điệp để xác thực tường minh của một thông điệp máy khách.

Giai đoạn 4: Kết thúc

Giai đoạn này hoàn thành thiết lập một kết nối an toàn, máy khách gửi thông điệp theo giải thuật mới với các khóa và các bí mật. Thông điệp kết thúc xác minh xem quá trình trao đổi khóa và xác thực có thành công hay không.

Thuật toán mã hóa xác thực mà SSL sử dụng là SHA-1 - một trong những thuật toán băm mã hóa, được dùng trong việc kiểm tra tính toàn vẹn của dữ liệu ở phía người nhận.

AES (Advanced Encryption Standard, hay Tiêu chuẩn mã hóa nâng cao) là một thuật toán mã hóa khối được chính phủ Hoa Kỳ áp dụng làm tiêu chuẩn mã hóa. AES là thuật toán được phát triển dựa trên bản thiết kế Square bởi 2 nhà mật mã học người Bỉ là Joan Daemen và Vincent Rijmen. AES là một thuật toán mã hóa khối đối xứng với độ dài khóa là 128 bit, 192 bit và 256 bit tương ứng gọi là AES-128, AES-192 và AES-256. Tùy vào độ dài của key khi sử dụng mà ta có số vòng lặp khác nhau AES- 128 sử dụng 10 vòng (round), AES-192 sử dụng 12 vòng và AES-256 sử dụng 14 vòng.

Trong quá trình này, khóa mã hóa được tạo và cũng phải có khóa này để giải mã. Nếu không, dữ liệu sẽ chỉ là mớ lộn xộn không thể đọc được. Cả người gửi và người nhận đều phải biết khóa mã hóa và giải mã.

Các thứ tự hàm AES sẽ thực hiện:

 Trộn từng byte (SubBytes) mỗi byte được thay thế với các byte khác.

 Trộn từng hàng (ShiftRows): Phép biến đổi dùng trong phép mã hóa áp dụng lên trạng thái bằng cách chuyển dịch vòng ba hàng cuối của trạng thái theo số lượng byte các offset khác nhau.

 Trộn từng cột (MixColumns): Mỗi cột được chuyển đổi tuyến tính bằng cách nhân nó với một ma trận trong trường hữu hạn.

 Mã hóa (AddRoundKey): Mỗi byte trong bảng trạng thái được thực hiện phép XOR với một khoá vòng, quá trình xử lý AES thu được 11 khoá vòng từ các key mã hoá được phân phát cho kỹ thuật mã hoá.

Dù ban đầu AES được tạo ra để chính phủ Mỹ bảo mật dữ liệu nhưng nó cũng có thể dùng để chuyển dữ liệu qua mạng an toàn. AES được dùng để chia sẻ tập tin qua kết nối HTTPS, an toàn hơn HTTP, vốn được thiết kế để ngăn tấn công trung gian.

AES cũng được dùng để mã hóa WiFi trên router, khi kết hợp với giao thức phổ biến WPA2 thì có tên AES/WPA2. Giao thức bảo mật khác được dùng cùng với

WPA2 là TKIP cũ hơn AES và được cho là không còn an toàn. AES cũng được dùng để hỗ trợ mã hóa SSL.

3.2.2.2. Bảo mật tại chỗ

Hệ thống bảo mật trong MySQL Server tương đối phức tạp. MySQL Server thực hiện bảo mật CSDL dựa vào hệ thống truy cập quyền. Chức năng chính của hệ thống điều khiển truy cập là chứng thực kết nối của người dùng vào MySQL Server, kết hợp người dùng với các quyền riêng trên CSDL với các thao tác: SELECT, UPDATE, DELETE, INSERT. Để thực hiện điều khiển hệ thống cần phải thực hiện truy cập một số thông tin đặc biệt. Các thông tin này được lưu trữ trong một CSDL chính là MySQL. Ngay sau khi cài đặt MySQL có hai CSDL được tạo ra là:

 MySQL: Lưu trữ các thông tin cho việc quản trị.

 Test: Là CSDL bất kì ai cũng có thể có quyền thực hiện trên đó.

CSDL MySQL lưu trữ các thông tin chung và các đặc quyền của người dùng để kiểm tra kết nối và quyền thực hiện các lệnh. Do đó chỉ có nhà quản trị CSDL mới có quyền truy cập và thao tác trên CSDL này. Tất cả các tập tin dữ liệu của MySQL lưu trữ dữ liệu trong môt thư mục gốc mysql. Trong CSDL mysql có các bảng phân quyền sau: user, db, host, column_priv, procs_priv. Người dùng có thể thực hiện bất kì câu lệnh nào trên bảng này như các bảng thông thường. Server sử dụng thông tin trong ba bảng: user, db, host trong hai giai đoạn điều khiển truy nhập bằng cách kiểm tra các yêu cầu để chắc chắn rằng Client đưa ra yêu cầu có đủ quyền thực hiện yêu cầu đó.

Ngoài ra Server còn tham khảo tới bảng table_priv và bảng column_priv, các bảng này cung cấp các quyền riêng cần thiết ở mức bảng và cột. Từ phiên bản 5.0.3 CSDL MySQL có thêm bảng procs_priv dùng để thẩm định lại các yêu cầu mà thường xuyên được lưu trữ. Mỗi bảng đều có các cột phạm vi và các cột quyền. Cột phạm vi dùng để chỉ rõ phạm vi cho mỗi mục của bảng hay là ngữ cảnh mà dòng dữ liệu áp dụng. Các cột quyền chỉ định thông tin về các quyền trên một mức của CSDL tùy thuộc từng bảng. Server kết hợp thông tin trong nhiều bảng phân quyền để hoàn thành

việc mô tả đặc quyền của người dùng. Quá trình truy vấn CSDL thực hiện theo hai giai đoạn.

 Giai đoạn kiểm tra kết nối: Khi người dùng cố gắng kết nối vào cơ sở dữ liệu, Server chấp nhận hoặc từ chối các kết nối cơ bản dựa trên nhận dạng người dùng. Chỉ khi thông tin đưa vào là hợp lý Server mới chấp nhận, nếu không Server cấm truy cập. Nếu đúng Server chấp nhận kết nối, sau đó chuyển sang giai đoạn hai. Chờ đợi yêu cầu. Việc nhận dạng người dùng dựa trên hai phần thông tin sau: client host từ kết nối của người dùng, username MySQL của người dùng.

Bất kì ai kết nối vào MySQL Server hệ thống đều đòi hỏi password, password là công cụ được thêm vào để xác nhận người dùng, username là tên của người dùng muốn kết nối, hostname là tên máy kết nối. MySQL Server không thể giới hạn số người kết nối nhưng giới hạn số lượng máy kết nối. MySQL Server không lưu trữ dạng tường tận của password mà password sẽ được mã hóa. Password được mã hóa sẽ được dùng trong kết nối. Như vậy cách nhìn nhận của MySQL Server password đã được mã hóa mới là password đúng.

 Giai đoạn kiểm tra yêu cầu: Xảy ra mỗi khi người dùng thực hiện yêu cầu truy vấn vào CSDL. Sau khi quá trình kết nối đã được thiết lập, mỗi dòng lệnh đều phải đi qua một tiến trình, điều này đảm bảo mọi người dùng đều bị giới hạn làm việc. Mỗi khi yêu cầu được đưa ra, MySQL Server kiểm tra xem người dùng đã được phân quyền ở cấp độ user chưa. Nếu có người dùng được phép làm bất cứ việc gì trên CSDL của MySQL Server. Nếu không tìm thấy MySQL Server sẽ kiểm tra tiếp trong bảng db. Db là cơ chế bảo mật ở cấp độ tiếp theo. Đặc quyền chỉ được cấp trên một CSDL cụ thể, cho phép người dùng thao tác trên tất cả các bảng của một CSDL cụ thể. Nếu người dùng muốn phân quyền cụ thể hơn thì dùng bảng table_priv, column_priv. Bảng column_priv là nơi cuối cùng MySQL Server cấp quyền cho người dùng. Nếu người dùng không được cấp quyền ở cấp độ này thì MySQL Server báo lỗi.

định cấp độ người dùng lại hoàn toàn phụ thuộc vào username, hostname và password của người dùng. Các giá trị username, hostname là được công khai, chính vì vậy phần lớn mục đích bảo mật CSDL trong MySQL là bảo mật password người dùng. Trong MySQL Server để bảo mật password người ta dùng phương pháp mã hóa password dựa vào thuật toán băm SHA-1 hoặc thuật toán MD5, đây là hai thuật toán được sử dụng chính trong MySQL Server.

Ngoài ra MySQL Server sử dụng các phương thức AES_ENCRYPT(), AESP_DECRYPT(), để mã hóa và giải mã dữ liệu dựa vào thuật toán AES. Mã hóa sử dụng 128 bit khóa và có thể mở rộng thành 256 bit. Chọn 128 bit vì nhanh và đã đủ an toàn. AES thực hiện dò tìm các giá trị không hợp lệ của dữ liệu, những giá trị thêm vào không chính xác, sẽ bị từ chối thực hiện. Đây là hàm được coi là an toàn nhất trong các hàm mã hóa sẵn có trong MySQL.

3.2.2.3. Biện pháp tác nghiệp

Để đảm bảo CSDL trong MySQL Server an toàn ngoài các giải pháp kỹ thuật bạn cũng cần phải quan tâm, xem xét tới các biện pháp tác nghiệp sau:

 Đòi hỏi tất cả người sử dụng CSDL của MySQL Server đều phải có tài khoản.  Không cho phép sử dụng các link biểu tượng tới các bảng.

 Không cấp đặc quyền processor hoặc super cho người không phải là nhà quản trị.

 Không cấp đặc quyền file cho người không phải là nhà quản trị.

 Không cho bất kì ai có thể truy cập vào bảng user trong CSDL MySQL trừ người có tài khoản root.

3.3. Thử nghiệm bảo mật cơ sở dữ liệu trong phát triển website quản lý điểm

3.3.1. Phạm vi và yêu cầu bài toán

Xây dựng website demo nghiệp vụ quản lý điểm cho Trường THPT với các yêu cầu:

b. Quản lý năm học, quản lý môn học c. Quản lý điểm

d. Quản lý người dùng e. Thống kê, báo cáo

2. Về bảo mật: Phải được thực hiện ở 3 cấp độ: ứng dụng, truyền thông và cơ sở dữ liệu.

a. Bảo mật ở cấp độ ứng dụng: Xác thực người dùng.

b. Bảo mật ở cấp độ truyền thông: Dữ liệu được bảo mật khi truyền thông giữa web client và web server.

c. Bảo mật ở cấp độ cơ sở dữ liệu: Thông tin được mã hoá khi lưu trữ trong cơ sở dữ liệu và được giải mã cho các truy vấn hợp lệ đối với cơ sở dữ liệu.

3.3.2. Mô hình bảo mật của hệ thống

Mô hình bảo mật của hệ thống được phân thành 3 lớp: (1) Lớp bảo mật ở cấp độ ứng dụng; (2) Lớp bảo mật ở cấp độ truyền thông và (3) Lớp bảo mật ở cấp độ cơ sở dữ liệu. Mô hình này được minh hoạ trong Hình 3.4.

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu một số giải pháp an toàn và bảo mật cơ sở dữ liệu ứng dụng cho sở giáo dục và đào tạo tỉnh quảng ninh​ (Trang 61 - 67)