누구나 마음만 먹으면 스팀 블록체인과 보상 시스템을 이용해서 유용하고 실제로 사용 가능한 dApp을 만들 수 있습니다.
그리고 dApp을 만들고 서비스하려면 사용자 로그인 기능이 필수인데요. Steemit.com에서 공식적으로 제공하는 Third-Party dApp용 사용자 로그인 서비스가 SteemConnect입니다.
Steemit.com 입장에서는 더 많은 dApp이 나오길 바라면서 개발자들이 이용하기 쉽게 만든 서비스인 것 같은데요.
저는 이 SteemConnect 때문에 사용자들도 dApp을 사용하기 꺼려하게되고, 개발자들도 dApp을 쉽게 만들지 못하는게 아닌가 싶습니다. (저는 그렇더라고요ㅠ)
바로 SteemConnect가 사용자에게 active key나 master password를 요구한다는 점 때문인데요. Steemit.com이 마치 스팀 블록체인을 자신들의 프라이빗 체인이라고 생각하고 자기들은 사용자들에게 active key를 아무때나 요구해도 된다고 생각하고 만든 것 처럼 보여서 보안적으로 굉장히 위험하다고 생각합니다.
posting key만으로도 충분한 작업을 하려고 해도 로그인 시에 Third-Party dApp에게 권한을 부여하기 위해서 무조건 active key를 요구합니다. 사용자는 steemconnect의 로그인 페이지만 봐서는 이게 해킹당한 페이지인지, 정상적인 페이지인지 쉽게 구분할 수 없습니다.
dApp에 나름 멋있게 OAuth를 적용해보려다, 더 큰 취약점을 만든 것처럼 보입니다.
현재의 dApp 생태계에서는 posting key로 쉽게 로그인할 수 있게 만들고, 문제가 생겼을 때 posting key를 revoke하는게 현실적으로 더 나은 방법이 아닌가 싶네요.
그렇죠 실질적으로 위임키, 예를 들어 포스팅 마스터키가 하나 더 있어야하지 않나싶네요. 지갑을 건드리는 키를 이용해서 권한 위임이 가능하도록 된게 디자인 실수 아닌가 싶네요.
맞습니다. 사용 측면에서 굉장히 크리티컬하다고 생각해요.
test
몬거 있어보이심 전 생각도 안해 봤는데요
제3자가 master password 키값을 요구한다는건 정말 위험할 수 있는것 같습니다. 뭘 믿고? 키를 줘야하는지 ㅎㅎ (이런 건 STEEMIT 공식사이트를 통해서만 이루어지는게 맞지 않을까요?)
인증에대해 조금만 생각해보면, 사용자는 사이트를 인증하기위해 ID + PW를 넣지만 사이트는 사용자에 대해 인증을 잘 안하죠. (웹브라우저 자물쇠의 안전함 정도가 다랄까요? 피싱사이트 등도 인증서 발급이되고 이를 유심히 못보면 당하죠. 구글 바이낸스 광고 사례가 그랬었죠)
좋으신 지적 같습니다~ ^^
말씀하신 것처럼 사이트가 변조당하지 않았음을 확인할 수 있는 수단이 생기면 굉장히 편리할 것 같네요!!
steemconnect를 steem 플랫폼에서 자신의 안전한 개인영역에서 구동할 수 있게 하면 어떨까 하네요. 개발자가 아니라서 어떻게 dapp과 연결해야 할지는 잘 모르겠습니다.