Skip to main content

V1.6.4 Cryptographic Architecture

Requirement:#

Verify that the architecture treats client-side secrets--such as symmetric keys, passwords, or API tokens--as insecure and never uses them to protect or access sensitive data.

Explanation:#

Π’Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ опрСдСляСт порядок Ρ€Π°Π±ΠΎΡ‚Ρ‹ с клиСнтскими сСкрСтами, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ симмСтричныС ΠΊΠ»ΡŽΡ‡ΠΈ, ΠΏΠ°Ρ€ΠΎΠ»ΠΈ ΠΈΠ»ΠΈ API-Ρ‚ΠΎΠΊΠ΅Π½Ρ‹, Π² криптографичСской Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ прилоТСния. Π’ этом Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΈ подчСркиваСтся, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΈΠ΅ сСкрСты Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° слСдуСт Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ нСбСзопасныС ΠΈ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… для нСпосрСдствСнной Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΈΠ»ΠΈ доступа ΠΊ sensitive data.

1 Client-Side Secrets:

  • Под сСкрСтами Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° понимаСтся ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ информация, которая хранится ΠΈΠ»ΠΈ обрабатываСтся Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° прилоТСния. Π­Ρ‚ΠΎ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡ΠΈ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ, ΠΏΠ°Ρ€ΠΎΠ»ΠΈ, Ρ‚ΠΎΠΊΠ΅Π½Ρ‹ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ sensitive data.

2 Inherent Insecurity:

  • Π‘Π΅ΠΊΡ€Π΅Ρ‚Ρ‹ Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΌΠ΅Π½Π΅Π΅ бСзопасны, Ρ‡Π΅ΠΌ сСкрСты Π½Π° сторонС сСрвСра. Код ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° часто ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ доступны, ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ ΠΈΠ»ΠΈ ΡƒΠΊΡ€Π°Π΄Π΅Π½Ρ‹ Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊΠ°ΠΌΠΈ, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΌΠΈ физичСский ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ доступ ΠΊ клиСнтскому устройству.

3 Sensitive Data Protection:

  • Sensitive Data, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ личная информация, финансовыС ΠΎΡ‚Ρ‡Π΅Ρ‚Ρ‹ ΠΈΠ»ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹. Π’ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ обрабатываСтся Ρ‚Ρ€ΠΈ Ρ‚ΠΈΠΏΠ° "sensitive data":

    • Project Sensitive
    • Personal Sensitive
    • Company Sensitive

    Sensitive Data Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, ΡΠ²ΡΠ·Π°Π½Π½ΡƒΡŽ с ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚Π°ΠΊΡƒΡŽ ​​как:

    • session tokens
    • file names
    • stack traces
    • Confidential data:
      • ΠΏΠ°Ρ€ΠΎΠ»ΠΈ
      • Π΄Π°Π½Π½Ρ‹Π΅ ΠΊΡ€Π΅Π΄ΠΈΡ‚Π½ΠΎΠΉ ΠΊΠ°Ρ€Ρ‚Ρ‹
      • ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ состоянии Π·Π΄ΠΎΡ€ΠΎΠ²ΡŒΡ
      • Π»ΠΈΡ‡Π½Ρ‹Π΅ сообщСния
      • ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒ
      • ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅
      • исходный ΠΊΠΎΠ΄ прилоТСния
      • ΠΈ Ρ‚. Π΄.Β https://cwe.mitre.org/data/definitions/327.html
  • Β ΠŸΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° сСкрСты Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° для Π·Π°Ρ‰ΠΈΡ‚Ρ‹ sensitive data рискованно, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π»Π΅Π³ΠΊΠΎ скомпромСтированы.

4 Server-Side Protection:

  • Для выполнСния этого трСбования Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ Π·Π°Ρ‰ΠΈΡ‚Ρƒ sensitive data ΠΈ доступ ΠΊ Π½ΠΈΠΌ Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Π½Π° сторонС сСрвСра. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, для Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π½Π° сСрвСрС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠ΅ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅, срСдства контроля доступа ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ.

5 Secure Communication:

  • Если сСкрСты Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ, Ρ‚ΠΎ ΠΈΡ… основная Ρ€ΠΎΠ»ΡŒ Π΄ΠΎΠ»ΠΆΠ½Π° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ Π² создании Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½Ρ‹Ρ… ΠΊΠ°Π½Π°Π»ΠΎΠ² связи с сСрвСром. НапримСр, ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для инициирования бСзопасного TLS/SSL-соСдинСния ΠΈΠ»ΠΈ для Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Π½Π° сСрвСрС.

6 Server-Side Decryption and Authentication:

  • Π‘Π΅Ρ€Π²Π΅Ρ€ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²ΠΊΡƒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈΠ»ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ². Он Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° сСкрСты Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° для выполнСния этих критичСски Π²Π°ΠΆΠ½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ бСзопасности.

7 Key Derivation:

  • Если для Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ сСкрСты ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΏΠ°Ρ€ΠΎΠ»ΠΈ ΠΈΠ»ΠΈ ΠΊΠ»ΡŽΡ‡ΠΈ, ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π½Π°Π΄Π΅ΠΆΠ½ΠΎ Ρ…ΡΡˆΠΈΡ€ΠΎΠ²Π°Π½Ρ‹, Π° ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ Ρ…ΡΡˆ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ Π½Π° сСрвСр для сравнСния. Π‘Π΅Ρ€Π²Π΅Ρ€ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ Π½Π° основС Ρ…ΡΡˆΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ значСния.

8 Avoiding Client-Side Storage:

  • Π‘Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΡƒ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ sensitive data ΠΈΠ»ΠΈ сСкрСтов Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°. По возмоТности ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ‚ΠΎΠΊΠ΅Π½Ρ‹ ΠΈΠ»ΠΈ сСссионныС ΠΊΠ»ΡŽΡ‡ΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ раскрытиС сСкрСтов Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°.

9 Secure Storage on Server:

  • Sensitive data Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π½Π°Π΄Π΅ΠΆΠ½ΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Π½Π° сСрвСрС с соблюдСниСм ΠΏΡ€Π°Π²ΠΈΠ» ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ ΠΈ контроля доступа.

10 Regularly Update and Rotate Secrets:

  • ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡ΡŒΡ‚Π΅ рСгулярноС ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Ρ€ΠΎΡ‚Π°Ρ†ΠΈΡŽ сСкрСтов Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°. НапримСр, API-Ρ‚ΠΎΠΊΠ΅Π½Ρ‹ ΠΈΠ»ΠΈ сСссионныС ΠΊΠ»ΡŽΡ‡ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΉ срок дСйствия ΠΈ Π·Π°ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π½Π° Π½ΠΎΠ²Ρ‹Π΅.

11 Logging and Monitoring:

  • Π’Π½Π΅Π΄Ρ€ΠΈΡ‚Π΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ логирования ΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° для обнаруТСния ΠΈ рСагирования Π½Π° Π»ΡŽΠ±Ρ‹Π΅ ΠΏΠΎΠ΄ΠΎΠ·Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ дСйствия, связанныС с сСкрСтами Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°.

Π’ качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, рассмотрим Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ сСкрСты Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, API-Ρ‚ΠΎΠΊΠ΅Π½Ρ‹) для Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈ устанавливаСт Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡƒΡŽ связь с сСрвСром:

1.Β Secure Authentication:

  • Β Π’Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π² систСму, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ.
  •  ВмСсто Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ Π² ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΌ Π²ΠΈΠ΄Π΅ Π½Π° сСрвСр, ΠΊΠΎΠ΄ Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΏΠ΅Ρ€Π΅Π΄ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΎΠΉ пароля Π½Π° сСрвСр Ρ…ΡΡˆΠΈΡ€ΡƒΠ΅Ρ‚ Π΅Π³ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠ³ΠΎ ΠΈ бСзопасного Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Ρ…ΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, bcrypt).
ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ…ΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ пароля Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°
// Client-side authentication
const password = 'user123password';
const hashedPassword = hashFunction(password); // Securely hash the password
sendToServer(hashedPassword); // Send the hashed password to the server

2. Server-Side Authentication:

  • На сторонС сСрвСра ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Ρ…ΡΡˆΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ ΠΈ сравниваСт Π΅Π³ΠΎ с сохранСнным Ρ…ΡΡˆΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.
  • Если Ρ…ΡΡˆΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΏΠ°Ρ€ΠΎΠ»ΠΈ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ аутСнтифицируСтся.
ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ…ΡΡˆΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ пароля Π½Π° сторонС сСрвСра
# Server-side authentication
hashed_password = 'hashed_password_from_database'
if received_hashed_password == hashed_password:
# Authentication successful

3. Secure Communication:

  • Код Π½Π° сторонС сСрвСра провСряСт Π²Π°Π»ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒ API-Ρ‚ΠΎΠΊΠ΅Π½Π° ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ запросС API.
  • Он Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ‚ΠΎΠΊΠ΅Π½ связан с Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ, ΠΈ провСряСт Π΅Π³ΠΎ Ρ†Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ запросов Π½Π° ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅.
ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ api-Ρ‚ΠΎΠΊΠ΅Π½Π°
# Server-side secure communication
def validate_api_token(request):
api_token = request.headers.get('Authorization')
user = validate_token(api_token) # Verify the token's validity
if user:
# Process the request securely
else:
# Unauthorized access

4. Data Protection on Server:

  • Код Π½Π° сторонС сСрвСра ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Π·Π°Ρ‰ΠΈΡ‚Ρƒ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ ΠΈ контроля доступа.

Remediation:#

Π§Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ криптографичСская Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° прилоТСния рассматриваСт сСкрСты Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΊΠ°ΠΊ нСбСзопасныС ΠΈ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΈΡ… для Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΈΠ»ΠΈ доступа ΠΊ sensitive data, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

1 Server-Side Data Protection:

  • Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π·Π°Ρ‰ΠΈΡ‚Π° sensitive data ΠΈ доступ ΠΊ Π½ΠΈΠΌ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡŽΡ‚ΡΡ Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Π½Π° сторонС сСрвСра прилоТСния. Для Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠ΅ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ доступа ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π½Π° сСрвСрС.

2 Secure Communication Initiation:

  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ сСкрСты Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ API-Ρ‚ΠΎΠΊΠ΅Π½Ρ‹ ΠΈΠ»ΠΈ ΠΊΠ»ΡŽΡ‡ΠΈ, Π² основном для инициирования Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½Ρ‹Ρ… соСдинСний с сСрвСром. Π­Ρ‚ΠΈ сСкрСты ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для установлСния Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½Ρ‹Ρ… TLS/SSL-соСдинСний ΠΈΠ»ΠΈ для Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Π½Π° сСрвСрС.

3 Hashing for Authentication:

  • Если для Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ сСкрСты ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ΠΉ ΠΈΡ… Π½Π° сСрвСр для сравнСния Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΠΈΡ… Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠ΅ Ρ…ΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°. Π‘Π΅Ρ€Π²Π΅Ρ€ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ Π½Π° основС Ρ…ΡΡˆΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.

4 Minimize Client-Side Storage:

  • ΠœΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ сСкрСтов Π½Π° клиСнтской сторонС прилоТСния. Π˜Π·Π±Π΅Π³Π°ΠΉΡ‚Π΅ хранСния ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΉ ΠΈ сСкрСтных ΠΊΠ»ΡŽΡ‡Π΅ΠΉ Π² ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΌ Π²ΠΈΠ΄Π΅ Π² локальном Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅.

5 Secure Storage on Server:

  • Π₯Ρ€Π°Π½ΠΈΡ‚Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° сСрвСрС Π² бСзопасном мСстС, слСдуя Π»ΡƒΡ‡ΡˆΠΈΠΌ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°ΠΌ Π² области ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ ΠΈ управлСния доступом. Π Π΅Π°Π»ΠΈΠ·ΡƒΠΉΡ‚Π΅ бСзопасноС ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ для ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ Π½Π° сторонС сСрвСра.

6 Key Derivation:

  • Π Π΅Π°Π»ΠΈΠ·ΡƒΠΉΡ‚Π΅ Π½Π° сСрвСрС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ бСзопасной Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ для ΠΈΡ… создания ΠΈΠ»ΠΈ Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ² Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π½Π° основС сСкрСтов Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°. Π˜Π·Π±Π΅Π³Π°ΠΉΡ‚Π΅ раскрытия Π½Π΅ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Ρ… сСкрСтов.

7 Regular Secret Rotation:

  • УстановитС ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΡƒ рСгулярной Ρ€ΠΎΡ‚Π°Ρ†ΠΈΠΈ клиСнтских сСкрСтов, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ API-Ρ‚ΠΎΠΊΠ΅Π½Ρ‹ ΠΈΠ»ΠΈ сСссионныС ΠΊΠ»ΡŽΡ‡ΠΈ. Π—Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ старыС сСкрСты Π½Π° Π½ΠΎΠ²Ρ‹Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ½ΠΈΠ·ΠΈΡ‚ΡŒ риск ΠΊΠΎΠΌΠΏΡ€ΠΎΠΌΠ΅Ρ‚Π°Ρ†ΠΈΠΈ.

8 Logging and Monitoring:

  • Π’Π½Π΅Π΄Ρ€ΠΈΡ‚Π΅ комплСксныС ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ логирования ΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° для обнаруТСния ΠΈ рСагирования Π½Π° Π»ΡŽΠ±Ρ‹Π΅ ΠΏΠΎΠ΄ΠΎΠ·Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ дСйствия, связанныС с клиСнтскими сСкрСтами ΠΈΠ»ΠΈ доступом ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ. ΠžΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°ΠΉΡ‚Π΅ нСсанкционированный доступ ΠΈΠ»ΠΈ использованиС сСкрСтов.

9 Incident Response Plan:

  • Β Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°ΠΉΡ‚Π΅ ΠΏΠ»Π°Π½ рСагирования Π½Π° ΠΈΠ½Ρ†ΠΈΠ΄Π΅Π½Ρ‚Ρ‹, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ рСагирования Π½Π° ΠΊΠΎΠΌΠΏΡ€ΠΎΠΌΠ΅Ρ‚Π°Ρ†ΠΈΡŽ сСкрСтов Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°. ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅, ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ скомпромСтированныС сСкрСты Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π°Π½Π½ΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ ΠΈ Π·Π°ΠΌΠ΅Π½Π΅Π½Ρ‹.

10 Security Testing:

  • ΠŸΡ€ΠΎΠ²Π΅ΡΡ‚ΠΈ тСстированиС бСзопасности, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ тСстированиС Π½Π° ΠΏΡ€ΠΎΠ½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠ΅ ΠΈ Π°Π½Π°Π»ΠΈΠ· ΠΊΠΎΠ΄Π°, с Ρ†Π΅Π»ΡŒΡŽ выявлСния ΠΈ устранСния уязвимостСй, связанных с ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ сСкрСтов Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°.

Additional:#

https://cheatsheetseries.owasp.org/cheatsheets/Secrets_Management_Cheat_Sheet.html

https://owasp.org/www-pdf-archive/Owasp-top-10-proactive-controls-2018-russian.pdf