4. Encoding
1) Encoding이란?
▣ 인코딩이란?
- 내용은 같으나 데이터의 형태를 바꾸는 방식.
- 데이터 길이를 줄이는 용도 (현재는 많이 사용되지 않음)
- 암호화로는 사용 불가 (100% 디코딩 됨)
▣ 인코딩 종류
- 동영상 인코딩
- 언어 (문자인코딩)
- 메타문자의 안전한 전송
2) 언어 Encoding
▣ ASCII
- 미국 정보교환 표준 코드 (American Standard Code for Information Interchange)
- 1바이트 중 7bit를 이용해서 0에서 127까지 128개의 문자를 구성한 코드
- 128개의 문자는 영어 알파벳 대문자, 소문자, 보조문자(특수기호), 제어문자로 구성.
- 영문 알파벳을 사용하는 대표적인 문자 인코딩 방법
- URL에서 사용됨.
- 아스키코드표 : http://hyeonnii.tistory.com/83
▣ URL Encoding / Force Full URL Encoding
- URL에 포함될 문자들이 안전하게 웹 서버에 전달되도록 특수한 기능을 가진 문자들을 브라우저가 인코딩하여 전달.
- URL meta 문자들에 대한 인코딩이 필요함.
- 형식 : 기존 문자열의 hex값 앞에 %를 사용 (ASCII Table의 출력가능 문자)
- 한글 : UTF-8 사용 (한글은 완성형-가,나 / 조합형-ㄱ,ㄴ,ㅏ 2개의 종류가 존재)
- Force Full URL Encoding : 모든 문자열을 강제로 인코딩 (메타문자 뿐만아니라 URL 문자열 전체를)
공백 |
  |
< |
< |
> |
> |
& |
& |
' |
' |
" |
" |
- 예시
1 2 3 4 5 6 | <html> <title>HTML Encoding Example</title> <body> 나는 <ABC 초콜렛>을 좋아합니다. </body> </html> | cs |
==> 나는 <ABC 초콜렛>을 좋아합니다.
☞ #65 : 10진수
☞ #x42 : 16진수
- 만일 html언어로 게시판에 작성시 브라우저가 자동으로 읽어버려 원하지 않지만 실행을 함.
▣ BASE64 Encoding
- 2진 데이터를 ASCII 형태의 텍스트로 표현 가능
- WEB 인증 중 기본 인증에 사용
- 끝 부분의 padding(==)으로 식별 가능.
- 64개의 문자를 사용 (영문 대, 소문자, 숫자, +, /) --> +, /는 인코딩 규칙을 정의한 사람에 따라 다름.
- 데이터를 6bit 단위로 표현
- 인코딩 방법
① 문자를 아스키코드로 매핑
② 2진수로 변환
③ 6bit 단위로 분리 (마지막 6bit는 남은 개수만큼 뒤에 0을 추가)
④ 10진수로 변환
⑤ base64 Table 매핑
⑥ 패딩 연산 (패딩 =의 수는 처음 2진수로 변환하였을 때 총 비트 수%3)
- BASE64 Table
[출처 : http://articles.squaredprogramming.com/2014/01/i-had-been-spending-lot-of-time.html]
▣ MS Script
- Microsoft에서 제공하는 인코딩 기법으로 IE에서만 사용가능.
- jscript로 인코딩 (현재는 xp에서만 돌아감..)
- IE는 MS Script decoder를 가지고 있음.
- <script language="Jscript.Encode"> 를 명시하여 IE에게 알려줘야 함.
i2sec 대구지점 23기 수료생.
'해킹&보안 > 웹 해킹&보안' 카테고리의 다른 글
[D+7] 정보수집 (0) | 2017.05.12 |
---|---|
[D+6] Session & Cookie (0) | 2017.05.10 |
아스키코드 (0) | 2017.05.07 |
[D+4] 웹 언어 (0) | 2017.05.01 |
[D+3] 웹 프록시 (0) | 2017.05.01 |