대표님들 힘내세요
사회복무요원으로 복무하던 시절, 고용노동부와 행정안전부의 요청으로 "행정 전산의 개선점"을 자문해 주던 시절. 대구지방병무청에서는 필자에게 직접 전화를 걸어 협박을 한 적이 있었다.
"일개 사회복무요원이 국가전산망의 허점을 지적하는 것은 공무원의 품위유지의무 위반" 이므로 당장 필자의 불법적인 자문행위를 멈출 것을 강력하게 경고한 것이다.
당시에도 이것이 무척이나 황당한 이야기라 생각하였기에 이후 필자를 초청한 모든 기관에게 이 이야기를 들려주었다. 청와대에서 이 이야기를 했을 때 해결해 주시겠다던 고위공무원의 발언이 어찌나 멋있던지. 여하튼 간만에 추억에 젖어들게 된 이유가 있다.
바로 오늘, 필자는 민간인 신분으로 국가전산망의 허점을 지적하는 글을 쓸 것이기 때문이다.
중소벤처기업부 창업진흥원에서 운영하는 <온라인 법인설립 시스템>은 집에서도 법인을 설립할 수 있도록 도와주는 플랫폼이다. 무척이나 편리한 사이트지만, 전산망이 제대로 관리되고 있지 않아 갖가지 버그들이 산재해 있다.
예를 들어 보자면 정관 작성 과정에서의 유별난 버그가 있다. 시스템이 기본적으로 제공하는 수정이 불가능한 조항이 몇 개 있고, 그 밑으로는 사용자가 수정할 수 있는 조항들이 나열되어 있는데 여기에 새로운 조항을 계속 추가하다가 조문의 수가 40여개가 되는 순간, 임시저장을 누르면 사용자가 임의로 추가한 조문들 중 일부가 시스템 기본 조항으로 변환되어 수정이나 삭제가 불가능해지는 버그가 있다.
콜센터가 상당히 친절한 편이라 전화로 해결해 보면 좋겠으나, 점심시간이나 주말, 야간시간에는 이마저도 쉽지 않다. 이 경우 정관을 삭제하거나 수정하는 것이 전산상으로 막혀 있어 곤란한데, 법인 구성원을 변경하면 자동으로 정관이 초기화되어버리는 점을 응용하면 문제를 피해갈 수 있다. 단, 정관은 처음부터 다시 작성해야 한다. 문제의 해결이라기 보다는 건물에 갇혀 빠져나가지 못하는 상황에서 창 밖으로 뛰어내리는 격의 해결방안이라고 할 수 있겠다.
그 외에도 법인구성원으로 로그인하여 서명을 하는 과정에서 "제3자 개인정보 제공 동의를 해야 진행 가능하다."라는 메시지가 무한정 발생하는 버그도 있다. 화면 그 어디에도 이런 동의를 하는 버튼은 존재하지 않는데 말이다. 이 문제가 반복될 경우 메인화면으로 돌아갔다가 서명 화면으로 접속하는 행위를 반복하다 보면 어느 순간에 문제가 해결되어 정상적으로 공동인증서 서명이 가능해진다.
사실 필자는 온라인 법인설립 시스템의 비교적 초창기 업데이트 과정을 목격한 세대다. 법인 설립 과정에는 법인인감도장을 스캔하여 업로드하는 과정이 필요한 데, 당시 필자를 비롯한 KAIST 학생들은 실무자에게 이렇게 질문하였다.
"스마트폰 스캐너 앱으로 찍으면 되는데 왜 굳이 정부인증을 받은 복합기를 구매하도록 유도하는가?"
당시 그 실무자는 이렇게 대답했다.
"스마트폰의 촬영 각도에 따라 도장 그림이 기울어지거나 찌그러질 수 있어 스캐너를 사용해야 한다."
수평계가 달린 카메라 앱 하나만 만들면 해결될 문제인 것 같으나 실무자는 이를 해결할 의사도, 피드백을 기관에 전달할 의사도 없어 보였다. 당시에는 아직 스마트폰을 사용하지 않는 사람들도 있었기에 이렇게까지 스마트폰이 보편화된 세상을 생각하지 못하셨던 것 같다. 혹은 복합기 판매에 긍정적인 영향을 주고 싶었던 분이 계시거나.
여하튼, 당시로부터 10년 이상이 지난 현 시점에서는 스마트폰으로 촬영한 도장 사진을 업로드 할 수 있도록 시스템이 개편되었다. 그런데 여기서 문제가 발생했다.
스마트폰으로 도장을 찍어 업로드하려면 전용 앱을 설치해야 한다. 이 앱에서 사진을 찍으면 사진 파일이 폰에 저장되는데, 이렇게 저장된 이미지를 폰에서 업로드하면 스캐너를 대체할 수 있다는 것이다.
그런데 문제가 있다. 안드로이드에서는 앱이 정상작동하지만, 아이폰에서는 앱이 작동하지 않는다.
그래서일까? 앱 리뷰에는 끝없는 극찬이 가득하다.
물론 안드로이드 스토어에서도 극찬 세례가 쏟아지고 있지만, 적어도 안드로이드에서는 답답함을 견디다 보면 도장 이미지 촬영부터 업로드까지의 절차가 진행되기는 한다. 반면 아이폰 쪽에서는 아예 먹통이다. 그 이유는 다음과 같다.
아이폰은 보안이 철저한 편이라, A앱에서 촬영한 데이터를 스마트폰에 저장하거나 B앱으로 넘겨주려면 별도의 권한 확인이 필요하다. 따라서, 사용자로부터 별도의 권한을 부여받지 못한 앱으로 아무리 열심히 사진을 촬영하더라도 이 사진은 사용자의 갤러리에 저장될 수 없다.
그런데 iOS용 법인설립 인감스캔 앱에는 사용자에게 권한을 요청하는 단계가 없다. 그러니 이 앱에서 아무리 고생하며 도장 사진을 찍더라도, 찍은 사진을 갤러리에 저장할 방법 자체가 없는 것이다.
게다가 이 앱은 아이폰의 망원 카메라만을 사용하도록 설정되어 있어 접사 사진 촬영이 불가능하다. 카메라를 변경하는 기능도, 멀리서 초점을 잡고서 화면을 확대하는 기능도 제공하지 않는다.
그러니 앱이 시키는대로 도장 찍힌 종이 위에서 아무리 카메라를 움직여도 초점이 잡히지 않은, 뿌연 사진만을 찍게 되는 것이다. 앱을 만들 때 사용자가 어떤 상황에서 사진을 촬영하게 될 것인가를 전혀 고려하지 않은 것이다. 어디 다른데서 코드를 그대로 긁어왔기에 카메라를 변경하는 방법을 도무지 몰랐던 것이 아닐까?
그래서 위 사진과 같이 공식 매뉴얼에서조차 도장 사진의 초점을 잡지 못하고 있는 것을 볼 수 있다. 이 앱을 납품받고 검수조서를 써 준 공무원은 앱을 실행해보지 않은 것이 아닐까?
공무원들 하는 게 다 그렇지 뭐.
검색을 통해 이 글에 유입되신 분들은 이미 상술한 문제점들을 깊게 공감하고 계실 것이므로 빠르게 해결책을 제시하겠다. 온라인 법인설립시스템에는 약간의 취약점이 있다. 이것을 활용하면 문제를 해결할 수 있다.
1. 먼저 앱에서 표시되는 가이드라인을 무시하고 아무렇게나 도장 사진을 찍는다. 이왕이면 도장 옆에 까만색 물건을 올려둔 둔채로 사진을 찍는다. 앱의 도장 인식 알고리즘에 취약점이 있어 하얀 배경 내에 진한 색 물체가 찍히면 이 것 전체를 도장으로 인식해버리는 것을 이용하는 것이다. 굳이 도장이 아니라 명함이나 페레로 로쉐 껍질 같은걸 찍어도 괜찮다.
2. 인감 업로드 버튼을 누른다. 여기서 두 번째 취약점이 있는데, 앱 내부에서 로그인->인증->업로드 절차를 수행하는 것이 아니라 사파리가 실행될 것이다. 카메라 초점 조절도 못 하는 앱인데 여기서 인증절차같은 중요한 업무를 수행하는 것은 당연히 불가능할 것이다. 그렇기에 법인설립 시스템의 웹페이지 안에 숨겨진 페이지를 만들어두고, 여기로 자동으로 연결시켜 주는 것이다.
이 사이트의 URL은 다음과 같다.
앱을 통한 접근이 번거롭다면 위 링크를 바로 클릭해도 상관없다.
원래 PC버전 사이트로 접속하면 위와 같이 스캐너를 활용해야 도장 이미지를 업로드할 수 있게 되어 있으나 모바일용 웹브라우저에서 위 URL로 접속하면 JPG 파일을 업로드하여 이를 대신할 수 있다.
3. 모바일 브라우저에서 위 사이트로 접속하여 업로드를 수행하는 것이 번거롭다면 PC에서 블루스택 등을 활용하여도 좋다.
블루스택이 아니라 사파리에서 접속하여도 정상 작동한다.
이제 업로드할 도장 이미지를 생성해야 한다. <Office Lense>같은 검증된 스캐너 앱을 활용하여 도장 이미지를 스캔한 뒤 포토샵에서 누끼를 따고, 레이어의 배경을 흰색으로 칠한다. 그 후 위 규격을 따라 jpg 이미지로 추출해낸다.
이 상태로 업로드를 시도하면 "확장자가 다르다"거나 "파일명 규격이 어긋난다"는 등의 에러메시지가 발생하며 업로드가 중단된다.
앱으로 촬영하지 않은 이미지를 아무렇게나 업로드하는 것을 방지하기 위하여 사진 파일의 이름이 규격화되어있는지 여부를 일종의 보안장치로 사용한 것 같은데. 다행히 친절하게도 매뉴얼에서 규격화된 파일명을 노출하고 있으므로 이 파일명을 그대로 사용하면 도장 업로드를 정상적으로 수행할 수 있다. 파일명을 위 스크린샷의 파일명과 동일하게 바꾸고 업로드하자. 이게 세 번째 취약점이다.
아, 이왕이면 숫자 첫 여덟 자리는 오늘 날짜로 수정하고 업로드하는 것을 추천한다. 현재 시스템상, 사진 파일에 별도의 암호화 과정을 전혀 수행하지 않으므로, 파일명을 수정하여 현재 날짜로 고친다면 전산을 열어서 아무리 뒤져봐도 운영진 측에서 공식앱으로 찍어 업로드한 파일과 이 글에서 소개한 방법으로 업로드한 파일을 구분할 방법이 없다.
모쪼록 작동 안 되는 앱을 붙들고 시간과 감정을 소모하셨을 대표님들께 이 글이 도움이 되기를 바란다.
결과적으로 앱이 먹통이 된 이유 역시 앱 제작이 미숙했기 때문이고, 이를 우회하여 작업을 하는것이 가능한 이유 역시 앱 제작이 미숙했기 때문이다. 앱 안에서 공동인증서나 금융인증서, 모바일 본인인증 등을 통하여 사진을 업로드하도록 만들었다면 모든 것이 한번에 해결되었을 것인데 안타깝다. API가 잘 나와 있어 매뉴얼만 따라 하면 앱에 곧바로 부착할 수 있는 기능들인데 이걸 안 하고 이상한 방법으로 우회하네.
덕분에 복합기 안 사고 잘 해결할 수 있었으니 다행이다.
다른 취약점도 진짜 많은 플랫폼인데 그런건 공개적으로 게시하기에는 적절하지 않으니 이만 줄이겠다.
이 글은 중소기업 창업자의 불편 해소라는 공익적 목적으로 작성되었습니다.