입찰가 암호화 키 관리
연결 안 됨

입찰 키 관리

입찰에 쓸 키 쌍을 만들고, 귀사 GitHub 저장소에 보관합니다.

유니피커 입찰시스템에 직접 전달하지 않는 한, 키는 귀사 GitHub에서만 관리됩니다. 이 페이지는 GitHub 외의 서버와 통신하지 않습니다.

1. GitHub 연결

키를 보관할 귀사 GitHub 저장소를 지정하세요. 저장소나 토큰이 없다면 먼저 GitHub 준비하기를 따라 하세요.

소유자/저장소 형식이나 GitHub 저장소 주소를 그대로 붙여 넣어도 됩니다.
main으로 고정됩니다.
Fine-grained PAT. 이 저장소에만 Contents 읽기·쓰기 권한을 주세요.
저장소 확인으로 연결하면 토큰은 이 페이지 메모리에만 있고, 페이지를 닫으면 사라집니다. 브라우저에 저장으로 연결하면 저장소와 토큰이 이 브라우저에 남아 다음에 자동으로 연결합니다. 보안을 위해 권하지 않습니다.

2. 키 만들기

1단계를 끝내면 열립니다.
키 이름

키 쌍 하나를 만듭니다. 키는 이 브라우저 안에서 만들어집니다. 나중에 보관함에서 찾기 쉽도록 이름을 붙입니다.

이 저장소에서 겹치지 않는 이름을 붙입니다. 한글, 영문, 숫자, 공백을 쓸 수 있습니다. / \ : * ? " < > | 는 쓸 수 없습니다. 1~30자.

3. PC에 저장

2단계를 끝내면 열립니다.
두 파일을 PC에 저장했습니다.

GitHub에 올리기 전에 세 파일을 PC에 저장하세요. 세 파일을 모두 저장해야 4단계로 넘어갑니다. 키명세서는 유니피커 입찰시스템에 공개키보다 먼저 올리는 파일입니다.

개인키를 잃으면 입찰가를 열 수 없습니다. 안전한 곳에 한 부 더 보관하세요.

파일을 하나씩 저장해도 됩니다.

keyspec.json아직 저장하지 않음
public.pem아직 저장하지 않음
private.pem개인키아직 저장하지 않음
입찰 마감 전에는 개인키 파일을 누구에게도 보내지 마세요.

4. GitHub에 저장

3단계를 끝내면 열립니다.

두 파일을 귀사 저장소에 커밋합니다. 커밋 시각이 키를 만든 시점의 기록이 됩니다.

보관함

귀사 저장소 (연결 전)의 keys/ 폴더에 있는 키입니다. 입찰이 마감되면 여기서 개인키를 내려받아 유니피커 입찰시스템에 제출합니다.

히스토리

키를 만들고 내려받은 기록입니다. 저장소의 keys/history.jsonl에 한 줄씩 쌓입니다.

history.jsonl 원문 보기
GitHub 준비하기처음 한 번만 합니다. 비공개 저장소와 접근 토큰이 없다면 펼쳐서 따라 하세요.

GitHub 화면은 영어로만 나옵니다. 화면에 보이는 영문을 굵게 적고, 처음 나올 때 뜻을 괄호로 붙였습니다.

가. 비공개 저장소 만들기

  1. GitHub에 로그인합니다.
  2. 오른쪽 위 + 버튼을 누르고 New repository(새 저장소)를 고릅니다. 주소창에 github.com/new를 입력해도 됩니다.
  3. Owner(소유자)에서 회사 조직 계정을 고릅니다. 개인 계정보다 회사 계정을 권장합니다.
  4. Repository name(저장소 이름)에 저장소 이름을 입력합니다. 예: bid-keys
  5. Choose visibility(공개 범위)에서 Private(비공개)을 고릅니다.
  6. Add README(README 추가)는 처음에 Off로 되어 있습니다. On(켜기)으로 바꿉니다. 빈 저장소에는 브랜치가 없습니다. README를 켜면 저장소를 만들 때 첫 커밋이 생기고, 이때 기본 브랜치가 만들어집니다.
  7. Create repository(저장소 만들기)를 누릅니다.
  8. 만든 저장소 화면 왼쪽 위의 브랜치 이름이 main인지 확인합니다. 회사의 GitHub 설정에 따라 master 같은 다른 이름일 수 있습니다. 다르면 조직 관리자에게 문의하세요.
Public으로 만들지 마세요. 공개 저장소에 키를 저장하면 누구나 개인키를 볼 수 있습니다. 이 화면도 공개 저장소에서는 진행을 막습니다.
화면 보기GitHub 새 저장소 만들기 화면. 저장소 이름 bid-keys, 공개 범위 Private

나. 접근 토큰 만들기

  1. 오른쪽 위 프로필 사진을 누르고 Settings(설정)를 고릅니다.
  2. 왼쪽 메뉴 맨 아래 Developer settings(개발자 설정) → Personal access tokens(개인 접근 토큰) → Fine-grained tokens(세분화 토큰)를 차례로 누릅니다. 주소창에 github.com/settings/personal-access-tokens/new를 입력해도 됩니다.
  3. Generate new token(새 토큰 만들기)을 누릅니다. 본인 확인 화면이 나오면 패스키나 비밀번호로 인증합니다.
  4. Token name(토큰 이름)에 토큰 이름을 입력합니다. 예: bid-keys-access
  5. Resource owner(소유 계정)에서 가 단계의 저장소를 만든 계정을 고릅니다.
  6. Expiration(만료일)에서 만료일을 고릅니다. Custom(직접 지정)을 고르면 날짜를 직접 정할 수 있습니다. 개인키를 제출할 날보다 뒤의 날짜로 정합니다.
  7. Repository access(저장소 접근 범위)에서 Only select repositories(선택한 저장소만)를 고르고, 가 단계에서 만든 저장소 하나만 고릅니다.
  8. Permissions(권한)에서 Add permissions(권한 추가)를 누르고, 검색창에 Contents 를 입력해 Contents(파일 내용)를 체크합니다. Metadata(기본 정보)가 Required(필수) 표시와 함께 자동으로 붙습니다.
  9. Contents 줄 오른쪽의 Access: Read-only 버튼을 누르고 Read and write(읽기와 쓰기)를 고릅니다. 처음에는 Read-only 로 되어 있습니다. Read and write 가 보이지 않으면 바로 앞 단계의 Repository access 가 Public repositories 로 되어 있는 것입니다. Only select repositories 로 바꾸세요. 다른 권한은 추가하지 않습니다.
  10. Generate token(토큰 만들기)을 누릅니다.
  11. 화면에 나온 토큰을 복사합니다. 토큰은 github_pat_로 시작합니다.
토큰은 만든 화면에서만 한 번 보입니다. 그 화면을 벗어나기 전에 복사하세요. 토큰을 메일이나 메신저로 보내지 마세요.
토큰이 만료되면 보관함에서 개인키를 내려받을 수 없습니다. 만료되면 같은 방법으로 새 토큰을 만드세요. 저장한 키는 그대로 남아 있습니다.

다. 회사 조직 계정을 쓰는 경우

조직 설정에 따라 Fine-grained 토큰에 조직 관리자의 승인이 필요할 수 있습니다. 승인 전에는 토큰이 저장소에 접근하지 못합니다. 토큰을 만든 뒤 조직 관리자에게 승인을 요청하세요.

준비가 끝나면 아래 1. GitHub 연결에 저장소 이름과 토큰을 넣습니다.

입찰가 암호화 원리입찰가가 마감 전까지 아무에게도 보이지 않는 이유를 설명합니다.

열쇠는 두 종류입니다

공개키

잠그는 열쇠입니다. 잠글 수만 있고 열 수는 없습니다. 그래서 누구에게 줘도 됩니다.

비유: 누구나 눌러 닫을 수 있는 열린 자물쇠

개인키

여는 열쇠입니다. 짝이 되는 공개키로 잠근 것은 이 개인키로만 열립니다. 본인만 가집니다.

비유: 그 자물쇠를 여는 단 하나의 열쇠

분양사와 유니피커가 각자 한 쌍씩 만듭니다. 두 회사는 공개키를 입찰 전에 유니피커 입찰시스템에 등록합니다. 개인키는 각자 보관했다가 입찰이 마감된 뒤에 제출합니다.

입찰가가 잠기고 열리는 순서

입찰할 때입찰자의 브라우저 안
  1. 입찰자가 입찰가를 넣습니다.
  2. 브라우저가 일회용 비밀번호를 만듭니다.이번 입찰에만 쓰고 버립니다.
  3. 입찰가를 일회용 비밀번호로 잠급니다.
  4. 일회용 비밀번호를 두 조각으로 나눕니다.한 조각만으로는 원래 비밀번호를 알 수 없습니다.
조각 1을 분양사 공개키로 잠급니다.
조각 2를 유니피커 공개키로 잠급니다.
보관유니피커 입찰시스템
  1. 잠긴 입찰가와 잠긴 조각 두 개만 저장합니다.원래 입찰가와 일회용 비밀번호는 브라우저 밖으로 나가지 않습니다. 시스템 운영자도 열 수 없습니다.
입찰 마감
개봉할 때유니피커 입찰시스템
분양사가 개인키를 제출합니다. 조각 1이 열립니다.
유니피커가 개인키를 제출합니다. 조각 2가 열립니다.
  1. 두 조각을 합쳐 일회용 비밀번호를 되찾습니다.
  2. 일회용 비밀번호로 입찰가를 엽니다.

비유: 금고 비밀번호를 두 사람에게 반씩 나눠 맡기는 것과 같습니다. 두 사람이 모두 와야 금고가 열립니다.

그래서 안전합니다

  • 한 회사만으로는 열 수 없습니다. 조각 하나로는 일회용 비밀번호를 되찾을 수 없습니다.
  • 시스템 운영자도 볼 수 없습니다. 시스템에는 잠긴 것만 있습니다.
  • 몰래 바꾸면 열리지 않습니다. 잠긴 입찰가가 조금이라도 바뀌면 개봉할 때 오류가 납니다.