입찰 키 관리
입찰에 쓸 키 쌍을 만들고, 귀사 GitHub 저장소에 보관합니다.
1. GitHub 연결
- 저장소
- 브랜치
- main
- 토큰
- 보관 위치
키를 보관할 귀사 GitHub 저장소를 지정하세요. 저장소나 토큰이 없다면 먼저 GitHub 준비하기를 따라 하세요.
2. 키 만들기
키 쌍 하나를 만듭니다. 키는 이 브라우저 안에서 만들어집니다. 나중에 보관함에서 찾기 쉽도록 이름을 붙입니다.
3. PC에 저장
GitHub에 올리기 전에 세 파일을 PC에 저장하세요. 세 파일을 모두 저장해야 4단계로 넘어갑니다. 키명세서는 유니피커 입찰시스템에 공개키보다 먼저 올리는 파일입니다.
파일을 하나씩 저장해도 됩니다.
4. GitHub에 저장
두 파일을 귀사 저장소에 커밋합니다. 커밋 시각이 키를 만든 시점의 기록이 됩니다.
보관함
귀사 저장소 (연결 전)의 keys/ 폴더에 있는 키입니다. 입찰이 마감되면 여기서 개인키를 내려받아 유니피커 입찰시스템에 제출합니다.
히스토리
키를 만들고 내려받은 기록입니다. 저장소의 keys/history.jsonl에 한 줄씩 쌓입니다.
history.jsonl 원문 보기
GitHub 준비하기처음 한 번만 합니다. 비공개 저장소와 접근 토큰이 없다면 펼쳐서 따라 하세요.
GitHub 화면은 영어로만 나옵니다. 화면에 보이는 영문을 굵게 적고, 처음 나올 때 뜻을 괄호로 붙였습니다.
가. 비공개 저장소 만들기
- GitHub에 로그인합니다.
- 오른쪽 위 + 버튼을 누르고 New repository(새 저장소)를 고릅니다. 주소창에
github.com/new를 입력해도 됩니다. - Owner(소유자)에서 회사 조직 계정을 고릅니다. 개인 계정보다 회사 계정을 권장합니다.
- Repository name(저장소 이름)에 저장소 이름을 입력합니다. 예:
bid-keys - Choose visibility(공개 범위)에서 Private(비공개)을 고릅니다.
- Add README(README 추가)는 처음에 Off로 되어 있습니다. On(켜기)으로 바꿉니다. 빈 저장소에는 브랜치가 없습니다. README를 켜면 저장소를 만들 때 첫 커밋이 생기고, 이때 기본 브랜치가 만들어집니다.
- Create repository(저장소 만들기)를 누릅니다.
- 만든 저장소 화면 왼쪽 위의 브랜치 이름이
main인지 확인합니다. 회사의 GitHub 설정에 따라master같은 다른 이름일 수 있습니다. 다르면 조직 관리자에게 문의하세요.
화면 보기
나. 접근 토큰 만들기
- 오른쪽 위 프로필 사진을 누르고 Settings(설정)를 고릅니다.
- 왼쪽 메뉴 맨 아래 Developer settings(개발자 설정) → Personal access tokens(개인 접근 토큰) → Fine-grained tokens(세분화 토큰)를 차례로 누릅니다. 주소창에
github.com/settings/personal-access-tokens/new를 입력해도 됩니다. - Generate new token(새 토큰 만들기)을 누릅니다. 본인 확인 화면이 나오면 패스키나 비밀번호로 인증합니다.
- Token name(토큰 이름)에 토큰 이름을 입력합니다. 예:
bid-keys-access - Resource owner(소유 계정)에서 가 단계의 저장소를 만든 계정을 고릅니다.
- Expiration(만료일)에서 만료일을 고릅니다. Custom(직접 지정)을 고르면 날짜를 직접 정할 수 있습니다. 개인키를 제출할 날보다 뒤의 날짜로 정합니다.
- Repository access(저장소 접근 범위)에서 Only select repositories(선택한 저장소만)를 고르고, 가 단계에서 만든 저장소 하나만 고릅니다.
- Permissions(권한)에서 Add permissions(권한 추가)를 누르고, 검색창에 Contents 를 입력해 Contents(파일 내용)를 체크합니다. Metadata(기본 정보)가 Required(필수) 표시와 함께 자동으로 붙습니다.
- Contents 줄 오른쪽의 Access: Read-only 버튼을 누르고 Read and write(읽기와 쓰기)를 고릅니다. 처음에는 Read-only 로 되어 있습니다. Read and write 가 보이지 않으면 바로 앞 단계의 Repository access 가 Public repositories 로 되어 있는 것입니다. Only select repositories 로 바꾸세요. 다른 권한은 추가하지 않습니다.
- Generate token(토큰 만들기)을 누릅니다.
- 화면에 나온 토큰을 복사합니다. 토큰은
github_pat_로 시작합니다.
다. 회사 조직 계정을 쓰는 경우
조직 설정에 따라 Fine-grained 토큰에 조직 관리자의 승인이 필요할 수 있습니다. 승인 전에는 토큰이 저장소에 접근하지 못합니다. 토큰을 만든 뒤 조직 관리자에게 승인을 요청하세요.
준비가 끝나면 아래 1. GitHub 연결에 저장소 이름과 토큰을 넣습니다.
입찰가 암호화 원리입찰가가 마감 전까지 아무에게도 보이지 않는 이유를 설명합니다.
열쇠는 두 종류입니다
잠그는 열쇠입니다. 잠글 수만 있고 열 수는 없습니다. 그래서 누구에게 줘도 됩니다.
비유: 누구나 눌러 닫을 수 있는 열린 자물쇠
여는 열쇠입니다. 짝이 되는 공개키로 잠근 것은 이 개인키로만 열립니다. 본인만 가집니다.
비유: 그 자물쇠를 여는 단 하나의 열쇠
분양사와 유니피커가 각자 한 쌍씩 만듭니다. 두 회사는 공개키를 입찰 전에 유니피커 입찰시스템에 등록합니다. 개인키는 각자 보관했다가 입찰이 마감된 뒤에 제출합니다.
입찰가가 잠기고 열리는 순서
- 입찰자가 입찰가를 넣습니다.
- 브라우저가 일회용 비밀번호를 만듭니다.이번 입찰에만 쓰고 버립니다.
- 입찰가를 일회용 비밀번호로 잠급니다.
- 일회용 비밀번호를 두 조각으로 나눕니다.한 조각만으로는 원래 비밀번호를 알 수 없습니다.
- 잠긴 입찰가와 잠긴 조각 두 개만 저장합니다.원래 입찰가와 일회용 비밀번호는 브라우저 밖으로 나가지 않습니다. 시스템 운영자도 열 수 없습니다.
- 두 조각을 합쳐 일회용 비밀번호를 되찾습니다.
- 일회용 비밀번호로 입찰가를 엽니다.
비유: 금고 비밀번호를 두 사람에게 반씩 나눠 맡기는 것과 같습니다. 두 사람이 모두 와야 금고가 열립니다.
그래서 안전합니다
- 한 회사만으로는 열 수 없습니다. 조각 하나로는 일회용 비밀번호를 되찾을 수 없습니다.
- 시스템 운영자도 볼 수 없습니다. 시스템에는 잠긴 것만 있습니다.
- 몰래 바꾸면 열리지 않습니다. 잠긴 입찰가가 조금이라도 바뀌면 개봉할 때 오류가 납니다.