REST API를 설계하는 중이고 암호화 작업을 결정하는 중입니다. 우리는 현재 모든 요청/응답에 대해 https를 사용하고 있지만 다양한 로그 (dns, browser, ...)는 일반 텍스트 URL을 기록합니다. 이렇게하면 "www.mysite.com/user/credit-card-number/"와 같이 중요한 데이터를 URL에 보낼 때 문제가 발생합니다. SSL/TLS 공개/개인 키를 사용하여 경로 매개 변수를 암호화하는 방법이 있습니까? 예를 들어 "www.mysite.com/user/credit-card-number/"는 "www.mysite.com/encryptedstring"으로 바뀝니다.SSL을 통한 API 암호화
답변
중요한 데이터를 URL에 넣지 말 것을 적극 권장합니다. 무언가를 식별 할 필요가 있다면 적어도 무작위로 생성 된 문자열/UUID/토큰/그것이 식별되는 것이 무엇이든지 무엇이든 사용할 수 있습니다.
수동 암호화/해독 처리는 사용중인 언어/프레임 워크에 따라 다릅니다. 예를 들어, Java를 사용하는 경우 SSL/TLS 용 Java 프레임 워크 인 JSSE에서 일부 Google 검색을 수행하십시오.
자동으로 암호화/암호 해독을 수행 할 제품을 찾고 있다면 사용중인 프레임 워크에 따라 달라질 것이라고 생각합니다.
우리는 중요한 데이터를 URL에 넣고 싶지 않습니다. 토큰을 생성하고 대신 URL에서 사용하는 것이 가능하다는 것을 알고 있습니다.하지만 모든 요청에 대해 클라이언트와 개발자의 작업이 필요합니다. 내가 원하는 것은 요청을 보내기 전에 SSL 키를 사용하여 URL을 암호화하는 현재 REST API 프레임 워크에 암호화 섹션을 추가하는 것입니다. 이 방법은 클라이언트/개발자가 프레임 워크에서 돌보고 있기 때문에 암호화가 투명해질 수 있습니다. – dpayne
제대로 이해하면 URL이 SSL/TLS 채널을 통해 암호화되는지 묻는 중입니다. this SO question가 지적한대로 대답은 '예'입니다. TLS를 통해 대상 서버의 IP 주소와 포트를 제외한 모든 클라이언트와 서버간에 암호화됩니다. (여기에는 http headers도 포함됩니다.)
EDIT : 다시 읽은 후 로그되는 URL을 중지하는 데 관심이있는 것으로 나타났습니다. 이 작업을 수행하는 유일한 방법은 서버의 URL을 변경하는 것입니다. 별로 도움이되지 않지만 제 제안은 URL에 cc 번호를 두거나 대신 파생 된 키를 사용하지 않는 것입니다.
TLS가 모든 것을 암호화하지만 DNS 로그와 브라우저 로그 (특히 GET 요청의 경우)는 암호화되지 않은 URL을 저장한다는 것을 알고 있습니다. 같은 포스트 Zach Scrivena에 따르면 많은 DNS 서버 로그가이를 수행한다고 언급합니다. – dpayne
- 1. SSL을 통한 Google Chart API
- 2. SSL을 통한 Google지도의 옵션
- 3. 웹 서비스 보안을위한 SSL을 통한 암호화 된 JSON 문자열
- 4. SSL을 통한 HTTP 인증은 안전합니까?
- 5. SSL을 통한 서블릿 로그인
- 6. SSL을 통한 WCF 문제
- 7. SSL을 통한 HttpWebRequest?
- 8. SSL을 통한 ShoutCast
- 9. ssl을 통한 게시물 차단
- 10. SSL을 통한 PHP 로그인
- 11. SSL을 통한 Google지도 포함
- 12. SSL을 통한 WCF 구성
- 13. SSL을 통한 AMFPHP 문제
- 14. SSL을 통한 XMLSocket
- 15. 클라이언트 인증을 통한 SSL을 통한 컬링
- 16. SSL을 통한 세션 ID를 Loosin
- 17. NodeJS 및 SSL을 통한 JBoss
- 18. Java에서 SSL을 통한 WebService 사용
- 19. 비보안 페이지에서 SSL을 통한 WCF
- 20. Apple은 SSL을 통한 인증을 요구합니까?
- 21. Windows 서비스의 SSL을 통한 LDAP
- 22. SSL을 통한 HTTP 기본 인증
- 23. Firefox extension에서 SSL을 통한 XMLHttpRequest
- 24. SSL을 통한 웹 서비스 인증
- 25. REST WCF 서비스 SSL을 통한
- 26. SSL을 통한 TCP 인증서로 Windows 서비스 인증
- 27. Safari를 사용하여 SSL을 통한 Gzip 압축?
- 28. Ruby에서 SSL을 통한 서버 응답 읽기 Cake
- 29. Python으로 LinkPoint API에 인터페이스 - 인증을 통한 SSL을 통한 XML 전송
- 30. Azure의 WCF 서비스와 SSL을 통한 ClaimsIdentity
URL에 CC 번호를 포함해야합니까? – Jeremy
나는 당신이 왜 그것을 필요로하는지 이해하지 못한다. 그러나 클라이언트가 공개 키 (서버 인증서에서)를 사용하여 암호화하고 서버가 개인 키를 사용하여 암호를 해독하기를 원하는 경우 [여기 Python의 예] (http://stackoverflow.com/a/7670551/4279)를 참조하십시오. – jfs
python 예제는 내가하고 싶은 것과 비슷합니다. 대규모 프로젝트에서 사용하기에 충분히 안전하다고 생각합니까? – dpayne