Mã hóa đối xứng liên quan đến việc sử dụng mộtkhóa duy nhất để mã hóa và giải mã dữ liệu, trong khi mã hóa bất đối xứng sửdụng hai khóa - một khóa chung và một khóa riêng để mã hóa và gi
CƠ SỞ LÝ THUYẾT
Mã hóa dữ liệu
Mã hóa dữ liệu bao gồm việc che giấu thông tin khỏi những kẻ độc hại hoặc bất kỳ ai khác có con mắt tò mò Dữ liệu là thông tin, có thể là một email, nội dung của cơ sở dữ liệu hoặc một tệp được lưu trữ trên máy tính xách tay Mã hóa dữ liệu để giữ bí mật Mã hóa dữ liệu là một phần của lớp biện pháp đối phó an ninh mạng rộng hơn được gọi là bảo mật dữ liệu.
Mã hóa hoạt động thông qua một thuật toán toán học phức tạp được gọi là mật mã mã hóa dữ liệu Giống như vòng giải mã bí mật được tìm thấy trong hộp ngũ cốc của con bạn, thuật toán mật mã biến đổi dữ liệu chuẩn hóa (tức là văn bản gốc) thành một chuỗi các ký tự có vẻ ngẫu nhiên, không thể nhận dạng được gọi là “văn bản mã hóa” Bản mã không thể đọc được Ví dụ: cụm từ "Xin chào, bạn khỏe không?" có thể mã hóa thành một bản mã có nội dung “8363, 5017, 11884, 9546.” Để quay lại “Xin chào, bạn khỏe không” cần phải thực hiện quá trình giải mã Giải mã thông tin từ bản mã sang bản rõ được gọi là giải mã và liên quan đến cùng một
“khóa” thuật toán mà mã hóa dữ liệu sử dụng. Để có được bản mã, bạn chạy thông tin cần được mã hóa thông qua thuật toán mã hóa Thuật toán này lấy thông tin gốc và dựa trên các quy tắc ngẫu nhiên, chuyển đổi thông tin thành một phần dữ liệu mới không thể giải mã được Hãy coi nó như một 'bản dịch'.
Những gì thuật toán mã hóa thực hiện là tạo ra một ngôn ngữ mới và ẩn dữ liệu nhạy cảm bằng cách chuyển đổi nó thành mã bí mật này Bạn chỉ có thể giải mã và quay lại văn bản gốc nếu bạn biết các quy tắc hoặc thứ được gọi là khóa Khóa này thể hiện các bước toán học mà thuật toán đã thực hiện để chuyển đổi văn bản của bạn từ "Hello World" thành "XJtg920kl#aJFJ"%*¨*FK".Nếu không có khóa này, bạn không thể giải mã dữ liệu và do đó, dữ liệu sẽ được bảo vệ khỏi sự truy cập trái phép.
Các hệ thống mã hóa
Có nhiều loại thuật toán và phương pháp mã hóa khác nhau, mỗi phương pháp là lựa chọn an toàn và phù hợp với nhu cầu an ninh mạng khác nhau Các loại hệ thống mã hóa phổ biến nhất: mã hóa đối xứng và bất đối xứng.
1.2.1 Mã hoá đối xứng (Symmetric Encryption) và mã hoá bất đối xứng
Hình 1.1 Mã hóa khóa đối xứng(symmetric) và mã hóa khóa bất đối xứng(asymmetric) Đối xứng và bất đối xứng là sự so sánh thường được sử dụng trong lĩnh vực mật mã và bảo mật máy tính Mã hóa đối xứng liên quan đến việc sử dụng một khóa duy nhất để mã hóa và giải mã dữ liệu, trong khi mã hóa bất đối xứng sử dụng hai khóa - một khóa chung và một khóa riêng để mã hóa và giải mã dữ liệu. Mỗi loại mã hóa đều có điểm mạnh và điểm yếu riêng và việc lựa chọn giữa hai loại này tùy thuộc vào nhu cầu cụ thể của người dùng.
Dữ liệu được mã hóa bằng một khóa và việc giải mã cũng được thực hiện bằng chính khóa đó Có một số chiến lược được sử dụng trong các thuật toán mật mã Đối với quá trình mã hóa và giải mã, một số thuật toán sử dụng một khóa duy nhất Trong các hoạt động như vậy, khóa duy nhất phải được bảo mật vì hệ thống hoặc người biết khóa có xác thực hoàn chỉnh để giải mã tin nhắn để đọc.
Khóa đối xứng là khóa có thể được sử dụng để mã hóa và giải mã dữ liệu.Điều này ngụ ý rằng để giải mã thông tin, khóa được sử dụng để mã hóa thông tin đó phải được sử dụng Trong thực tế, các khóa đại diện cho một bí mật chung được chia sẻ bởi hai hoặc nhiều người có thể được sử dụng để duy trì liên kết thông tin bí mật.
Hình 1.2 Quá trình mã hóa đối xứng (Symmetric Encryption) Ưu điểm của mã hóa đối xứng là hiệu suất nhanh hơn và mức tiêu thụ tài nguyên thấp, nhưng nó vốn đã cũ hơn và kém an toàn hơn so với đối tác của nó Lý do rất đơn giản: nếu bạn mở rộng quy mô mã hóa của mình sang quy mô toàn công ty, điều đó có nghĩa là bạn đang đặt toàn bộ niềm tin vào một khóa duy nhất mà bạn sẽ cần phải chia sẻ rất nhiều.
Mã hóa đối xứng là một phương pháp được sử dụng rộng rãi để bảo mật dữ liệu trên nhiều ứng dụng khác nhau, mang lại tính bảo mật và toàn vẹn Bằng cách sử dụng một khóa duy nhất cho cả mã hóa và giải mã, các ví dụ mã hóa đối xứng cho thấy tốc độ và hiệu quả của kỹ thuật trong việc bảo vệ thông tin nhạy cảm Từ bảo mật thông tin liên lạc trực tuyến đến mã hóa các tệp nhạy cảm, mã hóa đối xứng vẫn là một thành phần quan trọng của an ninh mạng hiện đại.
Một số ví dụ mã hóa đối xứng trong công nghệ hàng ngày:
Ứng dụng nhắn tin an toàn (ví dụ: WhatsApp, Signal): Các nền tảng nhắn tin này sử dụng mã hóa đối xứng, chẳng hạn như Giao thức tín hiệu, để đảm bảo rằng tin nhắn được mã hóa hai đầu, chỉ cho phép những người nhận dự định đọc nội dung.
Phần mềm mã hóa tệp (ví dụ: VeraCrypt, AxCrypt): Các thuật toán mã hóa đối xứng như AES được phần mềm mã hóa tệp sử dụng để bảo vệ dữ liệu nhạy cảm được lưu trữ trên thiết bị, đảm bảo dữ liệu vẫn được an toàn ngay cả khi thiết bị bị mất hoặc bị đánh cắp.
BitLocker: Khi bạn kích hoạt BitLocker trên máy tính Windows để mã hóa tất cả ổ cứng Bằng cách mở khóa PC bằng mật mã của mình, người dùng sẽ giải mã dữ liệu mà không có nguy cơ bị lộ khóa mã hóa bí mật
1.2.3 Mã hóa bất đối xứng
Ngược lại, mã hóa bất đối xứng được tạo ra để giải quyết vấn đề cố hữu của mã hóa đối xứng: nhu cầu chia sẻ một khóa mã hóa duy nhất được sử dụng cho cả mã hóa và giải mã dữ liệu.
Khóa bất đối xứng là nền tảng của Cơ sở hạ tầng khóa công khai (PKI), một kỹ thuật mã hóa yêu cầu hai khóa, một khóa để khóa hoặc mã hóa văn bản gốc và một khóa khác để mở khóa hoặc giải mã văn bản mật mã Không có phím nào thực hiện cả hai chức năng.
Hệ mã hóa bất đối xứng (asymmetric cryptography) hay còn gọi là hệ mã hóa public key là một hệ mã hóa sử dụng một cặp key để mã hóa và giải mã: public key(khóa công khai) dùng để mã hóa và private key (khóa bí mật) để giải mã.
Trong hệ mã hóa này, bất cứ ai cũng có thể sử dụng public key đã mã hóa bản tin và gửi cho người nhận Nhưng một điều hiển nhiên là người sở hữu private key sẽ giữ nó cho riêng mình, và do đó, chỉ anh ta mới có giải mã được mà thôi.
Thông thường thì cặp khóa được sinh này sẽ cố gắng đảm bảo rằng từ public key rất khó (gần như là không thể) truy ra được private key Vì vậy, bất cứ kẻ tấn công nào nếu có được public key (điều này khá dễ dàng) cũng không thể có được private key để giải mã.
Hình 1.3 Quá trình mã hóa bất đối xứng (Asymmetric Encryption)
Loại phương thức mã hóa mới hơn và an toàn hơn này sử dụng hai khóa cho quá trình mã hóa của nó, khóa chung được sử dụng để mã hóa và khóa riêng được sử dụng để giải mã Các phím này có liên quan, kết nối và hoạt động theo cách sau:
Các thuật toán mã hoá
1.3.1 Các thuật toán mã hóa đối xứng phổ biến
Các thuật toán mã hóa đối xứng phổ biến được sử dụng rộng rãi trong việc bảo mật dữ liệu và thông tin liên lạc Ví dụ về các thuật toán này bao gồm Tiêu chuẩn mã hóa nâng cao (AES), Tiêu chuẩn mã hóa dữ liệu (DES), Tiêu chuẩn mã hóa dữ liệu ba (3DES) và Blowfish a, Mã hóa AES (Hệ thống mã hoá nâng cao):
AES là một trong những thuật toán mã hóa đối xứng phổ biến nhất được sử dụng ngày nay, được phát triển để thay thế cho DES (Tiêu chuẩn mã hóa dữ liệu) đã lỗi thời, bị các nhà nghiên cứu bảo mật bẻ khóa vào năm 2005 Thuật toán mới này tìm cách giải quyết điểm yếu chính của phiên bản tiền nhiệm, đó là khóa mã hóa ngắn chiều dài dễ bị tổn thương bởi vũ lực.
Thuật toán mã hóa AES (Advanced Encryption Standard) là một trong những thuật toán mã hóa đối xứng phổ biến và được sử dụng rộng rãi hiện nay Dưới đây là mô tả chi tiết về thuật toán AES:
AES là một mạng mã hóa khối, xử lý các khối dữ liệu có kích thước cố định là 128 bit.
AES hỗ trợ 3 độ dài khóa khác nhau: 128 bit, 192 bit và 256 bit.
1 Chia dữ liệu thành các khối 128 bit.
2 Thực hiện các vòng lặp mã hóa, mỗi vòng bao gồm các phép biến đổi như thay thế, dịch vòng, nhân ma trận và cộng khóa.
3 Số vòng lặp phụ thuộc vào độ dài khóa: 10 vòng với khóa 128 bit, 12 vòng với khóa 192 bit, 14 vòng với khóa 256 bit.
- Các phép biến đổi trong mỗi vòng lặp:
1 Phép thay thế (SubBytes): Thay thế từng byte trong trạng thái hiện tại bằng một byte khác theo một bảng thay thế cố định.
2 Phép dịch vòng (ShiftRows): Dịch từng hàng trong trạng thái hiện tại theo một số bước dịch cố định.
3 Phép nhân ma trận (MixColumns): Nhân ma trận trạng thái hiện tại với một ma trận cố định.
4 Phép cộng khóa (AddRoundKey): Cộng trạng thái hiện tại với khóa vòng tương ứng.
Tốc độ mã hóa/giải mã nhanh, hiệu suất cao.
Độ bảo mật cao, dựa trên sự phức tạp toán học của các phép biến đổi.
Sử dụng khóa đối xứng nên quản lý khóa đơn giản hơn RSA.
Chỉ hỗ trợ mã hóa khối, không thể mã hóa dữ liệu có kích thước không chia hết cho 128 bit.
Cần phải quản lý và cập nhật khóa an toàn.
AES hiện đang được sử dụng rộng rãi trong nhiều ứng dụng bảo mật trên máy tính, thiết bị di động và internet. b, Blowfish và TwoFish:
Blowfish là một phiên bản kế thừa đối xứng khác của DES, được thiết kế dưới dạng mật mã khối giống như AES nhưng có độ dài khóa từ 32 bit đến 448 bit Nó được thiết kế như một công cụ công cộng, không được cấp phép và miễn phí. Phiên bản đầu tiên này đã được nâng cấp lên TwoFish, phiên bản nâng cao của phiên bản sau, sử dụng kích thước khối 128 bit, có thể mở rộng lên tới 256 bit.
Sự khác biệt chính với các thuật toán mã hóa khác là nó sử dụng 16 vòng mã hóa, độc lập với khóa hoặc kích thước dữ liệu.
Lý do chính khiến TwoFish không được coi là thuật toán đối xứng hàng đầu là vì AES đã được công nhận và nhanh chóng được các nhà sản xuất áp dụng làm tiêu chuẩn, nghĩa là nó có lợi thế kỹ thuật cao hơn. c, 3DES (Triple Data Encryptio Standard):
Kế thừa trực tiếp từ DES là 3DES hay Triple Des Thuật toán đối xứng này là một dạng nâng cao của thuật toán DES không dùng nữa, sử dụng khóa 56 bit để mã hóa các khối dữ liệu Khái niệm của nó rất đơn giản: nó áp dụng DES ba lần cho mỗi khối thông tin, nhân ba khóa 56 bit thành khóa 168 bit.
Do áp dụng cùng một quy trình ba lần, 3DES chậm hơn so với các đối tác hiện đại hơn Hơn nữa, bằng cách sử dụng các khối dữ liệu nhỏ, nguy cơ bị giải mã bằng vũ lực sẽ cao hơn.
1.3.2 Các thuật toán mã hóa bất đối xứng phổ biến
Các thuật toán mã hóa bất đối xứng phổ biến rất cần thiết trong giao tiếp và truyền dữ liệu an toàn Ví dụ về các thuật toán này bao gồm RSA, Diffie-Hellman và Mật mã đường cong Elliptic (ECC) a, RSA(Rivest–Shamir–Adleman) Được coi là một phần chính của mã hóa bất đối xứng Được thiết kế bởi các kỹ sư đã đặt tên cho nó vào năm 1977, RSA sử dụng hệ số của tích hai số nguyên tố để cung cấp mã hóa 1024 bit và độ dài khóa lên tới 2048 bit Theo nghiên cứu được thực hiện vào năm 2010, cần 1500 năm để bẻ khóa phiên bản 768-bit nhỏ hơn của nó!
Tuy nhiên, điều này có nghĩa là thuật toán mã hóa chậm hơn Vì nó yêu cầu hai khóa khác nhau có độ dài đáng kinh ngạc nên quá trình mã hóa và giải mã diễn ra chậm nhưng mức độ bảo mật mà nó cung cấp cho thông tin nhạy cảm là không thể so sánh được.
RSA sử dụng hai khóa: khóa công khai (public key) và khóa riêng tư
Khóa công khai được sử dụng để mã hóa, khóa riêng tư được sử dụng để giải mã.
1 Chọn hai số nguyên tố lớn p và q.
4 Chọn số e < φ(n) sao cho e và φ(n) là các số nguyên tố cùng nhau.
5 Tìm số d sao cho d * e ≡ 1 (mod φ(n)).
6 Khóa công khai là (e, n), khóa riêng tư là (d, n).
- Quá trình mã hóa/giải mã:
1 Mã hóa: C = M^e mod n, với M là tin nhắn gốc.
Cung cấp bảo mật cao nhờ vào độ phức tạp toán học của việc phân tích thừa số nguyên tố.
Cho phép chia sẻ khóa công khai, đơn giản hóa quản lý khóa.
Hỗ trợ cả mã hóa và chữ ký số.
Tốc độ mã hóa/giải mã chậm hơn so với mã hóa đối xứng.
Độ dài khóa cần phải đủ lớn (thường 2048 bit trở lên) để đạt độ bảo mật.
Cần phải quản lý và bảo vệ khóa riêng tư an toàn. b, ECC(Elliptic Curve Cryptography)
Phương pháp này ban đầu được Neal Koblitz và Victor S Miller đưa ra vào năm 1985, chỉ được triển khai nhiều năm sau đó vào năm 2004 ECC sử dụng một phép toán khá khó dựa trên các đường cong elip trên một trường hữu hạn, được gọi là Diffie đường cong Elliptic –Hellman
Với ECC, bạn có một đường cong, được xác định bằng hàm toán học, điểm bắt đầu (A) và điểm kết thúc (Z) trong đường cong Điều quan trọng là để đến Z, bạn phải thực hiện một loạt “bước nhảy” hoặc phép nhân để tạo ra Z Số bước nhảy này là khóa riêng.
Các phép tính ngẫu nhiên có thể dẫn đến bất kỳ kiểu sắp xếp nào trên đường cong
Hình 1.4 Đường cong Elliptic –Hellman
Ngay cả khi bạn có điểm bắt đầu và điểm kết thúc (khóa chung) và đường cong thì gần như không thể bẻ khóa khóa riêng Điều này là do ECC được gọi là
“cửa sập”, hay một phép toán dễ hoàn thành và nhanh chóng nhưng cực kỳ khó đảo ngược.
ECC, hay ECDH, một công thức toán học có sức mạnh đến mức nó có thể phù hợp với hệ thống khóa 1024 bit có tính bảo mật bằng khóa 164 bit Ở cài đặt cao nhất, 512 bit, ECC có thể đạt được mức bảo mật tương đương với khóa RSA
15360 bit! Để vẽ một bức tranh, khóa RSA 2048-bit là tiêu chuẩn ngân hàng, tuy nhiênECC 521-bit mang lại kết quả tương đương với khóa RSA 15360-bit.Xem xét các thực tế nói trên, ECC được coi là tương lai của mã hóa Nó không đối xứng nhưng có thể cung cấp mức bảo mật 256 bit với độ dài khóa tối đa là 521 bit, đảm bảo tốc độ mã hóa nhanh với độ phức tạp giải mã cao để đảm bảo dữ liệu nhạy cảm được an toàn.ECC cũng cực kỳ hiệu quả đối với thiết bị di động, nơi khả năng xử lý thấp và tốc độ truyền dữ liệu cao.
1.3.3 Sự khác biệt giữa AES và RSA
Khi so sánh các phương pháp mã hóa AES và RSA, điều cần thiết là phải hiểu điểm mạnh và ứng dụng độc đáo của chúng Trong khi AES là thuật toán đối xứng được thiết kế để mã hóa và giải mã dữ liệu nhanh chóng thì RSA là phương pháp bất đối xứng được sử dụng chủ yếu để trao đổi khóa an toàn và chữ ký số. Trong một số trường hợp nhất định, cái này có thể hoạt động tốt hơn cái kia, khiến việc lựa chọn giữa AES và RSA trở nên quan trọng để đạt được hiệu quả và bảo mật tối ưu.
Chữ ký số và chứng chỉ
Khóa công khai: Khóa được mọi người biết đến Khóa công khai của A là
7, thông tin này ai cũng biết
Khóa riêng: Khóa chỉ được biết bởi người sở hữu khóa riêng
Xác thực: Xác thực là bất kỳ quá trình nào mà hệ thống xác minh danh tính của người dùng muốn truy cập nó
Chống chối bỏ: Chống chối bỏ là một cách để đảm bảo rằng người gửi tin nhắn sau đó không thể phủ nhận việc gửi tin nhắn và người nhận không thể phủ nhận việc nhận tin nhắn
Tính toàn vẹn: để đảm bảo rằng tin nhắn không bị thay đổi trong quá trình truyền
Thông báo tóm tắt: Biểu diễn văn bản dưới dạng một chuỗi chữ số, được tạo bằng công thức gọi là hàm băm một chiều Mã hóa thông báo tóm tắt bằng khóa riêng sẽ tạo ra chữ ký số là phương tiện xác thực điện tử
1.4.2 Chữ ký số a, Định nghĩa
Chữ ký số là một dạng của chữ ký điện tử Nó là một dạng dữ liệu dùng để chứng thực cho các dữ liệu khác Việc chứng thực diễn ra như thế nào chúng ta sẽ tìm hiểu ở phần tiếp theo.
Chữ ký số sử dụng một hệ mã hóa bất đối xứng Trong phần lớn các trường hợp, nó còn có thể kiểm tra cả tính toàn vẹn của dữ liệu nữa Chữ ký số tương tự như chữ ký tay trên nhiều phương diện, nhưng việc cài đặt và sử dụng chữ ký số khó khăn hơn rất nhiều.
Chữ ký số là một kỹ thuật toán học được sử dụng để xác thực tính xác thực và tính toàn vẹn của tài liệu, tin nhắn hoặc phần mềm kỹ thuật số Đó là dạng kỹ thuật số tương đương với chữ ký viết tay hoặc con dấu đóng dấu, nhưng nó mang lại tính bảo mật cao hơn nhiều Chữ ký số nhằm giải quyết vấn đề giả mạo và mạo danh trong truyền thông kỹ thuật số.
Chữ ký số có thể cung cấp bằng chứng về nguồn gốc, danh tính và trạng thái của tài liệu điện tử, giao dịch hoặc tin nhắn kỹ thuật số Người ký cũng có thể sử dụng chúng để xác nhận sự đồng ý có hiểu biết Ở nhiều quốc gia, bao gồm cả Hoa
Kỳ, chữ ký số được coi là có tính ràng buộc về mặt pháp lý giống như chữ ký tài liệu viết tay truyền thống. b, Cách hoạt động
Chữ ký số dựa trên mật mã khóa công khai, còn được gọi là mật mã bất đối xứng Sử dụng thuật toán khóa chung - chẳng hạn như Rivest-Shamir-Adleman hoặc RSA - hai khóa được tạo, tạo ra một cặp khóa được liên kết về mặt toán học: một khóa riêng và một khóa chung.
Chữ ký số hoạt động thông qua hai khóa mật mã xác thực lẫn nhau của mật mã khóa công khai Để mã hóa và giải mã, người tạo chữ ký số sử dụng khóa riêng để mã hóa dữ liệu liên quan đến chữ ký Cách duy nhất để giải mã dữ liệu đó là sử dụng khóa chung của người ký.
Nếu người nhận không thể mở tài liệu bằng khóa chung của người ký, điều đó cho thấy có vấn đề với tài liệu hoặc chữ ký Đây là cách chữ ký số được xác thực. c, Chữ ký số sử dụng hệ mã hóa RSA
Việc ký tên và xác thực chữ ký số sử dụng hệ mã hóa RSA tương tự như quá trình mã hóa mà giải mã ở trên Tuy nhiên vai trò của public key và private thì có thay đổi đôi chút. Để tạo chữ ký, người gửi sẽ dùng private key và người nhận sẽ dùng public key để xác thực chữ ký đó Tuy nhiên, vì bản tin rất dài nên việc mã hóa toàn bộ bản tin sẽ rất mất thời gian Vì vậy, trong thực hành, chữ ký số thường sử dụng phương pháp mã hóa giá trị hash của bản tin.
Hình 1.6 Quá trình xác thực chữ ký số (Digital signature process)
Tài liệu/dữ liệu đã ký: Quá trình bắt đầu với một tài liệu hoặc dữ liệu đã được ký.
Thuật toán băm (Hash algorithm): Tài liệu/dữ liệu đã ký được đưa vào thuật toán băm, tạo ra một giá trị số nhận dạng duy nhất (hash value).
Mã hóa khóa riêng (Private key encryption): Giá trị băm sau đó được mã hóa bằng khóa riêng của người ký, tạo nên chữ ký số.
Mạng lưới (Network): Tài liệu đã ký số được truyền qua mạng lưới.
Giải mã khóa công khai (Public key decryption): Ở phía nhận, chữ ký số được giải mã bằng khóa công khai của người ký.
Thuật toán băm: Tài liệu nhận được cũng được chạy qua cùng thuật toán băm để tạo ra một giá trị băm mới.
Xác minh (Verification): Nếu giá trị băm giải mã khớp với giá trị băm mới, chữ ký được xác minh là hợp lệ và tài liệu chưa bị thay đổi.
Quy trình này đảm bảo rằng tài liệu chưa bị can thiệp và người ký là chủ sở hữu hợp pháp của khóa riêng dùng để tạo chữ ký số Nó cung cấp một cách an toàn để xác thực danh tính của người ký và tính toàn vẹn của tài liệu đã ký trong các giao dịch và thông tin liên lạc kỹ thuật số.
Việc này mang lại rất nhiều lợi ích như:
Các hàm hash là hàm 1 chiều, vì vậy dù có được hash cũng không thể biết được bản tin gốc như thế nào.
Độ dài hash là cố định và thường rất nhỏ, vì vậy chữ số sẽ không chiếm quá nhiều dung lượng.
Giá trị hash còn có thể dùng để kiểm tra lại bản tin nhận được có nguyên vẹn hay không?
Chữ ký số đem lại nhiều giá trị hơn chữ ký tay rất nhiều Có lẽ cũng vì vậy, việc xử lý chữ ký số phức tạp hơn hẳn chữ ký tay truyền thống. d, Xác thực chữ ký số
Xác thực chữ lý số là quá trình kiểm tra tính hợp lệ của chữ ký số để đảm bảo tính toàn vẹn và nguồn gốc của dữ liệu được ký Dưới đây là các bước chính trong quá trình xác thực chữ ký số:
- Thu thập thông tin chứng nhận:
1 Người nhận cần có chứng nhận công khai (public certificate) của người gửi.
2 Chứng nhận này chứa khóa công khai của người gửi và một số thông tin xác định danh tính của họ.
- Xác minh chữ ký số:
1 Sử dụng khóa công khai từ chứng nhận để giải mã chữ ký số.
2 So sánh dữ liệu được giải mã với bản gốc của dữ liệu được ký.
3 Nếu khớp, chữ ký được xác nhận là hợp lệ.
- Xác minh tính toàn vẹn của dữ liệu:
1 So sánh dữ liệu được ký với bản gốc để đảm bảo không bị thay đổi.
2 Nếu dữ liệu khớp, tính toàn vẹn được xác nhận.
- Xác minh danh tính người ký:
1 Kiểm tra các thông tin trong chứng nhận công khai để xác định danh tính của người ký.
2 Đảm bảo chứng nhận được cấp bởi một tổ chức đáng tin cậy.
Quá trình xác thực chữ ký số đóng vai trò quan trọng trong việc đảm bảo tính xác thực, toàn vẹn và không thể chối bỏ của dữ liệu số Nó được sử dụng rộng rãi trong nhiều ứng dụng như giao dịch điện tử, email an toàn, tài liệu kỹ thuật số, v.v.
1.4.3 Chứng chỉ số a, Định nghĩa
Hạ tầng khóa công khai – PKI
Hạ tầng khóa công khai (Public-key infrastructure - PKI) là một tập các phần cứng, phần mềm, nhân lực, chính sách và các thủ tục để tạo, quản lý, phân phối, sử dụng, lưu trữ và thu hồi các chứng chỉ số.Chứng chỉ kỹ thuật số liên kết mật mã khóa công khai với thiết bị hoặc người dùng sở hữu nó Điều này giúp xác thực người dùng và thiết bị, đồng thời đảm bảo liên lạc kỹ thuật số an toàn
PKI là một trong những hình thức mã hóa internet phổ biến nhất và được sử dụng để bảo mật và xác thực lưu lượng giữa trình duyệt web và máy chủ web Nó cũng có thể được sử dụng để bảo mật quyền truy cập vào các thiết bị được kết nối và thông tin liên lạc nội bộ trong một tổ chức
Cơ sở hạ tầng khóa công khai có lịch sử lâu dài về bảo mật và xác thực thông tin liên lạc kỹ thuật số với hai mục tiêu chính : đảm bảo tính riêng tư của tin nhắn được gửi và xác minh rằng người gửi chính là người mà họ tuyên bố.
Là một cơ chế để cho một bên thứ ba (thường là nhà cung cấp chứng thực số ) cung cấp và xác thực định danh các bên tham gia vào quá trình trao đổi thông tin.
Cơ chế này cũng cho phép gán cho mỗi người sử dụng trong hệ thống một cặp public/private Các quá trình này thường được thực hiện bởi một phần mềm đặt tại trung tâm và các phần mềm khác tại các địa điểm của người dùng Khoá công khai thường được phân phối trong chứng thực khóa công khai – hay Public Key Infrastructure.
Khái niệm hạ tầng khoá công khai (PKI) thường được dùng chỉ toàn bộ hệ thống bao gồm cả nhà cung cấp chứng thực số (CA) cùng các cơ chế liên quan đồng thời với toàn bộ việc sử dụng các thuật toán mã hoá công khai trong trao đổi thông tin b, Thành phần
Certificate Authority (CA): Cơ quan cấp và kiểm tra chứng chỉ số.
Registration Authority (RA): Bộ phận kiểm tra thông tin nhận dạng của người dùng theo yêu cầu của CA.
Validation Authority (VA): Cơ quan xác nhận thông tin nhận dạng của người dùng thay mặt CA.
Central Directory (CD): Là nơi lưu danh mục và lập chỉ số các khóa.
Certificate Management System: Hệ thống quản lý chứng chỉ.
Certificate Policy: Chính sách về chứng chỉ. c, Cách thức hoạt động của PKI
Cơ sở hạ tầng khóa công khai sử dụng các phương pháp mã hóa bất đối xứng để đảm bảo rằng các tin nhắn vẫn ở chế độ riêng tư và cũng để xác thực thiết bị hoặc người dùng gửi đường truyền
Mã hóa bất đối xứng liên quan đến việc sử dụng khóa chung và khóa riêng. Khóa mật mã là một chuỗi bit dài được sử dụng để mã hóa dữ liệu
Khóa công khai có sẵn cho bất kỳ ai yêu cầu và được cấp bởi cơ quan cấp chứng chỉ đáng tin cậy Khóa công khai này xác minh và xác thực người gửi tin nhắn được mã hóa.
Thành phần thứ hai của cặp khóa mật mã được sử dụng trong cơ sở hạ tầng khóa công khai là khóa riêng hoặc khóa bí mật Khóa này được người nhận giữ bí mật và được sử dụng để giải mã đường truyền
Các thuật toán phức tạp được sử dụng để mã hóa và giải mã các cặp khóa công khai/riêng tư Khóa chung xác thực người gửi tin nhắn kỹ thuật số, trong khi khóa riêng đảm bảo rằng chỉ người nhận mới có thể mở và đọc nó. d, Chứng chỉ PKI
Cốt lõi của cơ sở hạ tầng khóa công khai là sự tin cậy Điều quan trọng là thực thể người nhận phải biết chắc chắn rằng người gửi chứng chỉ số chính xác là người mà họ tuyên bố CA bên thứ ba đáng tin cậy có thể bảo đảm cho người gửi và giúp chứng minh rằng họ thực sự đúng như những gì họ nói Chứng chỉ kỹ thuật số được sử dụng để xác minh danh tính kỹ thuật số
Chứng chỉ số còn được gọi là chứng chỉ PKI hoặc chứng chỉ X.509 Chứng chỉ PKI cung cấp bằng chứng nhận dạng cho thực thể yêu cầu, được bên thứ ba xác minh và hoạt động giống như hộ chiếu kỹ thuật số hoặc bằng lái xe
Chứng chỉ PKI sẽ chứa những nội dung sau:
Tên phân biệt (DN) của chủ sở hữu
Khóa công khai của chủ sở hữu
DN của CA phát hành
Cấp chữ ký số của CA e, Lý do PKI được sử dụng
Một trong những ứng dụng phổ biến nhất của PKI là TLS/SSL (bảo mật lớp vận chuyển/lớp ổ cắm bảo mật), bảo mật thông tin liên lạc HTTP (giao thức truyền siêu văn bản) được mã hóa
Chủ sở hữu trang web sẽ nhận được chứng chỉ kỹ thuật số từ một CA đáng tin cậy Để được cấp CA, chủ sở hữu trang web sẽ phải chứng minh rằng họ thực sự là chủ sở hữu thực sự Sau khi được xác minh, chủ sở hữu trang web có thể mua chứng chỉ SSL để cài đặt trên máy chủ web Điều này cho trình duyệt biết rằng đó là trang web hợp pháp mà trình duyệt đang cố truy cập
Tiêu chuẩn mật mã khóa công khai ( Public-Key Cryptography Standards)
Các tiêu chuẩn mã hóa khóa công khai (PKCS) được định nghĩa là một bộ giao thức cung cấp cấu trúc cho các khía cạnh khác nhau của việc sử dụng cơ sở hạ tầng khóa công khai để trao đổi thông tin
Các tiêu chuẩn mã hóa khóa công khai (PKCS) là một tập hợp các giao thức cung cấp cấu trúc cho các khía cạnh khác nhau của việc sử dụng cơ sở hạ tầng khóa công khai để trao đổi thông tin Hiện tại có 15 tiêu chuẩn PKCS, mặc dù một số tiêu chuẩn trong số đó đã bị vô hiệu
Các tiêu chuẩn mật mã khóa công khai cung cấp khuôn khổ và cấu trúc cho tất cả hoạt động giao tiếp thông qua cơ sở hạ tầng khóa công khai (PKI) Họ đưa ra các chi tiết về cú pháp và thuật toán trừu tượng có thể được điều chỉnh trên các công nghệ khác nhau.
Cơ sở hạ tầng khóa công khai (PKI) là tất cả mọi thứ liên quan đến việc triển khai mật mã khóa công khai – phần cứng và phần mềm cần thiết, quy trình, tiêu chuẩn và vai trò của các bên liên quan
Mật mã khóa công khai, còn được gọi là mật mã bất đối xứng, mã hóa dữ liệu văn bản thuần bằng cách sử dụng khóa chung và khóa riêng trước khi gửi qua mạng Giống như tất cả các phương pháp mã hóa khác, mức độ bảo mật của mã hóa khóa công khai phụ thuộc vào thuật toán mã hoá được sử dụng và mức độ bí mật của các khóa liên quan.
Giả sử Liam và Jamila muốn liên lạc bằng PKI Liam là người gửi và Jamila là người nhận Cả Liam và Jamila đều có một cặp khóa chung và khóa riêng Liam cung cấp cho Jamila khóa công khai của anh ấy, khóa này không cần phải bí mật Liam mã hóa tin nhắn của mình cho Jamila bằng khóa riêng của mình và gửi nó đi Khóa riêng là một bí mật Jamila giải mã nó bằng khóa chung của Liam Lưu ý: Các khóa này hoạt động song song – chỉ khóa riêng được ghép nối mới có thể giải mã tin nhắn được mã hóa bằng khóa chung cụ thể Có thể tăng cường tính bảo mật của thông tin liên lạc này bằng cách sử dụng như sau:
Chữ ký số: Liam tạo bản tóm tắt băm cho thông điệp dự định của mình bằng thuật toán mà anh và Jamila đã đồng ý Anh ta đính kèm nó vào tin nhắn trước khi mã hóa nó bằng khóa riêng của mình Đây là một tin nhắn đã được ký Jamila giải mã điều này bằng khóa chung của Liam, tạo phần tóm tắt tin nhắn của riêng cô ấy và so sánh nó với phần mà Liam đã gửi Nếu chúng khớp nhau thì tin nhắn đó là của Liam và không bị thay đổi trong quá trình truyền tải Kiểu giao tiếp này yêu cầu một thuật toán phân loại tin nhắn để giảm các tin nhắn có độ dài bất kỳ về độ dài cố định MD5 là một ví dụ về thuật toán phân loại tin nhắn do RSA phát minh.
Chứng chỉ: Chứng chỉ số là chứng minh nhân dân do cơ quan cấp chứng chỉ được công nhận và tin cậy cấp Mỗi chứng chỉ chứa thông tin chi tiết của người gửi cùng với khóa chung Cơ quan này cũng cung cấp khóa riêng một cách riêng biệt Tin nhắn được “ký” bằng các chứng chỉ số này.
Bao phủ: Liam tạo một khóa bí mật ngẫu nhiên và mã hóa nó bằng khóa chung của Jamila Anh ta mã hóa tin nhắn bằng khóa bí mật này Anh ấy gửi cả hai cho Jamila Cô giải mã tin nhắn, lấy khóa bí mật bằng khóa riêng của mình và giải mã tin nhắn dự định Chế độ mã hóa này sử dụng thuật toán khóa bí mật, còn được gọi là thuật toán mã hóa nội dung.
Thỏa thuận chính: Liam và Jamila đồng ý về một chìa khóa bí mật cho mọi hoạt động liên lạc Họ sử dụng điều này để bao bọc các tin nhắn thay vì tạo ra một khóa đặc biệt Nhưng họ phải đảm bảo rằng bản thân khóa đó được truyền đạt và lưu trữ an toàn Đôi khi, khóa cũng được tạo bằng mật khẩu đặt trước Điều này cũng sử dụng thuật toán mã hóa nội dung.
Như đã đề cập ở trên, loại và sự kết hợp của các thuật toán được sử dụng trong mật mã khóa công khai khác nhau tùy theo loại giao tiếp Giao thức SSL/TLS là ví dụ về cách áp dụng từng chế độ mã hóa này SSL/TLS chuyển thông tin giữa người dùng trên thiết bị thông qua trình duyệt và ứng dụng
Hầu hết việc triển khai PKI đều tập trung vào mã hóa bằng chứng chỉ số. Người dùng hoặc tổ chức có thể đăng ký chứng chỉ từ cơ quan cấp chứng chỉ (CA).
Cơ quan đăng ký (RA) xác minh tính xác thực của các ứng dụng Các chứng chỉ đã cấp được lưu trữ an toàn trong thư mục trung tâm và có hệ thống quản lý chứng chỉ để duy trì chúng.
Một số triển khai cơ sở hạ tầng khóa công khai nguồn mở bao gồm OpenSSL, Vault, DogTag và CFSSL Khái niệm giao tiếp được mã hóa không còn chỉ áp dụng cho các ngành thích hợp như ngân hàng Thông tin nhận dạng cá nhân và riêng tư (PII) liên tục được truyền qua nhiều ứng dụng và trang web Hầu hết thông tin được lưu trữ và truy cập từ đám mây. Điều này có nghĩa là mật mã được sử dụng trong mọi thiết bị ở hầu hết mọi cấp độ liên lạc Với suy nghĩ này, các phòng thí nghiệm RSA đã phát triển một bộ tiêu chuẩn vào đầu những năm 1990 Ngày nay, các tiêu chuẩn PKCS được xem xét và duy trì trên toàn cầu với sự tham gia của các công ty công nghệ có uy tín như Apple, Microsoft và MIT.
Các tiêu chuẩn mật mã khóa công khai nhằm mục đích chuẩn hóa các thuật toán, quy trình và định dạng thông báo để quá trình giao tiếp diễn ra suôn sẻ trên các ứng dụng từ các nhà cung cấp khác nhau.
1.6.2 Tầm quan trọng của PKCS
Một số chuẩn chứng thư số PKCS và thông số kỹ thuật
Mỗi tiêu chuẩn PKCS đề cập đến một khía cạnh cụ thể của PKI Mỗi chuẩn được xem xét, duy trì riêng lẻ và cập nhật khi cần thiết
1.7.1 PKCS #1 – Chuẩn mật mã RSA
Mô tả: PKCS#1 là tiêu chuẩn mã hóa khóa công khai RSA (Public-Key Cryptography Standard #1) được phát triển bởi RSA Laboratories Tiêu chuẩn này định nghĩa các định dạng và phương pháp mã hóa sử dụng thuật toán RSA.
PKCS#1 bao gồm các nội dung chính sau:
Định dạng khóa công khai RSA:
Định nghĩa cấu trúc dữ liệu để lưu trữ các thông số của khóa công khai RSA.
Các phương pháp mã hóa và giải mã sử dụng RSA:
Định nghĩa các phương pháp mã hóa, giải mã, ký và xác minh chữ ký sử dụng khóa công khai RSA.
Các phương pháp tạo chữ ký số sử dụng RSA: Định nghĩa các phương pháp để tạo chữ ký số sử dụng khóa riêng RSA.
PKCS#12 sử dụng PKCS#1 để mã hóa các khóa riêng và chứng chỉ số được lưu trữ trong tệp PKCS#12 Khi một tệp PKCS#12 được mở, PKCS#1 được sử dụng để giải mã các khóa riêng và xác thực chữ ký trên các chứng chỉ số Vì vậy, PKCS#1 cung cấp các cơ chế mã hóa/giải mã và tạo/xác minh chữ ký số sử dụng khóa công khai RSA, là một phần quan trọng được sử dụng trong định dạng tệp PKCS#12 để bảo vệ các thông tin bảo mật cá nhân.
Bên cạnh cú pháp của khóa, nó cũng chỉ định những yêu cầu toán học nào mà khóa phải đáp ứng để không thể bị tấn công brute-force Một số thư viện triển khai PKCS#1 là BSAFE, cryptlib, OpenSSL và Nettle.
Hiện nay, tiêu chuẩn này vẫn được duy trì Nó cũng được tái bản dưới tên RFC 8017 vào năm 2012 RFC là một tài liệu chính thức được duy trì bởi lực lượng đặc nhiệm kỹ thuật Internet (IETF) chứa các thông số kỹ thuật và ghi chú cho mọi thứ liên quan đến điện toán và mạng.
1.7.2 PKCS #7 – Chuẩn cú pháp tin nhắn mật mã
Mô tả : PKCS#7 (Cryptographic Message Syntax Standard) là một tiêu chuẩn định nghĩa cú pháp để mã hóa và ký số các thông điệp mật mã
PKCS#7 định nghĩa cấu trúc dữ liệu để lưu trữ các thông điệp mật mã, bao gồm dữ liệu được mã hóa, thông tin về người ký, thuật toán mã hóa/ký, v.v
PKCS#7 cung cấp các phương pháp để mã hóa/giải mã dữ liệu và tạo/xác minh chữ ký số sử dụng khóa công khai.
PKCS#7 định nghĩa các loại thông điệp mật mã như signed-data, enveloped-data, signed-and-enveloped-data, etc.
Mối liên hệ giữa PKCS#7 và PKCS#12:
Chứng chỉ số trong PKCS#12: PKCS#12 sử dụng định dạng PKCS#7 để lưu trữ các chứng chỉ số trong tệp PKCS#12.
Ký số trong PKCS#12: Khi ký số trên các thành phần trong tệp
PKCS#12, PKCS#7 được sử dụng để tạo và xác minh chữ ký số.
Mã hóa trong PKCS#12: PKCS#7 cung cấp các phương pháp mã hóa/giải mã được sử dụng để bảo vệ các thông tin nhạy cảm trong tệp PKCS#12.
PKCS#7 cung cấp các cơ chế mã hóa, ký số và định dạng thông điệp mật mã, được sử dụng trong quá trình lưu trữ và bảo vệ các thông tin như chứng chỉ số, khóa riêng trong định dạng tệp PKCS#12.
Hiện nay, tiêu chuẩn này vẫn đang được duy trì Tiêu chuẩn này tạo cơ sở cho RFC 5652 và mặc dù vẫn đang được triển khai nhưng nó đang được RFC 3369 tiếp quản.
1.7.3 PKCS #8 – Chuẩn cú pháp thông tin khóa riêng
Mô tả : PKCS#8 (Private-Key Information Syntax Standard) là một tiêu chuẩn định nghĩa cấu trúc dữ liệu để lưu trữ và mã hóa khóa riêng.
Định dạng lưu trữ khóa riêng: PKCS#8 định nghĩa cấu trúc dữ liệu để lưu trữ các thông tin về khóa riêng, bao gồm thuật toán, tham số, và giá trị của khóa riêng.
Mã hóa khóa riêng: PKCS#8 cung cấp các phương pháp để mã hóa khóa riêng sử dụng mật khẩu hoặc khóa đối xứng khác.
Định dạng lưu trữ khóa riêng mã hóa: PKCS#8 định nghĩa cấu trúc dữ liệu để lưu trữ khóa riêng đã được mã hóa.
Mối liên hệ giữa PKCS#8 và PKCS#12:
Lưu trữ khóa riêng trong PKCS#12: Khi lưu trữ khóa riêng trong tệp PKCS#12, PKCS#8 được sử dụng để định nghĩa cấu trúc dữ liệu của khóa riêng.
Mã hóa khóa riêng trong PKCS#12: Các phương pháp mã hóa khóa riêng định nghĩa trong PKCS#8 được sử dụng để mã hóa khóa riêng lưu trữ trong tệp PKCS#12.
Giải mã khóa riêng trong PKCS#12: Khi giải mã khóa riêng từ tệp PKCS#12, các phương pháp giải mã PKCS#8 được áp dụng.
Vậy, PKCS#8 cung cấp các cơ chế để định nghĩa, mã hóa và lưu trữ khóa riêng, là một phần quan trọng được sử dụng trong định dạng tệp PKCS#12 để bảo vệ các khóa riêng.
Hiện nay, tiêu chuẩn này vẫn đang được duy trì và có sẵn dưới dạng RFC 5208.
1.7.4 PKCS #12 – Chuẩn cú pháp trao đổi thông tin cá nhân
Mô tả : PKCS#12 (Personal Information Exchange Syntax Standard) là một định dạng tệp được sử dụng rộng rãi để lưu trữ và trao đổi thông tin cá nhân liên quan đến bảo mật, như chứng chỉ số, khóa riêng, mật khẩu, v.v PKCS#12 xác định định dạng tệp trong đó khóa riêng được cấp cùng với khóa chung được lưu trữ Nó cũng chỉ định cách lưu trữ nhiều thông tin cá nhân khác, chẳng hạn như chứng chỉ kỹ thuật số.
Thông thường, tất cả thông tin mã hóa riêng tư sẽ được nhóm lại và lưu trữ trong các vùng chứa nội bộ được gọi là SafeBags Một số SafeBags có cấu trúc được xác định trước cho phép lưu trữ các yêu cầu chứng chỉ, chứng chỉ X.509 và khóa riêng Một số SafeBags linh hoạt hơn và cho phép lưu trữ thông tin cá nhân, tùy chỉnh.
Bên cạnh việc lưu trữ, PKCS #12 còn cung cấp cơ chế truyền dữ liệu này qua mạng, cùng với cú pháp cần thiết PKCS #12 được xây dựng trên PKCS #8 chỉ xử lý khóa riêng Nó bổ sung thêm một lớp để kiểm tra tính toàn vẹn của dữ liệu này cả trong quá trình truyền và lưu trữ.
Cấu trúc chính của PKCS#12 bao gồm:
Thông tin nhận dạng: Thông tin người sở hữu tệp, như tên, email, v.v.
Chứng chỉ số: o Lưu trữ các chứng chỉ số của người sở hữu và các bên liên quan. o Chứng chỉ số được lưu trữ dưới định dạng PKCS#7.
Khóa riêng o Lưu trữ các khóa riêng của người sở hữu và các bên liên quan. o Khóa riêng được lưu trữ dưới định dạng PKCS#8 và được mã hóa.
Mật khẩu: Mật khẩu được sử dụng để mã hóa và bảo vệ các thông tin nhạy cảm trong tệp.
Thuộc tính bổ sung: Các thông tin bổ sung như nhãn, thời gian, v.v. Hiện nay, tiêu chuẩn này vẫn đang được duy trì và sử dụng rộng rãi
TÌM HIỂU VỀ CHUẨN PKCS#12
Các thành phần của tệp PKCS#12
Giống như những "giấy tờ tùy thân" kỹ thuật số, chứng chỉ xác minh danh tính của cá nhân hoặc tổ chức sở hữu chúng.
Một tệp PKCS#12 có thể chứa nhiều loại chứng chỉ khác nhau, bao gồm: o Chứng chỉ máy chủ (Server Certificate): Chịu trách nhiệm xác minh danh tính của trang web khi bạn truy cập Nhờ vậy, bạn có thể yên tâm rằng mình đang truy cập đúng trang web mong muốn và không bị đánh lừa bởi các trang web giả mạo. o Chứng chỉ trung gian (Intermediate Certificate): Giúp xác minh tính hợp lệ của chứng chỉ máy chủ Nó đóng vai trò như "giấy tờ chứng minh" cho chứng chỉ máy chủ, đảm bảo rằng chứng chỉ này được cấp bởi một tổ chức đáng tin cậy. o Chứng chỉ gốc (Root Certificate): Là chứng chỉ tin cậy được sử dụng để xác minh các chứng chỉ trung gian Giống như "giấy khai sinh" trong hệ thống chứng chỉ, nó đóng vai trò là nền tảng tin cậy cho toàn bộ cấu trúc chứng chỉ. b, Khóa riêng (Private Key):
Được ví như "mật khẩu bí mật" đi kèm với chứng chỉ, đóng vai trò quan trọng trong việc giải mã thông tin được mã hóa bằng khóa công khai tương ứng.
Khóa riêng được bảo vệ bằng mật khẩu do người dùng cung cấp để đảm bảo tính bảo mật Việc tiết lộ khóa riêng có thể dẫn đến những hậu quả nghiêm trọng, vì nó cho phép kẻ tấn công giải mã dữ liệu nhạy cảm hoặc mạo danh bạn thực hiện các hành vi trái phép. c, Thông tin bổ sung (Additional Information):
Cung cấp các chi tiết bổ sung về chứng chỉ và khóa riêng, giúp nâng cao tính hữu ích và quản lý thông tin hiệu quả hơn.
Thông tin bổ sung có thể bao gồm: o Mô tả chi tiết về chứng chỉ, giúp bạn dễ dàng phân biệt và lựa chọn chứng chỉ phù hợp cho từng mục đích sử dụng. o Thuộc tính mở rộng cung cấp các thông tin bổ sung tùy theo từng trường hợp, ví dụ như tên miền, địa chỉ email, v.v. o Danh sách thu hồi chứng chỉ (CRL) là danh sách các chứng chỉ đã bị thu hồi và không còn hợp lệ, giúp bạn tránh sử dụng những chứng chỉ không an toàn.
Cấu trúc chi tiết của tệp PKCS#12
Tệp PKCS#12 được ví như một kho lưu trữ an toàn cho các thành phần bảo mật quan trọng, đóng vai trò thiết yếu trong việc bảo vệ thông tin và giao tiếp trực tuyến Để hiểu rõ hơn về cấu trúc tổng thể của tệp PKCS#12, hãy cùng khám phá từng phần một cách chi tiết: a, Bản ghi đầu (ContentInfo):
Mở đầu cho tệp PKCS#12, bản ghi đầu đóng vai trò quan trọng trong việc xác định thông tin cơ bản về tệp và đảm bảo tính toàn vẹn của dữ liệu Nó bao gồm các thành phần sau:
Phiên bản PKCS#12: Xác định phiên bản của định dạng PKCS#12 được sử dụng trong tệp Hiện nay, phiên bản phổ biến nhất là 1.0.
Thuật toán mã hóa: Xác định thuật toán mã hóa được sử dụng để bảo vệ nội dung của tệp PKCS#12 Một số thuật toán mã hóa phổ biến bao gồm AES-256 và Triple DES.
Thông tin bổ sung (Optional): Có thể bao gồm các thuộc tính bổ sung như
OID (Object Identifier) của tệp, giúp người dùng xác định tệp một cách dễ dàng hơn. b, Nội dung (Content):
Là phần chính của tệp PKCS#12, nội dung đóng vai trò lưu trữ tất cả các thành phần bảo mật quan trọng Nó bao gồm các yếu tố sau:
Bộ sưu tập chứng chỉ (AuthenticatedSafe): Chứa tất cả các chứng chỉ liên quan đến tệp PKCS#12, bao gồm chứng chỉ máy chủ, chứng chỉ trung gian và chứng chỉ gốc Mỗi chứng chỉ được mã hóa riêng bằng thuật toán phù hợp.
Bộ sưu tập CRL (SafeContents): Lưu trữ danh sách CRL (Certificate
Revocation List), giúp xác định các chứng chỉ đã bị thu hồi và không còn hợp lệ Việc sử dụng CRL đảm bảo rằng chỉ những chứng chỉ hợp lệ mới được sử dụng trong giao tiếp bảo mật.
Thông tin thân mạc (Data): Cung cấp các thông tin bổ sung về chứng chỉ, ví dụ như mô tả chứng chỉ, thuộc tính mở rộng, v.v.
Khóa riêng (Bag): Lưu trữ khóa riêng được liên kết với chứng chỉ trong bộ sưu tập chứng chỉ Khóa riêng được mã hóa bằng mật khẩu do người dùng cung cấp để đảm bảo tính bảo mật cao. c, Bản ghi cuối (EndOfContent):
Kết thúc cho tệp PKCS#12, bản ghi cuối đóng vai trò quan trọng trong việc bảo đảm tính toàn vẹn của dữ liệu Việc sử dụng bản ghi cuối có thể giúp đảm bảo tính toàn vẹn của dữ liệu trong tệp PKCS#12, ngăn chặn các hành vi can thiệp hoặc sửa đổi trái phép Đây là một tính năng quan trọng của định dạng tệp này, đặc biệt khi lưu trữ các thông tin bảo mật như chứng chỉ số và khóa riêng tư Bản ghi cuối bao gồm:
Thông tin xác minh tính toàn vẹn: Sử dụng thuật toán băm (như SHA-1) để tạo ra giá trị băm cho toàn bộ nội dung tệp Việc so sánh giá trị băm này với giá trị được lưu trữ trong bản ghi cuối giúp xác định xem tệp có bị giả mạo hoặc thay đổi trái phép hay không.
Kết thúc tệp: Bản ghi cuối đánh dấu sự kết thúc của tệp PKCS#12, xác nhận rằng không có thông tin nào khác được thêm vào sau đó.
Mật khẩu là yếu tố then chốt để bảo vệ tệp PKCS#12 Nên chọn mật khẩu mạnh và giữ bí mật để đảm bảo an toàn cho thông tin.
Định dạng PKCS#12 được hỗ trợ bởi nhiều ứng dụng và hệ điều hành khác nhau, bao gồm Windows, macOS và Linux.
Như vậy, cấu trúc tổng thể của tệp PKCS#12 được thiết kế một cách chặt chẽ và an toàn, đảm bảo bảo vệ các thành phần bảo mật quan trọng và hỗ trợ việc quản lý thông tin hiệu quả.
Các định dạng mã hoá được hỗ trợ trong PKCS#12
Trong cấu trúc đối tượng PKCS#12 được mô tả, ta có thể nhận thấy các định dạng mã hóa sau được hỗ trợ:
Dạng dữ liệu được ký (SignedData): o contentType=signedData o content Đây là định dạng để lưu trữ dữ liệu được ký số, đảm bảo tính toàn vẹn và xác thực của các thành phần như chứng chỉ số.
Dạng dữ liệu được mã hóa (EncryptedData): o contentType=encrypted-data o content Định dạng này được sử dụng để mã hóa dữ liệu, ví dụ như khóa riêng tư, sử dụng mật khẩu để bảo vệ thông tin nhạy cảm.
Dạng dữ liệu đóng gói (EnvelopedData): o contentType=enveloped-data o content Định dạng này cho phép đóng gói dữ liệu, ví dụ như chứng chỉ số, với khóa công khai để bảo vệ tính bảo mật.
Dạng dữ liệu dạng thuần (Data): o contentTypea o content Định dạng này được sử dụng để lưu trữ dữ liệu không được mã hóa hoặc ký.
Các định dạng mã hóa này cung cấp các cơ chế bảo vệ khác nhau như ký số, mã hóa và đóng gói để đảm bảo tính bảo mật, toàn vẹn và xác thực của các thành phần được lưu trữ trong tệp PKCS#12.
So sánh cấu trúc, tính năng và ưu nhược điểm của PKCS12 với các định dạng lưu trữ khoá khác
PKCS12 là một định dạng lưu trữ toàn diện, hỗ trợ lưu trữ cả khóa và chứng chỉ số, cùng với các tính năng mã hóa và bảo vệ dữ liệu Các định dạng khác nhưPEM, JKS và PKCS8 thường được sử dụng cho các mục đích cụ thể hơn.
Hình 2.2 Bảng so sánh PKCS#12 với các định dạng lưu trữ khoá khác
Tạo tệp chứng chỉ PKCS#12 với công cụ Java Keytool
Lệnh: keytool -genkeypair -alias -keyalg -keystore
keytool: Đây là một công cụ của Java dùng để quản lý các khóa và chứng chỉ số.
-genkeypair: Tham số này yêu cầu keytool tạo ra một cặp khóa công khai/riêng tư mới.
-alias : Tham số này cho phép chỉ định một biệt danh (alias) để dễ dàng quản lý cặp khóa Thông thường, người ta sử dụng tên miền hoặc tên của tổ chức làm alias.
-keyalg : Tham số này chỉ định thuật toán mã hóa được sử dụng để tạo khóa Một số thuật toán phổ biến là RSA, DSA, EC.
-keystore : Tham số này chỉ định tên tệp lưu trữ cặp khóa và chứng chỉ số Trong trường hợp này, tệp sẽ được lưu ở định dạng PKCS12.
-storetype PKCS12: Tham số này chỉ định định dạng lưu trữ là PKCS12, một định dạng an toàn và phổ biến để lưu trữ các khóa và chứng chỉ số.
Khi chạy lệnh này, keytool sẽ tạo ra một cặp khóa mới (công khai và riêng tư) và lưu trữ chúng trong một tệp PKCS12 có tên như được chỉ định bởi tham số - keystore Người dùng sẽ được yêu cầu nhập một mật khẩu để bảo vệ tệp PKCS12 này.
Sau đó, cần nhập password để đảm bảo tính toàn vẹn của tập tin rồi nhấn Enter:
Nhập lại password rồi nhấn Enter tiếp:
Trả lời một số câu hỏi rồi xác nhận Nếu đúng thì nhập yes
Sau khi generate xong, có thể vào thư mục được truyền trong câu lệnh (ví dụ / Users/Khanh/Documents), nhập câu lệnh sau:
Lệnh: keytool -list -keystore -storepass
Sau khi tạo xong, tệp PKCS12 có thể được sử dụng trong các ứng dụng cần sử ddụng khóa và chứng chỉ số, như chứng thực HTTPS, chữ ký số, VPN, v.v.
Tạo tệp chứng chỉ PKCS#12 với OpenSSL
Khóa riêng tư ban đầu được sử dụng cho chứng chỉ
Tệp PEM (.pem, crt, cer) hoặc PKCS#7/P7B (.p7b, p7c)
OpenSSL (có trong Linux/Unix và macOS và dễ dàng cài đặt trên Windows bằng Cygwin ) b, Câu lệnh
Lệnh: openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile more.crt
openssl pkcs12: Đây là lệnh để tương tác với các định dạng PKCS12, một định dạng phổ biến để lưu trữ các khóa và chứng chỉ số.
-export: Tham số này yêu cầu openssl tạo ra một tệp PKCS12 chứa các thông tin được chỉ định.
-out certificate.pfx: Tham số này chỉ định tên tệp sẽ được tạo ra, trong trường hợp này là certificate.pfx Đây là tệp PKCS12 chứa các thông tin được xuất.
-inkey privateKey.key: Tham số này chỉ định tệp chứa khóa riêng tư (private key) cần được bao gồm trong tệp PKCS12.
-in certificate.crt: Tham số này chỉ định tệp chứa chứng chỉ số (certificate) cần được bao gồm trong tệp PKCS12.
-certfile more.crt: Tham số này chỉ định tệp chứa thêm các chứng chỉ số (chẳng hạn như chứng chỉ trung gian hoặc chứng chỉ của cơ quan cấp) cần được bao gồm trong tệp PKCS12.
Khi chạy lệnh này, openssl sẽ tạo ra một tệp PKCS12 có tên certificate.pfx chứa:
Khóa riêng tư được chỉ định bởi privateKey.key
Chứng chỉ số được chỉ định bởi certificate.crt
Các chứng chỉ bổ sung được chỉ định bởi more.crt
Quản lý và sử dụng tệp PKCS#12
Lưu trữ an toàn tệp PKCS#12: o Tệp PKCS#12 chứa các thông tin quan trọng như khóa riêng, chứng chỉ số và mật khẩu, vì vậy cần phải bảo vệ chúng khỏi truy cập trái phép. o Sử dụng mật khẩu mạnh và duy nhất để mã hóa tệp PKCS#12 Tránh dùng mật khẩu đơn giản hoặc dễ đoán. o Lưu trữ tệp PKCS#12 ở nơi an toàn như két sắt, két an toàn hoặc thiết bị lưu trữ mã hóa Hạn chế số người có quyền truy cập. o Thực hiện sao lưu định kỳ tệp PKCS#12 để có bản sao dự phòng.
Quản lý mật khẩu tệp PKCS#12: o Mật khẩu dùng để mã hóa tệp PKCS#12 phải được lưu giữ cẩn thận, không được ghi ở nơi dễ bị nhìn thấy. o Thường xuyên thay đổi mật khẩu để đảm bảo an toàn, đặc biệt khi có bất kỳ dấu hiệu rò rỉ nào. o Sử dụng quản lý mật khẩu an toàn để lưu trữ mật khẩu PKCS#12.
Cập nhật tệp PKCS#12: o Khi có sự thay đổi về chứng chỉ số hoặc khóa riêng, cần tạo tệp
PKCS#12 mới và thay thế tệp cũ. o Lưu giữ bản sao tệp PKCS#12 cũ để đảm bảo tính liên tục, nhưng phải đảm bảo an toàn và không truy cập.
Xác thực, mã hóa, ký số: o Tệp PKCS#12 được sử dụng để xác thực danh tính số, mã hóa thông tin và ký số số trong các ứng dụng bảo mật như trình duyệt web, email, VPN, v.v. o Khi sử dụng tệp PKCS#12, người dùng sẽ được yêu cầu nhập mật khẩu để truy cập và sử dụng nội dung của tệp.
Cung cấp mật khẩu an toàn: o Mật khẩu dùng để mở tệp PKCS#12 phải được bảo vệ cẩn thận, không chia sẻ với bất kỳ ai không cần thiết. o Sử dụng quản lý mật khẩu an toàn để lưu trữ mật khẩu PKCS#12 thay vì ghi nhớ hoặc lưu trữ ở nơi dễ bị truy cập.
Hạn chế sử dụng tệp PKCS#12: o Chỉ chia sẻ tệp PKCS#12 với những người/ứng dụng đáng tin cậy và có nhu cầu sử dụng thật sự. o Xem xét sử dụng các giải pháp bảo mật khác như mã hóa tệp tin, ký số riêng thay cho việc chia sẻ tệp PKCS#12.
Việc quản lý và sử dụng tệp PKCS#12 một cách cẩn thận và an toàn là rất quan trọng để bảo vệ các thông tin nhạy cảm như khóa riêng và chứng chỉ số.
Xử lý sự cố và nâng cao bảo mật tệp PKCS#12
PKCS12, hay còn gọi là P12/PFX, là định dạng phổ biến để lưu trữ khóa riêng, chứng chỉ và chuỗi tin cậy Tuy nhiên, việc sử dụng nó cũng tiềm ẩn một số rủi ro và sự cố Dưới đây là các vấn đề thường gặp, cách khắc phục và biện pháp nâng cao bảo mật cho tệp PKCS12.
2.8.1 Phân tích các vấn đề thường gặp a, Quên mật khẩu Đây là vấn đề phổ biến nhất, khiến người dùng không thể truy cập vào khóa riêng và chứng chỉ, ảnh hưởng đến hoạt động sử dụng.
Sử dụng công cụ khôi phục mật khẩu: Một số công cụ có thể giúp bạn khôi phục mật khẩu PKCS12 bị quên, tuy nhiên tỷ lệ thành công không cao và có thể mất phí.
Liên hệ nhà cung cấp dịch vụ: Nếu bạn sử dụng tệp PKCS12 do bên thứ ba cung cấp, hãy liên hệ với họ để được hỗ trợ.
Giải mã thủ công: Một số phương pháp giải mã thủ công có thể được áp dụng, tuy nhiên đòi hỏi kiến thức chuyên môn và tỷ lệ thành công thấp. b, Tệp PKCS12 bị hỏng
Do lỗi phần mềm, virus, thao tác sai lầm hoặc lỗi ổ lưu trữ, tệp PKCS12 có thể bị hỏng và không thể sử dụng được.
Sử dụng công cụ sửa chữa tệp PKCS12: Một số công cụ chuyên dụng có thể sửa chữa tệp PKCS12 bị hỏng, tuy nhiên không đảm bảo thành công và có thể làm hỏng dữ liệu thêm.
Phục hồi từ bản sao lưu: Nếu bạn có bản sao lưu tệp PKCS12 ملاس, hãy sử dụng bản sao lưu đó để khôi phục.
Tạo lại tệp PKCS12: Trong một số trường hợp hiếm hoi, bạn có thể tạo lại tệp PKCS12 bằng cách sử dụng khóa riêng và chứng chỉ gốc.
2.8.2 Biện pháp nâng cao bảo mật Để giảm thiểu rủi ro và đảm bảo an toàn cho tệp PKCS12, cần thực hiện các biện pháp sau:
Sử dụng mật khẩu mạnh: Sử dụng mật khẩu dài (tối thiểu 12 ký tự) bao gồm chữ hoa, chữ thường, số và ký tự đặc biệt Tránh sử dụng mật khẩu dễ đoán như thông tin cá nhân hoặc ngày sinh Không sử dụng cùng một mật khẩu cho nhiều tài khoản khác nhau.
Lưu trữ an toàn: Lưu trữ tệp PKCS12 ở nơi an toàn, tránh xa tầm tay của người khác Có thể sử dụng ổ đĩa ngoài hoặc dịch vụ lưu trữ đám mây được mã hóa để lưu trữ tệp PKCS12 Tránh lưu trữ tệp PKCS12 trên máy tính cá nhân không được bảo mật.
Cập nhật phần mềm: Sử dụng phiên bản phần mềm mới nhất để vá các lỗ hổng bảo mật Cập nhật hệ điều hành, trình duyệt web và các phần mềm liên quan thường xuyên.
Mã hóa thêm: Sử dụng công cụ mã hóa đĩa hoặc tệp để bảo vệ tệp PKCS12 khỏi truy cập trái phép Sử dụng mật khẩu mạnh cho quá trình mã hóa.
Sao lưu: Sao lưu tệp PKCS12 thường xuyên để đề phòng trường hợp mất mát hoặc hỏng hóc Lưu trữ bản sao lưu ở nơi an toàn, khác với vị trí lưu trữ tệp gốc.
Sử dụng phần mềm quản lý PKCS12: Một số phần mềm quản lý PKCS12 chuyên dụng có thể giúp bạn lưu trữ, quản lý và sử dụng tệp PKCS12 an toàn hơn.
Kết luận: Bảo mật tệp PKCS12 là rất quan trọng để bảo vệ khóa riêng, chứng chỉ và chuỗi tin cậy Bằng cách thực hiện các biện pháp phòng ngừa và xử lý sự cố phù hợp, bạn có thể giảm thiểu rủi ro và đảm bảo an toàn cho thông tin của mình.
TRIỂN KHAI THỰC NGHIỆM
Quy trình tạo một tệp chứng chỉ PKCS#12
1 Cập nhật và nâng cấp hệ thống Ubuntu sudo apt update && sudo apt upgrade
2 Hiển thị thông tin chi tiết về gói phần mềm OpenSSL apt show openssl
3 Cài đặt gói phần mềm OpenSSL lên hệ thống Ubuntu sudo apt install openssl
4 Kiểm tra phiên bản OpenSSL openssl version
5 Tạo tệp khóa riêng tư bằng OpenSSL trên Ubuntu: openssl -out
[options] openssl genrsa -des3 -out private_key.pem 2048
`openssl genrsa`: Đây là lệnh của OpenSSL để tạo một cặp khóa RSA mới RSA là một trong những thuật toán mã hóa khóa công khai phổ biến nhất.
`-des3`: Tùy chọn này yêu cầu OpenSSL mã hóa khóa riêng tư bằng thuật toán mã hóa 3DES Điều này giúp bảo vệ khóa riêng tư bằng cách yêu cầu người dùng nhập mật khẩu để truy cập khóa.
`-out private_key.pem`: Tùy chọn này chỉ định rằng khóa riêng tư được tạo sẽ được lưu vào tệp "private_key.pem".
`2048`: Đây là độ dài của khóa RSA, cụ thể là 2048 bit Đây là một độ dài khóa thường được khuyến nghị sử dụng để đảm bảo tính bảo mật.
6 Đặt mật khẩu cho tệp "private_key.pem" là huy23
7 Tạo Certificate Signing Request (CSR): openssl req -new -sha256 -key private_key.pem -out csr.pem Lệnh này sẽ yêu cầu bạn nhập các thông tin về chứng chỉ, chẳng hạn như tên quốc gia, tổ chức, common name, v.v Thông tin này sẽ được lưu vào tệp csr.pem. openssl req -new -sha256 -key private_key.pem -out csr.pem
openssl req: Lệnh để tạo một yêu cầu chứng chỉ mới (Certificate Signing Request - CSR).
-new: Tạo một yêu cầu chứng chỉ mới.
-sha256: Sử dụng thuật toán băm SHA-256.
-key private_key.pem: Sử dụng khóa riêng từ tệp private_key.pem.
-out csr.pem: Lưu CSR vào tệp csr.pem.
8 Tạo chứng chỉ X.509 từ CSR (Certificate Signing Request) và khóa riêng: openssl x509 -req -days 365 -in csr.pem -signkey private_key.pem -out certificate.pem openssl x509 -req -days 365 -in csr.pem -signkey private_key.pem -out certificate.pem
`openssl x509 -req`: Lệnh này yêu cầu OpenSSL tạo chứng chỉ X.509 từ Yêu cầu ký chứng chỉ (CSR).
`-days 365`: Lệnh này chỉ định rằng chứng chỉ phải có hiệu lực trong
`-in csr.pem`: Lệnh này yêu cầu OpenSSL sử dụng tệp `csr.pem` làm CSR đầu vào.
`-signkey private_key.pem`: Lệnh này yêu cầu OpenSSL sử dụng khóa riêng được lưu trữ trong `private_key.pem` để ký chứng chỉ.
`-out certificate.pem`: Lệnh này yêu cầu OpenSSL lưu chứng chỉ đã tạo vào tệp `certificate.pem`.
9 Chuyển đổi khóa riêng tư từ định dạng PEM sang định dạng PKCS#8 Việc chuyển đổi là cần thiết vì:
Định dạng PKCS#8 là chuẩn hơn: PKCS#8 là một định dạng chuẩn hơn so với PEM cho việc lưu trữ khóa riêng tư Nó cung cấp một cấu trúc dữ liệu rõ ràng và được định nghĩa tốt hơn.
Tương thích tốt hơn: Một số ứdụng và thư viện có thể yêu cầu khóa riêng tư ở định dạng PKCS#8, do đó chuyển đổi trước sẽ đảm bảo tệp PKCS#12 tương thích tốt hơn.
Bảo mật tốt hơn: PKCS#8 cung cấp một cách mã hóa khóa riêng tư tốt hơn so với định dạng PEM đơn giản Việc mã hóa khóa riêng tư trước khi đóng gói vào PKCS#12 giúp tăng cường bảo mật.
Tiện lợi trong quá trình sử dụng: Khi sử dụng khóa riêng tư trong các ứng dụng, định dạng PKCS#8 thường được xử lý tốt hơn và dễ dàng hơn so với định dạng PEM. openssl pkcs8 -in private_key.pem -topk8 -out private_key_pkcs8.pem -v2 des3
Sử dụng mật khẩu là huy23
openssl pkcs8: Sử dụng công cụ OpenSSL để chuyển đổi định dạng khóa.
-in private_key.pem: Chỉ định tệp khóa riêng ở định dạng PEM.
-topk8: Chuyển đổi tệp khóa sang định dạng PKCS#8.
-out private_key_pkcs8.pem: Chỉ định tên tệp đầu ra là private_key_pkcs8.pem.
-v2 des3: Sử dụng mã hóa DES-3 để mã hóa khóa PKCS#8.
10.Tạo tệp chuẩn khóa công khai PKCS#12: openssl pkcs12 -export -in certificate.pem -inkey private_key_pkcs8.pem - name "My Certificate" -out certificate.pfx
Sử dụng mật khẩu Huy23
openssl pkcs12: Sử dụng công cụ OpenSSL để tạo tệp PKCS#12 (còn gọi là PFX).
-export: Chỉ định rằng chúng ta muốn tạo ra một tệp PKCS#12 mới (xuất).
-in certificate.pem: Chỉ định tệp chứng chỉ (certificate) ở định dạng PEM làm đầu vào.
-inkey private_key_pkcs8.pem: Chỉ định tệp khóa riêng ở định dạng PKCS#8 làm đầu vào.
-name "My Certificate": Cung cấp một tên mô tả cho tệp PKCS#12 được tạo ra.
-out certificate.pfx: Chỉ định tên tệp đầu ra là certificate.pfx
11.Thứ tự các tệp được tạo ra từ trái qua phải
12.Thêm tệp chứng chỉ CA (Certificate Authority) ở định dạng PEM vào tệp PKCS#12 certificate.pfx Ở đây, tệp chứng chỉ CA là comodo-positivessl-
SHA2-bundle.crt openssl pkcs12 -export -in certificate.pem -inkey private_key_pkcs8.pem - certfile comodo-positivessl-SHA2-bundle.crt -name "My Certificate" -out certificate.pfx
Sử dụng mật khẩu là huy23
openssl pkcs12 -export: Sử dụng công cụ OpenSSL để tạo ra tệp PKCS#12 (PFX) mới.
-in certificate.pem: Chỉ định tệp chứng chỉ (certificate) ở định dạng PEM làm đầu vào.
-inkey private_key_pkcs8.pem: Chỉ định tệp khóa riêng ở định dạng PKCS#8 làm đầu vào.
-certfile comodo-positivessl-SHA2-bundle.crt: Chỉ định tệp chứa các chứng chỉ CA Trong trường hợp này, tệp comodo-positivessl-SHA2- bundle.crt chứa các chứng chỉ CA của Comodo.
-name "My Certificate": Cung cấp một tên mô tả cho tệp PKCS#12 được tạo ra.
-out certificate.pfx: Chỉ định tên tệp đầu ra là certificate.pfx
13.Có thể đổi định dạng của tệp PKCS#12 từ pfx sang p12 openssl pkcs12 -in certificate.pfx -out certificate.p12
14.Sau khi hoàn thành việc tạo tệp PKCS#12, có thể xem nội dung của tệp:openssl pkcs12 -info -in certificate.pfx
Sử dụng mật khẩu huy23 để xem khóa riêng tư
15.Xuất chứng chỉ từ tệp PKCS#12 (*.pfx hoặc *.p12) sử dụng OpenSSL openssl pkcs12 -in certificate.pfx -clcerts -nokeys -out certificate.crt16.Tệp chứng chỉ sau khi xuất
17.Xem tệp chứng chỉ sau khi xuất openssl x509 -in certificate1.crt –text
18.Xuất khóa riêng từ tệp PKCS#12 (*.pfx hoặc *.p12) sử dụng OpenSSL openssl pkcs12 -in certificate.pfx -nocerts -out private_key1.key
Sử dụng mật khẩu huy23 cho tệp khóa riêng
19.Tệp khóa riêng sau khi xuất
20.Xem nội dung tệp khóa riêng sau khi xuất Sử dụng mật khẩu huy23 openssl rsa -in private_key1.key –check
Nhập tệp p12/pfx (PKCS#12) vào trình duyệt Mozilla Firefox
1 Mở trình duyệt Mozilla Firefox và vào menu "Firefox"
2 Chọn "Tùy chọn" (Preferences) để mở cửa sổ Tùy chọn
3 Trong cửa sổ Tùy chọn, chọn mục "Bảo mật & Riêng tư" (Privacy & Security)
4 Cuộn xuống đến phần "Chứng chỉ" (Certificates) và click vào nút "Xem chứng chỉ" (View Certificates)
5 Trong cửa sổ Trình quản lý chứng chỉ, chọn thẻ "Của tôi" (Your Certificates)
6 Click vào nút "Nhập" (Import) ở phía dưới
7 Trong hộp thoại "Nhập chứng chỉ", chọn tệp PKCS#12 (.p12 hoặc pfx) mà bạn muốn nhập
8 Nhập mật khẩu để mở tệp PKCS#12 khi được yêu cầu, ở đây là huy23
9 Firefox sẽ nhập và hiển thị chứng chỉ trong danh sách "Your Certificates"
10.Click đúp chuột vào tệp để xem nội dung
Lưu ý rằng bạn cũng có thể nhập chứng chỉ PKCS#12 vào các trình duyệt khác như Chrome, Edge hoặc Safari bằng cách làm theo quy trình tương tự.Lưu ý:
- Tệp PKCS#12 thường chứa cả chứng chỉ và khóa riêng, vì vậy bạn chỉ cần nhập một tệp duy nhất.
- Đảm bảo rằng bạn nhập đúng mật khẩu để giải mã tệp PKCS#12.
- Bạn có thể quản lý các chứng chỉ PKCS#12 trong Trình quản lý Chứng chỉ củaFirefox, bao gồm xem thông tin, tin cậy, và xóa chúng.
Nhập tệp p12/pfx (PKCS#12) vào kho chứng chỉ Windows
Để có thể ký tài liệu điện tử hoặc gửi e-mail đã ký hoặc nhận e-mail được mã hóa,trước tiên bạn phải nhập chứng chỉ người dùng cá nhân của mình vào kho chứng chỉ Windows.
1 Để làm như vậy, điều hướng đến tệp chứng chỉ trên máy tính và thực thi bằng cách nhấp đúp chuột:
2 Thao tác này sẽ khởi chạy Trình hướng dẫn nhập chứng chỉ
3 Tiếp theo, chọn một tệp chứng chỉ Trong trường hợp này, tệp đã được chọn:
4 Tiếp theo, nhập mật khẩu đã đặt khi tạo file p12.
KHÔNG nên chọn "bảo vệ khóa riêng mạnh mẽ" Tuy nhiên, đảm bảo rằng máy tính không thể bị người khác sử dụng.
Nếu muốn thiết lập "bảo vệ khóa riêng mạnh mẽ", hãy lưu ý đến sự phức tạp sau Bạn sẽ được yêu cầu (trong ba cửa sổ bật lên không được hiển thị ở đây) đặt mật khẩu Windows CryptoAPI để bảo vệ khóa riêng của bạn Mật khẩu này sẽ cần phải được nhập mỗi khi ứng dụng email hoặc ứng dụng tài liệu của bạn tạo chữ ký điện tử Về lâu dài, điều này có thể ảnh hưởng đến hiến pháp cao quý nhất.
Chọn "Đánh dấu khóa là có thể xuất" để có thể tạo tệp p12 từ kho chứng chỉ Windows.(Đây là tùy chọn, nhưng tùy chọn sao lưu sẽ rất hữu ích khi bạn bị mất tệp.p12)
6 Nhấp vào Finish để hoàn thành import chứng chỉ
7 Thông báo chứng chỉ được nhập thành công