ما هو ملف PST؟
تمثل الملفات ذات الملحق .pst ملفات التخزين الشخصية في Outlook (تسمى أيضًا جدول التخزين الشخصي) التي تخزن معلومات متنوعة للمستخدم. يتم تخزين معلومات المستخدم في مجلدات من أنواع مختلفة تتضمن رسائل البريد الإلكتروني وعناصر التقويم والملاحظات وجهات الاتصال والعديد من تنسيقات الملفات الأخرى. تُستخدم ملفات PST لأرشفة بيانات البريد الإلكتروني في وضع عدم الاتصال والتي يمكن تحميلها لاحقًا وعرضها في تطبيقات مختلفة.
مواصفات تنسيق ملف PST
تنسيق ملف PST المواصفات متاح من Microsoft كترخيص براءات اختراع مجاني وغير قابل للإلغاء من خلال Open Specification Promise .
نوع تنسيقات PST
يتم تصنيف تنسيقات ملفات PST إلى نوعين بناءً على تشفير نوع الملف. ملفات PST المشفرة من ANSI هي تنسيقات ملفات أقدم ويتم دعمها بواسطة Outlook 2002 والإصدارات السابقة فقط. مثل هذه الملفات لها حد أقصى لحجم يبلغ 2 جيجا بايت (2 ^ 31 ^^ بايت) ولا تدعم Unicode. نوع تنسيق ملف أكثر حداثة ، يعتمد على ترميز Unicode ، يزيل قيود حجم الملف ويمكن أن يصل إلى أقصى حجم للبيانات وهو 50 جيجابايت.
التنظيم المنطقي لتنسيق ملف PST
في قاعدة تنسيق ملف PST ، يوجد B-Tree الذي يحتفظ بالبيانات مرتبة ويسمح بعمليات البحث والوصول المتسلسل والإدخالات والحذف وما إلى ذلك في الوقت اللوغاريتمي. يتم تنظيم الهيكل العام لملف PST في ثلاث طبقات.
Node Database (NDB) Layer
- تقع طبقة قاعدة بيانات العقدة في المستوى الأدنى من ملف PST وتتضمن قاعدة بيانات للعقد. تمثل هذه العقد في الواقع مرافق تخزين منخفضة المستوى لتنسيق ملف PST. تتكون طبقة NDB من الرأس ومعلومات تخصيص الملف والكتل و BTrees (Node BTree و Block BTree) من وجهة نظر التخزين. يتم ربط العقد والكتل الخاصة بطبقة NDB عبر Data BID والتي تعد واحدة من الخصائص الأربع لمرجع العقدة مثل NID (معرف العقدة) و NID الأصلي و Data BID (Block BID) و SubNode BID.
“القوائم والجداول والخصائص Layer -` توفر طبقة LTP الفهم المنطقي لمفاهيم المستوى الأعلى أعلى NDB. إلى جانب العناصر الأخرى ، تتكون طبقة LTP بشكل أساسي من سياق الخاصية (PC) وسياق الجدول (TC). الكمبيوتر الشخصي عبارة عن مجموعة من الخصائص ، بينما يمثل TC مصفوفة ثنائية الأبعاد لمجموعة الخصائص مقابل وجودها. التنفيذ الفعال لأجهزة الكمبيوتر الشخصية و TCs ، تستخدم طبقة LTP التالية نوعين من هياكل البيانات أعلى عقدة NDB:
- Heap On Node (HN) - يتيح التخصيص الفرعي لتدفق البيانات للعقدة إلى أجزاء صغيرة متغيرة الحجم.
- BTree on Heap (BTH) - يوفر BTH طريقة مريحة وعملية للبحث من خلال أجهزة كمبيوتر البيانات ، الموضحة أعلاه ، ويتم تنفيذها على أنها BTHs ولهذا السبب يتم تنفيذها من خلال البناء داخل بنية HN.
“طبقة الرسائل -” يتم تنفيذ قواعد المستوى الأعلى ومنطق الأعمال للعمل مع ملفات PST في هذه الطبقة. ينتج الناتج المنطقي لهذه الطبقة ككائنات مجلد وكائنات رسالة وكائنات مرفقات وخصائص والتي أصبحت ممكنة من خلال الجمع بين طبقات LTP و NDB. القواعد والمتطلبات ، التي يجب اتباعها عند تعديل محتويات PST ، محددة أيضًا في هذه الطبقة.
التنظيم المادي لتنسيق ملف PST
مستوى عالٍ من تنظيم ملف PST كما هو موضح في الشكل أدناه. هذه مجرد نظرة عامة على مفاهيم مختلفة من العناصر المنطقية لملف PST.
معلومات رأس PST
توجد بنية HEADER لملف PST في بداية الملف عند 0 إزاحة. يحتوي على معلومات البيانات الوصفية حول ملف PST ومعلومات ROOT للوصول إلى هياكل بيانات طبقة NDB الموضحة أعلاه. تختلف بنية HEADER بالنسبة لإصدارات Unicode و ANSI من تنسيق ملف PST.
يبدأ الرأس بكلمة سحرية من 4 بايت **! BDN ** ممثلة بالبايتات (0x21 ، 0x42 ، 0x44 ، 0x4E). يوجد رقم سحري آخر من 2 بايت ، ** SM ** (0x53 ، 0x4D) ، عند الإزاحة 8 من بداية الملف. معلومات الإصدار (ANSI أو Unicode) تقع في إزاحة 10 من بداية الملف. تحدد القيمة السداسية (0x17) ملف Unicode PST بينما يمثل 0x0E أو 0x0F تنسيق ملف ANSI.
الحقل | الوصف |
---|---|
dwMagic (4 بايت) | يجب أن يكون “{0x21، 0x42، 0x44، 0x4E} (”! BDN “)” |
dwCRCPartial (4 بايت) | قيمة CRC 32 بت لـ 471 بايت من البيانات بدءًا من wMagicClient (0ffset 0x0008) |
wMagicClient (2 بايت) | يجب أن يكون “{0x53، 0x4D}”. |
wVer (2 بايت) | إصدار تنسيق الملف. يجب أن تكون هذه القيمة 14 أو 15 إذا كان الملف عبارة عن ملف ANSI PST ، ويجب أن تكون 23 إذا كان الملف هو ملف Unicode PST. |
wVerClient (2 بايت) | إصدار تنسيق ملف العميل. الإصدار الذي يتوافق مع التنسيق الموضح في هذا المستند هو 19. يجب على منشئو ملف PST جديد بناءً على هذا المستند تهيئة هذه القيمة إلى 19. |
bPlatformCreate (1 بايت) | يجب تعيين هذه القيمة على 0x01. |
bPlatformAccess (1 بايت) | يجب تعيين هذه القيمة إلى 0x01. |
dw محفوظة (8 بايت) | |
bidUnused (8 بايت Unicode فقط) | تمت إضافة حشوة غير مستخدمة عند إنشاء تنسيق ملف Unicode PST. |
bidNextP (Unicode: 8 بايت ؛ ANSI: 4 بايت) | الصفحة التالية BID. تحتوي الصفحات على عداد خاص لتخصيص قيم مؤشر العطاءات. يتم تخصيص قيمة bidIndex لصفحات BID من هذا العداد. |
bidNextB (4 بايت ANSI فقط): | BID التالي. هذه القيمة هي العداد الرتيب الذي يشير إلى تعيين BID للكتلة المخصصة التالية. تتقدم قيم BID بزيادات قدرها 4. لمزيد من التفاصيل ، انظر القسم 2.2.2.2. |
dwUnique (4 بايت) | هذه قيمة تتزايد بشكل رتيب ويتم تعديلها في كل مرة يتم فيها تعديل بنية HEADER لملف PST. وظيفة هذه القيمة هي توفير قيمة فريدة ، والتأكد من أن HEADER CRCs مختلفة بعد كل تعديل في الرأس. |
rgnid [](128 بايت) | مصفوفة ثابتة من 32 NID ، كل منها يتوافق مع واحد من 32 NID_TYPEs الممكنة (NID_TYPE ، NID_TYPE_NORMAL_FOLDER ، NID_TYPE_SEARCH_FOLDER ، NID_TYPE_NORMAL_MESSAGE ، NID_TYPE_ASSOC_MESSAGE) |
qwUnused (8 بايت) | مساحة غير مستخدمة ؛ يجب ضبطه على الصفر. تنسيق ملف Unicode PST فقط. |
الجذر (Unicode: 72 بايت ؛ ANSI: 40 بايت) | بنية الجذر (القسم 2.2.2.5). |
dwAlign (4 بايت) | بايت محاذاة غير مستخدمة ؛ يجب ضبطه على الصفر. تنسيق ملف Unicode PST فقط. |
rgbFM (128 بايت) | إيقاف FMap. لم يعد هذا مستخدمًا ويجب ملؤه بـ 0xFF. يجب على القراء تجاهل قيمة هذه البايتات. |
rgbFP (128 بايت) | FPMap موقوف. لم يعد هذا مستخدمًا ويجب ملؤه بـ 0xFF. يجب على القراء تجاهل قيمة هذه البايتات. |
bSentinel (1 بايت) | يجب تعيينه على 0x80. |
bCryptMethod (1 بايت) | يشير إلى كيفية تشفير البيانات داخل ملف PST. يجب تعيينها على إحدى القيم المحددة مسبقًا (NDB_CRYPT_NONE ، NDB_CRYPT_PERMUTE ، NDB_CRYPT_CYCLIC). |
rgb محفوظة (2 بايت) | محجوز؛ يجب ضبطه على الصفر. |
bidNextB (8 بايت) | يشير إلى قيمة BID التالية المتوفرة. تنسيق ملف Unicode PST فقط. |
bidNextB (Unicode فقط: 8 بايت) | BID التالي. هذه القيمة هي العداد الرتيب الذي يشير إلى تعيين BID للكتلة المخصصة التالية. تتقدم قيم BID بزيادات قدرها 4. لمزيد من التفاصيل ، انظر القسم 2.2.2.2. |
dwCRCFull (4 بايت) | قيمة CRC 32 بت لـ 516 بايت من البيانات بدءًا من wMagicClient إلى bidNextB ، ضمناً. تنسيق ملف Unicode PST فقط. |
محجوز (8 بايت) | محجوز ؛ يجب ضبطه على الصفر. تنسيق ملف ANSI PST فقط. |
dw محجوز (4 بايت) | محجوز ؛ يجب ضبطه على الصفر. تنسيق ملف ANSI PST فقط. |
rgbReserved2 (3 بايت) | |
ب محفوظة (1 بايت) | |
rgbReserved3 (32 بايت) |
حماية البيانات
للأمان ، يمكن أيضًا أن تكون ملفات PST محمية بكلمة مرور والتي تتطلب تطبيق التحميل لتطبيق كلمة المرور قبل التمكن من عرضها. يتم تخزين كلمة المرور المطبقة على ملف PST في مخزن الرسائل. ومع ذلك ، لا يوفر هذا حماية قوية للبيانات حيث يمكن إزالة كلمة المرور بواسطة الأدوات المتاحة. أيضًا ، لا يتم استخدام كلمة المرور المحددة من قبل المستخدم كجزء من مفتاح لتشفير وفك تشفير خوارزميات التشفير. وبالتالي ، لا توجد فائدة من حماية البيانات التي يمكن الوصول إليها من قبل الأطراف غير المصرح لها. تخزين كلمة المرور كتجزئة CRC-32 للسلسلة الأصلية يجعلها أيضًا طريقة ضعيفة لأمن البيانات ضد نهج القوة الغاشمة.