질문과 답변

하드웨어 토렌트torrent는 오류 검증을 대체 어떻게 하나요?

2010.06.24 11:54

메리아 조회:5443

(잘 모르시는 분이 정보라도 얻어가시라고 서두에는 Checksum hash 에 대한 설명을 해놨습니다.

내용이 괜히 많으니, hash에 대해 잘 아시는 분은 스크롤 쭉 내리셔서 맨 마지막 질문 부분만 읽어주세요. ㅠㅠ)

 

 

아시는분은 아시겠지만,

많은 배포자들이 전송오류나 조작가능성을 배제하고자,

자신이 배포하는 파일에 대해서 CRC32,MD5,SHA-1 등의 Checksum hash 코드를 게시합니다.

 

모르시는 분들을 위해 설명하자면,

위의 명칭에 따른 고유의 계산법으로 파일 전체를 처음부터 끝까지 쭉~읽어들여서 계산하면,

각각 8자리,32자리,40자리의 고유한 16진수 배열이 나옵니다.(fasthash라는 프로그램을 많이들 쓰십니다)

 fasthash_example.png

 

 

이런 checksum hash 값이 있으면(아무거나 하나만 있어도 됨. 하나만 같으면 다른값도 거의 같은값. 단, CRC32는 예외),

파일명이 아무렇게나 되어있어도 같은 파일임을 확인할 수 있으며(파일중복 검사하는 프로그램들이 CRC32를 이용해서 검사함),

수십기가의 용량이라도 단 1바이트,1비트라도 파일이 변경됐으면, 전체 결과값이 확 달라지기 때문에 첫자리 값만 봐도 파일이 바뀌었는지 여부를 쉽게 판별할 수 있습니다.

이는 파일에 기록된 값이 아니라,

파일을 검사하는 값이므로 조작이 거의 불가능하고

(단, CRC32는 결과값 예측이 가능해서 조작가능. 대신 속도가 무지 빠름. 그래서 조작여부 검사보다는 전송오류 검사에 이용됨),

다른파일임에도 같은 값이 될 확률은 굉장히 낮아서 파일의 무결성의 증명이라 할 수 있습니다.

(역시 CRC32의 경우에는 앞서 언급한것처럼 조작이 가능해서 XP ISO이미지 제작의 경우 CRC32값을 0xFFFFFFFF의 값이 나오도록 조작해서 전송검증으로만 이용. MSDN에서 XP는 전통적으로 FF~ 맞추는게 관습화 되어 있으나, 비스타,윈7은 FF~값으로 맞추지 않음.)

 

 

그런데 매번 배포자가 게시글을 통해 hash값을 게시하는 것도 아니고,

인터넷에는 상상하시는 것보다 엄청나게 많은 전송오류가 존재합니다.(물론 조작도 꽤 있죠.)

특히 웹하드 형식의 P2P사이트들은 거의다 아예 전송오류 검증을 안합니다. 속도의 문제가 있기 때문이죠.

(단, 클럽박스의 경우엔 CRC 검증이 이루어집니다. 검증을 위한 추가파일 생기는거 보셨을겁니다. 그 외에 '파일이 바로 생성되는' 거의 모든 형태는 검증따윈 X까~라는 마인드로 보시면 되겠습니다.)

특히 말그대로 Peer to Peer방식에서 각 개개인의 회선상태는 모두 다르고, 전송상 불량인 상황이 있으며, 심지어 파일을 완성못하고 끊어버리는 경우도 생깁니다.

 

그런 것에 대처하고자 당나귀,이뮬 등의 프로그램에서는 AICH SHA-1 hash 방식을 써서 오류 검증을 합니다.

(그냥 SHA-1방식과는 좀 다르고 결과값도 다릅니다. 자세한 것은 https://www.emule-project.net/home/perl/help.cgi?l=1&rm=show_topic&topic_id=589 참조)

간단하게 설명하면, 이뮬은 9.28MB 단위로 조각내어 잘라받는데, 한 단위의 블록이 수신완료되면 그 9.28MB에 대해 SHA-1연산을 실시하고, 정해놓은 알고리즘에 의해 최종적인 root hash값과 비교해 같으면 완료, 다르면 다시 요청해 재수신합니다.

그렇게 파일을 다 받으면 최종적으로 다시한번 검증하죠.(그래서 저사양 컴에서는 용량 큰 파일을 이뮬로 받으면 수신완료 될때 버벅거릴때가 있습니다.)

그래서 emule 링크의 구조는 기본적으로 아래와 같이 전달되죠.

ed2k://|file|파일명|용량|root hash|

 

그래서 '처음부터 다른데서 잘못받은 파일', '일부러 조작한 파일'이 아니라면,

emule에서 받는건 전송에 대한 신뢰성이 아주 높습니다.

(문제는 '처음부터 잘못받은 파일', '일부러 조작한 파일'이 판을 친다는거죠. ㅡ.ㅡ

대신에 그런 파일들은 소스가 적은편이라 노하우(?)가 좀 생기면 피할 수 있죠.)

 

 

 

여기서부터 질문입니다.

 

torrent의 경우에는 오류검증이 아예 없어보입니다.

아래의 그림처럼, hash string이 있긴 한데, 알고보니 이건 tracker에 대한 hash였지, 파일에 대한 해쉬가 아니더군요.

 

torrent_info.png

 

 

똑같은 파일을 등록할때마다 저 값이 바뀌는걸 보고 좌절했습니다. ㅠㅠ

(애초에 파일이 한개만 있는것도 아닌데, 해쉬값이 달랑 한개라는게 어불성설이지만요.)

torrent 파일을 분석해봐도, 파일에 대한 검증이 있는지 의심스럽습니다.

 

혹시 저 이뮬의 AICH처럼, torrent에도 오류검증에 대한 기술문서가 있는지, 아니면 확실히 아예 없다고 아시는 분 계시면 좀 알려주세요.

찾다찾다 GG치고 이렇게 여쭤봅니다. ㅠㅠ

 

번호 제목 글쓴이 조회 등록일
[공지] 질문과 답변 게시판 이용간 유의사항 gooddew - -
15395 하드웨어| 무선 키보드 마우스 추천 부탁드립니다. [6] 똘이2 2777 06-29
15394 윈 도 우| 카조님께 7 rtm 전화 인증 아무이상없이 근 10개월 정도 ... 운수 대통 2845 06-29
15393 윈 도 우| 윈도우7 라이브러리의 즐겨찾기 어떻게 복원하나요? [3] ngcooler 4714 06-29
15392 하드웨어| IP 에 대한 질문입니다. [1] 노가다 1967 06-29
15391 윈 도 우| 윈 7 대학생 프로모션 1차에 구매했는데 [1] June 2921 06-29
15390 하드웨어| 오피스 2010 리테일 인증 문의 입니다.(자체해결) [3] 크루세이더 3785 06-28
15389 윈 도 우| 네이트온 부계정 사라짐 문제 [2] 응가 21682 06-28
15388 윈 도 우| 작업표시줄 세로길이 줄일수있나요?? 닉넴이란없다 2755 06-28
15387 윈 도 우| 윈도우7과 XP 네트워크 공유 작업 컴퓨터 안 뜬다면? [2] Rookism 4666 06-28
15386 하드웨어| 스피커와 내장사운드의 관계...?? [2] 맹이리 2587 06-28
15385 하드웨어| 오피스2010 인증문제..해결했네요.. [5] 망고땡 5590 06-28
15384 윈 도 우| P2P로 인해 하드 노화나 수명단축이 되나여? [7] 윈도우77 3018 06-28
15383 윈 도 우| 즐겨찾기 아이콘 오류? [2] 고독한남자. 2292 06-28
15382 윈 도 우| 예전에 AI 인증과 요즘 인증 차이점이 있나요? June 2458 06-28
15381 윈 도 우| 디스크드라이버 장치가 SCSI로 잡힙니다... [1] 성진사랑 2287 06-28
15380 윈 도 우| 일부버전에서 인증이 안됩니다..(카조님 도와주세요~ㅠ.ㅠ) [3] leonk 2862 06-28
15379 윈 도 우| 카조님께 오피스 2010 버젼 확인 및 인증 관련 질문 [2] ㄷㄷㄷㄷㄷ 5926 06-28
15378 하드웨어| 집으로 인터넷 선 하나만 들어오고 공유기는 몇 대 있는데 ... [5] 율짱 3017 06-28
15377 윈 도 우| 이런 경우는 어떻게해야 하나요? [2] 징기스칸 2017 06-28
15376 윈 도 우| KB971033 [1] 징기스칸 3746 06-28
XE1.11.6 Layout1.4.8