Cấu trúc file KDB

Một phần của tài liệu BÀI TẬP LỚN MÔN CƠ SỞ AN TOÀN THÔNG TIN ĐỀ TÀI: TÌM HIỂU VÀ ĐÁNH GIÁ CÁC CÔNG CỤ QUẢN LÍ MẬT KHẨU (Trang 31 - 35)

CHƯƠNG VII Phân tích sâu về phương thức bảo mật của 1Password và Keepass

7.2.1.Cấu trúc file KDB

Về cơ bản thì file KDBX gồm 2 phần Header và Body.

Trong phần Header bao gồm 3 phần nhỏ khác bao gồm:

Type of data (Loại dữ liệu): Dùng để biểu diễn phân loại các kiểu data

được lưu trữ. Hiện tại Keepass phân loại được 11 loại.

Length of data (Độ dài dữ liệu): Biểu diễn giá trị độ dài của kiểu dữ liệu

Value of data (Giá trị của dữ liệu): Lưu trữ giá trị riêng biệt của từng loại

Figure 1 Chi tiết thành phần trong header

Trong 3 phần trên lại chia thành các phần nhỏ trong Figure 1. như sau: File _Signature: Nhận biết định dạng file KDBX.

File_Version: Phiên bản của file KDBX.

CipherlD: Nhận dạng thuật toán mật mã.

Compression: Nhận dạng nén GZIP.

MasterSeed: Số ngẫu nhiên được sử dụng trong biến đổi khóa

TransformSeed: Khóa trong thuật toán mã hóa AES, được sử dụng để mã hóa mật khẩu.

TransformRound: Số bước lặp trong quá trình biến đổi khóa.

EncryptionIV: Vector đầu tiên được sử dụng trong mã và giải mã trong AES.

RandomStreamlD: Phương pháp số được sử dụng trong Body để mã hóa và giải mã.

Cấu trúc phần Body. Gồm các thành phần được mã hóa với AES/CBC/PKCS5, chúng là khóa để xác nhận mật khẩu người dùng. Các thành phần gồm:

● StoredStartBytes(32 bytes):

● Được sử dụng để xác thực đăng nhập bằng việc so sánh 32 bytes của StartBytes trong phần Header để xem việc login có đúng hay không. Việc đăng nhập thành công đồng nghĩa với việc 2 giá trị trên bằng nhau.

● Giải thích chuỗi giá trị GZIP:

● Chuỗi dữ liệu là kết quả của thuật toán nén dữ liệu GZIP, có nội dung gốc là định dạng XML, nếu một thuộc tính của phần đó được bảo vệ thì nội dung của thành phần đó sẽ được sử dụng thuật toán Salsa20 và các thuật toán khác có thể dịch ngược được để mã hóa và sau đó xử lý Base64.

Figure 2Cấu trúc của Body file

Tạo khóa

Tài khoản mật khẩu coi là input. Sử dụng thuật toán băm SHA-256. Thuật toán mã hóa là AES/Twofish. Hiện tại thì Keepass chỉ sử dụng AES:

● Pkey = SHA-256 (password); ● PbRaw=SHA-256 (Pwkey)

● TransformKey=Encrypt(PbRaw, TransformSeed, TransformRound) ;

● TransformSeed và TransformRound đọc từ Header file và mã hóa ở chế độ ECB

ECB là chế độ mã hóa đơn giản nhất là chế độ sổ mã điện tử (ECB). Là chế độ mã hóa từng khối bit độc lập. Với cùng một khóa mã K, mỗi khối plaintext ứng với một giá trị ciphertext cố định và ngược lại. Tin nhắn được chia thành các khối và mỗi khối được mã hóa riêng biệt

● TransformMasterKey=SHA-256 (TransformKey); ● Key=SHA-256(TransformMasterKey+ MasterSeed);

Mã hóa

Hiện nay thì Keepass chỉ sử dụng AES để mã hóa dữ liệu. ● Tạo một chuỗi ngẫu nhiên (StartBytes). (adsbygoogle = window.adsbygoogle || []).push({});

● Chuỗi này có thể được đọc từ Header file. ● Tạo key1 bởi password.

● Chế độ mã hóa CBC EncryptionlV (vector khởi tạo) như salt, có thể đọc từ Header file.

CBC : Trong một quá trình xâu chuỗi khối mật mã, dữ liệu được mã hóa trong khối cụ thể, và mỗi khối phụ thuộc vào khối trước khi nó cho giải mã. Việc sử dụng quá trình cái gì đó gọi là một vector khởi tạo để giúp đỡ buộc các khối dữ liệu được mã hóa với nhau.

EncryptedVerifier=Encrypt(verifier, key 1, EncryptionlV);. ● Lưu EncryptedVerifier vào Encryptionlnfo .

Giải mã

Vì AES là thuật toán mã hóa đối xứng nên các khóa đựa sử dụng để mã hóa và giải mã là giống nhau.

verifzer1 =Decrypt(EncryptedVerifier,key, Encryptionl V); ● verifier2= StartBytes;

● So sánh verifie1 and verifier2, mật khẩu đúng nếu 2 giá trị băm này bằng nhau.

Tổng kết

Việc xác thực đăng nhập vào Vault trong Keepass tương đương với 4 lần xử lý SHA-256 và mặc định là 6000 vòng mã hóa qua AES, về căn bản thì việc này khiến brute-force attack trở nên khó khăn hơn. Khóa có độ dài 256 bytes nên việc sử dụng việc tấn công vét cạn là gần như không thể. Bởi vì thuật toán mã hóa AES là một trong những thuật toán mật mã bảo mật nhất hiện giờ.

CHƯƠNG VIII. CÁCH SỬ DỤNG

Một phần của tài liệu BÀI TẬP LỚN MÔN CƠ SỞ AN TOÀN THÔNG TIN ĐỀ TÀI: TÌM HIỂU VÀ ĐÁNH GIÁ CÁC CÔNG CỤ QUẢN LÍ MẬT KHẨU (Trang 31 - 35)