매거진 나의 여정

모듈화

2025. 6. 17.

by 한상훈
ChatGPT Image 2025년 6월 15일 오후 07_00_05.png

요즘은 모듈화에 집중하고 있다. 큰 프로젝트 하나에 온갖 기능을 다 넣어 제품을 구현하는 것이 아닌 핵심 요소를 분리하는 추상화를 적용한다. 그렇게 작업을 진행하면서 몇 개는 공개를 해두었다.



Graygate Cypher는 종단 간 암호화를 제공하는 암호화 모듈이다. 클라이언트만이 메시지를 복호화할 수 있고 파일도 복호화하여 조회 가능하다. 반면 제삼자나 서비스 제공자는 조회할 방법이 단 하나도 없다. 이 과정에서 몇 가지 고민을 해보기도 했다.


1. 공개키 회전

몇몇의 공개키 암호화 방식을 적용하는 제품에는 공개키 회전을 통해 공개키의 만료를 의도적으로 구현한다. 그러나 내 경우엔 회전은 고려하지 않았다. 클라이언트가 가진 마스터키에 절대적으로 의존하고 해당 키는 언제나 클라이언트에서 온전히 보호되어야 한다. 하나의 키에 절대적 권한을 양도하는 방식에 대해 우려를 가질 수도 있지만 아이러니하게도 가장 많은 사용자들이 믿고 사용하는 암호화폐 지갑도 하나의 시드 구문, 하나의 액세스 키를 통해 구현된다. 내가 의도한 것은 회전되는 키가 아닌 지속적으로 유지되는 키 방식이다.


2. GCM 모드 미적용

GCM은 필요한 경우가 있고 과도한 경우가 있다. 대표적으로 서버 측 데이터 무결성 검증의 필요, 데이터 전송 중 변조의 위험, 여러 사용자 간의 공유되는 시나리오에서의 무결성 보장 등의 경우다. 하지만 내 시나리오에서는 위의 위험성은 없었다. 암호화 복호화는 클라이언트 측에 전적으로 의존하며 서버 측에는 아무런 영향을 받지 않는다. 또한 새로운 파일 데이터에 대해 새로운 키로 재암호화가 적용된다. 즉 앞서 설정된 마스터 키에 해당하는 클라이언트 해킹이 이뤄지지 않는 한 뚫릴 여지가 없다. 추가 인증에 대한 구현이 들어간다면 불필요한 오버헤드라 볼 수 있다.


3. RSA

RSA-OAEP를 사용하고 SHA-256 해시 함수가 적용되었다. MGF1에 SHA-256을 사용했기에 상당히 높은 수준의 암호화가 적용되었다 볼 수 있다. 먼 훗날 양자 컴퓨터가 도래해 SHA-256도 언젠간 위험해지겠지만 그전까지는 위험해지기 어려운 암호화 방식이다. 당연하게도 RSA-OAEP를 적용했다면 패딩 오라클 공격에 대한 방어도 포함된다.


4. 패딩 오라클 공격

현시점에서 패딩 오라클 공격을 막기 위해 GCM 모드를 비롯한 추가 처리를 해도 됐으나 과한 개발이기도 했다. 패딩 오라클은 서버가 잘못된 패딩을 발견했을 때 특별한 에러 메시지를 반환한다면 이를 이용해 암호화된 데이터 내용을 추측하는 공격에 해당한다. 이 역시 서버와 클라이언트 측에서 동시에 보호해 줄 수 있다. 애초에 모든 로직이 종단 간 상황에 의존하고 있기 때문에 큰 문제가 되기 어렵다.


종단 간 암호화는 일반적인 플랫폼에서 제공하지 않고, 개인정보를 보호해주어야 하는 일부 제품만 극단적으로 지키곤 한다. 내가 바라는 제품도 그러하다. 지난 수년의 시간을 보내오면서 나의 관심은 정보의 세계로 점점 진해지고 있다. 과거엔 OS를 만드는 게 목표였다면 이제는 그렇지 않다. 현시점에 가장 큰 관심은 보안과 정보이고 빅 브라더가 감시 불가능한 암호화 체계로 구현된 서비스를 만들고 싶다. 엄밀히 말하자면 만드는 건 이젠 일도 아니다. 만드는 게 중요한 게 아닌 이것을 사람들에게 공급할 때 지속가능한 수익 모델이 중요했다.


대학생 시절에는 스스로 온전한 제품을 만들 수 있는 단계에 올라서면 얼마나 좋을까 하며 살아왔지만, 10년이 조금 넘는 세월을 보내며 그 단계에는 도착했으니 이제 다음 단계로 가고 있다. 어쩌면 이 꿈을 이루기 위해서는 한국을 떠나는 게 유일한 선택지라는 생각을 하곤 한다. 내가 필요로 하는 파트너들은 한국의 따뜻한 온기를 누린 이들이 아닌 세상의 참극을 정면으로 마주하며 살아온 이들일 것 같다.

keyword
매거진의 이전글선명함