얽힘 라이브러리는 극한의 보안 환경을 중요시합니다. 이런 관점에서 해당 메소드는 다음의 딜레마에 빠지게 됩니다.
어째서 안전한 Off-Heap 데이터를 다시 불안정한 Java Heap으로 복사하는가?
이 메소드는 분명 편의성을 위한 기능이지만, Java Heap에 올라간 데이터는 GC가 동작하면서 메모리 위치를 옮길(Relocation) 수 있고, 이 과정에서 지워지지 않는 고아 복사본이 메모리 어딘가에 남을 수 있습니다.
이에 따라 1.1.0-Alpha 버전에서 얽힘 라이브러리의 보안 철학에 따라 이 메소드는 Unsafe 처리되어 있지만, 다음 릴리즈 및 알파에서 완전히 제거되어야 합니다.
이에 따라 heap으로 넘어온 세그먼트를 조작하는 다음의 메소드도 제거됩니다.
#zeroingExportedData()
#getSegmentData()
#getSegmentDataBase64()
이 기능은 강화되어 ByteBuffer를 반환하도록 수정할 수 있습니다. MemorySegment#asByteBuffer()를 사용하면 이 과정이 강하며 수월해집니다.
얽힘 라이브러리는 극한의 보안 환경을 중요시합니다. 이런 관점에서 해당 메소드는 다음의 딜레마에 빠지게 됩니다.
이 메소드는 분명 편의성을 위한 기능이지만, Java Heap에 올라간 데이터는 GC가 동작하면서 메모리 위치를 옮길(Relocation) 수 있고, 이 과정에서 지워지지 않는 고아 복사본이 메모리 어딘가에 남을 수 있습니다.
이에 따라
1.1.0-Alpha버전에서 얽힘 라이브러리의 보안 철학에 따라 이 메소드는Unsafe처리되어 있지만, 다음 릴리즈 및 알파에서 완전히 제거되어야 합니다.이에 따라
heap으로 넘어온 세그먼트를 조작하는 다음의 메소드도 제거됩니다.#zeroingExportedData()#getSegmentData()#getSegmentDataBase64()이 기능은 강화되어
ByteBuffer를 반환하도록 수정할 수 있습니다.MemorySegment#asByteBuffer()를 사용하면 이 과정이 강하며 수월해집니다.