Crypto / Repository
cryptologik
ערכת כלים לקריפטוגרפיה יישומית המספקת מימושים מאובטחים ומבוקרים של אלגוריתמים קריפטוגרפיים, ניתוח תצורת TLS, ניהול מחזור חיים של תעודות ומשאבים חינוכיים להבנת עקרונות קריפטוגרפיים.
צפה ב-GitHub ↗אודות הפרויקט
CryptoLogik היא ערכת כלים מקיפה לקריפטוגרפיה יישומית, שנועדה גם לשימוש מעשי וגם לחינוך. קריפטוגרפיה — המדע של אבטחת מידע באמצעות אלגוריתמים מתמטיים — עומדת בבסיס כמעט כל היבט של אבטחה דיגיטלית: תקשורת מוצפנת (TLS/SSL), אימות מאובטח, חתימות דיגיטליות, הגנת נתונים במנוחה וטכנולוגיות blockchain. ערכת הכלים מספקת שלוש יכולות עיקריות: Secure Cryptographic Primitives מציעה מימושים ברמה גבוהה, מאובטחים כברירת מחדל, של פעולות קריפטוגרפיות נפוצות — הצפנה סימטרית (AES-256-GCM), הצפנה א-סימטרית (RSA, Ed25519), hashing (SHA-256, SHA-3, Argon2 עבור סיסמאות), חתימות דיגיטליות ופונקציות לגזירת מפתחות. מימושים אלה פועלים לפי שיטות העבודה המומלצות העדכניות, משתמשים בברירות מחדל מאובטחות וכוללים הגנות מפני מלכודות מימוש נפוצות כמו timing attacks ושימוש חוזר ב-nonce. TLS Configuration Auditor מנתח את תצורת ה-TLS/SSL של שרתי ווב, מזהה cipher suites חלשות, גרסאות פרוטוקול מיושנות (TLS 1.0, 1.1), בעיות בתעודות (תפוגה, מפתחות חלשים, שרשראות לא שלמות) ותאימות לסטנדרטים תעשייתיים (PCI-DSS, HIPAA). הוא מייצר דוחות ישימים עם שינויים תצורתיים ספציפיים הדרושים להשגת דירוג אבטחה 'A+'. Cryptographic Education Module מספק דוגמאות אינטראקטיביות ומתועדות המסבירות את העקרונות מאחורי כל אלגוריתם — לא רק איך להשתמש בהם, אלא למה הם עובדים, אילו תכונות אבטחה הם מספקים ואיך טעויות נפוצות עלולות לערער אותם. זה כולל הדגמות חזותיות של מושגים כמו חילופי מפתחות (Diffie-Hellman), חתימות דיגיטליות והתנגשויות hash. כל ערכת הכלים בנויה לפי הפילוסופיה שכלי קריפטוגרפיה צריכים להיות בלתי ניתנים לשימוש שגוי — ברירות מחדל מאובטחות, ללא אלגוריתמים שהוצאו משימוש, והודעות שגיאה ברורות כאשר מנסים לבצע פעולות לא בטוחות.
למה זה חשוב
קריפטוגרפיה היא גם הטכנולוגיה האבטחתית החשובה ביותר וגם זו שמיושמת באופן שגוי לעיתים קרובות ביותר. כשלים מתוקשרים כוללים שימוש במצב ECB להצפנה (בעיית ה-penguin), אחסון סיסמאות עם MD5 במקום פונקציית גזירת מפתח מתאימה, שימוש חוזר ב-nonces ב-AES-GCM, ויישום פרוטוקולים קריפטוגרפיים מותאמים אישית ללא review מתאים. כל אחת מהטעויות הללו הובילה לפריצות נתונים בעולם האמיתי שפגעו במיליוני משתמשים. האתגר הוא שקריפטוגרפיה דורשת ידע מתמטי עמוק כדי ליישם אותה נכון, אך רוב המפתחים שצריכים להשתמש בה אינם קריפטוגרפים. ספריות סטנדרטיות חושפות primitives ברמה נמוכה שקל להשתמש בהם בצורה שגויה — בחירת מצב פעולה לא נכון, יצירת מספרים אקראיים חלשים, או בניית פרוטוקולים פגיעים ל-replay attacks. ערכת כלים זו מטפלת בפער באמצעות מתן abstractions ברמה גבוהה שהופכות שימוש נכון לברירת המחדל ושימוש שגוי לקשה. עבור מתרגלים שרוצים להעמיק את ההבנה שלהם, המודולים החינוכיים מסבירים את ה-'למה' שמאחורי כל בחירה קריפטוגרפית, ובונים אינטואיציה שעוזרת להם לקבל החלטות אבטחה טובות יותר לאורך הקריירה שלהם.
מדריך שלב-אחר-שלב
- התקינו את ערכת הכלים באמצעות 'pip install cryptologik'. לחבילה יש תלות מינימלית (רק ספריית 'cryptography' המבוקרת היטב ו-bindings ל-libsodium) והיא תומכת ב-Python 3.8+. לשילוב ב-Rust, השתמשו ב-crate cryptologik-rs.
- השתמשו במודולים ברמה גבוהה לפעולות קריפטוגרפיות נפוצות. לדוגמה: 'from cryptologik import encrypt, decrypt, hash_password, verify_password, sign, verify'. כל פונקציה משתמשת בברירות מחדל מאובטחות (AES-256-GCM להצפנה, Argon2id ל-hashing של סיסמאות, Ed25519 לחתימות) ומטפלת אוטומטית בניהול מפתחות, יצירת nonce ומקרי שגיאה.
- הריצו את TLS auditor מול השרתים שלכם עם 'cryptologik audit-tls example.com'. ה-auditor בודק את כל גרסאות הפרוטוקול וה-cipher suites הנתמכות, מאמת תוקף תעודה ושלמות שרשרת, ומפיק דוח מפורט עם דירוג אות (A+ עד F) והמלצות ספציפיות לשיפור תצורת ה-TLS שלכם.
- חקרו את התיעוד החינוכי האינטראקטיבי עם 'cryptologik learn'. פעולה זו פותחת ממשק ווב מקומי עם שיעורים מונחים על הצפנה סימטרית, קריפטוגרפיה א-סימטרית, פונקציות hash, חתימות דיגיטליות, פרוטוקולי חילופי מפתחות ומלכודות נפוצות. כל שיעור כולל דוגמאות קוד שניתן להריץ והדמיות של אופן פעולת האלגוריתמים מבפנים.