Skip to content

SensitiveDataContainer#exportData() 완전 제거 #11

@Quant-TheodoreFelix

Description

@Quant-TheodoreFelix

얽힘 라이브러리는 극한의 보안 환경을 중요시합니다. 이런 관점에서 해당 메소드는 다음의 딜레마에 빠지게 됩니다.

어째서 안전한 Off-Heap 데이터를 다시 불안정한 Java Heap으로 복사하는가?

이 메소드는 분명 편의성을 위한 기능이지만, Java Heap에 올라간 데이터는 GC가 동작하면서 메모리 위치를 옮길(Relocation) 수 있고, 이 과정에서 지워지지 않는 고아 복사본이 메모리 어딘가에 남을 수 있습니다.

이에 따라 1.1.0-Alpha 버전에서 얽힘 라이브러리의 보안 철학에 따라 이 메소드는 Unsafe 처리되어 있지만, 다음 릴리즈 및 알파에서 완전히 제거되어야 합니다.

이에 따라 heap으로 넘어온 세그먼트를 조작하는 다음의 메소드도 제거됩니다.

  • #zeroingExportedData()
  • #getSegmentData()
  • #getSegmentDataBase64()

이 기능은 강화되어 ByteBuffer를 반환하도록 수정할 수 있습니다. MemorySegment#asByteBuffer()를 사용하면 이 과정이 강하며 수월해집니다.

Metadata

Metadata

Assignees

No one assigned

    Labels

    IMPORTANT FIXthis is a important!!!! case: SECURITY FIX, MAIN SYNTAX FIX, ... and other important fix...

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions