토스ㅣSLASH 21 - 메모리에 남지 않는 문자열
SLASH 토스 · YouTube
AI 핵심 요약
민감한 문자열이 메모리에서 해제된 뒤에도 흔적이 남는 문제를 줄이기 위해, Swift 문자열의 메모리 표현과 copy-on-write 동작을 살펴봤습니다. 해제 시점을 추적하기 어려운 String 대신 NSString 계열과 associated object를 이용해 버퍼의 수명을 관리하고, 해제 시 버퍼를 덮어쓴 뒤 메모리에서 해제하는 방식을 구현했습니다. 이 아이디어를 암호화된 문자열 타입에 적용하고, 비밀번호 입력 중에는 텍스트 필드에 남는 원문을 다른 값으로 교체하도록 개선했습니다. 메모리 흔적을 완전히 없애기 어렵더라도 버퍼를 명시적으로 지우고 입력 과정의 원문 노출을 줄이면 민감 정보가 메모리 덤프에서 추적될 위험을 낮출 수 있습니다.
- Swift의 String은 값 타입이자 copy-on-write로 동작하므로, 해제 시점을 추적해야 한다면 참조 타입인 NSString 계열을 활용할 수 있습니다.
- UTF-8 문자열 버퍼는 문자 수가 아니라 인코딩에 필요한 최대 바이트 크기를 기준으로 할당해야 잘림을 피할 수 있습니다.
- NSMutableString을 만들 때 바이트 버퍼를 복사하지 않도록 구성하고, 해제 시점에 버퍼를 덮어쓴 뒤 직접 해제하는 방식을 적용할 수 있습니다.
- 비밀번호 입력 필드에서는 입력된 원문을 그대로 두지 않고 매 입력마다 다른 값으로 교체해 메모리 덤프에서 원문을 추적하기 어렵게 할 수 있습니다.
소개
메모리에 남지 않는 문자열을 통해 민감한 정보를 안전하게 사용하는 방법을 공유합니다. 안정원 / 토스 iOS Developer 토스 개발자 컨퍼런스 SLASH에 대한 자세한 정보는 👉🏻 https://toss.im/slash-21 컨퍼런스 및 세션에 대한 문의는 👉🏻 slash@toss.im #토스 #개발자컨퍼런스 #SLASH
비슷한 학습 자료
컨퍼런스 SLASH
토스ㅣSLASH 23 - 누구나 쓸 수 있는 접근성 높은 토스 만들기
컨퍼런스 SLASH
디지털화로 더 편리해진 금융, 과연 모두에게 편리해졌을까요? 모두가 평등하게, 쉽고 편리한 금융 경험을 할 수 있도록 ‘접근성’을 높인 토스의 노력을 소개합니다. 최동근 / 토스 Andriod Developer 발표 자료 👉🏻 https://bit.ly/42xGdvd 토스 개발자 컨퍼런스 SLASH에 대한 자세한 정보는 👉🏻 https://bit.ly/43kW3tO 컨퍼런스 및 세션에 대한 문의는 👉🏻 slash@toss.im 토스에 합류하고 싶다면 👉🏻 https://toss.im/career/jobs #디자인시스템 #접근성 #androiddeveloper #토스 #개발자컨퍼런스 #SLASH *본 발표자료의 저작권은 연사에 있으며, 저작권자의 사전 서면 동의 없이 자료의 일부 또는 전부를 이용하거나 배포할 수 없습니다. *또한 해당 자료를 복제하여 SLASH 행사 홈페이지를 제외한 온라인상에 게재하는 행위는 연사가 동의한 저작권 및 배포전송권에 위배됩...
모바일 앱 개발 UI/UX
컨퍼런스 SLASH
토스ㅣSLASH 23 - 프로파일러로 시스템 성능 향상시키기
컨퍼런스 SLASH
서비스 운영 과정 속 여러 장애들, 어떻게 그 원인을 빠르고 정확하게 파악할 수 있을까요? 상황에 맞는 다양한 ‘프로파일러’로 문제 원인을 파악하고 또 해결한 과정을 소개합니다. 조유성 / 토스 Frontend Developer 발표 자료 👉🏻 https://bit.ly/42ypWpE 토스 개발자 컨퍼런스 SLASH에 대한 자세한 정보는 👉🏻 https://bit.ly/43kW3tO 컨퍼런스 및 세션에 대한 문의는 👉🏻 slash@toss.im 토스에 합류하고 싶다면 👉🏻 https://toss.im/career/jobs #profiler #서비스성능 #serverdeveloper #토스 #개발자컨퍼런스 #SLASH *본 발표자료의 저작권은 연사에 있으며, 저작권자의 사전 서면 동의 없이 자료의 일부 또는 전부를 이용하거나 배포할 수 없습니다. *또한 해당 자료를 복제하여 SLASH 행사 홈페이지를 제외한 온라인상에 게재하는 행위는 연사가 동의한 저작...
백엔드 데브옵스 · 인프라 로드맵 2개에 담김
컨퍼런스 SLASH
토스ㅣSLASH 22 - 지속 성장 가능한 코드를 만들어가는 방법
컨퍼런스 SLASH
우리가 만드는 코드가 처음부터 완벽할 수는 없습니다. 하지만 서비스가 폭발적으로 성장하려고 할 때 발목을 잡아선 안 되죠. 하루 이틀 운영되고 끝인 게 아닌, 오래 살아 있을 수 있는 좋은 소프트웨어는 어떤 모습일까요? 김재민 / 토스 Server Developer 발표 자료 👉🏻 https://bit.ly/3QkUCWs 토스 개발자 컨퍼런스 SLASH에 대한 자세한 정보는 👉🏻 https://toss.im/slash-22 컨퍼런스 및 세션에 대한 문의는 👉🏻 slash@toss.im #토스 #개발자컨퍼런스 #SLASH
개발 · 프로그래밍 기타
컨퍼런스 SLASH