Extra Form
PHP PHP 7.4
CMS Rhymix 2.x

소셜XE 모듈을 이용하고 있습니다.

 

그런데 소셜로그인으로 가입하는 계정들의 경우, 일반 계정과는 다르게 비밀번호를 설정하지 않기 때문에

회원정보 변경이나 탈퇴 등의 동작을 '로그인만 되어 있으면' 비번 체크 없이 누구나 가능한 문제가 있습니다.

 

즉 일반 계정은 회원정보 변경이나 탈퇴를 하려면 비밀번호를 입력받아서 본인인지 체크는 하는데,

소셜XE로 가입된 계정은 이러한 과정이 없어서 보안에 많이 취약하다는 생각이 들었습니다.

 

이 문제의 해결을 위해서는 소셜로그인으로 가입한 계정도 임의의 비밀번호를 부여해서 유저에게 알려주거나,

아예 소셜로그인으로 가입을 할 때 비밀번호만 따로 입력을 받는 옵션을 넣는 방안도 있지 않을까 싶습니다.

 

라이믹스 차기 버전에 소셜로그인 기능이 통합돼서 나온다고 하는데, 이러한 부분에 대해서는 어떻게 생각하시는지 궁금합니다.

  • profile

    자세한 부분은 @람보 님이 설명을 해주셔야겠지만, 라이믹스 2.1에서는 회원정보 변경 등 일반적으로 비번을 입력받을 법한 타이밍에 만약 소셜계정으로 가입한 회원이라면 동일한 소셜계정으로 인증을 요구할 예정인 것으로 알고 있습니다.

     

    물론 소셜계정에도 이미 로그인되어 있어서 그냥 통과되는 경우가 많기 때문에 비번을 재입력받는 것만큼 안전하지 않다고 볼 수도 있겠지만, 일반인들이 비번 관리를 얼마나 엉망으로 하는지 생각해 보면 전통적인(?) 방식대로 비번을 요구한다고 딱히 더 안전할 것 같지도 않네요. 심지어 메일이나 문자로 인증코드를 발송하더라도 동일한 기기에서 확인할 수 있을 가능성이 높으니... 스마트폰 시대의 계정 보안 개념은 PC와는 좀 다르게 접근해야 합니다.

     

    위의 내용과는 별도로, 소셜계정으로 가입한 회원이 비번을 설정하여 일반계정으로 전환하는 것을 막지는 않을 계획입니다. 소셜로그인은 어디까지나 일부 사람들의 편의를 위해 제공하는 보조적인 수단이지, 회원제도를 대체하는 것이 아니니까요.

  • profile ?
    그렇군요. 근데 말씀하신 것처럼 소셜 계정은 항상 로그인 유지를 하는 경우가 대부분이라서 그냥 통과될 가능성이 높겠네요.

    공용 컴퓨터 같은 곳에서 소셜 로그인으로 가입을 하고 로그아웃을 안 하면 누군가가 그 계정의 정보를 바꾸거나 탈퇴할 수 있는 위험은 여전히 존재할 것 같습니다.

    일반인들이 비번 외우기 귀찮으니까 비번 관리를 엉망으로 하는 경우가 많긴 하지만, 그럼에도 불구하고 소셜 계정으로 가입했을 경우 따로 비밀번호를 설정할 수 있게 해주고 계정 설정 건드릴 때 비밀번호 확인을 해주면 아예 안 하는 것보다는 조금이라도 보안이 향상될 수 있다고 생각합니다.

    스마트폰은 보통 기기 차원에서 생체인식 등의 보안 인증을 거쳐야 쓸 수 있지만, 여러 사람이 사용하는 컴퓨터에서는 보안 문제(예를 들어 가족 컴퓨터에서 형제나 부모님이 계정 주인의 동의 없이 몰래 탈퇴를 한다든지...)가 생길 수 있으니 이를 막을 수 있었으면 좋겠습니다.

    물론 개인 컴퓨터가 아닌데 로그아웃을 안 한 이용자 책임이라고 해도 말이 되긴 하지만 일반 유저들이 그렇게까지 보안 의식이 투철한 경우도 드물어서 고민이 많이 되네요.
  • ? profile
    다행히 예전보다는 공용 컴퓨터를 사용하는 인구가 많이 줄어들기는 했습니다만, 여전히 학교나 도서관 등의 PC를 이용할 수밖에 없는 사회적으로 가장 취약한 계층이 오히려 큰 피해를 볼 수도 있는 문제라서 쉽지 않은 것 같네요. (PC방은 사람이 바뀌면 자동으로 세션이 정리되니 논외로 하고요.)
  • profile
    1. 브라우저에 로그인이 되어있다는것은 아이디 계정 주인이 로그인을 하고 있었다는 것이므로 해당 컴퓨터는 본인 컴퓨터를 전재로 합니다. (트위터 구글 기타 등등) 그렇기 때문에 이러한 상황에서 아이디 관리를 잘못한 것은 본인이 책임지셔야겠지요?

    물론 이 부분은 자동로그인기능을 사용한 라이믹스에도 해당되는 것입니다.

    2. 구글 트위터 페이스북 이런 대기업들이 그동안 해킹 사건이라던지 그런 부분에서 보안적으로 라이믹스를 운영하는 사람들보다 훨씬 더 보안이 안전하다고 봅니다.

    생각해보세요.

    라이믹스야 오픈소스이고 물론 현재 좋은 암호화 기술까지 모두 @기진곰 님께서 도입 해주셨기 때문에 안정적으로 운영할 수 있는 상황이라하지만 관리적인 측면이나 보안적인 측면을 봣을때 오히려 이러한 대기업들의 소셜쪽이 보안쪽은 훨신 더 잘믿을 수 있다고 생각합니다.

    그 소셜계정의 로그인이 유지되어있다는건 이미 브라우저속에 쿠키를 저장했다는 뜻이되고 그것은 곧 위에서 말씀드린 것 처럼 본인의 과실인거죠. (홈페이지 이용자)

    결과적으로 라이믹스에서 바로 저장하는 비밀번호 데이터보다는 훨신 더 안전한 소셜로그인이 보안이 더 나을 수 있다는 것입니다.
  • ?
    네. 보통 로그인 유지를 했다는 것은 본인 컴퓨터라는 전재를 깔고, 그 상태에서 계정에 문제가 발생하면 이용자의 책임이라고 할 수도 있는 것은 맞다고 생각합니다.

    제가 사실 이 부분에 대해 그동안 별 관심이 없었는데, 최근에 한 유저가 자신이 탈퇴도 안 했는데 계정이 탈퇴되어 있다고 해서 관심을 가지게 되었습니다.

    물론 그 유저에게는 계정 관리를 잘못한 유저분에게 책임이 있다고 말씀드리긴 했지만, 소셜로그인으로 가입된 계정은 탈퇴에 비밀번호 인증 과정이 없으니 본인이 탈퇴를 안 했다면 로그인 되어있는 컴퓨터를 이용하는 다른 사람이 탈퇴를 했다는 말밖에 안 되니, 소셜로그인으로 가입된 계정도 탈퇴에 인증 과정이 있으면 애시당초 이런 일이 안 생기지 않았을까 하는 생각이 들어서 질문드리게 되었습니다.

    그러니까 이 질문의 주제는 소셜로그인 그 자체의 보안성에 대한 부분이 아니라, 소셜로그인으로 가입한 계정을 관리할 때 일반 계정과는 달리 비밀번호 인증을 비롯한 과정이 없어서 발생하는 보안 문제입니다.

    사실 이 문제로 인해 계정에 어떤 문제가 발생하면 계정 관리를 잘못한 유저 책임이 크겠지만, 그래도 소셜로그인 계정은 일반 계정에 비해 정보수정이나 탈퇴에 아무런 제약이 없으니 일반 계정에 비해 문제가 생길 확률이 있어 보여서요.

    소셜 로그인 그 자체는 구글 같은 대기업에서 관리하는 보안 시스템이니만큼, 보안성은 확실히 엄청 높겠지요.
  • ? profile
    말씀하신 부분에서 탈퇴를 제외한 대부분에서는 로그인인증을 따로 할 수 있도록 마련되어 있습니다.

    즉 비밀번호를 알 수 없으므로 탈퇴를 제외한 다른 회원정보변경 및 비밀번호 변경이 잘이루어질 수 있도록 소셜로그인페이지를 통해서 다시한번 더 인증하도록 되어 있어요.

    2.1버전부터는 그렇게 될 예정이고, 탈퇴시에는 빠져있는데 이 부분은 또 추가하도록 하겠습니다. (소셜로그인은 아직 완벽하게 라이믹스에 이식될 수 있을만큼 완벽하지 않습니다. 그리고 XE에서 사용되는 방식을 그대로 생각하시기엔 너무나 다릅니다.)
  • profile ?
    음.. 소셜 로그인 페이지를 통한 인증을 통하면 계정 주인이 아닌 누군가가 탈퇴를 한다든지 하는 불상사가 생기지 않으면 좋겠는데 어려울까요? 소셜 로그인 페이지 인증이 어떤 방식인지 알지 못해서 이 부분이 해결이 될지 모르겠네요.

    그런데 사실 이게 꼭 해결이 되어야만 하는 중대한 보안 문제도 아니고, 이용자 개개인의 보안 습관에 따른 자잘한 문제이긴 하니까 소셜 XE 같은 서드파티 모듈로 있을 때는 모르겠지만 소셜 로그인이 라이믹스 코어에 통합된다고 하니 궁금해서 여쭤보게 되었습니다.

    모쪼록 기진곰님, 람보님을 비롯한 라이믹스 개발진 분들께는 정말정말 감사한 마음 뿐입니다(__).
  • ? profile
    1. 예전 소셜로그인때는 모르겟지만 탈퇴시에는 원래 계정을 인증합니다. 그 과정에서 기존에 사용하던 비밀번호는 칠 수 있어야 합니다.. 그걸 기존 소셜로그인에서 탈퇴를 그냥 해줬는지 아닌지 모르겠네요. 그랬다면 기존 모듈의 문제인것 같네요.

    2. 라이믹스로 통합되는 모듈의 경우라면 똑같은 기능 그대로 들어간다고 보시면안됩니다.

    기존 로그인 유지 모듈의 경우에도 똑같이 라이믹스에 들어왔으나 코어모듈과 내부 함수를 활용한 내용으로 추가되었습니다.

    소셜로그인도 마찬가지입니다.

    기존의 소셜로그인의 외부라이브러리는 대부분 common/framework 안에 추가하였으며 기타 로그인에 필요한 일부 라이브러리의 경우 vendor 폴더안에 모두 들어간 내용을 활용하도록 되어있습니다.

    3. 현재 라이믹스에서 적용된 부분은 탈퇴시에도 인증부분을 넣을 예정이며 원래는 탈퇴시에도 비밀번호 없이 탈퇴되면 안되는게 맞는 것이겠지요. 탈퇴시 그냥 탈퇴되었더라면 그건 기존 소셜로그인의 문제인것 같고요.. 현재 라이믹스용으로 추가되는 소셜로그인은 이런 부분을 좀 더 개선하여 회원정보, 비밀번호변경, 등등 모든 영역에 다 추가되어있습니다. (탈퇴빼고요.. 탈퇴는 나중에 추가해둘께요 2.1 배포되기전에요)
  • profile ?
    감사합니다! 그렇다면 라이믹스 전용 소셜로그인에서는 해당 문제는 개선된 모습을 볼 수 있겠네요.
    덕분에 궁금증이 해결되었습니다. 벌써부터 라이믹스 2.1이 설레기 시작하네요. ㅎㅎ