오랜만에 논쟁이 재미있네요~
(1) 스팀콘넥트에 대해서 정리해보겠습니다.
- 스팀콘넥트는 송금/임대 등의 기능이 필요할 때, 키를 서버로 전송하지 않고 로컬에서 서명 처리하여 스팀 블록체인에 직접 브로드캐스팅한다. (보안문제 없음)
- 포스팅키/메모키는 써드파티 앱들이 재인증없이 사용할 수 있도록 서버에 저장하고 해당 키를 사용할 수 있는 토큰을 써드파티 앱에 제공한다. (유토피안 해킹에 해당하는 내용. 중앙화된 방식으로 인한 보안 문제는 있으나, 포스팅키라서 위험도는 낮다)
- 스팀콘넥트는 웹페이지로 제공하고 있으니, 비밀번호나 액티브 키는 사파리/크롬에 비밀번호로 저장된다. 액티브 키를 송금 때마다 매번 입력해야 하는데, 사용상의 불편함 때문에 비밀번호 저장 기능을 이용하는 경우 정도는 허용할 수 있다. (이 경우의 위험도는 사파리나 크롬에 저장되는 비밀번호의 보안 수준에 따름)
이렇게 정리하면 될까요? 여기서 언급되지 않은 보안 문제는 똑같은 모양의 웹페이지를 이용한 피싱 공격이 있을 수 있을 것 같습니다. 웹페이지 기반의 암호화폐 월렛들이 공통적으로 갖고 있는 보안 위험이죠. 이런 정도의 보안 수준에 대한 평가는 제각각일 수 있으니 이 정도에서 만족하고, 다음 이슈로 넘어가겠습니다.
(2) 탈중앙화 블록체인에서 oauth 방식은 허용되어서는 안됩니다.
페이스북/구글 등 oauth 방식을 제공하는 건, 제 3자에 대한 신뢰 문제를 해결하려는 것이지, 보안 상에 문제가 없기 때문이 아닙니다. 지난 1년 동안 주변에서 페이스북 계정으로 타임라인에 성매매 광고가 달린 경우가 10건은 넘는 것 같습니다. 페이스북에는 자기 자산이 없기 때문에 문제가 덜 했던 거지, 자산이 있었다면 그게 어찌 조용히 넘어갈 일이겠습니까.
스팀콘넥트가 oauth 방식으로 신뢰 문제가 아닌 보안 문제를 해결할 수 있을까요? 제가 모이또의 보안을 설계하면서 가정한 여러 공격들 중 하나만 언급해보겠습니다.
제 3자 웹/앱이 사용자에게 비밀번호나 액티브 키를 입력할 것을 요구하여 탈취하는 경우
스팀콘넥트가 매번 액티브 키를 입력받으니 안전한 것처럼 말씀하시지만 그거야 말로 위험합니다. 사용자들이 액티브 키를 입력하는 것을 너무 당연하게 만드니까요. 해커가 스팀콘넥트를 사용하는 웹페이지를 만들어서 정상적으로 스팀콘넥트로 연결시키다가 가끔씩 스팀콘넥트와 동일한 모양의 가짜 페이지를 보여주고 액티브 키를 넣으라고 하면 어떻게 될까요?
모이또는 이 공격을 피하기 위해, 제 3자 앱이 액티브 키를 요구할 수 없도록 했습니다. 한번 로그인된 이후에는 보안 PIN 번호를 입력하도록 하며, 비밀번호나 액티브 키를 직접 입력받지 않도록 한 것입니다. 또한 이번 버전에는 아니지만 다음 버전에서는 사용자의 개인키로 보이는 입력은 아예 거부되도록 만들 예정입니다.
이외에도 여러 공격들을 가정했지만, 지면상 생략하겠습니다.
(3) "모이또가 Compromized 된 디바이스에 설치되면 어떤 일이 발생할까요?"
컴프로마이즈 되었다는 게 뭔지 잘 모르겠지만, 디바이스 전체의 권한이 해커에게 넘어간 정도라고 추측하겠습니다. 그렇다면 왜 이게 모이또가 받아야 할 비판인지 잘 모르겠습니다. 이 상황에서 스팀콘넥트는 안전한가요? 콜드 월렛(하드웨어 월렛) 이외에 저 상황에서 안전한 지갑이란 있을 수 없습니다.
해킹당해봐야 한계정이라고 하신것은 놀라운 발상입니다. 그 한계정이 개인에게는 전부입니다.
이 말은 사과를 받아야겠습니다. 제 말의 의도를 악의적으로 왜곡하셨습니다. 피해의 범위가 전체적이냐 국지적이냐는 논의라는 것을 아셨을 텐데, 이렇게 표현하는 이유를 짐작하기 어렵네요. 이건 스팀콘넥트가 액티브 키를 서버에 저장하지 않고 디바이스에만 저장하는 이유와도 같은 겁니다.
@absbear님 덕에 오랜만에 논쟁다운 논쟁을 해봅니다. 다른 분들도 함께 논쟁해봐도 좋을 것 같은데, 왠지 @ukk 님의 글에서 논쟁을 하는 게 많이 죄송하니, 다른 글타래를 만들어 봐야겠습니다.
RE: STIMCITY 셀러 필수! , 새로워진 스팀페이 파헤치기.