Keybase: 두 판 사이의 차이

편집 요약 없음
58번째 줄: 58번째 줄:


그러면 컴퓨터를 갈아탈 때, 갈아탔을 때의 Maria(조작될 수도 있고 내가 아는 Maria가 아닐 수도 있는 Maria)가 아닌, 내가 확인한 Maria을 서버에서 제공해 줄 수 있다. 이 내가 확인한 LiteHell은 내가 서명했고, 만약에 조작됬다면 무언가 문제가 있다는 것이 바로 확인되므로 조작될 수 없다.
그러면 컴퓨터를 갈아탈 때, 갈아탔을 때의 Maria(조작될 수도 있고 내가 아는 Maria가 아닐 수도 있는 Maria)가 아닌, 내가 확인한 Maria을 서버에서 제공해 줄 수 있다. 이 내가 확인한 LiteHell은 내가 서명했고, 만약에 조작됬다면 무언가 문제가 있다는 것이 바로 확인되므로 조작될 수 없다.
== 웹에서도 쉽게 쓰는 PGP ==
[[파일:Keybase encrypt.PNG]]
꼭 올릴 필요는 없지만, Keybase 서버에 개인키를 업로드하면 이렇게 웹에서도 쉽게 PGP 암호화/복호화/서명/서명검증을 할 수 있다. 암호화를 할 때(그리고 공개키를 찾을 때) 트위터 닉네임 또는 레딧 아이디 등을 이용하여 받는 사람의 공개키를 찾을 수 있다.
{{주석}}
{{주석}}

2015년 7월 27일 (월) 16:07 판

Keybase favicon.pngKeybase
Keybase 로고.png
Keybase 스크린샷.PNG
웹사이트 정보
종류 공용 디렉토리/암호화
언어 영어
Keybase
소프트웨어 정보
종류 암호화
언어 영어
웹사이트 https://keybase.io

Keybase는 오픈 소스 커맨드라인 프로그램이자, PGP 공개키 공용 디렉토리랑 암호화 서비스를 제공(개인키를 저장한 경우)하는 웹사이트이며, 현실에서의 확인(e.g. 전화통화, 직접 만나기, ... 등등)없이도 신뢰할 수 있는 공개키 제공을 목표로 하고 있다.[1]

소개

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, 웹사이트, 해커뉴스... 등등)에 게시된 그 서명된 메세지를 확인한 후에, 이 공개키의 주인은 이 트위터 계정임의 주인임이 증명되었음을 그 메세지의 주소와 함께 알린다.

이 공개키의 주인은 litehell.info의 주인이며, 트위터 @LiteHell의 주인이자, GitHub LiteHell 계정임의 주인임을 알리는 Keybase

하지만, "에이, Keybase가 구라 치는거 아니야?"라고 생각할 수도 있다. 물론 장사 말아먹을 생각이 아니라면 구라를 치진 않겠지만, 해킹을 당할 가능성이 얼마든지 있다. 이러한 사람들을 위해 클라이언트 측에서도 자동으로 따로 검증을 한다.

클라이언트 측에서의 2차 검증

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일 수도 있으므로) 그렇다면 지금 내가 확인한 신분을 미리 저장해둘 수 있지 않을까? 그러고 싶을 때 트래킹을 하는 것이다. 트래킹을 하면 증명들과 신분이 담긴 정보를 서명해서 서버에 저장해둘 수 있다.

그러면 컴퓨터를 갈아탈 때, 갈아탔을 때의 Maria(조작될 수도 있고 내가 아는 Maria가 아닐 수도 있는 Maria)가 아닌, 내가 확인한 Maria을 서버에서 제공해 줄 수 있다. 이 내가 확인한 LiteHell은 내가 서명했고, 만약에 조작됬다면 무언가 문제가 있다는 것이 바로 확인되므로 조작될 수 없다.

웹에서도 쉽게 쓰는 PGP

Keybase encrypt.PNG

꼭 올릴 필요는 없지만, Keybase 서버에 개인키를 업로드하면 이렇게 웹에서도 쉽게 PGP 암호화/복호화/서명/서명검증을 할 수 있다. 암호화를 할 때(그리고 공개키를 찾을 때) 트위터 닉네임 또는 레딧 아이디 등을 이용하여 받는 사람의 공개키를 찾을 수 있다.

각주

  1. Keybase Tracking. “Keybase aims to provide public keys that can be trusted without any backchannel communication.”