+2

Bảo mật dữ liệu trong Android - Mã hóa

Mã hóa

Mã hoá là cách hiệu quả nhất để đạt được bảo mật dữ liệu. Và tôi sẽ chủ yếu tập trung vào nó trong bài viết này để các bạn có thể hiểu rõ hơn về nó. Để đọc dữ liệu được mã hóa, bạn phải có quyền truy cập vào khóa bí mật hoặc mật khẩu cho phép bạn giải mã nó. Dữ liệu không được mã hóa được gọi là dữ liệu thô (văn bản thuần túy), dữ liệu được mã hóa được gọi là dữ liệu mật mã (văn bản mật mã).

Quy trình mã hóa tổng thể như sau: Bạn có các dữ liệu bí mật , có thể là một số thông tin bí mật (chẳng hạn như thông tin về cuộc sống cá nhân, chi tiết về sức khoẻ hoặc tinh thần, tội phạm hình sự hoặc dân sự, ảnh cá nhân, tài liệu người dùng cá nhân, vv), thông tin tài chính (như tài khoản, giao dịch, báo cáo , thông tin thẻ tín dụng, v.v.) và các thông tin xác thực (tên người dùng, mật khẩu, mã pin chạm, dữ liệu vân tay và tất cả các nội dung khác có thể cung cấp quyền truy cập dữ liệu ở trên). Sau đó, dựa trên một số thuật toán , bạn sẽ tạo ra một khoá đặc biệt và sẽ sử dụng nó để tạo ra dữ liệu mật mã .

Ví dụ, một thuật toán đơn giản - thay đổi mỗi biểu tượng bằng từ với một cái gì đó. Và phím - một cái gì đó tương đương với ký hiệu tiếp theo từ bảng chữ cái :

Thuật toán: thay đổi mỗi ký hiệu trong từ với một ký hiệu khác 
Key: một ký hiệu gì đó tương đương với ký hiệu tiếp theo từ bảng chữ cái
***
Dữ liệu Plain (Dữ liệu nhập): "android" 
Dữ liệu Mật mã (Đầu ra): "mahoadl"
Ký hiệu Mask: 
a -> m
n -> a
d -> h
r -> o
o -> a
i -> d
d -> l

Tất nhiên tất cả mọi thứ hoạt động ngược lại, nếu bạn có một dữ liệu mật mã, bạn biết thuật toán và có một chìa khóa, bạn sẽ nhận được dữ liệu ban đầu đơn giản dễ dàng.

Các loại thuật toán

Ở trên, chúng ta đã thấy một ví dụ rất cơ bản về mã hóa. Các thuật toán hiện nay phức tạp hơn và được tách ra trong Symmetric và Asymmetric (có một Hash Functions , không yêu cầu khoá và sẽ không được xem xét trong bài viết này).

Tính đối xứng  - kỹ thuật lâu đời nhất và nổi tiếng nhất. Khóa mã hóa và khóa giải mã là như nhau. Ngoài ra, nó thường được phân loại là Stream Cipher hoặc Block cipher.

AES Symmetric phổ biến nhất  - Advanced Encryption Standard (AES) là thuật toán đáng tin cậy theo tiêu chuẩn của Chính phủ Hoa Kỳ và nhiều tổ chức.

Bất đối xứng  - một chi nhánh hiện đại của mật mã. Còn được gọi là mật mã khóa công khai trong đó các thuật toán sử dụng một cặp khóa (khóa công khai và khoá riêng) và sử dụng một thành phần khác của cặp cho các bước khác nhau của thuật toán.

Thuật toán không đối xứng phổ biến nhất là RSA  - một thuật toán mã hóa khóa công cộng và tiêu chuẩn để mã hóa dữ liệu được gửi qua internet.

Stream cipher  - một thuật toán mã hóa đối xứng xử lý dữ liệu một chút hoặc byte cùng một lúc với khóa dẫn đến một dữ liệu mật mã ngẫu nhiên hoặc dữ liệu thô.

Khóa thuật toán  xác định mật mã hoạt động trên các nhóm bit chiều dài cố định, được gọi là khối. Chặn các mật mã là những thành phần quan trọng trong thiết kế của nhiều giao thức mật mã và được sử dụng rộng rãi để thực hiện mã hóa dữ liệu số lượng lớn.

**Các chế độ mã hoá **

Có 2 chế độ phổ biến nhất là: ECB  - Electronic Codebook, đơn giản nhất của các chế độ mã hóa. Thông điệp được chia thành các khối, và mỗi khối được mã hóa riêng.

CBC  - Block chuỗi mã, mỗi khối số liệu mật mã phụ thuộc vào tất cả các khối dữ liệu thô được xử lý đến thời điểm đó. Để làm cho mỗi một thông báo duy nhất, một vector khởi tạo phải được sử dụng trong khối đầu tiên.

Các loại khoá chính

Có ba loại chính: Khóa bí mật, Khóa cá nhân và Khóa công khai. Khóa bí mật  - một khóa bí mật duy nhất được sử dụng trong mã hóa đối xứng thông thường để mã hóa và giải mã tin nhắn. Khóa cá nhân  - thành phần bí mật của một cặp khóa mật mã được sử dụng để giải mã trong mật mã bất đối xứng . Khóa công khai  - Thành phần công cộng của một cặp khóa mật mã được sử dụng để mã hóa trong mật mã bất đối xứng . Các khóa công cộng và riêng tư kết hợp tạo thành cặp khóa mã hoá công khai-riêng tư.

Trên đây là một số điều cơ bản về mã hóa dữ liệu. Tôi hy vọng những thông tin trên sẽ giúp ích cho bạn. Xin cảm ơn. Tham khảo: https://medium.com/@yakivmospan/secure-data-in-android-encryption-7eda33e68f58


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí