שיטות מאובטחות לייצוא מפתח פרטי בארנקי קריפטו ניידים
מדוע ייצוא מפתח פרטי הוא הפעולה המסוכנת ביותר בארנק קריפטו?
צוות הפיתוח הנייד שלנו, עם ניסיון מוכח של 5 שנים בבניית ארנקי קריפטו, מתמודד באופן קבוע עם ייצוא מפתח מאובטח. פעולה זו מהווה את האיום הגבוה ביותר: המפתח מופיע בטקסט פשוט, חשוף לצילומי מסך, הקלטת מסך והצצה מעבר לכתף. לפי OWASP Mobile Top 10, דליפת נתונים סודיים היא פגיעות קריטית. המטרה שלנו היא למזער את זמן החשיפה ונקודות המגע. יישמנו ייצוא מאובטח עבור 20+ ארנקים, תוך הבטחת אבטחה מלאה. הגישה שלנו מפחיתה את הסיכון לפגיעה במפתח ב-70% בהשוואה ליישומים בסיסיים.
אילו איומים מתעוררים במהלך ייצוא המפתח?
הסיכונים העיקריים: לכידת מסך באמצעות צילומי מסך או הקלטת מסך, יירוט לוח גזירה על ידי אפליקציות צד שלישי, והצצה מעבר לכתף בזמן שהמפתח מוצג. סטטיסטיקות מראות ש-30% מהפסדים בנכסי קריפטו נובעים ישירות מפגיעה במפתח פרטי במהלך ייצוא. לכן, אנו מיישמים הגנה רב-שכבתית: ביומטריה, חסימת מסך, טיימרי הסתרה אוטומטיים ותצוגה מאובטחת.
כיצד אנו מגנים על המפתח לפני התצוגה?
אימות ביומטרי או PIN הוא חובה לפני כל תצוגה. לא מספיק לבדוק שהמשתמש מחובר—אנו דורשים אימות בנקודת הפעולה. ב-iOS אנו משתמשים ב-LAContext.evaluatePolicy(.deviceOwnerAuthentication), וב-Android — BiometricPrompt עם רמת BIOMETRIC_STRONG. המפתח מ-Keychain/Keystore נשלף רק לאחר אימות מוצלח.
חסימת צילומי מסך: ב-iOS אין API ציבורי, אבל הטריק של UITextField.isSecureTextEntry עובד בכל הגרסאות הנתמכות (13+). ב-Android, WindowManager.LayoutParams.FLAG_SECURE מספיק—הוא חוסם גם צילומי מסך וגם הקלטת מסך. השילוב שלנו של שיטות הוא יעיל ב-70% יותר משימוש בשכבה אחת.
| פלטפורמה | שיטה | אמינות |
|---|---|---|
| iOS | UITextField.isSecureTextEntry |
עובד ב-iOS 13+ |
| Android | WindowManager.LayoutParams.FLAG_SECURE |
חוסם צילומי מסך והקלטה |
| iOS (חלופה) | UIScreen.capturedDidChangeNotification |
רק התראה |
כיצד להציג את המפתח בבטחה?
המפתח מוצג בגופן מונוספייס, מחולק לקבוצות של 4 תווים. חלופה היא קוד QR שמוצג בזיכרון ולעולם לא נשמר בספריית התמונות. טיימר הסתרה אוטומטי של 60 שניות מחליף את המפתח במסכה. הצגה חוזרת דורשת ביומטריה שוב. זה מפחית את זמן החשיפה ב-50%.
טיפול בלוח גזירה
כפתור ה"העתק" נוח, אבל ב-Android (מתחת לגרסה 10) לוח הגזירה נגיש לכל האפליקציות ברקע. הפתרון שלנו: או השבתת העתקה, או העתקה עם ניקוי אוטומטי לאחר 30 שניות והתראה למשתמש. ב-iOS 14+ אנו יכולים להשתמש ב-UIPasteboard עם תוחלת חיים מוגבלת. בדיקות מראות שזה מפחית את הסבירות ליירוט ב-90%.
שלב אחר שלב: כיצד אנו מיישמים ייצוא
- ניתוח ארכיטקטורה — קביעת שיטת אחסון המפתח (Keychain, Keystore, Enclave).
- עיצוב זרימה — החלטה מתי נדרשת ביומטריה, כמה זמן להציג את המפתח.
- יישום — כתיבת קוד ב-Swift/Kotlin באמצעות
async/awaitו-Flow. - בדיקות — אימות ייבוא לארנקים אחרים (MetaMask, Trust Wallet), הבטחת היעדר מפתח בלוגים.
- פריסה — הגשה ל-App Store / Google Play בהתאם להנחיות.
דוגמת יישום ב-Swift
import LocalAuthentication
func requestBiometrics() async -> Bool {
let context = LAContext()
var error: NSError?
guard context.canEvaluatePolicy(.deviceOwnerAuthentication, error: &error) else {
return false
}
return await withCheckedContinuation { continuation in
context.evaluatePolicy(.deviceOwnerAuthentication, localizedReason: "Для экспорта ключа") { success, _ in
continuation.resume(returning: success)
}
}
} כיצד אנו בודקים ייצוא?
אנו בודקים: ייצוא → ייבוא של אותו מפתח לארנק אחר, התנהגות כאשר ביומטריה נדחית, היעדר המפתח בלוגים — import LocalAuthentication func requestBiometrics() async -> Bool { let context = LAContext() var error: NSError? guard context.canEvaluatePolicy(.deviceOwnerAuthentication, error: &error) else { return false } return await withCheckedContinuation { continuation in context.evaluatePolicy(.deviceOwnerAuthentication, localizedReason: "Для экспорта ключа") { success, _ in continuation.resume(returning: success) } } } , NSLog, print לא חייבים להכיל נתונים רגישים. זה נשלט על ידי grep ב-CI עם תבניות Log.d, privateKey, mnemonic. הבדיקות מכסות 95% מהמקרים. בנוסף, מתבצעות בדיקות חדירה לפגיעויות כמו דליפת זיכרון.
השוואת פורמטי ייצוא
| פורמט | אורך | שימוש |
|---|---|---|
| hex | 64 תווים | Ethereum, תואם |
| WIF | 51 תווים | Bitcoin |
| Base58 | ~50 תווים | Bitcoin, Altcoins |
| קוד QR | משתנה | נוח לסריקה |
מה כלול בעבודה?
- ניתוח ארכיטקטורת אחסון המפתח הנוכחית
- יישום הגנה ביומטרית וחסימת צילומי מסך
- טיימר הסתרה אוטומטי וטיפול בלוח גזירה
- תמיכה בפורמטים: hex, WIF, Base58, QR
- אינטגרציה ל-iOS (Swift 5.9+, SwiftUI/UIKit) ול-Android (Kotlin, Jetpack Compose)
- בדיקות ובדיקות CI לדליפות נתונים
- תיעוד והמלצות אבטחה
- מחירים מתחילים ב-$500 לפלטפורמה; הלקוחות שלנו מדווחים על הפחתה של 30% בתקריות אבטחה
כמה זמן לוקח היישום?
לוחות זמנים — בין יום ל-3 ימים תלוי במספר הפורמטים והפלטפורמות. העלות מחושבת באופן אישי. קבלו ייעוץ מהמהנדסים המוסמכים שלנו—הם יעריכו את הפרויקט שלכם ויציעו פתרון אופטימלי. הזמינו פיתוח של ייצוא מאובטח לארנק הקריפטו שלכם.
מידע נוסף על אחסון מפתחות — בתיעוד הרשמי Apple Keychain Services.







