질문과 답변

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

2010.06.24 11:54

메리아 조회:5444

(잘 모르시는 분이 정보라도 얻어가시라고 서두에는 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 - -
2057 하드웨어| 바이러스 검색정보말고 실제 걸려서 해결하신분 정보부탁합... [4] 어사또 2432 06-29
2056 하드웨어| ASUS P7P55D 메인보드 바이오스 복구방법? [1] 초원의빛 8999 06-29
2055 하드웨어| 무선 키보드 마우스 추천 부탁드립니다. [6] 똘이2 2777 06-29
2054 하드웨어| IP 에 대한 질문입니다. [1] 노가다 1967 06-29
2053 하드웨어| 오피스 2010 리테일 인증 문의 입니다.(자체해결) [3] 크루세이더 3785 06-28
2052 하드웨어| 스피커와 내장사운드의 관계...?? [2] 맹이리 2587 06-28
2051 하드웨어| 오피스2010 인증문제..해결했네요.. [5] 망고땡 5590 06-28
2050 하드웨어| 집으로 인터넷 선 하나만 들어오고 공유기는 몇 대 있는데 ... [5] 율짱 3018 06-28
2049 하드웨어| 하드디스크 추가로 장착하려고 하는데 ... [2] star 7413 06-28
2048 하드웨어| 엑스노트 바이오스는 어디서 구하나요 [3] 비밀 2801 06-27
2047 하드웨어| Nvidia 지포스 주사율 59hz 와 고정종횡비 문제요.ㅠ [3] 듀시스트칸 4086 06-27
2046 하드웨어| office 2010 이전에 올라온 것과 최근 retail로 올라온 것... [2] 이원식 2925 06-27
2045 하드웨어| 유투브 동영상 플레이어, 로고 없애기 joen 4602 06-27
2044 하드웨어| MP3 재생 프로그램 추천 부탁드립니다. [11] 우주선 3096 06-26
2043 하드웨어| 광마우스 고장에 관해서 질문이요.. 맨맨 2748 06-26
2042 하드웨어| ko_office_professional_2007_x86_cd_x16-18306 [1] 왜만지냐 2248 06-26
2041 하드웨어| 통합 전 바이오스 포럼 자료에 대해서... 백호8 2121 06-26
2040 하드웨어| 오피스2010 질문입니다. [2] 김용환 2052 06-25
2039 하드웨어| 토렌트 다른이름으로 저장 목록 삭제방법? [2] 우유먹고만 4592 06-25
2038 하드웨어| 도스용 로우포멧 유틸리티..추천 좀.. [3] HIHOSILVER 4437 06-25
XE1.11.6 Layout1.4.8