יום שישי, דצמבר 08, 2017

בדיקת חתימה דיגטלית על PDF

עריכה: הפוסט המקורי לא הציג ש Adobe Acrobat reader ככלי שיכול לפתוח קבצי PDF ויכול לאמת חתימות, זו היתה שגיאה ולמעשה יש חתימות שאקרובט רידר יכול לזהות כאשר תוכנות קוד פתוח אינן יכולת לאמת או לזהות. אינני נוהג להתקין תכונות שאינן חופשיות ולכן תוכנה זה לא נבחנה כלל בפוסט המקורי.

בעת האחרונה כאשר אני נתקל במסמך עיסקי שטוען כי הוא חתום דיגיטלית  אני בודק פעמים אם המסמך הוא אמיתי או לא, הסיבה שמסמך שמכיל טענה לחתימה צריך שיהיה חתום.

רק שיש בעייה קטנה , חלק מהמסמכים שמכריזים "חתום דיגיטלית" לא באמת חתומים דיגיטלית (אפילו לא חתימה אלקטרונית).

להודעה שמודבקת על המסמך אין שום משמעות אם הקבצים שהלקוח הסופי מקבל לא מכילים מידע על החתימה. הם יכולים להדביק תמונה של חתימה של אומבה על מסמך שטוען שאובמה מעבירה להם בעלות על אלסקה באותה ההזדמנות. זה יהיה זיוף באותה המידה.

לקבצי PDF יש סטנדרט  שמסביר איך חתימה צריכה להראות ודוגמה למסמך חתום ניתן לקבל כאן.

כאשר מקבלים מסמך שנושא את ה"חותמת דיגיטלית" אפשר לבדוק בקלות אם יש חתימה  ע"י הפעולה הבא :

user@pc:~$pdfsig SampleSignedPDFDocument.pdf 
Digital Signature Info of: SampleSignedPDFDocument.pdf
Signature #1:
  - Signer Certificate Common Name: John B Harris
  - Signing Time: Jul 16 2009 17:47:47
  - Signature Validation: Signature is Valid.
  - Certificate Validation: Certificate has Expired
אם נערוך את המסמך נראה שהחתימה נשברת :

user@pc:~$pdfsig SampleSignedPDFDocumentWithChange.pdf 
Digital Signature Info of: SampleSignedPDFDocumentWithChange.pdf
Signature #1:
  - Signer Certificate Common Name: John B Harris
  - Signing Time: Jul 16 2009 17:47:47
  - Signature Validation: Digest Mismatch.

מסמך שיקרי לעומת זאת יתן :
user@pc:~$
pdfsig stupid_site_cant_handle_signatures.pdf 
File 'stupid_site_cant_handle_signatures.pdf' does not contain any signatures


ישנם מקרים בהם poppler לא יזהוא חותמת דיגילית על המסמך, ויש לנסות לבדוק עם Adobe Acrobat Reader אם יש זיהויי חתימה תקין בקובץ. אני יודע שזה לא תוכנה חופשית אבל עדיף להיות חכם מאשר צודק במקרה הזה.

בעבר הלא רחוק, כמעט כל תוכנת עריכה תמכה ב חתימה (libre  ,  cacert) אז אם היום מקבלים מסמך שטוען כי הוא "חתום דיגיטלית" ואין בפנים חתימה שpdfsig או gpg ( או אקרובט רידר ) מזהים המסמך פשוט משקר.

לצערי חלק מהתוכנות איתן אני פותח את  ה PDF לא נתנו לי מידע פשוט בצורה טובה למה שחתום ומה לא ומה.

מע שעשו את העבודה אצלי היו:

LibreOffice-Writer - מציג את החתימה בצורה ברורה, מציג מידע על החתימה עצמה , כאשר המסמך נערך מעיף את הטענה כאילו המסמך חתום.

ואלו שכשלו :

אני מצפה שיהיה משהוא דומה להנחיות של אדובי לאיך להציג מידע על חתימה (עמוד 7 פה), רשימת התוכנות הבאה כשלו בצורות שונות לתת את המידע על מי חתם והאם החתימה אוטנטית (המסמך לא עבר שינוים לאחר החתימה):

evince  - לא מציג מידע על החתימה בצורה ברורה (מדביק את החתימה  על המסמך) - נכשל (עם שגיאה קריפטית כשהמסמך עבר עריכה) - זה טוב מאוד שהוא נכשל כי לפחות יש איזה שהיא אינדקציה למידע שעבר עריכה.



okular  - לא מציג מידע על החתימה בצורה ברורה (מדביק את החתימה על המסמך) - לא נכשל או מודיע כשהמסמך עבר עריכה

xpdf - לא מציג מידע על החתימה בצורה ברורה (מדביק את החתימה  על המסמך) -   או מודיע כשהמסמך עבר עריכה
mupdf -  לא מציג מידע על החתימה בצורה ברורה (מדביק את החתימה  על המסמך) -   או מודיע כשהמסמך עבר עריכה
scribus - לא הצליח לפתוח כלל.

והכי גרוע :

firefox Quantum  -  לא מציג מידע על החתימה כלל. למה הכי גרוע ? כי זה הדפדפן שאני משתמש בו הכי הרבה ואני בדר"כ סומך עליו פשוט לעבוד.

לדעתי עצם זה ש okular ו mupdf פשוט מציגים את החתימה על המסמך ולא מציגים בצורה ברוה את המידע במקום אחר , מאפשר למסמך להדביק תמונה שאומרת שהמסמך חתום ללא שום מידע ויזואלי שזה לא חתום באמת. אולי באמת עדיף המצב של פיירפוקס שהוא כושל טוטאלית להציג חתימה במקרה כזה.

המצב של firefox 57 פשוט בדיחה.

היום כאשר יש אפשרויות כל כך פשוטות להוסיף חתימה או לחתום על מסמך שדורש חתימה , אין הרבה תירוצים למה שהמסמך לא יהיה אוטנטי .

אין תגובות:

הוסף רשומת תגובה