Tải bản đầy đủ (.doc) (20 trang)

TIểu luận môn CHỨNG THỰC SỐ cú pháp thông tin khóa bị mất

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (219.05 KB, 20 trang )

1 .Quản lý khóa
1.1 Quản lý khóa
Giải quyết quản lý khóa với các hệ an toàn, phân phối, và lưu trữ các key. phương
pháp quản lý key An toàn là vô cùng quan trọng. Một khi một key được tạo ngẫu nhiên
nó phải được giữ bí mật để tránh rủi ro đáng tiếc (như mạo danh).Trong thực tế, hầu hết
các cuộc tấn công vào hệ thống khoá công khai có thể sẽ được nhằm vào mức quản lý
key hơn là ở các thuật toán mã hóa riêng của chính nó.
Người sử dụng phải có khả năng thu được một cặp khóa an toàn phù hợp với hiệu
quả của họ và nhu cầu bảo mật. Phải có một cách để tìm public keys của người khác và
công bố công khai public keys của riêng người đó . Người sử dụng phải có khả năng thu
được public keys hợp pháp của người khác, nếu không, một kẻ xâm nhập có thể thay đổi
public keys được liệt kê trong một thư mục, hoặc mạo nhận một người dùng khác. Việc
xác thực được sử dụng cho mục đích này Việc xác thực phải được unforgeable. Việc cấp
giấy xác thực phải tiến hành một cách an toàn, không lọt ra ngoài để tránh tấn công.
Trong thực tế, các tổ chức phát hành phải xác thực danh tính và public key của một cá
nhân trước khi ban hành giấy xác nhận cho người đó.
Nếu private key của ai đó bị mất hoặc bị tổn thất, những người khác phải được
biết về điều này, vì vậy họ sẽ không còn mã hóa các thông điệp theo public key không
hợp lệ và cũng không chấp nhận các thông điệp đã ký kết với các private key không hợp
lệ. Người sử dụng phải có khả năng lưu trữ các private key của họ một cách an toàn, vì
vậy không có kẻ xâm nhập có thể thu được chúng, nhưng các key phải sẵn sàng truy cập
để sử dụng hợp pháp. Keys cần có giá trị chỉ cho đến khi một ngày hết hạn quy định
nhưng ngày hết hạn phải được lựa chọn đúng và công bố công khai trong một kênh
chứng thực.
1.2 Tổng quan
1.2.2 Tìm một số ngẫu nhiên cho các key
Cho dù sử dụng hệ thống mật mã secret-key hay hệ thống mật mã public-key,
cũng cần một nguồn cung cấp các số ngẫu nhiên để tạo ra khóa. Một hệ thống nguồn
cung cấp tốt là nó có thể tạo ra một dãy số ko thể nào biết và đoán trước. Những chuỗi số
ngẫu nhiên thu được từ một phương pháp vật lý là tốt nhất, khi nhiều phương pháp vật lý
được áp dụng thì chuỗi số mới thực sự là ngẫu nhiên. Người ta có thể sử dụng một thiết


bị phần cứng, như một diode nhiễu, một số được bán tích hợp vào máy tính nhằm mục
đích thương mại. Một ý tưởng khác là sử dụng chuyển động vật lý của người sử dụng
máy tính, chẳng hạn như định thời gõ cách khóa nhịp đều đặn vào khoảng micro giây. Kỹ
thuật sử dụng quay của đĩa để tạo ra dữ liệu ngẫu nhiên nhưng chúng không thực sự ngẫu
nhiên, như sự chuyển động của đĩa platter không thể được coi là thực sự ngẫu nhiên. Một
giải pháp thay thế đáng kể chi phí hiện có sẵn; Davis et al. thiết kế một máy phát số ngẫu
nhiên dựa trên các biến thể của một ổ đĩa tốc độ của động cơ. Sự thay đổi này là do biến
1
động không khí, và đã được chứng minh là không thể đoán trước. Bằng phương pháp nào
mà có thể tạo ra được như vậy, các số ngẫu nhiên vẫn còn có thể chứa một số tương
quan, do đó việc ngăn ngừa là không đầy đủ. Vì vậy, tốt nhất là chạy chúng thông qua
một hàm băm.
Một phương pháp khác là sử dụng tạo dãy số ngẫu nhiên giả bằng cách dùng gieo
ngẫu nhiên. Sự khác biệt chính giữa các số ngẫu nhiên và giả ngẫu nhiên là các số giả
ngẫu nhiên nhất thiết có chu kỳ trong khi con số thực sự ngẫu nhiên thì không. Kể từ khi
máy phát số giả ngẫu nhiên là các thuật toán tất định, điều quan trọng là để tìm thấy một
trong đó là mã hóa an toàn và cũng để sử dụng một hạt giống tốt ngẫu nhiên, tạo một dãy
hiệu quả như “expander” từ hạt giống sẽ tạo ra số lượng lớn các dữ liệu ngẫu nhiên giả .
Các hạt giống phải đủ tham sỗ để ngăn các cuộc tấn công.
Nó không đủ để tạo một số ngẫu nhiên giả chỉ để vượt qua một loạt các bài kiểm
tra thống kê, như mô tả trong Knuth [Knu81] và các nơi khác, vì đầu ra của việc tạo số
như vậy vẫn có thể dự đoán được. Đúng hơn, nó phải được tính toán khả thi không cho
một kẻ tấn công xác định bất kỳ bit nào của dãy đầu ra, ngay cả khi những người khác
đều biết, với xác suất tốt hơn so với 1 / 2. Blum và Micali dựa trên logarit rời rạc vấn đề
[BM84] sẽ được định nghĩa mạnh hơn, giả định rằng máy tính logarit rời rạc là khó khăn
Người khởi tạo khác có thể dựa trên DES hoặc một hàm băm cũng có thể được xem xét
để đáp ứng các định nghĩa này, theo các giả định hợp lý.
Lưu ý rằng người ta không cần những con số ngẫu nhiên để xác định số mũ public
và private trong RSA. Sau khi tạo ra các số căn bản, và do đó các môđun một trong
những cách đơn giản có thể chọn một giá trị tùy ý (chịu sự ràng buộc tiêu chuẩn) cho các

số mũ public, mà sau đó xác định số mũ private.

1.2.3 Vòng đời của một khóa
Các khóa có giới hạn thời gian sống cho một số lý do. Lý do quan trọng nhất là
bảo vệ chống lại giải mã mỗi lần khoá được sử dụng, nó tạo ra một số ciphertexts. Sử
dụng một khóa lập đi lập lại cho phép một kẻ tấn công xây dựng một kho lưu trữ
ciphertexts (và có thể plaintexts) có thể chứng minh đủ cho một giải mã thành công giá
trị của khóa Như vậy key cần phải có một vòng đời hạn chế. Nếu bạn nghi ngờ rằng một
kẻ tấn công có thể đã có được key của bạn,key đó phải được coi là được xâm phạm, và
việc sử dụng của nó chấm dứt.
Nghiên cứu trong phân tích mật mã có thể dẫn đến các cuộc tấn công có thể chống
lại khóa hoặc thuật toán. Ví dụ, khuyến cáo độ dài khóa RSA được tăng lên mỗi năm để
đảm bảo rằng các thuật toán được cải thiện không xâm phạm sự bảo mật của thông điệp
được mã hóa bằng RSA. Chiều dài key đề nghị phụ thuộc vào các vòng đời dự kiến của
khoá. Khóa Tạm thời , trong đó có giá trị cho một ngày hoặc ít hơn, có thể ngắn đúng 512
2
bit. Các key được sử dụng để ký hợp đồng dài hạn ví dụ, nên có độ dài 1024 bit hoặc
nhiều hơn.
Một lý do khác cho việc hạn chế vòng đời của một key là để giảm thiểu thiệt hại từ
một khóa bị tổn hại. Không chắc rằng người sử dụng sẽ phát hiện ra một kẻ tấn công đã
xâm nhập key của người đó nếu kẻ tấn công vẫn "thụ động." Tương đối thường xuyên
thay đổi key sẽ hạn chế thiệt hại tiềm ẩn từ khóa bị tổn hại. Ford [ For94 ] mô tả các chu
kỳ sống của một chìa khóa như sau:
1.Phát sinh Key và đăng ký có thể (cho một khóa công cộng).
2.Phân phối Key .
3.Kích hoạt Key / tắt và bật.
4.Thay thế key hoặc cập nhật key.
5.Thu hồi key.
6.Chấm dứt Key , liên quan đến tiêu huỷ hoặc có thể lưu trữ.
1.3 Public Key Issues

1.3.1 PKI
Một cơ sở hạ tầng khoá công khai”A public-key infrastructure “ (PKI) bao gồm
các giao thức, dịch vụ, và các tiêu chuẩn hỗ trợ ứng dụng của public-key cryptography.
Thuật ngữ PKI , đó là tương đối , được xác định đa dạng trong văn học hiện hành. PKI
đôi khi đơn giản chỉ để một hệ thống dựa trên sự tin tưởng chứng nhận public-key [1], và
trong các ngữ cảnh khác bao trùm mã hóa và dịch vụ kỹ thuật số cung cấp chữ ký cho
người dùng cũng như các ứng dụng OG99 .Một quan điểm trung bình là một PKI bao
gồm các dịch vụ và các giao thức quản lý khóa công khai, thường thông qua việc sử dụng
các thành phần Certification Authority (CA) và Registration Authority (RA) , nhưng
không nhất thiết để thực hiện các hoạt động mã hóa với các key.
Một trong số các dịch vụ có khả năng được tìm thấy trong một PKI như sau:
Đăng ký Key: cấp chứng nhận mới cho một khoá công khai.
Thu hồi chứng nhận: hủy bỏ cấp chứng nhận trước đây.
Chọn key : có được khóa công khai của một bên.
Đánh giá tin tưởng : xác định chứng nhận là hợp lệ và cho phép những hoạt
động đó .
Phục hồi key cũng đã được đề xuất như là một khía cạnh có thể có của một PKI.
Không dễ có một cơ sở hạ tầng khoá công khai phổ biến như ngày hôm nay, mặc
dù những nỗ lực để xác định một PKI thường cho là sẽ có được một, hoặc, ngày càng
tăng, có nhiều PKIs độc lập sẽ phát triển với mức độ khác nhau cùng tồn tại và khả năng
tương tác. Trong ý nghĩa này, ngày hôm nay PKI có thể được xem giống như mạng cục
3
bộ và mạng diện rộng trong những năm 1980, trước khi có kết nối phổ biến rộng rãi
thông qua Internet. Theo kết quả của quan điểm này đối với một PKI toàn cầu, các định
dạng chứng nhận và cơ chế tin cậy được xác định một cách cởi mở và khả năng mở rộng,
nhưng với các cấu hình sử dụng tương ứng với sự tin cậy và chính sách yêu cầu của
khách hàng cụ thể và môi trường ứng dụng. Ví dụ, nó thường chấp nhận rằng sẽ có nhiều
“root”hoặc “top level” các cơ quan chứng nhận trong một PKI toàn cầu, không chỉ là một
“root”mặc dù trong một PKI cục bộ chỉ có thể có một gốc. Theo đó, các giao thức được
định nghĩa với việc cung cấp để chỉ định nguồn gốc là đáng tin cậy của một ứng dụng

nhất định, hoặc người sử dụng.
Những nỗ lực để xác định một PKI ngày nay đang được tiến hành trong nhiều
chính phủ cũng như các tổ chức tiêu chuẩn . Cục Kho bạc của Mỹ và NIST cả hai đều có
chương trình PKI [2,3], cũng như Canada [4] và Vương quốc Anh [5]. NIST đã phát hành
một cấu hình tương tác cho các thành phần PKI [BDN97], nó xác định các thuật toán và
các định dạng chứng nhận rằng các cơ quan chứng nhận phải hỗ trợ. Một số cơ quan tiêu
chuẩn đã làm việc trên các khía cạnh PKI đã bao gồm PKIX của IETF và SPKI nhóm làm
việc [6,7] và The Open Group [8].
Hầu hết các định nghĩa PKI dựa trên chứng nhận X.509, với ngoại lệ đáng chú ý
của SPKI của IETF.
[1] PKI - PC Webopedia Định nghĩa và Liên kết:
.
[2] Chính phủ Dịch vụ Công nghệ thông tin, liên bang cơ sở hạ tầng khóa công khai:
.
[3] NIST cơ sở hạ tầng khóa công khai Chương trình:
.
[4] Chính phủ Canada chính cơ sở hạ tầng công cộng:
.
[5] Tập đoàn Mở khóa công khai cơ sở hạ tầng, nhất đề xuất cho một PKI HMG.

[6] Cơ sở hạ tầng khóa công khai (X.509) (pkix) làm việc nhóm:
.
[7] Wikipedia khóa công khai cơ sở hạ tầng (spki) làm việc nhóm:
.
[8] Group mở khóa công khai cơ sở hạ tầng:
.
4
1.3.2 Ai cần một cặp khoá?
Bất kỳ ai muốn đăng ký các thông điệp hoặc để nhận các thông điệp được mã hóa
phải có một cặp khóa. Mọi người có thể có nhiều hơn một cặp khoá. Trong thực tế, Được

khuyến khích sử dụng cặp khóa riêng cho việc ký kết các thông điệp và nhận thông điệp
được mã hóa. Một ví dụ khác, một người nào đó có thể có một cặp khóa có quan hệ với
công việc của mình và một cặp khóa riêng biệt để sử dụng cá nhân. Các đối tượng khác
cũng có thể có cặp khóa, bao gồm cả các đơn vị điện tử như modem, máy trạm, máy chủ
web (trang web) và máy in, cũng như các đơn vị tổ chức như một bộ phận doanh nghiệp,
đăng ký một bàn khách sạn , hoặc văn phòng đăng ký của trường đại học. cặp khóa cho
phép người dân và các tổ chức khác để xác thực và các thông điệp mã hóa.
Tổng công ty có thể yêu cầu nhiều hơn một cặp khóa cho truyền thông. Họ có thể
sử dụng một hoặc nhiều cặp khóa cho việc mã hóa (với các key được lưu trữ theo quỹ ký
key để bảo vệ key trong trường hợp mất) và sử dụng một đôi duy nhất non-escrowed key
cho xác thực. Độ dài của cặp khóa mã hóa và xác thực có thể được thay đổi theo mong
muốn bảo mật.
1.3.3 Làm thế nào một nhận được một cặp khoá?
Một người dùng có thể tạo ra một cặp khóa của chính mình , hoặc, tuỳ thuộc vào
chính sách cục bộ, một nhân viên an ninh có thể tạo cặp khóa cho tất cả người dùng. Có
sự cân bằng giữa hai phương pháp tiếp cận. Trong khuôn khổ, người sử dụng cần một số
cách để tin tưởng bản sao của mình trong phần mềm tạo key, và sau này, người sử dụng
phải tin tưởng vào nhân viên an ninh và key riêng của mình phải được chuyển an toàn
cho người sử dụng. Thông thường, mỗi nút trên mạng phải có khả năng tạo ra key cục bộ.
hệ thống xác thực Secret-key, chẳng hạn như Kerberos, thường không cho phép phát sinh
các key cục bộ, nhưng thay vì sử dụng một máy chủ trung tâm để tạo ra các key.
Một khi key được tạo ra, người sử dụng phải đăng ký khóa công khai của mình với
một số chính quyền trung ương, gọi là chứng nhận Authority (CA). Các CA trả về cho
người sử dụng giấy chứng nhận, chứng nhận tính hợp lệ của khoá công khai của người sử
dụng cùng với các thông tin khác .Nếu một nhân viên an ninh tạo ra cặp khoá, sau đó các
nhân viên an ninh có thể yêu cầu chứng nhận cho người sử dụng. Hầu hết người dùng
không cần có nhiều hơn một chứng nhận cho các khóa tương tự, để đơn giản hóa nhiệm
vụ kế toán khác nhau liên quan đến khoá.
1.3.4 Có nên chia sẽ một cặp khóa giữa người sử dụng?
Các người dùng chia sẻ một khóa riêng có thể mạo danh người khác (có nghĩa là,

thông điệp ký như nhau và giải mã thông điệp dành cho nhau), do đó, nói chung, khóa
riêng không nên được chia sẻ giữa người sử dụng. Tuy nhiên, một số bộ phận của một
khóa có thể được chia sẻ, tùy thuộc vào các thuật toán.
Trong RSA, trong khi mỗi người cần phải có một môđun duy nhất và số mũ riêng
(có nghĩa là, một khóa riêng duy nhất), số mũ công cộng có thể được phổ biến cho một
nhóm người dùng mà không có bảo đảm là tổn thất. Một số số mũ công trong sử dụng
5
phổ biến ngày hôm nay là 3 và 2
16
+1; bởi vì những con số này là nhỏ, các thao tác
public key (mã hóa và xác nhận chữ ký) được nhanh chóng liên quan đến các hoạt động
khóa riêng (giải mã và ký kết).Nếu một mũ công trở thành chuẩn , phần mềm và phần
cứng có thể được tối ưu hóa cho giá trị đó. Tuy nhiên, các mô đun không được chia sẻ.
Trong hệ thống khóa công dựa trên logarit rời rạc, như là Diffie-Hellman, DSA, và
ElGamal .Một nhóm người có thể chia sẻ một tập hợp các thông số hệ thống, trong đó có
thể dẫn đến việc thực hiện đơn giản hơn.Điều này cũng đúng cho các hệ thống dựa trên
đường cong elliptic logarit rời rạc. Cần lưu ý, điều này sẽ làm phá vỡ một khóa hấp dẫn
hơn để kẻ tấn công bởi vì nó có thể phá vỡ tất cả các key với một tập hợp các thông số hệ
thống với chỉ một chút nỗ lực nhiều hơn để phá vỡ một key duy nhất. Để kẻ tấn công, do
đó, chi phí trung bình để phá vỡ một key là thấp hơn rất nhiều với một tập hợp các thông
số phổ biến hơn nếu mỗi key có một bộ riêng biệt của các thông số.
Thuật toán
Diffie-Hellman
Thuật toán thỏa thuận khóa Diffie-Hellman. Giả sử A và B muốn liên lạc sử dụng
hệ mật khoá bí mật. Để thoả thuận mật khoá K chung cho cả hai bên qua một kênh không
an toàn mà không ai khác có thể biết được, A và B có thể dùng thủ tục thoả thuận khoá
Diffie -Hellman sau:
·Chọn trước một số nguyên tố p thích hợp và một phần tử sinh α của
o Z*p (2 ≤ α ≤ p-2 ) Các giá trị p và α được công khai.
·A gửi cho B giá trị α^x mod p (2.1)

·B gửi cho A giá trị α^y mod p. (2.2)
·Thực hiện các bước sau mỗi khi cần có khoá chung:
o A chọn một số nguyên bí mật x: 1≤x≤p-2 và gửi cho B thông báo (2.1).
o B chọn một số nguyên bí mật y: 1≤y≤p-2 và gửi cho A thông báo (2.2).
o B thu được αx và tính khoá chung k:k = (α^x)^y mod p
o A thu được αy và tính khoá chung k: k = (α^y)^x mod p
Ví dụ: Giả sử A và B chọn p = 11 và α = 2
Nhóm nhân xyclic sinh bởi α:
6
{ αi , i=0, ,9}={1,2,4,8,5,10,9,7,3,6}
(Các phần tử sinh của nhóm này bao gồm các phần tử sau: α =2, α^3 = 8, α^7 =7, α^9 =
6)
Giả sử A chọn giá trị ngẫu nhiên x = 4 và gửi cho B giá trị 2^4mod 11 = 5.
Giả sử B chọn giá trị ngẫu nhiên y = 7 và gửi cho A giá trị 2^7mod 11 = 7
B nhận được 5 và tính khoá chung k = 5^7 mod 11 =3
A nhận được 7 và tính khoá chung k = 7^4 mod 11 =3 L8xPro
Hệ mật khóa công khai trong ElGamal.
Hệ mật khóa công khai ElGamal tổng quát.
7

1.3.5 Điều gì xảy ra khi một key hết hạn?
Để bảo vệ chống lại một thuật ngữ tấn công cryptanalytic kéo dài, mỗi khóa phải
có một ngày hết hạn mà sau đó nó không còn hợp lệ .Thời gian để hết hạn phải ngắn hơn
nhiều so với thời gian dự kiến để phân tích mật mã. Đó là, chiều dài key phải đủ để làm
cho cơ hội phân tích mật mã trước khi hết hạn khóa cực kỳ nhỏ. Thời hạn hiệu lực cho
một cặp khóa cũng có thể phụ thuộc vào hoàn cảnh mà trong đó key được sử dụng. Kích
thước key phù hợp được xác định bởi thời hạn hiệu lực, cùng với giá trị của thông tin
được bảo vệ bởi các key và sức mạnh ước tính của kẻ tấn công mong đợi. Trong chứng
nhận ,ngày hết hạn của một key thường giống như ngày hết hạn của chứng nhận.
Một chương trình xác minh chữ ký nên kiểm tra hết hạn và không nên chấp nhận

một thông điệp đã ký kết với một key hết hạn. Điều này có nghĩa là khi key riêng của một
người hết hạn, tất cả mọi thứ đã ký kết với nó sẽ không còn được coi là hợp lệ. Tất nhiên,
sẽ có trường hợp, trong đó điều quan trọng là văn bản ký kết được coi là hợp lệ cho một
thời gian dài . Thảo luận về kỹ thuật số Timestamping như một cách để đạt được điều
này.
Sau khi hết hạn, key cũ cần được phá hủy để bảo vệ an ninh của các thông điệp cũ
(lưu ý, tuy nhiên, có một key hết hạn có thể cần phải được giữ lại trong một số khoảng
thời gian để giải mã thông điệp mà vẫn còn nổi bật nhưng được mã hóa trước khi hết hạn
của key). Tại thời điểm này, người sử dụng thông thường nên chọn một khóa mới, có thể
dài hơn so với khóa cũ để phản ánh cả sự gia tăng hiệu suất của phần cứng máy tính và
các cải tiến gần đây trong các thuật toán factoring .
Tuy nhiên, nếu một key đủ dài và không bị tổn hại, người sử dụng có thể tiếp tục
sử dụng cùng một key. Trong trường hợp này, cơ quan xác nhận sẽ cấp chứng nhận mới
cho cùng khóa, và tất cả các chữ ký mới sẽ chỉ vào chứng nhận mới thay vì cũ. Tuy
8
nhiên, thực tế là phần cứng máy tính tiếp tục cải thiện làm cho nó thận trọng để thay thế
các khóa hết hạn với phiên bản mới hơn, các key dài hơn mỗi vài năm. Thay thế key cho
phép tận dụng lợi thế của bất kỳ cải tiến phần cứng để tăng độ an toàn của mật mã này.
phần cứng Nhanh hơn có tác dụng bảo mật ngày càng tăng, có lẽ đáng kể, nhưng chỉ khi
độ dài key là gia tăng thường xuyên .
1.3.6 Điều gì xảy ra nếu khóa của tôi bị mất?
Nếu khóa riêng của bạn bị mất hoặc bị phá hủy nhưng không bị tổn hại, bạn có thể
không còn chữ ký hoặc thông điệp giải mã, nhưng bất cứ điều gì trước đây đã ký kết với
các key bị mất là vẫn còn giá trị. Các CA phải được thông báo ngay lập tức để key có thể
được thu hồi và được đặt trên một danh sách thu hồi chứng nhận để ngăn chặn việc sử
dụng bất hợp pháp nếu khoá được tìm thấy hoặc thu hồi bởi một đối thủ .Mất một khóa
riêng có thể xảy ra, ví dụ, nếu bạn làm mất thẻ thông minh được sử dụng để lưu trữ key
của bạn, hoặc nếu đĩa trên đó có lưu key bị hư hỏng. Bạn cũng nên có được một key mới
ngay tức thì đi để giảm thiểu số người nhắn tin gửi cho bạn được mã hóa theo khóa cũ
của bạn, vì không những có thể được đọc.

1.3.7 Điều gì xảy ra nếu khóa bí mật bị tổn hại?
Nếu private key của bạn bị tổn hại, bạn nghi ngờ một kẻ tấn công có thể đã thu
được khóa riêng của bạn, sau đó bạn nên cho rằng những kẻ tấn công có thể đọc bất kỳ
tin nhắn được mã hóa gửi cho bạn theo các khoá công khai tương ứng, và giả mạo chữ ký
của bạn trên các tài liệu miễn như những người khác tiếp tục chấp nhận rằng khóa công
cộng như của bạn. Các mức độ nghiêm trọng của những hậu quả này nhấn mạnh tầm
quan trọng của việc bảo vệ khóa riêng của bạn với cơ chế cực kỳ mạnh mẽ .
Bạn phải ngay lập tức phải thông báo cho cơ quan nào xác nhận cho các khóa
công cộng và có khoá công khai của bạn được đặt trên một danh sách thu hồi chứng nhận
, điều này sẽ thông báo mọi người rằng khóa riêng đã bị xâm phạm và các khóa công
cộng đã bị thu hồi.Sau đó, tạo ra một cặp khoá mới và có được một chứng nhận mới cho
các khoá công khai. Bạn có thể sử dụng những private key mới để tái ký các văn bản bạn
đã ký với khóa riêng tư bị xâm phạm, mặc dù các tài liệu đã được timestamped cũng như
ký kết vẫn có thể hợp lệ .Bạn cũng nên thay đổi cách bạn lưu trữ các khóa riêng của bạn
để ngăn chặn một sự thỏa hiệp của khóa mới.
1.3.8 Nên lưu trữ khóa riêng bằng cách nào?
Private keys phải được lưu trữ an toàn, vì sự giả mạo và sự mất riêng tư có thể là
kết quả của sự tổn thất .Các biện pháp để bảo vệ một Private keys phải đảm bảo ít nhất
bằng với yêu cầu bảo mật của các thông điệp được mã hóa bằng khóa đó. Nói chung, một
khóa riêng không bao giờ được lưu trữ bất cứ nơi nào ở dạng thô. Cơ chế lưu trữ đơn
giản nhất là để mã hóa một khóa riêng theo mật khẩu và lưu trữ kết quả trên đĩa. Tuy
nhiên, mật khẩu đôi khi rất dễ đoán, khi sơ đồ này được theo sau, mật khẩu sẽ được lựa
chọn rất cẩn thận vì bảo mật được gắn trực tiếp vào mật khẩu.
9
Lưu trữ các khóa mã hóa trên một đĩa đó là không thể truy cập thông qua một
mạng máy tính, chẳng hạn như một đĩa mềm hoặc đĩa cứng, sẽ làm cho một số các cuộc
tấn công khó khăn hơn. Nó có thể là tốt nhất để lưu trữ key trong một máy tính không thể
truy cập cho người dùng khác hoặc trên các phương tiện di động, người dùng có thể loại
bỏ và mang theo khi đã hoàn thành bằng cách sử dụng một máy tính cụ thể. Private keys
cũng có thể được lưu trữ trên phần cứng di động, chẳng hạn như một thẻ thông minh.

Người dùng có nhu cầu bảo mật rất cao, chẳng hạn như cơ quan xác nhận, nên sử dụng
các thiết bị chống giả mạo để bảo vệ khóa riêng của họ .
1.3.9 Làm thế nào để tìm thấy public key của một người nào khác ?
Giả sử Alice muốn tìm public key của Bob. Có một số cách có thể làm điều này.
Cô có thể gọi anh ta lên và yêu cầu anh ta phải gửi khoá công khai của mình qua e-mail.
Cô có thể yêu cầu thông qua thư điện tử, trao đổi nó trong người, cũng như cách khác. Vì
khóa công khai là công khai hiểu biết, không cần mã hóa nó trong khi chuyển nó, mặc dù
nên xác minh tính xác thực của một khóa công khai. Một sự tinh nghịch của bên thứ ba
có thể chặn việc truyền tải, thay thế key của Bob với chính mình và do đó có thể đánh
chặn và giải mã thông điệp được gửi từ Bob và Alice để mã hóa bằng khóa giả”fake”. Vì
lý do này ,một cá nhân phải xác minh key (ví dụ, điều này có thể được thực hiện bằng
cách tính toán một hash của khoá và kiểm tra nó với Bob qua điện thoại) hoặc dựa vào
các cơ quan xác nhận .cơ quan chứng nhận có thể cung cấp dịch vụ thư mục, nếu Bob
làm việc cho công ty Z, Alice có thể tìm trong thư mục lưu giữ của cơ quan xác nhận của
Z.
Hôm nay, thư mục chính thức đang nổi lên, làm on-line trang trắng hoặc màu
vàng. Cùng với T X.509 tiêu chuẩn ITU , hầu hết các thư mục chứa chứng nhận cũng như
các public keys; sự hiện diện của chứng nhận thấp hơn bảo mật của các thư mục cần
1.3.10 Chứng nhận
Chứng nhận là văn bản kỹ thuật số làm chứng cho sự ràng buộc của một khoá
công khai cho một cá nhân hoặc thực thể khác. Chúng cho phép xác minh các tuyên bố
rằng một public key đặc biệt nào trong thực tế thuộc về một cá nhân cụ thể. Chứng nhận
giúp ngăn ngừa một người nào đó sử dụng một khóa giả mạo danh người khác. Trong
một số trường hợp, nó có thể cần thiết để tạo ra một chuỗi các chứng nhận, mỗi một xác
nhận trước đó cho đến khi các bên liên quan tự tin vào nhận dạng trong câu hỏi.
Trong hình thức đơn giản của chúng, chứng nhận chứa một khóa công khai và một
tên. Như thường được sử dụng,chứng nhận cũng có ghi ngày hết hạn, tên của cơ quan xác
nhận cấp chứng nhận, một serial number, và có lẽ các thông tin khác. Quan trọng nhất, nó
có chứa các chữ ký số của người phát hành chứng nhận. Các định dạng chấp nhận rộng
rãi nhất đối với chứng chỉ được xác định bởi các X.509 tiêu chuẩn quốc tế ITU , do đó,

giấy chứng nhận có thể được đọc hoặc viết bằng bất kỳ ứng dụng thực hiện theo
X.509.Một cuộc thảo luận chi tiết về định dạng chứng chỉ có thể được tìm thấy trong [
Ken93 ].
10
1.3.11 Chứng nhận được sử dụng như thế nào?
Chứng nhận thường được sử dụng để tạo ra niềm tin vào tính hợp pháp của một
khoá công khai. chứng nhận cơ bản là chữ ký số bảo vệ khóa công khai tránh giả mạo,
hoặc trình bày sai, hoặc thay đổi. do đó Việc xác minh chữ ký có thể bao gồm kiểm tra
tính hợp lệ của chứng nhận cho các khoá công khai có liên quan. Bước xác minh này có
thể được thực hiện với nhiều hay ít phụ thuộc chặt chẽ vào ngữ cảnh.
Việc sử dụng an toàn nhất để xác thực liên quan đến việc kết hợp một hoặc nhiều
chứng nhận với tất cả các thông điệp đã ký kết. Người nhận thông điệp sẽ kiểm tra chứng
nhận sử dụng khoá công khai của cơ quan xác nhận và, bây giờ tự tin khóa công cộng của
người gửi, xác minh chữ ký của thông điệp. Có thể có hai hoặc nhiều chứng chỉ kèm theo
thông điệp, hình thành một hệ thống chứng nhận phân cấp, trong đó một chứng nhận đã
chứng minh cho tính xác thực của chứng nhận trước đó. Khi kết thúc một hệ thống phân
cấp chứng nhận là một cơ quan cấp cao nhất xác nhận, đó là đáng tin cậy mà không có
một chứng nhận từ bất kỳ cơ quan xác nhận khác. Các khoá công khai của cấp trên có
thẩm quyền xác nhận phải được độc lập biết đến, ví dụ, bằng cách phát hành rộng rãi.
Thật thú vị khi lưu ý rằng có những mô hình tin cậy thay thế đang được theo đuổi bởi
một loạt các nhà nghiên cứu mà tránh cách tiếp cận phân cấp.
Để quen thuộc hơn là người gửi nhận thông điệp từ người nhận , hay chính xác
hơn, sự tin tưởng hơn ở những nơi nhận trong tuyên bố rằng khoá công khai thực sự là
của người gửi, nhu cầu ít nhất là gửi kèm theo và kiểm tra chứng nhận. Nếu Alice gửi tin
nhắn cho Bob mỗi ngày, Alice có thể gửi kèm theo một hệ thống chứng nhận vào ngày
đầu tiên mà Bob xác minh. Bob sau đó lưu khoá công khai của Alice và không cần chứng
nhận nhiều hơn hoặc xác nhận chứng nhận là cần thiết. Một người gửi mà công ty đang
được biết đến bởi người nhận có thể cần phải kèm theo chỉ cần một giấy chứng nhận (do
công ty), trong khi một người gửi mà công ty không biết để người nhận có thể cần phải
gửi kèm theo hai hoặc nhiều chứng nhận. Một nguyên tắc nhỏ là để gửi kèm vừa đủ của

một hệ thống chứng nhận để người phát hành chứng nhận mức cao nhất trong chuỗi được
biết đến cho người nhận. sau đó Nếu có nhiều người nhận chứng nhận đủ nên được bao
gói để trang trải những gì mỗi người nhận có thể cần.
1.3.12 Ai phát hành các chứng nhận và bằng cách nào?
Chứng nhận được cấp bởi một cơ quan chứng nhận (CA), có thể được bất kỳ sự tin
cậy từ ban quản trị trung tâm và sẵn sàng bảo đảm cho các định dạng của những người
có nó và các vấn đề về chứng nhận, liên kết chúng với một key cho trước. Một công ty có
thể cấp chứng nhận cho nhân viên của mình, hoặc một trường đại học cho sinh viên của
mình, hay một thị trấn cho công dân của mình. Để ngăn chặn chứng nhận giả mạo, khóa
công khai của CA phải được đáng tin cậy: CA hoặc phải công khai khoá công khai của
mình hoặc cung cấp một chứng nhận từ một cấp làm chứng cao hơn CA cho những giá trị
của khoá công khai của nó. Giải pháp thứ hai đưa đến hệ thống phân cấp của CA. Xem
Hình 1 cho một ví dụ.
11
Quá trình phát hành chứng nhận như sau. Alice tạo ra cặp khóa riêng của mình và
gửi khoá công khai cho một CA thích hợp với một số bằng chứng về nhận dạng của
mình. CA kiểm tra xác định và có bất kỳ bước nào cần thiết khác để bảo đảm yêu cầu
thực sự đến từ Alice và các khóa công cộng đã không được sửa đổi trong quá cảnh, và
sau đó gửi cho cô một chứng nhận làm chứng cho sự ràng buộc giữa Alice và khoá công
khai của cô cùng với một hệ thống các chứng nhận xác nhận khóa công khai của CA.
Alice có thể đại diện chuỗi chứng nhận này bất cứ khi nào cô ấy muốn để chứng minh
tính hợp pháp của khoá công khai của mình. vì CA phải kiểm tra để xác định đúng, các tổ
chức tìm thấy nó thuận tiện để hoạt động như một CA cho các thành viên và nhân viên
của họ. Ngoài ra còn các CA cũng phát hành các chứng nhận cấp cho cá nhân không liên
kết.
Hình 1: Ví dụ về một hệ thống phân cấp cấp chứng nhận
Các CA khác nhau có thể cấp chứng nhận với cấp độ khác nhau của các yêu cầu
nhận dạng. Một CA có thể đóng dấu vào bằng lái vào CA khác có thể muốn hình thức
yêu cầu chứng nhận để được công chứng, có thể thêm một dấu vân tay của người yêu cầu
chứng nhận. Mỗi CA nên xuất bản các yêu cầu nhận dạng riêng và các tiêu chuẩn của nó,

do đó, xác minh có thể đính kèm mức độ phù hợp của sự tự tin với name-key ràng buộc
chứng nhận. Các CA với các mức thấp hơn yêu cầu về xác định chứng nhận với bảo đảm
“thấp hơn.'' Các CA như vậy có thể được coi là bảo đảm cao, trung bình và thấp. Một loại
CA là CA personal. Đây là loại CA tạo ra chứng nhận rằng chỉ gắn địa chỉ e-mail và các
key tương ứng của chúng. Nó được thiết kế cho những người dùng muốn giữ kín danh
tính có thể chưa muốn tham gia vào các dịch vụ an toàn điện tử.
Một ví dụ về một giao thức phát hành chứng nhận được tìm thấy trong hệ thống
của Apple Computer 7,5 cho máy Macintosh. Hệ thống người dùng 7,5 có thể tạo ra một
12
cặp khoá, sau đó yêu cầu và nhận được một chứng nhận cho các khoá công khai, các yêu
cầu chứng nhận phải được công chứng.
Chứng nhận liên quan đến công nghệ có sẵn từ một số nhà cung cấp, bao gồm cả
Baltimore ( ).
Giao công nghệ ( ).
RSA Security ( ).
VeriSign ( ).
1.3.13 Làm thế nào để cơ quan chứng nhận lưu khóa riêng của họ?
Nó vô cùng quan trọng là các private keys của các CA được lưu trữ an toàn. Các
thỏa hiệp các thông tin này sẽ cho phép tạo ra các chứng nhận cho các gian lận về public
key. Một cách để đạt được bảo mật tin cậy là lưu khóa trong một thiết bị tamper-resistant.
Thiết bị có thể bị phá dễ hơn nếu đã mở và được bảo vệ trước sự tấn công bằng bức xạ
điện từ. Cho dù là nhân viên của CA có thể truy cập đến private key của chính họ nhưng
cũng chỉ có khả năng sử dụng private key vào quá trình của cấp phát chứng thực.
Có rất nhiều thiết kế có thể điều khiển sử dụng private key của quyền chứng thực.
BBN’s SafeKeyper, ví dụ, để kích hoạt giá trị dữ liệu cho các key, sử dụng một khóa vật
lí có thể lưu các thông tin điện tử. dữ liệu key sử dụng công nghệ chia sẻ bí mật vì thế mà
một vài người cần phải sử dụng dữ liệu key để kích hoạt SafeKeyper.
Lưu ý rằng nếu các thiết bị chứng nhận đăng ký là vô tình phá hủy, sau đó bảo
đảm không có thỏa hiệp. Giấy chứng nhận có chữ ký của thiết bị còn giá trị, miễn là xác
minh việc sử dụng key đúng công cộng. Hơn nữa, một số thiết bị được sản xuất do đó,

một tin quan trọng bị mất có thể được phục hồi vào một thiết bị mới. .
1.3.14 Làm thế nào để xác nhận cơ quan dễ bị tấn công?
Một kẻ tấn công có thể cố gắng xâm nhập tìm ra private key của một CA nào đó
bằng cách đảo ngược kết cấu của thiết bị trong khi nó đã lưu trữ. Trong phiên đó, một CA
cần thật sự đề phòng để ngăn truy nhập bất hợp pháp đến private key của nó.
Key của CA có thể trở thành mục tiêu của tấn công chủ động. CAs nên dùng key
dài, và thay đổi key thường xuyên. Top level của quyền xác thực cần những key dài và
đặc biệt, có thể ko thực tế khi thay đổi thường xuyên bởi vì public key có thể viết vào
phần mềm sử dụng dãy số xác thực vô cùng lớn.
Cái gì xảy ra nếu kẻ tấn công phá được key của CA, nhưng CA sử dụng key trong
bao lâu? Mặc dù key có hiệu thực lâu, kẻ tấn công, nói A, có thể giả mạo chứng thực
trong vòng 15 ngày xác thực để giả mạo key của một người nào đó, nói B. A có thể giả
mạo tài liệu bằng chữ kí của B trong 15 ngày, có lẽ mọi thứ sẽ thoát đến A.
13
Giả sử B muốn giả mạo A, nếu B có thể thuyết phục để lấy chữ kí của A, anh ta co
thể gửi thông điệp tới ngân hàng của A và nói “ muốn rút 10k từ tài khoản của tôi. Hãy
gửi tiền cho tôi”. Cẩn thận với tấn công, B tạo 1 key giả và gửi public key đến CA nói
rằng “tôi là A. đây là public key của tôi. Hãy gửi cho tôi chứng thực”. Nếu CA bị lừa và
gửi chứng thực cho B, anh ta co thể lừa ngân hàng và hoàn thành việc tấn công. Để ngăn
chặn tấn công đó, CA cần phải kiểm tra yêu cầu chứng thực là có thực đến từ chính chủ
yêu cầu, nó cần yêu cầu chứng nhận rằng người yêu cầu chứng thực chính xác là A. ví
dụ, CA yêu cầu A xuất trình thông tin cá nhân và ngày sinh chứng thực. Một vài CA có
thể yêu cầu nhiều ID nhỏ, nhưng ngân hàng ko nên xác nhận chứng thực với một mức an
toàn thấp. Mọi CA cần phải công khai trạng thái yêu cầu ID và nguyên tắc để người khác
có thể nối kết phù hợp mức độ tin tưởng về chứng thực của mình.
Trong lần tấn công khác, B mua chuộc một vài người làm việc trong CA để họ cấp
cho anh ta 1 chứng thực mang tên A. và B có thể gửi tin nhắn có chữ kí của mang tên A
và bất kì ai nhận tin cung đều tin rằng nó đáng tin cậy bởi vì tin nhắn có kèm theo đầy đủ
và đã được kiểm chứng chuỗi xác thực. Cách tấn công này có thể bị gây trở ngại bằng
cách yêu cầu sự hợp tác của 2 (hay nhiều) nhân viên để tạo 1 chứng thực, kẻ tấn công sẽ

ko thể mua chuộc cùng lúc 2 hay nhiều nhân viên
Có thể có nhưng cách khác để tạo ra chứng thư giả bằng cách mua chuộc chỉ một
nhân viên. Nếu mỗi chứng thư yêu cầu được kiểm tra bởi chỉ 1 nhân viên, nhân viên đó
có thể bộ mua chuộc và đưa một yêu cầu sai vào tập danh sách tập các yêu cầu chứng thư
thực. Nếu ko bị lộ thì private key của CA vẫn còn giá trị sử dụng.
Một CA cũng phải chắc chắn rằng người dùng sở hữu các private key tương ứng
với public key được chứng nhận. nếu ko, một số cuộc tấn công có thể trở thành nơi người
dùng gắn giấy chứng nhận thư được ký bởi một người khác
1.3.15 Nếu khóa của CA bị mất hoặc bị xâm nhập?
Nếu key của CA bị mất hay bị hủy nhưng ko bị tổn hại, chữ kí chứng thư với khóa
cũ sẽ ko con giá trị, cũng như người xác thực biết để sử dụng public key cũ để xác thực
chứng thư. Một vài thiết kế cho thiết bị kí chứng thư, các bản sao lưu mật mã của khóa
riêng của CA được lưu giữ, do đó, một CA mà mất chìa khóa của nó sau đó có thể khôi
phục nó bằng cách tải các bản sao lưu được mã hóa vào thiết bị. Nếu chính thiết bị bị
hủy, nhà sản xuất có thể cung cấp thiết bị khác với cùng một dạng thông tin, do đó có thể
phục hồi key.
Một key CA bị tổn hại là vô cùng nguy hiểm. Kẻ tấn công tìm ra private key của
CA có thể cấp phát một chứng thư giả mang tên của CA, và chúng có thể làm cho không
14
thể nào phát hiện ra sự giả mạo. vì vậy, phải thực hiện tất cả các biện pháp để phòng
ngừa sự tổn hại.
Nếu một tổn hại xảy ra, CA ngay lập tức phải ngừng cấp giấy chứng nhận theo
khóa cũ và thay đổi một khoá mới. Nếu nghi ngờ rằng một số giấy chứng nhận giả mạo
đã được ban hành, tất cả các giấy chứng nhận phải được thu hồi và sau đó phát hành lại
với key CA mới. Thỏa hiệp của một khóa CA không làm mất hiệu lực key của người sử
dụng, nhưng chỉ có các chứng thư là có thể xác nhận họ. Thỏa hiệp xảy ra ở top-level của
private key CA sẽ là thảm họa, vì khóa công khai có thể được xây dựng trong các ứng
dụng xác minh giấy chứng nhận.
1.3.16 Danh sách Thu hồi chứng nhận (CRLs) .
Một danh sách thu hồi Giấy chứng nhận (CRL) là một danh sách các giấy chứng

nhận đã được thu hồi trước ngày hết hạn dự kiến . Có nhiều lý do tại sao một giấy chứng
nhận có thể cần phải được thu hồi và được cho vào CRL. Ví dụ, khóa qui định trong
chứng thư cần được thỏa hiệp hoặc người dừng qui định trong chứng thư có thể ko còn có
quyền sử dụng key.
VD: giả sử người tên người dùng kết hợp với khóa “Alice Avery, Vice President,
Argo Corp.” nếu A bị sa thải và ko muốn cố ta sử dụng chữ kí với khóa đó nữa thì họ sẽ
thu hồi vào đặt khóa đó vào CRL
Khi xác thực chữ kí, một khảo sát về CRL liên quan đến việc đảm bảo cho chứng
thư của người kí ko bị thu hồi. Cho dù đó là giá trị thời gian để thực hiện việc kiểm tra
này phụ thuộc vào tầm quan trọng của các văn bản ký kết. Một CRL được bảo vệ bởi một
CA, và nó cung cấp thông tin về chứng thư bị thu hồi mà được ban hành bởi CA. Chỉ có
những CRL trong danh sách chứng thực hiện thời, từ khi hết hạn thì chứng thư sẽ không
được chấp nhận trong bất kì trường hợp nào: khi thu hồi các chứng thư hết hạn thì chứng
sẽ bị xóa khỏi CRL.
Những CRL thường được phân bố theo 1 trong 2 cách. Kiểu “pull”, những người
xác thực tải CRL từ CA nếu cần. Kiểu “push”, CA gửi CRL đến người xác thực trong
một khoảng nào đó một cách thường xuyên. Một số hệ thống sử dụng cách tiếp cận
hybrid mà CRL được đẩy lên một số kho trung gian từ đó ngươi xác thực có thể lấy nó
khi cần thiết
Mặc dù CRLs được bảo về theo cách thức phân phối, có thể có các kho trung tâm
cho CRL, chẳng hạn như, các trang mạng có chứa các CRLs mới nhất từ nhiều tổ chức.
Một số tổ chức như ngân hàng có thể muốn một CRL để làm cơ sở cho các tìm kiếm
CRL trên mỗi lần giao dịch khả thi hơn. Các đề xuất CRL gốc thường đòi hỏi một danh
sách, mỗi tổ chức phát hành, thu hồi các giấy chứng nhận.
15
Private-Key Information Syntax Specification Version 1.2
1.Giới thiệu:
- Thông tin private Key bao gồm một khóa riêng cho một số công chính thuật
toán và một bộ các thuộc tính. Tài liệu này cũng mô tả một cú pháp cho việc
mã hóa các private key. Một mật khẩu dựa trên thuật toán mã hóa có thể

được sử dụng để mã hóa các thông tin private key.
- Mục đích của một tập hợp các thuộc tính là cung cấp một cách đơn giản cho người
dùng để thiết lập sự tin tưởng vào các thông tin đó như một tên hoặc một top-level
public key của CA. Trong khi tin tưởng như vậy cũng có thể được thiết lập với
một chữ ký số, mã hóa với khóa bí mật chỉ được biết đến để người dùng có hiệu
quả và có thể dễ dàng hơn để thực hiện.
2.Định nghĩa:
- AlgorithmIdentifier: Một kiểu thuật toán nhận dạng(do đối tượng định danh)
và các thông số liên quan. Kiểu này được định nghĩa trong [X.509].
- ASN.1 (Abstract Syntax Notation One) cú pháp ký hiệu trừu tượng, được định
nghĩa trong [X.208].
- Attribute : Một kiểu có chứa một loại thuộc tính (định nghĩa nhận dạng đối tượng)
và một hoặc nhiều giá trị thuộc tính. Kiểu này được định nghĩa trong [X.501].
- BER: Basic Encoding Rules, định nghĩa trong [X.209].
3.Cú pháp thông tin Private Key:
- Thông tin Private Key sẽ có ASN.1 kiểu PrivateKeyInfo:
PrivateKeyInfo ::= SEQUENCE {
version Version,
privateKeyAlgorithm PrivateKeyAlgorithmIdentifier,
privateKey PrivateKey,
attributes [0] IMPLICIT Attributes
OPTIONAL }
Version ::= INTEGER
PrivateKeyAlgorithmIdentifier ::= AlgorithmIdentifier
PrivateKey ::= OCTET STRING
Attributes ::= SET OF Attribute
16
- Ý nghĩa của các trường trong kiểu PrivateKeyInfo:
• Version: giá trị phiên bản.
• privateKeyAlgorithm định nghĩa các thuật toán private-key. Một ví dụ về

nó là rsaEncrypttion của PKCS # 1.
• privateKey là một chuỗi octet có nội dung là những giá trị của private Key.
Việc giải thích của các nội dung được định nghĩa trong đăng ký của thuật
toán private-key. Đối với một RSA private key, ví dụ, nội dung là một mã
hóa BER của một giá trị kiểu RSAPrivateKey.
• Attributes :là một tập hợp các thuộc tính. Đây là những phần thông tin mở
rộng được mã hóa cùng với các thông tin private-key.
4.Cú pháp mã hóa thông tin Private Key :
- Mã hóa thông tin private-key sẽ có một ASN.1 kiểu EncryptedPrivateKeyInfo:
EncryptedPrivateKeyInfo ::= SEQUENCE {
encryptionAlgorithm EncryptionAlgorithmIdentifier,
encryptedData EncryptedData }
EncryptionAlgorithmIdentifier ::= AlgorithmIdentifier
EncryptedData ::= OCTET STRING
- Ý nghĩa của các trường trong kiểu EncryptedPrivateKeyInfo:
• EncryptionAlgorithm định nghĩa một thuật toán bên dưới với thông tin
private-key đã được mã hóa. 2 ví dụ là pbeWithMD2AndDES-CBC của
PKCS#5 và pbeWithMD5AndDES-CBC.
• EncryptedData cũng là một chuỗi octet và là kết quả của việc mã hóa thông
tin private – key.
- Tiến trình mã hóa có 2 bước:
1. Thông tin private-key là mã hóa BER, hiệu suất của một chuỗi octet.
2. Kết quả của bước 1 là mã hóa với một sacret key để cho ra một chuỗi octet,
kết quả của quá trình mã hóa.
5.PKCS#8 Định dạng công cụ chuyển đổi private key:
a. Tóm tắt:
openssl pkcs8 [-topk8] [-inform PEM|DER] [-outform PEM|DER] [-in
filename] [-passin arg] [-out filename] [-passout arg] [-noiter] [-nocrypt] [-
nooct] [-embed] [-nsdb] [-v2 alg] [-v1 alg] [-engine id]
b. Mô tả:

17
PKCS#8 các tiến trình lệnh các private key định dạng trong PKCS#8. Nó có
thể xử lý cả hai không được mã hóa PKCS # 8 định dạng PrivateKeyInfo và
định dạng EncryptedPrivateKeyInfo với nhiều loại PKCS # 5 và PKCS # 12
thuật toán.
c.Các COMMAND OPTION:
- topk8:
Thông thường một PKCS#8 private key đã được dự định để nhập vào và định
dạng truyền thống private key sẽ được ghi ra. Với –topk8 lựa chọn trạng thái
ngược lại, nó đọc một định dạng private truyền thống và ghi ra một PKCS#8 định
dạng khóa.
- inform DER|PEM

Quy định các định dạng đầu vào. Nếu một PKCS # 8 định dạng khóa thì đó
chính là đầu vào dự kiến sau đó, hoặc một DER hoặc PEM mã hóa phiên bản của
một PKCS # 8 khóa sẽ được dự kiến. Nếu không, DER hoặc PEM định dạng
truyền thống của private key được sử dụng.

- outform DER|PEM
Quy định các định dạng đầu ra, các tùy chọn có cùng ý nghĩa như -inform tùy
chọn.

- in filename
Quy định các tên file đầu vào để đọc một key hoặc tiêu chuẩn đầu vào nếu tùy
chọn này nếu không được chỉ định. Nếu key được mã hóa một pass sẽ được nhắc
nhở.
- passin arg
Đầu vào các file nguồn của password.
- out filename
Quy định filename đầu ra để ghi một khóa hay tiêu chuẩn đầu ra mặc định. Nếu

bất kỳ tùy chọn mã hóa được thiết lập sau đó là một pass phrase sẽ được yêu cầu
nhập. Các filename đầu ra không cần phải là tương tự như các filename đầu vào.
18
- passout arg
Đầu ra các file nguồn của password.

- nocrypt
\
Các khóa PKCS # 8 được tạo ra hoặc đầu vào thường PKCS # 8
EncryptedPrivateKeyInfo cấu trúc sử dụng một mật khẩu phù hợp dựa trên thuật
toán mã hóa. Với tùy chọn này một không mã hóa cấu trúc định trước
PrivateKeyInfo hoặc đầu ra. Tùy chọn này không mã hóa khóa riêng ở tất cả và
chỉ nên được sử dụng khi hình thành chuỗi octet chứa một SEQUENCE ASN1
gồm hai cấu trúc: một SEQUENCE có chứa các thông số và một ASN1
INTEGER có chứa các khóa riêng.
- Nsdb
Đây là tùy chọn tạo ra các DSA key trong một định dạng tương thích với
Netscape cơ sở dữ liệu private key. PrivateKey chứa một SEQUENCE bao gồm
các khóa public và private tương ứng.
- v2 alg
Tùy chọn này cho phép sử dụng thuật toán PKCS # 5. Bình thường PKCS # 8
private key được mã hóa bằng mật khẩu dựa trên thuật toán mã hóa được gọi là
pbeWithMD5AndDES-CBC sử dụng 56 bit DES mã hóa nhưng nó đã được các thuật
toán mã hóa mạnh hỗ trợ trong PKCS # 5 v1.5. Sử dụng tùy chọn-v2 PKCS # 5
v2.0 các thuật toán được sử dụng có thể sử dụng bất kỳ thuật toán mã hóa như 168 bit
DES ba hoặc 128 bit RC2 Tuy nhiên không nhiều người thực thi hỗ trợ PKCS # 5
v2.0. Nếu bạn chỉ sử dụng khóa riêng với OpenSSL thì điều này không quan trọng.
Các đối số ALG là thuật toán mã hóa để sử dụng, giá trị hợp lệ bao gồm des, des3 và
RC2.
- v1 alg


Tùy chọn này chỉ định một thuật toán PKCS # 5 v1.5 hoặc PKCS # 12 để sử dụng.
Một danh sách hoàn chỉnh của thuật toán có thể được bao gồm bên dưới.
- engine id
19
Quy định cụ thể một cơ cấu (bằng cách đó là chuỗi id duy nhất) sẽ gây ra req để
cố gắng để thu được một hàm tham chiếu để thiết lập cơ cấu, do đó khởi tạo nó
nếu cần thiết. Cơ cấu này sau đó sẽ được thiết lập mặc định cho tất cả các thuật
toán có sẵn.

TÀI LIỆU THAM KHẢO
1.RSA Liboratories
2.RSA and Public-Key Cryptography, Richard Anthony Mollin 1975
3.Internet
20

×