Sơ lược về Digital Signature

I. GIỚI THIỆU CHUNG

1. Khái niệm

Digital signature (tiếng Việt còn gọi là chữ ký số), theo định nghĩa của Wikipedia là 1 lớp con của Electronic signature (tiếng Việt gọi là chữ ký điện tử):

Chữ ký điện tử là thông tin đi kèm theo dữ liệu (văn bản, hình ảnh, video…) nhằm mục đích xác định người chủ của dữ liệu đó

Đơn giản có thể hiểu nôm na Digital Signature là một khóa mã hóa đơn nhất, có khả năng xác thực & đảm bảo đủ độ tin cậy để sử dụng như chữ kí thường trong các ứng dụng số (tất nhiên là ứng dụng số thì không thể kí bằng tay được rồi). Trên thực tế thì ta thường hay gọi chung là chữ kí điện tử, mặc dù có 1 chút khác biệt giữa chữ kí số & chữ kí điện tử. Có thể đọc thêm ở các link tham khảo cuối bài. Tất nhiên trong bài này chúng ta sẽ chú trong vào Digital Signature thay vì Electronic Signature, và chỉ tập trung vào ứng dụng Digital Signature trên PC cho mục đích sử dụng cá nhân.

2. Đặc điểm của chữ kí điện tử

a/Xác thực

Xác thực sẽ là điều đầu tiên chúng ta cần quan tâm, vì đã gọi là “chữ kí” thì tất nhiên là phải có tính xác thực rồi. Để đảm bảo tính xác thực thì chữ kí điện tử cần phải an toàn & là đơn nhất.

Chữ kí điện tử được sinh ra từ việc mã hóa một tập hợp các thông số nhận dạng nhất đinh dựa trên một cơ số những thuật toán mã hóa phức tạp mà chúng ta sẽ không đề cập tới ở đây. Độ an toàn của chữ kí điện tử phụ thuộc vào độ dài của chuỗi mã hóa sinh ra nó, chuỗi mã hóa càng dài, khả năng chữ kí điện tử bị giải mã càng thấp và ngược lại. Tuy nhiên, hiện nay để giải mã 1 chữ kí điện tử được mã hóa với mức trung bình người ta cần 1 máy tính tương đối mạnh và không ít thời gian, do đó về tương đối có thể đảm bảo chữ kí điện tử là an toàn.

Như ta đã biết, khả năng tồn tại 2 cá thể giống hệt nhau là không thể, do đó tập thông số nhận dạng của mỗi cá nhân cũng là đơn nhất, đảm bảo rằng chữ kí điện tử cũng là đơn nhất.

b/Bảo mật

Không chỉ sinh ra từ việc mã hóa, chữ kí điện tử bản thân nó cũng chính là 1 khóa mã, được các ứng dụng sử dụng để mã hóa và giải mã thông tin. Thuật toán mã hóa dựa vào cặp khoá bí mật (Private key) và công khai (Public key), trong đó người chủ chữ ký sẽ giữ khóa Private key cho cá nhân dùng để tạo chữ ký, Public key của cá nhân hay tổ chức đó được công bố rộng rãi dùng để kiểm tra chữ ký. Khi được sử dụng cho việc mã hóa: Private Key để giải mã; Public Key dùng cho mã hóa.

c/Bảo đảm tính toàn vẹn

Chắc hẳn mọi người mua đồ điện tử, đặc biệt là máy tính & linh kiên máy tính, thường thấy có mấy con tem ghi “Warranty avoid if seal is broken”, chỉ cần rách tem là nghỉ bảo hành ngay. Với chữ kí điện tử chúng ta cũng có thể làm như vậy với các tài liệu của mình, chỉ cần thực hiện động tác sign lên tài liệu của mình, chúng ta có thể đảm bảo rằng tài liệu đó là do mình tạo ra & không hề có sự sửa đổi thêm bớt gì. Việc này sẽ rất hữu ích nếu tài liệu của ta là tài liệu quan trọng, việc sửa đổi có thể gây ra nhiều vấn đề pháp lý. VD: Nếu tài liệu được lưu dưới format MS Word, việc nó bị sửa đổi là hoàn toàn có thể xảy ra, đó quả thực là 1 tai họa nếu ta không có 1 bản sao khác để đối chiếu hoặc xem xét lại tài liệu đó 1 cách kĩ càng đến từng chi tiết. Sẽ có người đề xuất convert tài liệu đó sang dạng PDF và thêm 1 vài dấu hiệu gì đó (watermark, image, etc…) thì sẽ đảm bảo, trên thực tế điều này sẽ chỉ đảm bảo hơn trước những người mù mờ về máy tính, không biết gì hơn ngoài Word & Excel, vì chỉ với Adobe Acrobat Professional Editions hoặc 1 phần mềm chuyển đổi định dạng văn bản chuyên dụng nào đó (Solid Converter, Able2Extract,..), việc chuyển đổi ngược lại định dạng và sửa đổi là cực kì đơn giản, thậm chí các cao thủ về document formatting còn có thể dựng lại 1 tài liêu hoàn toàn tương tự mà không cần chuyển đổi. Lúc này cũng ta sẽ có 2 giải pháp: Đăt mật khẩu bảo vệ cho tài liệu hoặc dán cho nó 1 cái seal như đồ điện tử kia. Mật khẩu có thể bị lộ/đoán/dò tìm, thâm chí với trường hợp cao thủ document formatting thì việc dựng lại 1 bản sao y chang là không khó, và tất nhiên mọi chuyện có thể xảy đến :)) Nhưng 1 document đã được gắn seal thì việc sửa đổi trên tài liệu có sẵn sẽ làm cho seal đó broken, đồng nghĩa với việc chúng ta không phải chịu trách nhiệm về nội dung của nó nữa, và cũng không thể làm giả, vì việc làm giả cái seal để gắn là cực kì khó, hầu như không thể.

3. Chữ kí điện tử được ứng dụng như thế nào?

Với những đặc điểm của chữ kí điện tử đã nêu trên, chúng ta sẽ biết rằng chữ kí điện tử được ứng dụng trước tiên là để kí (tính xác thực), mã hóa tài liệu (tính bảo mật) và đóng dấu niêm phong tài liệu (tính toàn vẹn). Nhưng vấn đề là dấu hiệu thể hiện của chữ kí điện tử sẽ như thế nào? Làm sao biết được tài liệu được gắn chữ kí điện tử? Chúng ta hãy cùng xem vài hình minh họa các tài liệu sử dụng chữ kí điện tử:

email

doc

pdf

4. Làm sao để tạo một chữ kí điện tử cho cá nhân tôi?

Với 1 bộ công cụ miễn phí như OpenSSL và kiến thức lập trình, hoàn toàn có thể tự tạo cho chính mình 1 chữ kí điện tử, tuy nhiên đây không phải là điều mà bất cứ ai có thể làm được, và chữ kí điện tử này sẽ không được chấp nhận rộng rãi. Chữ kí điện tử tự tạo có thể có đầy đủ các đặc điểm của chữ kí điện tử, nhưng không được chấp nhận rộng rãi, đơn giản vì không có ai khẳng định những thông tin chứa trong nó là đúng. Do đó chúng ta cần một 3rd-party để cung cấp chữ kí điện tử cho mình, và tất nhiên 3rd-party đó sẽ phải là tổ chức có uy tín để xác thực độ tin cậy trong các thông tin của bạn. Các tổ chức như vậy được gọi là Trusted CA (Certificate Authority), có một vài Trusted CA lớn như VeriSign, thawte, GeoTrust, Comodo,… chuyên cung cấp chữ kí điện tử cá nhân với mức phí dao động từ $20-$25 cho 1 năm sử dụng. Thoạt nghe mức giá này có vẻ hơi chát, tuy nhiên để có được sự an toàn cao thì việc trả giá đó cũng là hợp lý.

Tin mừng là 2 đại gia Comodo và thawte có cung cấp chữ kí điện tử miễn phí cho mục đích sử dụng cá nhân, nên chúng ta có thể kiếm cho mình 1 chữ kí điện tử được chứng nhận bởi Trusted CA hẳn hoi mà không mất 1 đồng nào. Tuy nhiên chữ kí điện tử của đồng chí thawte phải qua hệ thống Web of Trust (WOT) mới hoàn thiện và thủ tục này hơi lằng nhằng, chưa thực hiện được tại Việt Nam, nên chúng ta tạm bỏ qua để xài chữ kí điện tử do Comodo cung cấp.

II. TẠO LẬP VÀ QUẢN LÝ CHỮ KÍ ĐIỆN TỬ

1. Tạo chữ kí điện tử

Chúng ta sẽ thực hiện việc tạo cho mình 1 chữ kí điện tử với dịch vụ cung cấp chữ kí điện tử miễn phí của Comodo. Để tạo chữ kí điện tử, trước hết yêu cầu phải có:

  • Một “máy tính cá nhân” (máy tính thuộc sở hữu của riêng mình hoặc chỉ 1 mình sử dụng, không phải máy tính công cộng ngoài hàng net hoặc máy do nhiều mình sử dụng, cái này rất chi là quan trọng vì chữ kí điện tử sẽ được cài vào Certificate Directory của hệ điều hành máy tính) cài hệ điều hành Windows “sạch” (không bị nhiễm virus hoặc phần mềm gián điệp, đặc biệt là trojan hay keylogger), sử dụng mail client Microsoft Outlook / Windows Mail / Windows Live Mail / Outlook Express và browser Internet Explorer / Firefox (Tốt nhất là nên dùng IE để đảm bảo quá trình tạo chữ kí không bị lỗi).
  • Một địa chỉ email tồn tại & đang hoạt động tốt (tất nhiên rồi, việc lấy chữ kí điện tử miễn phí không yêu cầu phải chìa ra bất kì 1 loại giấy tờ cá nhân nào, do đó căn cứ tốt nhất sẽ chính là địa chỉ email cá nhân). Lưu ý là dịch vụ mail được cung cấp phải hỗ trợ các chuẩn POP3, IMAP  hoặc Exchange Server để có thể sử dụng với các mail client nêu trên. Ngoại lệ có Hotmail có thể hoạt động rất tốt với Windows Live Mail, đặc biệt tránh xa Yahoo! Mail free vì không thể dùng với mail client được.

Quá trình tạo chữ kí điện tử sẽ gồm các bước chi tiết như sau (hãy đọc thật cẩn thận và làm theo đúng từng bước):

  1. Mở trình duyệt IE/Firefox, nhập địa chỉ https://secure.instantssl.com/products/frontpage?area=SecureEmailCertificate
    001 
  2. Trình duyệt IE sẽ hiện ra 1 thông báo  “This website wants to run the following add-on:…..”, click lên thông báo sẽ hiện ra 1 menu như hình, chọn Run ActiveX Control
    002 
  3. Nhập các thông tin cá nhân, chú ý là tất cả các thông tin này một khi đã được nhập thì sẽ không sửa đổi được cho đến khi chữ kí hết hạn hoặc phải yêu cầu hủy chữ kí để tạo mới lại rất phức tạp. Nhập đúng các thông tin, đặc biệt là địa chỉ email mà bạn muốn sử dụng với chữ kí này. Revocation password là mật khẩu dùng để hủy chữ kí này, thực tế thì chưa từng thử bao giờ & cũng không biết cách hủy ra sao :)) Sau đó bấm chọn Agree & Continue
    003 
  4. Bạn sẽ nhận được thông báo xác nhận của hệ thống, chọn Yes
    004 
  5. Việc yêu cầu tạo chữ kí điện tử đã thành công
    005 
  6. Bước tiếp theo sẽ là cài chữ kí điện tử vào hệ thống, kiểm tra địa chỉ mail đã dùng để tạo chữ kí điện tử sẽ thấy 1 mail với tiêu đề “Your certificate is ready for collection!”
     006 
  7. Mở mail ra và click vào “Click & Install Comodo Email Certificate” hoặc sử dụng link và collection password cung cấp ở phần Note. Lưu ý rằng: Nếu bạn sử dụng trình duyệt nào để đăng kí thì phải sử dụng chính trình duyệt đó, trên chính máy đó để collect certificate. Do chữ kí điện tử chỉ có thể collect 1 lần duy nhất, nên phải rất cẩn thận khâu này, sai lầm nhỏ sẽ dẫn đến việc rất mất thời gian để xin hủy chữ kí điện tử và tạo lại.
    007 
  8. Thông báo cài chữ kí điện tử sẽ hiện ra, chọn Yes
    008 
  9. Chữ Successful màu đỏ báo hiệu rằng quá trình tạo chữ kí điện tử đã hoàn tất, hãy tận hưởng niềm sung sướng đi nào
    009 

2. Lưu trữ chữ kí điện tử

Chữ kí điện tử được tạo ra sẽ có hiệu lực trong 1 năm kể từ ngày yêu cầu tạo. Sau 1 năm chữ kí sẽ tự hết hạn và chúng ta phải tạo mới. Trong thời gian 1 năm này có thể chúng ta sẽ thay đổi máy tính, cài mới hệ điều hành hoặc đơn giản là bạn muốn sử dụng chữ kí điện tử trên 1 máy tính cá nhân khác (máy riêng ở nhà chẳng hạn), vậy phải làm sao khi mà chữ kí điện tử được đã được cài vào Certificate Directory của hệ điều hành rồi? Câu trả lời là chúng ta sẽ backup nó bằng cách export nó ra và mang sang máy khác để import vào, thay vì làm 1 chuỗi thủ tục phức tạp để xin hủy chữ kí điện tử và tạo mới chữ kí điện tử trên máy tính khác. Các bước để export sẽ như sau:

  1. Mở Control Panel, có rất nhiều thao tác để mở Control Panel như bấm vào Start > Control Panel hoặc Start > Settings > Control Panel với Classic Start Menu hay Start > Run, gõ control và bấm Enter,…. Chọn mục Internet Options
    010 
  2. Hộp thoại Internet Properties hiện ra, chọn tab Content và chọn Certificates
    011 
  3. Certificate Directory sẽ mở ra, chọn certificate và bấm Export, nếu có nhiều certificate như của tôi, bạn có thể căn cứ vào Expiration Date để chọn certificate cần export hoặc double click vào certificate đó để xem chi tiết.
    012 
  4. Certificate export wizard hiện ra, click Next
    013 
  5. Chọn Yes, export the private key, bấm Next. Nếu chọn No, do not export the private key là sẽ nghỉ khỏe, khỏi import chữ kí vào máy khác :))
    014 
  6. Nếu chuyển chữ kí điện tử từ máy tính này sang máy tính khác, hãy chọn “Delete the private key if the export is successful”, chữ kí điện tử sẽ bị xóa trên máy tính sau khi export thành công, đảm bảo người khác dùng máy tính sẽ không thể sử dụng chữ kí điện tử của bạn. Nếu không hãy bỏ qua bước này, Next
    015 
  7. Nhập password cho chữ kí được xuất ra, để bảo vệ trong trường hợp người khác chôm được chữ kí của bạn và import vào máy họ để dùng cho mục đích xấu. Bạn cần phải nhớ password này để import chữ kí vào máy tính khác, do đó hay ghi nhớ password và nhập 1 cách cẩn thận
    016 
  8. Bấm Browse để chọn vị trí bạn muốn export chữ kí của mình ra
    017 
  9. Bấm Finish để hoàn tất việc export chữ kí điện tử. Hệ thống sẽ thông báo “The export was successful”. Việc export đã hoàn tất.
    018 

Việc cần làm bây giờ là lưu giữ trữ kí điện tử đã được xuất ra ở 1 nơi an toàn, thiết bị lưu trữ cá nhân như USB, ổ cứng gắn ngoài chẳng hạn. Một cách tốt nữa là send mail attach chữ kí này vào địa chỉ mail cá nhân của mình ở Gmail chẳng hạn. Và hãy đảm bảo là bạn luôn nhớ password của chữ kí để có thể import khi cần thiết :))

3. Nhập chữ kí điện tử

Đã có bước backup chữ kí điện tử, chúng ta cũng sẽ có bước restore chữ kí điện tử, import vào máy tính để sử dụng. Các bước tuần tự của việc import chữ kí sẽ như sau:

  1. Mở file chữ kí điện tử đã export và lưu trữ, Certification Import Wizard mở ra, chọn Next
    019 
  2. Next luôn, khỏi cần nghĩ
    020 
  3. Nhập password cho chữ kí điện tử, lúc này mới cần phải nhớ đây >:)
    021 
  4. Next
    022 
  5. Finish
    023 
  6. Import hoàn tất, bắt đầu sử dụng được rồi
    024 

Việc import chữ kí điện tử sẽ đơn giản hơn việc tạo mới lại rất nhiều :))

III. ỨNG DỤNG CHỮ KÍ ĐIỆN TỬ

1. Kí và mã hóa thư điện tử (e-mail)

Trong bài này, chúng ta sẽ sử dụng chữ kí điện tử với MS Outlook, một email client khá phổ biến đối với dân văn phòng. Đối với Windows Mail / Windows Live Mail / Outlook Express tôi sẽ viết 1 bài chi tiết khác khi có thời gian

a/Bật tính năng chữ kí điện tử trong Outlook

  • Với Outlook 2007:
    1. Tools > Trust Center
      025
    2. Vào mục Email Security, chọn như hình dưới
      026
  • Với Outlook 2003:
    1. Tools > Options
      027
    2. Hộp thoại Options mở ra, chọn tab Security và chọn như hình dưới
      028

Thử gửi test mail

029

Hàng đã về :))

030

031

b/Bảo mật email với chữ kí điện tử

Về vấn đề bảo mật email, chúng ta sẽ tìm hiểu rõ hơn 1 chút về nguyên tắc hoạt động của nó. Email được mã hóa dựa trên nguyên tắc mã hóa bất đối xứng, dựa vào cặp khóa private key và public key, trong đó public key chính là phần chữ kí trên các email được gửi đi. Nôm na có thể mô tả quá trình đó như sau:

  • A gửi 1 message cho B: message của A đã được A “digitally signed” (đã kí bằng chữ kí điện tử). Trong đó đã có chứa public key của cặp khóa mã hóa, còn private key thì tất nhiên là sẽ do A nắm giữ :)
  • B reply lại message của A: dựa trên public key đã nhận được kèm theo message của A, B sẽ thực hiện việc encrypt (mã hóa) message (như đã nói ở trên, public key là chìa khóa để mã hóa) trước khi gửi cho A
  • Sau khi nhận được message hồi đáp từ B (đã được mã hóa), A sẽ dùng private key do mình nắm giữ để decrypt (giải mã) và đọc message.

Câu hỏi đặt ra ở đây sẽ là:

  • Tại sao lại gọi là nguyên tắc mã hóa bất đối xứng?
    Bất đối xứng vì nó tách biệt giữa chức năng mã hóa và giải mã, người nắm giữ public key sẽ chỉ có thể mã hóa, còn người nắm giữ private key sẽ có thể giải mã.
  • Tại sao phải phức tạp như vậy? Sao phải tách riêng giữa mã hóa và giải mã? Tại sao người mã hóa phải là B mà không phải là A?
    Hãy thử tưởng tượng, nếu 1 khóa vừa có khả năng mã hóa vừa có khả năng giải mã, khi đó sẽ thật tại họa nếu B để rơi khóa đó vào tay người khác (C chẳng hạn). Chỉ cần chiếm được 1 message gửi từ A đến B, C sẽ có khóa để giải mã các message trao đổi giữa A và B, và bằng 1 cách nào đó C nắm bắt được các message qua lại đó, mọi thứ sẽ không còn là bí mật.
    Đó là theo quan điểm nghiêm trọng hóa vấn đề & mang 1 chút màu sắc tội phạm. Trên thực tế, giả dụ khóa của A vừa có thể mã hóa & giải mã đồng thời, nếu A trao đổi thư từ qua lại với B, C, D, etc… thì B có thể dùng khóa đó để giải mã các thư từ của A với C, có thể do A gửi nhầm địa chỉ cho B thay vì C chẳng hạn. Do đó phải tách biệt giữa mã hóa và giải mã.
    Về việc tại sao người mã hóa luôn phải là B thay vì A, có thể thấy rõ ràng rằng nếu public key do B nắm giữ là chìa khóa giải mã thay vì chìa khóa mã hóa, việc A trao đổi thư từ với nhiều người B, C, D,… cũng sẽ đem đến rủi ro người này có thể giải mã được thư của người khác. Rõ ràng người mã hóa phải là B để đảm bảo thông tin được bảo mật, người duy nhất có thể giải mã mọi thông điệp trao đổi với A chính là A.
  • Vậy A và B muốn trao đổi thư từ mã hóa với nhau thì phải làm sao?
    Ta thấy nếu A là người nắm giữ private key và B nắm giữ public key của A thì chỉ B có thể gửi encrypted message đến A, tức là việc mã hóa chỉ có 1 chiều từ B đến A. Để việc mã hóa được 2 chiều, đòi hỏi B cũng phải có 1 private key để giải mã và A phải nắm giữ 1 public key tương ứng của B để mã hóa. Đơn giản lại là cả A và B đều phải có chữ kí điện tử cho riêng mình để việc trao đổi thư từ mã hóa được diễn ra theo 2 chiều.

Để có thể encrypt message, thủ tục trước tiên chúng ta cần làm (chỉ cần làm 1 lần):

  1. Nhập public key của người mình cần gửi encrypted message bằng cách mở 1 thư có đính kèm chữ kí điện tử của họ. Tiếp đó là add họ vào contact của mình.
    aa
  2. Save & Close
    ab

Nào thì encrypt message, trong cửa sổ compose message, bấm chọn encrypt. Sau đó compose và gửi.
ac 
với Outlook 2003 vị trí nút encrypt hơi khác 1 chút
xx

Và đây, message đã được encrypt
ad

Message được encrypt sẽ không hiển thị trong reading pane
ae
đòi hỏi bạn phải mở ra trong 1 cửa sổ riêng
af

Giả dụ có kẻ bắt được encrypted message của bạn, liệu kết quả thu được sẽ là gì?
ag 

Muốn mở trộm của ta à, mơ đi nhé :))

2. Gắn sign cho tài liêu MS Office

Để đảm bảo 1 tài liệu không bị sửa đổi, chúng ta sẽ gắn sign cho cho nó

a/ Với Office 2007

Mở 1 tài liệu Word / Excel / Powerpoint bất kì, ta thực hiện như sau:

  1. Chọn Office Button > Prepare > Add a Digital Signature
    a
  2. Lần đầu sử dụng chúng ta sẽ nhận được thông báo như hình dưới. Chọn “Don’t show this message again”, OK
    b
  3. Nhập mục đích của việc sign document, có thể bỏ qua. Nếu có nhiều chữ kí điện tử thì có thể bấm vào Change để chọn chữ kí cần dùng, nếu có 1 chữ kí thì bỏ qua. Bấm Sign để thực hiện sign lên tài liệu.
    c
  4. Quá trình gắn chữ kí điện tử lên tài liệu diễn ra và hoàn tất

    d

    e

  5. Biểu tượng huy hiệu màu đỏ sẽ xuất hiện trên status bar, báo hiệu tài liệu đã được gắn chữ kí điện tử hợp lệ
    f
    Đồng thời side bar Signature cũng xuất hiện
    g
  6. Khi tài liệu đã được gắn chữ kí điện tử, bạn sẽ không thể sửa đổi tài liệu được. Để sửa đổi tài liệu cần phải gỡ chữ kí điện tử ra
    h
    Khi đó biểu tương huy hiệu trên status bar cũng biến mất, bạn có thể tùy ý sửa tài liệu & gắn lại sign sau khi đã sửa xong. Nếu người khác sửa tài liệu của bạn, tất nhiên họ sẽ không có chữ kí điện tử của bạn để gắn lại sign cho tài liệu, do đó tài liệu đã được gắn sign là đảm bảo nguyên vẹn :)

b/Với Office 2003

Quá trình thực hiện gắn sign cho tài liệu trên Office 2003 có phần hơi khác với Office 2007 do tính năng này bị giấu hơi sâu. Mở 1 tài liệu Word / Excel / Powerpoint bất kì, ta thực hiện như sau:

  1. Chọn menu Tools > Options
    i
  2. Chọn tab Security > Digital Signatures… > Add… > Chọn chữ kí điện tử và bấm Ok
    j
  3. Lúc này, chữ kí của bạn đã hiện trong mục Digital Signatures. Bấm Ok để xác nhận.
    k
  4. Đóng hộp thoại Options. Lúc này chúng ta sẽ thấy biểu tương huy hiệu đỏ xuất hiện trên status bar, báo hiệu chữ kí đã được gắn
    l
  5. Khác với Office 2007, bạn không cần gỡ chữ kí điện tử để sửa đổi tài liệu. Khi tài liệu bị sửa và lưu lại các sửa đổi thì chữ kí sẽ bị mất hiệu lực.
    m

3. Gắn sign & bảo mật tài liệu PDF

a/Gắn sign cho tài liệu PDF

Việc gắn sign cho tài liệu PDF có thể thực hiện với nhiều PDF editor, tuy nhiên Adobe Acrobat Professional là phổ biến & hỗ trợ đầy đủ nhất. Chúng ta sẽ thực hiện gắn sign cho tài liệu PDF với Adobe Acrobat 8 Professional. Mở tài liệu PDF bất kì, chúng ta sẽ thực hiện như sau:

  1. Chọn menu Advanced > Sign & Certify > Place Signature
    n
    hoặc bấm vào nút Sign trên toolbar cũng sẽ ra menu tương tự
    o
  2. Lúc này con trỏ chuột sẽ thay đổi, chọn vị trí cần đặt chữ kí và thực hiện thao tác nhấn – giữ – kéo – thả để tạo 1 frame cho chữ kí
    p
  3. Hộp thoại Sign Document sẽ mở ra, ở mục Digital ID chúng ta có thể chọn chữ kí để dùng, nếu chỉ có 1 chữ kí thì có thể bỏ qua. Bấm Sign.
    q
  4. Hộp thoại Save As sẽ hiện ra, giữ nguyên tên file để lưu thay đổi trên chính file đó hoặc đổi tên để lưu ra file khác
    r
  5. Việc sign đã hoàn tất, chữ kí xuất hiện ở vị trí được đặt
    s

Bên cạnh việc place signature, chúng ta còn có 1 tính năng khác là document certify, thực ra cũng vẫn tương tự sign, tuy nhiên với chữ kí điện tử được import từ bản sao lưu chữ kí, việc certify có vài problem nhỏ về validate owner. Có 2 hình thức certify: “Certify with Visible Signature” và “Certify without Visible Signature”

  • Certify with Visible Signature:
    1. Chọn Verify with Visible Signature
      t
    2. Lần đầu sử dụng, hộp thoại thông báo sẽ hiện ra, chọn “Do not show this message again”. Ok
      u
    3. Thực hiện khâu nhấn – giữ – kéo – thả để place signature
    4. Hộp thoại Certify Document mở ra, khác với hộp thoại Sign Document ở trên, chúng ta có thêm mục “Permitted Changes after Certifying” với 3 cấp độ, cấp độ cao nhất là “No changes allowed” không cho phép thêm bớt gì vào tài liệu. Nếu gửi tài liệu cho người khác review & comment chẳng hạn, chúng ta sẽ dùng lựa chọn “Annotations, form fill-in, and digital signatures” để họ có thể place comment trên tài liệu của ta, tất nhiên là họ vẫn không thể thay đổi được nội dung tài liệu của ta :D Bấm Sign để thực hiện certify cho tài liệu
      v
    5. Sau khi certify thành công, sẽ xuất hiện chữ kí tại vị trí đã đặt, tuy nhiên có thêm 1 biểu tượng huy hiệu màu xanh. Trên đầu tài liệu cũng xuất hiện 1 notification bar màu xanh với thông báo rằng “This document was certified by….” với huy hiệu màu xanh
      w
    6. Tuy nhiên, như trên đã nói, nếu sử dụng chữ kí được import từ file backup, đôi khi có thể xảy ra tình huống dở khóc dở cười là mặc dù tài liệu đã được certify nhưng không verify được owner, do thiếu trusted root certificate :))
      x
      Tất nhiên chúng ta vẫn có thể kiểm chứng được tài liệu có bị sửa đổi gì hay không bằng cách xem Signature Properties
      y
      z
      Chúng ta vẫn có thể thấy “The Document has not been modified since it was certified.”
  • Certify without Visible Signature: Hoàn toàn tương tự, chỉ khác là chúng ta bớt được bước nhấn – giữ – kéo – thả để place signature và trên tài liệu được certify sẽ không thấy biểu tượng chữ kí nữa, tất nhiên là thế rồi :)) Tuy nhiên chúng ta vẫn nhìn thấy notification bar thông báo rằng tài liệu đã được certify.

b/Bảo mật tài liệu PDF

Tương tự mã hóa email, mã hóa tài liệu PDF cũng dựa trên nguyên tắc mã hóa bất đối xứng, tài liệu sẽ đươc mã hóa bằng khóa public key và chỉ có thể đọc được (giải mã) khi có private key, do đó chỉ có bạn (hoặc một ai đó, bằng 1 cách nào đó có được chữ kí điện tử của bạn) mới có thể đọc được nội dung của tài liệu đó. Tuy nhiên, khác với trao đổi qua email cần thủ tục nhập khóa public key để thực hiện mã hóa, bạn có thể tự mình mã hóa file PDF vì chữ kí điện tử của bạn đã bao hàm cả khóa public key và private key.

Trình tự thực hiện mã hóa file PDF như sau:

  1. Chọn menu Advanced > Security > Certificate Encrypt…
    x1
    hoặc bấm vào nút Secure trên toolbar để ra menu tương tự
    x2
  2. Hộp thoại Certificate Security Settings mở ra, có 3 lựa chọn encrypt, trong đó có lựa chọn “Encrypt all document contents” cho phép mã hóa toàn bộ tài liệu và “Encrypt only file attachments” chỉ mã hóa các file đính kèm trong tài liệu. Chọn hình thức encrypt phù hợp với mục đích, bấm Next
    x3
  3. Hộp thoại Digital ID Selection mở ra, chọn chữ kí mà bạn muốn dùng để mã hóa tài liệu. Ok
    x4
  4. Next
    x5
  5. Finish
    x6
  6. Biểu tượng hình chiếc khóa sẽ xuất hiện ở side bar bên phải, báo hiệu tài liệu đã được mã hóa
    x7
  7. Bấm save để lưu tài liệu
    x8
  8. Tài liệu của bạn đã được mã hóa, chỉ có bạn với private key của bạn mới có thể mở tài liệu. Nếu 1 người không có chữ kí điện tử của bạn chiếm được tài liệu, khi mở ra họ chỉ nhận được thông báo như sau :))
    x9

IV. LỜI KẾT

Với hiểu biết hạn hẹp của 1 cá nhân không chuyên về tin học, việc mô tả nội dung vấn đề có lẽ cũng có phần bị giới hạn và chưa hoàn toàn chính xác. Tuy nhiên, bằng kinh nghiệm của bản thân, tôi đã cố gắng thể hiện nội dung vấn đề 1 cách chi tiết và rõ ràng nhất để một người có kiến thức trung bình về tin học có thể đọc và áp dụng được, hi vọng sẽ là nội dung có ích. Mọi yêu cầu và đóng góp có thể nêu bằng comment hoặc trao đổi trực tiếp qua email với tôi, các nội dung liên quan sẽ nhanh chóng được sửa đổi và hoàn thiện.

Nguồn tham khảo:

Advertisements

15 thoughts on “Sơ lược về Digital Signature

  1. Đến hôm nay thì chắc bạn đã giải quyết được vấn đề rồi, tôi hi vọng là như thế :) Tuy nhiên có vài điều tôi muốn chia sẻ thế này:Thứ nhất, tôi là 1 kẻ không chuyên, tôi chỉ chia sẻ theo kinh nghiệm & hiểu biết của mình, nên không thể mong muốn thu được nhiều hơn những gì tôi viết cảThứ hai, tôi viết về chủ đề này không có nghĩa là tôi có trách nhiệm phải giải đáp tất cả mọi thắc mắc, yêu cầu, giúp làm bài tập về nhà,…. blah blah… liên quan đến chủ đề này. Tôi chỉ hồi đáp khi tôi muốntrong khả năng có thể của tôi. Vả lại, tôi nghĩ rằng việc động não 1 chút xíu cũng có ích đấy chứ, bạn sẽ hiểu thêm vấn đề, hoàn thiện đề tài của mình theo 1 hướng chủ động & tích cực hơn, rất tốt đấy chứ nhỉ? Chúc bạn may mắn & đạt kết quả tốt với đề tài của mình. Thân ái.

    Like

  2. Chuẩn đó bác, chỉ khi trên máy người đó cài Digital ID của bác thì mới mở được thôi :) Có 1 cách khác để chuyển file PDF an toàn là bác attach file vào email rồi mã hóa email đó, thì attach cũng sẽ được mã hóa cùng mail, khi người nhận mở mail được mã hóa thì vẫn đọc được file bình thường :D

    Like

  3. À à, đề tài của bạn thì không chỉ nằm trong việc mã hóa file PDF nữa rồi :D Đến lúc này thì chúng ta sẽ quan tâm đến loại hình chữ ký số tự issue thay vì phải dùng chữ kí số cung cấp bởi Trusted CA, lúc này thì bạn không còn bị giới hạn do chữ kí số nằm trong trusted root certificate nữa, nên có thể issue public key rất dễ dàng. Bạn có thể dùng phần mềm PGP, cái này thì mình không có tài liệu hướng dẫn & dạo này cũng đang bận nên không có thời gian viết chi tiết, bạn chịu khó Google rồi đọc nhé :) Hiện PGP Desktop giờ chỉ còn bản dùng thử 15 ngày thôi, nếu có kiến thức lập trình tốt thì bạn có thể tìm OpenPGP, là 1 giải pháp miễn phí tương tự PGP, nhưng hơi rắc rối 1 chút. Chúc may mắn :D

    Like

  4. Nhu vay thi minh ma hoa file PDF xong gui cho nguoi khac thi coi nhu lakhong co open duoc luon ha?Thanks2010/5/28 Disqus

    Like

  5. Ban oi, cho minh hoi cai nay nhe, co sign cho PDF do, o qua trinh nao thi 2 ben trao doi public key cho nhau vay ban?Ban co the giai thich cho minh 1 chut ve qua trinh trao doi public key cua 2 ben dien ra khi nao khong?Minh cam on ban nhieu lam

    Like

  6. Vay lam cach nao de minh co the ma hoa 1 file bang public key cua nguoi khacgiong nhu truong hop ma hoa cong khai hay con goi la ma hoa bat doi xung?Minh dang gap va de nhu the nay:Minh dang lam de tai tot nghiep voi de tai chu ky dien tu bao gom:- Dung Certificate lam chu ky dien tu cho file PDF –> minh da thuc hienduoc nho vao huong dan cua ban(cam on)- Dung Certificate de ma hoa file –> van chua lam duoc vi theo minh bietthi:Co anh A (cap khoa PublicA va PrivateA) va B (cap khoa PublicB va PrivateB)A muon gui file co ma hoa cho B thi phai dung PublicB de ma hoa file sau dogui file cho BB dung PrivateB de giai ma va nguoc lai.Minh dang gap van de la lam sao A co the lau PublicB de ma hoa file vi tronghuong da cua ban thi A muon ma hoa file phai dung PrivateA de ma hoa. Nhuvay co ve nhu de tai cua minh khong co loi thoat roi.Vay ban co tai lieu hay co cach nao de giai quyet truong hop nay khong?Neu co xin hay giup do cho minh nha.Cam on rat nhieu.2010/6/5 Disqus

    Like

  7. À, thế này nhé, khi bác sign file PDF thì public key sẽ được gắn luôn vào file đó, hoàn toàn tương tự như khi bác sign email vậy. Public key sẽ đi theo file luôn :)Tuy nhiên để encrypt file PDF thì có public key không giải quyết được vấn đề, để mã hóa được thì bác cần phải có Digital ID trên máy, tức là cả cặp public key & private key. Do đó bác chỉ có thể tự mã hóa & tự đọc file PDF trên các máy có Digital ID của mình. Cái này thì khác với email encryption :D

    Like

  8. Bài viết  này rất hay đấy. Không biết phải xưng hô thế nào. Hi. Tạm gọi là “vip” nhé.  Mình muốn hỏi vip thế này. vip có tìm hiểu về các xác thực tính toàn vẹn của của nội dung file pdf khi được ký không? Khi người B nhận được file văn bản do người A ký. Liệu người B có cách nào kiểm tra xem nội dung văn bản có bị thay đổi? thanks !Mình ở địa chỉ email : quyen.tranvan221@gmail.com

    Like

  9. bạn ơi cho mình hỏi, mình có 1 file PDF bị mã hóa digital id, và kèm theo 1 file chứng thực, làm sao để mở được file pdf và chia sẻ cho người khác. mong được giúp đỡ.

    Like

  10. Để mở được file PDF thì bạn chỉ cần import file chứng thực vào Windows certificate chain thôi :D Còn để chia sẻ thì chắc bạn sẽ phải gửi file PDF cùng với file chứng thực đó cho người khác để họ tự import vào hệ thống của họ, hoặc bạn thực hiện decrypt file đó ra :)

    Like

  11. Mình search thử thấy đồng chí sinh năm 88 thì phải, vậy thì là em mình rồi :))Về việc người B muốn đảm bảo nội dung văn bản của người A kí xem có bị thay đổi không, mình đoán là đồng chí muốn guess đến trường hợp như kí hợp đồng, anh B sẽ soạn thảo hợp đồng & gửi cho anh A kí, sau đó muốn check xem là anh A có thay đổi hợp đồng trước khi kí ko, đúng chứ nhỉ? Về trường hợp này thì chúng ta có thể xử lý bằng việc add multiple digital signature form vào văn bản, khi anh B soạn thảo xong văn bản, anh B sẽ kí & gửi cho anh A để anh A xem, duyệt & kí rồi gửi lại cho B. Lúc đó B hoàn toàn có thể đảm bảo văn bản không bị thay đổi khi nó chứa cả 2 chữ kí của A & B, đồng thời đạt được thỏa thuận với A (bằng chứng là việc A đã kí vào văn bản). Cái này thì mình sẽ ko viết tutorial nữa vì nó cũng tốn thời gian & mình dạo này hơi lười viết lách :D Nhưng mình có thể cung cấp cho đồng chí vài link tham khảo:http://forums.adobe.com/thread/303373http://forums.adobe.com/thread/761586http://learn.adobe.com/wiki/display/security/Document+LibraryHoặc có thể search với từ khóa “Multiple Digital Signature form in Acrobat”. Và theo như mình có tham khảo qua thì việc áp dụng Multiple Digital Signatures tốt nhất là nên thử nghiệm với Acrobat phiên bản 9.0 trở lên.Chúc may mắn! ;)

    Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s