none
הצפנת קובץ Mp3 RRS feed

  • שאלה

  • יש לי אתר asp.net 

    ואני רוצה  שהמשתמש רק ישמע את השיר (קובץ mp3) ולא יצליח להוריד אותו  גם דרך inspected element 

    יש למשהו רעיון ? 

    יום שלישי 11 ספטמבר 2012 06:58

תשובות

  • יש כמה אפשרויות, אף אחת מהן לא מושלמת. אתה יכול, למשל, להצפין את הקובץ עם אחת המתודות ב-System.Security.Cryptography, ואז לשלב בעמוד שלך נגן משלך, בין אם ב-javascript, flash או silverlight, שיודע לפענח את ההצפנה ולנגן. זה קצת כאב ראש, כי זה מחייב אותך לפתח נגן משלך, ולא להשתמש בנגן סטנדרטי או ב-HTML5 פשוט. ומעבר לזה, מי שממש רוצה יכול לפרק את הנגן כדי למצוא את מפתח ההצפנה, אבל זה מסובך יותר.

    אפשרות פשוטה יותר, אבל פחות מאובטחת, היא לא להוריד את הקובץ ישירות, אלא להשתמש בשרת סטרימינג כלשהו, שמשדר בפרוטוקול MMS או Shoutcast או משהו אחר, ואז לשבץ נגן שיותר לנגן. זה פחות מאובטח מהצפנה אמיתית כי כל נגן שתומך בפרוטוקול יכול להתחבר ולהשמיע, אבל מישהו שסתם עושה Inspect source לא ימצא לינק להורדה, ולא כל תוכנת סטרימינג יודעת לשמור את הסטרים.

    אבל חשוב לזכור שאף פתרון לא יתן לך 100% הגנה. בסופו של דבר המידע (כלומר, השיר) חייב להגיע אל המשתמש, משם להגיע לכרטיס הקול, ומשם לרמקולים. מי שממש ירצה, יוכל להכנס שם בדרך, או דרך הנגן, או דרך דרייברים שמקליטים, או ממש להקליט מה-line out. השאלה היא כמה קשה זה, ומי האנשים שאותם אתה רוצה לחסום.


    • סומן כתשובה על-ידי Eran Sharvit יום ראשון 23 ספטמבר 2012 14:39
    • נערך על-ידי Avner Shahar-Kashtan יום רביעי 28 אוגוסט 2013 08:18
    יום שלישי 11 ספטמבר 2012 08:21
  • אתה מערב כאן 2 פתרונות שונים:

    פתרון ראשון:

    בלחיצה על הלינק אתה מפעיל JAVASCRIPT  שפונה ל WEBMETHOD של הדף או WEBSERVICE לא קריטי.

    ואז מקבל ממנו GUID.

    ובסשן אתה שומר את ה GUID מול שם הקובץ האמיתי

    את הפרמטר הזה אתה מעביר לתוך ה פלאש שלך (EXTERNAL INTERFACE)

    ואז הפלאש צריך לנגן STREAM של ASHX עם הפרמטר שלך (ששמור בסשן).

    בשיטה זו אתה גם מונע מאנשים לראות את ה VIEW SOURCE

    וגם מכיוון שהפלאש מבקש את ה MP3 מקובץ ה ASHX אז ה REALPLAYER או IDM לא יופעלו.

    לגבי הפתרון השני של ההצפנה הייתי יורד מזה מכיוון שנראה לי שהפתרון הראשון נותן לך את הפתרון ללא הרבה פיתוח.

    נ.ב.

    במידה ואתה מעוניין לנגן רק קובץ אחד כל פעם אתה יכול גם רק לקרוא ל ASHX ללא פרמטר ואז לשלוף את שם הקובץ מה SESSION וככה אתה יכול גם לבנות קובץ FLASH סטאטי עם לינק סטאטי ובכל פעם ליצור את התג של הפלאש שיתחיל לנגן מייד.


    • נערך על-ידי tetitu יום שלישי 11 ספטמבר 2012 10:39
    • הוצע כתשובה על-ידי tetitu יום חמישי 20 ספטמבר 2012 07:26
    • סומן כתשובה על-ידי Eran Sharvit יום ראשון 23 ספטמבר 2012 14:39
    יום שלישי 11 ספטמבר 2012 10:26

כל התגובות

  • בשיטה הפשוטה יחסית אני הייתי הולך עם הפתרון הבא:

    בלחיצה הייתי מביא TOKEN באמצעות webmethod

    ואז בעזרת ASHX מביא את התוכן של הקובץ.

    ומוסיף לו HEADERS של NO CACHE

    ואז מוחק את ה TOKEN כך שהוא לא יוכל להוריד את זה בפעם השניה.

    כמובן שזה עדיין פריץ.

    הפתרון האולטימטיבי הוא שימוש בשרת מדיה וכך לשים DRM על הקובץ אבל אני לא חושב שאתה בכיוון הזה...

    אז הפתרון הארוך השני הוא הצפנה פשוטה של ה SOUND אפילו ע"י XOR מספיק.

    ואז הורדה של קובץ ה SOUND ע"י cliend כלשהו כגון פלאש או SYLVERLIGHT לבצע את המניפולציה חזרה  ואז לנגן את ה MP3 מהזכרון.

    לא עשיתי את זה אף פעם אבל זו הדרך שאני הייתי פותר את זה.

    מצ"ב קצת לינקים שגיגלתי אותם שייתנו לך כיוון.

    http://code.google.com/p/e4xu/source/browse/trunk/src/org/wvxvws/encoding/MP3Transcoder.as

    http://stackoverflow.com/questions/4508754/how-can-i-play-an-mp3-from-a-memory-stream-in-c

    יום שלישי 11 ספטמבר 2012 08:16
  • יש כמה אפשרויות, אף אחת מהן לא מושלמת. אתה יכול, למשל, להצפין את הקובץ עם אחת המתודות ב-System.Security.Cryptography, ואז לשלב בעמוד שלך נגן משלך, בין אם ב-javascript, flash או silverlight, שיודע לפענח את ההצפנה ולנגן. זה קצת כאב ראש, כי זה מחייב אותך לפתח נגן משלך, ולא להשתמש בנגן סטנדרטי או ב-HTML5 פשוט. ומעבר לזה, מי שממש רוצה יכול לפרק את הנגן כדי למצוא את מפתח ההצפנה, אבל זה מסובך יותר.

    אפשרות פשוטה יותר, אבל פחות מאובטחת, היא לא להוריד את הקובץ ישירות, אלא להשתמש בשרת סטרימינג כלשהו, שמשדר בפרוטוקול MMS או Shoutcast או משהו אחר, ואז לשבץ נגן שיותר לנגן. זה פחות מאובטח מהצפנה אמיתית כי כל נגן שתומך בפרוטוקול יכול להתחבר ולהשמיע, אבל מישהו שסתם עושה Inspect source לא ימצא לינק להורדה, ולא כל תוכנת סטרימינג יודעת לשמור את הסטרים.

    אבל חשוב לזכור שאף פתרון לא יתן לך 100% הגנה. בסופו של דבר המידע (כלומר, השיר) חייב להגיע אל המשתמש, משם להגיע לכרטיס הקול, ומשם לרמקולים. מי שממש ירצה, יוכל להכנס שם בדרך, או דרך הנגן, או דרך דרייברים שמקליטים, או ממש להקליט מה-line out. השאלה היא כמה קשה זה, ומי האנשים שאותם אתה רוצה לחסום.


    • סומן כתשובה על-ידי Eran Sharvit יום ראשון 23 ספטמבר 2012 14:39
    • נערך על-ידי Avner Shahar-Kashtan יום רביעי 28 אוגוסט 2013 08:18
    יום שלישי 11 ספטמבר 2012 08:21
  • טיטיטו ואבנר תודה על התשובות , 

    טיטיטו--- לא הבנתי כ"כ את התשובה שלך כמו

    (איך אני מצפין ע"י XOR את MP3 ? , ואחרי שהצפנתי איך אני מנגן את הקובץ ?ולא הבנתי גם את ה- TOKEN   )

    אם תוכל לפרט קצת יותר על זה , אני אשמח 

    אבנר -- מטרתי היא למנוע מאותם תוספים כמו IDM ו- REAL PLAYER להוריד את הקובץ 

    לגבי הקלטה זה כבר לא ביכולתי אבל אם אני מונע הורדה זה כבר מעולה 

    בכל אופן תודה לעוזרים אבל אני אשמח לראות דוגמאות 

    כי חפרתי את כל האינטרנט ולא מצאתי משהו פתיר 

    יום שלישי 11 ספטמבר 2012 09:32
  • אתה מערב כאן 2 פתרונות שונים:

    פתרון ראשון:

    בלחיצה על הלינק אתה מפעיל JAVASCRIPT  שפונה ל WEBMETHOD של הדף או WEBSERVICE לא קריטי.

    ואז מקבל ממנו GUID.

    ובסשן אתה שומר את ה GUID מול שם הקובץ האמיתי

    את הפרמטר הזה אתה מעביר לתוך ה פלאש שלך (EXTERNAL INTERFACE)

    ואז הפלאש צריך לנגן STREAM של ASHX עם הפרמטר שלך (ששמור בסשן).

    בשיטה זו אתה גם מונע מאנשים לראות את ה VIEW SOURCE

    וגם מכיוון שהפלאש מבקש את ה MP3 מקובץ ה ASHX אז ה REALPLAYER או IDM לא יופעלו.

    לגבי הפתרון השני של ההצפנה הייתי יורד מזה מכיוון שנראה לי שהפתרון הראשון נותן לך את הפתרון ללא הרבה פיתוח.

    נ.ב.

    במידה ואתה מעוניין לנגן רק קובץ אחד כל פעם אתה יכול גם רק לקרוא ל ASHX ללא פרמטר ואז לשלוף את שם הקובץ מה SESSION וככה אתה יכול גם לבנות קובץ FLASH סטאטי עם לינק סטאטי ובכל פעם ליצור את התג של הפלאש שיתחיל לנגן מייד.


    • נערך על-ידי tetitu יום שלישי 11 ספטמבר 2012 10:39
    • הוצע כתשובה על-ידי tetitu יום חמישי 20 ספטמבר 2012 07:26
    • סומן כתשובה על-ידי Eran Sharvit יום ראשון 23 ספטמבר 2012 14:39
    יום שלישי 11 ספטמבר 2012 10:26