<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>fadvisor.net/blog &#187; HTTPS</title>
	<atom:link href="http://fadvisor.net/blog/tag/https/feed/" rel="self" type="application/rss+xml" />
	<link>http://fadvisor.net/blog</link>
	<description>Fahad Alduraibi Blog</description>
	<lastBuildDate>Tue, 29 Nov 2011 22:28:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>كيف يعمل التشفير في الانترنت SSL؟</title>
		<link>http://fadvisor.net/blog/2009/03/how-ssl-works/</link>
		<comments>http://fadvisor.net/blog/2009/03/how-ssl-works/#comments</comments>
		<pubDate>Tue, 10 Mar 2009 05:15:19 +0000</pubDate>
		<dc:creator>فهد الدريبي</dc:creator>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[HTTPS]]></category>
		<category><![CDATA[SSL]]></category>
		<category><![CDATA[أمن المعلومات]]></category>

		<guid isPermaLink="false">http://fadvisor.net/blog/?p=116</guid>
		<description><![CDATA[هذا الموضوع سيكون شرح مبسط عن طريقة عمل Secure Socket Layer او SSL المستخدمة في مواقع الانترنت المشفرة والتي يبدأ عنوانها بـ https. سبب حديثي عن هذا الموضوع هو اهميته واعجابي به وبطريقة عمله وهي ما سوف اتحدث عنها الان. أولا يوفر نظام SSL ثلاث خصائص: تشفير البيانات المرسلة عبر الانترنت بحيث لا يستطيع احد [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;" dir="rtl">هذا الموضوع سيكون شرح مبسط عن طريقة عمل Secure Socket Layer او SSL المستخدمة في مواقع الانترنت المشفرة والتي يبدأ عنوانها بـ https.<br />
سبب حديثي عن هذا الموضوع هو اهميته واعجابي به وبطريقة عمله وهي ما سوف اتحدث عنها الان.</p>
<p dir="rtl">أولا يوفر نظام SSL ثلاث خصائص:</p>
<ol style="text-align: justify;" dir="rtl">
<li>تشفير البيانات المرسلة عبر الانترنت بحيث لا يستطيع احد فهم محتواها غير المرسل والمستقبل الرسمي Confidentiality.</li>
<li>حماية البيانات المرسلة من العبث او التعديل قبل وصولها للمستقبل Integrity.</li>
<li>التأكد من هوية المرسل حتى يتسنى للمستقبل تحديد اذا كانت البيانات مرسلة من جهه صحيحه او لا Authentication.</li>
</ol>
<p dir="rtl">سوف اقوم في حديثي هذا بشرح الخاصية رقم 1 وترك باقي الخصائص لموضوع قادم ان تيسر الوقت.<span id="more-116"></span></p>
<p dir="rtl">يستخدم هذا النظام ثلاث انواع من الشفير:</p>
<ol style="text-align: justify;" dir="rtl">
<li>تشفير تثائي الاتجاه: يعتبر هذا اقدم سبل التشفير المعروفة وحاليا يعتبر تشفير AES هو التشفير المتفق عليه عالميا ويتميز بسرعته وقوته. وطريقة عمله تعتمد على اختيار مفتاح سري (Secret Key) من عدة احرف يتفق علية المرسل والمستقبل بشرط ان يكون طويل وصعب التخمين فيقوم المرسل باستخدام المفتاح السري لتشفير البيانات (Encryption) قبل ارسالها ثم يقوم المستقبل باستخدام نفس المفتاح لعكس عملية التشفير واستخراج البيانات (Decryption) الاصلية ولهذا يسمى ثنائي الاتجاه ويسمى كذلك بالتشفير التماثلي (Symmetric key cryptography). من الامثلة المشهورة لهذا النوع: DES و AES و RC4 <br class="spacer_" /><br />
<table style="text-align: center;" border="0" cellspacing="0" align="center">
<tbody>
<tr>
<td style="border: 1px solid #000000; background-color: #d8fc7d;">النص الاصلي<br />
Plain text</td>
<td><span style="font-size: medium;">← + →</span></td>
<td style="border: 1px solid #000000; background-color: #f9bdc1;">المفتاح السري<br />
Secret Key</td>
</tr>
<tr>
<td></td>
<td><span style="font-size: medium;">↓</span></td>
<td></td>
</tr>
<tr>
<td></td>
<td style="border: 1px solid #000000; background-color: #bab8f3;">النص المشفر<br />
Cipher text</td>
<td></td>
</tr>
<tr>
<td></td>
<td><span style="font-size: medium;">↓</span></td>
<td></td>
</tr>
<tr>
<td style="border: 1px solid #000000; background-color: #f9bdc1;">المفتاح السري<br />
Secret Key</td>
<td><span style="font-size: medium;">← + ← </span></td>
<td style="border: 1px solid #000000; background-color: #d8fc7d;">النص الاصلي<br />
Plain text</td>
</tr>
</tbody>
</table>
<p><br class="spacer_" /></li>
<li dir="rtl">تشفير احادي الاتجاه (Hashing): وهو يعتبر نوع خاص من انواع التشفير حيث انه يقوم بتحويل البيانات الى شفرة غير مفهومة وتكون ذات حجم ثابت غالبا، ولكن من الصعب عكس العملية والتوصل الى البيانات الاصلية، كما يجب (قدر الامكان) ان لا توجد بيانات عند تشفيرها تعطي نتيجة مشابهة لشفرة بيانات اخرى. ومن الامثلة: MD5 و SHA<br />
مثال على ما تم الحديث عنه: <br class="spacer_" /></p>
<p><br class="spacer_" /></p>
<table border="1" cellspacing="0" align="center">
<tbody>
<tr>
<td style="text-align: center;">النص الاصلي</td>
<td style="text-align: center;"></td>
<td style="text-align: center;">الشفرة (Hash)</td>
</tr>
<tr>
<td style="text-align: center;">أي نص مشفر او غير مشفر ومهما كان حجمة<br />
Any clear text or encrypted text of any size</td>
<td style="text-align: center;"><span style="font-size: medium;">←</span></td>
<td style="text-align: center;"><span style="font-family: courier new,courier;">a0dfa73889a0a38a884c483ef4f870b1</span></td>
</tr>
<tr>
<td style="text-align: center;">أي نص اخر مغاير سواء في الحجم او المحتوى ولو بفرق بسيط جدا<br />
Any different text in size or content even with small changes</td>
<td style="text-align: center;"><span style="font-size: medium;">←</span></td>
<td style="text-align: center;"><span style="font-family: courier new,courier;">195903a5b0c33a81c10f1692fd5091ee</span></td>
</tr>
</tbody>
</table>
<p><br class="spacer_" /></li>
<li dir="rtl">تشفير المفتاح العام والخاص (Public-key cryptography): ويسمى ايضا التشفير الغير متماثل (Asymmetric key cryptography) اذ يعتمد هذا النوع من الشفير على وجود مفتاحين مختلفين تماما يستخدم احدهما للتشفير ويستخدم  الاخر لفك التشفير (او العكس) ولكن لايمكن استخدام نفس المفتاح لكلا العمليتنين. ومن الامثلة: RSA و Diffie-Hellman.<br class="spacer_" /><br />
<table style="text-align: center;" border="0" cellspacing="0" align="center">
<tbody>
<tr>
<td style="border: 1px solid #000000; background-color: #d8fc7d;">النص الاصلي<br />
Plain text</td>
<td><span style="font-size: medium;">← + →</span></td>
<td style="border: 1px solid #000000; background-color: #fbd4d7;">المفتاح الخاص<br />
Private Key</td>
</tr>
<tr>
<td></td>
<td><span style="font-size: medium;">↓</span></td>
<td></td>
</tr>
<tr>
<td></td>
<td style="border: 1px solid #000000; background-color: #bab8f3;">النص المشفر<br />
Cipher text</td>
<td></td>
</tr>
<tr>
<td></td>
<td><span style="font-size: medium;">↓</span></td>
<td></td>
</tr>
<tr>
<td style="border: 1px solid #000000; background-color: #ea858f;">المفتاح العام<br />
Public Key</td>
<td><span style="font-size: medium;">← + ← </span></td>
<td style="border: 1px solid #000000; background-color: #d8fc7d;">النص الاصلي<br />
Plain text</td>
</tr>
</tbody>
</table>
</li>
</ol>
<p style="text-align: justify;" dir="rtl">بعد هذا الشرح المبسط للتقنيات المستخدمة سوف اتحدث عن طريقة عملها مجتمعة في نظام SSL اذ ان كل واحد منها لا يستطيع اداء المهمة بالشكل المطلوب لوحدة. فعلى سبيل المثال لو تحدثت عن التشفير ثنائي الاتجاة (مثلا AES) فان هذا التشفير هو المستخدم في كثير من الانظمة لانه سريع وقوي ولكن تكمن مشكلتة في ان المفتاح السري يجب ان يكون معلوماُ لدي الطرفين المعنيين بالارسال (المرسل والمستقبل) فاذا كنت تود ارسال رسالة مشفرة لزميل عن كريق الانترنت فيجب عليك مسبقا ابلاغة بالمفتاح السري لكي يتمكن من فك التشفير ولكن يجب عمل ذلك بطريق آمن اذ لو تم ارسال المفتاح عن طريق الانترنت فان اي متجسس سوف يحصل علية ويستمكن من فك التشفير. ففي السابق كانت طريقة تبادل المفتاح السري هي باستخدام وسيلة اتصال اخري غير الانترنت واكثر امنا كأن يتم التقابل شخصيا والاتفاق على رقم سري او عن طريق الهاتف&#8230;.الخ لكن هذا الخيار غير ممكن في جميع الاحوال وصعب التطبيق، ففي الحرب العالمية الثانية كانت المانيا تزود جيشها بقائمة من المفاتيح السرية بحيث يتم استخدام كل مفتاح لمدة زمنية معينه ثم يتم الانتقال للمفتاح الذي يليه، تكمن المشكلة في هذه الطريقة صعوبة تغيير القائمة في حال تم الوصول اليها من العدو وهو ماحصل بالفعل عندما تمكن الحلفاء من اختطاف غواصة والحصول على قائمة المفاتيح السرية منها.<br />
جاء الحل لهذة المشكلة مع اكتشاف تقنية تشفير المفتاح العام والخاص ففي هذه التقنية يقوم الشخص المعني باستقبال الرسالة بانشاء مفتاحين (باستخدام عملية حسابية تعتمد على ايجاد ارقام اولية كبيره جدا) يستحدم احدهما للتشفير ويسمى المفتاح العام والاخر لفك ذلك التشفير ويسمى المفتاح الخاص. فاذا اردت انا استقبال رسالة سرية منك فكل ما علي عملة هو انشاء هذين المفتاحين ثم اقوم بالاحتفاظ بالمفتاح الخاص ووضع المفتاح العام في مكان يسهل عليك الوصول اليه (اما ان ارسلة اليك او اضعه في صفحة في الانترنت) ولا يهم اذا تمكن شخص غيرك من الحصول عليه، ثم بعد ذلك تقوم انت باستخدام ذلك المفتاح (المفتاح العام) لتشفير رسالتك ثم ارسالها الي وفي هذه الحالة لايمكن فك ذلك التشفير إلا باستخدام المفتاح الخاص الموجود لدي وحدي ولا يمكن استخدام المفتاح العام لعمل ذلك. (ارجو ان يكون الشرح واضح ولا اكون لخبطتكم  <img src='http://fadvisor.net/blog/wp-content/plugins/smilies-themer/Nomicons v2.0/wink.png' alt=':wink:' class='wp-smiley' /> )</p>
<p style="text-align: justify;" dir="rtl">المشكلة الموجودة حاليا في تقنية تشفير المفتاح العام هي كون العملية معقدة وتستغرق وقتا طويلا وطاقة حسابية من اجهزة الحاسب والشبكات فيصعب استخدامها في تشفير بيانات كثيرة وعلاوة على ذلك فانها لاتعتبر بالقوة التشفيرية التي تصل اليها تقنية التشفير التماثلي (او ثنائي الاتجاة) فلكي تحصل على تشفير تماثلي قوي تحتاج الى مفتاح سري بحجم 256 بت او اكثر اما في تشفير المفتاح العام فيجب ان يكون حجم المفتاح 1024 بت او اكثر.</p>
<p style="text-align: justify;" dir="rtl">ما هو الحل اذن؟؟ هل نستخدم التشفير التماثلي او المفتاح العام؟  <img src='http://fadvisor.net/blog/wp-content/plugins/smilies-themer/Nomicons v2.0/unsure.png' alt=':?' class='wp-smiley' /> <br />
الجواب هو باستخدامهما جميعا.   8O   كيف؟ &#8230; الطريقة ببساطة هي وكما في المثال السابقة ان اقوم بارسال مفتاحي العام لك ثم بدلا من ان تقوم انت باستخدامة لتشفير الرسالة تستخدمة لتشفير المفتاح السري الذي سنقوم باستخدامة في التشفير التماثلي، حيث تقوم انت بانشاء مفتاح (بطول 256 بت مثلا) ويكون صعب التخمين (احرف وارقام عشوائية) ثم تستخدم مفتاحي العام لتشفير ذلك المفتاح السري وارسالة لي ومن ثم اقوم انا باستخدام مفتاحي الخاص لفك التشفير والحصول على ذلك المفتاح العشوائي والذي سنستخدمة جميعا في تشفير بقية الاتصال. فبهذه الطريقة نكون استخدمنا تقنية المفتاح العام (المكلفة حسابيا والبطيء) مرة واحده فقط وبعد ذلك نكمل بقية المراسلات باستخدام التشفير التماثلي (السريع والآمن)</p>
<p style="text-align: justify;" dir="rtl">لتبسيط شرح طريقة العمل قمت بعمل هذا المثال المبسط:</p>
<p style="text-align: center;"><a href="http://fadvisor.net/blog/wp-content/uploads/2009/03/ssl.png"><img class="size-full wp-image-170" title="طريقة عمل الـ SSL" src="http://fadvisor.net/blog/wp-content/uploads/2009/03/ssl-small.png" alt="طريقة عمل الـ SSL" width="353" height="507" /></a></p>
<ol dir="rtl">
<li>يقوم المستخدم يالدخول على موقع البنك المشفر (https) او اذا استخدم الموقع العادي (http) فان البنك سيقوم يتحويلة مباشرة الى النمط المشفر.</li>
<li>يقوم البنك بارسال شهادته الرقمية المصدقة وفيها مفتاح التشفير العام.</li>
<li>يقوم متصفح الانترنت لدى المستخدم (مثلا فايرقوكس او انترنت اكسبلورر) بالتحقق من مصداقية وصلاحية تلك الشهادة واذا كانت تخص البنك او لا.</li>
<li>يقوم المتصفح بانشاء رقم سري عشوائي يكون عادته بطول 128 او 256 بت (حسب مواصفات شهادة البنك الرقمية).</li>
<li>يقوم المتصفح باستخراج المفتاح العام الموجود في شهادة البنك الرقمية ويستخدمة لتشفير الرقم السري العشوائي الذي قام بانشائه في خطوة رقم 4.</li>
<li>يقوم المتصفح بارسال الرقم السري المشفر للبنك.</li>
<li>بعد ان يصل الرقم السري المشفر للبنك يقوم البنك باستخدام مفتاحة الخاص لفك التشفير واستخراج الرقم السري.</li>
<li>في هذة اللحظة يكون لدى المستخدم والبنك رقم سري معروف لديهما فقط وصعب الكسر يتم استخدامة لتشفير بقية المعاملات البنكية بين الطرفين.</li>
</ol>
<p dir="rtl">في كل مرة يقوم المستخدم بالاتصال بالبنك تتم العملية السابقة وينشأ رقم سري جديد خاص بذلك الاتصال ولايتم استخدامة مره اخرى.</p>
<p dir="rtl">في ختام هذا الحديث اتمنى ان اكون قد وفقت في شرح الموضوع بشكل مبسط وسهل الفهم، وفي حال كانت هناك ملاحظات او استفسارات ارجو مراسلتي او التعليق على هذا الموضوع.</p>
<p dir="rtl">
]]></content:encoded>
			<wfw:commentRss>http://fadvisor.net/blog/2009/03/how-ssl-works/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
	</channel>
</rss>

