معهد ماساتشوستس للتكنولوجيا. محاضرة رقم 6.858. "أمن أنظمة الكمبيوتر." نيكولاي زيلدوفيتش ، جيمس ميكنز. 2014 سنة
أمان أنظمة الكمبيوتر هي دورة حول تطوير وتنفيذ أنظمة الكمبيوتر الآمنة. تغطي المحاضرات نماذج التهديد ، والهجمات التي تهدد الأمن ، وتقنيات الأمان بناءً على العمل العلمي الحديث. تشمل الموضوعات أمان نظام التشغيل (OS) ، والميزات ، وإدارة تدفق المعلومات ، وأمان اللغة ، وبروتوكولات الشبكة ، وأمان الأجهزة ، وأمان تطبيقات الويب.
المحاضرة 1: "مقدمة: نماذج التهديد"
الجزء 1 /
الجزء 2 /
الجزء 3المحاضرة 2: "السيطرة على هجمات القراصنة"
الجزء 1 /
الجزء 2 /
الجزء 3المحاضرة 3: "تجاوزات العازلة: المآثر والحماية"
الجزء 1 /
الجزء 2 /
الجزء 3المحاضرة 4: "فصل الامتيازات"
الجزء 1 /
الجزء 2 /
الجزء 3المحاضرة 5: "من أين تأتي أنظمة الأمن؟"
الجزء 1 /
الجزء 2المحاضرة 6: "الفرص"
الجزء 1 /
الجزء 2 /
الجزء 3المحاضرة 7: "وضع حماية العميل الأصلي"
الجزء 1 /
الجزء 2 /
الجزء 3 سنتحدث اليوم عن نظام يسمى
Native Client ، والذي تستخدمه
Google في العالم الحقيقي. إنها تقنية رمل لتشغيل التعليمات البرمجية على منصات مختلفة. يتم استخدامه في
متصفح Chrome ، مما يسمح لتطبيقات الويب بتشغيل كود الجهاز التعسفي. هذا في الواقع نظام رائع. كما يوضح أيضًا إمكانات العزل ووضع حماية مميز أو تقنية فصل امتيازات تسمى
عزل أخطاء البرامج ، أو
عزل أخطاء البرامج ، دون استخدام نظام التشغيل أو الجهاز الظاهري لإنشاء وضع الحماية.

بدلاً من ذلك ، يتخذ
Native Client نهجًا مختلفًا تمامًا للنظر في إرشادات محددة في ملف ثنائي لمعرفة ما إذا كان تشغيله آمنًا أم لا. لذلك ، قبل أن نبدأ في دراسة التفاصيل الفنية للنظام ، دعنا نكتشف لماذا يريد هؤلاء الأشخاص حقًا تشغيل رمز الجهاز؟ يتمثل اهتمامهم المحدد في تطبيق هذا الحل في متصفح الويب ، حيث يمكنك بالفعل تشغيل
تعليمات JavaScript البرمجية ، و
Flash Player وبعض العمليات الأخرى. لماذا هؤلاء الرجال متحمسون جدًا للقدرة على تشغيل التعليمات البرمجية على منصة
x86 ؟ بعد كل شيء ، يبدو أن هذه خطوة إلى الوراء.
الجمهور: يريدون الحصول على حسابات سريعة جدًا.
الأستاذ: نعم ، هذه ميزة كبيرة لكود الآلة. حتى إذا كانت غير آمنة على المدى الطويل ، فإنها توفر أداءً عاليًا. كل شيء لن تفعله في
جافا سكريبت ، على سبيل المثال ، كتابة برنامج وتجميعه ، سيعمل حقًا بشكل أسرع. هل هناك أسباب أخرى؟
الجمهور: تشغيل التعليمات البرمجية الموجودة؟
الأستاذ: حق. من المهم أنه لا يمكن كتابة كل شيء في
جافا سكريبت . لذا ، إذا كان لديك تطبيق موجود بالفعل ، أو ، في مصطلحات الصناعة ، كود "موروث" تنوي تشغيله على الإنترنت ، يبدو أن هذا حل رائع. نظرًا لأنه يمكنك فقط أخذ مكتبة موجودة ، على سبيل المثال ، نوع من "محرك" رسومي معقد يكون حساسًا للأداء والعديد من الأشياء المعقدة الأخرى التي لا تريد إعادة تنفيذها ، وسيكون هذا حلاً جيدًا.
إذا كنت تقوم فقط ببرمجة تطبيق ويب جديد ، هل يجب عليك استخدام عميلك الخاص إذا لم تكن مهتمًا بشكل خاص بالميراث أو الأداء؟
الجمهور: إذن لا تحتاج إلى استخدام
جافا سكريبت .
الأستاذ: نعم ، هذا سبب وجيه. إذا كنت لا تحب
جافا سكريبت ، فأنت لست بحاجة إلى استخدامه ، أليس كذلك؟ يمكنك استخدام ، على سبيل المثال ،
C ، يمكنك تشغيل كود
Python ،
وكتابته في
Haskell ، بأي لغة تعتقد أنها أكثر ملاءمة.
لذا ، فهذه قائمة مقنعة إلى حد كبير من الدافع لتشغيل التعليمات البرمجية الخاصة بك في متصفح ، ومن الصعب جدًا الحصول على حقوق لمثل هذا الإجراء. في غضون ثانية فقط ، سننظر في التفاصيل الفنية ، والآن أريد أن أريكم عرضًا تدريبيًا بسيطًا تلقيته من موقع
Native Client على الويب.

هذا أمر بسيط للغاية ، لأنه يمكنك استخدام برنامج
C ++ أو برنامج
C وتشغيله في متصفح. يمكنك إلقاء نظرة على صفحة الويب هذه ، وهي عبارة عن ملف
HTML يحتوي على مجموعة من تعليمات
JavaScript البرمجية.

سبب وجود رمز
JavaScript هذا هو أنه يسمح لك بالتفاعل مع أجزاء من
Native Client . فيما يتعلق بتشغيل المتصفح ، فإن معنى هذا الحل هو أن لديك نوعًا ما من صفحة الويب التي تحتوي على شفرة
JavaScript . ويعمل هذا الحل مع امتيازات الصفحات ويسمح لك بالقيام بأشياء مختلفة على صفحة الويب نفسها ، على سبيل المثال ، التواصل مع الشبكة في بعض الظروف.
يتيح لك
Native Client تشغيل الوحدة النمطية الخاصة بك داخل المستعرض ، بحيث يمكن أن يتفاعل رمز
JavaScript معها ويتلقى استجابة. يعرض هذا بعض
تعليمات JavaScript البرمجية التي يحتاجها
Native Client من أجل التفاعل مع وحدة
NaCl المحددة التي نحن على وشك تشغيلها.

ويمكنك إرسال رسائل إلى هذه الوحدة. كيف يتم ذلك؟ يمكنك أخذ موضوع هذه الوحدة في
JavaScript ،
وتسميتها postMessage ، وبالتالي دعم إرسال هذه الرسالة إلى وحدة
NaCl . عندما تستجيب وحدة
NaCl ، ستبدأ وظيفة الرسالة في
JavaScript . وفي هذه الحالة بالذات ، يظهر مربع حوار فقط في المتصفح.

لذلك من ناحية
JavaScript ، هذه واجهة صفحة ويب بسيطة جدًا. الشيء الوحيد الذي عليك القيام به بالإضافة إلى ذلك هو تعيين وحدة
NaCl بهذه الطريقة. بمعنى ، يمكنك ببساطة إدراج وحدة نمطية
بمعرف محدد
هنا . الأكثر إثارة للاهتمام هنا هو رمز
الترحيب بالملحق
nmf . يقول فقط أن هناك ملفًا قابلاً للتنفيذ تحتاج إلى تنزيله وبدء العمل معه في بيئة
NaCl .

هذا الرمز الأصلي يشبه حقًا أي رمز C ++ آخر يمكنك كتابته. الجزء المثير للاهتمام هو وظيفة معالجة الرسائل
HandleMessage .

هذه فئة
C ++ ، وكلما أرسل رمز
JavaScript رسالة إلى التعليمات البرمجية
الأصلية ، فإنه سيؤدي هذه الوظيفة. ينفذ الاختيار
if (message = = 'hello') . إذا كان الأمر كذلك ، فسيقوم بإنشاء نوع من خط الاستجابة وإرساله مرة أخرى. هذه اشياء بسيطة جدا ولكن بالنسبة إلى التفاصيل ، دعنا نحاول تشغيله ونرى ما سيحدث.
يمكننا بناء وتشغيل خادم ويب صغير يخدم هذه الصفحة ووحدة
Native Client النمطية. هنا يمكنني الذهاب إلى
عنوان URL هذا ، وهنا نرى صفحة الويب
NaCl . تلقت الوحدة رسالتنا الترحيبية من
جافا سكريبت ، وردت بسلسلة في
جافا سكريبت ، وأدت شفرة
جافا سكريبت إلى ظهور حوار منبثق يحتوي على هذه الاستجابة.

لذلك يعمل حقا.
حاول معرفة ما إذا كان بإمكاننا التسبب في تعطل
Native Client . آمل أن لا ، ولكن يمكننا أن نأخذ هذا الرمز وهذا المخزن المؤقت ونكتب مجموعة من الهراء فيه ، على سبيل المثال ، 65536 ونرى ما سيحدث.

آمل ألا يتسبب هذا في تعطل المتصفح لأن
العميل الأصلي يحاول توفير العزلة. لكن دعنا نرى ما سيحدث.
أعد تشغيل خادم الويب. نرى أن مدخل الوحدة لا يزال ناجحًا ، ولم يصب متصفحنا بأذى. ومع ذلك ، لم يتم المراسلة مع العميل ، لذلك فقد مربع الحوار. دعونا نلقي نظرة على وحدة تحكم
JavaScript في أسفل الصفحة ونرى أن وحدة
Native Client تخبرنا بفشل وحدة
NaCl .

من المحتمل أن الحجة التي أدخلتها تسببت في تجاوز سعة المخزن المؤقت أو الوصول إلى بعض العناوين الخاطئة ، ولكن في أي حال ، فإن وحدة
NaCl قادرة حقًا على عزل تلف الذاكرة العرضية بطريقة لا تؤثر على المتصفح.
هذا عرض سريع لهذا النظام بالشكل الذي يمكنك استخدامه كمستخدم أو مطور. دعونا نلقي نظرة على بعض الأمثلة الأخرى. على سبيل المثال ، كيف سيعمل
Native Client ، أو لماذا نحتاج فقط إلى هذا ، وليس إلى تصميم بديل.
لذلك ، إذا كان هدفك هو عزل التعليمات البرمجية الخاصة بك ، فهناك العديد من البدائل التي يمكنك القيام بذلك. في الواقع ، اعتاد الأشخاص على مواجهة مشاكل في استخدام الرمز القديم ولغات أخرى قبل ظهور
Native Client . لقد قاموا بحلها بطرق مختلفة ، والتي ربما لم تكن آمنة ومريحة مثل
Native Client ، ولكنها قدمت نفس قدرات العزل.
إذن ما الذي يجب عليك فعله إذا كنت تريد حقًا تشغيل رمز الجهاز في متصفح؟ أحد الخيارات هو الثقة في المطور. ربما يكون أحد أشكال هذا النهج هو أنك تسأل المستخدم عما إذا كان يريد تشغيل جزء من التعليمات البرمجية في متصفحه أم لا.
لذا ، يفهم الجميع تقريبًا نوع الخطة هذه ، أليس كذلك؟ على سبيل المثال ، بدلاً من كل إستراتيجية تجميع
Native Client هذه ، يمكنني فقط إنشاء برنامج
C ، وتشغيله في مستعرض ، وسيسألني إذا كنت أرغب في تشغيل هذا الموقع أم لا؟ وإذا قمت بالنقر فوق "نعم" ، "قص" عن طريق الخطأ في ذاكرة المتصفح ، فسوف يتعطل. لذا فمن الممكن ، أليس كذلك؟ هذا ، بالطبع ، يحل كل هذه المشاكل ، ولكن ما الخطأ في ذلك؟
أعتقد أن الشيء السيئ هو أن هذا الحل غير آمن. هذه طريقة للتغلب على هذا النظام والعديد من الأنظمة الأخرى.
كان لدى
Microsoft نظام يسمى
ActiveX قام بتنفيذ هذه الخطة بشكل أساسي. يمكنك إرسال الثنائيات إلى
IE ، المتصفح على جهاز الكمبيوتر الخاص بك ، وحتى تعود بشهادة من مطور معين موقّع من قبل ، على سبيل المثال ،
Microsoft أو شخص آخر ، لن يقوم المتصفح بتشغيل التعليمات البرمجية الخاصة بك. هل تعتقد أن هذه خطة مفيدة؟
الجمهور: هذه مسألة ثقة!
الأستاذ: نعم إنه كذلك. تحتاج حقًا إلى الثقة قليلاً في أن المطور سيوقع فقط على "الثنائيات" التي لن تفعل شيئًا خاطئًا. ولكن غالبًا ما يكون من المستحيل معرفة ما إذا كان هذا أمرًا سيئًا أم لا ، لذلك يقومون فقط بكتابة رمز
C وتوقيعه بشكل عمياء دون القيام بقدر كبير من العمل. في هذه الحالة ، قد تحصل على مشاكل معينة في المستقبل.
وبالمثل ، فإن قرار سؤال المستخدم عما إذا كان يريد حقًا تشغيل شيء ما لا يضمن الأمان على الإطلاق. حتى إذا أراد المستخدم توخي الحذر ، فليس من الواضح كيف يجب أن يقرر؟ لنفترض أنني أريد حقًا أن أفهم ما إذا كان يمكنني السماح لهذا البرنامج بالعمل؟ قيل لي أن كل شيء على ما يرام ، ربما تم إنشاؤه من قبل المطورين ذوي السمعة الطيبة في
Google.com أو
Microsoft.com . ومع ذلك ، هذا هو الملف القابل للتنفيذ
foo.exe وأنا
بالتأكيد لا أعرف ما بداخله. حتى لو قمت بتفكيك الكود الخاص به ، سيكون من الصعب جدًا القول ما إذا كان سيفعل شيئًا سيئًا أم لا. لذلك ، من الصعب حقًا للمستخدم أن يقرر ما إذا كان تشغيل التعليمات البرمجية آمنًا للنظام.

وبالتالي ، يمكن أن يعمل
Native Client كآلية يمكن للمستخدمين من خلالها الحصول على بعض الثقة فيما إذا كان يجب أن يقولوا نعم أو لا لبعض البرامج.
لذا في الممارسة العملية ، أعتقد ، يجب أن يكون هناك خيار اقترحه المحاضر الضيف بول يانغ الأسبوع الماضي. ونصح بتشغيل المكوّن الإضافي "
play extension " أو "تشغيل الإضافة" في
متصفح Chrome . أي ، اتضح أنه قبل بدء أي تمديد ، بما في ذلك
Native Client ، تحتاج إلى النقر فوق هذا الشيء. بطريقة ما ، هذا هو نفسه سؤال المستخدم. ولكن في هذه الحالة ، حتى إذا قرر المستخدم الإجابة بـ "نعم" ، فسيظل النظام آمنًا ، لأنه
سيتم تضمين Native Client في العمل. بهذا المعنى ، لدينا آلية أمان مزدوجة: اطلب أولاً من المستخدم ، وبعد ذلك ، مع إجابة إيجابية ، قم بتشغيل عميل وضع الحماية ، والذي لن يسمح للمتصفح بالتعطل.
وبالتالي ، هناك طريقة أخرى يجب تطبيقها هي استخدام وضع الحماية ، الذي يتم تنفيذه عن طريق نظام التشغيل أو الأجهزة ، أو لعزل العمليات. هذا ما فحصناه في آخر محاضرتين.
ربما ستستخدم آليات عزل
يونكس . إذا كان لديك شيء أكثر تعقيدًا ،
فستستخدم FreeBSD أو
Capsicum . إنه رائع لعزل جزء من التعليمات البرمجية في وضع الحماية ، لأنه يمكنك الحد من قدراته. لدى
Linux آلية مماثلة تسمى
Seccomp ، والتي تناولناها لفترة وجيزة في المحاضرة الأخيرة ، كما أنها تتيح لك القيام بمثل هذه الأشياء.
وبالتالي ، هناك بالفعل آلية لكتابة التعليمات البرمجية بمعزل عن جهازك. لماذا هؤلاء الرجال ضد استخدام هذا الحل الحالي؟ يبدو كما لو أنهم "يخترعون العجلة" لسبب ما. إذن ما الذي يحدث؟
الجمهور: ربما يريدون تقليل الأخطاء؟
الأستاذ: نعم ، بطريقة ما ، لا يثقون في نظام التشغيل. ربما هم في الواقع قلقون بشأن أخطاء نظام التشغيل. من المرجح أن نواة
FreeBSD أو نواة
Linux تحتوي على الكثير من التعليمات البرمجية
C التي لا يريدونها أو لا يمكنهم التحقق من صحتها ، حتى إذا أرادوا ذلك. وفي
Capsicum أو
Seccomp ، يتم العمل على أساس خطة العزل ، لذلك يكفي أن تحتوي النواة على قطعة صغيرة من التعليمات البرمجية المخلصة ، بحيث يحافظ صندوق الحماية على العزل ويطبقه.
الجمهور: نظرًا لأن لديك الكثير من الطرق لاستخدام المتصفحات ، يجب عليك التعامل مع أنظمة تشغيل مختلفة ، مثل iOS و Android ، والوصول ...
الأستاذ: نعم ، في الواقع ، هناك اعتبار آخر مثير للاهتمام هو أن العديد من أنظمة التشغيل عادة ما تحتوي على أخطاء. علاوة على ذلك ، في الواقع ، أنظمة التشغيل المختلفة غير متوافقة مع بعضها البعض بطريقة أو بأخرى. هذا يعني أن كل نظام تشغيل له آلية خاصة به ، كما هو موضح هنا:
Unix لديه
Capsicum ،
Linux لديه
Seccomp ، لكن هذه مجرد أشكال مختلفة من
Unix . يحتوي
Mac OS على
حزام الأمان ، و
Windows لديه شيء آخر ، وتستمر القائمة.
لذا في النهاية ، لكل منصة تعمل معها آلية عزل خاصة بها. وما لا يزعجهم حقًا هو أنهم سيضطرون إلى كتابة رمز مختلف
لنظام التشغيل Mac و
Windows و
Linux . ولكن أكثر من ذلك ، فإنه يؤثر على كيفية كتابة هذه الأشياء للعمل داخل وضع الحماية. لأنه في
Native Client ، تكتب في الواقع جزءًا من التعليمات البرمجية يتم تشغيله بنفس الطريقة التي يعمل بها رمز نظام التشغيل "الأصلي" ، بنفس الطريقة التي يتم بها تنفيذ رمز
Apple أو رمز
Windows أو رمز نظام
Linux .
وإذا كنت تستخدم آليات العزل هذه ، فإنها في الواقع تفرض قيودًا مختلفة على البرنامج الموضوع في وضع الحماية. لذا عليك كتابة برنامج واحد يتم تشغيله داخل sandbox
Linux ، وبرنامج آخر لتشغيله داخل sandbox
Windows ، وما إلى ذلك.
هذا ما هو غير مقبول لهم. إنهم لا يريدون التعامل مع مشاكل من هذا النوع. ما الاعتبارات الأخرى التي لديك؟
الجمهور: من المفترض أداء النظام. لأنه إذا كنت تستخدم
Capsicum ، فأنت بحاجة إلى الاهتمام بالموارد الكافية للتأكد من أن العمليات تعمل داخل وضع الحماية. هنا قد يواجهون نفس المشكلة.
البروفيسور: نعم هذا صحيح. إن خطة عزل أعطال البرنامج في الواقع تتطلب الكثير من الموارد ، والتي على مستوى نظام التشغيل قد تتسبب في نقص الموارد لدعم وضع الحماية. اتضح أنه في
Native Client الخاص بهم
، يستخدمون في الواقع كلاً من sandbox و sandbox OS لتوفير أمان إضافي. وبالتالي ، في الواقع ، لا يفوزون في أداء تنفيذها ، على الرغم من أنهم قد يتمكنون من ذلك.
الجمهور: ربما يريدون السيطرة على كل شيء. نظرًا لأنه يمكنهم التحكم في ما يحدث في المتصفح ، ولكن إذا أرسلوه إلى كمبيوتر العميل على نظام التشغيل ، فلن يعرفوا ما يمكن أن يحدث هناك.
البروفيسور: يمكن القول أنه نعم ، قد يحتوي نظام التشغيل على أخطاء أو لا يدير وضع الحماية بشكل جيد. أو تختلف الواجهة قليلاً ، لذا لا تعرف ما هو نظام التشغيل الذي سيكشف عنه.
الجمهور: لن يمنع هذا الكود من القيام ببعض الأشياء السيئة. هناك العديد من الأشياء التي يقوم بها الكود ، على سبيل المثال ، تريد إجراء تحليل ثابت ، لكن حلقات الكود تمنع البرنامج من التمثيل.
البروفيسور: في الواقع ، من الصعب للغاية تحديد ما إذا كانت هناك عملية متكررة لا نهائية أم لا ، ولكن من حيث المبدأ ، يسمح لك هذا النهج بالقبض على بعض مشاكل التعليمات البرمجية. أعتقد أن أحد الأمثلة المثيرة للاهتمام حقًا ، والتي لم أكن أعرف عنها حتى قرأت مقالهم ، يظهر أن هؤلاء الرجال قلقون بشأن أخطاء الأجهزة ، وليس فقط حول نقاط الضعف في نظام التشغيل التي يمكن تشغيلها بواسطة الشفرة. على سبيل المثال ، لدى المعالج نفسه بعض الإرشادات التي قد تؤدي إلى تجميد الكمبيوتر أو إعادة تشغيله. بشكل أساسي ، لا يجب أن تحتوي معداتك على مثل هذا الخطأ ، لأن نظام التشغيل يعتمد على حقيقة أن الأجهزة ستساعدها في أي حال على الوصول إلى النواة من أجل الاهتمام بالتخلص من عواقب خطأ المستخدم.
لكن اتضح أن المعالجات معقدة جدًا لدرجة أنها تحتوي على أخطاء ، ويقول هؤلاء الرجال إنهم وجدوا أدلة على ذلك. إذا كانت هناك بعض الإرشادات المعقدة التي لم يتوقع المعالج تلقيها ، فسوف تتوقف بدلاً من معالجة قلب النظام. هذا سيء. أعتقد أن هذا ليس كارثيًا إذا قمت بتشغيل بعض الأشياء المفيدة على الكمبيوتر المحمول الخاص بي ، ولكن أسوأ بكثير إذا تجمد الكمبيوتر عندما أقوم بزيارة نوع من صفحة الويب.
وبالتالي ، أرادوا إنشاء مستوى أعلى من الحماية لوحدات
Native Client من تلك التي توفر العزل على مستوى نظام التشغيل ، حتى بدون أخطاء في الأجهزة. بالنسبة للأمان ، فإنهم يتصرفون مثل الذين يعانون من جنون العظمة ، بما في ذلك مشكلة أمان الأجهزة.
دعنا الآن نرى كيف يعزل
Native Client بالفعل العمليات في وضع الحماية. وبالتالي ، يتخذ
Native Client نهجًا مختلفًا ، والذي يمكن تسميته "عزل فشل البرامج".

لا تهدف الخطة إلى الاعتماد على حقيقة أن نظام التشغيل أو المعدات ستتحقق من الأشياء أثناء تشغيل البرنامج ، ولكن الاعتماد عليها لمراجعة التعليمات مقدمًا وتحديد أنه يمكن تنفيذها بأمان تام. وبالتالي ، في الواقع ، يكفي النظر إلى الملف الثنائي للتحقق من جميع التعليمات الممكنة ومعرفة ما إذا كانت ستكون آمنة أو غير آمنة. بمجرد أن تقرر أن كل شيء سيكون آمنًا ، يمكنك ببساطة بدء العملية لأنك تعلم أنها تتكون من أشياء آمنة ولن يكون هناك أي فشل.
لذا ما سيفعلونه هو النظر إلى جميع التعليمات تقريبًا في الرمز الثنائي التي يتم إرسالها إلى المتصفح وتحديد ما إذا كانت الإرشادات المحددة آمنة أم لا.
ماذا يفعلون للحصول على تعليمات آمنة؟ هم فقط سمحوا لهم بالعمل. ما هو مثال لتعليمات آمنة؟ ربما يعتقدون أن التعليمات الآمنة لا تحتاج إلى فحوصات أو حماية إضافية.التعليمات الآمنة هي أجهزة المنطق الحسابي ALU والحسابات الرياضية والحركة بين السجلات وما إلى ذلك. في الواقع ، لا تؤثر على أمن النظام الذي يقلقهم كثيراً. لأنهم يهتمون حقًا بأشياء مثل أمان الذاكرة ، حيث تقوم بتنفيذ هذا الرمز ، وما إلى ذلك. طالما أنك تقوم ببعض الحسابات فقط ، فإنها لا تهتم ، لأن هذه الحسابات لا تؤثر على العمليات الأخرى في المتصفح.
? , , . , , , . , «» , ? .
, , , - , . «» , - . , «» , . , , , , .
, ( ) . . ,
if , , . , , – .
, , , . . , , . , , , , «» .

. , , . , , .
, , , , - , . , , , , .
Trusted Service Runtime , . .
Google . ,
NaCl .
, , , , , — , — . , .
: , ,
NaCl ? , ?
: , , ,
NaCl . ,
malloc pthread_create ,
Trusted Service Runtime . - ,
Unix , - . , ,
JavaScript -.
RPC JavaScript , .

, ,
NaCl Unix -, - , -.
. ,
Native Client . –
Native Client ?
,
Native Client . , , . , ,
x86 . , , «», .
, . , , 0 256 . , , , , .
? , ?
: , .
: , . , , . , , ? , ?
: .
: !
: -, , . .
: , . , . , , . , , ,
Trusted Service Runtime . , ,
Trusted Service Runtime , . , .
, ,
NaCl , . , 0. ,
NaCl . .
28:00
:
دورة معهد ماساتشوستس للتكنولوجيا "أمن أنظمة الكمبيوتر". 7: « Native Client», 2.
, . ? ? ,
30% entry-level , : VPS (KVM) E5-2650 v4 (6 Cores) 10GB DDR4 240GB SSD 1Gbps $20 ? ( RAID1 RAID10, 24 40GB DDR4).
3 Dell R630 —
2 Intel Deca-Core Xeon E5-2630 v4 / 128GB DDR4 / 41TB HDD 2240GB SSD / 1Gbps 10 TB — $99,33 , ,
هنا .ديل R730xd أرخص مرتين؟ فقط لدينا 2 x Intel Dodeca-Core Xeon E5-2650v4 128GB DDR4 6x480GB SSD 1Gbps 100 TV من 249 دولارًا في هولندا والولايات المتحدة! اقرأ عن كيفية بناء مبنى البنية التحتية الطبقة باستخدام خوادم Dell R730xd E5-2650 v4 بتكلفة 9000 يورو مقابل سنت واحد؟