MariaDB
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> MariaDB

Mã hóa cơ sở dữ liệu:Tại sao và ở đâu bạn cần mã hóa dữ liệu

Mã hóa cơ sở dữ liệu cung cấp bảo mật nâng cao cho dữ liệu đang chuyển và đang nghỉ của bạn. Nhiều tổ chức đã bắt đầu xem xét việc mã hóa dữ liệu một cách nghiêm túc với các trường hợp vi phạm bảo mật gần đây. Trong hầu hết các trường hợp, máy chủ cơ sở dữ liệu là mục tiêu phổ biến của những kẻ tấn công vì nó chứa tài sản quý giá nhất đối với hầu hết các tổ chức. Một khi kẻ xâm nhập đã có được quyền truy cập vào dữ liệu có giá trị từ máy chủ của bạn, rất có thể chúng sẽ đánh cắp dữ liệu từ đó. Sau đó, chúng sử dụng dữ liệu để đòi tiền chuộc, khai thác dữ liệu hoặc thu lợi tài chính khác từ tổ chức mà chúng đã tấn công.

Trong blog này, chúng ta thảo luận tại sao mã hóa cơ sở dữ liệu lại quan trọng và cách mã hóa dữ liệu đóng vai trò quan trọng trong việc bảo mật cơ sở dữ liệu của bạn.

Tại sao tôi cần mã hóa cơ sở dữ liệu?

Mã hóa cơ sở dữ liệu là một quá trình để chuyển đổi dữ liệu trong cơ sở dữ liệu thành “văn bản mật mã” (văn bản không thể đọc được) bằng cách sử dụng một thuật toán. Bạn cần sử dụng một khóa được tạo từ thuật toán để giải mã văn bản. Quá trình mã hóa cơ sở dữ liệu rất được khuyến khích, đặc biệt là đối với các doanh nghiệp liên quan đến tài chính, chăm sóc sức khỏe hoặc thương mại điện tử. Gần đây các cuộc tấn công mạng, đánh cắp dữ liệu, hoặc vi phạm dữ liệu đang diễn ra tràn lan; do đó, mối quan tâm ngày càng tăng về dữ liệu cá nhân. Mọi người rất ý thức về quyền riêng tư, bảo mật của dữ liệu và muốn dữ liệu của họ chỉ được bảo vệ và sử dụng khi được yêu cầu. Sau đây là một số lợi ích tốt của việc mã hóa cơ sở dữ liệu:

Tránh Tấn công Bảo mật

Các cuộc tấn công bảo mật là không thể tránh khỏi, nhưng với các phương pháp bảo mật và mã hóa dữ liệu tốt hơn, những kẻ xâm nhập có thể không phân tích hoặc giải mã để hiểu thêm dữ liệu trong một vụ vi phạm dữ liệu. Giả sử một cuộc tấn công hoặc nghe trộm Man-in-the-middle (MITM) đang xảy ra trong quá trình sao lưu hoặc chuyển giữa các máy chủ. Nếu đây là một quá trình truyền dữ liệu không được mã hóa, nó chắc chắn sẽ có lợi cho những kẻ tấn công; không phải là tình huống bạn muốn có trong môi trường của mình!

Nếu bạn có cơ sở dữ liệu được mã hóa, kẻ tấn công phải tìm cách giải mã dữ liệu đã mã hóa. Chúng có thể đi được bao xa phụ thuộc vào độ phức tạp của cyphers và các thuật toán được áp dụng để tạo ra dữ liệu được mã hóa. Ngoài ra, những kẻ tấn công sẽ cố gắng hết sức để truy cập các khóa mã hóa, dẫn họ mở kho tiền hoặc giải mã dữ liệu được mã hóa, tương tự như khai thác vàng; sau tất cả, dữ liệu là vàng mới trong những ngày này. Để tránh những nỗ lực vi phạm dữ liệu kiểu này, điều quan trọng là phải bảo mật cơ sở hạ tầng bằng mọi cách, bao gồm cả việc hạn chế quyền truy cập vào các máy chủ nếu có thể.

Tuân thủ Quy định Bảo mật

Khi xử lý các quy định bảo mật như PCI-DSS, mã hóa là một trong những yêu cầu quan trọng nhất. Đó là một yêu cầu bắt buộc. Ví dụ:tất cả dữ liệu chủ thẻ phải được mã hóa bằng các thuật toán được ngành chấp nhận (ví dụ:AES-256, RSA 2048), được cắt ngắn, mã hóa hoặc băm (các thuật toán băm được chấp thuận được chỉ định trong FIPS 180-4:SHA-1, SHA-224, SHA-256, SHA-384 SHA-512, SHA-512/224 và SHA-512/256). Mặc dù đó không phải là điều duy nhất được đề cập để có dữ liệu được mã hóa, PCI-DSS cũng yêu cầu phạm vi sử dụng quy trình quản lý khóa mã hóa PCI-DSS.

Bảo vệ Dữ liệu Nhạy cảm

Quản lý khóa mã hóa lý tưởng để bảo vệ dữ liệu nhạy cảm với quản lý khóa tập trung và các API đơn giản để mã hóa dữ liệu. Ví dụ về quản lý khóa này đang sử dụng Hashicorp Vault (mã nguồn mở) hoặc nếu bạn đang sử dụng đám mây công cộng (nguồn đóng), quản lý khóa nguồn đóng phổ biến nhất là Amazon Web Service (AWS) Key Management Service (KMS), Google Cloud KMS, Microsoft Azure Key Vault.

Mã hóa Dữ liệu là gì?

Mã hóa là một trong những tính năng bảo mật quan trọng nhất để giữ cho dữ liệu của bạn an toàn nhất có thể. Tùy thuộc vào dữ liệu bạn đang xử lý, nó không phải lúc nào cũng bắt buộc, nhưng ít nhất bạn nên coi đó là một cải tiến bảo mật trong tổ chức của mình. Trên thực tế, nó thực sự được khuyến khích để tránh bị đánh cắp dữ liệu hoặc truy cập trái phép.

Mã hóa dữ liệu là một quá trình mã hóa dữ liệu. Nó chủ yếu là một chức năng hai chiều, có nghĩa là dữ liệu được mã hóa phải được giải mã bằng một khóa mã hóa hợp lệ. Mã hóa là một trong những kỹ thuật như vậy của Mật mã học. Mã hóa là một cách để che giấu thông tin bằng cách thay đổi thông tin để nó có vẻ là dữ liệu ngẫu nhiên - các phương pháp mã hóa có thể làm cho dữ liệu của bạn (ví dụ:tin nhắn) được bảo mật, nhưng đồng thời, các kỹ thuật và chiến lược khác cũng được yêu cầu để cung cấp tính toàn vẹn và tính xác thực của một tin nhắn. Mã hóa không chỉ là một phép toán.

Trong mã hóa cơ sở dữ liệu, có hai kiểu cơ bản khi mã hóa dữ liệu. Các loại mã hóa này là dữ liệu ở trạng thái nghỉ và dữ liệu đang chuyển. Hãy xem ý nghĩa của chúng.

Mã hóa dữ liệu lúc nghỉ

Dữ liệu được lưu trữ trong hệ thống được gọi là dữ liệu ở trạng thái nghỉ. Việc mã hóa dữ liệu này bao gồm việc sử dụng một thuật toán để chuyển đổi văn bản hoặc mã để nó không thể đọc được. Bạn phải có khóa mã hóa để giải mã dữ liệu đã mã hóa.

Việc mã hóa toàn bộ cơ sở dữ liệu nên được thực hiện một cách thận trọng vì nó có thể dẫn đến tác động nghiêm trọng đến hiệu suất. Do đó, điều khôn ngoan là chỉ mã hóa các trường hoặc bảng riêng lẻ. Mã hóa dữ liệu ở chế độ nghỉ bảo vệ dữ liệu khỏi bị đánh cắp vật lý của ổ cứng hoặc truy cập trái phép vào bộ nhớ lưu trữ tệp. Mã hóa này cũng tuân thủ các quy định về bảo mật dữ liệu, đặc biệt nếu có dữ liệu tài chính hoặc sức khỏe được lưu trữ trên hệ thống tệp.

Mã hóa cho dữ liệu ở trạng thái nghỉ:Nó áp dụng ở đâu?

Điều này bao gồm dữ liệu ở trạng thái còn lại, chẳng hạn như dữ liệu cơ sở dữ liệu của bạn được lưu trữ ở một vị trí cụ thể. Ví dụ:data_directory của PostgreSQL, data_dir của MySQL / MariaDB hoặc các vị trí lưu trữ dbPath của MongoDB. Quy trình phổ biến để cung cấp mã hóa là sử dụng Mã hóa dữ liệu minh bạch (TDE). Khái niệm chủ yếu là mã hóa mọi thứ liên tục.

Bên cạnh đó, việc sao lưu cơ sở dữ liệu rất dễ bị đánh cắp dữ liệu và truy cập trái phép. Các thiết lập này được lưu trữ vật lý trong một bộ lưu trữ không dễ bay hơi. Tất nhiên, nó cũng đi kèm với việc bảo mật các khóa mã hóa của bạn ở đâu đó bị ẩn và không được lưu trữ trên cùng một máy chủ. Mã hóa dữ liệu cơ sở dữ liệu của bạn được lưu trữ dưới dạng tệp nhị phân và các bản sao lưu của bạn cho dù đó là bản sao lưu lôgic hay nhị phân, hãy nhớ rằng dữ liệu được mã hóa ảnh hưởng đến hiệu suất và làm cho kích thước tệp lớn hơn.

Mã hóa dữ liệu trong quá trình chuyển đổi

Dữ liệu được truyền hoặc di chuyển giữa các giao dịch được gọi là dữ liệu đang chuyển. Dữ liệu di chuyển giữa máy chủ và máy khách trong khi duyệt các trang web là một ví dụ điển hình về loại dữ liệu này. Vì nó luôn di chuyển, nó cần được mã hóa để tránh bất kỳ hành vi trộm cắp hoặc thay đổi dữ liệu nào trước khi nó đến đích.

Tình huống lý tưởng để bảo vệ dữ liệu khi truyền dữ liệu là dữ liệu được mã hóa trước khi di chuyển và được giải mã khi đến đích cuối cùng.

Mã hóa cho dữ liệu đang chuyển tiếp:Áp dụng ở đâu?

Như đã nêu ở trên, điều này liên quan đến kênh giao tiếp giữa máy khách cơ sở dữ liệu và máy chủ cơ sở dữ liệu. Xem xét máy chủ ứng dụng và các kênh máy chủ cơ sở dữ liệu đã bị xâm nhập và kẻ tấn công hoặc kẻ xâm nhập đang nghe trộm hoặc thực hiện một cuộc tấn công MITM. Kẻ tấn công có thể nghe và nắm bắt dữ liệu được gửi qua một kênh không an toàn. Điều này có thể tránh được nếu dữ liệu được gửi qua dây từ kênh giao tiếp máy khách cơ sở dữ liệu và máy chủ cơ sở dữ liệu của nó được mã hóa bằng mã hóa TLS / SSL.

Đối phó với mã hóa cơ sở dữ liệu cũng có rất nhiều thách thức cần vượt qua. Tuy có những ưu điểm nhưng cũng có trường hợp đó là nhược điểm. Hãy xem qua đây là những gì.

Ưu điểm của Mã hóa Dữ liệu

Dưới đây là danh sách các trường hợp phổ biến trong thế giới thực và tìm kiếm lợi thế của mã hóa dữ liệu.

  • Nó cung cấp bảo mật cho tất cả dữ liệu của bạn mọi lúc

  • Luôn bảo vệ quyền riêng tư và thông tin nhạy cảm

  • Bảo vệ dữ liệu của bạn trên các thiết bị

  • Đảm bảo tuân thủ quy định của chính phủ của bạn

  • Nó mang lại cho bạn lợi thế cạnh tranh

  • Sự hiện diện của công nghệ cơ bản để mã hóa để bảo vệ dữ liệu có thể tăng độ tin cậy

  • Dữ liệu được mã hóa duy trì tính toàn vẹn

Nhược điểm của Mã hóa Dữ liệu

Mã hóa dữ liệu không có nghĩa là thành công trong kinh doanh. Nó không mang lại cho bạn lợi thế như một công nghệ đang phát triển, sáng tạo và tiên tiến nếu không biết những thách thức và phương pháp hay nhất của nó để triển khai và đối phó với điều này. Nó đúng với câu nói "All That Glitters Is Not Gold". Có một số nhược điểm nhất định nếu bạn mã hóa dữ liệu khi bạn không hiểu mục đích chính của nó.

Mã hóa dữ liệu và hình phạt về hiệu suất

Mã hóa bao gồm các phép toán phức tạp và phức tạp để che giấu ý nghĩa của dữ liệu. Tùy thuộc vào loại mật mã hoặc thuật toán mà bạn chọn để băm hoặc giải mã dữ liệu. Sự phức tạp và các bit cao hơn, nếu cơ sở dữ liệu của bạn được thiết kế để xử lý hàng tấn yêu cầu, thì nó sẽ làm giảm tài nguyên của bạn, đặc biệt là CPU. Việc thiết lập mã hóa dữ liệu chẳng hạn như TLS cho quá trình chuyển tiếp của bạn hoặc sử dụng RSA 2048 bit có thể là quá nhiều nếu khả năng tài chính của bạn không giám sát được loại hậu quả này. Nó tiêu tốn nhiều tài nguyên và tạo thêm áp lực lên bộ xử lý của hệ thống. Mặc dù các hệ thống điện toán hiện đại mạnh mẽ và giá cả phải chăng, đặc biệt là các dịch vụ đám mây công cộng có thể được chấp nhận. Chuẩn bị một số đánh giá trước và xác định loại mã hóa tác động đến hiệu suất sẽ có trong bối cảnh mà bạn sẽ sử dụng nó. Cũng cần hiểu rằng hiệu suất của các giải pháp mã hóa khác nhau là khác nhau. Điều đó có nghĩa là nhu cầu về tốc độ và bảo mật phải được cân bằng cẩn thận với nhau.

Mất khóa mã hóa dữ liệu

Lưu trữ các khóa mã hóa trong một kho bảo mật, như đã đề cập trước đó, chẳng hạn như Hashicorp Vault, AWS KMS và các khóa khác đã trở nên phổ biến. Một vấn đề chính của việc mã hóa là nếu ai đó làm mất chìa khóa giải mã, điều đó có nghĩa là sẽ gặp rắc rối lớn. Bạn có thể liên tưởng rằng nó cũng giống như việc có một mật khẩu, nhưng nó được coi như một khóa chung để giải mã tất cả dữ liệu được mã hóa. Không trừ khi bạn có các khóa mã hóa khác nhau cho mọi khía cạnh của cơ sở dữ liệu của mình, khi đó điều đó có nghĩa là có rất nhiều mật khẩu phải được ghi nhớ và phải được giữ an toàn.

Mã hóa dữ liệu ảnh hưởng đến thời gian khôi phục

Nếu dữ liệu của bạn ở trạng thái nghỉ, chẳng hạn như bản sao lưu được mã hóa, trong trường hợp toàn bộ thảm họa, việc khôi phục bằng bản sao lưu của chính bạn có thể tăng gấp đôi hoặc gấp ba thời gian hoặc thậm chí nhiều hơn tùy thuộc vào cách bạn đặt loại thuật toán hoặc mật mã. Điều này tạo thêm áp lực bất cứ khi nào bạn cần cụm và ứng dụng của mình cập nhật kịp thời nhưng không thể do việc giải mã hoặc giải mã dữ liệu tốn quá nhiều thời gian và tài nguyên hệ thống.

Bảo vệ có giới hạn trước các cuộc tấn công cấp ứng dụng hoặc nội bộ

Tất nhiên, điều này có thể hiểu được bởi bản chất của việc mã hóa. Nhưng điều này không có nghĩa là bạn không phải mã hóa nữa chỉ vì nó không áp dụng bảo vệ trong cấp ứng dụng. Tất nhiên, đó là một lớp bảo mật khác phải được áp dụng trong lớp ứng dụng. Chắc chắn, nếu ai đó có quyền truy cập vào người dùng / mật khẩu cơ sở dữ liệu của bạn, đặc biệt là với quyền truy cập quản trị, thì mã hóa không hữu ích ở đây. Kẻ tấn công có thể truy xuất dữ liệu bằng cách chạy một loạt các truy vấn SQL, tất nhiên là con người có thể đọc được trừ khi có một mức logic ứng dụng nhất định mã hóa ý nghĩa thực sự của dữ liệu của bạn. Mặt khác, điều đó chỉ làm tăng thêm công việc và sự phức tạp của công nghệ ràng buộc tổng thể mà bạn đang sử dụng. Nếu bạn có một nhóm lớn được chỉ định cho từng lớp này, thì đó là một lợi thế lớn vì việc quản lý sự phức tạp chỉ có thể được dành riêng cho mọi vai trò mà họ phải tập trung vào.

Hợp tác và tin tưởng với các đồng nghiệp nắm giữ khóa mã hóa dữ liệu

Chắc chắn là một điều tốt để xem xét ở đây. Điều gì sẽ xảy ra nếu người ngang hàng biết các khóa và nơi nó đã được lưu trữ hoặc mật khẩu của kho lưu trữ của bạn đã để lại? Điều rất quan trọng là chỉ định quyền truy cập vật lý của máy chủ nơi lưu trữ các khóa và mật khẩu. Việc chỉ định vai trò và hạn chế quyền truy cập vào các khóa và mật khẩu này là rất quan trọng. Nó cũng hữu ích nếu bạn có một tổ hợp mật khẩu dài và phức tạp để khó ghi nhớ nhưng đồng thời có thể dễ dàng truy xuất khi cần thiết. Mặc dù điều đó nghe có vẻ mỉa mai, nhưng một bí mật vẫn phải thiêng liêng.

Tôi có nên quan tâm đến mã hóa dữ liệu không?

Mã hóa dữ liệu là mong muốn và thường là bắt buộc, như đã đề cập, tùy thuộc vào quy trình và thiết kế sơ đồ của ứng dụng và mức độ kinh doanh mà bạn tham gia.

Bạn có nên quan tâm đến mã hóa dữ liệu không? Chắc chắn là có. Nó cũng xuất hiện với sự phụ thuộc cá nhân và mục đích kinh doanh. Tuy nhiên, trước sự hiện diện của dữ liệu nhạy cảm, đặc biệt là khi bạn đã xây dựng cá tính và năng lực tài chính của riêng mình trong tổ chức và công ty của mình, tất cả dữ liệu đều ở mức độ nhạy cảm cao hơn. Bạn không muốn ai đó đánh cắp dữ liệu của bạn và biết tất cả những điều chiến lược và kinh doanh liên quan đến sự phát triển của công ty bạn. Dữ liệu, trong trường hợp này, phải được bảo mật; do đó, mã hóa là một khía cạnh thiết yếu của việc bảo mật cơ sở dữ liệu của bạn và chính dữ liệu.

Kết luận

Vì dữ liệu nhạy cảm luôn tồn tại ngay cả trong cuộc sống cá nhân hàng ngày của chúng ta, nên khối lượng dữ liệu nhạy cảm và có giá trị sẽ tăng song song trong một tổ chức. Điều quan trọng là phải hiểu không phải tất cả dữ liệu đều yêu cầu mã hóa. Chắc chắn, một số dữ liệu được chia sẻ trên toàn cầu hoặc thường xuyên được sử dụng lại; loại dữ liệu này không cần mã hóa. Lưu ý những ưu điểm và nhược điểm của việc sử dụng mã hóa trong cơ sở dữ liệu của bạn. Việc xác định nơi sẽ áp dụng và cách áp dụng giúp bạn đạt được môi trường an toàn mà không có bất kỳ tác động nào đến hiệu suất.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. HA cho MySQL và MariaDB - So sánh bản sao Master-Master với Galera Cluster

  2. Cách hoạt động của nhà điều hành Modulo trong MariaDB

  3. So sánh các sản phẩm cung cấp trên đám mây cụm Galera:Phần thứ ba Microsoft Azure

  4. Trình kết nối MariaDB / Python Beta hiện có sẵn

  5. Xử lý các vấn đề sao chép từ các cụm cơ sở dữ liệu MariaDB không phải GTID sang GTID MariaDB