사용자:LiteHell2/작업장: 두 판 사이의 차이

편집 요약 없음
(문서를 비움)
태그: 문서를 비웠습니다. 문서 옮기기는 도구-옮기기를 이용하세요.
1번째 줄: 1번째 줄:
{{웹사이트 정보
|이름=Keybase
|패비콘=Keybase favicon.png
|로고=Keybase 로고.png
|로고설명=Keybase의 로고로 추정되는 이미지
|그림=Keybase 스크린샷.PNG
|그림 설명=로그인 한 후의 [https://keybase.io https://keybase.io]
|종류=공용 디렉토리/암호화
|언어=영어
|회원 가입=필수
|소유자=Keybase, Inc.
|현재 상태=운영중
|url=https://keybase.io
}}
{{소프트웨어 정보
|이름=Keybase
|프로그래밍 언어=[[node.js]]
|언어=영어
|종류=암호화
|웹사이트=https://keybase.io
}}


'''Keybase'''는 오픈 소스 커맨드라인 프로그램이자, PGP 공개키 공용 디렉토리랑 암호화 서비스를 제공(개인키를 저장한 경우)하는 웹사이트이며, 현실에서의 확인(e.g. 전화통화, 직접 만나기, ... 등등)없이도 신뢰할 수 있는 공개키 제공을 목표로 하고 있다.<ref>{{웹 인용|인용문=Keybase aims to provide public keys that can be trusted without any backchannel communication.|url=https://keybase.io/docs/tracking|제목=Keybase Tracking}}</ref>
== 소개 ==
'''Keybase''' 홈페이지는 [[PGP]] 공개키 공용 디렉토리를 제공한다. Keybase에 개인키를 저장한 경우(필수는 아니다) PGP 암호화 서비스(전자서명, 암호화, 복호화, 검증 등등)을 웹에서 사용하고 개인키를 웹에서 내려받을 수 있다.
== 쉽게 신뢰할 수 있는 keybase ==
위에서 말했다시피, '''Keybase'''는 현실에서의 확인 없이 신뢰할 수 있는 공개키 제공을 목표로 한다. 그러면 어떻게 그것이 가능할까? [[PGP]]를 예시로 들어 설명해보자.
보통 흔히들 말하는 [[PGP]]는 타인의 키가 진짜 자신의 키인지 확인하려면 다음과 같은 방법 중 하나를 거쳐야 한다.
* 현실에서 확인한다.
* 그 인증서의 서명들을 확인한다.
1번째 방법은 진짜로 아는 사람이 아니라면 힘들고, 2번째 방법은 "저는 이 인증서의 주인과 이 인증서가 가리키는 주인이 일치함을 확인하며, 이에 신뢰합니다."라고 서명한 사람들을 찾아서 내가 그 사람들을 신뢰할 수 있는 지 확인하는 방법이다.
하지만 1번째 방법은, 생전 안면도 모르는 사람이라면 어렵다. 다짜고짜 신상을 털어서 "저기요 님 1234 1234 1234 1234 키 주인 맞아요?"라고 전화할 것인가? 2번째 방법은 [[PGP]]를 많이 써본 사람이라면 쉽겠지만 처음 사용해보는 초보자에게는 어려울 수 있다.
'''Keybase'''는 어느 [[트위터]] 계정, [[레딧]] 계정, [[Github]] 계정, 웹사이트 계정의 주인임을 인증하도록 하는 방법을 통해, 이 공개키가 현실에서의 확인 없이 신뢰될 수 있도록 한다.
=== Keybase측에서의 1차 검증 ===
한 줄만 어렵게 느껴질 수 있으니 쉽게 설명을 해보자, 먼저 '''Keybase'''는 유저에게 자신의 개인키로 서명된 특별한 메세지를 [[트위터]](또는 [[레딧]], [[Github]], 웹사이트, 해커뉴스... 등등)에 올려도록 한다. 그 다음 '''Keybase'''는 자동으로 [[트위터]](또는 [[레딧]], [[Github]], 웹사이트, 해커뉴스... 등등)에 게시된 그 서명된 메세지를 확인한 후에, 이 공개키의 주인은 이 트위터 계정임의 주인임이 증명되었음을 그 메세지의 주소와 함께 알린다.
[[파일:Keybase LiteHell.PNG||이 공개키의 주인은 [http://www.litehell.info litehell.info]의 주인이며, 트위터 @LiteHell의 주인이자, GitHub LiteHell 계정임의 주인임을 알리는 Keybase]]
하지만, "에이, Keybase가 구라 치는거 아니야?"라고 생각할 수도 있다. 물론 장사 말아먹을 생각이 아니라면 구라를 치진 않겠지만, 해킹을 당할 가능성이 얼마든지 있다. 이러한 사람들을 위해 클라이언트 측에서도 자동으로 따로 검증을 한다.
=== 클라이언트 측에서의 2차 검증 ===
[[파일:Keybase id 명령어.PNG||keybase id chris 명령어를 실행한 모습]]
클라이언트측에서 무언가를 처리할때, 클라이언트는 기본적으로 keybase 서버를 신뢰하지 않는다. keybase 서버는 keybase에서의 Maria가 트위터 @Maria의 주인과, GitHub Maria 계정의 주인이랑 동일인임을 알려줬지만, 진짜로 그런걸까? 클라이언트는 의심을 한다. 이런 의심많은 클라이언트를 진정시키기 위해, keybase서버는 '''keybase에서의 Maria=트위터에서의 @Maria'''임을 인증하는 특별한 트윗 주소와 '''keybase에서의 Maria=GitHub에서의 Maria'''임을 인증하는 Gist 주소등을 알려준다.
윗 주소들을 받으면, 클라이언트는 이 주소들에 들어가 여기에 무슨 문제가 있는지, 정상적으로 서명이 됬는지, 이 트윗의 주인이 @Maria인지, 이 Gist의 주인이 Maria인지 등을 확인한다. 그리고 아무 문제가 없어야, 클라이언트는 비로소 의심이 풀린다. 이 증명은 매우 빠르고 자동으로 이루어지기에 사용자는 신경 쓸 필요가 없다.
=== 사람이 직접 하는 3차 검증 ===
2차 검증에서, keybase서버는 keybase 계정이랑 동일인임이 증명된 계정들(트위터, 레딧, 해커뉴스 등등)을 알려준다. 여기서 트위터의 유저명, 레딧의 유저명 등을 확인하고 자신이 아는 그 유저명이랑 일치하는 지 확인하여, 이 사람이 진짜 내가 아는 그사람인지 직접 확인할 수 있다.
== Tracking이란? ==
keybase에서의 '''Tracking'''(편의상 이 문서에서는 '''트래킹'''이라 표기함.)은 어떤 사람의 신분(아이디 등등)과 증명(트위터 트윗 주소, 레딧 글 주소 등등)들이 담긴 정보를 서명해서 저장해 두는 것으로, Keybase에서의 핵심 기능이다.
컴퓨터를 갈아탈 때마다 위와 같은 검증을 하라고 하면 번거롭다.(갈아탈때의 Maria가 조작된 Maria일 수도 있으므로) 그렇다면 지금 내가 확인한 신분을 미리 저장해둘 수 있지 않을까? 그러고 싶을 때 트래킹을 하는 것이다. 트래킹을 하면 증명들과 신분이 담긴 정보를 서명해서 서버에 저장해둘 수 있다.
그러면 컴퓨터를 갈아탈 때, 갈아탔을 때의 LiteHell, 조작될 수도 있고 내가 아는 LiteHell이 아닐 수도 있는 LiteHell이 아닌, 내가 확인한 LiteHell을 서버에서 제공해 줄 수 있다. 이 내가 확인한 LiteHell은 내가 서명했고, 만약에 조작됬다면 무언가 문제가 있다는 것이 바로 확인되므로 조작될 수 없다.
{{주석}}

2015년 7월 27일 (월) 15:54 판