הטמעת הצפנת נתונים אישיים באתר שלך

פריצת נתונים אישיים פירושה לא רק קנסות, אלא גם אובדן אמון הלקוחות. אנחנו מיישמים הצפנה ברמת היישום כך שגם אם מסד הנתונים נפרץ, הנתונים נשארים חסרי ערך לתוקפים. הצוות שלנו מספק את הפרויקט במפתח מלא—מביקורת ועד יישום ותמיכה שוטפת—ומבטיח הגנה אמינה ועמידה בדרישות החוק.

פיתוח ותחזוקה של כל סוגי האתרים:

אתרי מידע או יישומי אינטרנט
אתרי תדמית, דפי נחיתה, אתרי חברה, קטלוגים מקוונים, חידונים, אתרי קידום, בלוגים, מקורות חדשות, פורטלי מידע, פורומים, אגרגטורים
אתרי מסחר אלקטרוני או יישומי אינטרנט
חנויות מקוונות, פורטלי B2B, שווקים, בורסות מקוונות, אתרי קאשבק, בורסות, פלטפורמות דרופשיפינג, מנתחי מוצרים
יישומי אינטרנט לניהול תהליכים עסקיים
מערכות CRM, מערכות ERP, פורטלים ארגוניים, מערכות ניהול ייצור, מנתחי מידע
אתרי שירות אלקטרוני או יישומי אינטרנט
פלטפורמות מודעות, בתי ספר מקוונים, בתי קולנוע מקוונים, בוני אתרים, פורטלים לשירותים אלקטרוניים, פלטפורמות אירוח וידאו, פורטלים נושאיים

אלה רק חלק מהסוגים הטכניים של אתרים שאנו עובדים איתם, ולכל אחד מהם יכולים להיות מאפיינים ופונקציונליות ספציפיים משלו, וכן ניתן להתאים אותם לצרכים ולמטרות הספציפיים של הלקוח.

השירותים שאנו מציעים
מציג 1 מתוך 1כל 2062 השירותים
הטמעת הצפנת נתונים אישיים באתר שלך
מורכב
~3-5 ימים

הכישורים שלנו:

שאלות נפוצות

העבודות האחרונות

  • פיתוח אתר חברה B2B ADVANCE
    פיתוח אתר חברה B2B ADVANCE
    1501
  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1344
  • פיתוח אתר עבור BELFINGROUP
    פיתוח אתר עבור BELFINGROUP
    1052
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1306
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1049
  • פיתוח אתר לחברת FIXPER
    פיתוח אתר לחברת FIXPER
    1033

כאשר מסד נתונים דולף, תוקף מקבל SQL dump עם אלפי שורות — ת.ז., דרכונים, רשומות רפואיות. אם הנתונים מאוחסנים כטקסט רגיל, זו קטסטרופה: קנסות לפי 152-FZ עד $4.5k–6.5k, או לפי GDPR עד 4% מהמחזור השנתי הגלובלי. עלות פרצת נתונים עומדת בממוצע על $3.86 מיליון בעולם (IBM Cost of a Data Breach Report 2022). הצפנה ברמת היישום היא הדרך היחידה להפחית מערך הנתונים עבור תוקף. גם אם הם ישיגו את מסד הנתונים, ללא המפתחות הטקסט המוצפן חסר תועלת. אנו מיישמים הצפנה בפרויקטים עם דרישות אבטחה גבוהות: פינטק, מדטק, ממשל. ב-5 שנים בשוק, השלמנו מעל 30 פרויקטים להגנת מידע אישי. המהנדסים שלנו מחזיקים בהסמכות CISSP, ואנו מבטיחים עמידה ב-152-FZ ו-GDPR. נבצע ביקורת למערכת שלך תוך 2-3 ימים.

אתן דוגמה אמיתית מהפרקטיקה שלנו: הצפנה ב-CRM רפואי עם 50,000 מטופלים.

למה להצפין נתונים ברמת היישום?

הצפנה ברמת מסד הנתונים (TDE) אינה מגנה מפני מנהלי מסדי נתונים או SQL injections. היישום עצמו מנהל את המפתחות: הנתונים מוצפנים לפני כתיבה ומפוענחים רק באמצעות שאילתות מורשות. זה מספק בקרת גישה גרעינית ומבודד את הנתונים מהתשתית.

הצפנת נתונים לעומת Hashing

נתונים להצפין

  • ת.ז., SNILS, סדרת/מספר דרכון
  • נתונים רפואיים, אבחנות
  • נתונים פיננסיים, מספרי כרטיסים (PCI DSS דורש גישה נפרדת)
  • ביומטריה

נתונים ל-Hash

  • סיסמאות → bcrypt, Argon2id
  • טוקנים סודיים, מפתחות API

לחיפוש בשדות מוצפנים, אנו משתמשים בהצפנה דטרמיניסטית או בטוקניזציה — עוד על כך בהמשך.

בחירת אלגוריתם: AES-256-GCM לעומת ChaCha20-Poly1305

אלגוריתם סוג אימות מהירות האצת חומרה
AES-256-GCM סימטרי כן (GCM) גבוהה כן (AES-NI)
ChaCha20-Poly1305 סימטרי כן (Poly1305) גבוהה לא (אך מהיר בתוכנה)
RSA-OAEP אסימטרי כן נמוכה כן (חלקי)

AES-256-GCM הוא התקן להצפנת נתונים במנוחה. עם AES-NI, הוא מהיר פי 3 מ-ChaCha20-Poly1305. אם השרת חסר תמיכה ב-AES-NI, ChaCha20-Poly1305 הוא חלופה אמינה. RSA-OAEP משמש להצפנת מפתחות או כאשר פענוח לא יכול להתבצע על השרת. עוד על AES-GCM.

בהתבסס על המלצות OWASP ו-NIST.

יישום מעשי של הצפנה ב-Laravel

כלי ההצפנה של Laravel מספקים הגנה שקופה על נתונים. אנו משתמשים ב-casts מותאמים אישית כדי להצפין שדות רגישים אוטומטית.

דוגמת Cast להצפנת שדות
// app/Casts/EncryptedCast.php
class EncryptedCast implements CastsAttributes
{
    public function get($model, string $key, $value, array $attributes): ?string
    {
        if (is_null($value)) return null;
        try {
            return Crypt::decryptString($value);
        } catch (DecryptException) {
            return null;
        }
    }

    public function set($model, string $key, $value, array $attributes): ?string
    {
        if (is_null($value)) return null;
        return Crypt::encryptString($value);
    }
}

// В модели
class Patient extends Model
{
    protected $casts = [
        'passport_number' => EncryptedCast::class,
        'medical_notes' => EncryptedCast::class,
        'snils' => EncryptedCast::class,
    ];
}

// Использование — прозрачно для кода
$patient->passport_number = '4510 123456'; // автоматически шифруется
$decrypted = $patient->passport_number; // автоматически расшифровывается

יתרונות של Envelope Encryption

אחסון מפתחות הצפנה במסד הנתונים לצד נתונים מוצפנים הוא חסר טעם. השיטה המומלצת היא envelope encryption: הנתונים מוצפנים עם מפתח הצפנת נתונים (DEK), ה-DEK מוצפן עם מפתח הצפנת מפתחות (KEK), וה-KEK מאוחסן ב-KMS/Vault. זה מאפשר הצפנה מחדש של נתונים ללא גישה ל-KEK ומפשט את תהליך הרוטציה.

אינטגרציה עם HashiCorp Vault:

$vault = new Vault([
    'address' => 'https://vault.internal:8200',
    'token' => env('VAULT_TOKEN'),
]);
$keyData = $vault->read('secret/data/app-encryption-key');
$encryptionKey = $keyData['data']['key'];

AWS KMS:

use Aws\Kms\KmsClient;

$kms = new KmsClient(['region' => 'eu-west-1']);

$result = $kms->encrypt([
    'KeyId' => 'arn:aws:kms:eu-west-1:123456:key/abc-123',
    'Plaintext' => $sensitiveData,
]);

$encryptedData = base64_encode($result['CiphertextBlob']);

חיפוש בנתונים מוצפנים

AES-GCM סטנדרטי מייצר טקסט מוצפן שונה עבור אותו ערך. חיפוש בשדה מוצפן הוא בלתי אפשרי. פתרונות:

אפשרות 1: Hash לחיפוש + הצפנה לאחסון:

class PersonalDataRepository {
    public function findByPassport(string $passport): ?Patient
    {
        $hash = hash_hmac('sha256', $passport, config('app.search_key'));
        return Patient::where('passport_hash', $hash)->first();
    }

    public function store(string $passport): void
    {
        Patient::create([
            'passport_data' => Crypt::encryptString($passport),
            'passport_hash' => hash_hmac('sha256', $passport, config('app.search_key')),
        ]);
    }
}

אפשרות 2: PostgreSQL pgcrypto:

INSERT INTO patients (passport) VALUES (pgp_sym_encrypt('4510 123456', current_setting('app.encryption_key')));
SELECT pgp_sym_decrypt(passport::bytea, current_setting('app.encryption_key')) FROM patients WHERE id = 1;

השוואת שיטות הגנת נתונים

שיטה הפיכה חיפוש מהירות אבטחת מפתחות
AES-256-GCM כן לא גבוהה תלוי באחסון
הצפנה דטרמיניסטית כן כן בינונית גבוהה עם HMAC
טוקניזציה לא (החלפה) כן גבוהה גבוהה מאוד
Hashing (bcrypt) לא לא נמוכה גבוהה

מקרה בוחן: הצפנה ב-CRM רפואי (מהפרקטיקה שלנו)

הלקוח — רשת מרפאות עם 50,000 מטופלים. דרישה: להצפין נתוני דרכון, SNILS, אבחנות. בחרנו ב-AES-256-GCM + envelope encryption עם HashiCorp Vault. יישמנו Laravel Casts להצפנה שקופה. הוספנו HMAC hash לחיפוש לפי מספר פוליסה. תוצאה: זמן התגובה לא השתנה, ביקורת האבטחה עברה, התקבל תעודת עמידה ב-152-FZ. הפתרון מתקנה לכל מספר רשומות.

מה כלול בעבודה

  • תכנון ארכיטקטורת ההצפנה תוך התחשבות בלוגיקה העסקית
  • בחירת אלגוריתמים ותוכנית ניהול מפתחות (envelope encryption)
  • אינטגרציה עם HashiCorp Vault או AWS KMS
  • יישום הצפנה שקופה ברמת ORM (Laravel, Doctrine וכו')
  • הגדרת הצפנה דטרמיניסטית לחיפוש
  • רוטציית מפתחות ללא זמן השבתה
  • ביקורת גישה ורישום פעולות
  • תיעוד לצוות והדרכת מפתחים
  • העברת גישה ותרחישי בדיקה

תמחור: מ-$3,000 לפרויקטים קטנים, $10,000+ לארגונים עם אינטגרציה מותאמת אישית.

תהליך היישום ולוח זמנים

  1. תכנון סכמת הצפנה וניהול מפתחות (1-2 ימים).
  2. יישום הצפנה ברמת המודל (2-3 ימים).
  3. אינטגרציה עם מאגרי מפתחות חיצוניים (5-7 ימים).
  4. הצפנה דטרמיניסטית לחיפוש (+3 ימים).
  5. יישום רוטציית מפתחות ללא זמן השבתה (+2 ימים).
  6. ביקורת גישה ורישום פעולות (+1-2 ימים).
  7. תיעוד והדרכת צוות (+1 יום).

לוח זמנים סופי — משבועיים עד חודשיים, תלוי בנפח הנתונים ובמורכבות הלוגיקה העסקית. השקעה זו בדרך כלל מחזירה את עצמה על ידי הימנעות מקנס אחד גדול על פרצת נתונים – חיסכון של עד $500,000 לפי 152-FZ או מיליונים לפי GDPR.

אנו מציעים יישום turnkey החל מ-$3,000. צור קשר להערכה חינמית של הפרויקט שלך.