Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> ฐานข้อมูล

การเข้ารหัสข้อมูลที่โปร่งใสด้วย Oracle EBS

บล็อกนี้กล่าวถึงการตั้งค่าการเข้ารหัสระดับคอลัมน์ของการเข้ารหัสข้อมูลแบบโปร่งใส (TDE) ในสภาพแวดล้อม Oracle® E-Business Suite® (EBS) R12 คุณสามารถตั้งค่าการเข้ารหัสระดับคอลัมน์ในตารางคอลัมน์เดียวหรือหลายคอลัมน์ได้ ขึ้นอยู่กับความต้องการของผู้ใช้

แนะนำตัว

คุณสามารถใช้ฟังก์ชันการเข้ารหัสคอลัมน์ TDE เพื่อเข้ารหัสคอลัมน์ของตารางที่เลือกได้ เนื่องจากการเข้ารหัสมีความโปร่งใส คุณไม่จำเป็นต้องเขียนรหัสแอปพลิเคชันใหม่และสามารถใช้รหัสที่มีอยู่ได้ คำว่า โปร่งใส ยังหมายความว่าเซสชันฐานข้อมูลสามารถอ่านข้อมูลที่เข้ารหัสได้โดยไม่มีปัญหาใดๆ

หลังจากทำตามคำแนะนำในบล็อกนี้แล้ว คุณสามารถตั้งค่า TDE column-levelencryption ในสภาพแวดล้อม EBS R12 ได้

ผลกระทบของ TDE

การใช้การเข้ารหัส TDE ของคุณอาจมีผลกระทบต่อแอปพลิเคชันของคุณในด้านต่อไปนี้:

  • ประสิทธิภาพ:ข้อจำกัดบางประการในการใช้ TDE ได้รับการบันทึกไว้ในคู่มือการรักษาความปลอดภัยขั้นสูง คุณควรตรวจสอบสิ่งนี้ก่อนใช้งาน TDE คุณควรเลือกคอลัมน์ที่จะเข้ารหัสด้วยความระมัดระวัง เนื่องจากตัวเลือกจะส่งผลต่อประสิทธิภาพของภาษาการจัดการข้อมูล (DML) และการสืบค้นข้อมูลอื่นๆ ที่ใช้คอลัมน์ที่เข้ารหัส

  • การแก้ไข:คุณควรทราบเกี่ยวกับแพตช์ EBS ที่มีอยู่ โดยเฉพาะอย่างยิ่งแพตช์ที่ใช้การเปลี่ยนแปลงกับคอลัมน์และเข้ารหัสโดยใช้ TDE ซึ่งรวมถึงการเปลี่ยนแปลงต่างๆ เช่น การเพิ่มดัชนีในคอลัมน์ที่เข้ารหัส

ข้อจำกัดของ TDE

ไม่รองรับการเข้ารหัสคอลัมน์ TDE กับเทคโนโลยีที่ใช้ Oracle LogMiner เช่น Streams หรือ DataGuard ในโหมดสแตนด์บายเชิงตรรกะ หากคุณกำลังใช้เทคโนโลยีเหล่านี้ คุณจะไม่สามารถทำซ้ำคอลัมน์ที่เข้ารหัสได้ อย่างไรก็ตาม การเข้ารหัส TDE ได้รับการสนับสนุนเมื่อคุณใช้ DataGuard ในโหมดสแตนด์บายทางกายภาพ ในกรณีนี้ ต้องคัดลอก awallet ที่มีมาสเตอร์คีย์จากเซิร์ฟเวอร์หลักไปยังเซิร์ฟเวอร์สแตนด์บายแบบ aphysical ดังที่แสดงในภาพต่อไปนี้:

การเข้ารหัสข้อมูลที่โปร่งใสด้วย Oracle EBS แหล่งที่มาของรูปภาพ:https://docs.oracle.com/cd/E11882_01/network.112/e40393/ asotrans.htm#ASOAG9567

ขั้นตอนในการใช้งาน TDE

ทำตามขั้นตอนต่อไปนี้เพื่อใช้ TDE:

  1. รับรายการคอลัมน์และตารางที่ต้องเข้ารหัส

  2. สร้างโฟลเดอร์กระเป๋าสตางค์ในตำแหน่งที่ต้องการโดยเรียกใช้คำสั่งต่อไปนี้:

    $ mkdir TDEWallet
    
  3. สร้างรายการที่จำเป็นใน sqlnet.ora หรือ sqlnet_ifile.ora คล้ายกับบรรทัดต่อไปนี้:

    [oratactp@odbprod1 tactprd_odbprod1]$ cat sqlnet_ifile.ora
    
  4. ตั้งค่า Master Key โดยใช้คำสั่งต่อไปนี้ ซึ่งสร้าง walletfile ที่ตำแหน่ง wallet ที่ระบุในขั้นตอนก่อนหน้า:

    $ Sqlplus  '/as sysdba'
    SQL> ALTER SYSTEM SET ENCRYPTION KEY IDENTIFIED BY "*****";
    System altered.
    
  5. ดาวน์โหลดและใช้โปรแกรมแก้ไข 7337863 ถ้ายังไม่ได้สมัคร

  6. ดำเนินการ aftdeval.sql บน AppsTier จาก $FND_TOP/sql เทียบกับคอลัมน์ tableor ที่ต้องเข้ารหัส ดังตัวอย่างต่อไปนี้:

    SQL> @aftdeval.sql IBY IBY_CREDITCARD CCNUMBER E
    
  7. ดำเนินการคำสั่งเข้ารหัสทั้งหมดที่สร้างโดย aftdeval.sql .

  8. ตรวจสอบคอลัมน์ที่เข้ารหัสโดยใช้คำสั่งต่อไปนี้:

    SQL> SELECT * FROM DBA_ENCRYPTED_COLUMNS;
    
    OWNER      TABLE_NAME                COLUMN_NAME          ENCRYPTION_ALG       SAL INTEGRITY_AL
    ---------- ------------------------- -------------------- -------------------- --- ------------
    IBY        IBY_CREDITCARD            CCNUMBER             AES 192 bits key     NO SHA-1
    
  9. คุณสามารถเปิดหรือปิดกระเป๋าเงินโดยใช้คำสั่งต่อไปนี้:

    SQL> ALTER SYSTEM SET ENCRYPTION WALLET CLOSE IDENTIFIED BY "****";
    SQL> SELECT * FROM v$encryption_wallet;
    
    SQL> ALTER SYSTEM SET ENCRYPTION WALLET OPEN IDENTIFIED BY "****";
    
  10. คุณสามารถตั้งค่าเข้าสู่ระบบอัตโนมัติ สำหรับกระเป๋าเงินโดยใช้คำสั่งต่อไปนี้:

    $ orapki wallet create -wallet <wallet_location> -auto_login
    

ข้อจำกัดในการใช้งาน TDE

ข้อจำกัดต่อไปนี้ใช้กับการใช้งาน TDE:

  • สามารถเข้ารหัสข้อมูลได้บางประเภทเท่านั้น

  • เข้ารหัสได้เฉพาะคอลัมน์ที่กำหนดความยาวน้อยกว่า 3932 ไบต์

  • หากคอลัมน์เป็นส่วนหนึ่งของคีย์นอกหรือใช้ในข้อจำกัดฐานข้อมูลอื่น จะไม่สามารถเข้ารหัสได้

  • หากมีดัชนีตามฟังก์ชันในคอลัมน์ จะไม่สามารถเข้ารหัสได้

  • หากคอลัมน์ได้รับการจัดทำดัชนีและดำเนินการสแกนช่วงกับคอลัมน์นั้น ดัชนีจะไม่ถูกใช้อีกต่อไปหลังจากเข้ารหัสคอลัมน์แล้ว แต่จะทำการสแกนตารางแบบเต็มแทน

  • ถ้าตารางถูกแบ่งพาร์ติชั่นและเปลี่ยนพาร์ติชั่นหรือพาร์ติชั่นย่อย พาร์ติชั่นของตารางทั้งหมดจะต้องถูกเข้ารหัสในทำนองเดียวกัน ตารางต่อไปนี้ตรงกับเกณฑ์นี้ในขณะนี้:

  • EGO_MTL_SY_ITEMS_EXT_B

  • EGO_MTL_SY_ITEMS_EXT_TL

  • WF_LOCAL_ROLES

  • WF_LOCAL_ROLES_STAGE

  • WF_USER_ROLE_ASSIGNMENTS

  • WF_UR_ASSIGNMENTS_STAGE

  • WF_LOCAL_USER_ROLES

  • WF_LOCAL_USER_ROLES_STAGE

  • WF_LOCAL_ROLES_TL

  • WF_LOCAL_ROLES_TL_STAGE

แผนสำรอง

หากไม่ต้องการการเข้ารหัสคอลัมน์ ให้รันคำสั่งต่อไปนี้เป็นแผนสำรอง:

SQL> ALTER TABLE IBY.IBY_CREDITCARD modify (CCNUMBER decrypt); << repeat this for all columns/tables which were encrypted.

Comment ENCRYPTION_WALLET_LOCATION from sqlnet_ifile.ora

หลังจากรันคำสั่งก่อนหน้าแล้ว ให้รีสตาร์ทสภาพแวดล้อมและทำการทดสอบสติให้สมบูรณ์

บทสรุป

เมื่อใช้ TDE ที่ระดับคอลัมน์ คุณจะป้องกันไม่ให้ผู้ใช้เห็นข้อมูลที่ละเอียดอ่อนที่จัดเก็บไว้ในคอลัมน์ เช่น หมายเลขบัตรเครดิตหรือข้อมูลทรัพยากรบุคคล คุณไม่จำเป็นต้องเขียนรหัสแอปพลิเคชันใหม่หลังจากการเข้ารหัส สามารถใช้รหัสที่มีอยู่แล้ว และเซสชันฐานข้อมูลสามารถจัดการข้อมูลที่เข้ารหัสได้โดยไม่มีปัญหา

ใช้แท็บคำติชมเพื่อแสดงความคิดเห็นหรือถามคำถาม

เรียนรู้เพิ่มเติมเกี่ยวกับบริการฐานข้อมูลของเรา