Steemconnect 인증의 문제점 + 스팀커넥트 유료화 가능성 등 변경사항 소식

in #kr6 years ago (edited)

이글은 제 유토피안 포스팅인 영문버전 [security] Misuse of Steemconnect login (shouldn't ask active key for every login)의 일부 한글판 + 스팀커넥트 소식을 담고 있습니다. 참고로 제 유토피안 영문 포스팅은 늘 짧은 한글 요약을 댓글로 달아두니 참고하세요. 어쩌면 요점만 더 빨리 알 수 있고 좋을지도^^ 그렇게 요약다는대신 따로 한글판 글은 올리지 않는데 이 경우는 (비록 유저가 딱히 할 수 있는 것은 없지만) 제 개인적으로는 중요한 문제라고 생각하여 비교적 최근의 스팀커넥트 소식과 함께 전해드립니다.

스팀커넥트 인증의 문제점과 관련하여 일반유저가 할 수 있는 것은 딱히 없습니다. 굳이 액티브키 재입력을 피하고 싶다면 아래 소개해드린 우회법을 활용하시면 됩니다.


현재 스팀커넥트 인증 방식의 문제점

  • 글 작성이 필요한 앱에 로그인시 이미 posting권한을 위임한 이후에도 매번 active key를 요구함: busy, steempeak, partiko, esteem, @steemhunt, @tasteem, @artisteem (@ntopaz) 등 예약포스팅 제외 자체 글 쓰기 기능이 없는 steemauto를 제외하고는 사실상 제가 아는 모든 앱



순정판 steemit.com을 제외하고는 스팀 계정 인증에 사실상 거의 모두가 스팀커넥트를 사용한다고 해도 무방할 정도입니다.

만약 어떤 듣보잡^^ 앱이 스팀커넥트 안쓰고 스팀 계정 암호 넣으라면 아마 포스팅키조차 넣기 꺼려하실 분들 많으실 겁니다. 아닌 분 계시면 제가 당당하게 마스터키를 요구하는 앱을 만들어서 보내드릴테니 연락주세요ㅎㅎ 하지만 스팀커넥트는 오픈소스에 스팀잇의 지원을 받기에(현재형인지는 조금 불확실한데 이는 아래 스팀커넥트 소식을 참고하세요) 믿고 사용하고 있습니다.

스팀커넥트로 포스팅 등의 기능이 있는 앱, 그러니까 사실상 거의 모든 앱을 쓰려면 우선 해당 앱에 포스팅 권한을 위임하는 절차를 거칩니다. 포스팅 권한을 넘긴다는 것은 받은 사람이 포스팅키를 마음대로, 즉 보팅이나 포스팅을 위임한 사람의 아이디로 마음대로 할 수 있다는 것을 의미합니다. 스팀오토가 내가 자는사이에 보팅을 한다던지, steempeak이 예약 포스팅을 한다던지, dclick 광고 자동업데이트 옵션 사용하시는 분이라면 나도 모르게 광고가 업데이트 된다는 것 등을 생각하시면 이해가 쉬우실 것 같습니다.

그렇게 포스팅 권한이 위임된 목록은 steemd.com가시면 확인하실 수 있습니다.

포스팅 권한이 위임된 앱목록들

또는

https://app.steemconnect.com/apps/authorized 에 가서 확인하실 수도 있고 이 방법의 장점은 더 이상 안쓰는 앱이나 수상한 앱들이 보이면 바로 권한위임한 것을 취소할 수 있습니다.

물론 이렇게 권한을 위임하는 것 자체는 문제가 아닙니다. 그럼 뭐가 문제냐?

이미 권한을 위임했음에도 불구하고 다음번 로그인시에도 다시 active key를 요구하는 인증방식이 정말 잘못된 것입니다. 전 이 정도면 솔직히 보안 버그라고 부르고 싶은데 뭐 동작은 하긴 하니까 버그가 아니라해도 할 말은 없습니다.

저도 처음엔 busy가 아무래도 좀 쓰기 쉽게 나온거니 active key가 필요한 파워업, 송금과정에서도 추가인증을 거치지 않기 위해 active key를 받나? 라고 생각했습니다. 하지만 전혀 그와 관계없습니다. 실제 스팀커넥트 자체가 active key가 필요한 트랜잭션을 수행할 시에는 매번 다시 키 입력을 요구합니다. 이부분은 전 당연히 그래야한다고 생각하고요. active key가 저장되어 나도 모르게 송금빠져나가고 그런 것보다 훨씬 낳지요.

그럼 왜 이런 문제가 생기는가.

원인은 사실 단순 무식합니다. 그냥 로그인을 할때 이미 해당앱에 포스팅권한을 위임했는지를 체크를 안하고 인증방식을 똑같이 하다보니 해당앱은 쓰기 권한을 필요로 하니 그럼 앱에 포스팅권한을 위임해야하니 다시 active key입력을 요구하는 것입니다.

물론 대개의 경우 개인 컴퓨터라면 이미 저장된 스팀커넥트 세션을 이용하여 암호를 다시 입력할 필요 자체가 없습니다. 하지만 새로운 컴퓨터, 브라우저에서 로그인하거나, 어떤 이유에서든 세션이 만료되어 다시 로그인할 때 이미 포스팅 권한을 위임했음에도 재차 위임이 필요한 것으로 간주하여 또다시 액티브키를 요구하는 현재 방식은 매우 잘 못된 것입니다.

물론 동작하는데는 아무 문제없죠. 매번 마스터키 써도 동작하는 것과 다를게 없습니다.

하지만 키라는 것이 외워서 칠 수 있는 것도 아니고 복붙해야할텐데 보통 이 복붙해오는 소스의 보안관리가 허술한 사용자들이 많습니다. 이러다 액티브키 유출되면 바로 해커가 돈 빼가거나 파워다운할 수 있는 것입니다.

스팀커넥트 깃허브에도 이슈를 올려두었고 유토피안 포스팅도 작성했으니 지금버전이든 조만간 나온다는 SC3 버전에서 해결이 되길 기대하는 수밖에 없습니다.

현재도 포스팅키로 로그인하는 편법이 존재

혹시 포스팅키로 로그인이 애초에 불가능한 것 아닌가 생각하실 분도 계실지 몰라 이것이 실제 가능함도 보여드리고, 또 특히 보안상 포스팅키 로그인(물론 이미 최초 로그인시 권한 위임은 했다는 가정하에)을 고집하고 싶으신 분을 위해 약간 번거롭지만 직접발견한 꼼수를 소개해드립니다.

  • Busy를 예로 들어 설명해보겠습니다. (다시 말씀드리지만 이미 busy에 권한이 위임되어 있다는 전제하에 입니다. 한번은 무조건 위임절차가 필요합니다.)
  • 저장된 스팀커넥트 세션이 없는 브라우저나, incognito, private mode등으로 브라우저를 띄운다.
  • 혹시 못 믿겠는 사람은 Busy에 로그인하려는 척만해본다. 짤없이 active key이상을 요구하는 것을 확인만 하자. 로그인해버리면 그대로 세션 저장되므로 낭패.
  • 스팀커넥트를 쓰면서 포스팅키 로그인이 가능한 앱에 로그인을 한다. steem-ua 랭킹조회기능을 추천. steemauto도 가능 (단 최초 로그인의 경우 다시 active key 인증작업 절차를 거치게 될 수 있으므로 본인 랭킹도 구경하겸 steem-ua를 추천) 참고로 steem-ua의 경우 https://steem-ua.com/ 에서 View your UA score를 누르면 본인 인증만을 위해 포스팅키로 로그인하는 절차를 거칩니다.

View your UA score 누르면 나오는 화면. 실제 신분 인증만 할 것 같은 느낌을 준다.

그리고 실제 포스팅키로 로그인할 수 있다.

(참고로 steem-ua 랭킹은 비임대자도 로그인조차 없이 확인할 수 있는 방법이 있습니다. https://steem-ua.com:5000/accounts/아이디 와 같이 조회하시면 됩니다. 숨겨진 어둠의 경로같은 것 아니고 직접 steem-ua에서 공개한 주소입니다.)

  • 그럼 이제 다시 busy.org를 방문해본다. 그럼 아래와 같이 포스팅키만 입력하여 저장된 스팀커넥트 세션이 뜬다. (물론 본인 아이디로ㅎㅎ)

  • 이제 이걸 클릭하면 busy에 로그인 되며 글쓰기 등 모든 기능을 정상적으로 쓸 수 있다.

즉 포스팅키만으로 로그인이 될 수 있다는 것이고 이렇게 딴 앱을 통해 가지 않고도 해당앱을 방문했을 때 포스팅키만을 요구해야한다는 것입니다.

아래는 호기심있는 개발자분들을 위해서 알려드리면 제가 이걸 좀 더 디버깅을 해봤는데 posting key로그인을 하려면 아래 steem-ua예제처럼 scope=login을 써야합니다.

여기서 힌트를 얻어 아예 busy접속할때의 url을 scope=login을 써서 다음과 같이 바꿔서 로그인하면
https://app.steemconnect.com/oauth2/authorize?client_id=busy.app&redirect_uri=https%3A%2F%2Fbusy.org%2Fcallback&scope=login

로그인은 되지만 글도 안써지고 보팅도 아래처럼 에러가 나면서 안됩니다.

전 이거 자체가 문제는 아니라고 생각합니다. 이미 권한을 위임했지만 인증할때 자신이 요청한 레벨의 권한만 다시 부여받아 쓸 필요가 있을수도 있으니까요. 하지만 이미 권한을 위임한 앱에 포스팅키로 로그인할 방법은 존재해야한다는 것입니다.

현재 스팀커넥트가 포스팅권한 위임이 필요한 앱에 포스팅키로 로그인하는 방법이 없을 수도 있고(아마 그럴 것 같습니다.) 있는데 설명을 잘 안해놔서 모든 앱들이 잘 못 쓰고 있는 것일 수도 있겠는데 전 전자인 것 같습니다. 왜냐하면 스팀커넥트 CTO fabien이 과거 Busy에 있었는데 Busy부터 잘못된 방식으로 쓰고 있었다면 좀 말이 안되니까요. 조만간 스팀커넥트3으로 전환된다고 하니 그때라도 해결이 되길 기대하는 수밖에 없겠습니다.


스팀커넥트에 다가올 변화

그럼 Major incoming changes on SteemConnect에 나온 스팀커넥트에 일어날(난) 변화 소식입니다.

스팀커넥트 유료화 가능성 (포스팅에 최대 2.5% beneficiary 부과할지도) -> 현재 여러 지원을 통해 fee가 생기지 않을 가능성이 높아 보입니다.

원래 해당 포스팅에 재정적 지원을 받지 못할 경우 앞으로 스팀커넥트 API를 이용하여 포스팅할 경우 최대 2.5%의 beneficiary설정을 할 수도 있다고 했는데 포스팅 올라온지 얼마안되어 steemit에서 일단 8716.549 SBD (간지나게 스팀이 아닌 스달을 보냈습니다.)을 보내줘서 급한 불은 끈 것 같습니다.

얼마나 급했는지 하루도 안되어 바로 거래소행^^


실제 스팀커넥트는 과거에도 (정확히 어떤 식인지는 모르겠지만) 스팀잇 재단의 공식지원을 받는 곳이었는데 아마 그 관계가 월급 주듯 주는 식은 아니었던 것 같습니다. 어떤 근거로 저 금액이 산정된 것인지는 모르겠는데 앞으로 운영비 문제를 어떻게 할 것인지에 따라 유료화 문제가 다시 대두될 수도 있고 partiko사장님도 방문해서 협력하겠다는 의사를 밝힌거 보면 메이저댑들에서 뭔가 지원을 해줘서 유료화없이 사용하게 될 가능성이 저는 조금 더 높지 않을까 싶습니다.

스팀잇 steemit.com이 참 구려도ㅠㅠ 그래도 참 다양한 UI가 존재하여 취향따라 필요따라 쓸 수 있는 것이 스팀의 매력인 것 같고 거기엔 스팀커넥트의 공로가 매우큰데 앞으로 스팀키체인 프로젝트가 어떤식으로 발전해나갈지는 모르겠지만 많은 댑이 아직 스팀커넥트에 의존하는 상황에서 유료화는 안되길 바래봅니다.

개발자만 알면될 변화

앱 소유권을 넘겨주기로 (2월 15일에 완료됨)

원래는 스팀커넥트를 쓰려면 스팀커넥트 통해서 앱 계정을 만들면서 이게 주인이 스팀커넥트가 되었는데 해킹등에 취약한 구조가 될 수 있으니 소유권을 앱 주인에게 넘겨주기로 한 착한/옳은 결정입니다. 굳이 자신들이 가지고 있을 필요가 없었죠.

앱의 추가 설정정보를 앞으로는 json_metadata에 넣겠다.

원래는 앱의 설정정보를 자체 db에 관리해왔는데 탈중앙화에도 안좋으니 (제 추측으로는 경비절감을 위해) 그냥 스팀 온체인에 저장하겠다. 계정정보에 들어가는 json_metadata영역을 활용하겠다는 이야기입니다.


Sponsored ( Powered by dclick )

dclick-imagead

Sort:  

jayplayco님이 blockchainstudio님을 멘션하셨습니당. 아래 링크를 누르시면 연결되용~ ^^
jayplayco님의 [Utopian-io] 유토피안 트레일로 큐레이션 리워드 최대화

...topian.io 의 태그와 연동해서 올립니다. KR분들중에서 여기서 가장 왕성하게 활동하시는 것은 blockchainstudio님이신데, 저같은 코드알못에게는 넘사벽이라 보통 blog 태그에서 활동을 합니다.
결론부터 먼저 말...

이슈를 보니 예전에 fabien에게 제안했던 내용이 생각납니다.(2018년 4월). 당시 두 가지를 제안했습니다. 첫번째는 active key를 이용해 최초로 앱을 승인한 다음에 재방문했을때는 권한을 낮춘 키로 로그인 키를 재설정하는 UI를 제시하는 것이 어떻겠냐였습니다. 머 이런저런 설명은 했었는데 결론부터 이야기하자면 반영안되었습니다. 당시 2.0으로 넘어가는 과도기라서 그랬던거 같기고하고. 제가 설명이 부족해서 였는지는 모르겠네요.다른 하나는(이부분을 더 적극적으로 요구했습니다) 스팀 커넥트 로그인 안내 타이틀 문구 수정에 관한 것이었습니다. This operation requires your owner, active key or master password. => owner, master password 요거 좀 빼주라. master key가 왜 문구에 필요하냐. 앱 승인할 때 active key만 있으면 되는데.. 초보자들은 master key 입력하다가 복사&붙여넣기 잘못해서 해킹당할 위험이 높다..이런 취지로 설명했는데 반영이 안되었습니다..2.0 넘어가면 한 번 입력하고 나면 다시 키 입력할 위험이 줄어든다는 이유로 답변을 받았어요. (초점은 그게 아닌데 말이죠.) 제가 아니라 다른 분들도 의견은 남겼을거라고 생각합니다. 저는 그저 반영이 안되었을 뿐이라고..생각합니다. 어쩌면 스팀과 busy의 현재 모습을 보여주는 거라고 생각하구요.. 안타깝네요.

하긴 아무도 문제제기를 안하진 않았겠죠. 직접 하셨다니 역시 대단하십니다! 일단 제 생각에 핵심인 첫번째부분은 사용자가 이미 위임을 했는지 안했는지 알 수 없으므로 무조건 posting key로 시작을 하고 안되어 있으면 active를 넣도록 요구하는 식으로 변경되어야할텐데 우회하면 되는거보면 기술적으로 어렵진 않을 것 같은데 api자체를 그게 가능하지 않게 디자인해버렸던 것으로 추측합니다ㅠㅠ 아마 저렇게 돌아서 로그인하면 가능하다는 것 자체를 모르고 있었을지도.

두번째는 그부분도 말씀하신 것처럼 사실 표현이 좀 문제가 있지요. 낮은 키를 잃어버린 상황을 대비해서 master key도 가능하다는 식의 표현으로 써있어야하는데 길어지기도 하니 그냥 그뜻으로 알아듣겠지하고 놔둔 것 같습니다^^

참 유토피안도 시간을 반영안하는 문제 역시 이전에 나온 내용인데 지난번에 적극적으로 다시 의견개진해서 얼마전 반영이 되었습니다. 그들의 윗사람선에서는 또 계속 컴플레인이 나와야 변경할 구실도 생기니^^ 계속 의견 개진이 필요한 것 같더라고요. 재밌게도 봇 코딩하는 분의 글이 보팅을 못받을 위기에 처하자 바로 반영이ㅎㅎ 스팀커넥트도 어떻게든 반영이 되면 좋겠네요.

두 번째 문제를 좀 더 적극적으로 제기한 이유는 스팀을 처음 접하시는분은 기본적으로 master, active, posting 이런 역할에 대한 개념이 없습니다. 때문에 저는 이런 조그만 수정이 상당한 피해를 예방할 수 있다고 생각해서 제안을 했던 기억이 있네요. 2018년도에 제안을 했던 당시에는 이 포스팅을 보고 관련 이슈를 제기했었습니다. https://busy.org/@maanyabot/romq4

네 큰 문제이지요. 돈이 걸린 문제이니 자기들이 아쉬우면 알아서들 공부하겠지라고 생각하는 경향이 있는 것 같습니다. 스팀잇 페이지라도 좀 자세한 설명을 써두던가 스팀커넥트에는 길게 설명하기 귀찮으면 "posting key lost?"와 같은 식으로 해서 툴팁으로 그경우 at your own risk로 master등을 써라라든지 기타 키 종류에 대한 상세안내 페이지 링크가 제공되면 좋겠네요. 한번 제안해보세요ㅎㅎ

사실 스팀커넥트는 또 한가지 제가 보기엔 치명적인 문제가 있는데 이건 다음에 쓰려고요.

리뷰어 역할도 상당히 중요한 것 같아요.(여러명이면 더 좋구요) 전에 golang 쪽에 이슈 제기한 적이 있었는데 이슈 취지가 잘못 전달되서 묻힐 뻔했으나 그 이름도 유명한 Ian Lance Taylor 님이 나타나서 살려주셨죠. https://github.com/golang/go/issues/23215

맞아요. 유토피안같은 경우 리뷰어풀이 너무 작아서 점수가 너무 들쭉날쭉해요. 지금도 보팅파워문제로 허덕이고 있으니 멀티리뷰어는 꿈도 못꿀것같고. 그냥 점수는 그러려니 하고 있어요. 깃허브 건은 기쁘셨겠어요^^ 정말 오픈소스 프로젝트들 유저가 깃허브까지 찾아와서 의견제시해주는 것에는 정말 잘 해주어야할텐데. 뭐 잘해주다보면 끝도 없이 요구하게되는 것도 있긴 하겠지만 그래도 스팀같은 경우 인력문제도 있겠지만 많이 부족한 것 같습니다ㅠㅠ

ㅎㅎ. 실제로 golang 스펙에 반영이 되었으니 상당히 의미가 있었죠. 해당 이슈는 golang 한국 커뮤니티에서 golang spec 공동번역 진행할 때 리뷰/토론 과정에서 나온 문제였어요.(이래서 리뷰/토론이 아주 중요하죠) 오픈 소스 프로젝트도 이슈 열어서 레포팅해보면 반응이 제각각입니다. 상당히 중요한 문제라고 생각해서 의견 제시했는데 한 달 이상 답변이 없는 프로젝트도 있었고, 그냥 무플 후 이슈 닫아 버리는 경우도 있었죠. 이러면 의욕 상실이죠. 여러 요소들이 관여된 문제라 쉽지 않은 문제인 것 같습니다.

곰돌이가 @dakeshi님의 소중한 댓글에 $0.017을 보팅해서 $0.006을 살려드리고 가요. 곰돌이가 지금까지 총 3208번 $38.489을 보팅해서 $39.978을 구했습니다. @gomdory 곰도뤼~

곰돌이가 @dakeshi님의 소중한 댓글에 $0.017을 보팅해서 $0.006을 살려드리고 가요. 곰돌이가 지금까지 총 3207번 $38.472을 보팅해서 $39.972을 구했습니다. @gomdory 곰도뤼~


@blockchainstudio님 곰돌이가 15.7배로 보팅해드리고 가요~! 영차~

크 15.7배 잘했어ㅎㅎ 주인을 알아보는 곰돌이^^ 사실 요새 저랑 보팅파워가 비슷해졌는데 이벤트때문에 임대해줘서 확 차이가 나네요ㅎㅎ

사실 커넥트가 편리하긴한데..이게 문제는 없는지 약간걱정되기도합니다 일반인의 시선에서는요~좋은글 잘 읽었습니다`

사실 문제가 있긴 있다고 봐야죠^^ 너무 익숙해져버린 나머지 문제를 못느끼게 됐을지는 몰라도. 바뀌길 기대해봐야겠습니다. 감사합니다.

덕분에 스팀커넥트 소식 알게 되었네요. :) 감사합니다.
저도 항상 스팀커넥트는 믿고 사용하고 글도 busy로만 쓰고 있었거든요.

감사합니다. busy쓰시면 베타의 베타버전인ㅎㅎ https://staging.busy.org 로 접속하시면 제가 구현한 여러 기능과 버그 수정사항 쓰실 수 있습니다^^

좋은 정보 감사드립니다. 사실 저 과정 거칠 때 좀 의아하고 불안하긴 했었어요. 귀찮은 건 둘째치고.

Posted using Partiko Android

그렇죠^^ 불합리함도 반복되면 그게 원래 맞는건가 보다 싶게 되듯이ㅎㅎ 저도 재로그인을 하게 되는 경우가 많진 않으니 그냥 그러려니 하고 살다가 거의 모든 앱이 그러고 있길래 이건 아니다 싶더라고요. 감사합니다.

스팀 커넥트 잘 쓰고 있었는데 ... 흠 재단에서 그래도 조치를 취했군요

사실상 필수앱이니 재단에서 앞으로도 지원을 해주는 방향으로 가지 않을까 싶어요. 지원 규모나 방식, 주기 등 산정이 쉽진 않겠네요. 스달로 준게 의미심장해보입니다^^

좋은 정보네요.

Posted using Partiko Android

감사합니다^^

짱짱맨 호출에 응답하였습니다.

3.1 운동 100주년을 기념하여 북이오는 "독도 - 인터넷독본"을 한시적으로 무료판매 합니다.

관련 포스팅: 신용하 서울대 교수의 "독도 인터넷 독본" 무료판매

널리 공유되기를 희망하며, 참여에 감사를 드립니다.

무료로 유용하게 쓰고 있는데 유료화가 안됐으면 좋겠어요..ㅠ0ㅠ

Coin Marketplace

STEEM 0.18
TRX 0.15
JST 0.029
BTC 62915.59
ETH 2542.92
USDT 1.00
SBD 2.63