שליחת דואר אלקטרוני מוצפן מאתר אינטרנט

עובד בלאס, oved@nethost.co.il

נטהוסט - שרותי אינטרנט

אפריל 2003

http://nethost.co.il/encrypted/ 

כללי

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

מפתחות

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

רכישת רכיבים ליצירת דואר אלקטרוני מאובטח

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

השיטה שאנו מציגים כאן, משתמשת בחבילת התוכנה החופשית OpenSSL.

 

S/MIME

הפרוטוקול S/MIME מאפשר שליחת דואר אלקטרוני מוצפן. ל  S/MIME יש יתרון גדול בהעברת דואר אלקטרוני מוצפן כי הוא נתמך ומוטמע  היטב בתוכנת הדואר Outlook Express (מגרסא 4 ואילך של Outlook Express). לאחר שהותקנו המפתחות המתאימים בתוכנת Outlook Express, השימוש בחתימות דיגיטליות והצפנה התואמים ל S/MIME דומה לשימוש בדואר אלקטרוני רגיל. ההודעות המתקבלות מופיעות באאוטלוק אקספרס בצורה דומה מאוד להודעה רגילה שאינה מוצפנת, מלבד סימון של חותם או מנעול בחלון ההודעה.

OpenSSL

חבילה תוכנה חופשית (http://www.openssl.org) המאפשרת לבצע את הפעולות הקשורות בהצפנה ופיענוח. החבילה מאפשרת ביצוע הפעולות הדרושות לשליחת דואר אלקטרוני ב S/MIME. גירסא של OpenSSL ל Windows אפשר להוריד מ: http://www.openssl.org/related/binaries.html

אנו מניחים שהתקנתם את החבילה בספרייה: c:\OpenSSL

יצירת המפתחות הדרושים

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

 

נייצר את המפתחות באמצעות פקודות של OpenSSL. פיתחו חלון Command Prompt.

 

(בדוגמאות כאן אנו מניחים שהוספתם את הספריה C:\OpenSSL\Bin ל Path ולכן פקודות openssl פועלות ללא צורך לרשום את מיקומם השלם של הקבצים. אם אינכם מעוניינים להוסיף את C:\OpenSSL\Bin ל Path, רישמו את המיקןם המלא של openssl כדי להריץ את הפקודה, לדוגמא: C:\openssl\bin\openssl)

 

נייצר מפתח הצפנה פרטי עבור אתר האינטרנט:

כדי לייצר קובץ מפתח הצפנה פרטי website_key.pem עם מפתח פרטי חדש:

 

 

openssl genrsa -out website_key.pem

 

מהמפתח הפרטי נייצר סרטיפיקט (סרטיפיקט הוא המפתח הציבורי שלנו, חתום באופן דיגיטלי על ידי רשות סרטיפיקטים מוכרת ומקובלת). מכיוון שלא חשוב לנו לחתום באופן דיגיטלי על ההודעות אלא רק, שההודעות יעברו ברשת האינטרנט כשהן מוצפנות, לא נשתמש ברשות סרטיפיקטים מוכרת (כמו VeriSign או Thawte). נייצר את הסרטיפיקט, website_cert.pem בעצמנו (מאושר על ידינו בלבד):

C:\OpenSSL\mykeys>openssl req -new -x509 -key website_key.pem -out website_cert.pem -config c:\openssl\bin\openssl.cnf.cnf  -days 1095

You are about to be asked to enter information that will be incorporated

into your certificate request.

What you are about to enter is what is called a Distinguished Name or a DN.

There are quite a few fields but you can leave some blank

For some fields there will be a default value,

If you enter '.', the field will be left blank.

-----

Country Name (2 letter code) [AU]:IL

State or Province Name (full name) [Some-State]:Tel Aviv

Locality Name (eg, city) []:Tel Aviv

Organization Name (eg, company) [Internet Widgits Pty Ltd]:our-website.com

Organizational Unit Name (eg, section) []:Company

Common Name (eg, YOUR name) []:our-website.com

Email Address []:info@website.com

 

עתה יש בידנו שני קבצי טקסט רגילים, קובץ המפתח הפרטי והסרטיפיקט. נחבר אותם לקובץ אחד, קובץ הזהות הדיגיטלית:

 

copy website_key.pem + website_cert.pem website_id.pem

 

קובץ הטקסט שנוצר מכיל בתחילתו את המפתח הפרטי ואחר כך את הסרטיפיקט:

-----BEGIN RSA PRIVATE KEY-----

-----END RSA PRIVATE KEY-----

-----BEGIN CERTIFICATE-----

-----END CERTIFICATE-----

 

נמיר את הקובץ לפורמט המשמש את Outlook Express:

C:\OpenSSL\mykeys>openssl pkcs12 -export -in website_id.pem -out website_id_outlook.p12 -name "our-website.com Certificate"

Loading 'screen' into random state - done

Enter Export Password:

Verifying - Enter Export Password:

 

הקובץ שנוצר website_id_outlook.p12, הוא קובץ המכיל את מה שמכונה על ידי אאוטלוק  Digital ID.  הקובץ מוגן בססמא, שנדרשנו לספק בעת ההמרה. נשתמש בססמא הזו בעת יבוא ה Digital ID ל Outlook Express

 

את הקובץ שיצרנו, נעביר למנהלי האתר (או כל מי שאנו מעוניינים שתהיה לו אפשרות לקרוא את הדואר האלקטרוני המוצפן).

 

על מקבלי הקובץ לייבא את הקובץ לתוך תוכנת Outlook Express המותקנת במחשביהם, בהתאם להסבר שלהלן.

 

אופן התקנת ה Digital ID  של האתר בתוכנת Outlook Express

 

לצורך יבוא ה Digital ID הרשומה בקובץ website_id_outlook.p12, לתוכנת Outlook Express, דרושים לנו הקובץ והססמא ששימשה בעת יצירתו.

 

ב Outlook Express, ניגש ל Tools-Options ונבחר בלשונית ה Security. יופיע המסך הבא

 

 

 

נלחץ על הכפתור Digital IDs…. ונבחר Import במסך שיופיע:

נלחץ Next ונבחר את קובץ ה p12 שהועבר אלינו. נרשום את הססמא ששימשה בעת יצירת הקובץ:

 

 

במסכים הבאים נקבל את האופציות שמציע לנו Outlook Express, על ידי לחיצה על Next.

 

בסיום התהליך נוכל לראות את הזהות הדיגיטלית שהותקנה (שמה בדוגמא our-website.com):

 

נלחץ Close לסיום. עתה אנו מוכנים לקבל דואר אלקטרוני ב Outlook Express אשר הוצפן על ידי המפתח website_key.pem.

 

שליחת דואר אלקטרוני מוצפן מתוך האתר

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

נעתיק את הקובץ website_cert.pem  (ואותו בלבד) שיצרנו קודם על מחשבנו הפרטי, לשרת האינטרנט לדוגמא, לתת ספריה keys.

חבילת התוכנה החופשית OpenSSL כולל תוכנית לשליחת הודעות דואר אלקטרוני מוצפנות מ Command Prompt. כדי לשלוח דואר אלקטרוני מוצפן, נריץ את openssl מתוך ASP.

 

דוגמא לפקודת openssl המייצרת דואר מוצפן:

openssl smime -encrypt -in msg.txt -text -rc2-128 -out enc.eml website_cert.pem

הפקודה מייצרת קובץ דואר אלקטרוני enc.eml מוצפן באלגוריתם RC2, 128 Bit. תוכן ההודעה רשום בקובץ msg.txt. כדי לשלוח את הודעה יש להוסיף להוסיף לה Headers המציינים למי ההודעה מיועדת ולהעבירה לשרת SMTP.

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

<!--#INCLUDE FILE="send_enc_functions.asp"-->
<html>
<body>
<%

.

.


SendEncryptedEmail FromAddress,ToAddress,Subject,html,CertFileVirtualLocation
%>
</body>
</html>

 

הדוגמא וקובץ להורדה נמצאים כאן:

http://nethost.co.il/encrypted/ 

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

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

שליחת הודעות מוצפנות בעברית

כדי שההודעה המוצפנת, תגיע לנמען בעברית יש להקפיד על Headers בהודעת הדואר המציינים שפה עברית. בקבצי הדוגמא המצורפים, יש קובץ ששמו mime_template.eml סקריפט ה ASP המייצר את הדואר האלקטרוני המוצפן משתמש בקובץ זה כ Template ליצירת ההודעה הסופית. יש לדאוג שבקובץ הזה מופיע ה Charset הנכון. בדוגמא, קיים קובץ מוכן לטיפול בהודעות בעברית hebrew_mime_template.eml.

העתיקו קובץ זה על mime_template.eml כדי שההודעות יישלחו בעברית.

לשליחת הודעות בשפות אחרות יש לערוך את הקובץ mime_template.eml ולשנות את שורת ה Charset ל Charset המתאים לאותה שפה.