Back home

التشفير غير المتماثل، https، مبدأ توقيع iOSAPP

التشفير غير المتماثل، https، جمع بيانات مبدأ توقيع iOSAPP

تشفير غير متماثل، https، شهادة iOS

لقد قرأت بعض الأشياء حول التشفير والشهادات وRSA وhttps من قبل، لكنني لم أفهمها بوضوح مطلقًا. أنا لا أفهمهم بوضوح شديد. سأقوم بفرزهم اليوم.

التشفير

التشفير الحالي ينقسم إلى: 对称加密算法(symmetric key algorithms) و 非对称加密算法(asymmetric key algorithms)

في 对称加密算法، المفتاح المستخدم للتشفير والمفتاح المستخدم لفك التشفير هو نفسه. وبعبارة أخرى، يتم استخدام نفس المفتاح للتشفير وفك التشفير. لذلك، إذا كانت خوارزمية التشفير المتماثل تريد ضمان الأمان، فيجب أن يظل المفتاح سريًا ولا يمكن أن يكون معروفًا إلا للشخص الذي يستخدمه ولا يمكن الكشف عنه للعالم الخارجي.

يتم تمرير 密钥، وهو عبارة عن سلسلة أو رقم بشكل عام، إلى خوارزمية التشفير/فك التشفير أثناء التشفير أو فك التشفير.

في 非对称加密算法، يختلف المفتاح المستخدم للتشفير والمفتاح المستخدم لفك التشفير.

فما هي الاختلافات بين 对称加密算法 و非对称加密算法 عند استخدامها؟ على سبيل المثال هذا السيناريو: يتواصل شياو مينغ وشياو هونغ مع بعضهما البعض، لكنهما لا يريدان أن يعرف الآخرون محتوى الرسالة. يمكن لـ Xiao Ming استخدام 对称加密算法 أو 非对称加密算法 لتشفير المحتوى. إذا تم استخدام 对称加密算法، نظرًا لأن المفتاح المستخدم للتشفير والمفتاح المستخدم لفك التشفير متماثلان، فكيف يخبر Xiao Ming Xiao Hong بالمفتاح؟ سيقول بعض الأشخاص أنه إذا قمت بإعادة تشفير كلمة المرور، فلا يزال يتعين عليك إرسال كلمة المرور، لذلك هناك دائمًا مشكلة تسرب كلمة المرور أثناء عملية الإرسال.

إذن ماذا تفعل مع 非对称加密算法؟

أولاً، يقوم Xiaohong بإنشاء المفتاح العام والمفتاح الخاص، ويحتفظ بالمفتاح الخاص، وينشر المفتاح العام. يستخدم Xiaoming المفتاح العام لتشفير محتوى الرسالة، ثم يرسل الرسالة إلى Xiaohong. نظرًا لأن Xiaohong فقط لديه المفتاح الخاص، حتى لو اعترض الآخرون محتوى الرسالة، فلن يتمكنوا من فكها.

نظرًا لأن المفتاح الخاص لا يحتاج إلى النشر، فلن يتم اعتراضه من قبل الآخرين بسبب النشر.

يظهر المفتاح العام والمفتاح الخاص في 非对称加密算法 في أزواج. المفتاح العام والمفتاح الخاص متساويان بشكل أساسي، أي أنه يتم إنشاء مفتاحين سريين a وb من خلال خوارزمية. عندما تنشر a، يصبح a هو المفتاح العام، وعندما يتم نشر b، يصبح b هو المفتاح العام. المفاتيح العامة والمفاتيح الخاصة نسبية، ولا يحدد الاثنان أيهما يجب أن يكون المفتاح العام أو المفتاح الخاص.

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

استخدامان لـ 非对称加密算法

  1. تحقيق النقل الآمن للبيانات لتحقيق النقل الآمن للبيانات، بالطبع يجب تشفير البيانات. إذا كنت تستخدم خوارزمية تشفير متماثلة وتستخدم نفس المفتاح للتشفير وفك التشفير، بالإضافة إلى حفظه بنفسك، فيجب على الطرف الآخر أيضًا معرفة هذا المفتاح لفك تشفير البيانات. إذا قمت بتمرير المفتاح معه، فهناك احتمالية لتسرب كلمة المرور. إذا استخدمنا خوارزمية غير متماثلة، فستكون العملية كما يلي:
1. أولاً، يقوم المتلقي بإنشاء زوج من المفاتيح، وهما المفتاح الخاص والمفتاح العام؛
2. بعد ذلك، يرسل المتلقي المفتاح العام إلى المرسل؛
3. يستخدم المرسل المفتاح العام المستلم لتشفير البيانات ثم يرسلها إلى المتلقي؛
4. بعد استلام البيانات، يستخدم المتلقي مفتاحه الخاص لفك تشفيرها.
نظرًا لأنه في الخوارزمية غير المتماثلة، يجب فك تشفير البيانات المشفرة بواسطة المفتاح العام باستخدام المفتاح الخاص المقابل، ولا يعرف المفتاح الخاص إلا المستلم نفسه، وبالتالي ضمان أمان نقل البيانات.
  1. قم بتوقيع المعلومات رقميا بالإضافة إلى ضمان النقل الآمن للبيانات، هناك استخدام آخر لنظام المفتاح العام وهو توقيع البيانات. عادةً ما يتم استخدام “التوقيعات الرقمية” للتحقق من هوية المرسل والمساعدة في حماية سلامة البيانات.

    على سبيل المثال: يريد المرسل “أ” إرسال بعض المعلومات إلى الجميع، ويستخدم مفتاحه الخاص لتشفير المعلومات، أي للتوقيع. بهذه الطريقة، يمكن لكل من يتلقى المعلومات استخدام المفتاح العام للمرسل للتحقق والتأكيد على أن المعلومات قد تم إرسالها بواسطة A. (لأنه فقط المعلومات التي حصل عليها A باستخدام توقيع المفتاح الخاص يمكن فك تشفيرها باستخدام هذا المفتاح العام) باستخدام التوقيعات الرقمية، يمكن تأكيد نقطتين:

    1. التأكد من أن المعلومات موقعة ومرسلة من قبل الموقع نفسه، ولا يستطيع الموقع إنكارها أو يجد صعوبة في إنكارها.
    2. يتم ضمان عدم تعديل المعلومات بأي شكل من الأشكال منذ وقت إصدارها وحتى وقت استلامها. السبب وراء إمكانية تأكيد هاتين النقطتين هو أن ما يمكن فك تشفيره بالمفتاح العام يجب تشفيره بالمفتاح الخاص المقابل، والمفتاح الخاص يحتفظ به فقط الموقع.

ملحوظة: تستخدم التوقيعات الرقمية مفاتيح خاصة، وتسمى المعلومات المشفرة بالمفاتيح الخاصة بالتوقيعات الرقمية، لأن المفاتيح الخاصة تحتفظ بها أنت فقط، وهو ما يعادل الختم الرسمي. يشبه المفتاح الخاص المستخدم للتوقيع الرقمي تمامًا الختم الفولاذي الموجود على شهادة التخرج. سيتم التعرف فقط على الشهادة ذات الختم الفولاذي على أنها أصلية.

فهل يمكنك استخدام مفتاح عام للتوقيع الرقمي؟ ونظرًا لأن المفتاح العام عام ومتاح للجميع، فليس من المنطقي استخدام المفتاح العام للتوقيعات الرقمية. وعلى العكس من ذلك، هل يمكن استخدام المفتاح الخاص لتشفير البيانات لتحقيق نقل آمن للبيانات؟ الجواب هو لا، لأن المفتاح العام عام ويمكن للجميع الحصول عليه، ويمكن للجميع فك تشفير المعلومات المشفرة بواسطة المفتاح الخاص.

دعونا ننظمها مرة أخرى: يتم إنشاء مفتاحين سريين من خلال الخوارزمية، أحدهما يصبح عامًا ويسمى بالمفتاح العام؛ أما الآخر فيحتفظ به الشخص بنفسه ويسمى بالمفتاح الخاص؛ يتم تشفير المعلومات بنفسه وإصدارها، وهو ما يسمى بالتوقيع الرقمي، لأنه لا يمكن فك تشفير سوى المفتاح العام المطابق للمفتاح الخاص (أي ما يعادل الختم الرسمي). أولئك الذين يستطيعون فك التشفير بطبيعة الحال يعرفون أنني وحدي من يستطيع إرسال هذه المعلومات، مما يضمن ناشر المعلومات.

ويستخدم آخرون المفتاح العام لتشفير المعلومات، وأنا وحدي من يستطيع فك تشفيرها، لأن لدي المفتاح الخاص، الذي يتيح النقل الآمن للبيانات.

بعد أن قلت الكثير، أتساءل عما إذا كنت تفهم العلاقة بين المفاتيح العامة والمفاتيح الخاصة واستخدامها؟

المحتوى التالي مقتبس من مقالات أخرى وقد يساعدك أيضًا على الفهم:

إذا كنت تستخدم خوارزمية التشفير غير المتماثلة من جانب واحد، فهناك في الواقع طريقتان لأغراض مختلفة:

الأول هو التوقيع الذي يستخدم تشفير المفتاح الخاص وفك تشفير المفتاح العام. يتم استخدامه للسماح لجميع مالكي المفتاح العام بالتحقق من هوية مالك المفتاح الخاص ومنع التلاعب بالمحتوى الذي ينشره مالك المفتاح الخاص. ومع ذلك، لا يتم استخدامه لضمان عدم حصول الآخرين على المحتوى.
يمكن لأي شخص لديه المفتاح العام للمرسل التحقق من صحة التوقيع.
النوع الثاني هو التشفير، وذلك باستخدام المفتاح العام للتشفير والمفتاح الخاص لفك التشفير. يستخدم لنشر المعلومات إلى مالك المفتاح العام. قد يتم التلاعب بهذه المعلومات من قبل الآخرين، ولكن لا يمكن للآخرين الحصول عليها. إذا أراد A إرسال بيانات آمنة وسرية إلى B، فيجب أن يكون لدى كل من A وB مفتاح خاص. يستخدم A أولاً [المفتاح العام] الخاص بـ B لتشفير البيانات، ثم يستخدم مفتاحه الخاص لتشفير البيانات المشفرة. وأخيرًا، يتم إرساله إلى B، مما يضمن عدم قراءة المحتوى أو التلاعب به.
يمكن لأي شخص يعرف المفتاح العام للمستلم إرسال رسالة إلى المستلم.
ملخص: تُستخدم المفاتيح العامة بشكل شائع لتشفير الرسائل والتحقق من التوقيعات الرقمية (أي فك التشفير).

1. التوقيع الرقمي
تقنية التوقيع الرقمي هي تطبيق تقنيتين: "التشفير وفك التشفير غير المتماثل للمفاتيح" و"الملخص الرقمي". يقوم بتشفير معلومات الملخص باستخدام المفتاح الخاص للمرسل وينقلها إلى المستلم مع النص الأصلي. يمكن للمتلقي فقط استخدام المفتاح العام للمرسل لفك تشفير المعلومات التلخيصية المشفرة، ثم استخدام وظيفة HASH لإنشاء معلومات ملخصة للنص الأصلي المستلم، والتي تتم مقارنتها بالمعلومات التلخيصية التي تم فك تشفيرها. إذا كانت هي نفسها، فهذا يعني أن المعلومات المستلمة كاملة ولم يتم تعديلها أثناء عملية الإرسال. وبخلاف ذلك، فهذا يعني أنه تم تعديل المعلومات، وبالتالي يمكن للتوقيع الرقمي التحقق من [سلامة] المعلومات.
  تتم عملية التوقيع الرقمي كما يلي: نص عادي --> عملية التجزئة --> ملخص --> تشفير المفتاح الخاص --> التوقيع الرقمي
تتم عملية التحقق من التوقيع الرقمي كما يلي: التوقيع الرقمي --> فك تشفير المفتاح العام --> ملخص --> تجزئة النص الأصلي --> ملخص المقارنة

التوقيعات الرقمية لها وظيفتين:

تأكد من أن الرسالة موقعة بالفعل ومرسلة من قبل المرسل، لأن الآخرين لا يستطيعون تزوير توقيع المرسل. (مصدر موثوق)
التأكد من أن الرسالة كاملة ولم يتم العبث بها (سلامتها).
ملحوظة: التوقيعات الرقمية يمكنها فقط التحقق من سلامة البيانات. ما إذا كانت البيانات نفسها (أي النص الأصلي) مشفرة لا تقع ضمن نطاق التحكم في التوقيع الرقمي.


التوقيع الرقمي
والآن بعد أن علمنا أن هناك تشفيرًا غير متماثل، فماذا عن التوقيعات الرقمية؟

وظيفة التوقيع الرقمي هي أنني أقوم بوضع علامة على جزء معين من البيانات للإشارة إلى أنني أوافق على البيانات (وقعت اسمي)، ثم أرسلها للآخرين. ويمكن للآخرين معرفة أن البيانات قد تمت المصادقة عليها بواسطتي وأنه لم يتم التلاعب بالبيانات.

يمكن أن تساعدك هذه المقالات أيضًا على فهم: ملاحظات علم التشفير: http://www.ruanyifeng.com/blog/2006/12/notes_on_cryptography.html ما هو التوقيع الرقمي؟ : http://www.ruanyifeng.com/blog/2011/08/what_is_a_digital_signature.html مبدأ خوارزمية RSA (1): http://www.ruanyifeng.com/blog/2013/06/rsa_algorithm_part_one.html فهم المفاتيح العامة والخاصة: https://songlee24.github.io/2015/05/03/public-key-and-private-key/ من الأفضل فهم المفاتيح العامة والمفاتيح الخاصة والتوقيعات الرقمية على النحو التالي: https://blog.csdn.net/21aspnet/article/details/7249401

https وهجمات الوسيط

بروتوكول https هو بروتوكول http+ssl. تظهر عملية الاتصال في الشكل أدناه:

ألق نظرة على هذه المقالة على وجه التحديد: عملية اتصال HTTPS واختطاف هجوم الوسيط: http://netsecurity.51cto.com/art/201712/559836.htm سلسلة HTTPS 2 المتعمقة (التشفير والشهادة): https://www.jianshu.com/p/b4c775a26068 HTTP، HTTP2.0، SPDY، HTTPS بعض الأشياء التي يجب أن تعرفها: http://web.jobbole.com/87695/

مبدأ شهادة iOS وتوقيع التطبيق

بعد فهم النقاط المذكورة أعلاه، من السهل فهم مبادئ شهادات iOS وتوقيع التطبيق. إذا كنت لا تفهم ما هو أعلاه، فمن المحتمل أنك لا تفهم ما هو أدناه أيضًا.

وقد أوضحت هاتان المقالتان الأمر بشكل واضح: كيفية فهم آلية شهادة التوقيع لنظام iOS: https://blog.gocy.tech/2017/04/24/iOS-Signing/ مبدأ توقيع تطبيق iOS: http://wereadteam.github.io/2017/03/13/Signature/

FAQ

What to read next

Related

Continue reading