블록 체인에서 웹 인증 메커니즘 생성

우리는 편리한 시대에 살고 있으며 간단한 작업을 완료하는 데 걸리는 시간을 줄일 수있는 모든 것이 두 팔 벌려 포용됩니다..

온라인 세계에서 가장 관련성이 높은 예 중 하나는 사용자 인증 영역에서 나옵니다. 이전에는 사용자 ID와 비밀번호를 수집해야했지만 이제는 Facebook, Google 및 기타 다양한 서비스를 통해 빠르고 쉽게 로그인 할 수 있습니다..

그러나 이것이 현명하고 더 나은 대안이 있습니까??

이 게시물에서는 현재 사용자 인증 상태와 블록 체인 기술로 인해 현재 사용 가능한 몇 가지 흥미로운 대안을 살펴볼 것입니다..

현상황의 문제

웹 사이트에서 사용자를위한 제한 구역을 개발하려면 고유 한 사용자 식별, 인증 및 권한 시스템을 개발하거나 기성 솔루션을 사용할 것인지 선택해야합니다..

이 기성 솔루션은 사용자가 이미 일부 플랫폼 (Facebook, Yahoo, Google, Outlook 또는 심지어 이메일)에 계정이 있다고 가정합니다. 이 경우 적절한 메커니즘을 사용하기 만하면됩니다 (대부분 OAuth 2.0 프로토콜) 외부 사용자 ID를 사용하여 사이트에 로그인하려는 사람이 동일한 사용자인지 확인합니다..

소셜 로그인 옵션

수많은 소셜 계정 로그인 옵션. 출처: NPM

이 옵션은 구현하기가 더 쉽지만 사용자에게 위험이 있습니다. 기본 계정에 문제가 발생하면 (예 : Facebook이 이유없이 계정을 차단 함) 사이트의 정보에 대한 액세스 권한도 잃게됩니다..

또한 사용자로서 아직 신뢰할 수없는 사이트에 로그인하려면이 사이트에 내 개인 정보에 대한 액세스 권한을 부여해야합니다. 여기에는 내 이름, 이메일 또는 나이와 같은 개인 정보가 포함됩니다. 사이트가 외부 계정으로 만 로그인을 지원하는 경우 실제로 상당히 어려운 선택에 직면합니다..

사이트 사용을 거부하거나 개인 정보를 희생합니다..

대부분의 사용자는 일반적으로 “나쁜 일은 일어나지 않습니다. 숨길 것이 없습니다.”라고 생각하면서 개인 정보와 익명 성을 희생합니다. 불행히도, 금전적 손실로 끝나는 준비되지 않은 사용자를 대상으로하는 대부분의 공격은 다음과 같은 단어로 시작됩니다.

“이 SMS 코드를 은행 직원에게 보내면 어떻게 되나요?” 또는 “기술 지원 직원에게 이러한 요청 헤더를 보내는 것이 정말 나쁜가요?”

보통 너무 늦으면 그런 질문에 대한 답을 배운다.

이더 리움이 도울 수있는 방법

우리는 이미 세 가지 주요 문제가 있음을 이해했습니다.

  • 사용자는 자신이 방문하는 웹 사이트를 신뢰할 의무가 없으며 자신의 개인 정보가 유출되는 것을 방지하고자합니다.
  • 사이트에서 사용자 데이터 및 관련 보안 비용을 저장하지 않도록 외부 인증 시스템을 사용하려고합니다.
  • 사이트에 사용자 인증 기능을 제공하는 기존 외부 시스템은 검열의 위험을 수반합니다. 이유를 설명하지 않고 종종 복구 가능성없이 모든 계정을 언제든지 차단할 수 있습니다.

그러나 이러한 유형의 인증을 지원하기 위해 이더 리움과 같은 안전하고 분산 된 네트워크를 사용할 수 있습니까?.

결국 공개 키가 지갑 주소를 나타내는 암호화 보안 키 쌍이며 개인 키는 네트워크를 통해 전송되지 않습니다. 또한 소유자 만 알 수 있으며 비대칭 암호화를 사용하여 사용자를 인증 할 수 있습니다..

가장 간단한 경우에는 이더 리움 지갑 주소를 사용자 ID로 사용할 수 있습니다. 그러나 사용자가 키에 대한 액세스 권한을 잃으면 시스템에 대한 액세스 권한도 영원히 상실됩니다..

마찬가지로 키가 손상되어 해커가이를 확보 할 수있는 경우 동일한 키를 사용하여 더 이상 소유권을 확인할 수 없습니다. 해커는 가입 한 모든 사이트에서 자신을 가장 할 수 있습니다..

EtherAuth 구현

흥미로운 제안이있었습니다. MixBytes 가장 최근의 Ethereum 해커 톤 중 하나에서 팀. 이것은 그들의 EtherAuth 스마트 계약 엔진.

EtherAuth는 분산 된 사이트 로그인 및 인증 프로토콜을 만들기위한 시도입니다. 아마 익숙해 진 “페이스 북으로 로그인”버튼과 유사합니다. 사용자 ID 및 관련 지갑 주소를 저장하는 스마트 계약입니다.

모스크바 해커 톤 Mixbytes

Moscow Hackathon의 Mixbytes 팀원. 이미지 출처 : Bankex

사용자 ID는 크기가 2 바이트에서 32 바이트 사이 인 단순히 UTF-8 문자열입니다. 사용자는 지갑을 시작할 때 직접 생성하고 나중에 EtherAuth를 지원하는 모든 사이트에 들어가는 데 사용합니다..

문자열에 포함 된 가능한 문자에 제한을 추가 할 수도 있습니다. 시각적으로 유사한 ID를 만들 가능성을 제한하기 위해 라틴 문자와 아라비아 숫자 (7 비트 ASCII 인코딩의 하위 집합)로 제한 할 수 있습니다..

EtherAuth로 계정을 만들 때 한 쌍의 키가 생성됩니다. 인증 키 (authAddr)와 액세스를 복원하기위한 키 (recoveryKey)를 생성합니다. “recoveryKey”라는 이름은이 주소가 단순히 복구 용이 아니라 계정을 관리하는 데 사용되기 때문에 가장 적합하지 않을 수 있습니다..

생성시 두 주소는 처음 거래를 한 지갑의 주소와 동일합니다. 보안에 관심이있는 사용자는 별도의 마스터 키를 만들어 온라인에서 액세스 할 수없는 곳에 보관해야합니다..

이것을 종이에 담아 냉장 보관하는 것이 가장 안전 할 것입니다. 종이 저장은 복구 시드라고 불리는 것에 의존합니다. 복구 시드는 사용시 지갑의 키 쌍을 다시 생성 할 수있는 12 개의 니모닉 단어 세트입니다..

인증을 위해 지갑을 사용하려는 경우 모든 Ether를 보관하는 주소와 별도의 주소를 사용하는 것이 좋습니다. 이렇게하면 해커가 자산으로 Authkey를 지갑으로 추적하는 것을 방지 할 수 있습니다. 현재로서는 계정을 생성 할 때 별도의 authKey 및 recoveryKey를 생성 할 수 없습니다. 이것은 스마트 계약의 이후 반복에서 업데이트 될 수있는 것입니다. 자신을 더 보호하고 싶다면 VPN 서비스.

EtherAuth 사용

사용자와 스마트 계약의 상호 작용을위한 전용 웹 페이지가 있습니다. 거기에서 계정을 만들거나 키를 변경하거나 삭제할 수 있습니다. 이를 사용하려면 사용자는 MetaMask라는 잘 알려진 브라우저 플러그인을 설치해야합니다..

물론 이미 Ethereum 네트워크의 열렬한 사용자라면 MetaMask를 이미 사용했을 것이며 네트워크와 상호 작용하는 방법에 대한 아이디어를 가지고있을 것입니다..

EtherAuth를 사용하는 전체 사용자 인증 프로세스는 다음과 같습니다.

  • 사이트 (백엔드)는 스마트 계약에 연락하여 사용자의 이더 리움 주소를받습니다.
  • 사이트 (백엔드)는 메시지를 생성 및 기록하고 사용자에게 authKey 주소를 사용하여이 메시지에 서명하도록 요청합니다.
  • 사이트에있는 사용자 (프런트 엔드)는 MetaMask 플러그인을 사용하여 메시지에 서명하고 백엔드로 보냅니다.
  • 사이트 (백엔드)는 서명을 확인하고 모든 것이 정상이면 사용자 세션을 활성화합니다.

사용자가 제어하지 않는 환경에서 인증 검사를 수행해야합니다. 즉, 모든 검사는 사용자의 브라우저가 아닌 서버에서 완료되어야합니다..

문제 중 발생할 수있는 것은 프런트 엔드 부분의 서명 확인입니다. 모든 브라우저가 타원 곡선을 지원하는 것은 아닙니다. 스마트 계약에 기능을 추가하여 해결할 수 있습니다. “복구” 메시지의 결과.

고유 한 온라인 신원

Fotolia를 통한 이미지

결과적으로 이더 리움을 기반으로하고 MetaMask 플러그인에서 사용되는 분산 형 인증 시스템의 실행 가능한 개념 증명을 갖게됩니다. 이 시스템은 사용자 익명 성을 제공하기 위해 여전히 몇 가지 수정이 필요합니다. 사용자는 기본 키가 손실 된 경우 액세스를 복원 할 수 있습니다 (복구 키 손실의 경우는 아님)..

탈 중앙화 시스템은 구글이나 페이스 북과 같은 대기업의 검열을받지 않습니다. 검열이 필요한 경우 각 웹 사이트에서 독립적으로 구현해야합니다. 하지만 이는 해당 사이트와 사용자의 상호 작용에만 영향을 미치며 다른 사이트에는 영향을 미치지 않습니다..

이더 리움 네트워크는 현재 트랜잭션 속도가 상당히 느리지 만 (계정을 만들 때 사용자가 몇 분을 기다려야 할 수 있음) 사이트에서 데이터를 가져와 사용자를 매우 빠르게 확인할 수 있습니다..

이 솔루션은 데이터 노드가 많고 누구나 언제든지 다른 노드를 추가 할 수 있기 때문에 확장 성이 뛰어납니다. 사이트 소유자를위한 이러한 솔루션 구현의 복잡성은 OAuth 2.0 구현의 복잡성보다 높지 않습니다..

결론

이것은 아직 프로젝트의 초기 단계이며 최근에야 해커 톤에서 제안되었다는 점에 유의해야합니다..

더욱이 이더 리움과 암호 화폐의 채택률은 일반적으로 Facebook 및 Google과 같은 것을 사용하는 사람들의 일부에 불과합니다. 사람들이 Facebook 계정보다 Ether 주소를 사용하는 것을 더 편하게 느끼기까지는 시간이 걸립니다..

그러나 암호 화폐 채택률은 실제로 증가하고 있으며 최근 Facebook의 데이터 스캔들은 많은 사람들을 소외시키는 데 도움이되었습니다. 분산 인증이 실행 가능한 대안이 될 수 있는지 확인하는 것은 흥미로울 것입니다..

Fotolia를 통한 추천 이미지

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me