요약
- RFC 1004는 통신을 허락받은 상대인지 확인하고 한 쌍에 일회용 세션 열쇠를 주는 Cookie Jar 서버를 제안했다. 1987년 4월에 토론을 위해 내놓은 설계다.
- 연결을 여는 세 번째 메시지를 다시 보내면 받는 쪽이 새 관계가 시작됐다고 착각할 수 있다. 시작한 쪽은 잘못된 순서 번호의 답을 버리고, 반복이 몰리면 시간 초과가 이어질 수 있다.
두 게이트웨이가 경로 정보를 주고받으려 한다. 패킷에 적힌 출발지 주소는 봉투의 발신인 이름과 같다. 누가 실제로 이름을 썼는지는 따로 확인해야 한다. EGP에서도 이웃은 정보를 나누기 전에 관계를 맺었다. Mills는 바로 그 첫 인사에 문지기를 세웠다. 이름은 Cookie Jar. 과자를 주는 병이 아니라, 누가 대화할 수 있는지 정하고 잠시 쓸 비밀 열쇠를 건네는 서버였다.
RFC 1004는 EGP, 당시 제안된 DGP, 비슷한 분산 프로토콜을 염두에 뒀다. 길에서는 메시지가 사라지거나 두 번 올 수 있고, 공격자가 가로채 고쳐서 다시 보낼 수도 있다. 각 이용자에게 공개 주소와 오래 쓰는 개인 열쇠가 있다. 공개 명단에는 대화할 수 있는 상대가 적혀 있다. 병은 개인 열쇠 표를 보관하며 명단을 확인한다. j가 i의 허용 상대라면 병은 두 사람만 쓸 임의의 열쇠 K(i,j)를 만든다. 각각 포장한 두 개의 쿠키를 통해 i가 j 몫을 연결 절차에서 전한다. 오래 쓰는 개인 열쇠는 소유자와 병에 남는다.
병을 관리하는 쪽이 손님 명단과 열쇠 배포를 함께 쥔다. 두 게이트웨이가 선으로 이어져 있어도 허락된 관계가 자동으로 생기지는 않는다. 연결 후에는 공통 열쇠로 검사값과 순서 번호를 보호한다. 가짜 메시지나 옛 메시지를 걸러내려는 장치다. 일반 데이터는 길 위에서 그대로 보인다. Mills는 도구의 약점도 썼다. 16비트 Internet 검사값에는 단어와 바이트 순서를 바꿀 때 생기는 약점이 있었고, 당시 자연스러운 선택이던 DES도 다시 살펴볼 필요가 있었다. 예쁜 쿠키 병이 허술한 자물쇠를 튼튼하게 만들어 주지는 않는다.
문제는 평범한 명령에서 터졌다. “처음부터 다시.” 새 Request는 기존 관계의 상태를 지운다. Mills는 연결 과정의 세 번째 메시지가 재전송되는 상황을 따졌다. 받는 j는 새 관계가 열렸다고 생각하고 답한다. 시작한 i는 순서 번호가 틀린 답을 버린다. 오래된 메시지 한 통으로 남의 관계를 성공적으로 열 가능성은 낮다. 하지만 같은 통을 빠르게 쏟아부으면 j는 상태를 다시 만들고 기다리고 시간 초과를 맞기를 반복할 수 있다. 침입자는 집에 들어갈 필요도 없다. 초인종만 계속 누르면 된다.
질문과 답을 한 차례 더 붙이는 방법도 있었다. Mills는 세 단계 인사의 비용을 따진 뒤 채택하지 않았다. 끈질긴 공격자는 늘어난 절차 자체로도 일을 시킬 수 있다. 악의 없는 경쟁도 기록했다. 두 이웃이 같은 순간 병에 열쇠를 청하면 Request가 엇갈려 서로의 열쇠를 초기화하고, 시간 초과가 어긋나서야 경주가 끝날 수 있다. 언제 열쇠를 바꾸고, 동시 요청을 어떻게 풀고, 얼마나 기다리는지가 인증의 실제 움직임이었다.
RFC 1004는 토론을 위한 제안이었다. 이 설계는 한 문 앞에 두 권한을 놓았다. 누가 들어올지 정하는 권한과, 오래된 인사로 상대를 계속 문 앞에 세울 수 있는 틈이다. 병은 새 쿠키를 나눠 줬다. 골칫거리는 다시 나온 어제의 쿠키였다.
회원 브리핑
프로필 심층 컨텍스트
올바른 멤버십 등급으로 로그인하면 전체 브리핑과 출처 노트를 볼 수 있습니다.
Strategic Circle 전용
Strategic Circle
모든 독자에게 공개됩니다. 가입 후 로그인하면 프로필 브리핑를 열람할 수 있습니다.
Strategic Circle 가입하기Leadership Alliance 전용
Leadership Alliance
자격을 갖춘 IP 자산 소유자 및 운영진을 위한 콘텐츠입니다. 로그인하면 Leadership Alliance 브리핑을 열람할 수 있습니다.
Leadership Alliance 가입하기





